09.05.2013 Views

TÉCNICAS HEURÍSTICAS PARA OPTIMIZAÇÃO COMBINATÓRIA

TÉCNICAS HEURÍSTICAS PARA OPTIMIZAÇÃO COMBINATÓRIA

TÉCNICAS HEURÍSTICAS PARA OPTIMIZAÇÃO COMBINATÓRIA

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Técnicas Heurísticas para Optimização Combinatória Jorge P. J. Santos<br />

PROBLEMA DO CAIXEIRO VIAJANTE<br />

Heurísticas de construção de percursos<br />

Menor custo de inserção<br />

Passo 0: Escolha um subpercurso inicial com duas cidades i1 e i2 tais<br />

que:<br />

29<br />

( d d )<br />

d i i + di<br />

i = mínimo ij +<br />

i V , j V<br />

i≠<br />

j<br />

∈ ∈<br />

1 2 2 1<br />

com V = {1,2,…,n} o conjunto de cidades.<br />

Passo 1: Determine o vértice k não pertencente ao subpercurso com<br />

menor valor<br />

dik + dkj<br />

− dij<br />

= mínimo d pk + dkq<br />

− d<br />

( p,<br />

q)<br />

∈T<br />

com T o percurso já construído.<br />

ji<br />

( )<br />

Passo 2: Insera o nó k entre os nós i e j. Se não houver mais nós para<br />

inserir, pare com o subpercurso obtido. Caso contrário, volte<br />

ao passo 1.<br />

Vizinho mais próximo<br />

Passo 0: Sejam i uma cidade inicial e V = {1,2,…,n}−{i} o conjunto<br />

de cidades a visitar.<br />

Passo 1: Calcule a cidade j mais próxima da cidade i a partir de:<br />

dij<br />

= mínimo dip<br />

p∈V<br />

Passo 2: Insira a cidade j imediatamente a seguir a i e faça<br />

i = j e V = V − {j}<br />

Passo 3: Se V = ∅, termine. Caso contrário, volte ao passo 1.<br />

pq<br />

(*)<br />

Técnicas Heurísticas para Optimização Combinatória Jorge P. J. Santos<br />

Heurísticas de melhoramento de percursos<br />

As heurísticas de melhoramentos de percursos consistem em, a partir de<br />

um percurso inicial, efectuar permutações de k arcos. Ou seja, em<br />

substituir k arcos do percurso por k arcos não pertencentes ao percurso.<br />

Estas substituições terão de manter um percurso pelas n cidades e só se<br />

realizam se houver uma redução do valor da função objectivo. O caso<br />

k = 2 é descrito através do seguinte algoritmo<br />

Passo 0: Considere um percurso inicial<br />

Passo 1: Avalie o valor (redução ou aumento) de todas as trocas de<br />

dois arcos não consecutivos para o percurso corrente:<br />

i<br />

k<br />

l<br />

j<br />

Passo 2: Se nenhuma das potenciais trocas de dois arcos conduziu a<br />

uma redução, termine com o percurso corrente. Caso<br />

contrário actualize o percurso com a troca a que maior<br />

redução conduziu e volte ao passo 1.<br />

Nota: Os resultados computacionais até agora relatados na literatura<br />

apontam para o valor k = 3 como o mais adequado. Quatro trocas de<br />

arcos falha por ineficiência no processo de troca de arcos enquanto que<br />

duas trocas conduz a soluções não tão boas como desejáveis.<br />

30<br />

i<br />

k<br />

l<br />

j

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!