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, (biblioteca da FEUP) Richard Karp. NP-Complete Problems. Tutorial em video, (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 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; - 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 INDECIDÍVEL "esta frase é falsa" é V ou F? problema da auto-referência

3 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 Não tem caminho de Euler Não tem ciclo Hamiltoniano

4 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 n^ n Uso do ponto opcional: menor distância na ligação dos 3 pontos

5 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

6 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 0s e 1s, 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

7 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

8 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

9 NP Problemas em P Um problema L é de 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

10 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.

11 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

12 NP Classe NP oClasse NP 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)

13 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

14 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 o reduz-se ciclo Hamiltoniano ao do caixeiro viajante: oum grafo G é convertido num grafo completo G' com os mesmos vértices o aresta 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

15 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- 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

16 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

17 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: 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

18 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

19 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

20 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, Richard Karp. NP-Complete Problems. Tutorial em video, (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