PCC104 - DECOM-UFOP

Propaganda
PCC104 - Projeto e Análise de Algoritmos
Marco Antonio M. Carvalho
Departamento de Computação
Instituto de Ciências Exatas e Biológicas
Universidade Federal de Ouro Preto
3 de fevereiro de 2017
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
1 / 40
Avisos
Site da disciplina:
I
http://www.decom.ufop.br/marco/
Lista de e-mails:
I
[email protected]
Para solicitar acesso:
I
http://groups.google.com/group/pcc104
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
2 / 40
Na aula de hoje
1
Caminhos e Ciclos Hamiltonianos
2
Caracterização
3
O Problema do Caixeiro Viajante
4
Casos Especiais
5
Evolução dos Benchmarks
6
Algoritmo de Christofides
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
3 / 40
Avisos
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
4 / 40
Caminhos e Ciclos Hamiltonianos
Histórico
Em 1856, Thomas Penyngton Kirkman, listado entre os dez mais importantes
matemáticos britânicos do séc. 19, escreveu um trabalho que examinava as
condições de existência de ciclos que não repetissem vértices ou arestas,
desenvolvidos sobre certos tipos de sólidos;
Especificamente, seu trabalho se concentrava em poliedros simples e examinava
um caso semelhante ao apresentado na figura.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
5 / 40
Caminhos e Ciclos Hamiltonianos
Histórico
Kirkman havia se deparado com o problema de encontrar um ciclo em um
grafo que passasse por todos os vértices sem admitir vértices repetidos;
Dentre os diversos tipos possíveis ciclos em grafos, este é um dos de maior
importância, tanto sob o aspecto teórico quanto sob o aspecto da aplicação
em problemas reais;
Historicamente, estes ciclos são denominados Hamiltonianos, devido a
William Rowan Hamilton (matemático, físico e astrônomo irlandês), que,
em 1957 propôs um jogo que denominou Around the World ;
O jogo era feito sobre um dodecaedro (20 vértices de grau 3 e 30 arestas),
em que cada vértice estava associado a uma cidade importante na época;
O desafio consistia em encontrar uma rota através dos vértices do
dodecaedro que iniciasse e terminasse na mesma cidade, sem repetir uma
cidade sequer.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
6 / 40
Caminhos e Ciclos Hamiltonianos
Around the World, ou Icosian Game.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
7 / 40
Caminhos e Ciclos Hamiltonianos
Grafo que representa o jogo, uma solução e um ciclo hamiltoniano.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
8 / 40
Grafos Hamiltoniano e Semi-Hamiltoniano
Caminho Hamiltoniano
Um caminho hamiltoniano é um caminho que passa por cada vértice de um
grafo exatamente uma vez.
Ciclo Hamiltoniano
Um ciclo hamiltoniano é um caminho hamiltoniano que retorna ao vértice
inicial.
Grafo Hamiltoniano
Um grafo é dito hamiltoniano se possui um ciclo hamiltoniano.
Grado Semi-Hamiltoniano
Um grafo é dito semi-hamiltoniano se possui um caminho hamiltoniano.
Claramente, um grafo hamiltoniano é também semi-hamiltoniano.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
9 / 40
Grafos Hamiltoniano e Semi-Hamiltoniano
Grafo hamiltoniano, grafo não hamiltoniano e caminho hamiltoniano.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
10 / 40
Caracterização
Insuficiente
Não se conhece uma condição necessária e suficiente trivial para a
existência de um ciclo hamiltoniano em um grafo.
Karp, 1972
O problema de decisão associado à determinação de ciclos e caminhos em
grafos sem propriedades peculiares é NP-Completo.
Sem Facilitador
Decidir de se um grafo é hamiltoniano é NP-Completo mesmo que o grafo:
I
Seja planar (Garey et al, 1976);
I
Possua um caminho hamiltoniano conhecido (Papadimitriou &
Steiglitz, 1976).
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
11 / 40
Caracterização
Teorema de Dirac, 1952
Um grafo G = (V, A) com n ≥ 3 e d(x) ≥ n/2 para todo x ∈ V é
hamiltoniano.
Teorema de Ore, 1961
Uma condição suficiente para que um grafo seja hamiltoniano é que a soma
dos graus de cada par de vértices não adjacentes seja no mínimo n.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
12 / 40
O Fecho Hamiltoniano - Φ(G)
Definição
O fecho hamiltoniano de um grafo G, Φ(G) é o grafo obtido a partir de G
do seguinte modo: sucessivamente são adicionadas arestas entre pares de
vértice u e v não adjacentes cuja soma dos graus seja pelo menos n, até
que em algum momento tais pares não existam mais.
Teorema de Bondy & Chvátal, 1976
Se Φ(G) = Kn então G será hamiltoniano.
Outro resultado: um grafo será hamiltoniano se e somente se Φ(G) é
hamiltoniano.
Exercício
Tente usar esse resultado para o grafo C4 .
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
13 / 40
Ciclos
Propriedade
Todo grafo Hamiltoniano com n-vértices é constituído por um Cn e mais
algumas arestas.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
14 / 40
O Problema do Caixeiro Viajante
Definição
O Problema do Caixeiro Viajante – PCV, consiste em determinar um ciclo
hamiltoniano de custo mínimo em um grafo ponderado direcionado ou
não.
Complexidade
Encontrar um ciclo hamiltoniano de custo mínimo em um grafo sem
propriedades particulares é NP-Difícil.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
15 / 40
O Problema do Caixeiro Viajante
Grafo de exemplo e solução do PCV.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
16 / 40
O Problema do Caixeiro Viajante
Histórico
O Problema do Caixeiro Viajante é um problema clássico de otimização
combinatória;
De acordo com o trabalho On the history of combinatorial optimization, de
1960, a idéia de um ciclo hamiltoniano de custo mínimo como um
problema de aplicação surgiu em 1920 em Viena, atribuído a Karl Menger;
Karl Menger conhece Hassler Whitney, que supostamente, entre 1931 e
1932, teria se referido ao problema como o Problema do Caixeiro Viajante;
Obviamente, esta versão da história não está isenta de contestações.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
17 / 40
O Problema do Caixeiro Viajante
Histórico
Nos anos seguintes, o problema foi estudado por diversos pesquisadores:
I
Menger (1940);
I
Milgran (1940);
I
Mahalanobis (1940);
I
Jessen (1942);
I
Gosh (1948);
I
Maks (1948);
I
Flood, em 1956, publica um trabalho pioneiro na revista Operations
Research.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
18 / 40
O Problema do Caixeiro Viajante
A Importância do PCV
O problema do caixeiro viajante é um dos problemas de otimização
combinatória mais intensamente pesquisados até o momento. Esta
importância é atribuída a três características combinadas:
I
Grande número de aplicações práticas;
I
Relação com vários outros problemas e muitas variantes;
I
Grande dificuldade de solução exata.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
19 / 40
O Problema do Caixeiro Viajante
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
20 / 40
O Problema do Caixeiro Viajante
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
21 / 40
O Problema do Caixeiro Viajante
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
22 / 40
O Problema do Caixeiro Viajante
O Filme
Quatro matemáticos descobrem um
algoritmo para solução eficiente do
PCV e provam que P=NP, quando se
confrontam com as implicações
globais da descoberta.
O departamento de defesa americano
oferece US$10 milhões para cada
pelo algoritmo, porém, um dos
matemáticos se recusa a vender,
sendo forçado a revelar um segredo
importante sobre sua parte do
algoritmo.
Lançado em 2012.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
23 / 40
Casos Especiais do PCV
PCV Métrico (ou PVC com Desigualdade Triangular)
Também conhecido como ∆-PCV, em que as distâncias entre as cidades
obedecem à desigualdade triangular, ou seja, a distância de uma cidade A
até uma cidade B nunca é maior do que uma rota que inclui uma cidade
intermediária C. Em outras palavras dAB ≤ dAC + dCB .
PCV Euclideano
Também conhecido como PCV planar, em que as distâncias são
euclideanas.
PCV Assimétrico
A distância entre dois vértices no grafo dependem do sentido em que a
aresta está sendo percorrida.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
24 / 40
O Problema do Caixeiro Viajante
Evolução dos Benchmarks
Ao longo do tempo, a ampla investigação e criação de métodos para
solução do PCV resultou em uma grande evolução no tamanho das
instâncias não triviais resolvidas à otimalidade:
I
318 cidades (1980);
I
7.397 cidades (1990);
I
24.978 cidades (2004);
I
85.900 cidades (2006).
Atualmente, a maior instância do PCV não resolvida é conhecida como
“World TSP”, contando com 1.904.711 cidades a .
a
Disponível em http://www.math.uwaterloo.ca/tsp/world/index.html
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
25 / 40
O Problema do Caixeiro Viajante
15.112 cidades na Alemanha e 24.978 cidades na Suécia.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
26 / 40
O Problema do Caixeiro Viajante
85.900 pontos em um circuito VLSI.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
27 / 40
O Problema do Caixeiro Viajante
World TSP: 1.904.711 cidades.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
28 / 40
Algoritmo de Christofides
Princípio
O algoritmo de Christofides, proposto em 1976, determina um ciclo
hamiltoniano da seguinte forma:
I
Dado um grafo G, determina uma árvore geradora mínima T ;
I
Calcula um casamento perfeito de custo mínimo entre os vértices de
grau ímpar de T ;
I
Adiciona as arestas do casamento em T , tornando-a um grafo
euleriano;
I
Aplica o procedimento Twice-Around para determinar o ciclo
hamiltoniano a partir do ciclo euleriano.
Comprovadamente, o algoritmo de Christofides produz soluções que são no
máximo 1,5 vezes piores do que as soluções ótimas do ∆-PCV.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
29 / 40
Twice-Around
Princípio
O algoritmo de Christofides utiliza parte do princípio da heurística
Twice-Around ;
Partindo de uma árvore geradora mínima de um grafo G, um ciclo
hamiltoniano é obtido a partir de um ciclo euleriano em G através de um
percurso que, utilizando “atalhos” sempre que possível, evita a repetição de
vértices no ciclo.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
30 / 40
Algoritmo de Christofides
Terminologia
I
H: conjunto de vértices que determinam o ciclo hamiltoniano;
I
T : árvore geradora mínima do grafo da entrada;
I
AT : conjunto de arestas de T ;
I
G0 = (V0 , A0 ): grafo reduzido que possui os vértices de grau ímpar de
T e as arestas de A incidentes aos vértices de T ;
I
E: casamento perfeito de custo mínimo dos vértices de G0 ;
I
G0 : grafo que possui o conjunto de vértices original e o conjunto de
arestas de T e E;
I
L: ciclo euleriano em G’.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
31 / 40
Algoritmo de Christofides
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Entrada: Grafo G = (V , A)
H ← ∅;
determine T = (V, AT ), uma árvore geradora mínima de G;
defina G0 = (V0 , A0 ), onde V0 é o conjunto de vértices de T que possuem
grau ímpar e A0 = {(i, j) ∈ A|i, j ∈ V0 };
determine E, o casamento perfeito de custo mínimo em G0 ;
faça G0 = (V, AT ∪ E);
determine um ciclo euleriano L em G0 ;
//Twice-Around
enquanto L 6= ∅ faça
escolher sequencialmente lk ∈ L;
se lk 3 H então
H ← H ∪ {lk };
fim
L ← L \ lk ;
fim
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
32 / 40
Algoritmo de Christofides
Grafo G.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
33 / 40
Algoritmo de Christofides
Vértices de grau ímpar na árvore geradora mínima T obtida a partir de G.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
34 / 40
Algoritmo de Christofides
Casamento E = {(2, 4), (6, 3)} em G.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
35 / 40
Algoritmo de Christofides
G0 = (V, AT ∪ E)
Grafo cujas arestas são a união das arestas da árvore geradora mínima e do
casamento perfeito de custo mínimo.
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
36 / 40
Algoritmo de Christofides
L = 6-3-6-1-2-4-5-6 (possui repetição)
H = (6, 3, 1, 2, 4, 5, 6).
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
37 / 40
Algoritmo de Christofides
Complexidade
A complexidade do algoritmo é limitada pela complexidade da etapa que
determina o casamento dos vértices, que é O(n3 ).
Relação de Aproximação
Conforme mencionado anteriormente, este algoritmo é uma
3/2-aproximação para o Problema do Caixeiro Viajante Métrico (em que as
distâncias obedecem a desigualdade triangular).
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
38 / 40
Algoritmo de Christofides
Relação de Aproximação
Seja A o conjunto de arestas que formam a solução ótima do ∆-PCV;
Dado que o grafo é conectado, ele possui uma árvore geradora mínima T , tal que
w(A) ≥ w(T ), em que a função w determina o peso das arestas;
Seja B o conjunto de arestas da solução ótima do PCV considerando os vértices
de V0 (o conjunto de vértices de grau ímpar em T ) como um grafo completo;
Dado que os pesos das arestas respeita a desigualdade triangular, temos que
w(A) ≥ w(B), uma vez que visitar mais vértices não pode reduzir o custo total;
Há um casamento perfeito de vértices em V0 com peso inferior a
w(B)/2 ≤ w(A)/2 e este pode ser um limitante superior para o custo de E;
Desta forma, temos que w(T ) + w(E) ≤ w(A) + w(A)/2, ou seja, o peso da
solução encontrada é menor ou igual a 32 w(A).
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
39 / 40
Dúvidas?
Marco Antonio M. Carvalho (UFOP)
PCC104
3 de fevereiro de 2017
40 / 40
Download