Upload
internet
View
107
Download
0
Embed Size (px)
Citation preview
Franklina M. B. Toledo / Alysson M. Costa 09:19 12 mar 2009.
Otimização em grafos
Traveling Salesman Problem: Alguns métodos heurísticos
FMBT/ AMC 09:48 12 mar 2009.
• Procedimentos de construção• Procedimentos de melhoria
FMBT/ AMC 09:48 12 mar 2009.
Procedimentos de construção
• Três etapas:– escolha de um ciclo (ou ponto) inicial– critério de seleção– critério de inserção
FMBT/ AMC 09:48 12 mar 2009.
• ciclo inicial:– um ponto aleatório– o envoltória convexa dos pontos
FMBT/ AMC 09:48 12 mar 2009.
Flood, 1956: todo TSP euclidiano tem uma solução ótima que visita os pontos da fronteira do envoltória convexa na mesma ordem em que eles aparecem.
FMBT/ AMC 09:48 12 mar 2009.
Nearest neighbor algorithm
Belmore and Nemhauser (Survey paper, 1968)
1. comece com uma cidade i (arbitrária); 2. encontre o nó ainda não adicionado que seja
mais próximo do último nó adicionado; Conecte estes dois nós.
3. Enquanto o último nó não tiver sido adicionado, volte para 2.
4. Quando o último nó tiver sido adicionado, conecte-o ao primeiro nó que foi adicionado.
FMBT/ AMC 09:48 12 mar 2009.
Nearest neighbor algorithm (exemplo 1)
FMBT/ AMC 09:48 12 mar 2009.
Nearest neighbor algorithm (exemplo 2)
FMBT/ AMC 09:48 12 mar 2009.
Nearest addition
1. comece com uma cidade i (arbitrária) e seu vizinho mais próximo j; T={i,j}
2. (seleção) encontre (j,k) que minimiza cjk, com j 2 T e k T. T= T+{k}.
3. (inserção) elimine o arco (i,j), onde i é um vizinho imediato de j no ciclo atual e adicione os arcos (i,k) e (k,j).
4. enquanto não for formado um ciclo hamiltoniano, volte para 2.
FMBT/ AMC
Retirado de: www.math.wsu.edu/faculty/bkrishna/FilesMath566/F08/Handouts/TSPApproxSchemes.ppt
FMBT/ AMC 09:48 12 mar 2009.
Arbitrary insertion procedure
Rosenkrantz, Stearns, Lewis, 1977
1. comece com uma cidade i (arbitrária) e seu vizinho mais próximo j; Forme o subciclo (i,j)
2. (Seleção) Selecione arbitrariamente uma cidade k não pertencente ao subciclo.
3. (Inserção) Encontre o arco (i,j) que minimiza cik+ ckj - cij. Insira k entre i e j.
4. Volte para 3 a menos que todos os arcos tenham sido inseridos.
FMBT/ AMC 09:48 12 mar 2009.
Convex hull insertion procedure
Stewart, 1977
1. Forme o convex hull (envoltória convexa) das cidades. Este é o subciclo inicial.
2. (Inserção) Para cada cidade k fora do subciclo, decida onde ela deve ser inserida, i.e., (i,j) tal que cik+ckj-cij é mínimo.
3. (Seleção) Para todo (i,j,k) do item anterior, escolha (i*,j*,k*) aquele que minimiza (cik+ckj)/cij.
4. Insira k* entre i* e j*.5. Enquanto um ciclo hamiltoniano não tiver sido
encontrado, retorne ao passo 2.
FMBT/ AMC 09:48 12 mar 2009.
pelo critério (cik+ckj)/cij, escolha qual inserir
FMBT/ AMC 09:48 12 mar 2009.
Greatest angle insertion procedure
Norback & Love, 1977, 1979
1. Forme o convex hull (envoltória convexa) das cidades. Este é o subciclo inicial.
2. (Seleção e Inserção) Escolha a cidade k* ainda não incluida e o arco (i*,j*) do subtour tal que o ângulo formado pelos arcos (i,k) e (k,j) seja máximo.
3. Insira a cidade k* entre as cidades i e j.4. Enquanto um ciclo hamiltoniano não tenha sido
obtido, volte ao passo 2.
FMBT/ AMC 09:48 12 mar 2009.
Ratio times difference insertion procedure
Or, 1976
1. Forme o convex hull (envoltória convexa) das cidades. Este é o subciclo inicial.
2. (Seleção e Inserção) Escolha a cidade k* ainda não incluida e o arco (i*,j*) do subtour tal que o produto
{ci*k*+ck*j*-ci*j*}£{(ci*k*+ck*j*)/ci*j*}}
seja mínimo3. Insira a cidade k* entre as cidades i e j.4. Enquanto um ciclo hamiltoniano não tenha sido obtido,
volte ao passo 2.
FMBT/ AMC 09:48 12 mar 2009.
Clarke-Wright savings heuristic
(idéia)
1. Inicie com n-1 subciclos conectando uma cidade qualquer (hub) a cada uma das outras.
2. Para cada par de cidades, calcule a economia obtida na redução do subciclo.
3. Faça a redução
FMBT/ AMC 09:48 12 mar 2009.
Clarke-Wright savings heuristic
i j
k
savings: cjk + cik - cij
£ £
FMBT/ AMC 09:48 12 mar 2009.
Outras heurísticas
• Heurísticas baseadas em árvores– Cristofides– Minimum spanning tree heuristics
FMBT/ AMC 09:48 12 mar 2009.
Heurísticas de melhoria
• 2-opt• Lin-Kernighan (1973)• k-opt
FMBT/ AMC 09:48 12 mar 2009.
2-opt
• Idéia de vizinhança: trocar um arco por outro.
i j
k l
i j
k l
FMBT/ AMC 09:48 12 mar 2009.
3-opt, k-opt
i
j
k l
n
m
i
j
k l
n
m
k-opt...
FMBT/ AMC 09:48 12 mar 2009.
Lin-Kernighan
• Restringir k-opt àquelas configurações que podem ser obtidas como uma sequência de movimentos 2-opt.
• (Por que simplesmente não usar 2-opt ?)
k-opt2-opt Lin-Kernighan