intratabilidade e np-completude - sandro andrade · intratabilidade e np-completude sandro santos...

36
INTRATABILIDADE e NP-COMPLETUDE             Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS Junho/2008 Grafos e Análise de Algoritmos

Upload: ngohuong

Post on 10-Nov-2018

228 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

INTRATABILIDADEe

NP-COMPLETUDE

            Sandro Santos Andrade

Doutorado Multiinstitucional em Ciência da ComputaçãoUFBA/UNIFACS/UEFS

Junho/2008Grafos e Análise de Algoritmos

Page 2: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Introdução

• Para alguns problemas não existem algoritmos substancialmente melhores que a execução de uma busca exaustiva

• Estes problemas são inerentemente intratáveis

• Provar essa intratabilidade inerente pode ser tão difícil quanto encontrar um algoritmo eficiente para resolver o problema

• Pode-se, entretanto, provar que o problema em questão é tão difícil quanto um grande conjunto de outros problemas reconhecidamente difíceis (problemas NP-Completo)

• Saber que um problema é NP-Completo antecipa a preferência por abordagens menos ambiciosas:

– Soluções para casos especiais do problema geral, soluções eficientes somente na maioria dos casos, soluções aproximadas etc

Page 3: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• Def: um PROBLEMA é uma questão genérica a ser respondida e que possui parâmetros, cujos valores não são especificados

• Um problema é definido pela i) descrição geral dos seus parâmetros e pelas ii) propriedades que a resposta (SOLUÇÃO) deve satisfazer

• Def: uma INSTÂNCIA de um problema é obtida através da especificação de valores particulares para os parâmetros

• Exemplo: Problema do Caixeiro Viajante (Travelling Salesman Problem)

– Parâmetros: conjunto C={c1, c

2, …, c

m} de cidades e, para cada par de cidades

ci, c

j em C, a distância d(c

i, c

j) entre elas

– Solução: sequência <c(1)Π

, c(2)Π

, …, c(m)Π

> de cidades que minimiza:

∑i=1

m−1

d c i , c i1 d cm , c 1

Page 4: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• Instância do Problema do Caixeiro Viajante:

C={c1, c

2, c

3, c

4} d(c

1, c

2) = 10, d(c

1, c

3) = 5, d(c

1, c

4) = 9, d(c

2, c

3) = 6, d(c

3, c

4) = 3

• Solução: <c1, c

2, c

4, c

3>

Page 5: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• Um ALGORITMO é um procedimento, passo a passo, para resolver um determinado problema

• Um algoritmo RESOLVE um problema Π se ele puder ser aplicado a qualquer instância Ι de Π e sempre produzir uma solução para esta instância

• Em geral, procura-se algoritmos eficientes (rápidos)

• Os requisitos de tempo são indicados em função do tamanho da instância (quantidade de dados de entrada)

• A descrição da instância pode ser vista como uma string única e finita de símbolos escolhidos em um alfabeto finito de entrada

Page 6: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• Def: a forma particular e fixa escolhida para representar instâncias de um problema é denominada ESQUEMA DE CODIFICAÇÃO (encoding schema)

– Ex: um esquema de codificação para o Problema do Caixeiro Viajante: “c[1]c[2]c[3]c[4]//10/5/9//6/9//3”. Tamanho da entrada = 32

• Def: a FUNÇÃO DE COMPLEXIDADE DE TEMPO de um algoritmo informa, para cada tamanho de entrada possível, a maior quantidade de tempo necessário para resolver uma instância deste tamanho

– Depende do esquema de codificação e do modelo de computação utilizados, porém estes produzem pouco impacto nas distinções feitas pela teoria da NP-completude

Page 7: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• A distinção entre algoritmos de tempo polinomial e algoritmos de tempo exponencial define um critério para análise de eficiência

• Def: um algoritmo é de TEMPO POLINOMIAL se a sua função de complexidade de tempo é (p(n))Ο , para alguma função polinomial p, onde n é o tamanho da entrada. Os algoritmos cuja função de complexidade de tempo não são limitadas dessa forma são ditos de TEMPO EXPONENCIAL (mesmo aqueles com função de complexidade de tempo limitadas por funções não-polinomiais e não-exponenciais)

• A maioria dos algoritmos de tempo exponencial são meramente variações de busca exaustiva, enquanto os de tempo polinomial são projetados a partir do entendimento mais aprofundado da estrutura do problema

