Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível...

59
Informática Teórica Engenharia da Computação

Transcript of Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível...

Page 1: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

Informática Teórica

Engenharia da Computação

Page 2: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

COMPLEXIDADE DE TEMPO

Às vezes não é possível achar reduções polinomiais para a busca de força bruta– Às vezes nem se sabe se elas existem – Não se sabe porque certas reduções são

possíveis Que princípios?

Porém, as complexidades de muitos problemas estão interligadas

Um algoritmo de tempo polinomial para um desses problemas pode ser usado para resolver uma classe inteira de problemas.

Page 3: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

COMPLEXIDADE DE TEMPO

Um caminho hamiltoniano num grafo direcionado G é um caminho direcionado que passa por cada nó exatamente uma vez.

Problema: testar se um grafo direcionado contem um caminho hamiltoniano conectando 2 nós dados.

HAMPATH = {<G,s,t>| G é um grafo direcionado com um caminho hamiltoniano de s para t}

Page 4: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

COMPLEXIDADE DE TEMPO

Podemos obter um algoritmo de tempo exponencial para o problema HAMPATH modificando o algoritmo de força-bruta para CAM dado

Page 5: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE P – PROBLEMAS

CAM = {<G,s,t> | G é um grafo direcionado que tem um caminho de s para t }

Page 6: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE P – PROBLEMAS

TEOREMA CAM ∈ P

Estratégia força bruta– Examina todos os caminhos potenciais em G– Determinar se algum é um caminho direcionado de

s para t– Caminho potencial: sequência de nós em G tendo

um comprimento de no máximo |V|– Há aproximadamente |V||V| caminhos potenciais– Tempo exponencial

Page 7: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE P – PROBLEMAS

IDÉIA DA PROVA: usar um método de busca no grafo para evitar a força bruta.– Busca em largura: marcamos sucessivamente

todos os nós que são atingíveis a partir de s por caminhos de comprimento 1, depois 2, em seguida 3 etc.

– Mostrar que a estratégia é polinomial

PROVA: o algoritmo seguinte M decide CAM em tempo polinomial

Page 8: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE P – PROBLEMAS

M = “Sobre a entrada <G, s, t> onde G é um grafo direcionado com nós s e t:– 1. Marque o nó s.– 2. Repita o passo seguinte até que nenhum nó

adicional seja marcado 3. Para cada aresta (a,b) de G: se a for um nó

marcado e b não estiver marcado, marque b.– 4. Se t estiver marcado, aceite. Senão, rejeite.”

Page 9: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE P – PROBLEMAS

Número de passos de M– Os passos 1 e 4 executam apenas uma vez– O passo 3 executa no máximo |V| vezes: no pior

caso, apenas um nó é marcado a cada vez, exceto a última

Complexidade dos passos de M– Os passos 1 e 4 são facilmente implementados em

tempo polinomial– O passo 3 varre cada aresta e executa um teste

para ver se um nó está marcado

Page 10: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE P – PROBLEMAS

Conclusão da prova– M executa uma quantidade de passos polinomial

na entrada– Todos os passos de M rodam em tempo polinomial

na entrada– Logo, M é polinomial– CAM ∈ P

Exercício do livro: 7.8

Page 11: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – HAMPATH

Precisamos apenas adicionar um teste para verificar que o caminho atual é hamiltoniano.

Ninguém sabe se HAMPATH é solúvel em tempo polinomial.

Mas ele tem verificabilidade polinomial, importante para entender sua complexidade.

Não conhecemos uma forma polinomial de determinar se um grafo contem um caminho hamiltoniano...

Mas se tal caminho fosse descoberto (talvez usando o algoritmo exponencial), poderíamos facilmente convencer uma outra pessoa de sua existência, simplesmente apresentando-o.

Page 12: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – HAMPATH

Em outras palavras, verificar a existência de um caminho hamiltoniano pode ser muito mais fácil que determinar sua existência.

Page 13: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – PROBLEMAS

Outro problema polinomialmente verificável é a compostura.

Um no. natural é composto se é o produto de 2 inteiros maiores que 1 (i.e., não é primo).

COMPOSITES = {x|x = pq, para inteiros p,q > 1} Ë fácil verificar que um no. é composto, só é

