A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

NP A Classe de Problemas NP Referências: M. R. Garey and D. S. Johnson. Computers and Intractability: a Guide to the Theory of NP Completeness. Freeman,

Apresentações semelhantes


Apresentação em tema: "NP A Classe de Problemas NP Referências: M. R. Garey and D. S. Johnson. Computers and Intractability: a Guide to the Theory of NP Completeness. Freeman,"— Transcrição da apresentação:

1 NP A Classe de Problemas NP Referências: M. R. Garey and D. S. Johnson. Computers and Intractability: a Guide to the Theory of NP Completeness. Freeman, 1979. (biblioteca da FEUP) Richard Karp. NP-Complete Problems. Tutorial em video, 1993. (biblioteca da FEUP) David Harel. Algorithmics- The Spirit of Computing. Addison-Wesley 1987.

2 NP Fácil e difícil osituação "normal": tempo de execução linear no tamanho da entrada -a maior parte dos algoritmos vistos (excepto o do fluxo numa rede que é polinomial) -os casos em que se obtém melhor que linear envolvem pré-processamento ou são problemas aritméticos S4 é INDECIDÍVEL — problema está na auto-referência Mas há situações "estranhas", mesmo na Lógica: S1: esta frase tem mais do que 10 caracteres – V S2: esta frase está escrita em Inglês – F S3: esta frase é verdadeira – V S4: esta frase é falsa – F, V ?

3 NP Fácil e difícil oProblema da terminação -Algoritmo A while( X != 1 ){ X= X-2 } Stop -Termina para entradas X ímpar; não termina para entradas X par -Algoritmo B while( X != 1 ){ if( X é par ){ X= X/2 } else { X= 3*X+1 } } Stop -Entrada 7 dá sequência 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 e termina -Todas as entradas em que foi testado conduziram a sequências que terminaram, por vezes após crescerem muito e flutuarem de forma imprevisível. Mas não se conseguiu provar que terminam sempre (problema da Teoria dos Números). -Parar quando?

4 NP Fácil e difícil oProblema da terminação — é possível construir um programa capaz de detectar ciclos infinitos? (útil para compiladores...) programa LOOP(P), com parâmetro programa P, corre P sobre ele próprio, isto é, executa P(P); - responde SIM se P entrar em ciclo; entra em ciclo se P terminar aplicando LOOP a si próprio: P=LOOP - se P(P) termina então LOOP(P) tem que entrar em ciclo; mas assim LOOP(LOOP) tem que entrar em ciclo e terminar ao mesmo tempo - se P(P) entra em ciclo, então LOOP(P) termina: contradição - programa LOOP não se pode construir P(P) S N P Termina? SIM LOOP LOOP(LOOP) S N LOOP Termina? SIM LOOP Contradição!

5 NP Fácil e difícil Circuito de Euler (caminho que toca todas as arestas 1e 1 só vez) Caminho mais curto a partir de um vértice ALGORITMO LINEAR Ciclo Hamiltoniano (ciclo simples que passe em todos os vértices) Caminho mais longo a partir de um vértice ALGORITMO EXPONENCIAL 6 10 9 8 7 1 3 4 5 2 Não tem caminho de Euler Não tem ciclo Hamiltoniano

6 NP Fácil e difícil Mesma árvore sem pontos opcionais FÁCIL: ALGORITMO LINEAR Árvore de Steiner - Qualquer par de pontos pode ser ligado por um segmento - Problema: encontrar o mínimo da soma dos segmentos que ligam todos os pontos obrigatórios (pontos opcionais podem ser usados também) DIFÍCIL: ALGORITMO EXPONENCIAL 2^n 32 1024 1 048 576 1 073 741 824 n^3 125 1 000 8 000 27 000 n 5 10 20 30 Uso do ponto opcional: menor distância na ligação dos 3 pontos

7 NP Problemas de Pesquisa Combinatória oDe uma estrutura vasta de soluções possíveis, escolher uma que satisfaça determinadas restrições oVariantes Problemas de decisão Problemas de optimização oExemplos Escalonamento: de operações de manufactura, de voos, de aulas Encaminhamento: veículos, chamadas telefónicas, bits, petróleo, gás Planeamento: de equipamentos numa cidade, de componentes numa placa de VLSI Biologia Computacional Criptografia

8 NP Tratabilidade Definição informal (J. Edmonds, 1965) –Um problema é tratável se pode ser resolvido num número de passos limitado por uma função polinomial no tamanho da entrada Requer formalização de –Problema reduz-se a problema de decisão procurar valor mínimo de função  provar que existe valor < k –Entrada codifica-se em cadeia de 0’s e 1’s, tamanho é nº de bits –Resolver problema aceitar ou rejeitar uma entrada (decisão) –Número de passos usa-se modelo de computação universal (máquina de Turing) P P: conjunto de problemas de decisão solúveis em tempo polinomial

