• Nenhum resultado encontrado

2 Trabalhos Relacionados: Redes Elásticas e Travessia no Espaço de

2.1 Redes Elásticas

O algoritmo das Redes Elásticas foi proposto por Durbin e Willshaw (1987) e, tendo como base o trabalho de Willshaw e Malsburg (1979), possui o intuito de criar uma heurística para o problema do caixeiro-viajante. Segundo tal problema, há N cidades que devem ser visitadas apenas uma vez, percorrendo o menor caminho possível. Sendo um problema de otimização da classe NP-completo, diversos métodos surgiram objetivando soluções quase-ótimas.

A ideia básica do algoritmo de Redes Elásticas é utilizar um parâmetro K para controlar o crescimento não-uniforme de uma rede circular fechada elástica até que seja gerado um caminho que passe próximo a todas as cidades. Dessa forma, a rede que inicialmente recai sobre o centro da distribuição das cidades, passa a ser expandida, com cada nó da rede sendo atraído por uma cidade (DURBIN; SZELISKI; YUILLE, 1989). Ou seja, o algoritmo segue um processo de cálculos sucessivos das posições de determinado número de pontos. Tais pontos descrevem um caminho fechado que deverá cobrir todas as cidades do mapa. Cada ponto na rede se move de acordo com duas forças aplicadas, sendo que uma força atrai o ponto para a cidade mais próxima, enquanto que a segunda, atrai o ponto para seus vizinhos na rede elástica.

Ao longo das iterações, os pontos da rede passam a sofrer menos influência das cidades mais distantes, fazendo com que a rede apresente um comportamento mais localizado. Por fim, cada cidade acaba por ficar ligada a um ponto da rede elástica.

Sendo Xi, com i = 1 até N, o conjunto de posições das N cidades, define-se iterativamente

um caminho fechado de pontos Yj, com i = 1 até M. Yj cresce até que se tenha um caminho

fechado completo, onde cada cidade Xitenha um ponto Yjconvergindo para ela. O crescimento

da rede elástica é determinado por

∆Yj= α

i

ωi j(Xi− Yj) + β K(Yj+1+ Yj−1− 2Yj), (2.1)

em que ωi j é a influência da cidade i sobre o ponto j, sendo função da distância entre a cidade e

o ponto, bem como do parâmetro de escala K. O termo ωi j da Equação 2.1 é normalizado para

uma distribuição uniforme dos nós da rede elástica. Assim, tem-se que

ωi j= e− Xi−Yj 2 /2K2 ∑ k e− Xi−Yk 2 /2K2 . (2.2)

A atualização da posição de um nó da rede elástica, definida por (2.1), mostra que um dado nó da rede atrai seus vizinhos em direção à cidade com um fator α e também é atraído pelos seus vizinhos imediatos por um fator β K. Assim, α e β são os coeficientes que balanceiam as forças durante o deslocamento da rede (RIBEIRO, 1999). Por conta disso, o comportamento esperado é que, ao final das iterações, seja obtido um circuito contendo o menor caminho possível para que cada nó permita a visita a uma cidade. Dessa forma, para cada cidade Xi, há no mínimo um

ponto Yjda rede a uma distância aproximadamente K (DURBIN; SZELISKI; YUILLE, 1989).

Por outro lado, Rose (1991) chega a uma função de custo igual à Equação 2.1 quando utiliza o seu algoritmo de Recozimento Determinístico para tratar do problema do caixeiro- viajante. Vale a pena destacar que o coeficiente K é equivalente ao coeficiente de temperatura no algoritmo de Rose (1991) (DURBIN; WILLSHAW, 1987).

Uma importante contribuição de Durbin, Szeliski e Yuille (1989) é definir uma função de energia E para o método das Redes Elásticas e analisar a convergência rede quanto ao fator K. A ideia é deslocar a rede para cada valor K de forma que se minimize a função de energia E, que é definida como

E(Yj, K) = −αK

i log

j e− Xi−Yj  2K2 + β

j {Yj− Yj−1}2. (2.3)

Como o deslocamento dos pontos da rede representa a minimização da função de energia da Equação 2.3, tem-se que ∆Yjpode ser definido como

∆Yj= −K

∂ E ∂ Yj

. (2.4)