Page 8: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• Def: um problema é dito INTRATÁVEL se não existir um algoritmo de tempo polinomial que o resolva

• Exceções para as associações polinomial → eficiente, exponencial → ineficiente:

– Entradas pequenas. Ex: 2n é mais rápido que n5, para n ≤ 20

– Aplicabilidade prática. 2n significa que existe pelo menos uma (e porque não somente uma ?) instância de tamanho n que requer tal tempo (análise do pior caso).

• A aplicabilidade prática de alguns algoritmos de tempo exponencial indicam a existência de alguma propriedade do problema que, se refinada, pode conduzir a melhores algoritmos

• Algoritmos com complexidade n100 ou 1099n2 não executarão de forma eficiente, mas na prática os polinômios são de baixa ordem

Page 9: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• Qualquer esquema de codificação razoável irá diferir de um outro de forma polinomial, portanto não interferem na intratabilidade

• Todos os modelos de computação já estudados (Máquinas de Turing de uma e múltiplas fitas, random-access-machines – RAM, etc) são equivalentes em relação à complexidade polinomial de tempo e não interferem na intratabilidade

• Duas causas distintas para a intratabilidade:

– A dificuldade do problema requer uma quantidade exponencial de tempo para se chegar na solução

– A solução é tão extensa que não pode ser descrita por uma expressão cujo comprimento é limitado por uma função polinomial do tamanho da entrada (causa menos comum). Ex: variação do Problema do Caixeiro Viajante: quais são todos os ciclos com comprimento menor ou igual a um valor B ?

Page 10: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• Def: um problema é dito INDECIDÍVEL se não existir um algoritmo (mesmo exponencial) que o resolva. É um sentido mais forte para a intratabilidade. Ex: problema da parada

• Histórico:

– 1936 (Turing): problema da parada (indecidível)

– 1965 (Hartmanis e Stearns): problemas decidíveis e intratáveis artificiais

– 1972 (Meyer e Stockmeyer): problemas decidíveis e intratáveis reais

• Os problemas apontados em 1972 não podem ser resolvidos em tempo polinomial nem mesmo por um modelo computacional não-determinístico

• Alguns problemas aparentemente intratáveis encontrados na prática são decidíveis e podem ser resolvidos por um computador não-determinístico

Page 11: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• Estudar como os problemas se relacionam em relação à sua dificuldade pode trazer informações valiosas para os projetistas de algoritmos

• A principal técnica para demonstrar que dois problemas se relacionam é a REDUÇÃO

• A redução define uma transformação que mapeia qualquer instância de um problema em uma instância equivalente de um outro problema

• Contribuições de Cook (1971):

– Noção de redutibilidade em tempo polinomial

– Ressaltou a classe NP (problemas de decisão que podem ser resolvidos em tempo polinomial por um computador não-determinístico)

– Provou que todo problema em NP pode ser polinomialmente reduzido a um problema particular em NP (o Problema da Satisfatibilidade)

Page 12: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Conceitos Iniciais

• Consequências:

– Se o Problema da Satisfatibilidade puder ser resolvido com um algoritmo de tempo polinomial, então todo problema em NP também poderá

– Se algum problema em NP for intratável, então o Problema da Satisfatibilidade também é

– O Problema da Satisfatibilidade é o problema mais difícil em NP

– Outros problemas compartilham com o Problema da Satisfatibilidade o título de “Problema mais difícil em NP”

• Def: a classe de equivalência que contém os problemas mais difíceis em NP é denominada classe dos problemas NP-COMPLETO

• A intratabilidade de todos os problemas em NP depende da intratabilidade dos problemas NP-Completo (o que é desconhecido)

Page 13: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Teoria da NP-Completude

• Por convenciência, a Teoria da NP-Completude é aplicada somente a Problemas de Decisão

• Def: um PROBLEMA DE DECISÃO Π consiste de um conjunto DΠ

de instâncias e um sub-conjunto YΠ   ⊆ D

Π de instâncias-sim

• Exemplo de Problema de Decisão:

– Instância genérica: dois grafos G1 = (V

1, E

1) e G

2 = (V

2, E

2)

– Questão: G1 contém um sub-grafo que é isomorfo a G2 ?

• Problema de decisão relacionado ao Problema do Caixeiro Viajante:

– Instância genérica: o conjunto C de cidades, a distância entre cada par de cidades e um valor limite B

