Traveling Salesman Problem: Alguns métodos heurísticos Otimização em grafos Traveling Salesman Problem: Alguns métodos heurísticos
Procedimentos de construção Procedimentos de melhoria 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 09:48 12 mar 2009.
ciclo inicial: um ponto aleatório o envoltória convexa dos pontos 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. 09:48 12 mar 2009.
Nearest neighbor algorithm Belmore and Nemhauser (Survey paper, 1968) comece com uma cidade i (arbitrária); encontre o nó ainda não adicionado que seja mais próximo do último nó adicionado; Conecte estes dois nós. Enquanto o último nó não tiver sido adicionado, volte para 2. Quando o último nó tiver sido adicionado, conecte-o ao primeiro nó que foi adicionado. 09:48 12 mar 2009.
Nearest neighbor algorithm (exemplo 1) 09:48 12 mar 2009.
Nearest neighbor algorithm (exemplo 2) 09:48 12 mar 2009.
Nearest addition comece com uma cidade i (arbitrária) e seu vizinho mais próximo j; T={i,j} (seleção) encontre (j,k) que minimiza cjk, com j 2 T e k T. T= T+{k}. (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). enquanto não for formado um ciclo hamiltoniano, volte para 2. 09:48 12 mar 2009.
Retirado de: www. math. wsu Retirado de: www.math.wsu.edu/faculty/bkrishna/FilesMath566/F08/Handouts/TSPApproxSchemes.ppt
Arbitrary insertion procedure Rosenkrantz, Stearns, Lewis, 1977 comece com uma cidade i (arbitrária) e seu vizinho mais próximo j; Forme o subciclo (i,j) (Seleção) Selecione arbitrariamente uma cidade k não pertencente ao subciclo. (Inserção) Encontre o arco (i,j) que minimiza cik+ ckj - cij. Insira k entre i e j. Volte para 3 a menos que todos os arcos tenham sido inseridos. 09:48 12 mar 2009.
Convex hull insertion procedure Stewart, 1977 Forme o convex hull (envoltória convexa) das cidades. Este é o subciclo inicial. (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. (Seleção) Para todo (i,j,k) do item anterior, escolha (i*,j*,k*) aquele que minimiza (cik+ckj)/cij. Insira k* entre i* e j*. Enquanto um ciclo hamiltoniano não tiver sido encontrado, retorne ao passo 2. 09:48 12 mar 2009.
pelo critério (cik+ckj)/cij, escolha qual inserir 09:48 12 mar 2009.
Greatest angle insertion procedure Norback & Love, 1977, 1979 Forme o convex hull (envoltória convexa) das cidades. Este é o subciclo inicial. (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. Insira a cidade k* entre as cidades i e j. Enquanto um ciclo hamiltoniano não tenha sido obtido, volte ao passo 2. 09:48 12 mar 2009.
Ratio times difference insertion procedure Or, 1976 Forme o convex hull (envoltória convexa) das cidades. Este é o subciclo inicial. (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ínimo Insira a cidade k* entre as cidades i e j. Enquanto um ciclo hamiltoniano não tenha sido obtido, volte ao passo 2. 09:48 12 mar 2009.
Clarke-Wright savings heuristic (idéia) Inicie com n-1 subciclos conectando uma cidade qualquer (hub) a cada uma das outras. Para cada par de cidades, calcule a economia obtida na redução do subciclo. Faça a redução 09:48 12 mar 2009.
Clarke-Wright savings heuristic £ £ i j savings: cjk + cik - cij 09:48 12 mar 2009.
Outras heurísticas Heurísticas baseadas em árvores Cristofides Minimum spanning tree heuristics 09:48 12 mar 2009.
Heurísticas de melhoria 2-opt Lin-Kernighan (1973) k-opt 09:48 12 mar 2009.
2-opt i j i j k l k l Idéia de vizinhança: trocar um arco por outro.
3-opt, k-opt i j k l n m i j k l n m k-opt... 09:48 12 mar 2009.
Lin-Kernighan 2-opt Lin-Kernighan k-opt 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 ?) 09:48 12 mar 2009.