necessário um divisor desse no. Recentemente, um algoritmo de tempo polinomial

para testar se um no. é primo ou composto foi descoberto, mas ele é mais complicado que o método acima para verificar compostura.

Page 14: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – PROBLEMAS

Alguns problemas podem não ser polinomialmente verificáveis.

Ex: , o complemento de HAMPATH. Mesmo se pudéssemos determinar se um grafo

realmente não tivesse um caminho hamiltoniano, não conhecemos uma maneira de permitir a uma outra pessoa verificar sua inexistência sem usar o mesmo algoritmo de tempo exponencial para fazer a determinação primeiramente.

Page 15: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

VERIFICADOR

DEFINIÇÃO Um verificador para uma linguagem A é um

algoritmo V, onde: A = {w|V aceita <w,c> para alguma cadeia c} Medimos o tempo de um verificador somente em

termos do comprimento de w. Portanto um verificador de tempo polinomial

roda em tempo polinomial no comprimento de w. Uma linguagem A é polinomialmente verificável

se ela tem um verificador de tempo polinomial.

Page 16: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

VERIFICADOR

Um verificador usa informação adicional (c) para verificar que uma cadeia w é um membro de A.

c é chamada certificado ou prova da pertinência a A. Para verificadores polinomiais, o certificado tem

comprimento polinomial (no comprimento de w) porque isso é tudo o que o verificador pode acessar no seu limitante de tempo.

Para HAMPATH , um certificado para uma cadeia <G,s,t>∈ HAMPATH é o caminho hamiltoniano de s a t.

Para COMPOSITES, um certificado para o no.composto x é um de seus divisores.

O verificador checa em tempo polinomial que a entrada está na linguagem quando ela recebe o certificado.

Page 17: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

VERIFICADOR

DEFINIÇÃO NP é a classe de linguagens que têm verificadores

de tempo polinomial.

A classe NP contem muitos problemas de interesse prático.

HAMPATH e COMPOSITES são membros de NP. COMPOSITES é também membro de P, um

subconjunto de NP, mas provar esse resultado é muito mais difícil.

O termo NP vem de tempo polinomial não-determinístico vindo de MTs não-determinísticas de tempo polinomial. .

Page 18: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP

A seguir , uma MT não-determinística (MTND) que decide HAMPATH em tempo polinomial não-determinístico.

O tempo de uma MTND é o tempo usado pelo seu ramo de computação mais longo.

Page 19: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP

N1 = “Sobre a entrada <G,s,t>, onde G é um grafo direcionado com nós s e t:

1. Escreva uma lista de m nos.p1... pm, m sendo o no.de nós em G. Cada no. na lista é selecionado não-deterministicamente entre 1 e m.

2. Verifique se há repetições na lista. Se alguma for encontrada, rejeite.

3. Verifique se s = p1 e t = pm. Se algum falhar, rejeite.

4. Para cada i entre 1 e m-1, verifique se (pi,pi+1) é aresta de G. Se alguma não for, rejeite. Senão, todos os testes foram positivos, portanto aceite.”

Page 20: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP

Analisemos, examinando cada um de seus estágios.

No estágio 1, a escolha não-determinística claramente roda em tempo polinomial.

No 2 e 3, cada parte é uma simples verificação, portanto juntos eles rodam em tempo polinomial.

Finalmente, o estágio 4 também claramente roda em tempo polinomial.

Por conseguinte, esse algoritmo roda em tempo polinomial não-determinístico.

Page 21: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

NP

TEOREMA Uma linguagem está em NP sse ela é decidida por

uma MTND de tempo polinomial. IDEIA DA PROVA: 2 mãos: Mostramos como converter um verificador de

tempo polinomial para uma MTND de tempo polinomial equivalente ...

...e vice versa. A MTND simula o verificador adivinhando o

certificado. O verificador simula a MTND usando o ramo de

computação de aceitação como o certificado.

Page 22: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

NP

TEOREMA Uma linguagem está em NP sse ela é decidida por

uma MTND de tempo polinomial. PROVA: 1ª mão: Suponha que A ∈ NP e mostre

que A é decidida por uma MTND de tempo polinomial N.