Durbin, Szeliski e Yuille (1989) observam que para valores grandes de K, E é suavizada e há uma única configuração de mínimo; para valores pequenos de K, a função de energia contém diversas configurações de mínimos locais e cada mínimo corresponde a um caminho possível para o problema do caixeiro-viajante. O algoritmo é executado com um K inicialmente grande que é gradualmente reduzido até que se chegue a um mínimo local de E. Embora não haja garantias, o intuito é fazer com que essa configuração de mínimo alcançada com a redução de Ktambém seja o mínimo global. Em outras palavras, minimizar a função de custo E maximiza a probabilidade de distribuição da rede elástica.

Figura 2.1: Convergência de uma rede elástica em um conjunto de 10 cidades, com K sendo reduzido (DURBIN; SZELISKI; YUILLE, 1989).

Na Figura 2.1, observa-se a execução do método das Redes Elásticas, inicialmente como um ponto central que se expande - através da redução de K - até que as 10 cidades do mapa estejam cobertas.

Figura 2.2: Convergência de uma rede elástica em um conjunto de 100 cidades, através da redução de K (DURBIN; WILLSHAW, 1987).

Para a Figura 2.2, observa-se a convergência da rede elástica para o caso de um mapa com 100 cidades aleatoriamente distribuídas. A rede inicialmente é um anel localizado no centroide do conjunto de cidades. A evolução da rede ocorre com a diminuição do termo K. Na Figura 2.2-d é apresentada a configuração da rede elástica para K=0,01. Na Figura 2.2-e é apresentada a configuração final da rede elástica obtida a partir da rede da 2.2-d. Na figura 2.2-f é apresentada a menor rede elástica encontrada nas simulações de Durbin e Willshaw (1987). Durbin e Willshaw (1987) mostram que para o caso da Figura 2.2 observou-se que, inicialmente, foi necessário um grande número de iterações com um valor grande de K. Além disso, situações, como aquela em destaque na Figura 2.2-c, mostram como a taxa de redução de Ké importante para evitar que a evolução da rede leve a cruzamentos indesejados.

Embora pouco aplicado na área de robótica móvel, outros trabalhos têm sido realizados tendo como base o método de Redes Elásticas de Durbin e Willshaw (1987) para tratar diversos problemas. Al-Mulhem e Al-Maghrabi (1998), por exemplo, utilizam um método para gerar uma rede elástica convexa que, em seguida, é otimizada por um algoritmo não-determinístico para uma rede sem loops e com vértices melhor posicionados. Vakhutinsky e Golden (1994) mostram como a teoria de Redes Elásticas pode ser expandida para o Problema do Múltiplo Caixeiro-Viajante e para o Problema do Roteamento de Veículos, que tal como o problema

do caixeiro-viajante, também é um problema NP-completo. Ribeiro (1999) utiliza a teoria de Redes Elásticas para definir uma metaheurística híbrida juntamente com a teoria de redes neurais para tratar o Problema de Roteamento de Veículos. Yang, Yi e Yang (2011) propõem a utilização de Redes Elásticas com ruído estocástico para tratar o Problema do Caixeiro-Viajante. Em Purnomo, Aramvith e Pumrin (2010) é proposto um algoritmo de Redes Elásticas para reconhecimento de faces em imagens de alta-resolução. Em Zhang et al. (2012), é proposta uma abordagem que se baseia em uma rede elástica para predição de câncer de ovário. Mahmoud e Al-Ghamdi (2013) propõem a utilização de Redes Elásticas para definir uma topologia de rede hierárquica ótima, levando em conta a quantidade de tráfico da rede.

A ideia de utilizar o algoritmo das Redes Elásticas para a navegação de robôs móveis surge no trabalho de Moreno e Castro (2005), que percebem a possibilidade de utilizar uma rede elás- tica linear para solucionar o problema do planejamento de caminho para ambientes previamente conhecidos.

A heurística que define a rede elástica linear para o planejamento do robô vista em Mo- reno e Castro (2005) foi posteriormente otimizada por Melo e Veloso (2007). Melo e Veloso (2007) propuseram algumas otimizações, além de tratarem os casos onde há um robô (algoritmo ODEN) ou múltiplos robôs (algoritmo MODEN) navegando no ambiente.