– Questão: Existe um ciclo que passa por todas as cidades de C com comprimento menor ou igual a B ?

Page 14: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Teoria da NP-Completude

• Problemas de otimização podem ser facilmente transformados em Problemas de Decisão: mínimo (máximo) custo → existe X com custo menor (maior) ou igual a Y ?

• Porque trabalhar com Problemas de Decisão ?

– Pelo suporte formal dado pela Teoria da Computação (linguagens e modelos computacionais)

• Def: para qualquer conjunto finito Σ de símbolos, Σ* denota o conjunto de todas as strings finitas formadas por símbolos de Σ. Ex:  = {0, 1}Σ , Σ* = { , 0, 1, 00, 01, 10, 11, 000, 001, ɛ …}

• Def: se Ⅼ é um sub-conjunto de Σ* então Ⅼ é uma LINGUAGEM sobre o conjunto Σ. Exs: {01, 001, 111, 1101010} é uma linguagem sobre {0, 1}, Σ* é uma linguagem sobre Σ

Page 15: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Teoria da NP-Completude

• Cada instância de um problema é descrita por uma string formada por símbolos de um alfabeto fixo Σ

• Um problema Π e um esquema de codificação e particionam Σ* em três classes de strings: i) as que não codificam instâncias de Π, ii) as que codificam instâncias-não de Π e iii) as que codificam instâncias-sim de Π

• Def: a LINGUAGEM ASSOCIADA A Π e e é definida por:

• Se um resultado é válido para a linguagem Ⅼ[Π, e] então ele é válido para o problema Π sobre o esquema de codificação e

L [ ,e ] = ⟨x∈* :

éoalfabetousadopor e ; x éacodificaçãoem e deumainstância I em

Page 16: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe P

• Para formalizar a noção de algoritmo é necessário padronizar um modelo particular de computação

• MÁQUINA DE TURING DETERMINÍSTICA DE UMA FITA (MTD):

• Um programa para uma MTDespecifica:

– Um conjunto finito Τ de símbolos de fita, incluindo o sub-conjunto Σ⊂Τ de símbolos de entrada e o símbolo branco b ∊ Τ-Σ

– Um conjunto finito Q de estados, incluindo um estado-inicial q0 e dois

estados-final qY e q

N

– Uma função de transição δ: (Q ­ {qY, q

N}) x   Τ  Q x →  x {­1, +1}Τ

Page 17: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe P

• Um programa M com alfabeto de entrada Σ ACEITA x ∊ Σ* se e somente se M termina no estado q

Y quando aplicado a x

• A linguagem ⅬM reconhecida pelo programa M é dada por:

• Esta definição de reconhecimento de linguagem não requer que M pare para todas as strings de entrada em Σ*, somente aquelas em Ⅼ

M

• Se x pertence a Σ* - ⅬM, M pode parar em q

N ou pode nunca parar

• Entretanto, para que um programa de uma MTD correspoda ao conceito de algoritmo ela deve parar para todas as possíveis strings formadas com base no alfabeto de entrada

LM = ⟨x∈* :M aceitax ⟩

Page 18: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe P

• Um programa MTD M resolve um problema de decisão Π sobre esquema de codificação e se M pára para toda string formada com base no alfabeto de entrada e Ⅼ

M = Ⅼ[Π, e]

• Def: para um programa MTD M que pára para todas as entradas x   ∊ Σ*, sua FUNÇÃO DE COMPLEXIDADE DE TEMPO T

M : Z+   Z+→ é

dada por:

• Def: um programa MTD M é dito um PROGRAMA DE TEMPO POLINOMIAL se existe um polinômio p tal que, para todo n   Z∊ +, T

M(n) ≤ p(n)

TM n = max ⟨m: existeumx∈* ,com ∣x∣=n,talqueacomputação

deMna entradax durao tempom ⟩

Page 19: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe P

• Def: classe P = {L: existe um programa MTD de tempo polinomial M para o qual L = L

M}

• Esta definição omite a especificação de um esquema de representação e modelo de computação particulares, visto que existe uma equivalências entre as alternativas

Page 20: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• Não existe um algoritmo de tempo polinomial que resolva o Problema do Caixeiro Viajante (versão enunciada como um Problema de Decisão)

