Buscar

AED II - Introdução à Teoria do NP-Completo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

1
Introdução à
Teoria do NP-Completo
Notas de aula da disciplina IME 04-05441
ALGORITMOS (Organização de Dados)
Paulo Eustáquio Duarte Pinto
(pauloedp arroba ime.uerj.br)
dezembro/2008
COMPORTAMENTO ASSINTÓTICO DE FUNÇÕES
São formas matemáticas de expressar, simplifica-
damente, a quantidade de execuções da instrução 
mais executada em um algoritmo, em função do 
crescimento da entrada.
Introdução à Teoria do NP-Completo
n0
f
c.g
n
t
COMPORTAMENTO ASSINTÓTICO DE FUNÇÕES
Função O
Função Ω
Função Θ
Função o
Função ω
Introdução à Teoria do NP-Completo
Def: Dadas duas funções f e g sobre N, diz-se 
que f é O(g), se existirem c e n0 positivos tal que, 
n > n0 ⇒⇒⇒⇒ f(n) ≤ c.g(n).
Função O (limite superior)
n0
f
c.g
n
t
Introdução à Teoria do NP-Completo
Exemplos:
f(n) = 10.log2n + 5n
f é O(n), ou seja g(n) = n, pois, para n > 2,
f(n) = 10.log2n + 5n ≤≤≤≤ 10n + 5n = 15n = 15.g(n).
f(n) = aonk + a1nk-1 + ... + akn0
f é O(nk), ou seja g(n) = nk, pois, para n > 0,
f(n) ≤≤≤≤ c.nk = c.g(n), onde c = |ao|+|a1|+...+|ak|.
Introdução à Teoria do NP-Completo
ORDEM DE GRANDEZA - tempos de execução
0.00002
0.00001
0.00001
0.000007
0.000003
log n
---30 anos2.7 horas1.70.1100.000
---14 dias2 min0.130.0110.000
---17 min10.010.0011.000
1025
anos
10.010.00070.0001100
0.010.0010.00010.000030.0000110
2nn3n2n.log nnn\f(n) 
Introdução à Teoria do NP-Completo
2
Def: Dadas duas funções f e g sobre N, diz-se 
que f é Ω(g), se existirem c e n0 positivos tal que, 
n > n0 ⇒⇒⇒⇒ c.g(n) ≤ f(n).
Função Ω (limite inferior)
n0
f
c.g
n
t
Introdução à Teoria do NP-Completo
Exemplos:
f(n) = 10.log2n + 5n
f é Ω(log n), ou seja g(n) = log n pois, p/ n > 2, 
e qualquer a > 1,
f(n) = 10.log2n + 5n ≥ 10.log2n + 5.log2n = 
15.log2n = 15.log2a.loga n = c.g(n) 
f(n) = aonk + a1nk-1 + ... + akn0, com ai ≥ 0
f é Ω(nk), ou seja g(n) = nk pois, para n > 0,
f(n) ≥ c.nk = c.g(n), onde c = min1≤i≤nai.
Introdução à Teoria do NP-Completo
Def: Dadas duas funções f e g sobre N, diz-se 
que f é Θ(g), se existirem c1, c2 e n0 positivos tal 
que, n > n0 ⇒⇒⇒⇒ c2.g(n) ≥ f(n) ≥ c1.g(n).
Função Θ (limite assintótico firme)
n0
f
c1g
c2g
n
t
Introdução à Teoria do NP-Completo
Exemplo:
f é Θ(nk), ou seja g(n) = nk pois, para n > 0,
c1.nk ≤ f(n) ≤ c2.nk , onde 
c1 = min1≤i≤nai.
c2 = ∑0≤i≤kai.
f(n) = aonk + a1nk-1 + ... + akn0, com ai ≥ 0
Introdução à Teoria do NP-Completo
Exercício:
Responder se a seguinte afirmativa é certa ou 
errada e justificar:
“Se f e g são funções tais que 
f = O(g) e g = Ω(f), então f = Θ(g)”.
Introdução à Teoria do NP-Completo
Limite inferior de problema
Def: Seja P um problema algorítmico, cuja entrada tem 
tamanho n > 0 e g uma função real positiva em n. Diz-
se que P tem um limite inferior ΩΩΩΩ(g) quando qualquer 
algoritmo αααα que resolva P tem complexidade mínima O(g).
Um algoritmo αααα0 com complexidade O(g) é um algoritmo 
ótimo.
Ex: P1 = encontrar o menor elemento do vetor V, de 
tamanho n.
P1 tem limite inferior ΩΩΩΩ(n), pois qualquer algoritmo 
para P1 tem que usar cada um dos n elementos pelo 
menos uma vez.
O seguinte algoritmo para P1 é ótimo:
m ←←←← V[1];
Para i de 2 a n: Se (V[i] < m) Então m ←←←← V[i]; Fp;
Imprimir m;
Introdução à Teoria do NP-Completo
3
Limite inferior de ordenação
Qualquer processo de ordenação baseado em 
comparações das chaves pode ser representado por uma 
árvore binária de decisão, cujas folhas são permutações 
dos elementos a ordenar.
Ex: Árvore de Decisão para ordenação por Inserção de 
3 elementos distintos
1:2
2:3
<1,2,3> 2:31:3
1:3
<1,3,2> <3,1,2> <3,2,1><2,3,1>
<2,1,3>
≤
≤ ≤
≤ ≤
>
> >
>>
Introdução à Teoria do NP-Completo
Limite inferior de ordenação
Teorema: “O limite inferior da ordenação usando 
comparações é n log n”.
Prova: A árvore de decisão de qualquer algoritmo de 
ordenação usando comparações tem no mínimo n! folhas 
e portanto 2n! -1 nós. A altura mínima dessa árvore é
log(2n!-1) = O(log nn) = O(n log n). 
Logo, qualquer algoritmo de ordenação tem que fazer, 
no pior caso, pelo menos O(n log n) comparações. Daí
segue-se que ΩΩΩΩ(n log n) é um limite inferior para o 
problema.
Obs: Pela aproximação de Stirling, temos:
n! = (2pipipipin)½(n/e)n(1 + ΘΘΘΘ(1/n))
Introdução à Teoria do NP-Completo
Problemas Polinomiais x Problemas exponenciais
Problemas polinomiais (tratáveis) são aqueles para os 
quais existem algoritmos cuja complexidade é
polinomial.
Exemplos:
-Ordenação de Dados
-Buscas e atualização em árvores
-Buscas em grafos
-Ciclos Eulerianos
-Problemas com solução gulosa, em geral
-Problemas com solução por Programação dinâmica em geral
-Programação linear
Um algoritmo é eficiente quando sua complexidade é um 
polinômio no tamanho de sua entrada.
Complexidades polinomiais:
O(n), O (n log n) O(n2) O(n50) !?
Introdução à Teoria do NP-Completo
Problemas exponenciais (intratáveis) são aqueles para os 
quais somente existem algoritmos com complexidade ex-
ponencial ou superior.
Exemplos:
-Torre de Hanoi
-Geração de Permutações
Complexidades exponenciais ou superiores:
..n
O(2n), O(n!), O(nn), O(2n )
Problemas Polinomiais x Problemas exponenciais
Introdução à Teoria do NP-Completo
Problemas ainda não classificados
Existe uma grande classe de problemas para os quais 
ainda não se sabe se existe algoritmo polinomial ou não.
Exemplos:
-Partição (Soma de subconjuntos)
-Mochila
-Empacotamento
-Programação inteira
-Caixeiro viajante
-Ciclo Hamiltoniano
-Coloração de vértices em grafos
-Satisfatibilidade
-Clique Máxima em grafos
-Conjunto independente máximo em grafos
Introdução à Teoria do NP-Completo
Classes de problemas combinatórios
Problemas combinatórios podem ser classificados quanto 
à sua forma.
-Problemas de Busca
-Problemas de Otimização
-Problemas de Decisão
Um mesmo problema pode ser proposto em qualquer uma 
das formas acima.
Introdução à Teoria do NP-Completo
4
Problemas de Busca
Nos problemas de Busca, deve-se exibir detalhada-
mente a solução procurada.
Exemplo:
Mochila com itens únicos, dados seus pesos.
Problema: 
Dados n itens com pesos (p1, ...pn), e uma mochila de capacidade 
M, exibir a combinação de itens que preencha totalmente a 
mochila.
Introdução à Teoria do NP-Completo
Problemas de Otimização
Nos problemas de Otimização, deve-se indicar um valor 
máximo ou mínimo procurado.
Exemplo: 
Mochila com itens únicos dados seus pesos e valores.
Problema: 
Dados n itens com pesos e valores respectivos (p1, v1), ...(pn, vn), 
e uma mochila de capacidade M, exibir a combinação de itens que 
obtém o valor máximo, preenchendo-se a mochila total ou 
parcialmente.
Introdução à Teoria do NP-Completo
Problemas de Decisão
Nos problemas de Decisão, a resposta é sempre SIM
ou NÃO.
Exemplo:
Mochila com itens únicos, dados seus pesos e valores.
Problema: 
Dados n itens com pesos e valores respectivos (p1, v1), ...(pn, vn), 
mochila de valor M, e um valor Q, existe uma combinação dos 
itens tal que seja possível preencher a mochila, total ou 
parcialmente, com um valor maior ou igual a Q?
Introdução à Teoria do NP-Completo
Classes P P P P e NPNPNPNP de Problemas de Decisão
A Classe PPPP é constituída dos Problemas de Decisão po-
linomiais, ou seja, aqueles problemas de decisão para os 
quais existe um algoritmo de complexidade polinomial.
A Classe NPNPNPNP é constituída dos Problemas de Decisão 
que têm CERTIFICADOS de tamanho polinomial em re-
lação à entrada, para a resposta SIM, tal que o 
certificado pode ser verificado por um algoritmo 
polinomial.
A Classe NPNPNPNP é uma tentativa de lidar com os proble-
mas ainda não classificados. Notar que nada é exigido
Em relação à resposta NÃO.
Introdução à Teoria do NP-Completo
Certificados
Um certificado é um conjunto de dados, de tamanho 
polinomial, que permite verificar, em tempo polinomial,
que uma resposta SIM dada ao problema de decisão 
está correta.
Exemplo: Mochila com peso e valor, itens únicos.
Problema: 
Dados n itens com pesos e valoresrespectivos (p1, v1),...(pn, vn), 
mochila de capacidade M, e um valor Q, existe uma combinação 
dos itens tal que seja possível preencher a mochila (total ou 
parcialmente), com um valor maior ou igual a Q?
Certificado: Uma combinação dos itens dados.
(para verificar se a resposta está correta, verifica-se se a soma 
dos itens do certificado é maior ou igual a Q. Isso pode ser feito 
em tempo polinomial).
Introdução à Teoria do NP-Completo
Exemplos de Problemas da classe NPNPNPNP
1) Obviamente: PPPP ⊆ ⊆ ⊆ ⊆ NPNPNPNP.
Problema Clique: 
Dado um grafo G e um inteiro k, G contém uma clique de tamanho 
maior ou igual a k?
Certificado: Um subconjunto de vértices de G.
(Para verificar se o certificado está correto, deve-se confirmar se 
o subconjunto tem, no mínimo k vértices e se todos os vértices são 
vizinhos entre sí em G. Isso pode ser feito em tempo polinomial, 
pois tem-se que verificar no máximo a existência de n(n-1)/2 
arestas).
2) Clique ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
5
Exemplos de Problemas da classe NPNPNPNP
Problema Conjunto Independente: 
Dado um grafo G e um inteiro k, G contém um conjunto 
independente de tamanho maior ou igual a k?
Certificado: Um subconjunto de vértices de G.
(Para verificar se o certificado está correto, deve-se confirmar se 
o subconjunto tem, no mínimo k vértices e se todos os vértices não 
são vizinhos entre sí em G. Isso pode ser feito em tempo polino-
mial, pois tem-se que verificar no máximo a inexistência de 
n(n-1)/2 arestas).
3) Conjunto Independente ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Exemplos de Problemas da classe NPNPNPNP
Problema Ciclo Hamiltoniano: 
Dado um grafo G, G contém um ciclo Hamiltoniano?
Certificado: Uma permutação dos vértices de G.
(Para verificar se o certificado está correto, deve-se confirmar se 
õ certificado é uma permutação dos vértices de G e se, na 
sequência da permutação (considerada circular), cada vértice é
vizinho do anterior. Isso pode ser feito em tempo polinomial, pois 
tem-se que verificar a existência de n arestas).
4) Ciclo Hamiltoniano ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Exercício:
Descrever um certificado que mostra que o 
problema Coloração pertence a NPNPNPNP.
Problema Coloração: 
Dado um grafo G e um inteiro k, G contém uma coloração própria 
de G com, no máximo, k cores?
Introdução à Teoria do NP-Completo
Exemplos de Problemas da classe NPNPNPNP
Problema Número Composto: 
Dado um número inteiro n, n é composto?
Certificado: Dois inteiros a e b, com a, b ≠≠≠≠ 1.
(Para verificar se o certificado está correto, deve-se verificar se 
a e b são inteiros positivos diferentes de 1 e se seu produto é
igual a n. Isso é feito em O(1).)
5) Número Composto ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Exemplos de Problemas da classe NPNPNPNP
Problema Primo: 
Dado um número inteiro n, n é primo?
Certificado: C(k) = ( r; q1,C(q1), ... qt,C(qt) ), onde:
r é tal que rk-1 ≡≡≡≡ 1 mod k
rk-1/qi ≠≠≠≠ 1 mod k
q1.q2...qt = k-1
cada qi é primo.
(A verificação é baseada em Teoremas da Teoria dos Números. 
Esse teorema deve ser verificado, recursivamente, para cada qi. 
Seja l o tamanho de C(k). Pode-se mostrar que l ≤≤≤≤ 4 log2 k ).)
6) Primo ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Exemplos de Problemas da classe NPNPNPNP
Problema Primo: 
Dado um número inteiro n, n é primo?
Em 2002, três indianos, Agrawal, Kayal e Saxtena,inventaram um 
algoritmo polinomial para testar a primalidade de um número 
inteiro, n.
Esse algoritmo, chamado AKS, tem complexidade O((log n)13). 
7) Primo ∈∈∈∈ PPPP.
Introdução à Teoria do NP-Completo
6
Exemplos de Problemas da classe NPNPNPNP
Def: 
Dados dois grafos G1 e G2, diz-se que G1 e G2 são isomorfos 
quando existe uma bijeção
f: V(G1) →→→→ V(G2) tal que (v,w) ∈∈∈∈ E(G1) sse (f(v), f(w)) ∈∈∈∈ E(G2).
8) Isomorfismo de Grafos ∈∈∈∈ NPNPNPNP.
Exemplo:
2
45
1
a
d
e
b
f
c
c6
b5
a4
e3
f2
d1
f
36
Introdução à Teoria do NP-Completo
Exemplos de Problemas da classe NPNPNPNP
Problema Isomorfismo de Grafos: 
Dados os grafos G1 e G2, eles são isomorfos?
Certificado: Uma bijeção f de V(G1) para V(G2).
(Para verificar se o certificado está correto, deve-se confirmar se 
f é bijeção e se G2 é subgrafo de G1. Isso pode ser feito em 
tempo polinomial, pois tem-se que verificar a existência de m 
arestas em G2).
8) Isomorfismo de Grafos ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Exemplos de Problemas da classe NPNPNPNP
Problema Satisfatibilidade: 
Dada uma expressão booleana E, na forma normal conjuntiva, E é
satisfatível?
Expressão na forma normal conjuntiva:
Sejam e1,...en variávies booleanas. Cada ei é denominado literal. 
Uma cláusula é uma disjunção, isto é, uma expressão da forma 
e1 | e2 | ... ek (só usa | (OU), literais ou sua negação).
Uma expressão na forma normal conjuntiva é um conjunto de 
cláusulas ligadas por & (AND).
Ex: E = (e1 | e3) & (e1 | e2 | e3).
Uma expressão E é satisfatível, quando existe uma atribuição aos 
literais que torna a expressão verdadeira. No exemplo dado, E é
satisfatível, bastando fazer: e1 = V; e2 = V; e3 = F.
9) Satisfatibilidade ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Exemplos de Problemas da classe NPNPNPNP
Problema Satisfatibilidade: 
Dada uma expressão booleana E, na forma normal conjuntiva, E é
satisfatível?
9) Satisfatibilidade ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Certificado: Uma atribuição de valores para os literais.
(Para verificar se o certificado está correto, basta calcular E com 
os valores dados e verificar que o resultado seja V. Isso 
claramente pode ser feito em tempo polinomial).
Exemplos de Problemas da classe NPNPNPNP
Problema 2-SAT: 
Dada uma expressão booleana E, na forma normal conjuntiva, onde 
cada cláusula tem exatamente 2 literais, E é satisfatível?
10) 2-SAT ∈∈∈∈ PPPP.
Introdução à Teoria do NP-Completo
Este problema tem um algoritmo polinomial que consiste em se criar 
um grafo a partir das cláusulas e verificar se a mesma cláusula e 
sua negação aparecem em um mesmo componente do grafo.
Exemplos de Problemas da classe NPNPNPNP
Problema 3-SAT: 
Dada uma expressão booleana E, na forma normal conjuntiva, onde 
cada cláusula tem exatamente 3 literais, E é satisfatível?
11) 3-SAT ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Certificado: Uma atribuição de valores para os literais.
(O problema é um caso particular de Satisfatibilidade.).
7
Exercício:
Escrever uma fórmula na FNC com 2 variáveis 
booleanas que não seja satisfatível.
Introdução à Teoria do NP-Completo
Exemplos de Problemas da classe NPNPNPNP
Problema Clique Máxima: 
Dado um grafo G e um inteiro k, a clique máxima de G possui 
exatamente k vértices?
12) Conjectura: Clique Máxima ∉∉∉∉ NPNPNPNP.
Introdução à Teoria do NP-Completo
Conjectura-se que qualquer algoritmo para resolver esse problema 
seja exponencial, porque o número de cliques de um grafo pode ser 
exponencial, no número de vértices.
Exemplos de Problemas da classe NPNPNPNP
Problema Caixeiro Viajante: 
Dado um inteiro k, um conjunto n de cidades c1, ...cn e uma matriz 
de valores dij, de distâncias entre as cidades, existe um percurso 
de caixeiro viajante de distância total ≤≤≤≤ k?
13) Caixeiro Viajante ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Exemplo: n = 4.
2
4 3
1
04
403
1502
54201
4321d O percurso c1c2c4c3c1
Tem distância total =
2+1+4+4 = 11.
Portanto, se k = 11, a
resposta seria SIM, 
para a instância dada.
Exemplos de Problemas da classe NPNPNPNP
Problema Caixeiro Viajante: 
Dado um inteiro k, um conjunto n de cidades c1, ...cn e uma matriz 
de valores dij, de distâncias entre as cidades, existe um percurso 
de caixeiro viajante de distância total ≤≤≤≤ k?
13) Caixeiro Viajante ∈∈∈∈ NPNPNPNP.
Introdução à Teoria do NP-Completo
Certificado: Um percurso de caixeiro viajante.
(Para verificar se o certificado está correto, checar que ele é um 
percurso válido e basta calcular a distância total,somando as 
distâncias entre cidades vizinhas no percurso, com o auxílio da 
matriz dada e verificar se o total é igual ou inferior a k. Isso 
claramente pode ser feito em tempo polinomial).
Classe COCOCOCO----NPNPNPNP de Problemas de Decisão
A Classe COCOCOCO----NPNPNPNP é constituída dos Problemas de 
Decisão que têm CERTIFICADOS de tamanho polinomial 
em relação à entrada, para a resposta NÃO, tal que o 
certificado pode ser verificado por um algoritmo 
polinomial.
Introdução à Teoria do NP-Completo
COCOCOCO----NPNPNPNP NPNPNPNPPPPP
Primo Número Composto
Perguntas ainda não respondidas:
P = P = P = P = NP NP NP NP ???? P = COP = COP = COP = CO----NP NP NP NP ∩∩∩∩ NP NP NP NP ? ? ? ? NP = CONP = CONP = CONP = CO----NP NP NP NP ????
Redução polinomial de Problemas
Introdução à Teoria do NP-Completo
Sejam dois problemas de decisão D1 e D2 e sabe-se que existe um 
algoritmo A2 para solucionar D2. Suponhamos que se consiga 
transformar as entradas e saídas de D1 para as entradas e saídas 
de D2. Se essas transformações forem polinomiais, então diz-se 
que
D1 se reduz polinomialmente a D2 e pode-se transformar 
polinomialmente o algoritmo A2 para solucionar D1. A transforma-
ção polinommial é representada por D1 αααα D2.
Ex: Ciclo Hamiltoniano reduz-se, polinomialmente, a Caixeiro Viajante.
CH: Dado G, existe ciclo Hamiltoniano em G?
CV: Dado G´, completo, com arestas ponderadas, existe ciclo 
Hamiltoniano com peso total ≤ k?
Transformação de CH em CV:
A partir de G para CH, cria-se G´ completo para CV, com os 
seguintes pesos: para cada aresta (v,w) de G´, se ela existir em 
G, seu peso = 1; senão, seu peso = 2. k é feito = |V(G)|.
8
A Classe NPNPNPNP-Completo
Introdução à Teoria do NP-Completo
Define-se a seguinte subclasse de NP:
A Classe NPNPNPNP-Completo é formada pelos problemas de 
decisão D tais que:
a) D ∈∈∈∈ NP
b) Se D1 ∈∈∈∈ NP então D1 reduz-se polinomialmente a D.
Em 1971 Cook demonstrou o seguinte Teorema:
“Satisfatibilidade ∈∈∈∈ NPNPNPNP-Completo”.
A Classe NPNPNPNP-Completo
Introdução à Teoria do NP-Completo
A partir do Teorema de Cook, foram demonstrados que 
os seguintes problemas pertencem à classe NPNPNPNP-Completo:
E mais de 5000 problemas muito importantes, inclusive 
do ponto de vista comercial.
-Clique
-Conjunto independente
-Ciclo Hamiltoniano
-3-SAT
-Caixeiro Viajante
-Coloração de Vértices
-Cobertura de Vértices
-Mochila (Soma de Subconjuntos)
-Programação Inteira
A Classe NPNPNPNP-Completo
Introdução à Teoria do NP-Completo
Para provar que um problema D está na classe NP-
Completo, basta provar que um problema da classe 
reduz-se polinomialmente a D.
Prova: Faz-se a transformação de SAT para 3-SAT, criando-se 
E´ da seguinte forma:
Seja cada cláusula C de E, C = l1 | l2...| lk;
a) Se k = 1 ou 2, acrescentamos | l1 2 ou 1 vezes, respect. Se = 
3. mantemos a cláusula.
b) Caso contrário, criamos duas cláusulas C´e C´´, com
C´= l1 | l2 | Z, onde Z é nova variável e C´´= l3 | ...| lk | Z
Repetem-se os passos a) e b) até todas as cláusulas terem 3 
literais.
Teorema: 3-SAT ∈∈∈∈ NP-Completo
A Classe NPNPNPNP-Completo
Introdução à Teoria do NP-Completo
Prova (cont.):
Suponhamos E satisfatível. Para as literais comuns mantemos a 
mesma atribuição que satisfez E. As novas literais só aparecem em 
cláusulas oriundas de mais de 3 literais. Seja C uma dessas 
cláusulas, com C = C´ & C´´. Seja li a literal que satisfez C. Se i 
< 3, li satisfaz C´. Então basta fazer Z = F, que C´´ também é
satisfeita. Se i > 2, li satisfaz C´´. Basta, então, fazer Z = V, 
que C´ é satisfeita. Dessa forma, todas as cláusulas de E´ são 
também satisfeitas.
Suponhamos E´ satisfatível. Como os literais que satisfazem C´ e 
C´´ não podem ser Z e Z simultâneamente, existe algum literal li
que satisfaz a uma das duas cláusulas. Esse literal é usado para 
satisfazer C.
Logo E é satisfatível sse E´ é satisfatível. Como todas as 
transformações são polinomiais, SAT αααα 3-SAT e, portanto, 3-SAT 
pertence a NPNPNPNP-Completo.
Teorema: 3-SAT ∈∈∈∈ NP-Completo
A Classe NPNPNPNP-Completo
Introdução à Teoria do NP-Completo
Prova: Faz-se a transformação de SAT para Clique.
Seja E = C1 & C2 ...& Cn. Sejam x1, x1, x2,...xm os literais dessas 
cláusulas.
Constrói-se G da seguinte maneira:
G tem um vértice para cada literal (literal normal e sua negação). 
As arestas de G ligam os vértices v e w quando os literais 
correspondentes estiverem em cláusulas distintas e um deles não 
for a negação do outro. Para completar os dados de Clique, faz-se 
k = n. Ver exemplo, para E = (x1 | x2) & (x1 | x2 | x3) & (x3).
A construção é polinomial. Devemos mostrar que SAT tem resposta 
SIM sse Clique tem resposta SIM.
Se SAT responder SIM, todas as cláusulas são verdadeiras, i. e, 
existem n literais que assumem o valor V, sem haver a contradição 
de um literal e sua negação terem mesmo valor. Em G esses 
literais correspondem a vértices 2 a 2 adjacentes. Logo, vai haver 
uma Clique de tamanho k e a resposta de CLIQUE será SIM.
Teorema: Clique ∈∈∈∈ NP-Completo
A Classe NPNPNPNP-Completo
Introdução à Teoria do NP-Completo
Prova (cont.):
Reciprocamente, suponhamos que Clique responda Sim. Então G 
contém uma clique de tamanho k = n. Por construção, os vértices 
da clique correspondem a n literais de cláusulas distintas, sem 
nenhuma contradição. Isso quer dizer que cada cláusula é
satisfeita, o que torna E satisfeita. Logo, SAT também 
responderá SIM. Conclui-se que SAT αααα Clique e, portanto, Clique 
pertence a NPNPNPNP-Completo.
Teorema: Clique ∈∈∈∈ NP-Completo
x1
x1
x2x2
x3
x3
Grafo para
E = (x1 | x2) & 
(x1 | x2 | x3) & (x3).
9
Classes P P P P e NPNPNPNP COCOCOCO-NPNPNPNP e NPNPNPNP-Completo
Questões cruciais:
Introdução à Teoria do NP-Completo
P = P = P = P = NP NP NP NP ???? P = COP = COP = COP = CO----NP NP NP NP ∩∩∩∩ NP NP NP NP ? ? ? ? NP = CONP = CONP = CONP = CO----NP NP NP NP ????
(1.000.000 de dólares)
Se algum problema NPNPNPNP-Completo tiver um 
algoritmo polinomial ⇒⇒⇒⇒ todos os problemas de NPNPNPNP
são polinomiais ⇒⇒⇒⇒ PPPP = NPNPNPNP
Não há muitas esperanças de que isso ocorra, mas 
ninguém ainda provou.
Classes P P P P e NPNPNPNP COCOCOCO-NPNPNPNP e NPNPNPNP-Completo
Superando a NPNPNPNP-Completude:
Introdução à Teoria do NP-Completo
Heurísticas + Backtracking
Algoritmos Aproximativos
Algoritmos probabilísticos
Hierarquias de Classes de Problemas
...EXPEXPEXPEXPNPNPNPNP
PPPP
NPNPNPNP----CCCC
Problemas não classificados:
Número Composto
Isomorfismo de grafos
Introdução à Teoria do NP-Completo
FIM
Introdução à Teoria do NP-Completo

Outros materiais