Você está na página 1de 80

Projeto e

Anlise de Algoritmos
Problemas A1-Completo e
Algoritmos Aproximados
Antonio Alfredo Ferreira Loureiro
loureiro@dcc.ufmg.br
http://www.dcc.ufmg.br/~loureiro
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 1


Introduo
Problemas intratveis ou difceis so comuns na natureza e nas reas do
conhecimento.
Problemas fceis: resolvidos por algoritmos polinomiais.
Problemas difceis: no momento, conhecemos apenas algoritmos exponen-
ciais para resolv-los.
A complexidade de tempo da maioria dos problemas polinomial ou expo-
nencial.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 2


Introduo
Polinomial: funo de complexidade O(p(n)), onde p(n) um
polinmio.
Por exemplo, pesquisa binria (O(logn)), pesquisa seqencial (O(n)), or-
denao por insero (O(n
2
)), e multiplicao de matrizes (O(n
3
)).
Exponencial: funo de complexidade O(c
n
), c > 1.
Por exemplo, problema do caixeiro viajante (PCV) (O(n!)).
Mesmo problemas de tamanho pequeno a moderado no podem ser re-
solvidos por algoritmos no-polinomiais.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 3


Problemas A1-Completo
A teoria de complexidade a ser apresentada no mostra como obter algo-
ritmos polinomiais para problemas que demandam algoritmos exponenciais,
nem arma que no existem.
possvel mostrar que os problemas para os quais no h algoritmo polino-
mial conhecido so computacionalmente relacionados.
Formam a classe conhecida como A1.
Propriedade: um problema da classe A1 poder ser resolvido em tempo
polinomial se e somente se todos os outros problemas em A1 tambm pu-
derem.
Este fato um indcio forte de que dicilmente algum ser capaz de encon-
trar um algoritmo eciente para um problema da classe A1.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 4


Classe A1: Problemas Sim/No
Para o estudo terico da complexidade de algoritmos considera-se problemas
cujo resultado da computao seja sim ou no.
Verso do Problema do Caixeiro Viajante (PCV) cujo resultado do tipo
sim/no:
Dados: uma constante k, um conjunto de cidades C = c
1
, c
2
, , c
n
e
uma distncia d(c
i
, c
j
) para cada par de cidades c
i
, c
j
C.
Questo: Existe um roteiro para todas as cidades emC cujo comprimento
total seja menor ou igual a k?
Caracterstica da classe A1: problemas sim/no para os quais uma dada
soluo pode ser vericada facilmente.
A soluo pode ser muito difcil ou impossvel de ser obtida, mas uma vez
conhecida ela pode ser vericada em tempo polinomial.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 5


Caminho em um grafo
Considere um grafo valorado, dois vrtices i, j e um inteiro k > 0.
Fcil : Existe um caminho de i at j com peso k?.
H um algoritmo eciente com complexidade de tempo O(E logV ), sendo
E o nmero de arestas e V o nmero de vrtices (algoritmo de Dijkstra).
Difcil : Existe um caminho de i at j com peso k?
No existe algoritmo eciente. equivalente ao PCV em termos de com-
plexidade.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 6