Seja V o verificador de tempo polinomial para A que existe pela definição de NP.

Assuma que V seja uma MTND que roda em tempo nk e construa N da seguinte maneira.

Page 23: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

NP

TEOREMA Uma linguagem está em NP sse ela é decidida por

uma MTND de tempo polinomial. PROVA: 1ª mão: N = “Sobre a entrada w de comprimento n: 1. Não-deterministicamente selecione uma cadeia

c de comprimento no máximo nk. 2. Rode V sobre a entrada <w,c>. 3. Se V aceita, aceite; caso contrário, rejeite.”

Page 24: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

NP

TEOREMA Uma linguagem está em NP sse ela é decidida por

uma MTND de tempo polinomial. PROVA: 2ª mão: Assuma que A seja decidida por

uma MTND de tempo polinomial N e construa um verificador de tempo polinomial V:

N = “Sobre a entrada <w,c>. 1. Simule N sobre a entrada w, tratando cada

símbolo de c como uma descrição da escolha não-determinística a fazer a cada passo (como na prova do Teorema 3.16).

2. Se esse ramo da computação de N aceita, aceite; caso contrário,rejeite.”

Page 25: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

NP

DEFINIÇÃO NTIME(t(n)) = {L|L é uma linguagem decidida por

uma MTND de tempo O(t(n))}.

Definimos a classe de complexidade de tempo não-determinístico NTIME(t(n)) como análoga à classe de complexidade de tempo determinístico TIME(t(n)).

Page 26: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP

DEFINIÇÃO

NP =

A classe NP é insensível à escolha do modelo computacional não-determinístico razoável porque todos esses modelos são polinomialmente equivalentes.

Ao descrever e analisar algoritmos de tempo polinomial não-determinísticos, seguimos as convençoes precedentes para algoritmos determinísticos de tempo polinomial.

Page 27: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP

DEFINIÇÃO

NP =

Cada estágio de um algoritmo não-determinístico de tempo polinomial deve ter uma implementação óbvia em tempo polinomial não-determinístico em um modelo computacional não-determinístico razoável.

Analisamos o algoritmo para mostrar que todo ramo usa no máximo uma quantidade polinomial de estágios.

Page 28: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – PROBLEMAS

Um clique em um grafo não-direcionado é um subgrafo, no qual todo par de nós está conectado por uma aresta.

Um k-clique é um clique que contem k nós. CLIQUE = {<G,k>|G é um grafo não-direcionado

com um k-clique}:

Page 29: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – PROBLEMAS

TEOREMA CLIQUE está em NP.

IDEIA DA PROVA: O clique é o certificado. PROVA Aqui está um verificador V para CLIQUE: V = “Sobre a entrada <<G,k>,c>: 1. Teste se c é um conjunto de k nós em G 2. Teste se G contem todas as arestas

conectando nós em c. 3. Se ambos os testes retornam positivo, aceite;

caso contrário, rejeite.”

Page 30: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – PROBLEMAS

TEOREMA CLIQUE está em NP. PROVA ALTERNATIVA, em termos de MTNDs: É só fornecer uma que decida CLIQUE. Observe a similaridade entre as duas provas.

N = “Sobre a entrada <G,k>, onde G é um grafo: 1. Não-deterministicamente selecione um

subconjunto c de k nós de G. 2. Teste se G contem todas as arestas

conectando nós em c. 3. Se sim, aceite; caso contrário, rejeite.”

Page 31: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – PROBLEMAS

Seja uma coleção de nos.x1...xk e um no.alvo t. Desejamos determinar se a coleção contem uma

subcoleção que soma t.

SUBSET-SUM = {<S,t>|S = {x1...xk} e para algum {y1...yl} ⊆ {x1...xk} temos Σyi = t}

<{4,11,16,21,27},25>∈SUBSET-SUM pois 4+21=25. Note que {x1...xk} e {y1...yl} são considerados como

multiconjuntos então permitem repetição de elementos.

Page 32: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – PROBLEMAS

TEOREMA SUBSET-SUM está em NP.

