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

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

Problemas NP-Completos

Apresentações semelhantes


Apresentação em tema: "Problemas NP-Completos"— Transcrição da apresentação:

1

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

3 André Aziz, Natália Flora
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”. Fonte: André Aziz, Natália Flora

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

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

6 André Aziz, Natália Flora
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: n Rotas por seg. (109/n-1) (n-1)! Tempo Total 5 250 milhões 24 Insignificante 10 110 milhões 0,003 seg 15 71 milhões 87 bilhões 20 min 20 53 milhões 1,2x1017 73 anos 25 42 milhões 6,2x1023 470 milhões de anos André Aziz, Natália Flora

7 André Aziz, Natália Flora
Para pensar... E se existisse uma redução a um problema de ordem polinomial? n Rotas por seg. (109/n-1) n5 Tempo Total 5 250 milhões 3.125 Insignificante 10 110 milhões 15 71 milhões 0,01 seg 20 53 milhões 0,06 seg 25 42 milhões 0,23 seg Fonte: André Aziz, Natália Flora

8 André Aziz, Natália Flora
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

9 André Aziz, Natália Flora
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! Tempo polinomial: na prática apenas nos importa aqueles com pequeno grau, algoritmos cuja ordem seja polinômios com alto grau podem ser considerados ineficientes. Tamanho: lembrar de representatividade numérica. André Aziz, Natália Flora

10 Redução entre Problemas
Redução de Turing (Básico): 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 IA da entrada de A: τI transforma IA em uma instância IB de B e; τS transforma a solução SB de IB em uma solução SA de IA. André Aziz, Natália Flora

11 André Aziz, Natália Flora
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 IA Transforma IA em IB πB SB SA IB Transforma SB em SA I S André Aziz, Natália Flora

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 Flora

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 Flora

14 André Aziz, Natália Flora
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 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

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. 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!” Ordem da redução “mais dfícil” -> “mais fácil”. redução só é feita em um sentido André Aziz, Natália Flora

16 André Aziz, Natália Flora
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 outra entrada u2U2 tal que u1L1 se e somente se u2L2 * O algoritmo é polinomial no tamanho da entrada u1. André Aziz, Natália Flora

17 André Aziz, Natália Flora
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

18 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

19 André Aziz, Natália Flora
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

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 x1,x2,...,xn tal que F seja verdadeira? André Aziz, Natália Flora

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

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

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. Problema A Problema B IA Transforma IA em IB πB SB SA IB Transforma SB em SA I S André Aziz, Natália Flora

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 IB sss IA é uma instância SIM para o problema A. Problema A Problema B IA Transforma IA em IB πB SB SA IB Transforma SB em SA I S André Aziz, Natália Flora

25 André Aziz, Natália Flora
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 IA Transforma IA em IB πB SB SA IB Transforma SB em SA I S André Aziz, Natália Flora

26 André Aziz, Natália Flora
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

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! 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. Além das operações regulares dos algoritmos determinísticos possuem o que chamamos de ND-choice, usado para manipulação de escolhas. Ao longo da execução do algoritmo são associadas escolhas, para cada uma delas o algoritmo segue uma computação diferente. (pensar em árvore de decisão). André Aziz, Natália Flora

28 André Aziz, Natália Flora
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

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 Flora

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? Hum! André Aziz, Natália Flora

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. Complexidade: zzZZzzZzzZ... André Aziz, Natália Flora

33 André Aziz, Natália Flora
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. Como todo algoritmo determinístico é um caso particular de um não-determinístico, temos que PNP. André Aziz, Natália Flora

34 André Aziz, Natália Flora
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

35 Classes NP-difícil e NP-completo
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 Flora

36 Classes NP-difícil e 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

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

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

39 André Aziz, Natália Flora
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

40 André Aziz, Natália Flora
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

41 André Aziz, Natália Flora
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

42 André Aziz, Natália Flora
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

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

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

45 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

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

47 André Aziz, Natália Flora
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 uma tupla que optimiza a função critério P(x1 , ..., xn) ou encontrar todas as tuplas que satisfaçam P(x1 , ..., xn). André Aziz, Natália Flora

48 André Aziz, Natália Flora
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

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 Flora

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

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. Função Objetivo Restrições André Aziz, Natália Flora

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 Flora

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


Carregar ppt "Problemas NP-Completos"

Apresentações semelhantes


Anúncios Google