Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da...
Transcript of Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da...
![Page 1: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/1.jpg)
Problemas NP-completosProblemas NP-completos
Profa. Sandra de AmoProfa. Sandra de AmoAnálise de AlgoritmosAnálise de Algoritmos
Pós-graduação em Ciência da Pós-graduação em Ciência da ComputaçãoComputação
![Page 2: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/2.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/3.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/4.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/5.jpg)
HAMPATH é NP-completoHAMPATH é NP-completo
3-SAT
HAMPATH
1. HAMPATH é NP
2. 3-SAT
≤
≤p HAMPATH
Input:Input: Grafo G = (V,E) , não dirigido, s,t Grafo G = (V,E) , não 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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/6.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/7.jpg)
. . .
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/8.jpg)
Juntando as estruturasJuntando as estruturas
.
.
.
x1
x2
xl
.
.
.
C1
C2
C3
Ck
![Page 9: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/9.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/10.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/11.jpg)
ResumoResumo• Um diamante só está ligado a vértices Um diamante só está ligado a vértices
externos correspondendo a cláusulas onde externos correspondendo a cláusulas onde sua variável aparece.sua 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 diamantes estão ligados aos vértices externos (cláusulas) onde eles aparecem. externos (cláusulas) onde eles aparecem.
![Page 12: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/12.jpg)
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 hamiltoniano
ligando 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 voltando
para o mesmo diamantepara o mesmo diamante
.
.
.
s
xj
x1
x2
![Page 13: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/13.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/14.jpg)
• 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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/15.jpg)
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 externos e retornando para o mesmo diamante de onde saiu o desvio.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) = em Ci. Logo V(Ci) = true.true.
![Page 16: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/16.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/17.jpg)
SUM-SET é NP-completoSUM-SET é NP-completo
3-SAT
SUM-SET
1. SUM-SET é NP
2. 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’
![Page 18: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/18.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/19.jpg)
3 3 . . . 3
1 0 . . . 0
1 0 . . . 0
1 . . . 0
1 . . . 0
11..
1 1 1 1 . . . 1
t
g1h1g2h2
gkhk
y1
z1
y2
z2y3
z3
ylzl
.
.
.
.
.
1 2 3 4 . . . l C1 C2 . . . Ck
1 0 0 0 0
1 0 0 0 00 1 0 0 00 1 0 0 0
0 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
para
cad
a v
ari
ável x
Um
par
g,h
para
cad
a c
láu
su
la C
n1
n2
n3n4
n5n6
n7
np
S
![Page 20: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/20.jpg)
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) = Se F é satisfatível, existe avaliação de variáveis V tal que V(F) =
True. 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 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.linhas 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 Para cada coluna j = 1,...,k completa-se com 0, 1 ou 2 linhas da parte bottom-right da tabela, dependendo se tem 3, 2, ou 1 célula parte bottom-right da tabela, dependendo se tem 3, 2, ou 1 célula nas linhas escolhidas em (3).nas linhas 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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/21.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/22.jpg)
0 0 . . . 1
3 3 . . . 3
1 0 . . . 0
1 0 . . . 0
1 . . . 0
1 . . . 0
11..
1 1 1 1 . . . 1
t
g1h1g2h2
gkhk
y1z1
y2
z2y3
z3
ylzl
.
.
.
.
.
1 2 3 4 . . . l C1 C2 . . . Ck
1 0 0 0 0
1 0 0 0 0
0 1 0 0 00 1 0 0 0
0 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
para
cad
a v
ari
ável x
Um
par
g,h
para
cad
a c
láu
su
la C
n1
n2
n3n4
n5n6
n7
np
S
0 1 . . . 0
![Page 23: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/23.jpg)
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 é NP
2. HAMPATH
≤
≤p UHAMPATH
![Page 24: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/24.jpg)
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 Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/25.jpg)
(G,s,t) (G,s,t) (G (G’’,s´,t´),s´,t´)
t
su
v
GRAFO DIRIGIDO Gtin
sout
uout
GRAFO Não - DIRIGIDO G´
umid
uin
vin
vmid
vout
![Page 26: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/26.jpg)
• Suponhamos que existe caminho Suponhamos que existe caminho hamiltoniano em G ligando s a thamiltoniano em G ligando s a t
S t
u
v
S outt in
uinumid
uout
voutvmid
vin
![Page 27: Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação.](https://reader036.fdocumentos.tips/reader036/viewer/2022062312/552fc105497959413d8c0486/html5/thumbnails/27.jpg)
Souttin
umid
uout
voutvmid
vin
uin
Por que não seria um Vout ?
S t
u
v