IDEIA DA PROVA: O subconjunto é o certificado. PROVA Eis um verificador V para SUBSET-SUM: V = “Sobre a entrada <<S,t>,c>: 1. Teste se c é uma coleção de nos que somam t. 2. Teste se S contem todos os nos. em c. 3. Se ambos os testes retornam positivo, aceite;

caso contrário, rejeite.”

Page 33: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – PROBLEMAS

TEOREMA SUBSET-SUM está em NP. PROVA ALTERNATIVA, em termos de MTNDs:

N = “Sobre a entrada <S,t>: 1. Não-deterministicamente selecione um

subconjunto c dos nos. em S. 2. Teste se c é uma coleção de nos.que somam t. 3. Se sim, aceite; caso contrário, rejeite.”

Page 34: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

CLASSE NP – PROBLEMAS

Os complementos e não são obviamente membros de NP.

Verificar que algo não está presente parece ser mais difícil que verificar que está presente.

Fazemos uma classe de complexidade separada, chamada coNP, que contem as linguagens que são complementos de linguagens em NP.

Não sabemos se coNP é diferente de NP.

Page 35: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

P=NP?

NP é a classe de linguagens solúveis em tempo polinomial numa MTND, ou,

NP é a classe de linguagens onde a pertinência na linguagem pode ser verificada em tempo polinomial.

P é a classe de linguagens onde a pertinência pode ser testada em tempo polinomial.

HAMPATH, CLIQUE ∈ NP HAMPATH, CLIQUE ∈ P ?

Page 36: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

P=NP?

O poder de verificabilidade polinomial parece ser muito maior que aquele da decidibilidade polinomial.

Mas, P e NP podem ser iguais. Somos incapazes de provar a existência de uma única

linguagem em NP que não esteja em P. A maioria dos pesquisadores acreditam que as duas

classes não são iguais porque houve esforços enormes para encontrar algoritmos de tempo polinomial para certos problemas em NP, sem sucesso.

Pesquisadores também têm tentado provar que as classes são diferentes, mas isso acarretaria mostrar que nenhum algoritmo rápido existe para substituir a força-bruta.

Fazer isso está atualmente além do alcance científico.

Page 37: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

P=NP?

O melhor método conhecido para resolver linguagens em NP deterministicamente usa tempo exponencial.

Podemos provar que: NP ⊆ EXPTIME =

Mas não sabemos se NP está numa classe de complexidade de tempo determinístico menor.

Page 38: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

NP-COMPLETUDE

Cook – 1971 – NP Levin – 1973 – problemas de busca Karp – 21 problemas NP

Eles descobriram certos problemas NP cuja complexidade individual está relacionada à classe NP inteira.

Se um algoritmo de tempo polinomial existe para quaisquer desses problemas, todos os problemas em NP seriam solúveis em tempo polinomial.

Esses problemas são chamados NP-completos.

Page 39: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

NP-COMPLETUDE

O fenômeno da NP-completude é importante por razões tanto teóricas quanto práticas.

No lado teórico, um pesquisador tentando mostrar que P é diferente de NP pode focar sobre um problema NP-completo.

Se algum problema em NP requer mais que tempo polinomial, um NP-completo também requer.

Um pesquisador tentando provar que P=NP só precisa encontrar um algoritmo polinomial para um problema NP-completo para atingir seu objetivo.

No lado prático, a NP-completude pode evitar a perda de tempo buscando por um algoritmo polinomial inexistente para um problema específico

Page 40: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

NP-COMPLETUDE

Muito embora possamos não ter a matemática necessária para provar que o problema é insolúvel em tempo polinomial, acreditamos que P≠NP.

Portanto provar que um problema é NP-completo é forte evidência de sua não-polinomialidade.

SAT = {<F>| F é uma fórmula booleana satisfatível}

TEOREMA DE COOK-LEVIN: SAT ∈ P sse P=NP.

Page 41: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

REDUTIBILIDADE EM TEMPO POLINOMIAL

Agora definimos uma versão de redutibilidade em relação à eficiência da computação.

Quando o problema A é eficientemente redutível a B, a solução eficiente para B pode ser usada para A.

Page 42: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

REDUTIBILIDADE EM TEMPO POLINOMIAL

DEFINIÇÕES Uma função f: é computável em tempo polinomial

