Completude NP - complexidade

download Completude NP - complexidade

of 10

Transcript of Completude NP - complexidade

  • 8/7/2019 Completude NP - complexidade

    1/10

    Completude NP1

    A questo: P = N P ?

    Discutimos agora as relaes entre as classes P e NP, j definidas. Inicialmente temos:

    Lema 1: P N P

    Prova: seja P um problema de deciso, ento existe um algoritmo que representa a soluo de, em tempo polinomial. Ento, em particular, pode ser utilizado como algoritmo dereconhecimento para uma justificativa resposta SIM de . Logo, NP.

    A pergunta natural seguinte seria P NP ? Ou seja, existe algum problema na classe NP que sejaintratvel? Ou, caso contrrio, todo problema em NP admite necessariamente algoritmo polinomial?Isto , a exigncia do que uma justificativa SIM pode ser reconhecida em tempo polinomial suficiente para garantir a existncia de um algoritmo polinomial para ?

    At o momento no se conhece a resposta a essa pergunta. Todas as evidncias apontam nadireo P NP. O principal argumento para se formular essa conjectura que a classe NPincorpora um conjunto enorme de problemas, para os quais inmeros pesquisadores tmdesenvolvido esforos para elaborar algoritmo eficientes. E apesar desses esforos contnuosno foi possvel a formulao de algoritmos polinomiais para qualquer deles. Os problemas desseconjunto pertencem ento a NP P, o que conduz conjectura P NP.

    Outra questo, quo complexo pode ser um problema da classe NP. Ou seja, admitindo que P NP,seria possvel ao menos resolver em tempo exponencial, todo problema da classe NP? O lema a seguirresponde afirmativamente a esta pergunta:

    Lema 2: seja

    NP um problema de deciso. Ento uma resposta SIM ouNO parapode ser obtida em tempo exponencial

    Prova: se NP ento existe um algoritmo que reconhece se verdadeira uma justificativa J aresposta SIMa , tal que polinomial no tamanho da entrada de . Seja k o tamanho de J que necessariamente tambm polinomial com a entrada de . Ora, J escrita atravs de uma seqnciaapropriada que contm letras, nmeros ou smbolos especiais. Obviamente, existe um conjunto C, decardinalidade fixa, que contm os elementos que podem compor J. A idia ento considerar todasas seqncias possveis que podem corresponder ou no a uma justificativa, a ser reconhecida comoverdadeira.

    Se houver uma justificativa reconhecida como tal, ento obviamente possui soluo SIM. Setodas as justificativas forem reconhecidas como falsas ento possui resposta NO. O nmerototal dessas seqncias {C}k. O reconhecimento de cada seqncia polinomial no tamanho . Issoprova o lema.

    Complementos de problemas

    Como mencionado, a definio da classe NP exige que a justificativa SIMdeva ser reconhecida emtempo polinomial, enquanto nada se exige da justificativa NO. Esse fato sugere a possibilidade dese inverter os papis desempenhados pelas mesmas, o que conduz a uma nova classe de problemas.Assim sendo, define-se a classe Co-NP como sendo aquela que compreende todos os problemas dedeciso , tais que existe uma justificativa resposta NO, cujo passo de reconhecimentocorresponda a um algoritmo polinomial no tamanho da entrada de .

  • 8/7/2019 Completude NP - complexidade

    2/10

    Completude NP2

    Por analogia, define-se o complemento de um problema de deciso X como sendo o problema dedeciso cujo objetivo o complemento da deciso do . Ou seja, e possuem SIM e NOtrocados. Isto , a resposta ao problema X SIM se e somente se a resposta a X for NO.

    Uma conseqncia direta dessa definies que a classe Co-NP compreende exatamente os

    complementos dos problemas da classe NP, isto , NP se e somente se Co-NP.

    Pode-se formular para a classe Co-NP um lema semelhante ao primeiro que apresentamos, ou seja, imediato verificar que P Co-NP. Assim sendo, se um problema de deciso admitir soluopolinomial, ento obviamente P e ( NP Co-NP). Por outro lado, existem problemasque sabidamente pertencem a classe NP, mas que se desconhece a pertinncia ou no a classe NP deseus complementos. Considerando esses ltimos e trocando NP por Co-NP, possvel, por analogia,construir exemplos de problemas da classe Co-NP, mas cuja pertinncia ou no a Co-NP de seuscomplementos seja desconhecida. Tambm h exemplos de problemas para os quais se desconhecea pertinncia ou no a classe NP, tanto de quanto do complemento . Como exemplo considere o

    problema clique, que vimos anteriormente. Seu complemento oproblema clique:

    problema: cliquedados: um grafo G(V, E) e um inteiro k > 0deciso: G possui uma clique de tamanho k ?

    J foi observado que clique NP. Para que cliquetambm pertena a essa classe, seria necessria aexistncia de um algoritmo que reconhecesse em tempo polinomial com o tamanho de G, umaconveniente justificativa SIM pergunta formulada na deciso acima. Observe que esta pergunta equivalente seguinte questo: todas as cliques de G possuem tamanho < k ?. Uma justificativa

    bvia para a mesma consiste em listar todas as cliques de G. O algoritmo de reconhecimentoconsiste em certificar que todas as cliques de G foram listadas e em computar o tamanho de cadauma, comparando-o com k. Contudo, como tambm j foi observado, o nmero de cliques pode serexponencial no nmero de vrtices do grafo. Logo, esse processo de complexidade tambmexponencial, o que o invalida. Por outro lado, no conhecido algoritmo alternativo para talreconhecimento, que seja polinomial no tamanho do grafo. Mas tampouco se conhece qualquer provade sua no existncia. Conseqentemente, no sabido clique NP.

    Um exemplo de problema X para o qual desconhecida a pertinncia a NP tanto de X, quanto de X o clique mxima. Exemplos do caso oposto (isto , de problemas X tais que X e X ambos pertencem aNP) so inmeros. Como foi mencionado, P NP e P Co-NP. Logo, qualquer problema X P satisfaz

    X NP e X NP. H porm, problemas X, tais que desconhecido se X P, mas sabe-se que ambosX, X NP. Um exemplo deste caso oproblema dos nmeroscompostos:

    problema: nmeros compostosdados: um nmero inteiro k > 0deciso: existem inteiros o, q >1 tais que k = p*q?

    imediato verificar que nmeros compostos NP. Para tanto, basta observar que o passo deexibio de uma justificativa SIM consiste em listar os inteiros p e q. O passo de reconhecimentocorresponde, ento, a efetuar o produto p*q e compar-lo com k. Por outro lado, o complemento denmeros compostos o seguinte:

  • 8/7/2019 Completude NP - complexidade

    3/10

    Completude NP3

    problema: nmeros compostos (nmeros primos)dados: um nmero inteiro k > 0deciso: k primo?

    Embora no seja trivial, conhecido um algoritmo que reconhece uma justificativa SIM para esseproblema, em tempo polinomial com a entrada. Isto permite concluir que o mesmo pertence classeNP. Contudo, no se conhece, at o momento, algoritmo que possa resolvero problema em tempopolinomial. Em resumo, ambos nmeros compostose nmeros primospertencem a classe NP. Contudo,no sabido se pertencem ou no a classe P. Conclui-se que as seguintes questes no foramresolvidas at o momento:

    i. NP = Co-NP ?ii. P = NP Co-NP ?

    Observe que as expresses (i) e (ii) no so independentes da questo P = NP ?

    De fato, se P = NP ento necessariamente NP = Co-NP e portanto ambas (i) e (ii) possuem respostaSIM. Contudo, outras combinaes so tambm possveis.

    Conjectura-se que de fato NP Co-NP e P NP Co-NP, como vemos na ilustrao abaixo:

    Reduo Polinomial

    Sejam os problemas de deciso 1(D1, Q1) e 2(D2, Q2). Suponha que seja conhecido um algoritmo A2para resolver o 2. Se for possvel transformar o problema 1 em 2 e sendo conhecido um processode transformar a soluo de 2 numa soluo de 1, ento o algoritmo A2 pode ser utilizado pararesolver o problema 1. Observe que como o objetivo consiste em resolver 1, atravs de A2, o que

    se supe dado uma instncia de 1 para a qual se deseja conhecer a resposta. A partir da instnciaI1 D1, elabora-se a instncia I2 D2. Aplica-se ento o algoritmo A2 para resolver 2. O retornoao problema 1 realizado atravs da transformao da soluo de 2 para a de 1. Se atransformao de 1 em 2, bem como a da soluo de 2 na de 1. Se a transformao de 1 em 2bem como o da soluo de 2 na de 1 puder ser realizada em tempo polinomial, ento diz-se, queexiste uma reduo polinomial de 1 em 2, e que 1 redutvel em 2.

    Formalmente uma reduo polinomial de um problema de deciso X 1(D1, Q1) problema de decisoX2(D2, Q2) uma funo f: d1 d2 tal que as seguintes condies so satisfeitas:

    i. pode ser computada em tempo polinomial, eii. para cada instncia I D1 do problema X1 possui resposta SIM se e somente se X2(f(I))tambm o possuir

  • 8/7/2019 Completude NP - complexidade

    4/10

    Completude NP4

    Esquematizando temos:

    X1

    Reduo

    polinomialX2

    algoritmo

    A2

    soluo

    para

    X2

    reduo

    polinomial

    soluo

    para

    X1

    Note as transformaes de maior interesse so precisamente as polinomiais. Isto ocorre porque elaspreservam a natureza (polinomial ou no) do algoritmo A2 do problema X2, quando utilizado pararesolver X1. Dessa forma se o algoritmo A2 for polinomial e se existir a reduo polinomial, ento X1tambm pode ser resolvido em tempo polinomial. Denota-se 12 para indicar que X1 pode serreduzido em X2. Note ainda que a relao transitiva ( isto , 12 e 2313).

    Para ilustrar um processo simples de reduo polinomial, considere como X1 e X2, respectivamente osproblemas cliquee conjunto independente de vrtices, apresentados anteriormente. A instncia I decliqueconsiste de um grafo G (V, E) de um inteiro k > 0. Para obter a instncia f(I) de conjuntoindependente, considera-se o grafo complemento G de G e o mesmo inteiro k. ento evidente que f uma reduo polinomial porque:

    i. G pode ser obtido a partir de G, em tempo polinomial, eii. G possui uma clique de tamanho k se e somente se G possui um conjuntoindependente de vrtices de tamanho k

    Portanto, se existir um algoritmo A2 que resolve conjunto independenteem tempo polinomial, entoeste algoritmo pode ser utilizado para resolver clique tambm em tempo polinomial. Ento cliqueconjunto conjunto independente. Observe que quando 12 a transformao f deve ser aplicadasobre uma instncia I genrica de 1. A instncia que se obtm de 2 contudo particular, pois

    fruto da reduo particular f utilizada. Assim sendo, de certa forma, 2 pode ser considerado comoum problema de dificuldade maior ou igual a 1. Pois que, mediante f, um algoritmo que resolve ainstncia particular de 2, obtida atravs de f, resolve tambm a instncia de X1 dada.

    Considere agora dois problemas 1 e 2, tais que 12 e 21. Ento 1 e 2 so denominadosproblemas equivalentes. Segue-se que, segundo a observao acima, dois problemas equivalentes sode idntica dificuldade (no que se refere existncia ou no de algoritmo polinomial para resolv-los). Note que quando 1 2, a particularizao de 2 construda pela transformao f equivalente ao problema geral 1. Isto , representado por f(D1) o conjunto imagem de f: D1 D2, oproblema 1(D1, Q1) equivalente particularizao ( f(D1), Q2), do problema 2(D2, Q2), comoilustramos a seguir:

    Redues polinomiais de linguagens

    Uma reduo polinomial de alguma linguagem L1 sobre um alfabeto 1, para outra linguagem L2 sobreum alfabeto 2, uma funo f: *1*2 que pode ser computada por mquina de Turing em tempopolinomial, para a qual w L1 se somente se f(w) L2 para cada w *1.

    Se h uma reduo polinomial de uma linguagem L1 para uma linguagem L2, dizemos que L1 reduz paraL2 e escrevemos L1 L2.

  • 8/7/2019 Completude NP - complexidade

    5/10

    Completude NP5

    Teorema: se L1 L2 e L2est em P, ento L1est em P.

    Prova: desde que L1 L2, h uma reduo polinomial fde L1 para L2 que pode ser computada poralguma mquina de Turing Mf em tempo polinomial. Em particular, h um polinmio p(x) tal que Mfcomputa f(w)em tempo p(|w|) para cada w L1. Por outro lado, o comprimento de f(|w|)no pode

    ser maior que p(|w|) + |w| ( Mf no pode escrever mais que p(|w|) smbolos em p(|w|) passos;portanto a sada de Mf quando dada entrada w, no ser maior que p(|w|) mais o comprimento daentrada original |w|). Agora seja M2 uma mquina de Turing que aceita L2 em tempo polinomial.Ento, h um polinmio q(x) tal que M2 aceita cada v em L2 em at q(|v|) passos. Entretanto amquina composta M1M2 aceita cada w L1 em at p(|w|) + q(p(|w|) + |w|) passos, que umpolinmio em |w| como requerido. Assim, M1M aceita L1 em tempo polinomial, e L est em P.

    A maior aplicao desse teorema us-lo como ferramenta para mostrar que certas linguagensesto em P. se podemos mostrar que existe uma reduo polinomial de alguma linguagem L1 paraoutra linguagem L2, ento podemos provar que ambas as linguagens esto em P apenas mostrando queL est em P. Assim conclumos que estas redues providenciam um meio de atacar a classificaode mais que um problema ao mesmo tempo.

    O teorema provado acima o teorema de S. A. Cook que identifica uma linguagem (um problema dedeciso) na classe NP para o qual qualquer outra linguagem em NP pode ser reduzida por algumareduo polinomial.

    Vamos adotar uma notao para apresentar oproblema da satisfabilidade:

    primeiro considere um conjunto V = {v1, v2, ..., vn} de variveis Booleanas (ou lgicas) e defino umaatribuio de verdade para V como uma funo de V no conjunto {verdadeiro = v, falso = f}, eainda que a representao da negao de uma varivel vi ser vi.

    assim se a atribuio de verdade associa a vi o valor 1, ento vi ser 0, e vice versa. variveis e suas negaes so chamados de literais. definimos uma condio sobre V para um conjunto no vazio de literais associado com V. se a

    condio contem dois ou mais literais, prevemos uma conexo entre eles com as palavras oucomo v1 ou v3 ou v4.

    uma condio dita ser satisfeita por uma atribuio de verdade se ao menos um dos literais verdade sob aquela atribuio.

    Podemos agora apresentar o problema de deciso associado com o teorema de Cook:

    Dado um conjunto V de variveis e uma coleo de condies sobre V, h uma atribuio de verdadeque satisfaa as condies?

    Esse problema conhecido como o problema da satisfabilidade (ou apenas SAT). Podemos codificarqualquer instncia de SAT como uma cadeia simples, considerando { v1, v2, ..., vn} o conjunto devariveis, denotando cada literal por uma cadeia de comprimento mde acordo com o esquema:

    cada literal vi representado por uma cadeia de 0s exceto para p (positivo) na i-sima posio; cada literal vi representado por uma cadeia de 0s exceto por um n (negativo) na i-sima

    posio.

    Ento cada condio representada por uma lista de literais, separados por /. Finalmente toda ainstncia do SAT representada por uma lista dessas condies nas quais cada condio colocada

  • 8/7/2019 Completude NP - complexidade

    6/10

    Completude NP6

    entre ( ) a instncia do SAT contendo variveis v1, v2 e v3 e condies v1 ou v2, v2 ou v3 e v1 ouv3 ou v2 seria representada pela cadeia:

    (p00/0n0)(0p0/00p)(n00/00n/0p0)

    Denotaremos a linguagem que consiste daquelas cadeias representando instncias de SAT que temsatisfeito as atribuies de verdade como LSAT. Portanto,

    (p00/0n0)(0p0/00p)(n00/00n/0p0)

    est em LSAT porque a instncia correspondente de SAT pode ser satisfeita pela atribuio deverdade que associa v1 a f, v2 a f e v3 a v. A cadeia

    (0p0/00p)(00n/0p0/n00)(p00/0n0)

    tambm est em LSAT desde que representa a mesma instncia de SAT como a cadeia anterior. Ms,a cadeia

    (p00/0p0)(n00/0p0)(p00/0n0)(n00/0n0)

    no est em LSAT desde que nenhuma atribuio satisfaz v1 ou v2, v1 ou v2, v1 ou v2 e v1 ou v2simultaneamente.

    Vamos agora apresentar as atribuies de verdade por cadeias de ps e ns nas quais um p na i-sima posio indica que a varivel vi verdadeira que um nna i-sima posio indica que vi falsa.Ento para testar se uma instncia codificada de SAT satisfaz ou no determinada atribuio,meramente lemos a cadeia que representa a instncia do problema da esquerda para a direitaenquanto verificamos cada condio para ver se contem um literal em que p ou n correspondem aposio na atribuio de verdade, observe a ilustrao a seguir:

    Baseando nessa tcnica construmos uma mquina de Turing no-determinstica que aceita LSATemum tempo polinomial. Vamos empregar uma mquina de Turing de duas fitas que poderia:

    1. iniciar cada computao verificando que sua entrada representando uma coleo decondies,

    2. escrever, de forma no-determinstica, uma cadeia de ps e ns de comprimento igual aonmero de variveis nas condies sob a fita 2, e

    3. mover a cabea do fita 1 atravs da entrada enquanto testa para verificar a atribuio deverdade da fita 2 satisfaz as condies que esto sendo lidas.

  • 8/7/2019 Completude NP - complexidade

    7/10

  • 8/7/2019 Completude NP - complexidade

    8/10

    Completude NP8

    Desde a descoberta desse teorema, muitas linguagens em NP tem sido encontradas para possuir asmesmas propriedades que LSAT. Existe atualmente um grande nmero de linguagens em NP que soconhecidas para ser reduzidas polinomialmente em qualquer outra linguagem em NP, essas linguagensso ditas NP completas.

    A classificao de linguagens NP completas um importante tpico da pesquisa atual. Se qualqueruma dessas linguagens pode ser aceita por uma mquina de Turing determinstica em tempopolinomial, ento NP deve ser igual a P, e muitos problemas que parecem consumir tanto tempo queso intratveis, podero ser mostrados tratveis. conseqentemente, se qualquer linguagem em NPpode ser mostrada fora de P, ento toda as linguagens NP completas devem tambm estar fora de P,e sabemos que a pesquisa continua por solues mais eficientes. Em contrapartida reforamos umavez mais o conceito da classe P, que consiste das linguagens que podem ser aceitas em um tempopolinomial por uma mquina de Turing, e intuitivamente podemos considerar que a classe deproblemas que tem uma soluo computacional prtica.

    Problema NP - CompletoObserve que possvel utilizar a relao para dividir NP em classes de problemas equivalentesentre si. Obviamente, os problemas pertencentes a P formam uma dessas classes. E, nesse sentido,podem ser considerados como os de menor dificuldade em NP. Em contrapartida, existe outraclasse de problemas equivalentes entre si, que correspondem aos de maior dificuldade dentretodos em NP. Os problemas dessa nova classe so denominados NP-completo, cuja definio aseguinte:

    Um problema de deciso X denominado NP-completo quando as seguintes condies forem ambassatisfeitas:

    i.X NPii.Todo problema de deciso X NP satisfaz X X.

    Observe que (ii) implica que todo problema da classe NP pode ser transformado polinomialmente noproblema X NP-completo. Isto , se um problema NP-completo X puder ser resolvido em tempopolinomial ento todoproblema de NP admite tambm um algoritmo polinomial (e conseqentemente,nesta hiptese, P = NP). E tambm reciprocamente. Vale pois, X P se e somente se P = NP. Isto

    justifica o fato de que a classe NP-completo corresponde aos problemas de maior dificuldade dentreos pertencentes a NP.

    Caso somente a condio (ii) da definio acima, seja considerada (no importando se (i) ou nosatisfeita), o problema X denominado NP-difcil. conseqentemente, a dificuldade de umproblema NP-difcil maior ou igual a de um NP-completo.

    Nossa ateno agora deve voltar-se para a identificao de problemas que pertencem a NP-completo. Como a nica informao que dispomos a definio da classe, o processo de identificaode tais problemas envolveria a aplicao da mesma. Contudo, esbarra-se numa dificuldade. Acondio (ii) da definio requer que seja provado que todo problema de NP pode serpolinomialmente transformado no problema candidato a pertencer classe NP-completo. Esta tarefaseria por demais rdua para ser aplicada a cada possvel candidato a NP-completo. O lema a seguircontorna essa questo:

    Lema 3: sejam X1 , X2 problemas de deciso NP. Se X1 NP-completo e12ento2 tambm NP-completo

  • 8/7/2019 Completude NP - complexidade

    9/10

    Completude NP9

    Prova: como 2 NP, para mostrar que 2 NP-completo, basta provar que 2, para todo XNP. Como X1 NP-completo, ento necessariamente X1. Como 12, por transitividade tem-se 2.

    Esse lema, por sinal simples, muito poderoso. Como conseqncia, para provar que um certo

    problema X NP-completo, ao invs de utilizar a mencionada condio (ii) da definio (que exigeuma prova de que todo problema X NP polinomialmente transformvel em X), basta, demonstrarque um problema NP-completo polinomialmente redutvel em X. Em suma, para mostrar que umproblema X NP-completo suficiente provar que:

    i. X NP, eii. um problema sabidamente NP-completo X tal que X X.

    Observe que se apenas (ii) for realizado, ento X NP-difcil, mas no necessariamente NP-completo. Contudo, para que este esquema de prova possa ser utilizado, necessrio escolher algumproblema X que seja sabidamente NP-completo. Portanto, para se identificar algum primeiro

    problema desta classe, o processo acima no se aplica. Essa primeira identificao dada peloteorema a seguir:

    Teorema: o problema da satisfabilidade NP-completo

    A prova deste teorema, um tanto longa (no ser apresentada), consiste de uma transformaopolinomial genrica, de um problema da classe NP em satisfabilidade.

    Uma vez identificado um primeiro membro da classe NP-completo, o reconhecimento de outrosproblemas da classe pode ser realizado da maneira mais simples, atravs da aplicao do processoacima citado. Assim sendo, tem-se:

    Lema 4: o problema clique NP-completo.

    Prova: os dados de cliqueso um grafo e um inteiro positivo. Seja C uma clique do grafo. Pode-sereconhecer se C uma clique e computar o seu tamanho, em tempo polinomial no tamanho da entradade clique. Logo clique NP. necessrio agora verificar que algum problema NP-completo pode serpolinomialmente redutvel em clique. Seja ento uma instncia genrica de satisfabilidade. Esta constituda de uma expresso booleana E na fnc, compreendendo as clusulas L1, L2, .. , Lp. a questode decidir se um certo grafo G (V, E) possui ou no uma clique de tamanho p. O grafo G construdo, a partir da expresso E, da seguinte maneira. Existe um vrtice diferente em G, paracada ocorrncia de literal de G. Existe uma aresta diferente (v i, vj) em G, para cada par de literaisbi, bj de E, tais que bi jb , e bi, bj ocorrem em clusulas diferentes de E. Como decorrncia, cada

    aresta (vi, vj) ocorrem de G tal que os literais b i, bj, correspondentes em E, esto em clusulasdiferentes e podem assumir o valor verdadeiro simultaneamente. E reciprocamente. Logo, uma cliquede G com p vrtices corresponde em E, a p literais, um em cada clusula, os quais podem assumir ovalor verdadeiro simultaneamente. E reciprocamente. Portanto, decidir se E satisfazvel umproblema equivalente a decidir se G possui uma clique de tamanho p, vide ilustrao a seguir.

    Para completar a prova basta observar que a construo de G pode ser facilmente realizada emtempo polinomial com o tamanho da expresso E.

  • 8/7/2019 Completude NP - complexidade

    10/10

    Completude NP10

    Transformao da prova do lema4

    E = (b1 2b ) ( 1b 2b b3) ( 1b b2 3b )

    Lema 5: o problema conjunto independente de vrtices NP-completo.

    Quando apresentamos a classe NP, provamos que conjunto independente NP. Na seo anterior,verificamos que cliqueconjunto conjunto independente. Sabe-se que pelo lema 4, que clique NP-completo. Logo, conjunto independente de vrtices NP-completo. Empregando o mesmo raciocnio,

    poderemos provar que problemas pertencentes a NP so NP-completo.

    Naturalmente a lista de tais problemas NP-completo tem centenas de problemas apontados naliteratura em diversas reas: grafos, teoria dos nmeros, lgica, construo de software,programao matemtica e muitas outras. Nesse conjunto, encontram-se alguns problemas para osquais h muitos anos tenta-se desenvolver algoritmos eficientes, sem ter logrado sucesso at omomento. O resultado infrutfero dessas tentativas, bem como o grande nmero de problemas dalista, constituem indcios importantes da possvel correo da afirmativa: P NP.