np-completude de algoritmos
TRANSCRIPT
8/7/2019 NP-Completude de algoritmos
http://slidepdf.com/reader/full/np-completude-de-algoritmos 1/23
NP-CompletudeLiliane Salgado
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.
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.
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.
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 .
8/7/2019 NP-Completude de algoritmos
http://slidepdf.com/reader/full/np-completude-de-algoritmos 6/23
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)).
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.
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.
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.
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 !
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 ?
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) !
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;
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.
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.
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.
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 .
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)
8/7/2019 NP-Completude de algoritmos
http://slidepdf.com/reader/full/np-completude-de-algoritmos 20/23
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.
8/7/2019 NP-Completude de algoritmos
http://slidepdf.com/reader/full/np-completude-de-algoritmos 22/23
8/7/2019 NP-Completude de algoritmos
http://slidepdf.com/reader/full/np-completude-de-algoritmos 23/23