Introdução à NP-completude

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Grafos eulerianos 1.
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Algoritmos em Grafos (Parte 2)
Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza
Teoria dos Grafos Loana Tito Nogueira.
Lei de Little.
Fluxo em Redes Prof. Ricardo R. Santos.
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
A Classe de Problemas NP
Prof. M.Sc. Fábio Francisco da Costa Fontes Abril
GRAFOS EULERIANOS E HAMILTONIANOS
Sinais e Sistemas – Capítulo 2
Problemas NP-completos
Teoria dos Grafos – Aula 3 Árvores
Algoritmos e Estruturas de Dados
Medida do Tempo de Execução de um Programa
NÃO DETERMINISMO Marcus Eduardo Cabral Seabra
Árvore Geradora de Peso Mínimo
Daniel Felipe Neves Martins
Introdução à NP-completude
Problemas NP-completo
Informática Teórica Engenharia da Computação
Algoritmos em Grafos.
Algoritmos em Grafos Conceitos principais Prof. André Renato
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Lógica de Predicados Teorema de Herbrand.
Otimização Inteira 5a. Aula Franklina.
O problema do emparelhamento máximo
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Fábio de Oliveira Borges
Teorema de Herbrand e Unificação
Teorema de Herbrand e Unificação
Introdução à NP-completude Katia S. Guimarães
Algoritmos Gulosos em Grafos
Liliane Salgado NP-Completude Liliane Salgado
NP-Completude Algoritmos e Estruturas de Dados – IF672
Profª Fabiana Damasco Unidade de Ensino Paz
Aulão de Linguagens Formais e Compiladores
Complexidade de Algoritmos
Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo
Análise e Síntese de Algoritmos
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Programação Dinâmica.
Construção e Análise de Algoritmos
Problemas NP-completos e Programação Dinâmica

Algoritmos FPT para o Problema da k-Cobertura por Vértices
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,
Complexidade de Computação Katia Guimarães. Avaliando a Qualidade de um Algoritmo É preciso ter bem definido –O que é dado de entrada e –O que é esperado.
Exercícios de Fluxo em Redes
Programação de Computadores - 1
Redes de transporte Uma rede ou grafo consiste num número finito de pontos chamados nós ou vértices interligados por arcos. Muitos sistemas, físicos ou.
Celso C. Ribeiro Caroline T. Rocha
Teoria da complexidade
On The Complexity of Determining Autonomic Policy Constrained Behaviour Sobre a Complexidade de Determinação de Política Autônoma de Comportamento Restrito.
Caixeiro Viajante Problema: Dado um grafo G=(V,E), encontrar o Circuito Hamiltoniano de tamanho mínimo. Teorema: A menos que P=NP, não existe algoritmo.
Estruturas de Dados, Algoritmos e Complexidade Katia Guimarães.
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Interpolação Polinomial: Introdução; Lagrange.
 Prof. Miguel Gabriel Prazeres de Carvalho 1. 2 Redes Sociais GPS Para o correio. Para Viajantes. Pesquisas Biológicas. Distribuição de Tarefas. Recomendações.
Grafos Prof. Miguel Gabriel Prazeres de Carvalho.
Grafos e Teoria da Complexidade Professor: Fabio Tirelo
Abordagens para Problemas Intratáveis Katia S. Guimarães
Comportamento Assintótico
Introdução à NP-completude
Ordenação por Comparação
Transcrição da apresentação:

Introdução à NP-completude Katia S. Guimarães katia@cin.ufpe.br maio/2000 katia@cin.ufpe.br

Problemas Intratáveis Há muitos problemas com aplicações práticas importantes para os quais não se conhece algoritmos polinomiais. Esse problemas são chamados intratáveis. Dentre os problemas intratáveis podemos citar muitas aplicações inadiáveis. maio/2000 katia@cin.ufpe.br

Problemas Intratáveis Exemplos: - Gerenciamento de filas para uso de CPU (escalonamento) - Gerenciamento de memória (fragmentação) - Árvore geradora de grau limitado (Proj. redes) - Árvore geradora de diâmetro limitado (Redes) - Caminho Hamiltoniano - Caixeiro Viajante (TSP) - Localização de recursos em Sist. Distribuídos. maio/2000 katia@cin.ufpe.br