se alguma MT polinomial M existe que pára com exatamente f(w) na sua fita, quando iniciada sobre qualquer entrada w.

A linguagem A é redutível (por mapeamento) em tempo polinomial (muitos-para-um), à linguagem B (A B), se uma função computável polinomial f: existe, onde para toda w, w ∈ A ⇔ f(w) ∈ B:

A função f é chamada redução de tempo polinomial de A para B.

Page 43: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

REDUTIBILIDADE EM TEMPO POLINOMIAL

TEOREMA Se A B e B ∈ P, então A ∈ P.

PROVA : Seja M o algoritmo polinomial que decide B e f a redução polinomial de A para B.

Eis um algoritmo polinomial N que decide A: N = “Sobre a entrada w: 1. Compute f(w). 2. Rode M sobre a entrada f(w) e dê como saída a

saída de M.”

Page 44: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

REDUTIBILIDADE EM TEMPO POLINOMIAL

TEOREMA Se A B e B ∈ P, então A ∈ P. PROVA: w ∈ A sempre que f(w) ∈ B porque f é uma redução

de A para B. Portanto, M aceita f(w) sempre que w ∈ A. Ademais, N é polinomial pois cada um de seus 2

estágios roda em tempo polinomial. O estágio 2 é polinomial porque a composição de

polinômios é um polinômio.

Page 45: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

3-SAT

1-SAT:linear (um literal por subfórmula)

2-SAT: linear (com fases)– (x11 OR x12) AND

(x21 OR x22) AND(x31 OR x32) AND…

3-SAT: NP-completo– (x11 OR x12 OR x13) AND

(x21 OR x22 OR x23) AND(x31 OR x32 OR x33) AND ...

– O problema são os conflitos, que diminuem a satisfabilidade!

Não existe um algoritmo polinomial para todas as instâncias do problema SAT, a não ser que P = NP

Vira deterministicamente polinomial quando as sentenças viram – 2-SAT (no máximo 2 símbolos proposicionais por fórmula)– Cláusula de Horn – 1-SAT (No máximo 1 símbolo

proposicional positivo em todas as sub-fórmulas)

Page 46: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

REDUTIBILIDADE EM TEMPO POLINOMIAL

3SAT = {<F>| F é uma 3fnc-fórmula satisfatível}

TEOREMA 3SAT é redutível em tempo polinomial a CLIQUE.

IDEIA DA PROVA: A redução de tempo polinomial f de 3SAT para CLIQUE converte fórmulas para grafos.

Nos grafos construídos, cliques de um dado tamanho correspondem a atribuições que satisfazem a fórmula.

Estruturas dentro do grafo são projetadas para imitar o comportamento das variáveis e cláusulas.

Page 47: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

REDUTIBILIDADE EM TEMPO POLINOMIAL

TEOREMA 3SAT é redutível em tempo polinomial a CLIQUE. PROVA: Seja F com k cláusulas tal como = (a1 v b1 v c1) ^ (a2 v b2 v c2) ^ ... ^ (ak v bk v ck) A redução f gera a cadeia <G,k> onde G é um grafo não-

direcionado definido da seguinte forma. Os nós em G são organizados em k grupos de 3 nós. Cada tripla ti corresponde a uma das k cláusulas. As arestas de G conectam todos exceto dois tipos de

pares de nós em G:– Nenhuma aresta existe entre nós na mesma tripla.– Não há aresta entre 2 nós contraditórios.

Page 48: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

REDUTIBILIDADE EM TEMPO POLINOMIAL

TEOREMA 3SAT é redutível em tempo polinomial a CLIQUE.

F= (x1 v x1 v x2) ^ (~x1 v ~x2 v ~x2) ^ (~x1 v x2 v x2):

Page 49: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

REDUTIBILIDADE EM TEMPO POLINOMIAL

TEOREMA 3SAT é redutível em tempo polinomial a CLIQUE. PROVA: Numa atribuição que satisfaz F, pelo menos um

literal é T em toda cláusula. Em cada tripla de G, selecionamos um nó de um literal

verdadeiro na atribuição que satisfaz F. Os nós selecionados formam um k-clique. O número de nós selecionado é k, porque escolhemos

um para cada uma das k triplas. Cada par de nós selecionados é ligado por uma aresta