9 NP Tratabilidade Porquê “tratável” para problemas polinomiais? –  (N 100 ) não parece muito tratável... Problemas polinomiais típicos: ordem baixa Paralelização –pode ser usada para aumentar poder de cálculo –pode compensar a ordem de crescimento Polinómios têm boas características de fecho –fechados sob operações de adição, multiplicação, composição –Ex: saída de algoritmo polinomial é entrada de outro algoritmo polinomial : algoritmo resultante é polinomial

10 NP Problemas de Decisão Problemas de Optimização –têm objectivos muito diversos –é difícil uniformizar problemas e soluções Problemas de Decisão –Soluções são respostas Sim/Não –Exemplo: Problema do caminho mais curto Optimização: encontrar o caminho mais curto Decisão: Sim/Não existe um caminho de comprimento <k Como comparar soluções –Problema de optimização fácil - problema de decisão fácil –Problema de decisão difícil- problema de optimização difícil

11 NP Problemas em P Um problema L é da classe P se existe um algoritmo A tal que –A aceita todas as entradas de L –A rejeita todas as entradas que não são de L –Há um polinómio f tal que, para qualquer entrada x, A termina antes de f(|x|) passos Redução em tempo polinomial –Um problema de decisão L é redutível a um problema de decisão M se existe uma função polinomial computável F de strings em strings tal que x é aceite por L se e só se F(x) é aceite por M –Nestas condições, diz-se que M é pelo menos tão geral como L (pelo menos tão difícil como L) F M x F(x) Se L é redutível a M, e M está em P, então L está em P também

12 NP Problema da satisfação Booleana –Variáveis proposicionais: A, B, C, … –Literais: A, ~A, B, ~B, … –Cláusulas: A  ~B  ~D  ~F –Forma Normal Conjuntiva (CNF): conjunção de cláusulas (A  ~B  ~D  ~F)  (C  B  ~D)  (~A  F  D) ... Fórmula CNF é satisfazível se –existe uma atribuição de valores lógicos às variáveis que torna a fórmula verdadeira Exemplo: (A  ~B  ~D  ~F)  (C  B  ~D)  (~A  F  D) atribuindo o valor V às variáveis A, B, F e o valor F às variáveis C, D a fórmula é verdadeira.

13 NP Problema dos vértices com 3 cores Colorir os nós de um grafo de forma a que nenhum par de nós adjacentes fique com a mesma cor Redução de 3 cores a satisfação Booleana: Variáveis para cada vértice: R i G i B i Cláusulas Para cada vértice: R i  G i  B i ~ R i  ~G i ~ R i  ~B i ~ G i  ~B i Para cada aresta: ~ R i  ~R j ~ B i  ~B j ~ G i  ~G j Satisfação Booleana é pelo menos tão geral (tão difícil) como 3 cores

14 NP Classe NP oClasse NP (algoritmo não determinístico de verificação polinomial) classe de problemas de decisão que podem ser verificados em tempo polinomial (intuição: solução pode ser difícil de encontrar, mas é fácil verificar que satisfaz o problema) máquina não determinística tem uma escolha de passos seguintes e faz sempre a escolha óptima (adivinha!) — característica poderosa mas limitada: não serve para resolver problemas indecidíveis descoberta uma solução, a sua verificação é polinomial Ex: dado um ciclo Hamiltoniano é fácil confirmar oFormalmente (R. Karp): Um problema de decisão L está em NP se e só se existe um algoritmo de decisão polinomial A tal que x está em L se e só se existe uma testemunha y, de tamanho limitado por um polinómio no comprimento de x, tal que A aceita o par (x, y)

15 NP Problemas NP-completos oSão os mais difíceis da classe; podem ser usados como subrotinas para a solução dos outros (reduz-se problema P1 a problema P2 que é NP-completo, resolve-se este e reconverte-se a solução) oSe se descobrir uma solução polinomial para um deles, fica descoberta para todos, pois a conversão é polinomial oSuponhamos P1 NP-completo e P2 em NP; além disso existe uma redução polinomial de P1 a P2; como qualquer problema em NP se reduz polinomialmente a P1, também se reduz a P2; então P2 é NP-completo oTeorema de Cook (1971): Satisfação Booleana é NP-completo oProva: problemas de NP podem ser resolvidos em tempo polinomial por uma máquina não determinística; funcionamento desta pode ser descrito por uma expressão Booleana; obter resposta para um problema reduz-se a satisfazer a expressão. Um problema é NP-completo se qualquer problema em NP puder ser reduzido àquele em tempo polinomial