O algoritmo otimizado de Melo e Veloso (2007) trabalha com nós (unidades de processa- mento) dispostos na rede elástica linear. Inicialmente, é traçada uma reta com dois nós: o ponto de origem e o destino, sendo esse o caminho inicial definido. A um determinado intervalo fixo de tempo, uma nova unidade de processamento deverá ser adicionada na rede entre as duas unidades de processamento mais distantes entre si.

Para cada iteração, o algoritmo escolhe aleatoriamente um nó ωidentre todos os nós sobre

obstáculos na rede. Em seguida, adota-se um ponto aleatório x dentro de um círculo de raio r ao redor desse nó, sendo observadas três possibilidades:

1. Se x estiver localizado em um espaço livre (sem obstáculo), ele atrairá o nó da rede que estiver mais próximo.

2. Se x estiver localizado em um espaço ocupado (com obstáculo), ele repelirá o nó da rede que estiver mais próximo.

3. Se x e o nó da rede mais próximo estiverem localizados em um espaço ocupado, o nó da rede mais próximo será movido para um ponto aleatório em uma direção ortogonal ao segmento de linha que possui como extremos as unidades de processamentos vizinhas ao nó mais próximo da rede.

Na Figura 2.3-a é possível verificar o caso em que a unidade de processamento ωi está

sobre um espaço ocupado e o ponto x amostrado está em um espaço livre. Nesse caso, ωi é

atraído para x, como é possível ver pela direção do vetor. Já na Figura 2.3-b, tanto a unidade de processamento quanto o ponto amostrado estão sobre espaços ocupados. Assim a unidade de processamento mais próxima move-se ortogonalmente em relação à reta entre os pontos ωi−1e

ωi+1.

Figura 2.3: Verificação da localização dos pontos amostrados e das unidades de processamento (MELO; VELOSO, 2007).

O tamanho do raio adotado para a amostragem do ponto x diminui ao longo da execução do algoritmo. Assim, o algoritmo vai passando a analisar regiões cada vez menores, como em um ajuste fino, moldando-se aos detalhes do ambiente. Dá-se o nome de rede elástica pois uma uni- dade de processamento atrai e é atraída por suas unidades de processamento vizinhas, fazendo com que o caminho inicialmente linear vá se modificando e se moldando às peculiaridades de cada ambiente.

Apesar de o modelo apresentar um comportamento local, onde as unidades de processa- mento apenas interagem com seus vizinhos imediatos, Melo e Veloso (2007) sugerem que o algoritmo gera um caminho livre de obstáculos e global em poucas iterações. Melo e Veloso (2007) ainda relatam algumas melhorias de seu trabalho em relação ao trabalho original de Moreno e Castro (2005), como:

• Ocorrência de atualização apenas no conjunto de unidades de processamento que ainda estão em obstáculos, evitando-se o gasto computacional de sempre atualizar todas as unidades. Para tanto, Melo e Veloso (2007) trabalham com dois vetores de unidades: um para definir as unidades sobre espaços livres e que não precisam ser atualizadas (UFt) e outro para definir as unidades sobre obstáculos que precisam ser atualizadas (UUt). • Inserção de unidades extras a um dado intervalo fixo de tempo, mesmo que não haja

caminhos que cortam regiões de quina de obstáculos, como é verificável na Figura 2.3-a.

Apesar de tais melhorias, o algoritmo ainda pode gerar alguns caminhos indesejados (com muitas curvas) e perder muitas iterações atualizando as unidades de processamento desnecessa- riamente. Tais casos ocorrem especialmente quando o mapa apresenta grandes áreas livres de obstáculos.

Os passos definidos por Melo e Veloso (2007) para o algoritmo ODEN são:

1. Inicializa-se a rede com: ω0= xI; ωi= xI+ i xf−xI N0−1, i = 1, ..., N0− 1. 2. Define-se t = 1, Lins= 0, N = N0; 3. Determina-seUUt;

4. SeUUt == 0, t = Lins+ λ e segue-se para o passo 11;

5. Escolhe-se aleatoriamente um wi∈UUt 6. Define-se r = rI·  rF rI t/tmax ;

7. Escolhe-se aleatoriamente um ponto x ∈ X tal que kx − wik < r; 8. Encontra-se um wj= arg minw∈Ut

