problemas np-completos

27
Problemas NP-completos Problemas NP-completos Profa. Sandra de Amo Profa. Sandra de Amo Teoria da Computação Teoria da Computação Pós-graduação em Ciência da Pós-graduação em Ciência da Computação Computação

Upload: amadis

Post on 16-Mar-2016

100 views

Category:

Documents


0 download

DESCRIPTION

Problemas NP-completos. Profa. Sandra de Amo Teoria da Computação Pós-graduação em Ciência da Computação. Diagrama das Reduções entre os Problemas. SAT. 3-SAT. SUM-SET. K-COLOR. HAMCIRC. HAMPATH. CLIQUE. VC. Mochila. UHAMCIRC. UHAMPATH. VC = Vertex Cover. CV = Caixeiro Viajante. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Problemas  NP-completos

Problemas NP-completosProblemas NP-completos

Profa. Sandra de AmoProfa. Sandra de AmoTeoria da ComputaçãoTeoria da Computação

Pós-graduação em Ciência da Pós-graduação em Ciência da ComputaçãoComputação

Page 2: Problemas  NP-completos

SUM-SET K-COLOR

Mochila

SAT

3-SAT

CLIQUE VC HAMCIRC

UHAMPATHVC = Vertex Cover

CV = Caixeiro Viajante

Diagrama das Reduções entre os Problemas

HAMPATH

UHAMCIRC

CV

Page 3: Problemas  NP-completos

Coloração de GrafosColoração de Grafos • Input:Input: Grafo G = (V,E) , não dirigido, inteiro K ≤ |V| Grafo G = (V,E) , não dirigido, inteiro K ≤ |V|

• Pergunta:Pergunta: G é k-colorável, isto é, existe uma função G é k-colorável, isto é, existe uma função f: V f: V {1,2,...,K} {1,2,...,K} tal que f(u) ≠ f(v) sempre que {u,v} tal que f(u) ≠ f(v) sempre que {u,v} ϵϵ E ? E ?

K = 2

K = 3

???

Page 4: Problemas  NP-completos

Problema da K-coloração de grafosProblema da K-coloração de grafos

• K ≥ 3 : NP-Completo Karp 1972 : 3SAT K-color

• K=2 : polinomial

• K=4 : todo grafo planar pode ser colorido com 4 cores.

– 1879: Alfred Kempe deu primeira prova– 1890: encontrado um erro na prova de Kempe – 1890: idéias de Kempe utilizadas para mostrar a 5-coloração

de grafos planares (Percy John Heawood)– 1976: Kenneth Appel/Wolfgang Haken – prova por

computador

Page 5: Problemas  NP-completos

HAMPATH é NP-completoHAMPATH é NP-completo

3-SAT

HAMPATH

1. HAMPATH é NP2. 3-SAT

≤p HAMPATH

Input:Input: Grafo G = (V,E) , dirigido, s,t Grafo G = (V,E) , dirigido, s,t V V

Pergunta:Pergunta: Existe caminho hamiltoniano ligando os vértices s e Existe caminho hamiltoniano ligando os vértices s e t t ? ?

Caminho hamiltoniano: passa uma única vez por Caminho hamiltoniano: passa uma única vez por todostodos os os vértices do grafovértices do grafo

Page 6: Problemas  NP-completos

Redução polinomialRedução polinomial

3-SAT

HAMPATH

F = (a1 V b1 V c1) ^ (a2 V b2 V c2) ^ ... ^ (ak V bk V ck) Variáveis = {x1, x2, ..., xl}

Grafo G, vértices s, t

F é satisfatível

Existe caminhoHamiltoniano ligandos a t

Page 7: Problemas  NP-completos

. . .

Para cada variável x construímos uma estrutura de “diamante” com 4 + M vértices

Para cada cláusula C construímos um vértice extra

Construção do grafo G: estruturas Construção do grafo G: estruturas básicasbásicas

M vértices M = 3k + 1 k = nº de cláusulas

Page 8: Problemas  NP-completos

Juntando as estruturasJuntando as estruturas

.

.

.

x1

x2

xl

.

.

.

C1

C2

C3

Ck

Page 9: Problemas  NP-completos

Como ligar os dois tipos de Como ligar os dois tipos de estruturasestruturas

C1

