Projeto e Análise de Algoritmos - milidiu/inf2926/aulas/modulo2/A38npc.pdf · 5/5/2014 Ruy Luiz...
Transcript of Projeto e Análise de Algoritmos - milidiu/inf2926/aulas/modulo2/A38npc.pdf · 5/5/2014 Ruy Luiz...
5/5/2014 Ruy Luiz Milidiú 3
Resumo
Objetivo
Apresentar Classe de Problemas NPC
Sumário
P, NP, NP-difícil, e NP-completo
De 3-SAT para clique
De clique para cobertura de vértices
clique e cobertura de vértices estão em NPC
5/5/2014 Ruy Luiz Milidiú 4
NP-Difícil
NP
SAT
3SAT
3DM 3C MAXC
CLIQUE 3XC
Teorema de
Cook
PLI
3CP
IND MPS ST XC 3SC
SC VC
5/5/2014 Ruy Luiz Milidiú 5
Problemas de decisão
P resolvidos em tempo polinomial
NP verificáveis em tempo polinomial
NP-Difícil NP-Hard qualquer problema em NP pode ser reduzido a ele
NPC NP-Completos é NP verificador
é NP-Difícil redutor
5/5/2014 Ruy Luiz Milidiú 6
NPC
SAT NPC
SAT NP
Teorema de Cook
3-SAT NPC
3-SAT NP
SAT 3-SAT
PLI NPC
PLI NP
SAT PLI
NP
SAT
3SAT PLI
5/5/2014 Ruy Luiz Milidiú 7
CLIQUE
Grupo Exclusivo de G=(V,E) H V
u,vH então {u,v}E.
H = {u,v,x,y}
grupo exclusivo de G
tamanho 4
Problema de decisão
grupo exclusivo de tamanho k em G ?
5/5/2014 Ruy Luiz Milidiú 8
CLIQUE NP
//Verificador
for all vV do na_clique[v] := 0
for all vH do na_clique[v] := 1
for all vV do
if (na_clique[v] = 1) then
total_na_clique := 0
for all wAdjacent[v] do
total_na_clique := total_na_clique + na_clique[w]
if (total_na_clique k-1) then return(NÃO)
return(SIM)
5/5/2014 Ruy Luiz Milidiú 10
3-SAT CLIQUE
C = (x1x2x3)(x1x2x3)(x1x2x3)
x1
x1
x2
x3
x2
x3
x2 x3
x1
x x
PROIBIDO
5/5/2014 Ruy Luiz Milidiú 12
3-SAT CLIQUE
//Redutor
input C = C1 C2 … Ck
for r=1,...,k do
criar três vértices em V, rotulados pelas variáveis de Cr
for all pairs u,vV de triplas diferentes
if (rótulo(u) rótulo(v)) then
criar a aresta {u,v} em E
5/5/2014 Ruy Luiz Milidiú 13
3-SAT CLIQUE
C é capaz de satisfação
existe um grupo exclusivo de tamanho k em G
5/5/2014 Ruy Luiz Milidiú 14
3-SAT CLIQUE
C é capaz de satisfação
“” cada Cr possui ao menos um literal com atribuição 1 escolha esse literal e seu vértice correspondente em V
H são os k vértices escolhidos
todos os vértices de H estão ligados entre si pois a atribuição é consistente
H é CLIQUE de tamanho k
5/5/2014 Ruy Luiz Milidiú 15
3-SAT CLIQUE
existe um grupo exclusivo de tamanho k em G
“”
Atribua 1 ao literal associado a cada vértice de H
Nenhuma aresta em E conecta vértices da mesma tripla ou complementares
H possui exatamente um vértice por tripla (tamanho k)
H não contém pares {x,x} (consistência)
Cada cláusula Cr é satisfeita
C é satisfeita
5/5/2014 Ruy Luiz Milidiú 17
VERTEX-COVER
Cobertura de Vértices de G=(V,E)
V´ V tq se {u,v}E, então uV´ou vV´
V´= {z,w} cobertura de vértices de G tamanho 2
Problema de decisão
uma cobertura de vértices de tamanho k em G ?
5/5/2014 Ruy Luiz Milidiú 18
VERTEX-COVER NP
//Verificador
for all vV do na_cobertura[v] := 0
for all vV’ do na_cobertura [v] := 1
for all vV do
if (na_cobertura[v] = 0) then
for all wAdjacent[v] do
if (na_cobertura[w] = 0) then return(NÃO)
return(SIM)
5/5/2014 Ruy Luiz Milidiú 21
CLIQUE VERTEX-COVER
X é CLIQUE de G
“”
{u,v}E’
uX ou vX , pois se u,vX então {u,v}E
u(V-X) ou vV-X
{u,v} é coberta por V-X em G’
V-X é cobertura de vértices de G’
Obs.: |V-X| = n - k
5/5/2014 Ruy Luiz Milidiú 22
CLIQUE VERTEX-COVER
V-X é cobertura de vértices de G’
“”
u,vX
(p/absurdo) {u,v}E
{u,v}E’
uV-X ou vV-X
X(V-X)
{u,v}E
X é clique de G
5/5/2014 Ruy Luiz Milidiú 24
3-COLOR
3-COLOR de G=(V,E) f: V {1,2,3}
{u,v}E então f(u)f(v)
Problema de decisão
uma 3-COLOR de G ?
5/5/2014 Ruy Luiz Milidiú 25
3-COLOR NP
//Verificador
for all uV do
if f(u){1,2,3} then return(NÃO)
for all {u,v}E do
if (f(u) = f(v)) then return(NÃO)
return(SIM)
5/5/2014 Ruy Luiz Milidiú 33
3-SAT 3-COLOR
C é capaz de satisfação
“”
atribuição de cores
se u=T então f(u) = VERDE
se u=F então f(u) = VERMELHO
cada tripla tem pelo menos um nó VERMELHO
Podemos atribuir cores para os nós auxiliares
f é uma 3-COLOR de G
5/5/2014 Ruy Luiz Milidiú 46
3-SAT 3-COLOR
existe f que é uma 3-COLOR de G
“”
atribuição de valores verdade
se f(u) = VERDE então u=T
se f(u) = VERMELHO então u=F
f(u) = VERDE f(u) = VERMELHO
f tem pelo menos um nó VERDE por tripla
C é capaz de satisfação
5/5/2014 Ruy Luiz Milidiú 51
3-COLOR PLANAR
3-COLOR de G=(V,E)
f: V {1,2,3}
{u,v}E então f(u)f(v)
G é planar
Problema de decisão
uma 3-COLOR de G ?
5/5/2014 Ruy Luiz Milidiú 52
3-COLOR PLANAR NP
//Verificador
if (not verificador_de_planaridade (G)) return(NÃO)
for all {u,v}E do
if (f(u) = f(v)) then return(NÃO)
return(SIM)
5/5/2014 Ruy Luiz Milidiú 54
3-COLOR 3-COLOR PLANAR
?
?
W é 3-COLOR
então
cantos opostos tem mesma cor