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

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

Problemas NP-Completos André Aziz e Natália Flora 2André Aziz, Natália Flora.

Apresentações semelhantes


Apresentação em tema: "Problemas NP-Completos André Aziz e Natália Flora 2André Aziz, Natália Flora."— Transcrição da apresentação:

1

2 Problemas NP-Completos André Aziz e Natália Flora 2André Aziz, Natália Flora

3 Para pensar... O problema do caixeiro viajante -travelling-salesman problem... 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. 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: 3André Aziz, Natália Flora

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

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

6 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: André Aziz, Natália Flora6 nRotas por seg. (10 9 /n-1)(n-1)!Tempo Total 5250 milhões24Insignificante milhões ,003 seg 1571 milhões87 bilhões20 min 2053 milhões1,2x anos 2542 milhões6,2x milhões de anos Fonte:

7 Para pensar... E se existisse uma redução a um problema de ordem polinomial? André Aziz, Natália Flora7 nRotas por seg. (10 9 /n-1)n5n5 Tempo Total 5250 milhões3.125Insignificante milhões Insignificante 1571 milhões ,01 seg 2053 milhões ,06 seg 2542 milhões ,23 seg Fonte:

8 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 Flora8

9 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. André Aziz, Natália Flora9 Na teoria O(n 10 ) é eficiente, porém na prática apenas nos interessam os polinômios de menor grau!

10 Redução entre Problemas Redução de Turing (Básico): André Aziz, Natália Flora10 Uma redução do problema A para o problema B é um par de transformações τ I e τ S tal que, dada uma instância qualquer I A da entrada de A: 1. τ I transforma I A em uma instância I B de B e; 2. τ S transforma a solução S B de I B em uma solução S A de I A. Uma redução do problema A para o problema B é um par de transformações τ I e τ S tal que, dada uma instância qualquer I A da entrada de A: 1. τ I transforma I A em uma instância I B de B e; 2. τ S transforma a solução S B de I B em uma solução S A de I A.

11 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 André Aziz, Natália Flora11 Problema AProblema B IAIA Transforma I A em I B πBπB SBSB SASA IBIB Transforma S B em S A I S

12 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 Flora12

13 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 Flora13

14 Redução; CSM SM Instância de CSM: τ I constrói instância de SM: – τ I é O(n). Se k é a solução de SM para I SM, então k também é solução de I CSM. Logo, τ s é O(1) e a redução é O(n). Exemplo: André Aziz, Natália Flora14

15 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. André Aziz, Natália Flora15 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!

16 Redução Polinomial André Aziz, Natália Flora16 Definição: Tome L 1 e L 2 duas linguagens de uma entrada nos espaços U 1 e U 2, respectivamente. Dizemos que L 1 é polinomialmente reduzível a L 2 se existe um algoritmo de tempo polinomial que converte cada entrada u 1 U 1 a outra entrada u 2 U 2 tal que u 1 L 1 se e somente se u 2 L 2 * O algoritmo é polinomial no tamanho da entrada u 1. Definição: Tome L 1 e L 2 duas linguagens de uma entrada nos espaços U 1 e U 2, respectivamente. Dizemos que L 1 é polinomialmente reduzível a L 2 se existe um algoritmo de tempo polinomial que converte cada entrada u 1 U 1 a outra entrada u 2 U 2 tal que u 1 L 1 se e somente se u 2 L 2 * O algoritmo é polinomial no tamanho da entrada u 1.

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

18 Polinomialmente Reduzível André Aziz, Natália Flora18 Eu quero ver é provar! Teorema 11.1: Se L 1 é polinomialmente reduzível a L 2 e existe um algoritmo de tempo polinomial para L 2, então existe um algoritmo de tempo polinomial para L 1. Teorema 11.1: Se L 1 é polinomialmente reduzível a L 2 e existe um algoritmo de tempo polinomial para L 2, então existe um algoritmo de tempo polinomial para L 1.

