NP-Completude de algoritmos

23
 NP-Completude Liliane Salgado [email protected] 

Transcript of NP-Completude de algoritmos

Page 1: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 1/23

 NP-CompletudeLiliane Salgado

[email protected] 

Page 2: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 2/23

Motivação: existem muitos problemas que não parecem solúveis pelastécnicas que nós temos tratado até agora....

Pergunta : será que tentamos o suficiente ??

Conjectura: não existem soluções eficientes para tais problemas.

Objetivo: descrever técnicas para identificar alguns destes problemas.

Definição (algoritmo eficiente): o tempo de execução do algoritmoé limitado por algum polinômio no tamanho da entrada.

Definição (problema tratável): problema solúvel por um algoritmo

eficiente.

Page 3: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 3/23

P ± classe dos problemas tratáveis.

Como tratar com problemas que não sabemos se pertencem a P ??

Intitulados: Problemas NP-completos ou intratáveis.

Boa notícia: podemos agrupar estes problemas em uma única classePorque eles são equivalentes em um forte sentido:

 Existe um algoritmos eficiente para algum problema NP-completo

 se e somente se exsitem algoritmos eficientes para todos os problemas

 NP-completos.

 Nosso objetivo: (1) definir a classe de problemas NP-completos eMostrar como um problema pertence a esta classe; (2) apresentar 

técnicas para lidar com problemas intratáveis.

Page 4: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 4/23

R eduções de tempo polinomial

Definição (problema de decisão): problemas cujas respostas são SIM o NÃO.

Exemplo: Ao invés de buscar o tamanho máximo de um clique em um

dado grafo, podemos perguntar se existe um clique de tamanho >= k.

Obs: mesma dificuldade, não facilitamos nossa tarefa, além disto...

Se soubermos resolver o problema de decisão, então solucionamos

o problema de otimização Max Clique por busca binária.

Page 5: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 5/23

R educões entre problemas

(Idéia básica da redução)

Problema A: Problema B : Instancia de entrada: IA Instancia de entrada: IB

Solucao: SA Solucao: SB

De¿nicão: uma reducão do problema A para o problema Bé um par de transformacoes f e g tal que, dada uma instânciaqualquer IA de A:

f transforma IA em uma instância IB de B e

g transforma a solução SB de IB em uma solução SA de IA .

Page 6: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 6/23

Page 7: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 7/23

Formalizando ...

I : conjunto de todas instancias do problema ;

S : conjunto de todas as solucoes das instancias em I ;

De¿nição: Um problema A é redutível ao problema B em tempof (n) se existe a redução esquematizada abaixo:

A Bf 

IA IB

SA SBg

onde: n = |IA | e f e g sao O(f (n)).

Page 8: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 8/23

 Notação: A f (n) B .

Definição:a redução é polinomial quando f(n) é um polinômio no tamanda entrada de A, ou seja, |IA|. Dizemos que A é polinomialmente redu-tível para B.

Conhecendo um algoritmo B para B , temos imediatamente umalgoritmo A que resolve instancias genéricas de A

A = f B g .A complexidade de A sera dada pela soma das complexidades

de f , B e g .

Teorema: Se A é polinomialmente redutível para B e existe um algo-ritmo polinomial para B, então existe um algoritmo polinomial para A.

Page 9: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 9/23

Obs: a noção de redutibilidade não é simétrica, o fato de A ser polino-mialmente redutível para B, não implica o inverso.

Definição (polinomialmente equivalente): dois problemas são polino-mialmente equivalentes, ou simplesmente equivalentes, se cada um é

 polinomialmente redutível para o outro.

Definição (transitividade): se A é polinomialmente redutível para B eB é polinomialmente redutível para C, então A é polinomialmente re-dutível para C.

Page 10: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 10/23

Algoritmos não-determinísticos

Em um algoritmo determinístico o resultado de cada operacao

é de¿nido de maneira única.

 No modelo de computacao nao-determinístico, além dos coman-dos determinísticos usuais, um algoritmo pode usar o comando

Escolha(S ) , o qual retorna um elemento do conjunto S .

 Não existe regra que especi¿que o funcionamento do comandoEscolha(S) . Existem |S | resultados possíveis para esta operacaoe o comando retorna aleatoriamente um deles.

Os algoritmos nao-determinísticos são divididos em duas fases:

1. Na primeira fase, que pode fazer uso do comando nao-determinís-

tico Escolha , constroi-se uma proposta de solução.

Page 11: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 11/23

2. Na segunda fase, onde só são usados comandos determinísticos,

veri¿ca-se se a proposta de solucao resolve de fato o problema.

Ao ¿nal da fase de veri¿cacao, os algoritmos nao-determinísticossempre retornarao o resultado Aceitar ou R ejeitar , dependendo se asolução proposta resolve ou nao o problema.

A proposta de solução gerada ao ¿nal da fase de construção doalgoritmo nao determinístico é chamada de um certi¿cado.

A complexidade de execução do comando Escolha é O(1).

