1 / 53

Problemas NP-Completos

Problemas NP-Completos. André Aziz e Natália Flora { aaca ,nfl@cin.ufpe.br}. Para pensar. O problema do caixeiro viajante - “ travelling-salesman problem ”.

moshe
Télécharger la présentation

Problemas NP-Completos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Problemas NP-Completos André Aziz e Natália Flora {aaca,nfl@cin.ufpe.br} André Aziz, Natália Flora

  2. Para pensar... • O problema do caixeiro viajante -“travelling-salesmanproblem”... “Suponha que um caixeiro viajante tenha de visitar n cidades diferentes, iniciando e encerrando sua viagem na primeira cidade. Suponha, também, que não importa a ordem com que as cidades são visitadas e que de cada uma delas pode-se ir diretamente a qualquer outra. O problema do caixeiro viajante consiste em descobrir a rota que torna mínima a viagem total”. Fonte: http://www.mat.ufrgs.br/~portosil/caixeiro.html André Aziz, Natália Flora

  3. Para pensar... André Aziz, Natália Flora

  4. Para pensar... • Para o exemplo 6 pontos (cidades): • Partindo de A e retornado para A, temos: André Aziz, Natália Flora

  5. Para pensar... • Problema de otimização combinatória. • Pode ser reduzido ao problema de enumeração: • Suponha 1 computador capaz de realizar 1 bilhão de operações por segundo: Fonte: http://www.mat.ufrgs.br/~portosil/caixeiro.html André Aziz, Natália Flora

  6. Para pensar... • E se existisse uma redução a um problema de ordem polinomial? Fonte: http://www.mat.ufrgs.br/~portosil/caixeiro.html André Aziz, Natália Flora

  7. Agenda • Conceitos básicos; • Redução de problemas; • Classes de problemas; • Algoritmos não-determinísticos; • NP, NP-difícil e NP-completo; • Técnicas. André Aziz, Natália Flora

  8. Alguns conceitos... • O que são algoritmos eficientes? • São os algoritmos que apresentam solução em tempo polinomial, ou seja, O(P(n)), onde P(n) é um polinômio no tamanho da entrada n. • O que são problemas tratáveis? • Problemas tratáveis são aqueles cuja solução é dada por algoritmos eficientes. Na teoria O(n10) é eficiente, porém na prática apenas nos interessam os polinômios de menor grau! André Aziz, Natália Flora

  9. Redução entre Problemas • Redução de Turing (Básico): Uma redução do problema Apara o problema B é um par de transformações τI e τS tal que, dada uma instância qualquer IAda entrada de A: τItransforma IAem uma instância IB de Be; τS transforma a solução SB de IB em uma solução SA de IA. André Aziz, Natália Flora

  10. Redução de Turing • Par de transformações (I e S). • Quando usar: • Determinar limite superior ou inferior de um algoritmo. • Redução de Turing Otimização Problema A Problema B I IA IB Transforma IA em IB πB S Transforma SB em SA SA SB André Aziz, Natália Flora

  11. Casamento cíclico de cadeias (CSM) • Entrada: • Alfabeto Σ e duas cadeias de caracteres de tamanho n: • Problema: • B é um deslocamento cíclico de A? • Como resolver esse problema? André Aziz, Natália Flora

  12. Casamento de cadeias (SM) • Entrada: • Alfabeto Σ e duas cadeias de caracteres: • Problema: • B é uma subcadeia de A? • Pode ser resolvido através do algoritmos KMP com O(m+n). André Aziz, Natália Flora

  13. Redução; CSM  SM • Instância de CSM: • τIconstrói instância de SM: • τI é O(n). • Se k é a solução de SM para ISM, então k também é solução de ICSM. Logo, τs é O(1) e a redução é O(n). • Exemplo: André Aziz, Natália Flora

  14. Erros comuns ao usar redução • Usar a redução na ordem inversa; • Usar o algoritmo de uma redução sem se preocupar com um outro mais eficiente. Após a redução AB descobrir que, pelo menos, A é tão difícil quanto B “Perde tempo tentando entender o B não.. o A já resolve.. e daí que ele demora mais!” André Aziz, Natália Flora

  15. Redução Polinomial • Definição: • Tome L1 e L2 duas linguagens de uma entrada nos espaços U1 e U2, respectivamente. Dizemos que L1 é polinomialmente reduzível a L2 se existe um algoritmo de tempo polinomial que converte cada entrada u1U1 a outraentrada u2U2talque u1L1 se e somente se u2L2 • * O algoritmo é polinomial no tamanho da entrada u1. André Aziz, Natália Flora

  16. Redução Polinomial Em outras palavras ... • Se Af(n) B e f(n)  O(n k), para algum valor k real, então a redução de A para B é polinomial. Daí deduzimos o seguinte teorema ... André Aziz, Natália Flora

  17. Polinomialmente Reduzível • Teorema 11.1: • Se L1 é polinomialmente reduzível a L2 e existe um algoritmo de tempo polinomial para L2, então existe um algoritmo de tempo polinomial para L1. Eu quero ver é provar! André Aziz, Natália Flora

  18. Transitividade • Teorema 11.2: • Se L1 é polinomialmente reduzível a L2 e L2 é polinomialmente reduzível a L3, então L1 é polinomialmente reduzível a L3. Eu quero ver é provar! André Aziz, Natália Flora

  19. Problema da Satisfatibilidade (SAT) • Problema de satisfazer uma fórmula lógica F na formal normal conjuntiva: • Foi o primeiro problema identificado como pertencente a classe a NP-completo (Teorema de Cook). • Existe algum valor para as variáveis x1,x2,...,xn tal que F seja verdadeira? André Aziz, Natália Flora

  20. Problema da Satisfatibilidade (SAT) • Exemplo: • Solução: • Para pensar... • Encontrar um algoritmo para SAT. Qual a complexidade dele? André Aziz, Natália Flora

  21. Problema da Satisfatibilidade (SAT) • Não (existe) se conhece algoritmo eficiente para SAT. • Achar um algoritmo que o resolve é difícil (resolução), mas verificar se uma solução é válida normalmente é fácil (verificação). “... chegar lá em cima é possível, difícil é achar o caminho...” André Aziz, Natália Flora

  22. Tipos de Redução e Classes de Problemas • Redução de Turing (ou Cook): • O algoritmo πB pode ser executado múltiplas vezes, se a redução é polinomial e o número de chamadas a πB é limitado a um polinômio no tamanho da entrada, pode-se afirmar que o problema reduzido (A) é resolvido em tempo polinomial. Problema A Problema B I IA IB Transforma IA em IB S πB Transforma SB em SA SA SB André Aziz, Natália Flora

  23. Tipos de Redução e Classes de Problemas • Redução de Karp: • O algoritmo πB só pode ser usado uma única vez, além disso πB deve responder SIM para IBsss IA é uma instância SIM para o problema A. Problema A Problema B I IA IB Transforma IA em IB S πB Transforma SB em SA SA SB André Aziz, Natália Flora

  24. Redução de Karp • Par de transformações (I e S). • É um caso particular da Redução de Turing. • Quando usar: • Usada para provas de pertinência de problemas de decisão. • Redução de Karp problema de decisão. Problema A Problema B I IA IB Transforma IA em IB πB S Transforma SB em SA SA SB André Aziz, Natália Flora

  25. Algoritmos • Determinísticos: • O resultado de cada operação é definido de maneira única. • Não-Determinísticos: • São divididos em 2 fases: • Construção: nesta fase pode ser usado o comando não-determinístico, nd-choice, para a construção da proposta de solução (certificado). • Verificação: nesta fase são usados apenas comandos determinísticos e a proposta de solução é verificada. Ao final desta fase o algoritmo retornará aceita ou rejeita. André Aziz, Natália Flora

  26. Comando ND-Choice (Escolha) • Usado para a manipulação de escolhas! • A complexidade de execução do comando nd-choice é O(1), oráculo! • Dizemos que uma linguagem L é reconhecida por um algoritmo não determinístico se: • Dada uma entrada x , é possível converter cada nd-choice encontrada durante a execução do algoritmo em uma escolha real tal que a saída do algoritmo será aceitar x se e somente se xL. André Aziz, Natália Flora

  27. Complexidade ND • Algoritmos não-determinísticos • Corresponde ao número mínimo de passos (escolhas) necessários para que o algoritmo retorne aceitar. • Se o algoritmo retornar rejeita seu tempo de execução é O(1)! • Uma máquina não-determinística é aquela capaz de executar uma algoritmo não-determinístico. André Aziz, Natália Flora

  28. Simulando MáquinasNão-Determinísticas • Imagine: • Máquinas com quantidade INFINITA de processadores; • Processadores se comunicam entre si de modo INSTANTÂNEO. • A execução de um algoritmo não-determinístico pode ser esquematizado em uma árvore: • Cada caminho começando da raiz corresponde uma sequência de escolhas. !@#$ André Aziz, Natália Flora

  29. Simulando MáquinasNão-Determinísticas • ... árvores: • Em um dado vértice, filhos serão criados ao se executar o comando ND-choice(Escolha). • Para cada novo filho é alocado um novo processador para continuar a execução do algoritmo. • Imagine que essa árvore de execução é percorrida em largura e que se algum processador retorna Aceitar, ele consegue parar a execução em todos os demais instantaneamente... ......!! André Aziz, Natália Flora

  30. Simulando MáquinasNão-Determinísticas • Exemplo problema CLIQUE: • Dado um grafo conexo não-orientado • E um inteiro • G possui um subgrafo completo com k vértices? Hum! André Aziz, Natália Flora

  31. Simulando MáquinasNão-Determinísticas • Algoritmo não-determinístico para CLIQUE: • Não (existe) se conhece um algoritmodeterminístico para CLIQUE. Complexidade: zzZZzzZzzZ... André Aziz, Natália Flora

  32. Classes P e NP • Definição de P • Conjunto de problemas que podem ser resolvidos por um algoritmodeterminístico polinomial. • Definição de NP • Conjunto de todos os problemas que podem ser resolvidos por um algoritmo não-determinístico polinomial. Como todo algoritmo determinístico é um caso particular de um não-determinístico, temos que PNP. André Aziz, Natália Flora

  33. P = NP? • Questão fundamental da teoria da computação! • Acredita-se que essa proposição seja falsa! • Como mostrar que é falsa? • Encontrar um problema ANP e mostrar que nenhum algoritmo determinístico polinomial pode resolver A. • Como mostrar que é verdadeira? • Para todo problema BNP existe um algoritmo determinístico polinomial que o resolve. André Aziz, Natália Flora

  34. Classes NP-difícil e NP-completo • NP-Difícil: • Classificamos um problema A como NP-Difícil se todo problema de NP se reduz polinomialmente a A. • O problema A é pelo menos tão difícil quanto o L; • O problema A não precisa estar NP, pois não precisa ser um problema de decisão, e se for um problema de decisão ainda sim não precisa estar em NP. • Se P≠NPentão o NP-difícil não tem solução em tempo polinomial. André Aziz, Natália Flora

  35. Classes NP-difícil e NP-completo • NP-Completo: • A é um problema NP-Completo se: • A  NP e • A  NP-Difícil Pela definição NP-Completo NP-Difícil, se for encontrado qualquer algoritmo polinomial para um problema em NP-Difícil então ficará provado que P = NP. André Aziz, Natália Flora

  36. Arrumando tudo... André Aziz, Natália Flora

  37. Próximos Passos... • Teorema de Cook: “SAT é NP-completo”; • Problema da Parada; • Tratamento de Problemas NP-difíceis. André Aziz, Natália Flora

  38. Teorema de Cook • O problema SAT é NP-Completo. • Para provar usou Máquinas de Turing. • Abriu portas para novos problemas: • No ano seguinte 24 novos problemas foram identificados como sendo NP-completos! André Aziz, Natália Flora

  39. Meu problema é NPC? • Fácil!?... • ... simples. Achar um problema NPC que possui uma redução polinomial para o meu problema! André Aziz, Natália Flora

  40. SAT -> Clique • Tomar E uma expressão booleana qualquer na forma normal conjutiva (CNF); • Cada cláusula contém n variáveis; • Qual a resposta para a seguinte expressão SIM ou NÃO? André Aziz, Natália Flora

  41. SAT -> clique • Transformamos cada cláusula (com suas n variáveis) em uma “coluna”; • As variáveis vão representar os vértices; • Estabelecemos as conexões entre os vértices: • não conectamos variáveis da mesma cláusula; • Não conectamos variáveis complementares; • Objetivo: Encontrar um clique com pelo menos o número de Cláusulas. André Aziz, Natália Flora

  42. SAT -> Clique • Vamos para o quadro fazer as seguintes atividades: • Montar o grafo; • Estabelecer as conexões (arestas)! André Aziz, Natália Flora

  43. Indecidibilidade:O Problema da Parada • Suponha que você recebeu uma subrotina H muito especial que realiza a seguinte tarefa. Dado um programa P implementado por uma codificação <P> e uma entrada x, H retorna SIM se <P> pára com a entrada x e retorna N caso contrário. • Usando H, posso escrever o programa D representado a seguir cujo objetivo é decidir se um programa P pára quando a sua própria codificação for passada na entrada. André Aziz, Natália Flora

  44. Indecidibilidade:O Problema da Parada O que acontece se passarmos D como entrada para ele mesmo? Analisando: Programa D(<P>); a: Se H(<P>, <P>) = SIM, então repita a; se não PARE. André Aziz, Natália Flora

  45. Tratamento de Problemas NP-difíceis • Backtracking • Programação Linear • Heurísticas • Aproximações André Aziz, Natália Flora

  46. Backtracking • Representa um refinamento do algoritmo de força bruta, consiste em eliminar múltiplas soluções antes que estas sejam examinadas. • Encontrar uma solução usando este algoritmo consiste em fazer uma busca em profundidade na EE (árvore de espaço de estados); • Soluções podem ser representadas por vetores de tamanho fixo ou variável na forma (x1 , ..., xn); • Solucionar significa encontrar umatupla que optimiza a função critérioP(x1 , ..., xn) ou encontrar todas as tuplas que satisfaçam P(x1 , ..., xn). André Aziz, Natália Flora

  47. Backtracking • Aplicações: • Pode ser aplicado para problemas que admitem o conceito de “soluções parciais candidatas”: • Satisfação de restrições. • Exemplo: • Jogo das oito rainhas; • Palavras cruzadas. André Aziz, Natália Flora

  48. Tratamento de NP-DifícilBranch & Bound • Utilizado para otimizar a função objetivo. • Em cada nó da árvore, a função classificadora estima o melhor valor da função objetivo no subespaço do EE representados por aquele nó. • Os nós são amadurecidos por: • Inviabilidade; • Limitante; • Otimalidade . • Exemplo de problema: mochila binária (BKP). André Aziz, Natália Flora

  49. Tratamento de NP-DifícilProgramação Linear • É um método para otimizar a função objetivo sujeita a restrições lineares. • São expressos como: • Ou na forma matricial por: onde A é uma matriz mxn e b e c são vetores de m e n posições respectivamente. min min Sujeito a Sujeito a André Aziz, Natália Flora

More Related