porque nenhum par se encaixa numa das exceções.

Page 50: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

DEFINIÇÃO DE NP-COMPLETUDE

DEFINIÇÃO Uma linguagem B é NP-completa se satisfaz : 1. B está em NP, e 2. toda A em NP é redutível em tempo polinomial a B.

TEOREMA Se B for NP-completa e B ∈ P, então P = NP. PROVA Esse teorema segue diretamente da definição de

redutibilidade de tempo polinomial.

Page 51: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

DEFINIÇÃO DE NP-COMPLETUDE

TEOREMA Se B for NP-completa e B C para C em NP, então C é

NP-completa. PROVA:C está em NP, portanto devemos mostrar que

toda A em NP é redutível em tempo polinomial a C. Em razão de B ser NP-completa, toda linguagem em NP

é redutível em tempo polinomial a B. B por sua vez é redutível em tempo polinomial a C. Reduções em tempo polinomial se compõem;i.e., se A

for redutível em tempo polinomial a B e B for redutível em tempo polinomial a C, então A é redutível em tempo polinomial a C. Logo, toda linguagem em NP é redutível em tempo polinomial a C.

Page 52: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

COOK-LEVIN

Vide livro

Page 53: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

O PROBLEMA DA COBERTURA DE VÉRTICES

Se G é um grafo não-direcionado, uma cobertura de vértices de G é um subconjunto dos nós onde toda aresta de G toca um daqueles nós.

O problema da cobertura de vértices pergunta se um grafo contem uma cobertura de vértices de um tamanho especificado.

COBERT-VERTICE = f{<G; k>| G é um grafo não-direcionado que tem uma cobertura de vértices de k-nós}

Page 54: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

O PROBLEMA DA COBERTURA DE VÉRTICES

TEOREMA COBERT-VERTICE é NP-completo. IDEIA DA PROVA: 2 provas: COBERT-VERTICE é NP: certificado

– uma cobertura de vértices de tamanho k Todos os NP são polinomialmente redutíveis a ele.

– 3SAT COBERT-VERTICE. converte ruma 3fnc-fórmula F num grafo G e um no. k, F é satisfatível se G tem uma cobertura de vértices com k nós

Page 55: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

O PROBLEMA DA COBERTURA DE VÉRTICES

TEOREMA COBERT-VERTICE é NP-completo. PROVA: 3SAT COBERT-VERTICE. A redução mapeia uma fórmula booleana para um grafo G

e um valor k. Para cada variável x em F, produzimos uma aresta conectando 2 nós (x e ~x)

Cada engrenagem de cláusulas é uma tripla de 3 nós rotulados com os literais da cláusula, conectados um ao outro e aos nós nas engrenagens de variáveis que têm os rótulos idênticos.

O total de nós que aparecem em G é 2m+3l, onde F tem m variáveis e l cláusulas. Suponha k = m + 2l.

Page 56: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

O PROBLEMA DA COBERTURA DE VÉRTICES

TEOREMA COBERT-VERTICE é NP-completo. PROVA: 3SAT COBERT-VERTICE.

Page 57: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

O PROBLEMA DA COBERTURA DE VÉRTICES

TEOREMA COBERT-VERTICE é NP-completo. PROVA: 3SAT COBERT-VERTICE. F é satisfatível sse o grafo G tiver uma cobertura de K

nós!

Page 58: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

O PROBLEMA DA SOMA DE SUBCONJUNTOS

TEOREMA SUBSET-SUM é NP-completo. IDEIA DA PROVA: 2 provas SUBSET-SUM é NP. 3SAT SUBSET-SUM

– Dada uma 3fnc-fórmula F construímos uma instância de SUBSET-SUM contendo uma subcoleção T cuja soma é o alvo t sse F é satisfatível.

– A instância de SUBSET-SUM construída cont´em nos. grandes em notação decimal.

– Variáveis são pares de nos.e cláusulas certas posições nas representações decimais dos números.

Page 59: Informática Teórica Engenharia da Computação. COMPLEXIDADE DE TEMPO Às vezes não é possível achar reduções polinomiais para a busca de força bruta Às.

Informática Teórica

Engenharia da Computação