Problemas Intratáveis Informalmente, problemas intratáveis são aqueles para os quais o melhor limite inferior conhecido é polinomial, enquanto que o melhor algoritmo conhecido é exponencial. Problemas intratáveis polinomial exponencial maio/2000 katia@cin.ufpe.br

ABSTRAINDO O GRAU DO POLINÔMIO E A BASE DA FUNÇÃO EXPONENCIAL Antes, nós desejávamos nos abstrair das constantes aditivas e multiplicativas. Para expressarmos esta abstração formalmente, introduzimos os conceitos de (f), (f) e (f). Como não sabemos se os problemas intratáveis estão na classe dos polinomiais (n^c) ou dos exponenciais (c^n), vamos querer nos abstrair de qual seja o grau do polinômio ou a base da função exponencial. Queremos saber somente a qual destas duas classes o problema pertence. maio/2000 katia@cin.ufpe.br

Problemas de Decisão Para simplificar as definições, trataremos apenas de problemas de decisão, ou seja, problemas cuja solução é “SIM” ou “NÃO”. Ex: Entrada: G(V,E), x1, x2, ..., xk V, C   Saída: Existe em G um caminho passando por todos os vértices xi dados, cujo custo seja no máximo C? maio/2000 katia@cin.ufpe.br

Problemas de Decisão Se um problema P não é de decisão (Ex: Qual o custo do menor caminho passando pelos vértices dados?), então existe um problema de decisão que ajudará a resolver o problema P em tempo igual ao tempo de resolver o problema de decisão correspondente, a menos de um fator polinomial. maio/2000 katia@cin.ufpe.br

Problemas NP-completos Para podermos definir formalmente a classe NP-completo, vamos antes apresentar duas outras classes de problemas: - Classe NP - Classe NP-difícil NP-completo = NP  NP-difícil maio/2000 katia@cin.ufpe.br

Problemas NP NP é uma classe de problemas para os quais existe um algoritmo polinomial, embora não determinístico (daí o NP). (Note que esta classe inclui os problemas polinomiais.) polinomial Algoritmo NP maio/2000 katia@cin.ufpe.br

Algoritmos Não-determinísticos Um algoritmo é não-determinístico se ele é escrito numa linguagem não-determinística: - Contém todos os comandos de uma linguagem regular, e - Contém um comando salto-nd Os problemas com algoritmos polinomiais também pertencem à classe NP, pois estes algoritmos usam uma linguagem não-determinística, embora sem lançar mão do comando salto-nd. maio/2000 katia@cin.ufpe.br

Algoritmos Não-determinísticos Um algoritmo não-determinístico para um problema de decisão responde “SIM” se existe pelo menos uma maneira de fazer escolhas de execução nos salto-nd de forma que a resposta do algoritmo seja “SIM”, e “NÃO”, caso todas as combinações de escolhas de execução nos salto-nd levem a uma resposta “NÃO”. maio/2000 katia@cin.ufpe.br

Problema CLIQUE ENTRADA: - G(V, E), um grafo não-direcionado e sem peso nas arestas, e - k , um número natural, k  |V| SAÍDA: - Existe em G um subgrafo completo com k vértices? maio/2000 katia@cin.ufpe.br

Algoritmo NP para CLIQUE Algoritmo CLIQUE (G(V, E), k) Para cada v  V faça /* Decidir se escolhido */ salto-nd { escolhido [v]  true; escolhido [v]  false } /* Vértices escolhidos formam um clique? */ forma-clique  true; Para cada v  V faça se escolhido [v] então /* v tem k-1 vizinhos marcados? */ cont  0; para todo w  Adj(v) faça se escolhido [w] então cont  cont + 1; se cont  k -1 então forma-clique  false; Output (forma-clique). maio/2000 katia@cin.ufpe.br

