Académique Documents
Professionnel Documents
Culture Documents
Problemas exponenciais
desejvel resolver instncias grandes de problemas de otimizao em tempo razovel. Os melhores algoritmos para problemas NP-completo tm comportamento de pior caso exponencial no tamanho da entrada. Para um algoritmo que execute em tempo proporcional a 2N, no garantido obter resposta para todos os problemas de tamanho N 100. Independente da velocidade do computador, ningum poderia esperar por um algoritmo que leva 2100 passos para terminar sua tarefa Um supercomputador poderia resolver um problema de tamanho N=50 em 1 hora, ou N=51 em 2 horas, ou N=59 em um ano Nem um computador paralelo com um milho de processadores, (cada um sendo um milho de vezes mais rpido que o mais rpido existente) suficiente para N=100
PAA - Adaptado de Prof. Loureiro dcc/ufmg 2
Aplicando o DFS ao grafo da figura abaixo a partir do vrtice 0, o procedimento Visita obtm o caminho 0 -1 2 - 4 - 3 - 5 - 6, o que no um ciclo simples
Para encontrar um ciclo de Hamilton, caso exista, devemos visitar os vrtices do grafo de outras maneiras. A rigor, o melhor algoritmo conhecido resolve o problema tentando todos os caminhos possveis.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 5
Para o Grafo
A rvore de caminhamento :
Entretanto, esta tcnica no sempre possvel de ser aplicada. Suponha que se queira um caminho de custo mnimo que no seja um ciclo e passe por todos os vrtices: 0 6 4 5 3 1 2 soluo. Neste caso, a tcnica de eliminar simetrias no funciona porque no sabemos a priori se um caminho leva a um ciclo ou no.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 9
Complexidade: O(n2), sendo n o nmero de cidades, ou O(d), sendo d o conjunto de distncias entre cidades. Aspecto negativo: embora todas as arestas escolhidas sejam localmente mnimas, a aresta final pode ser bastante longa.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 12
Caminho timo para esta instncia: 0 - 1 - 2 - 5 - 3 - 4 0 (comprimento 58). Para a heurstica do vizinho mais prximo, se iniciarmos pelo vrtice 0, o vrtice mais prximo o 1 com distncia 3. A partir do 1, o mais prximo o 2, a partir do 2 o mais prximo o 4, a partir do 4 o mais prximo o 3, a partir do 3 restam o 5 e o 0. O comprimento do caminho 0 - 1 - 2 - 4 - 3 - 5 - 0 60.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 13
Embora o algoritmo do vizinho mais prximo no encontre a soluo tima, a obtida est bem prxima do timo. Entretanto, possvel encontrar instncias em que a soluo obtida pode ser muito ruim. Pode mesmo ser arbitrariamente ruim, uma vez que a aresta final pode ser muito longa. possvel achar um algoritmo que garanta encontrar uma soluo que seja razoavelmente boa no pior caso, desde que a classe de instncias consideradas seja restrita.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 14
15
16
1. d (i, j ) d ( j, i ) i, j N 2. d (i, j ) 0 i, j N
3. d (i, j ) d ( j , k ) d (i, k ) i, j, k N
1 propriedade: a distncia da cidade i at outra j igual de j at i
Quando isso no acontece, temos o problema conhecido como PCV Assimtrico
2 propriedade: apenas distncias positivas. 3 propriedade: desigualdade triangular. A distncia de i at j somada a de j at k deve ser maior do que a distncia de i at k.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 18
Quando o problema exige distncias no restritas desigualdade triangular, basta adicionar uma constante k a cada distncia Exemplo: as trs distncias envolvidas so 2, 3 e 10, que no obedecem desigualdade triangular pois 2+3<10. Adicionando k=10 s trs distncias obtendo 12, 13 e 20, que agora satisfazem a desigualdade triangular. O problema alterado ter a mesma soluo tima que o problema anterior, apenas com o comprimento da rota tima diferindo de n x k Cabe observar que o PCV equivale a encontrar no grafo G=(V,E) um circuito Hamiltoniano de custo mnimo.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 19
20
22
23
24
O algoritmo constri um caminho soluo para o PCV porque cada cidade visitada apenas uma vez, exceto a cidade de partida. O caminho obtido no maior que o caminho obtido em uma busca em profundidade, cujo comprimento no mximo duas vezes o do caminho timo. Os principais passos do algoritmo so: Obtenha a rvore geradora mnima para o conjunto de n cidades, com custo O(n2) Aplique a busca em profundidade na AGM obtida com custo O(n), a saber:
Inicie em uma folha (grau 1). Siga uma aresta no utilizada. Se for retornar para uma cidade j visitada, salte para a prxima ainda no visitada (rota direta menor que a indireta pela desigualdade triangular). Se todas as cidades tiverem sido visitadas, volte cidade de origem.
Assim, obtivemos um algoritmo polinomial de custo O(n2) , com uma razo de aproximao garantida para o pior caso de RA < 2.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 25
Passos do algoritmo:
Suponha uma AGM que tenha cidades do PCV como vrtices. Dobre suas arestas para obter um grafo Euleriano. Encontre um caminho Euleriano para esse grafo. Converta-o em um caminho do caixeiro viajante usando curto-circuitos.
Pela desigualdade triangular, o caminho do caixeiro viajante no pode ser mais longo do que o caminho Euleriano e, conseqentemente, de comprimento no mximo duas vezes o comprimento da AGM.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 27
28
Considere a AGM T um grafo Alguns vrtices em T j possuem grau par, assim no precisariam receber mais arestas se quisermos transformar a rvore em um grafo Euleriano. Os nicos vrtices com que temos de nos preocupar so os vrtices de grau mpar. Existe sempre um nmero par de vrtices de grau mpar, desde que a soma dos graus de todos os vrtices tenha de ser par porque cada aresta contada exatamente uma vez. Uma maneira de construir um grafo Euleriano que inclua T simplesmente obter um casamento para os vrtices de grau mpar. Isto aumenta de um o grau de cada vrtice de grau mpar. Os de grau par no mudam. Se adicionamos em T um casamento mnimo para os vrtices de grau mpar, obtemos um grafo Euleriano que tem comprimento mnimo dentre aqueles que contm T
29
a) b) c) d)
Uma rvore geradora mnima T T mais um casamento mnimo dos vrtices de grau mpar Caminho de Euler em 2 Busca em profundidade com curto-circuito.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 30
Basta agora determinar o comprimento do grafo de Euler. Caminho do caixeiro viajante em que podem ser vistas seis cidades correspondentes aos vrtices de grau mpar enfatizadas.
Seja I uma instncia do PCV, e Comp(T), Comp(M) e Comp(M), respectivamente , a soma dos comprimentos de T, M e M Pela desigualdade triangular devemos ter que: Comp(M) + Comp(M) timo(I) Assim, ou M ou M tem de ter comprimento menor ou igual a timo(I)/2 Logo, o comprimento de um casamento mnimo para os vrtices de grau mpar de T tem tambm de ter comprimento no mximo timo(I)/2 Desde que o comprimento de M menor do que o caminho do caixeiro viajante timo, podemos concluir que o comprimento o grafo Euleriano construdo : Comp(I) < (3/2) timo(I)
PAA - Adaptado de Prof. Loureiro dcc/ufmg 32
Assim obtivemos um algoritmo polinomial de custo O(n3), com uma razo de aproximao garantida para o pior caso de RA < 3/2
PAA - Adaptado de Prof. Loureiro dcc/ufmg 33
Neste caso, para uma instncia I: C(I) = (3/2)[timo(I)-1], onde o timo(I) =11, C(I) =15, e AGM = 10.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 34
BOAS FRIAS!!!
35