19 Transitividade André Aziz, Natália Flora19 Eu quero ver é provar! Teorema 11.2: Se L 1 é polinomialmente reduzível a L 2 e L 2 é polinomialmente reduzível a L 3, então L 1 é polinomialmente reduzível a L 3. Teorema 11.2: Se L 1 é polinomialmente reduzível a L 2 e L 2 é polinomialmente reduzível a L 3, então L 1 é polinomialmente reduzível a L 3.

20 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 x 1,x 2,...,x n tal que F seja verdadeira? André Aziz, Natália Flora20

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

22 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). André Aziz, Natália Flora22... chegar lá em cima é possível, difícil é achar o caminho...

23 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. André Aziz, Natália Flora23 Problema AProblema B IAIA Transforma I A em I B πBπB SBSB SASA IBIB Transforma S B em S A I S

24 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 I B sss I A é uma instância SIM para o problema A. André Aziz, Natália Flora24 Problema AProblema B IAIA Transforma I A em I B πBπB SBSB SASA IBIB Transforma S B em S A I S

25 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. André Aziz, Natália Flora25 Problema AProblema B IAIA Transforma I A em I B πBπB SBSB SASA IBIB Transforma S B em S A I S

26 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 Flora26

27 Comando ND-Choice (Escolha) Usado para a manipulação de escolhas! A complexidade de execução do comando nd-choice é O(1), oráculo! André Aziz, Natália Flora27 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. 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.

28 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 Flora28

29 Simulando Máquinas Nã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 Flora29

30 Simulando Máquinas Nã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 !!

31 Simulando Máquinas Nã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? André Aziz, Natália Flora31 Hum!

32 Simulando Máquinas Não-Determinísticas Algoritmo não-determinístico para CLIQUE: Não (existe) se conhece um algoritmo determinístico para CLIQUE. André Aziz, Natália Flora32 zzZZzz ZzzZ... Complexidade:

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

34 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 Flora34

35 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 NP então o NP-difícil não tem solução em tempo polinomial. André Aziz, Natália Flora35

36 Classes NP-difícil e NP-completo NP-Completo: – A é um problema NP-Completo se: A NP e A NP-Difícil André Aziz, Natália Flora36 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. 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.

37 Arrumando tudo... André Aziz, Natália Flora37

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

39 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 Flora39

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

41 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 Flora41

42 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 Flora42

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

44 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 e uma entrada x, H retorna SIM se 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 Flora44

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

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

47 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 (x 1,..., x n ); – Solucionar significa encontrar uma tupla que optimiza a função critério P(x 1,..., x n ) ou encontrar todas as tuplas que satisfaçam P(x 1,..., x n ). André Aziz, Natália Flora47

48 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 Flora48

49 Tratamento de NP-Difícil Branch & 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 Flora49

50 É 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. Tratamento de NP-Difícil Programação Linear André Aziz, Natália Flora50 min Sujeito a min Sujeito a

51 Tratamento de NP-Difícil Programação Linear Exemplo da Fazenda: – A hectares de terra; – P quantidade de inseticida; – F quantidade de fertilizante; – S preço de venda; – x área plantada de uma cultura. André Aziz, Natália Flora51 Função Objetivo Restrições

52 Tratamento de NP-Difícil Outras Técnicas Heurísticas: – Algoritmos que geram soluções viáveis para as quais não se pode dar garantias de qualidade. Não se sabe quão distante sua solução está da solução ótima. Aproximações: – Algoritmos aproximados encontram uma solução com garantia de qualidade em tempo polinomial. André Aziz, Natália Flora52

53 Problemas NP-Completos André Aziz e Natália Flora 53André Aziz, Natália Flora Obrigado.


Carregar ppt "Problemas NP-Completos André Aziz e Natália Flora 2André Aziz, Natália Flora."

Apresentações semelhantes


Anúncios Google