Algoritmo NP para CLIQUE Custo do Algoritmo CLIQUE T(n) = [n] + [n + |E|] Note que - Se existir um clique no grafo G, então existe uma seqüência de escolhas nos comandos salto-nd que levam a uma resposta “SIM”. - Se não existir um clique em G, a verificação irá forçar o “NÃO”. maio/2000 katia@cin.ufpe.br

Problemas NP-difíceis A classe dos problemas NP-difíceis contém os problemas de complexidade maior ou igual à do problema SATisfatibilidade. S A T polinomial Algoritmo NP maio/2000 katia@cin.ufpe.br

Redução Polinomial A maneira de mostrar que a complexidade de SAT é um limite inferior para a com- plexidade de um problema P é fazer uma redução polinomial de SAT a este problema P, ou seja, definir uma solução para SAT usando uma solução para P como “caixa preta”. maio/2000 katia@cin.ufpe.br

Redução Polinomial Formalmente, redução polinomial de um problema P* a um outro problema P, é um algoritmo polinomial que transforma uma instância x de P* em um instância y de P, de forma que: P*(x) = “SIM” se e somente se P(y) =“SIM”. maio/2000 katia@cin.ufpe.br

Redução Polinomial A complexidade de SAT é um limite inferior para a complexidade do problema P porque se o problema P for resolvido em tempo polinomial, o problema SAT também poderá ser resolvido em tempo polinomial. x  SAT Redução Polinomial Algoritmo Polinomial para P x inst. de SAT y inst. de P (sse) y  P Algoritmo polinomial para SAT maio/2000 katia@cin.ufpe.br

Problema SAT Entrada: Expressão booleana , na Forma Normal Conjuntiva (FNC), ou seja, uma conjunção de disjunções. Saída: Existe uma valoração das variáveis de  de forma que  seja verdadeira? Ex:  = (x  y  z)  (x  y  z)  (x  y  z) A resposta para  é “SIM” ( x=1, y=1, z=0 ) maio/2000 katia@cin.ufpe.br

Redução de SAT a Clique Algoritmo polinomial para, dada uma expressão booleana na FNC, , (instância de SAT), gerar um grafo G(V,E) e um natural k  |V| tal que:  é satisfatível sse existe um k-clique em G. Algoritmo para gerar G(V,E) e k: Seja  = c1  c2  ...  cm V  {vi j, onde i é a cláusula e j é a variável } E  { (vi j, v k l), onde i  k e vi j  v k l }. maio/2000 katia@cin.ufpe.br

Redução de SAT a Clique Exemplo:  = ( x  y  z)  (x  y  z)  (y  z) x x y y y z z z maio/2000 katia@cin.ufpe.br

Redução de SAT a Clique 1. O algoritmo de redução é polinomial. O número de vértices gerados é menor que o tamanho da entrada (número de símbolos na expressão booleana). O número de arestas geradas é limitado superiormente por |V| x |V|. maio/2000 katia@cin.ufpe.br

Redução de SAT a Clique 2.  é satisfatível sse existe um k-clique em G.  Se  é satisfatível, então existe uma valora ção das variáveis em  que faz  verdadeira. Como  está na FNC, há pelo menos um literal em cada cláusula com valor verdadeiro. Considere os vértices V de G que correspondem a estes literais. O subgrafo gerado G[V] é um m-clique. maio/2000 katia@cin.ufpe.br

Redução de SAT a Clique 2.  é satisfatível sse existe um k-clique em G.  Se existe um m-clique no grafo criado na redução, então, por construção de G, temos que: 1. Cada um dos vértices deve corresponder a um literal de uma cláusula diferente, e 2. As valorações destes literais não podem se contradizer. É possível valorar as variáveis corrresps a estes literais de forma a tornar  verdadeira (as demais variáveis podem tomar qualquer valor). Logo,  é satisfatível. maio/2000 katia@cin.ufpe.br

A Classe NP-Completo Como dissemos inicialmente, NP-completo = NP  NP-difícil S A T polinomial Algoritmo NP maio/2000 katia@cin.ufpe.br

A Classe NP-Completo NP NP-difícil P NP-completo maio/2000 katia@cin.ufpe.br