Ukx − wk; 9. Se F(x) > 0 wj= wj+ η0(x − wj) + β (wj−1+ wj+1− 2wj) senão wj= wj+ α (wj+1+wj−1)⊥

kwj+1+wj−1k, com α sendo um valor aleatório definido por −β ≤ α ≤ β

10. Se F(x) > 0

wj±1= wj±1+ η1(x−wj±1)

11. Se t − Lins≥ λ

a) Faz-se Lins= t e insere-se uma nova unidade:

wnew = wk+w2k+1, onde wk e wk+1 são definidos tais que kwk− wk+1k = max wi∈UUtkwi− wi+1k.

b) Faz-se N = N + 1 e atualiza-seUUt.

12. Se (t < tmax∧ N < Nmax), faz-se t = t + 1 e retorna-se ao passo 5, senão finaliza-se o

algoritmo.

Os três primeiros passos do algoritmo são de inicialização do mesmo. No primeiro passo definem-se as unidades iniciais da rede: o ponto de partida é a primeira unidade, além das outras simetricamente dispostas de acordo com a quantidade de unidades iniciais(N0), definidas por

wi. O segundo passo é de inicialização de variáveis do algoritmo, como o número de iterações

realizadas, por exemplo. O terceiro passo consiste na determinação deUUt, que é o conjunto de unidades que precisam ter suas posições alteradas pois estão sobre obstáculos.

A partir do quarto passo é que o algoritmo começa de fato. Em tal passo, se não foi criada nenhuma unidade sobre nenhum obstáculo, o algoritmo segue para o passo 11, para inserir uma nova unidade no ponto médio entre o par de unidades imediatamente vizinhas com maior distância entre si. Após isso, verifica-se novamente se há unidades sobre obstáculos. Esses passos são repetidos, até que haja alguma unidade sobre um obstáculo e o algoritmo segue para o passo 5, escolhendo uma das unidades sobre algum obstáculo. No passo 6, define-se o valor de um raio para análise em volta dessa unidade. No passo 7, escolhe-se um ponto aleatório dentro desse raio. No passo 8, define-se qual a unidade sobre obstáculos está mais próxima a esse ponto aleatório. No passo 9, é verificado se esse ponto está em um espaço vago (se F(x) > 0): se está, a unidade é atraída por esse ponto, de acordo com a Equação 2.1 definida por Durbin e Willshaw (1987), caso contrário o ponto aleatório está sobre um obstáculo e a unidade da rede é afastada ortogonalmente ao segmento de reta formado entre os vizinhos imediatos dessa unidade (Figura 2.3-b). No passo 10, também são atualizadas as posições dos vizinhos imediatos da unidade em direção ao ponto aleatório, caso esse esteja em uma posição livre do mapa (F(x) > 0). O passo 11 segue criando uma nova unidade. No passo 12, verifica, é verificado se foi alcançado o máximo de iterações ou unidades na rede para que o algoritmo seja finalizado, em caso afirmativo. Caso contrário, incrementa-se o número de iterações (t = t + 1). As variáveis tmaxe Nmaxmencionadas nesse passo referem-se aos números máximos de iterações

e unidades que devem ser especificados no algoritmo.

A quantidade de unidades utilizada no método define se o caminho será livre de obstáculos. Por outro lado, definir um limite alto de unidades levará a muitas inserções destas na rede, aumentando as chances de que recaiam sobre obstáculos e de que o algoritmo trate essa situação. Assim, escolher um número baixo para o limite de unidades pode gerar caminhos cruzando obstáculos. Apesar disso, Melo e Veloso (2007) não definem estratégias quanto à escolha de tal parâmetro.

Alguns resultados obtidos por Melo e Veloso (2007) são apresentados na Figura 2.4. Na Figura 2.4-a o algoritmo executa em um ambiente sem obstáculos, na Figura 2.4-b, 25 obstá- culos, na Figura 2.4-c e 2.4-d são 40 obstáculos, na Figura 2.4-e e 2.4-f são 60 obstáculos, na Figura 2.4-g são 80 obstáculos e na Figura 2.4-h são 100 obstáculos. Os obstáculos quadrados foram criados aleatoriamente no mapa.

Figura 2.4: Resultados obtidos das simulações de Melo e Veloso (2007).

Documentos relacionados