16 NP Ciclo Hamiltoniano  Caixeiro Viajante oProblema do caixeiro-viajante: Dado um grafo completo com custos nas arestas e um inteiro K existe um ciclo simples que visite todos os vértices e tenha um custo total  K? - aplicação: posicionamento de um furador de circuitos impressos para encaixar componentes (deslocar é que demora, não é furar) oAssumindo que o problema do ciclo Hamiltoniano é já sabido ser NP-completo oreduz-se ciclo Hamiltoniano ao do caixeiro viajante: oum grafo G é convertido num grafo completo G' com os mesmos vértices oaresta de G’ tem peso 1 se pertencer a G e 2 caso contrário oK igual ao número de vértices oG tem um ciclo Hamiltoniano sse G' tiver um percurso de caixeiro viajante de custo total K

17 NP Satisfação Booleana  Cobertura de Vértices oProblema da cobertura de vértices (VC): Dado um grafo, decidir se as suas arestas podem ser cobertas por um número K de vértices; cada aresta tem de ser incidente com pelo menos 1 dos K vértices oSolução sobre um grafo G: subconjunto  dos vértices - cada aresta de G tem um dos vértices em  -  tem K ou menos elementos oProblema é NP – a decisão sobre uma solução é feita em tempo polinomial oPara mostrar que VC é NP-completo: reduz-se SAT a VC Variáveis de SAT: X1, X2,...Xn Cada variável Xi: 2 vértices ui e vi e uma aresta (ui, vi) Cada cláusula Ci= L1  L2  L3 ... Lm: 1 grafo completo com m vértices wi1,...wim Ligação entre vértices: Se Lj = Xkligar wij a uk Se Lj = ~Xkligar wij a vk Inteiro K do problema VC: nº variáveis + nº ocorrências de literais - nº de cláusulas em SAT

18 NP Satisfação Booleana  Cobertura de Vértices oExemplo de expressão de SAT (X1  X2  ~X3)  (~ X1  X3)  (X1  ~ X2  X3)  (X2) U1V1U2V2U3V3 w11 w13 w12 w21 w22 w31 w33 w32 w41

19 NP Solução de SAT é solução de VC S tem resposta SIM em SAT –existe atribuição de valores lógicos a variáveis que satisfaz as cláusulas No problema VC correspondente, fazer uma cobertura V : –cada variável com valor V: Ui está em V –cada variável com valor F: Vi está em V –cada cláusula: pelo menos 1 literal é V, logo o nó w correspondente é adjacente a um vértice de V –todos os outros vértices w: vão para V Cobertura V tem número de vértices não superior a K –V tem exactamente K vértices Então V tem uma resposta SIM em VC

20 NP Solução de VC é solução de SAT Problema V tem resposta SIM em VC –grafo construído de acordo com a transformação dada tem cobertura com não mais de K vértices cada subgrafo (Ui, Vi) precisa de 1 vértice na cobertura cada subgrafo completo wi1, wi2,..., win tem no máximo 1 vértice que não está na cobertura (se retirarmos mais do que 1, alguma aresta fica descoberta) Instância correspondente de SAT (S) –Para cada Ui em V, fazer Xi = V –Para cada Vi em V, fazer Xi = F –Cada subgrafo completo tem um vértice wi que não está em V. por construção do grafo, o vértice wi é adjacente a um de Ui ou Vi, seja W como V é cobertura, W tem de estar em V ou wi não estaria coberto Então S, o problema SAT original, também tem resposta SIM –cada cláusula tem 1 literal com valor V

21 NP P=NP ? P NP oMais importante problema em aberto na Ciência da Computação oSe L é NP-completo: L está em P se e só se P = NP oNão se conseguiu ainda encontrar nenhum problema NP que se prove não ter solução polinomial - é muito difícil provar limites inferiores exponenciais portanto o não-determinismo pode não ser um avanço importante! oNem todos os problemas decidíveis estão em NP determinar se um grafo não possui ciclos Hamiltonianos — enumerar todos os ciclos? Não se sabe se está em NP. Decidível ?

22 NP Conclusão oProblema NP-completo: não devemos esperar encontrar algoritmo eficiente para resolvê-lo em todos os casos oAlternativa: Procurar algoritmos que lidem com a maior parte das instâncias do problema Em problemas de optimização: aceitar soluções aproximadas (subóptimas) Referências: M. R. Garey and D. S. Johnson. Computers and Intractability: a Guide to the Theory of NP Completeness. Freeman, 1979. Richard Karp. NP-Complete Problems. Tutorial em video, 1993. (biblioteca da FEUP) David Harel. Algorithmics- The Spirit of Computing. Addison-Wesley 1987.


Carregar ppt "NP A Classe de Problemas NP Referências: M. R. Garey and D. S. Johnson. Computers and Intractability: a Guide to the Theory of NP Completeness. Freeman,"

Apresentações semelhantes


Anúncios Google