230 likes | 347 Views
Tópicos em otimização combinatória. Heurísticas construtivas. Heurísticas construtivas. Slide baseado em material da professora Vitória Pureza - UFSCAR. Slide do Professor Antonio A. Chaves – UNIFESP. Slide do Professor Antonio A. Chaves – UNIFESP.
E N D
Tópicos em otimização combinatória Heurísticas construtivas Alysson M. Costa – ICMC/USP
Heurísticas construtivas Slide baseado em material da professora Vitória Pureza - UFSCAR
Alguns comentátios Passo 4: a escolha do critério é, obviamente, essencial. Passo 6: note que a cada iteração, o conjuntos dos elementos candidatos pode mudar. (Assim sendo, uma solução parcial inicial pode mudar toda a solução).
Heurísticas construtivas para o TSP • Alguns exemplos de heurísticas construtivas para o TSP. • Três etapas: • escolha de um ciclo (ou ponto) inicial • critério de seleção • critério de inserção Slide baseado no material do professor Stephan Mertens: http://www-e.uni-magdeburg.de/mertens/TSP/TSP.html
ciclo inicial: • um ponto aleatório • o envoltória convexa dos pontos
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.
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.
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.
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.
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.
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.
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.
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
Clarke-Wright savings heuristic k £ £ j i savings: cjk + cik-cij