Uma máquina não-determinística é aquela que é capaz deexecutar um algoritmo nao-determinístico. É uma abstracao !

Page 12: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 12/23

Exemplo: determinar se um valor x pertence a um vetor A de n posições.

Um algoritmo nao-determinístico seria:

BuscaND(A,x);(* Fase de construcao *)

 j Escolha(1, . . . , n);(* Fase de veri¿cacao *)

Se A[j ] = x entao retornar Aceitar;senão retornar R ejeitar;

Qual a complexidade deste algoritmo ?

Page 13: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 13/23

De¿nição: a complexidade de um algoritmo nao-determinísticoexecutado sobre uma instância qualquer é o numero mínimo de

 passos necessarios para que ele retorne Aceitar caso exista uma

sequência de Escolhas que leve a essa conclusão.

Se o algoritmo retornar R ejeitar o seu tempo de execucao é O(1).

Um algoritmo nao-determinístico tem complexidade O(f (n)) seexistem constantes positivas c e n0 tais que para toda instanciade tamanho n n0 para o qual ele resulta em Aceitar , o tempode execução é limitado a cf (n).

Assim, o algoritmo BuscaND tem complexidade O(1). Note quequalquer algoritmo determinístico para este problema é (n) !

Page 14: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 14/23

Outro exemplo: CLIQUE

Enunciado : dado um grafo conexo nao-orientado G = (V , E )

e um valor inteiro k  {1, . . . , n}, onde n = |V | pergunta-se:G possui uma clique com k vértices ?

CliqueND(G,n,k);(* Fase de construcao *)S V;C {}; (* v´rtices da clique proposta *)Para i = 1 até k faça

u Escolha(S );S S {u};

C C {u};¿m-para(* Fase de veri¿cação *)Para todo par de vértices distintos (u, v ) em C faça

Se (u, v ) não pertence a E retornar R ejeitar;

¿m-paraR etornar Aceitar;

Page 15: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 15/23

Complexidade (nao-determinística): O(k + k 2 ) O(n2 ).

 Não se conhece algoritmo determinístico polinomial para CLIQUE.

As classes P e N P

De¿nição: P é o conjunto de problemas que podem ser resol-vidos por um algoritmo determinístico polinomial.

De¿nição: N P é o conjunto de todos os problemas que podemser resolvidos por um algoritmo não-determinístico polinomial.

Como todo algoritmo determinístico é um caso particular de umalgoritmo nao-determinístico, segue que P N P.

Assim, todos os problemas que possuem algoritmos polinomiaisestão em N P . Além disso, como visto anteriormente, CLIQUE.

Page 16: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 16/23

Questão fundamental da Teoria da Computacão: P = NP ?

Em geral, os algoritmistas acreditam que a proposição é falsa !

Como mostrar que a proposicao é falsa ?

Encontrar um problema A N P e mostrar que nenhum algo-

ritmo determinístico polinomial pode resolver A.

Como mostrar que a proposicao é verdadeira ?

Mostrar que para todo problema B  N P existe um algoritmo

determin´stico polinomial que o resolve.

Page 17: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 17/23

As classes NP-difícil e NP -completo

Será que existe um problema A em NP tal que, se A está em Pentão todo problema em NP também está em P ?

Que característica deveria ter este problema A para que a pro- priedade acima se veri¿casse facilmente ?

³Basta encontrar um problema A em NP tal que, para todo problema B em NP existe uma redução polinomial (de Karp)de B para A.

De¿nição: A é um problema NP -difícil se todo problema de NP se reduz polinomialmente a A.

Page 18: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 18/23

De¿nição: A é um problema NP -completo se

1. A   N P e2. A  N P -difícil.

Observações:

1. Por de¿nição, NP-completo  N P -difícil.

2. Se for encontrado um algoritmo polinomial para um problemaqualquer em NP-difícil então ¿cará provado que P = N P .

Page 19: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 19/23

Provas de NP ±completude

Lema: Seja A um problema em NP-difícil e B um problema em

 NP . Se existir uma redução polinomial de A para B , ou sejaA poli B então B esta em NP-completo.

Di¿culdade: encontrar um problema que esteja em NP-completo.Será que existe ?

Cook provou que SAT é N P -completo ! (Teorema de Cook)

Page 20: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 20/23

Page 21: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 21/23

Provas de NP-completude: CLIQUE

Estudar: Pag.58 ± 61 das Notas de aula do Prof. Cid Carvalho

TÉCNICAS PAR A TR ATAR COM

PR 

OBLEM

AS NP-COM

PLETOS

 Nós (muito provavelmente) não poderemos resolver um problema NPcompleto precisa e completamente com um algoritmo de tempo poli-nomial.

Consequência: Assumir um compromisso entre: otimalidade,robustez,eficiência garantida e completude da solução.

Page 22: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 22/23

Page 23: NP-Completude de algoritmos

8/7/2019 NP-Completude de algoritmos

http://slidepdf.com/reader/full/np-completude-de-algoritmos 23/23