• Se a solução para o problema (existe rota com comprimento menor que B) puder ser “adivinhada”, pode-se executar um “procedimento de verificação” que calcula o comprimento e verifica se ele é menor que B

• Este procedimento de verificação pode ser realizado em tempo polinomial (o qual não considera o tempo para encontrar a solução)

• Def: um ALGORITMO NÃO-DETERMINÍSTICO “adivinha” uma solução S de um instância I e envia S e I ao procedimento de verificação, o qual pode parar com resposta sim, com resposta não ou nunca parar

Page 21: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• Um algoritmo não-determinístico resolve um problema de decisão Π se as seguintes propriedades valem para todas as instâncias I ∊ D

Π:

– Se I ∊ YΠ então existe alguma solução S que, quando “adivinhada” para a

entrada I, irá fazer o procedimento de verificação terminar com SIM para S e I

– Se I ∉ YΠ então não existe solução S que, quando “adivinhada” para a

entrada I, irá fazer o procedimento de verificação terminar com SIM para S e I

Page 22: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• Um algoritmo não-determinístico opera em tempo polinomial se existe um polinômio p que, para cada instância I ∊ Y

Π, existe

uma solução adivinhada S que faz com que o procedimento de verificação termine com resposta SIM dentro do tempo p(Length[I])

• A classe NP é formada por todos os problemas de decisão Π que podem ser resolvidos por algoritmos não-determinísticos de tempo polinomial

Page 23: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• As soluções de Problemas de Decisão obtidos por algoritmos não-determinísticos não têm simetria entre respostas SIM e NÃO. Ex: é verdade que não existe um ciclo com comprimento menor ou igual a B ?

• MÁQUINA DE TURING NÃO-DETERMINÍSTICA DE UMA FITA (MTND):

• O módulo de adivinhação tem o papel de escrever uma solução “adivinhada” na fita para que seja feita a verificação

Page 24: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• O tempo requerido por um programa MTND M para aceitar a string x   L∊

M é o mínimo, entre todas as computações de M que

aceitam x, de passos ocorridos nas fases de adivinhação e verificação até que o estado q

Y seja encontrado

• Def: a FUNÇÃO DE COMPLEXIDADE DE TEMPO TM 

: Z+   Z+→ para

M é:

• Def: um programa MDNT M é dito um PROGRAMA DE TEMPO POLINOMIAL se existe um polinômio p tal que T

M(n) ≤ p(n), para

todo n ≥ 1

TM n = max ⟨{1} ∪ ⟨m: existeumx∈LM ,com ∣x∣=n ,talqueo tempoparaM aceitar xém⟩⟩

Page 25: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• Def: classe NP = {L: existe um programa MTND de tempo polinomial M para o qual L = L

M}

• Qual o relacionamento entre P e NP ?

– P ⊆ NP. Se um problema Π ∈ P e A é um algoritmo determinístico de tempo polinomial para Π, pode-se obter um algoritmo não-determinístico de tempo polinomial para Π usando A como o procedimento de verificação e ignorando a adivinhação

– P = NP ? Não se sabe, provavelmente não !!! A falha em encontrar uma prova de que P ≠ NP é um argumento a favor de que P = NP tão forte quanto a falha em encontrar algoritmos de tempo polinomial é um argumento a favor de que P ≠ NP

Page 26: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• Se P difere de NP, a distinção entre P e NP - P é significativa. Todos os problemas em P podem ser resolvidos por algoritmos de tempo polinomial enquanto todos os problemas em NP - P são intratáveis (quando considerado apenas modelos determinísticos – reais)

• Para provar que um problema pertence a NP - P deve-se provar que P ≠ NP

• Enquanto isso não acontece, prova-se que: se P ≠ NP, então Π ∊ NP – P

• A idéia chave para essa abordagem condicional é o conceito de transformação polinomial (redução)

Page 27: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• Def: uma TRANSFORMAÇÃO POLINOMIAL (REDUÇÃO) de uma linguagem L

1 ⊆ Σ

1* para uma linguagem L

2 ⊆ Σ

2* é uma função

f : Σ1* Σ

2* que satisfaz as seguintes condições:

– Existe um programa DTM de tempo polinomial que computa f

– Para todo x   ∊ Σ1*, x   L∊

1 se e somente se f(x)   ∊ Σ

2*

• Se existe uma redução de L1 para L

2 diz-se que L

1 L

2 (L

1 é

redutível a L2)

