Você está na página 1de 3

26/06/14

Problemas NP-Completo

Problemas NP-Completo
Introduo
Introduziremos no decorrer desta exposio, uma idia do que seja um problema NPCompleto, de um problema NP-rduo, definiremos o Teorema de Cook,
demonstrando-o de forma abstrata, e descreveremos o que seja basicamente um
problema SAT, alm da idia de algoritmos no-determinsticos.
Antes de todos estes conceitos, importante que se ressalte que um problema P dito
tratvel se ele possui um algoritmo de complexidade polinomial para resolv-lo, e
intratvel em caso contrrio.

Reduo do tempo polinomial


Problemas de Deciso so aqueles que podem ser respondidos com sim ou no. Esta
definio simplifica bastante todo o restante da teoria. Muitos problemas podem ser
facilmente convertidos em problemas de deciso. Por exemplo, ao invs de procurar
pelo tamanho mximo em um dado grfico, questiona-se a existncia de um valor > k.
Resolvendo-se o problema de deciso, pode-se resolver o problema original.
Um problema de deciso pode ser visto como um problema de reconhecimento de
linguagem. Considere U come sendo o conjunto de todas as possveis entradas para um
problema de deciso. Considere L U como sendo o conjunto de todas as entradas
cuja a resposta sim. Ns chamaremos L de linguagem correspondente ao problema.
Partiremos agora para a definio de reduo do tempo polinomial.
Definio: Considere L1 e L2 como sendo duas linguagens pertencentes a U1 e U2 .
Diremos que L1 redutvel polinomialmente a L2 se existe um algoritmo de tempo
polinomial que converte cada entrada u1 U1 a outra entrada u`2 U2 tal que u1 U1 se
e somente se u2 L2 .
O algoritmo mencionado na definio converte um problema em outro. Se temos um
algoritmo para L2 , ento podemos compor dois algoritmos para produzir um algoritmo
para L1 . Denote o algoritmo de converso por AC, e denote o algoritmo para L2 por
AL2 . Dada uma entrada arbitrria u1 U1 ns podemos usar AC para converter u1 a
uma entrada u2 U2 ;Ento usaremos AL2 para determinar se u2 pertence a L2 , isso
nos dir se u1 pertence a L1 .Particularizando,temos os seguintes teoremas:
Teorema 1.1
Se L1 redutvel polinomialmente a L2 e existe um algoritmo de tempo polinomial
para L2 , ento teremos um algoritmo de tempo polinomial para L1 .
Teorema 1.2
www.ime.usp.br/~weslley/probNP.htm

1/3

26/06/14

Problemas NP-Completo

Se L1 redutvel polinomialmente a L2 e L2 redutvel polinomialmente a L3 , ento


L1 redutvel polinomialmente a L3 .
A essncia do mtodo apresentado at o momento procurar por algoritmos
equivalentes quando um algoritmo eficiente no pode ser encontrado.

No-determinismo e Teorema de Cook


Antes de definirmos o que vem a ser um algoritmo no determinstico, importante
definir o que vem a ser uma primitiva Nd-Choice. Como seu nome sugere, utilizada
para lidar com escolhas, sendo associada a um nmero fixo de escolhas, tal que, para
cada escolha, o algoritmo segue um diferente caminho computacional. Dada uma
entrada x, um algoritmo no-determinstico realiza passos determinsticos regulares
intercalado com o uso de primitivas Nd-Choice, e , no final, ele decide se aceita ou no
x.
Diremos que um algoritmo no-determinstico reconhece uma linguagem L se:
Dada uma entrada x, possvel converter cada Nd-Choice encontrado durante a
execuo do algoritmo, dentro de uma escolha real tal que o resultado do algoritmo
ser para aceitar x, se e somente se, x L.
Algoritmos no-determinsticos so muito poderosos, mas seu poder limitado. Nem
todos os problemas podem ser resolvidos eficientemente por algoritmos nodeterminsticos. Por exemplo, suponha que o problema determinar se o "matching"
mximo em um dado grafo exatamente k. Podemos usar um algoritmo de "matching"
no-determinstico para encontrar um "matching" de tamanho k, se ele existir, mas
no podemos determinar facilmente(nem no-determinsticamente) que no existe um
"matching" de tamanho maior.
A classe de problemas que possui algoritmos no-determinsticos cujo passo de
reconhecimento pode ser realizado por um algoritmo polinomial do tamanho da
entrada, chamada de NP. Um questionamento ainda no respondido o que diz
respeito a qual tipo de algoritmo mais eficiente, no-determinsticos ou
determinsticos. Um caminho para provar que os algoritmos no-determinsticos so
mais eficientes que os determinsticos mostrar que um problema NP no est em P.
Ningum foi capaz ainda. Entretanto para provar que as duas classes so
iguais(P=NP), ento taremos que mostrar que para todo problema pertencente a NP
tem soluo com um algoritmo determinstico de tempo polinomial. Tambm no foi
provado(poucos acreditam na veracidade desta afirmao).
Definio: Um problema X chamado um problema NP-rduo se todo problema NP
redutvel polinomialmente a X.
Definio: Um problema X chamado NP-Completo se (1) X pertence a NP, e (2)X
NP-rduo.
www.ime.usp.br/~weslley/probNP.htm

2/3

26/06/14

Problemas NP-Completo

Cook provou que existem problemas NP-Completo: em particular, ele exibiu um certo
problema que descreveremos brevemente. Uma vez encontrado um problema NPCompleto, provaremos que outros problemas tambm so NP-Completo. Para isso
definiremos o lema a seguir.
Lema
Um problema X NP-Completo, se (1) X pertence a NP, e (2) Y redutvel
polinomialmente a X, para algum problema Y que NP-Completo.
Demonstraco: Pela condio 2 na definio de NP-Completo, cada problema em NP
redutvel polinomialmente a Y. Mas desde que Y redutvel polinomialmente a X e
redutibilidade uma relao transitiva, cada problema em NP redutvel
polinomialmente a X. De posse disto e da condio 1, prova-se que X NP-Completo.

O Problema SAT
Dadas as variveis booleanas x1 ,x2 ,x3 de um problema W e x1 , x2 , x3 seus
complementos, ao conjunto de todas as variveis de W e seus complementos d-se o
nome de literais. Denote-se por V e L as operaes binrias, disjuno (ou) e
conjuno (e). Define-se uma clusula como sendo uma disjuno de literais. Uma
expresso booleana possui literais como operandos e as conjunes e disjunes como
operadores. Uma expresso booleana S estar na Forma Normal Conjuntiva (FNC)
quando for uma conjuno de clusulas, ou seja, produtos de varias somas. Ex.: S=(x1
V x2 ) L (x3 V x1 V x2 ) L (x2 V x3 )
Uma expresso booleana satisfatvel quando o valor da expresso verdadeira para
determinados valores das variveis que a compem.
O problema SAT consiste em verificar se uma expresso booleana na FNC
satisfatvel.

Teorema de Cook
O problema SAT NP-Completo.
Demonstrao: O Problema SAT NP porque ns podemos supor uma associao
verdadeira e checar que ela satisfaz a expresso em tempo polinomial. Para provar
que SAT NP-rduo utiliza-se a Mquina de Turing , provando desta forma que SAT
NP-Completo.

www.ime.usp.br/~weslley/probNP.htm

3/3

Você também pode gostar