np-completude liliane salgado [email protected]

23
NP-Completude Liliane Salgado [email protected]

Upload: internet

Post on 21-Apr-2015

118 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: NP-Completude Liliane Salgado liliane@cin.ufpe.br

NP-Completude

Liliane [email protected]

Page 2: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Motivação: existem muitos problemas que não parecem solúveis pelas té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 Liliane Salgado liliane@cin.ufpe.br

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-completose e somente se exsitem algoritmos eficientes para todos os problemasNP-completos.

Nosso objetivo: (1) definir a classe de problemas NP-completos eMostrar como um problema pertence a esta classe; (2) apresentartécnicas para lidar com problemas intratáveis.

Page 4: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Reduções de tempo polinomial

Definição (problema de decisão): problemas cujas respostas são SIM ouNÃ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 solucionamoso problema de otimização Max Clique por busca binária.

Page 5: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Reducõ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 Definicão: uma reducão do problema A para o problema B é um par de transformacoes f e g tal que, dada uma instância qualquer 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 Liliane Salgado liliane@cin.ufpe.br

Esquema: A B f IA IB SA SB g

Quando usar reduções ? • Situacão 1: quero encontrar um algoritmo para A e conheço um ¸ algoritmo para B . Ou seja, vou determinar uma cota superior para o problema A.

• Situação 2: quero encontrar uma cota inferior para o problema B e conheco uma cota inferior para o problema A.

Page 7: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Formalizando ...

I• : conjunto de todas instancias do problema • ; S• : conjunto de todas as solucoes das instancias em I• ; Definição: Um problema A é redutível ao problema B em tempof (n) se existe a redução esquematizada abaixo: A B f IA IB

SA SB gonde: n = |IA | e f e g sao O(f (n)).

Page 8: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Notação: A f (n) B .∝ Definição:a redução é polinomial quando f(n) é um polinômio no tamanho da 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 complexidadesde 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 Liliane Salgado liliane@cin.ufpe.br

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 Liliane Salgado liliane@cin.ufpe.br

Algoritmos não-determinísticos Em um algoritmo determinístico o resultado de cada operacaoé definido de maneira única.

No modelo de computacao nao-determinístico, além dos coman-dos determinísticos usuais, um algoritmo pode usar o comandoEscolha(S ) , o qual retorna um elemento do conjunto S .

Não existe regra que especifique 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 Liliane Salgado liliane@cin.ufpe.br

2. Na segunda fase, onde só são usados comandos determinísticos,verifica-se se a proposta de solucao resolve de fato o problema.

Ao final da fase de verificacao, os algoritmos nao-determinísticossempre retornarao o resultado Aceitar ou Rejeitar, dependendo se a solução proposta resolve ou nao o problema. A proposta de solução gerada ao final da fase de construção doalgoritmo nao determinístico é chamada de um certificado. 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 Liliane Salgado liliane@cin.ufpe.br

Exemplo: determinar se um valor x pertence a um vetor A de nposições. Um algoritmo nao-determinístico seria: BuscaND(A,x); (* Fase de construcao *) j ← Escolha(1, . . . , n); (* Fase de verificacao *) Se A[j ] = x entao retornar Aceitar; senão retornar Rejeitar;

Qual a complexidade deste algoritmo ?

Page 13: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Definição: a complexidade de um algoritmo nao-determinísticoexecutado sobre uma instância qualquer é o numero mínimo depassos necessarios para que ele retorne Aceitar caso exista umasequência de Escolhas que leve a essa conclusão.

Se o algoritmo retornar Rejeitar 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 Liliane Salgado liliane@cin.ufpe.br

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;∪ fim-para (* Fase de verificação *) Para todo par de vértices distintos (u, v ) em C faça

Se (u, v ) não pertence a E retornar Rejeitar; fim-para Retornar Aceitar;

Page 15: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Complexidade (nao-determinística): O(k + k2 ) O(n⊆ 2 ). Não se conhece algoritmo determinístico polinomial para CLIQUE. As classes P e N P

Definição: P é o conjunto de problemas que podem ser resol-vidos por um algoritmo determinístico polinomial. ıDefiniçã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 Liliane Salgado liliane@cin.ufpe.br

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 Liliane Salgado liliane@cin.ufpe.br

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 verificasse facilmente ?

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

Definição: A é um problema NP -difícil se todo problema deNP se reduz polinomialmente a A.

Page 18: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Definição: A é um problema NP -completo se 1. A N P e∈2. A N P -dif∈ ícil. Observações: 1. Por definição, NP-completo N P -dif⊆ ícil. 2. Se for encontrado um algoritmo polinomial para um problema qualquer em NP-difícil então ficará provado que P = N P .

Page 19: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Provas de NP –completude

Lema: Seja A um problema em NP-difícil e B um problema emNP . Se existir uma redução polinomial de A para B , ou sejaA poli B ent∝ ão B esta em NP-completo.

Dificuldade: 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 Liliane Salgado liliane@cin.ufpe.br

Provas de N P –completude

Depois que Cook (1971) provou que SAT estava em NP-completoKarp (1972) mostrou que outros 24 problemas famosos também estavam em NP-completo.

Lembre-se:

Para provar que um problema A esta NP-completo é necessário: 1. Provar que A esta em N P 2. Provar que A esta em N P -dif´cil: pode ser feito encontran- do-se uma redução polinomial de um problema B qualquer em NP-difícil para A.

Page 21: NP-Completude Liliane Salgado liliane@cin.ufpe.br

Provas de NP-completude: CLIQUE

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

TÉCNICAS PARA TRATAR COMPROBLEMAS NP-COMPLETOS

Nós (muito provavelmente) não poderemos resolver um problema NP-completo 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 Liliane Salgado liliane@cin.ufpe.br
Page 23: NP-Completude Liliane Salgado liliane@cin.ufpe.br

•Algoritmos de aproximação

•Algoritmos probabilísticos

•Tempo de execução do caso médio

•Completude do algoritmo (cobertura de vértices pode ser resolvido para grafos bipartidos)

•Algoritmos exponenciais que trabalham bem para pequenas entra-das e que podem ser suficientes para o que se deseja. (backtracking)