C1 = x1 V x4 V ¬ x5 x1

. . . C1

Page 10: Problemas  NP-completos

Como ligar os dois tipos de Como ligar os dois tipos de estruturasestruturas

C1

C1 = x1 V x4 V ¬ x5 x5

. . . C1

Page 11: Problemas  NP-completos

ResumoResumo• Um diamante só está ligado a vértices Um diamante só está ligado a vértices

externos correspondendo a cláusulas onde sua externos correspondendo a cláusulas onde sua variável aparece.variável aparece.

• Os vértices internos Os vértices internos ““brancosbrancos”” e e ““azuisazuis”” dos dos diamantes não estão ligados a vértices diamantes não estão ligados a vértices externos.externos.

• Os vértices Os vértices ““verdesverdes”” e e ““vermelhosvermelhos”” dos dos diamantes estão ligados aos vértices externos diamantes estão ligados aos vértices externos (cláusulas) onde eles aparecem. (cláusulas) onde eles aparecem.

Page 12: Problemas  NP-completos

Se F é satisfatível então existe Se F é satisfatível então existe caminho hamiltoniano de s a tcaminho hamiltoniano de s a t

• Cada cláusula Ci contém ao menos um literal Li verdadeiro.Cada cláusula Ci contém ao menos um literal Li verdadeiro.• Escolhemos este literal verdadeiro para cada cláusula Ci.Escolhemos este literal verdadeiro para cada cláusula Ci.• Li = xj ou Lj = Li = xj ou Lj = ¬xj¬xj

O caminho hamiltonianoO caminho hamiltonianoligando os vértices s a t vai ligando os vértices s a t vai percorrer os diamantes fazendo percorrer os diamantes fazendo desvios para os vértices externos e voltandodesvios para os vértices externos e voltandopara o mesmo diamantepara o mesmo diamante

.

.

.

s

xj

x1

x2

Page 13: Problemas  NP-completos

C1

. . . C1 V(xj) = F

Os diamantes correspondentes aos literais escolhidos vão conter “desvios”para as cláusulas onde eles foram selecionados

O diamante é percorrido em zig-zag ou zag-zig, dependendo se a variávelé avaliada como verdadeira ou falsa.

Page 14: Problemas  NP-completos

• Todos os vértices dos diamantes são Todos os vértices dos diamantes são visitados uma única vez.visitados uma única vez.

• Todos os vértices externos são Todos os vértices externos são visitados: visitados: – O vértice Ci é visitado O vértice Ci é visitado uma única vezuma única vez

quando se percorre o diamante quando se percorre o diamante correspondente ao literal Li que foi correspondente ao literal Li que foi escolhido como verdadeiro para Ci. escolhido como verdadeiro para Ci.

Page 15: Problemas  NP-completos

Se existe caminho Se existe caminho Hamiltoniano ligando s a t Hamiltoniano ligando s a t então então F é satisfatívelF é satisfatível..• Caso 1:Caso 1: o caminho hamiltoniano percorre os diamantes o caminho hamiltoniano percorre os diamantes de de

forma normal, isto é: forma normal, isto é: – na ordem em que aparecem fazendo desvios para os vértices na ordem em que aparecem fazendo desvios para os vértices

externos e retornando para o mesmo diamante de onde saiu o desvio.externos e retornando para o mesmo diamante de onde saiu o desvio.

Avaliação de variáveis: Avaliação de variáveis: • V(xi) = True se o diamante é percorrido em zig-zagV(xi) = True se o diamante é percorrido em zig-zag• V(xi) = False se o diamante é percorrido em zag-zigV(xi) = False se o diamante é percorrido em zag-zig

É claro que V(F) = True:É claro que V(F) = True:Seja Ci cláusula de F. Seja Ci cláusula de F.

– Se Ci é percorrido em zig-zag é porque a variável xj de onde saiu o Se Ci é percorrido em zig-zag é porque a variável xj de onde saiu o desvio (em zig-zag) aparece como desvio (em zig-zag) aparece como positivapositiva em Ci. Logo V(Ci) = true. em Ci. Logo V(Ci) = true.

– Se Ci é percorrido em zag-zig é porque a variável xj de onde saiu o Se Ci é percorrido em zag-zig é porque a variável xj de onde saiu o desvio (em zag-zig) aparece como desvio (em zag-zig) aparece como negativanegativa em Ci. Logo V(Ci) = true.em Ci. Logo V(Ci) = true.