Colorao de um grafo
Em um grafo G = (V, E), mapear C : S V , sendo S um conjunto nito de
cores tal que se (v, w) E ento c(v) ,= c(w) (vrtices adjacentes possuem
cores distintas).
O nmero cromtico X(G) de G o menor nmero de cores necessrio para
colorir G, isto , o menor k para o qual existe uma colorao C para G e
[C(V )[ = k.
O problema produzir uma colorao tima, que a que usa apenas X(G)
cores.
Formulao do tipo sim/no: dados G e um inteiro positivo k, existe uma
colorao de G usando k cores?
Fcil : k = 2.
Difcil : k > 2.
Aplicao: modelar problemas de agrupamento (clustering) e de horrio
(scheduling).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 7


Colorao de um grafo:
Otimizao de compiladores
Escalonar o uso de um nmero nito de registradores (idealmente com o
nmero mnimo).
No trecho de programa a ser otimizado, cada varivel tem intervalos de tempo
em que seu valor tem de permanecer inalterado, como depois de inicializada
e antes do uso nal.
Variveis com interseo nos tempos de vida til no podem ocupar o mesmo
registrador.
Modelagem por grafo: vrtices representam variveis e cada aresta liga duas
variveis que possuem interseo nos tempos de vida.
Colorao dos vrtices: atribui cada varivel a um agrupamento (ou classe).
Duas variveis com a mesma cor no colidem, podendo assim ser atribudas
ao mesmo registrador.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 8


Colorao de um grafo:
Otimizao de compiladores
Evidentemente, no existe conito se cada vrtice for colorido com uma cor
distinta.
O objetivo, porm, encontrar uma colorao usando o mnimo de cores
(computadores tm um nmero limitado de registradores).
Nmero cromtico: menor nmero de cores sucientes para colorir umgrafo.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 9


Colorao de um grafo:
Problema de horrio
Suponha que os exames nais de um curso tenham de ser realizados em
uma nica semana.
Disciplinas com alunos de cursos diferentes devem ter seus exames marca-
dos em horrios diferentes.
Dadas uma lista de todos os cursos e uma lista de todas as disciplinas cujos
exames no podem ser marcados no mesmo horrio, o problema em questo
pode ser modelado como um problema de colorao de grafos.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 10


Circuito Hamiltoniano
Caminho que passa por todos os vrtices uma nica vez e retorna ao vrtice
inicial.
Exemplo de circuito Hamiltoniano: 0 1 4 2 3 0.
Existe um ciclo de Hamilton no grafo G?
Fcil : Grafo onde cada vrtice tem grau mximo = 2 (vrtices com no m-
ximo duas arestas incidentes).
Difcil : Grafo onde os vrtices tm grau > 2.
um caso especial do PCV:
Pares de vrtices com uma aresta entre eles tm distncia 1 e pares de
vrtices sem aresta entre eles tm distncia innita.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 11


Cobertura de arestas e vrtices
Uma cobertura de arestas de um grafo G = (V, E) um subconjunto E
t

E de k arestas tal que todo v V parte de pelo menos uma aresta de E
t
.
O conjunto resposta para k = 4 E
t
= (0, 3), (2, 3), (4, 6), (1, 5).
Uma cobertura de vrtices um subconjunto V
t
V tal que se (u, v) E
ento u V
t
ou v V
t
, isto , cada aresta do grafo incidente em um dos
vrtices de V
t
.
Na gura, o conjunto resposta V
t
= 3, 4, 5, para k = 3.
Dados um grafo e um inteiro k > 0:
Fcil : h uma cobertura de arestas k?.
Difcil : h uma cobertura de vrtices k?
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 12


Algoritmos no-determinsticos
Algoritmos determinsticos: o resultado de cada operao denido de forma
nica.
Em um arcabouo terico, possvel remover essa restrio.
Apesar de parecer irreal, este umconceito importante e geralmente utilizado
para denir a classe A1.
Neste caso, os algoritmos podem conter operaes cujo resultado no
denido de forma nica.
Algoritmo no-determinstico: capaz de escolher uma dentre as vrias al-
ternativas possveis a cada passo.
Algoritmos no-determinsticos contm operaes cujo resultado no unica-
mente denido, ainda que limitado a um conjunto denido de possibilidades.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 13


Funo escolhe(C)
Algoritmos no-determinsticos utilizam uma funo escolhe(C), que escolhe
um dos elementos do conjunto C de forma arbitrria.
O comando de atribuio X escolhe(1 : n) pode resultar na atribuio a
X de qualquer dos inteiros no intervalo [1, n].
A complexidade de tempo para cada chamada da funo escolhe O(1).
Neste caso, no existe nenhuma regra especicando como a escolha reali-
zada.
Se um conjunto de possibilidades levam a uma resposta, este conjunto
escolhido sempre e o algoritmo terminar com sucesso.
Por outro lado, um algoritmo no-determinstico termina sem sucesso se e
somente se no h um conjunto de escolhas que indica sucesso.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 14


Comandos sucesso e insucesso
Algoritmos no-determinsticos utilizam tambm dois comandos, a saber:
insucesso: indica trmino sem sucesso.
sucesso: indica trmino com sucesso.
Os comandos insucesso e sucesso so usados para denir uma execuo do
algoritmo.
Esses comandos so equivalentes a um comando de parada de um algoritmo
determinstico.
Os comandos insucesso e sucesso tambm tm complexidade de tempo
O(1).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 15


Mquina no-determinstica
Uma mquina capaz de executar a funo escolhe admite a capacidade de
computao no-determinstica.
Uma mquina no-determinstica capaz de produzir cpias de si mesma
quando diante de duas ou mais alternativas, e continuar a computao inde-
pendentemente para cada alternativa.
A mquina no-determinstica que acabamos de denir no existe na prtica,
mas ainda assim fornece fortes evidncias de que certos problemas no po-
dem ser resolvidos por algoritmos determinsticos em tempo polinomial, con-
forme mostrado na denio da classe A1-completo (mais frente).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 16


Pesquisa no-determinstica
Seja o seguinte algoritmo no-determinstico para pesquisar o elemento x em
um conjunto de elementos A[1 : n], n 1.
PESQUISAND(A, 1, n)
1 j ESCOLHE(A, 1, n)
2 if A[j] = x
3 then sucesso
4 else insucesso
Determina um ndice j tal que A[j] = x para um trmino com sucesso ou
ento insucesso quando x no est presente em A.
O algoritmo tem complexidade no-determinstica O(1).
Para um algoritmo determinstico a complexidade (n).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 17


Ordenao no-determinstica
O seguinte algoritmo no-determinstico ordena um conjunto A[1 : n] con-
tendo n inteiros positivos, n 1.
ORDENAND(A, 1, n)
1 for i 1 to n
2 do B[i] 0
3 for i 1 to n
4 do j ESCOLHE(A,1,N)
5 if B[j] = 0
6 then B[j] A[i]
7 else insucesso
Um vetor auxiliar B[1 : n] utilizado. Ao nal, B contm o conjunto em
ordem crescente.
A posio correta em B de cada inteiro de A obtida de forma no-
determinstica pela funo escolhe.
Em seguida, o comando de deciso verica se a posio B[j] ainda no foi
utilizada.
A complexidade O(n). (Para um algoritmo determinstico a complexidade
(nlogn))
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 18


Problema da Satisfabilidade
Considere um conjunto de variveis booleanas x
1
, x
2
, . . . , x
n
, que podem
assumir valores lgicos verdadeiro ou falso.
A negao de x
i
representada por x
i
.
Expresso booleana: variveis booleanas e operaes ou () e e () (tam-
bm chamadas de adio e multiplicao, respectivamente).
Uma expresso booleana E contendo um produto de adies de variveis
booleanas dita estar na forma normal conjuntiva.
Dada E na forma normal conjuntiva, com variveis x
i
, 1 i n, existe uma
atribuio de valores verdadeiro ou falso s variveis que torne E verdadeira
(satisfaa)?
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 19


Problema da Satisfabilidade
E
1
= (x
1
x
2
) (x
1
x
3
x
2
) (x
3
) satisfatvel.
(x
1
= F, x
2
= V , x
3
= V ).
A expresso E
2
= x
1
x
1
no satisfatvel.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 20


Problema da Satisfabilidade
O algoritmo AVALND(E, n) verica se uma expresso E na forma normal
conjuntiva, com variveis x
i
, 1 i n, satisfatvel.
AVALND(E, n)
1 for i 1 to n
2 do x
i
ESCOLHE(true, false)
3 if E(x
1
, x
2
, . . . , x
n
) = true
4 then sucesso
5 else insucesso
O algoritmo obtm uma das 2
n
atribuies possveis de forma no-
determinstica em O(n).
Melhor algoritmo determinstico: O(2
n
).
Aplicao: denio de circuitos eltricos combinatrios que produzam valo-
res lgicos como sada e sejam constitudos de portas lgicas e, ou e no.
Neste caso, o mapeamento direto, pois o circuito pode ser descrito por uma
expresso lgica na forma normal conjuntiva.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 21


Caracterizao das classes 1 e A1
1: conjunto de todos os problemas que podem ser resolvidos por algoritmos
determinsticos em tempo polinomial.
A1: conjunto de todos os problemas que podem ser resolvidos por algorit-
mos no-determinsticos em tempo polinomial.
Para mostrar que um determinado problema est em A1, basta apresen-
tar um algoritmo no-determinstico que execute em tempo polinomial para
resolver o problema.
Outra maneira encontrar um algoritmo determinstico polinomial para veri-
car que uma dada soluo vlida.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 22


Existe diferena entre 1 e A1?
1 A1, pois algoritmos determinsticos so um caso especial dos no-
determinsticos.
A questo se 1 = A1 ou 1 , = A1.
Esse o problema no resolvido mais famoso que existe na rea de cincia
da computao.
Se existem algoritmos polinomiais determinsticos para todos os problemas
em A1, ento 1 = A1.
Por outro lado, a prova de que 1 ,= A1 parece exigir tcnicas ainda desco-
nhecidas.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 23


Existe diferena entre 1 e A1?
Descrio tentativa do mundo A1, em que a classe 1 est contida na classe
A1.
Acredita-se que A1 1, pois para muitos problemas em A1, no existem
algoritmos polinomiais conhecidos, nem um limite inferior no-polinomial
provado.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 24


A1 1 ou A1 = 1? Conseqncias
Muitos problemas prticos em A1 podem ou no pertencer a 1 (no conhe-
cemos nenhum algoritmo determinstico eciente para eles).
Se conseguirmos provar que um problema no pertence a 1, ento no pre-
cisamos procurar por uma soluo eciente para ele.
Como no existe tal prova ainda, sempre h esperana de que algum des-
cubra um algoritmo eciente.
Quase ningum acredita que A1 = 1.
Existe um esforo considervel para provar o contrrio, mas a questo con-
tinua em aberto!
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 25


Transformao polinomial
Sejam
1
e
2
dois problemas sim/no.
Suponha que um algoritmo A
2
resolva
2
.
Se for possvel transformar
1
em
2
e a soluo de
2
em soluo de
1
,
ento A
2
pode ser utilizado para resolver
1
.
Se pudermos realizar as transformaes nos dois sentidos em tempo polino-
mial, ento
1
polinomialmente transformvel em
2
.
Esse conceito importante para denir a classe A1-completo.
Para mostrar um exemplo de transformao polinomial, deniremos clique de
um grafo e conjunto independente de vrtices de um grafo.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 26


Conjunto independente de vrtices de um grafo
O conjunto independente de vrtices de um grafo G = (V, E) constitudo
do subconjunto V
t
V , tal que v, w V
t
(v, w) / E.
Vrtices v, w esto em V
t
se no existe a aresta (v, w) em E.
Todo par de vrtices de V
t
no adjacente (V
t
um subgrafo totalmente
desconectado).
Exemplo de cardinalidade 4: V
t
= 0, 1, 2, 6.
G CIV de G
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 27


Conjunto independente de vrtices: Aplicao
Em problemas de disperso necessrio encontrar grandes conjuntos in-
dependentes de vrtices. Procura-se um conjunto de pontos mutuamente
separados.
Exemplo: identicar localizaes para instalao de franquias.
Duas localizaes no podem estar perto o suciente para competirem en-
tre si.
Soluo: construir um grafo em que possveis localizaes so representadas
por vrtices, e arestas so criadas entre duas localizaes que esto prxi-
mas o suciente para interferir.
O maior conjunto independente fornece o maior nmero de franquias que
podem ser concedidas sem prejudicar as vendas.
Em geral, conjuntos independentes evitam conitos entre elementos.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 28


Clique de um grafo
Clique de um grafo G = (V, E) constitudo do subconjunto V
t
V , tal que
v, w V
t
(v, w) E.
Todo par de vrtices de V
t
adjacente (V
t
um subgrafo completo).
Exemplo de cardinalidade 3: V
t
= 1, 3, 4.
G Clique de G
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 29


Clique de um grafo: Aplicao
O problema de identicar agrupamentos de objetos relacionados freqente-
mente se reduz a encontrar grandes cliques em grafos.
Exemplo: empresa de fabricao de peas por meio de injeo plstica que
fornece para diversas outras empresas montadoras.
Para reduzir o custo relativo ao tempo de preparao das mquinas injetoras,
pode-se aumentar o tamanho dos lotes produzidos para cada pea encomen-
dada.
preciso identicar os clientes que adquirem os mesmos produtos, para ne-
gociar prazos de entrega comuns e assim aumentar o tamanho dos lotes
produzidos.
Soluo: construir um grafo com cada vrtice representando um cliente e ligar
com uma aresta os que adquirem os mesmos produtos.
Um clique no grafo representa o conjunto de clientes que adquirem os mes-
mos produtos.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 30


Transformao polinomial
Considere
1
o problema clique e
2
o problema conjunto independente de
vrtices.
A instncia I de clique consiste de um grafo G = (V, E) e um inteiro k > 0.
A instncia f(I) de conjunto independente pode ser obtida considerando-se
o grafo complementar G de G e o mesmo inteiro k.
f(I) uma transformao polinomial:
1. G pode ser obtido a partir de G em tempo polinomial.
2. G possui clique de tamanho k se e somente se G possui conjunto
independente de vrtices de tamanho k.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 31


Transformao polinomial
Seja o grafo G e o grafo G, que o grafo complemento de G.
G G
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 32


Transformao polinomial
Sejam as seguintes consideraes:

1
: Clique
2
: CIV
I : grafo G, k > 0 f(I) : grafo G, k > 0
G possui clique k sse G possui CIV k
Clique de G CIV de G
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 33


Transformao polinomial
Se existe umalgoritmo que resolve o conjunto independente emtempo polino-
mial, ele pode ser utilizado para resolver clique tambm em tempo polinomial.
Diz-se que clique conjunto independente.
Denota-se
1
(polinomialmente transformvel em)
2
para indicar que
1
polinomialmente transformvel em
2
.
A relao transitiva (
1

2
e
2

3

1

3
).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 34


Problemas A1-Completo e A1-Difcil
Dois problemas
1
e
2
so polinomialmente equivalentes se e somente
se
1

2
e
2

1
.
Exemplo: Problema da satisfabilidade. Se SAT
1
e
1

2
, ento
SAT
2
.
Um problema A1-difcil se e somente se SAT (satisfabilidade
redutvel a ).
Um problema de deciso denominado A1-completo quando:
1. NP;
2. Todo problema de deciso
t
A1-completo satisfaz
t
.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 35


Problemas A1-Completo e A1-Difcil
Um problema de deciso que seja A1-difcil pode ser mostrado ser A1-
completo exibindo um algoritmo no-determinstico polinomial para .
Apenas problemas de deciso (sim/no) podem ser A1-completo.
Problemas de otimizao podem ser A1-difcil, mas geralmente, se
1
um
problema de deciso e
2
um problema de otimizao, bem possvel que

1

2
.
A diculdade de um problema A1-difcil no menor do que a diculdade de
um problema A1-completo.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 36


Exemplo: Problema da Parada
um exemplo de problema A1-difcil que no A1-completo.
Consiste em determinar, para um algoritmo determinstico qualquer A com
entrada de dados E, se o algoritmo A termina (ou entra em um loop innito).
um problema indecidvel. No h algoritmo de qualquer complexidade
para resolv-lo.
Mostrando que SAT problema da parada:
Considere o algoritmo A cuja entrada uma expresso booleana na forma
normal conjuntiva com n variveis.
Basta tentar 2
n
possibilidades e vericar se E satisfatvel.
Se for, A pra; seno, entra em loop.
Logo, o problema da parada A1-difcil, mas no A1-completo.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 37


Teorema de Cook
Existe algum problema em A1 tal que se ele for mostrado estar em 1, impli-
caria 1 = A1?
Teorema de Cook: Satisfabilidade (SAT) est em 1 se e somente se 1 =
A1.
Ou seja, se existisse um algoritmo polinomial determinstico para satisfabili-
dade, ento todos os problemas em A1 poderiam ser resolvidos em tempo
polinomial.
A prova considera os dois sentidos:
1. SAT est em A1 (basta apresentar um algoritmo no-determinstico que
execute em tempo polinomial). Logo, se 1 = A1, ento SAT est em 1.
2. Se SAT est em 1, ento 1 = A1.
A prova descreve como obter de qualquer algoritmo polinomial no-
determinstico de deciso A, com entrada E, uma frmula Q(A, E) de
modo que Q satisfatvel se e somente se A termina com sucesso para
E. O comprimento e tempo para construir Q O(p
3
(n) log(n)), onde n
o tamanho de E e p(n) a complexidade de A.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 38


Prova do teorema de Cook
A prova, bastante longa, mostra como construir Q a partir de A e E.
A expresso booleana Q longa, mas pode ser construda em tempo polino-
mial no tamanho de E.
Prova usa denio matemtica da Mquina de Turing no-determinstica
(MTND), capaz de resolver qualquer problema em A1.
Incluindo uma descrio da mquina e de como instrues so executadas
em termos de frmulas booleanas.
Estabelece uma correspondncia entre todo problema em A1 (expresso por
um programa na MTND) e alguma instncia de SAT.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 39


Prova do teorema de Cook
Uma instncia de SAT corresponde traduo do programa em uma frmula
booleana.
A soluo de SAT corresponde simulao da mquina executando o pro-
grama em cima da frmula obtida, o que produz uma soluo para uma ins-
tncia do problema inicial dado.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 40


Prova de que um problema A1-Completo
So necessrios os seguintes passos:
1. Mostre que o problema est em A1.
2. Mostre que um problema A1-completo conhecido pode ser polinomial-
mente transformado para ele.
possvel porque Cook apresentou uma prova direta de que SAT A1-
completo, alm do fato de a reduo polinomial ser transitiva
SAT
1
&
1

2
SAT
2
Para ilustrar como um problema pode ser provado ser A1-completo, basta
considerar um problema j provado ser A1-completo e apresentar uma re-
duo polinomial desse problema para .
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 41


PCV A1-Completo: Parte 1 da Prova
Mostrar que o Problema do Caixeiro Viajante (PCV) est em A1.
Prova a partir do problema circuito Hamiltoniano, um dos primeiros que se
provou ser A1-completo.
Isso pode ser feito:
Apresentando (como abaixo) um algoritmo no-determinstico polinomial
para o PCV ou
Mostrando que, a partir de uma dada soluo para o PCV, esta pode ser
vericada em tempo polinomial.
Algoritmo polinomial no-determinstico para o PCV:
PCVND
1 i 1
2 for t 1 to v
3 do j ESCOLHE(i, lista-adj(i))
4 antecessor[j] i
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 42


PCV A1-Completo: Parte 2 da prova
Apresentar uma reduo polinomial do circuito Hamiltoniano para o PCV.
Pode ser feita conforme o exemplo abaixo.
Dado um grafo representando uma instncia do circuito Hamiltoniano, cons-
trua uma instncia do PCV como se segue:
1. Para cidades use os vrtices.
2. Para distncias use 1 se existir um arco no grafo original e 2 se no existir.
A seguir, use o PCV para achar um roteiro menor ou igual a V .
O roteiro o circuito Hamiltoniano.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 43


Classe A1-Intermediria
Segunda descrio tentativa do mundo A1, assumindo 1 , = A1.
Existe uma classe intermediria entre 1 e A1 chamada A17.
A17 seria constituda por problemas que ningum conseguiu uma reduo
polinomial de um problema A1-completo para eles, onde
A17 = A1 (1 A1-completo).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 44


Membros potenciais de A17
Isomorsmo de grafos: Dados G = (V, E) e G
t
= (V, E
t
), existe uma
funo f : V V , tal que (u, v) E (f(u), f(v)) E
t
?
Isomorsmo o problema de testar se dois grafos so o mesmo.
Suponha que seja dado um conjunto de grafos e que alguma operao
tenha de ser realizada sobre cada grafo.
Se pudermos identicar quais grafos so duplicatas, eles poderiam ser
descartados para evitar trabalho redundante.
Nmeros compostos: Dado um inteiro positivo k, existem inteiros m, n > 1
tais que k = mn?
Princpio da criptograa RSA: fcil encontrar nmeros primos grandes,
mas difcil fatorar o produto de dois deles.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 45


Classe A1-Completo: Resumo
Problemas que pertencem a A1, mas que podem ou no pertencer a 1.
Propriedade: se qualquer problema A1-completo puder ser resolvido em
tempo polinomial por uma mquina determinstica, ento todos os problemas
da classe podem, isto , 1 = A1.
A falha coletiva de todos os pesquisadores para encontrar algoritmos e-
cientes para estes problemas pode ser vista como uma diculdade para
provar que 1 = A1.
Contribuio prtica da teoria: fornece um mecanismo que permite descobrir
se um novo problema fcil ou difcil.
Se encontrarmos um algoritmo eciente para o problema, ento no h di-
culdade. Seno, uma prova de que o problema A1-completo nos diz que o
problema to difcil quanto todos os outros problemas difceis da classe
A1-completo.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 46


Problemas exponenciais
desejvel resolver instncias grandes de problemas de otimizao em
tempo razovel.
Os melhores algoritmos para problemas A1-completo tm comportamento
de pior caso exponencial no tamanho da entrada.
Para um algoritmo que execute em tempo proporcional a 2
n
, 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 2
100
passos para terminar sua tarefa.
Um supercomputador poderia resolver um problema de tamanho n = 50 em
uma hora, ou n = 51 em duas 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) su-
ciente para n = 100.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 47


O que fazer para resolver problemas exponenciais?
Usar algoritmos exponenciais ecientes aplicando tcnicas de tentativa e
erro.
Usar algoritmos aproximados. Acham uma resposta que pode no ser a
soluo tima, mas garantido ser prxima dela.
Concentrar no caso mdio. Buscar algoritmos melhores que outros neste
quesito e que funcionem bem para as entradas de dados que ocorrem usual-
mente na prtica.
Existem poucos algoritmos exponenciais que so muito teis na prtica.
Exemplo: Algoritmo Simplex para programao linear. Esse algoritmo tem
complexidade de tempo exponencial no pior caso, mas muito rpido na
prtica.
Tais exemplos so raros. A grande maioria dos algoritmos exponenciais
conhecidos no muito til.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 48


Circuito Hamiltoniano: Tentativa e erro
Obter um algoritmo baseado no paradigma tentativa e erro a partir de algo-
ritmo para caminhamento em um grafo.
O DFS faz uma busca em profundidade no grafo com custo de tempo O(V +
E).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 49


Circuito Hamiltoniano: Tentativa e erro
Aplicando o DFS ao grafo abaixo a partir do vrtice 0, um possvel caminho
0 1 2 4 3 5 6, o que no um ciclo simples.
Para encontrar um circuito Hamiltoniano, caso exista, devemos visitar os vr-
tices do grafo de outras maneiras.
A rigor, o melhor algoritmo conhecido resolve o problema tentando todos os
caminhos possveis.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 50


Circuito Hamiltoniano: Tentando todas as
possibilidades
Para tentar todas as possibilidades, pode-se alterar o procedimento DFS-
VISIT.
Desmarca o vrtice j visitado no caminho anterior e permite que seja visitado
novamente em outra tentativa.
O custo proporcional ao nmero de chamadas para o procedimento DFS-
VISIT.
Para o grafo completo K
n
, existem n! ciclos simples.
Custo proibitivo.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 51


Circuito Hamiltoniano: Tentando todas as
possibilidades
Para o grafo A rvore de caminhamento :
Existem duas respostas:
0 5 3 1 2 4 6 0
0 6 4 2 1 3 5 0
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 52


Circuito Hamiltoniano: Tentativa e erro com poda
Diminuir nmero de chamadas a
DEF-VISIT fazendo poda na rvore
de caminhamento.
No exemplo anterior, cada ciclo
obtido duas vezes, caminhando em
ambas as direes.
Insistindo que o n 2 aparea antes
do 0 e do 1, no precisamos chamar
DFS-VISIT para o n 1 a no ser que
o n 2 j esteja no caminho.
rvore de caminhamento
obtida:
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 53


Circuito Hamiltoniano: Tentativa e erro com poda
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.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 54


Circuito Hamiltoniano: Branch-and-Bound
Outra possibilidade para tentar diminuir o nmero de chamadas a DFS-VISIT
por meio da tcnica de branch-and-bound.
A idia interromper a pesquisa to logo se saiba que no levar a uma
soluo.
Corta chamadas a DFS-VISIT to logo se chegue a um custo para qualquer
caminho que seja maior que um caminho soluo j obtido.
Exemplo: encontrando 0 5 3 1 2 4 6, de custo 11, no faz sentido continuar
no caminho 0 6 4 1, de custo 11 tambm.
Neste caso, podemos evitar chamadas a DFS-VISIT se o custo do caminho
corrente for maior ou igual ao melhor caminho obtido at o momento.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 55


Heursticas para problemas A1-Completo
Heurstica: algoritmo que pode produzir um bom resultado (ou at a soluo
tima), mas pode tambm no obter soluo ou obter uma distante da tima.
Uma heurstica pode ser determinstica ou probabilstica.
Pode haver instncias em que uma heurstica (probabilstica ou no) nunca
vai encontrar uma soluo.
A principal diferena entre uma heurstica probabilstica e um algoritmo
Monte Carlo que este ltimo tem que encontrar uma soluo correta com
uma certa probabilidade (de preferncia alta) para qualquer instncia do pro-
blema.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 56


Heurstica para o PCV
Algoritmo do vizinho mais prximo, heurstica gulosa simples:
1. Inicie com um vrtice arbitrrio.
2. Procure o vrtice mais prximo do ltimo vrtice adicionado que no es-
teja no caminho e adicione ao caminho a aresta que liga esses dois vr-
tices.
3. Quando todos os vrtices estiverem no caminho, adicione uma aresta
conectando o vrtice inicial e o ltimo vrtice adicionado.
Complexidade: O(n
2
), sendo n o nmero de cidades, ou O(d), sendo d o
conjunto de distncias entre cidades.
Aspecto negativo: embora todas as arestas escolhidas sejamlocalmente mn-
imas, a aresta nal pode ser bastante longa.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 57


Heurstica para o PCV
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.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 58


Heurstica para o PCV
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 nal 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 consider-
adas seja restrita.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 59


Algoritmos aproximados para problemas
A1-Completo
Para projetar algoritmos polinomiais para resolver um problema de otimiza-
o A1-completo necessrio relaxar o signicado de resolver.
Removemos a exigncia de que o algoritmo tenha sempre de obter a soluo
tima.
Procuramos algoritmos ecientes que no garantem obter a soluo tima,
mas sempre obtm uma prxima da tima.
Tal soluo, com valor prximo da tima, chamada de soluo aproximada.
Um algoritmo aproximado para um problema um algoritmo que gera
solues aproximadas para .
Para ser til, importante obter um limite para a razo entre a soluo tima
e a produzida pelo algoritmo aproximado.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 60


Medindo a qualidade da aproximao
O comportamento de algoritmos aproximados quanto qualidade dos resul-
tados (no o tempo para obt-los) tem de ser monitorado.
Seja I uma instncia de um problema e seja S

(I) o valor da soluo tima


para I.
Um algoritmo aproximado gera uma soluo possvel para I cujo valor S(I)
maior (pior) do que o valor timo S

(I).
Dependendo do problema, a soluo a ser obtida pode minimizar ou maxi-
mizar S(I).
Para o PCV, podemos estar interessados em um algoritmo aproximado que
minimize S(I): obtm o valor mais prximo possvel de S

(I).
No caso de o algoritmo aproximado obter a soluo tima, ento S(I) =
S

(I).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 61


Algoritmos aproximados: Denio
Um algoritmo aproximado para um problema um algoritmo polinomial que
produz uma soluo S(I) para uma instncia I de .
O comportamento do algoritmo A descrito pela razo de aproximao
R
A
(I) =
S(I)
S

(I)
,
que representa um problema de minimizao.
No caso de um problema de maximizao, a razo invertida.
Em ambos os casos, R
A
(I) 1.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 62


Algoritmos aproximados para o PCV
Seja G = (V, E) um grafo no direcionado, completo, especicado por um
par (N, d).
N o conjunto de vrtices do grafo (cidades), e d uma funo distncia que
mapeia as arestas em nmeros reais, onde d satisfaz:
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
a
propriedade: a distncia da cidade i at outra adjacente j igual de j
at i.
Quando isso no acontece, temos o problema conhecido como PCV As-
simtrico.
2
a
propriedade: apenas distncias positivas.
3
a
propriedade: desigualdade triangular. A distncia de i at j somada com
a de j at k deve ser maior do que a distncia de i at k.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 63


Algoritmos aproximados para o PCV
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 dis-
tncias 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 k.
Cabe observar que o PCV equivale a encontrar no grafo G = (V, E) um
circuito Hamiltoniano de custo mnimo.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 64


rvore Geradora Mnima (AGM)
Considere um grafo G = (V, E), sendo V as n cidades e A as distncias
entre cidades.
Uma rvore geradora uma coleo de n 1 arestas que ligam todas as
cidades por meio de um subgrafo conectado nico.
A rvore Geradora Mnima a rvore geradora de custo mnimo.
Existem algoritmos polinomiais de custo O([E[ log[V [) para obter a rvore
geradora mnima quando o grafo de entrada dado na forma de uma matriz
de adjacncia.
Grafo e AGM correspondente:
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 65


Limite inferior para a soluo do PCV a partir da
AGM
A partir da AGM, podemos derivar o limite inferior para o PCV.
Considere uma aresta (x
1
, x
2
) do caminho timo do PCV. Remova a aresta
e ache um caminho iniciando em x
1
e terminando em x
2
.
Ao retirar uma aresta do caminho timo, temos uma rvore geradora que
consiste de um caminho que visita todas as cidades.
Logo, o caminho timo para o PCV necessariamente maior do que o com-
primento da AGM.
O limite inferior para o custo deste caminho a AGM.
Logo, timo
PCV
> AGM.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 66


Limite superior de aproximao para o PCV
A desigualdade triangular permite utilizar a AGM para obter um limite supe-
rior para a razo de aproximao com relao ao comprimento do caminho
timo.
Vamos considerar um algoritmo que visita todas as cidades, mas pode usar
somente as arestas da AGM.
Uma possibilidade iniciar em um vrtice folha e usar a seguinte estrat-
gia:
Se houver aresta ainda no visitada saindo do vrtice corrente, siga aquela
aresta para um novo vrtice.
Se todas as arestas a partir do vrtice corrente tiverem sido visitadas, volte
para o vrtice adjacente pela aresta pela qual o vrtice corrente foi inicial-
mente alcanado.
Termine quando retornar ao vrtice inicial.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 67


Limite superior de aproximao para o PCV: Busca
em Profundidade
O algoritmo descrito anteriormente a Busca em Profundidade (DFS) apli-
cada AGM.
Verica-se que:
o algoritmo visita todos os vrtices.
nenhuma aresta visitada mais do que duas vezes.
Obtm um caminho que visita todas as cidades cujo custo menor ou igual a
duas vezes o custo da rvore geradora mnima.
Como o caminho timo maior do que o custo da AGM, ento o caminho
obtido no mximo duas vezes o custo do caminho timo. Caminho
PCV
< 2
timo
PCV
.
Restrio: algumas cidades so visitadas mais de uma vez.
Para contornar o problema, usamos a desigualdade triangular.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 68


Limite superior de aproximao para o PCV:
Desigualdade Triangular
Introduzimos curto-circuitos que nunca aumentam o comprimento total do
caminho.
Inicie em uma folha da AGM, mas sempre que a busca em profundidade for
voltar para uma cidade j visitada, salte para a prxima ainda no visitada.
A rota direta no maior do que a anterior indireta, em razo da desigualdade
triangular.
Se todas as cidades tiverem sido visitadas, volte para o ponto de partida.
O algoritmo constri um caminho soluo para o PCV porque cada cidade
visitada apenas uma vez, exceto a cidade de partida.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 69


Limite superior de aproximao para o PCV:
Desigualdade Triangular
O caminho obtido no maior que o caminho obtido em uma busca em pro-
fundidade, cujo comprimento no mximo duas vezes o do caminho timo.
Os principais passos do algoritmo so:
1. Obtenha a rvore geradora mnima para o conjunto de n cidades, com
custo O(n
2
).
2. 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 trian-
gular).
Se todas as cidades tiverem sido visitadas, volte cidade de origem.
Assim, obtivemos um algoritmo polinomial de custo O(n
2
), com uma razo
de aproximao garantida para o pior caso de R
A
2.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 70


Como melhorar o limite superior a partir da AGM
No algoritmo anterior um caminho para o caixeiro viajante pode ser obtido
dobrando os arcos da AGM, o que leva a um pior caso para a razo de apro-
ximao no mximo igual a 2.
Melhora-se a garantia de um fator 2 para o pior caso, utilizando o conceito de
grafo Euleriano.
O circuito Euleriano em um grafo Euleriano, pode ser obtido em tempo O(n),
usando a busca em profundidade.
Podemos obter um caminho para o PCV a partir de uma AGM, usando o
circuito Euleriano e a tcnica de curto-circuito.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 71


Como melhorar o limite superior a partir da AGM
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 circuito Euleriano e, conseqentemente, de comprimento
no mximo duas vezes o comprimento da AGM.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 72


Casamento mnimo com pesos
Christophides props uma melhoria no algoritmo anterior utilizando o conceito
de casamento mnimo com pesos em grafos.
Dado umconjunto contendo umnmero par de cidades, umcasamento uma
coleo de arestas M tal que cada cidade a extremidade de exatamente um
arco em M.
Um casamento mnimo aquele para o qual o comprimento total das arestas
mnimo.
Todo vrtice parte de exatamente uma aresta do conjunto M.
Pode ser encontrado com custo O(n
3
).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 73


Casamento mnimo com pesos
Considere a AGM T de 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.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 74


Casamento mnimo com pesos
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 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.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 75


Casamento mnimo com pesos: Exemplo
(a) Uma AGM T.
(b) T mais um casamento m-
nimo dos vrtices de grau
mpar.
(c) Circuito Euleriano em (b).
(d) Busca em profundidade
com curto-circuito.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 76


Casamento mnimo com pesos
Basta agora determinar o comprimento do grafo de Euler.
Caminho do caixeiro viajante em que podem ser vistas seis cidades corres-
pondentes aos vrtices de grau mpar enfatizadas.
O caminho determina os casamentos M e M
t
.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 77


Casamento mnimo com pesos
Seja I uma instncia do PCV, e Comp(T), Comp(M) e Comp(M
t
), respec-
tivamente, a soma dos comprimentos de T, M e M
t
.
Pela desigualdade triangular devemos ter que: Comp(M) + Comp(M
t
)
timo(I).
Assim, ou M ou M
t
tm de ter comprimento menor ou igual a timo(I)/2.
Logo, o comprimento de um casamento mnimo para os vrtices de grau m-
par 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 vi-
ajante timo, podemos concluir que o comprimento do grafo Euleriano cons-
trudo :
Comp(I) <
3
2
timo(I).
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 78


Casamento mnimo com pesos: Algoritmo de
Christophides
Os principais passos do algoritmo de Christophides so:
1. Obtenha a AGM T para o conjunto de n cidades, com custo O(n
2
).
2. Construa um casamento mnimo M para o conjunto de vrtices de grau
mpar em T, com custo O(n
3
).
3. Encontre um caminho de Euler para o grafo Euleriano obtido com a unio
de T e M, e converta o circuito Euleriano em um caminho do caixeiro
viajante usando curto-circuitos, com um custo de O(N).
Assim obtivemos um algoritmo polinomial de custo O(n
3
), com uma razo
de aproximao garantida para o pior caso de R
A
< 3/2.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 79


Algoritmo de Christophides: Pior caso
Exemplo de pior caso do algoritmo de Christodes:
A AGM e o caminho timo so:
Neste caso, para uma instncia I:
C(I) =
3
2
[timo(I) 1],
onde o timo(I) = 11, C(I) = 15, e AGM = 10.
UFMG/ICEx/DCC PAA

Problemas NP-Completo e Algoritmos Aproximados 80