• A importância da redução vem do seguinte lema:– Se L

1 L

2 então L

2   P∊ implica L

1   P∊ (e, de forma equivalente L

2 ∉ P implica

L1 ∉ P)

Page 28: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• Ex: pode-se provar que o Problema do Circuito Hamiltoniano é redutível ao Problema do Caixeiro Viajante

• Π1 Π

2 = Π

1 não é mais difícil que Π

2

• A relação define uma ordem parcial onde a classe P é a “menor” nesta ordem. A classe NP-Completo contém os problemas de decisão (linguagens) mais difíceis de NP

• Def: uma linguagem L é NP-Completo se L ∊ NP e, para quaisquer outras linguagens L' ∊ NP, L' L

• Se um único problema NP-Completo puder ser resolvido em tempo polinomial, todos os outros também poderão. Se algum problema em NP for intratável, todos os NP-Completo serão

Page 29: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

A Classe NP

• Teorema de Cook:– Define o primeiro problema NP-Completo conhecido: o Problema da

Satisfatibilidade (SAT)

– A prova não é tão trivial !

• Processo de prova da NP-Completude:1. Mostrar que Π está em NP

2. Selecionar um problema NP-Completo Π' conhecido

3. Construir uma redução f de Π' para Π

4. Provar que f é uma redução polinomial

Page 30: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Estudo de Caso

• Cobertura de Vértices:– Seja G = (V, E) um grafo não-direcionado. Uma Cobertura de Vértices de G é

um conjunto de vértices tal que toda aresta de G é incidente em pelo menos um desses vértices

Page 31: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Estudo de Caso

• O problema:– Dado um grafo não-direcionado G = (V, E) e um inteiro k, determine se G

tem uma Cobertura de Vértices com no máximo k vértices

• Teorema:– O Problema da Cobertura de Vértices é NP-Completo

• PROVA:1. O Problema da Cobertura de Vértices pertence a NP, visto que pode-se

adivinhar uma cobertura de tamanho ≤ k e executar o procedimento de verificação em tempo polinomial (verificar se esta cobertura contém ao menos um vértice de cada aresta e tem o tamanho apropriado)

2. Seleciona-se o problema 3SAT

• Versão restrita do problema SAT no qual todas as instâncias têm exatamente três literais por cláusula

Page 32: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Estudo de Caso

• PROVA:3. Redução de 3SAT para o Problema da Cobertura de Vértices

– Seja U = {u1, u

2, ..., u

n} o conjunto de variáveis e C = {c

1, c

2, ..., c

m} o

conjunto de cláusulas que compõem uma instância arbitrária de 3SAT

– Deve-se construir um grafo G = (V, E) e um inteiro positivo k ≤ |V| de modo que G tenha uma cobertura de vértice de tamanho k ou menos se e somente se C é satisfatível

– Processo de transformação:

• Para cada variável ui ∊ U, criar um componente do grafo G denominado

Ti = (V

i, E

i), com V

i = (u

i, u

i') e E

i = {{u

i, u

i'}}. Qualquer cobertura

de vértice terá de conter ui ou u

i'.

• Para cada cláusula ci ∊ C, criar um componente do grafo G denominado

Sj = (V'

j, E'

j), tal que V'

j = {a

1[j], a

2[j], a

3[j]} e E'j = {{a

1[j], a

2[j]},

{a1[j], a

3[j]}, {a

2[j], a

3[j]}}. Qualquer cobertura de vértice terá de

conter dois vértices de V'j.

Page 33: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Estudo de Caso

• PROVA:3. Redução de 3SAT para o Problema da Cobertura de Vértices

– Processo de transformação:

• Para cada cláusula cj ∊ C, seja os três literais presentes em c

j

denotados por xj, y

j, z

j. Criar as arestas de comunicação E'' = {{a

1[j],

xj}, {a2[j], y

j}, {a

3[j], z

j}}.

• O grafo final G = (V, E) terá:

e

e k = n + 2m

4. Esta redução pode ser realizada em tempo polinomial

Page 34: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Estudo de Caso

• Exemplo:

Page 35: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Estudo de Caso

• Algoritmo de aproximação:

• Produz uma cobertura de tamanho no máximo duas vezes o tamanho da menor cobertura

Page 36: INTRATABILIDADE e NP-COMPLETUDE - Sandro Andrade · INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS

Intratabilidade e NP-Completude

FIM