Page 16: Problemas  NP-completos

Caso 2:Caso 2: O caminho hamiltoniano percorre O caminho hamiltoniano percorre os diamantes os diamantes de forma anormalde forma anormal: :

C1

C1. . .

C1. . .

ISTO NÃO PODE OCORRER !

v

Como percorrer o vértice v ? - chegando de u ? Não ! - chegando de t ? Para onde ir depois disto ? Só poderia ir para u, mas este já foi percorrido !

u t

Page 17: Problemas  NP-completos

SUM-SET é NP-completoSUM-SET é NP-completo

3-SAT

SUM-SET

1. SUM-SET é NP2. 3-SAT

≤p SUM-SET

Input:Input: S = {n1,...,np} S = {n1,...,np} N , t N , t N N

Pergunta:Pergunta: Existe subconjunto S Existe subconjunto S’’ S tal que S tal que ΣΣ i = t i = t ? ? i S’

Sandra de Amo
Page 18: Problemas  NP-completos

Redução polinomialRedução polinomial

3-SAT

SUM-SET

F = (a1 V b1 V c1) ^ (a2 V b2 V c2) ^ ... ^ (ak V bk V ck) Variáveis = {x1, x2, ..., xl}

S = {n1,...,nk} S = {n1,...,nk} N , t N , t N N

F é satisfatível

Existe subconjunto Existe subconjunto SS’’ S tal que S tal que ΣΣ i = t i = t ??

i S’

Page 19: Problemas  NP-completos

3 3 . . . 3

1 0 . . . 01 0 . . . 0

1 . . . 0 1 . . . 0

11..

1 1 1 1 . . . 1

t

g1h1g2h2

gkhk

y1z1y2z2y3z3

ylzl

.

.

.

.

.

1 2 3 4 . . . l C1 C2 . . . Ck1 0 0 0 01 0 0 0 00 1 0 0 00 1 0 0 00 0 1 0 00 0 1 0 0

0 0 0 0 10 0 0 0 1

1 0 . . . 00 0 . . . 00 1 . . . 01 0 . . . 01 1 . . . 00 0 . . . 1

0 0 . . . 00 0 . . . 0

Um

par

y,z

par

a ca

da v

ariá

vel x

Um

par

g,h

par

a ca

da c

láus

ula

Cn1n2n3n4n5n6

n7

np

S

Page 20: Problemas  NP-completos

Se F é satisfatível então existe Se F é satisfatível então existe subconjunto Ssubconjunto S’’ de S com soma de S com soma = t= t 1.1. Se F é satisfatível, existe avaliação de variáveis V tal que V(F) = True. Se F é satisfatível, existe avaliação de variáveis V tal que V(F) = True.

2.2. Para cada variável xi: V(xi) = true ou V(xi) = false.Para cada variável xi: V(xi) = true ou V(xi) = false.

33. . Para cada i = 1,...,l :Para cada i = 1,...,l :– Se V(xi) = true, considere a linha yiSe V(xi) = true, considere a linha yi– Se V(xi) = false, considere a linha ziSe V(xi) = false, considere a linha zi

4.4. Como F é satisfatível, então V(Cj) = true para toda cláusula Cj, j = Como F é satisfatível, então V(Cj) = true para toda cláusula Cj, j = 1,...,k1,...,k

• Logo, para todo j = 1,...,k, existe um literal verdadeiro em Cj. Logo, para todo j = 1,...,k, existe um literal verdadeiro em Cj. • Logo, toda coluna j = 1,...,k, contém pelo menos uma célula em uma das linhas Logo, toda coluna j = 1,...,k, contém pelo menos uma célula em uma das linhas

escolhidas em (3). Esta célula contém um 1.escolhidas em (3). Esta célula contém um 1.• Como cada cláusula só tem 3 literais, então cada coluna j = 1,...,k tem no Como cada cláusula só tem 3 literais, então cada coluna j = 1,...,k tem no

máximo 3 células nas linhas escolhidas em (3).máximo 3 células nas linhas escolhidas em (3).

