Algoritmos de Aproximação para o Problema do Caixeiro Viajante
24 de agosto de 2004
TSP – p.1/19
Problema do Caixeiro Viajante
Dados
grafo
comprimento da aresta ( )
Circuito hamiltoniano: circuito que passa por todos os vértices
Problema (TSP): Dados e , encontrar circuito
hamiltoniano em de comprimento mínimo.
TSP – p.2/19
Problema do Caixeiro Viajante
Dados
grafo
comprimento da aresta ( )
Circuito hamiltoniano: circuito que passa por todos os vértices
Problema (TSP): Dados e , encontrar circuito
hamiltoniano em de comprimento mínimo.
TSP – p.2/19
Problema do Caixeiro Viajante
Dados
grafo
comprimento da aresta ( )
Circuito hamiltoniano: circuito que passa por todos os vértices
Problema (TSP): Dados e , encontrar circuito
hamiltoniano em de comprimento mínimo.
TSP – p.2/19
Variantes do Caixeiro Viajante
TSP métrico
grafo completo
função comprimento satisfaz
desigualdade triangular:
j i
k
TSP euclideano
Caso particular do métrico Vértices são pontos no plano
(ou num espaço euclideano qq de dimensão fixa)
é a distância euclideana entre e
TSP – p.3/19
Variantes do Caixeiro Viajante
TSP métrico
grafo completo
função comprimento satisfaz
desigualdade triangular:
j i
k
TSP euclideano
Caso particular do métrico Vértices são pontos no plano
(ou num espaço euclideano qq de dimensão fixa)
é a distância euclideana entre e
TSP – p.3/19
Resultados Conhecidos
NP-difícil mesmo se para toda aresta [GJ79]
Difícil de aproximar [SG76]
-aproximação para o caso métrico [C76]
PTAS para o caso euclideano [A98,M99]
Nesta aula:
-aproximação para o caso métrico [RSL77]
-aproximação para o caso métrico
Comentários sobre o PTAS do caso euclideano TSP é difícil de aproximar
TSP – p.4/19
Resultados Conhecidos
NP-difícil mesmo se para toda aresta [GJ79]
Difícil de aproximar [SG76]
-aproximação para o caso métrico [C76]
PTAS para o caso euclideano [A98,M99]
Nesta aula:
-aproximação para o caso métrico [RSL77]
-aproximação para o caso métrico
Comentários sobre o PTAS do caso euclideano TSP é difícil de aproximar
TSP – p.4/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(4) Obtenha de circuito hamiltoniano (5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
(5) Devolva
TSP – p.5/19
-aproximação p/o TSP Métrico
(1) Árvore geradora de comprimento mínimo (polinomial)
(2) Dobre as arestas da árvore (todos os vértices tem grau par)
(3) Obtenha ciclo euleriano (polinomial) ciclo euleriano: passeio fechado que passa
exatamente uma vez por cada aresta
(4) Obtenha de circuito hamiltoniano (5) Devolva
TSP – p.5/19
-Aproximação p/o TSP Métrico
Algoritmo TSPM-Rosenkrantz-Stearn-Lewis
MST
EULER
ATALHO
devolve Tempo de execução:
: o número de vértices de : o número de arestas de
TSP – p.6/19
-Aproximação p/o TSP Métrico
Algoritmo TSPM-Rosenkrantz-Stearn-Lewis
MST
EULER
ATALHO
devolve
Tempo de execução:
: o número de vértices de : o número de arestas de
TSP – p.6/19
-Aproximação p/o TSP Métrico
Delimitação inferior para opt: opt
onde é árvore geradora de comprimento mínimo Prova:
: circuito hamiltoniano de comprimento mínimo : aresta de
é árvore geradora opt
Teorema: TSPM-Rosenkrantz-Stearn-Lewis é uma -aproximação polinomial para o TSP métrico.
Prova: opt
TSP – p.7/19
-Aproximação p/o TSP Métrico
Delimitação inferior para opt: opt
onde é árvore geradora de comprimento mínimo Prova:
: circuito hamiltoniano de comprimento mínimo
: aresta de
é árvore geradora opt
Teorema: TSPM-Rosenkrantz-Stearn-Lewis é uma -aproximação polinomial para o TSP métrico.
Prova: opt
TSP – p.7/19
-Aproximação p/o TSP Métrico
Delimitação inferior para opt: opt
onde é árvore geradora de comprimento mínimo Prova:
: circuito hamiltoniano de comprimento mínimo
: aresta de
é árvore geradora
opt
Teorema: TSPM-Rosenkrantz-Stearn-Lewis é uma -aproximação polinomial para o TSP métrico.
Prova: opt
TSP – p.7/19
-Aproximação p/o TSP Métrico
Delimitação inferior para opt: opt
onde é árvore geradora de comprimento mínimo Prova:
: circuito hamiltoniano de comprimento mínimo
: aresta de
é árvore geradora
opt
Teorema: TSPM-Rosenkrantz-Stearn-Lewis é uma
-aproximação polinomial para o TSP métrico.
Prova: opt
TSP – p.7/19
-Aproximação p/o TSP Métrico
Delimitação inferior para opt: opt
onde é árvore geradora de comprimento mínimo Prova:
: circuito hamiltoniano de comprimento mínimo
: aresta de
é árvore geradora
opt
Teorema: TSPM-Rosenkrantz-Stearn-Lewis é uma
-aproximação polinomial para o TSP métrico.
Prova:
opt
TSP – p.7/19
Algoritmo de Christofides
(1) Árvore geradora de comprimento mínimo (2) Emparelhamento perfeito de comprimento mínimo no
subgrafo induzido pelos vértices de grau ímpar (polinomial)
(3) Junte os dois obtendo euleriano (4) Obtenha ciclo euleriano de
(5) Obtenha de circuito hamiltoniano (6) Devolva
TSP – p.8/19
Algoritmo de Christofides
(1) Árvore geradora de comprimento mínimo
(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)
(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)
(3) Junte os dois obtendo euleriano (4) Obtenha ciclo euleriano de
(5) Obtenha de circuito hamiltoniano (6) Devolva
TSP – p.8/19
Algoritmo de Christofides
(1) Árvore geradora de comprimento mínimo
(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)
(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)
(3) Junte os dois obtendo euleriano (4) Obtenha ciclo euleriano de
(5) Obtenha de circuito hamiltoniano (6) Devolva
TSP – p.8/19
Algoritmo de Christofides
(1) Árvore geradora de comprimento mínimo
(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)
(3) Junte os dois obtendo
euleriano (2) Emparelhamento perfeito de comprimento mínimo no
subgrafo induzido pelos vértices de grau ímpar (polinomial)
(3) Junte os dois obtendo euleriano (4) Obtenha ciclo euleriano de
(5) Obtenha de circuito hamiltoniano (6) Devolva
TSP – p.8/19
Algoritmo de Christofides
(1) Árvore geradora de comprimento mínimo
(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)
(3) Junte os dois obtendo
euleriano (4) Obtenha ciclo euleriano de
(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)
(3) Junte os dois obtendo euleriano (4) Obtenha ciclo euleriano de
(5) Obtenha de circuito hamiltoniano (6) Devolva
TSP – p.8/19
Algoritmo de Christofides
(1) Árvore geradora de comprimento mínimo
(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)
(3) Junte os dois obtendo
euleriano (4) Obtenha ciclo euleriano de
(5) Obtenha de circuito hamiltoniano (6) Devolva
TSP – p.8/19
Algoritmo de Christofides
(1) Árvore geradora de comprimento mínimo
(2) Emparelhamento perfeito de comprimento mínimo no subgrafo induzido pelos vértices de grau ímpar (polinomial)
(3) Junte os dois obtendo
euleriano (4) Obtenha ciclo euleriano de
(5) Obtenha de circuito hamiltoniano (6) Devolva
TSP – p.8/19
Algoritmo de Christofides
Algoritmo TSPM-Christofides
MST
conjunto de vértices de grau ímpar de
EDMONDS
EULER
ATALHO
devolve
( : subgrafo de induzido por ) Tempo de execução:
( : o número de vértices de )
TSP – p.9/19
Algoritmo de Christofides
Algoritmo TSPM-Christofides
MST
conjunto de vértices de grau ímpar de
EDMONDS
EULER
ATALHO
devolve
( : subgrafo de induzido por ) Tempo de execução:
( : o número de vértices de )
TSP – p.9/19
Algoritmo de Christofides
Uma segunda delimitação para opt: opt onde é e. p. de comprimento mínimo em Pr: : circuito hamiltoniano de comprimento mínimo
: conj. vért. de grau ímpar de ( é par) : circuito induzido por em
determina dois e. p. em : e
TSP – p.10/19
Algoritmo de Christofides
Uma segunda delimitação para opt: opt onde é e. p. de comprimento mínimo em
Pr: : circuito hamiltoniano de comprimento mínimo : conj. vért. de grau ímpar de ( é par)
: circuito induzido por em : circuito induzido por em
determina dois e. p. em : e
TSP – p.10/19
Algoritmo de Christofides
Uma segunda delimitação para opt: opt onde é e. p. de comprimento mínimo em
Pr: : circuito hamiltoniano de comprimento mínimo : conj. vért. de grau ímpar de ( é par)
: circuito induzido por em determina dois e. p. em : e
TSP – p.10/19
Algoritmo de Christofides
Uma segunda delimitação para opt: opt onde é e. p. de comprimento mínimo em
Pr: : circuito hamiltoniano de comprimento mínimo : conj. vért. de grau ímpar de ( é par)
: circuito induzido por em
determina dois e. p. em
: e
TSP – p.10/19
Algoritmo de Christofides
Uma segunda delimitação para opt: opt onde é e. p. de comprimento mínimo em . Prova:
(pela desigualdade triangular) opt
TSP – p.11/19
Algoritmo de Christofides
Teorema: TSPM-Christofides é uma -aproximação polinomial para o TSP métrico.
Prova:
opt opt opt
Melhor algoritmo de aproximação conhecido para o TSP métrico.
TSP – p.12/19
Algoritmo de Christofides
Teorema: TSPM-Christofides é uma -aproximação polinomial para o TSP métrico.
Prova:
opt
opt
opt
Melhor algoritmo de aproximação conhecido para o TSP métrico.
TSP – p.12/19
Algoritmo de Christofides
Teorema: TSPM-Christofides é uma -aproximação polinomial para o TSP métrico.
Prova:
opt
opt
opt
Melhor algoritmo de aproximação conhecido para o TSP métrico.
TSP – p.12/19
Algoritmo de Christofides
A análise é justa.
Christofides
vértices Comprimento:
Circuito ótimo
Comprimento:
TSP – p.13/19
Algoritmo de Christofides
A análise é justa.
Christofides
vértices Christofides
vértices Comprimento:
Circuito ótimo
Comprimento:
TSP – p.13/19
Algoritmo de Christofides
A análise é justa.
Christofides
vértices vértices
Comprimento:
Circuito ótimo
Comprimento:
TSP – p.13/19
Algoritmo de Christofides
A análise é justa.
Christofides
vértices Comprimento:
Circuito ótimo
Comprimento:
TSP – p.13/19
Algoritmo de Christofides
A análise é justa.
Christofides
vértices Comprimento:
Circuito ótimo
Comprimento:
TSP – p.13/19
TSP Euclideano
PTAS: esquema de aproximação polinomial
-aproximação polinomial para todo fixo
Arora’96 e Mitchel’96: PTAS para o TSP euclideano Idéia:
TSP – p.14/19
TSP Euclideano
PTAS: esquema de aproximação polinomial
-aproximação polinomial para todo fixo
Arora’96 e Mitchel’96: PTAS para o TSP euclideano Idéia:
PSfrag replacements
portal
TSP – p.14/19
TSP Euclideano
PTAS: esquema de aproximação polinomial
-aproximação polinomial para todo fixo
Arora’96 e Mitchel’96: PTAS para o TSP euclideano Idéia:
PSfrag replacements
portal
TSP – p.14/19
TSP Euclideano
PTAS: esquema de aproximação polinomial
-aproximação polinomial para todo fixo
Arora’96 e Mitchel’96: PTAS para o TSP euclideano Idéia:
PSfrag replacements portal
TSP – p.14/19
TSP Euclideano
PTAS: esquema de aproximação polinomial
-aproximação polinomial para todo fixo
Arora’96 e Mitchel’96: PTAS para o TSP euclideano Idéia:
PSfrag replacements portal
TSP – p.14/19
TSP Euclideano
PTAS: esquema de aproximação polinomial
-aproximação polinomial para todo fixo
Arora’96 e Mitchel’96: PTAS para o TSP euclideano Idéia:
Circuito que respeita portal: entra e sai dos quadrados da dissecção através de portais.
Algoritmo: Encontra um circuito hamiltoniano mais curto que respeita os portais por programação dinâmica.
Tal circuito está tão próximo quando se queira de um TSP tour.
TSP – p.15/19
Resultado de Inaproximabilidade
função polinomialmente computável Teorema (Sahni e Gonzalez ’76): Se existir
-aproximação polinomial p/o TSP
, onde , então P=NP.
Problema HC: Dado , decidir se tem ou não um circuito hamiltoniano.
NP-completo [K72]
TSP – p.16/19
Resultado de Inaproximabilidade
função polinomialmente computável Teorema (Sahni e Gonzalez ’76): Se existir
-aproximação polinomial p/o TSP
, onde , então P=NP.
Problema HC: Dado , decidir se tem ou não um circuito hamiltoniano.
NP-completo [K72]
TSP – p.16/19
Resultado de Inaproximabilidade
Teorema (Sahni e Gonzalez ’76): Se existir
-aproximação polinomial p/o TSP , onde , então P=NP.
Pr:
-aproximação polinomial p/o TSP
algoritmo polinomial p/o HC -aproximação polinomial p/o TSP
algoritmo polinomial p/o HC
Algoritmo
grafo completo em para cada em faça
para cada em faça
se
então devolva “Sim”
então devolva “Não”
TSP – p.17/19
Resultado de Inaproximabilidade
Teorema (Sahni e Gonzalez ’76): Se existir
-aproximação polinomial p/o TSP , onde , então P=NP.
Pr:
-aproximação polinomial p/o TSP
algoritmo polinomial p/o HC
Algoritmo
grafo completo em para cada em faça
para cada em faça
se
então devolva “Sim”
então devolva “Não”
TSP – p.17/19
Resultado de Inaproximabilidade
Teorema (Sahni e Gonzalez ’76): Se existir
-aproximação polinomial p/o TSP , onde , então P=NP.
Pr:
-aproximação polinomial p/o TSP
algoritmo polinomial p/o HC
Algoritmo
grafo completo em
para cada em faça para cada em
faça
se
então devolva “Sim”
então devolva “Não”
TSP – p.17/19
Resultado de Inaproximabilidade
polinomial polinomial se existe circuito hamiltoniano em ,
então opt e
opt
se não existe circuito hamiltoniano em , então
pois qq circ. hamilt. usa
(i.e., ).
TSP – p.18/19
Resultado de Inaproximabilidade
polinomial polinomial
se existe circuito hamiltoniano em , então opt e
opt
se não existe circuito hamiltoniano em , então
pois qq circ. hamilt. usa
(i.e., ).
TSP – p.18/19
Resultado de Inaproximabilidade
polinomial polinomial
se existe circuito hamiltoniano em , então opt e
opt
se não existe circuito hamiltoniano em , então
pois qq circ. hamilt. usa (i.e.,
).
TSP – p.18/19
Para completar...
Blabla
PSfrag replacements
FPTAS PO PTAS APX NPO
TSP
TSP Métrico
TSP Euclideano
TSP – p.19/19