Você está na página 1de 4

3 Problema do Caixeiro Viajante

O Problema do Caixeiro Viajante (PCV) um problema combinatrio


fundamentalmente matemtico que tem perdurado por longo tempo. No se sabe ao
certo um documento que comprove sua autoria, muito menos a origem do nome. Em
meados de 1800, problemas relacionados ao PCV comearam a ser desenvolvidos,
mas somente em 1950 ficou conhecido globalmente em sua forma geral.
(APPLEGATE et al, 2006).
Define-se o Problema do Caixeiro Viajante como a busca de um percurso em
um grafo, partindo-se de um vrtice inicial e visitando cada um dos outros vrtices
uma nica vez, e retrocedendo ao ponto de partida, de forma que a distncia do
circuito percorrido seja mnimo (NILSON, 1982). A Figura 3.1 mostra um grafo com
um possvel percurso.

Figura 3.1 - Um possvel circuito no grafo.

Considere o circuito a ser formado a partir de um grafo com n vrtices.


Partindo-se de determinado vrtice, o prximo vrtice a ser escolhido deve ser um
dos n-1 vrtices restantes do conjunto, dado que no haja repetio de vrtice,
exceto o primeiro e o ltimo vrtice que forma o fechamento do percurso. O seguinte
a ser escolhido ser um dos n-2 vrtices ainda no escolhidos. Dessa forma, por um
raciocnio indutivo, conclui-se que o conjunto de todas as rotas possveis dado por:

Por exemplo, para um grafo de 30 vrtices, o nmero de rotas ser dado por
30!, isto , 265252859812191058636308480000000 caminhos possveis, o que
caracteriza o problema como no-determinstico. Por se tratar de um problema NP-
Completo1, o nmero de circuitos possveis tem crescimento exponencial, o que
aumenta o espao de busca, e consequentemente, o tempo de se encontrar a
soluo (RAMOS, 2001). Portanto, uma abordagem de otimizao computacional,
como a utilizao de algoritmos evolutivos, em busca da soluo deve ser
implementada.

3.1 Algoritmo Evolutivo para o Problema do Caixeiro Viajante

Considere um grafo com n vrtices, representado em uma matriz de


distncias ligando cada par de vrtice. O objetivo do PCV partir de um vrtice de
origem, visitar cada um dos outros vrtices uma nica vez e retorna ao vrtice
original, minimizando a distncia total (RAMOS, 2001).
Dado os n vrtices do grafo, as rotas possveis podem ser representadas
como uma permutao dos n vrtices, isto , um circuito ligando cada um desses
pontos considerando que h uma ligao entre o ltimo vrtice e o primeiro de tal
permutao. Por exemplo, a permutao [7,2,5,6,1,3,4] corresponde ao circuito da
da Figura 3.2.

Figura 3.2 - Rota no grafo.

A representao de uma rota no algoritmo evolutivo pode ser representado


de forma similar (RAMOS, 2001). O cromossomo denotado por um vetor idntico a
permutao, ou seja, dado a rota ou permutao descrita anteriormente, seu
cromossomo respectivo ser {7,2,5,6,1,3,4}.

1 Na teoria da complexidade computacional, NP-Completo a classe de problemas cujo o espao de busca


uma funo fatorial do nmero de incginitas (LINDEN, 2008)
Assim, utilizando essa representao, o PCV tem como espao de busca o
conjunto de todas as permutaes possveis, ou seja, dado uma coleo de rotas,
determina-se a melhor soluo, como o caminho de menor distncia.
O processo de gerao da populao inicial de indivduos no AG, para o PCV,
pode ser abordado de vrias formas, utilizando at mesmo um procedimento
aleatrio. Por exemplo, para a populao inicial com m indivduos, gera-se m vetores
distintos de tamanho n por uma sequncia de vrtices que tambm so distintos
entre si (RAMOS, 2001).
A funo de avaliao a ser otimizada ser a soma das distncias (d i,j), ou
seja, deve-se minimizar custos do percurso ou descobrir a menor rota possvel.
Logo, a funo de avaliao f ser dado por:

O processo de reproduo consiste na seleo de rotas da populao atual


como maior fitness, para a formao de novos indivduos. Os operadores de
reproduo so aqueles comuns aos AG, como crossover e mutao. Um exemplo
do operador de crossover o OX criado por Davis (DAVIS, 1985), que impede rotas
invlidas sejam criadas no processo de gerao, alm de manter subsequncia dos
pais geradores. J o processo de mutao, altera um ou mais genes do
cromossomo gerado de acordo com algum operador. Por exemplo, atribui-se uma
probabilidade a cada um dos genes presente no cromossomo, e utilizando uma
funo de probabilidades, selecionam-se dois genes para que seus alelos seja
invertidos (RAMOS, 2001).
3.2 Algoritmo de Vaga-lumes para o Problema do Caixeiro Viajante

O algoritmo AVL foi concebido para lidar com variveis contnuas. Contudo,
pode-se estender para solues discretas, aplicando em alguns problemas como o
problema do caixeiro viajante (KOIDE, 2016).
No problema em questo necessrio redefinir algumas funes. Segundo
Durkota (2011), considera-se o espao de busca como todas as permutaes
possveis de (1, 2, ...,n). Para as equaes do movimento definido como:

A soluo inicial, isto , a permutao (1, 2, .., n) pode ser eleita de forma
randmica. O clculo da distncia para o caso de variveis discretas pode ser
realizada com o clculo da distncia de Hamming, que definida como o nmero de
elementos que no se correspondem entre duas permutaes de mesmo tamanho
(KOIDE, 2016). Por exemplo, dado as permutaes P1 = [1,2, 3, 4, 5] e P 2 = [1, 2, 3,
5, 4], a distncia de Hamming (P1, P2) = 2.
No decorrer das iteraes do algoritmo, as distncias dos vaga-lumes em
relao a outros vaga-lumes tendem a diminuir. Utilizando a distncia de Hamming,
as quantidades de elementos comuns devem aumentar para obterem-se as menores
distncias. Deste modo, o passo- inicia com a anlise dos elementos comuns entre
as permutaes (KOIDE, 2016). Para explicao, considere as seguintes
permutaes P1 = [4, 9, 3, 7, 6, 8, 2, 1, 5] e P 2 = [4, 1, 3, 2, 5, 9, 7, 8]. Verifique que
P1 P2 = [ 4, _, 3, _, 6, _, _, _, _ ].
Os espaos vazios so completados em relao s permutaes P 1 e P2.
Utilizando a probabilidade de (r), sendo r a distncia de Hamming, complementa-se
a permutao P1 P2 inserindo elementos de P1 ou P2, evitando a repetio de
elementos. Contudo, se ainda assim houver espaos em branco, eles so
preenchidos de maneira aleatria. Pode-se observar que o passo- se encaixa no
processo de crossover nos algoritmos genticos.
Para o processo de mutao pode-se utilizar o passo-, que consiste em
permutar dois elementos vizinhos. Essa permutao pode ser tanto pela escolha
aleatria de alguns elementos, quanto pela troca de dois elementos adjacentes.

Você também pode gostar