5.5. Para cada coluna j = 1,...,k completa-se com 0, 1 ou 2 linhas da parte Para cada coluna j = 1,...,k completa-se com 0, 1 ou 2 linhas da parte bottom-rightbottom-right da tabela, dependendo se tem 3, 2, ou 1 célula nas linhas da tabela, dependendo se tem 3, 2, ou 1 célula nas linhas escolhidas em (3).escolhidas em (3).

6.6. O conjunto S` = conjunto das linhas consideradas em (3) e em (5) O conjunto S` = conjunto das linhas consideradas em (3) e em (5)

Page 21: Problemas  NP-completos

Se existe subconjunto SSe existe subconjunto S’’ de S de S com soma = tcom soma = t então F é então F é satisfatívelsatisfatível1. Se a soma resulta em 3 para cada coluna de j = 1,...,k (da parte 1. Se a soma resulta em 3 para cada coluna de j = 1,...,k (da parte

top-right), top-right), então em então em cadacada coluna da parte top-right coluna da parte top-right, ao menos , ao menos uma linha de Suma linha de S’’ que colabora para esta soma está na parte top- que colabora para esta soma está na parte top-right da tabela.right da tabela.

2. Como a soma das colunas da parte esquerda é 1, conclui-se que S2. Como a soma das colunas da parte esquerda é 1, conclui-se que S’’ não contém duas linhas yi e zi.não contém duas linhas yi e zi.

3. Associamos o valor verdade True para cada literal com valor 1 3. Associamos o valor verdade True para cada literal com valor 1 aparecendo nas linhas de Saparecendo nas linhas de S’’ da parte de cima da tabela. da parte de cima da tabela.

4. A partir de (1) concluimos que cada cláusula possui um literal 4. A partir de (1) concluimos que cada cláusula possui um literal verdadeiro. Logo V(F) = True. verdadeiro. Logo V(F) = True.

5. Portanto F é satisfatível.5. Portanto F é satisfatível.

Page 22: Problemas  NP-completos

0 0 . . . 1

3 3 . . . 3

1 0 . . . 01 0 . . . 0

1 . . . 0 1 . . . 0

11..

1 1 1 1 . . . 1

t

g1h1g2h2

gkhk

y1z1y2z2y3z3

ylzl

.

.

.

.

.

1 2 3 4 . . . l C1 C2 . . . Ck1 0 0 0 01 0 0 0 00 1 0 0 00 1 0 0 00 0 1 0 00 0 1 0 0

0 0 0 0 10 0 0 0 1

1 0 . . . 00 0 . . . 00 1 . . . 01 0 . . . 01 1 . . . 0

0 0 . . . 0

Um

par

y,z

par

a ca

da v

ariá

vel x

Um

par

g,h

par

a ca

da c

láus

ula

Cn1n2n3n4n5n6

n7

np

S0 1 . . . 0

Page 23: Problemas  NP-completos

UHAMPATH UHAMPATH é NP-Completoé NP-Completo• Input: Input: Grafo não dirigido G, s, t vértices de GGrafo não dirigido G, s, t vértices de G• Pergunta:Pergunta: Existe caminho hamiltoniano em G, Existe caminho hamiltoniano em G,

começando em s e terminando em t começando em s e terminando em t ??

HAMPATH

UHAMPATH

1. UHAMPATH é NP2. HAMPATH

≤p UHAMPATH

Page 24: Problemas  NP-completos

Redução polinomialRedução polinomial

HAMPATH

UHAMPATH

G= Grafo dirigido G, s,t vértices de G Existe caminho hamiltonianoem G ligando s a t

Existe caminho hamiltonianoem G´ ligando s´ a t´

G ’ = Grafo não- dirigido G, s´,t´ vértices de G

Page 25: Problemas  NP-completos

(G,s,t) (G,s,t) (G (G’’,s´,t´),s´,t´)

t

s u

v

GRAFO DIRIGIDO Gtin

sout

uout

GRAFO Não - DIRIGIDO G´

umid

uin

vin

vmid

vout

Page 26: Problemas  NP-completos

• Suponhamos que existe caminho Suponhamos que existe caminho hamiltoniano em G ligando s a thamiltoniano em G ligando s a t

S t

uv

S outt in

uinumid

uout

voutvmid

vin

Page 27: Problemas  NP-completos

Souttin

umid

uout

voutvmid

vin

uinPor que não seria um Vout ?

S t

uv