Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú

Documentos relacionados
Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú

Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú

Análise e Projeto de Algoritmos

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34

Reduções de Problemas Difíceis

Problemas NP-completos

Análise e Projeto de Algoritmos

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes.

Complexidade de Algoritmos

Análise de Algoritmos. Slides de Paulo Feofiloff

Algoritmos de aproximação

Algoritmos de Aproximação Segundo Semestre de 2012

Redução de Cook-Levin e Considerações Finais

Coloração. Carolina Moraes e Lucas Glir

Por que não encontramos algoritmos polinomiais para muitos problemas?

Busca e Decisão. Problemas de Otimização. Kakuro. P e NP. Pode-se resolver o Kakuro somente resolvendo problemas de decisão?

Por que não encontramos algoritmos polinomiais para muitos problemas?

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Teoria e Algoritmos em Grafos

Análise e Síntese de Algoritmos

Melhores momentos AULA 24. Algoritmos p.906/953

Complexidade Parametrizada - Intratabilidade Uéverton S. Souza - UFF

Complexidade de Algoritmos

Problemas Intratáveis ou computação eficiente X computação ineficiente

Classes de Complexidade e NP-Completude

Complexidade de Algoritmos

Algoritmos de aproximação - Problema de cobertura por conjuntos

COMPLEXIDADE PARAMETRIZADA PARTE 1. Rafael Coelho.

Análise de Algoritmos

Projeto e Análise de Algoritmos

Jogos de Anti-Coordenação e Colorações Estáveis em Grafos. Renato Lui Geh NUSP:

ALGUNS GRAFOS BEM-COBERTOS LIVRES DE K 1,3

Grafo planar: Definição

Como saber se um problema está em NP e não está em P?

Introdução à classe de problemas NP- Completos

O Problema da 3- Coloração de Grafos

Teoria da Complexidade Computacional

GRAFOS Aula 02 Formalização: definições Max Pereira

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Análise e Complexidade de Algoritmos

5COP096 TeoriadaComputação

Complexidade de Algoritmos. Edson Prestes

Teoria da Complexidade Computacional

Teoria dos problemas completos em NP algumas notas

Problemas de Busca (a.k.a NP) - parte 2

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

Algoritmos Combinatórios: Backtracking

Algoritmos Combinatórios: Introdução

Complexidade computacional

TEORIA DE COMPLEXIDADE

Aula 2 Definições, Conceitos Básicos e Representação Interna de Grafos. Teoria dos Grafos Prof.

Polinomial: função de complexidade é O(p(n)), onde p(n) é um polinômio.

Análise e Síntese de Algoritmos

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

PCC104 - Projeto e Análise de Algoritmos

Algoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22

Grafos e Algoritmos de Busca

Teoria e Algoritmos em Grafos

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

Algoritmos Combinatórios: Sudoku via Backtracking e o Problema da Cobertura Exata

Complexidade computacional

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

Grafos e Algoritmos Raimundo Macêdo. Teorema de Hall (Prova por Indução)

INTRATABILIDADE e NP-COMPLETUDE

Problema da Árvore Geradora Mínima

03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Introdução a Teoria dos Grafos Raimundo Macêdo

Introdução à Teoria da Computação Exercícios

Análise de Algoritmos

Teoria dos Grafos. Fluxo Máximo em Redes

Trabalho final de Teoria dos Grafos: O problema de coloração de vértices de grafos. Alessander Botti Benevides.

Lógica para Computação Segundo Semestre, Aula 10: SAT. Prof. Ricardo Dutra da Silva. ( p (q ( q r))) ( p r) ( p q) ( p q r) p r.

GRAFOS Aula 10 Fluxo em Redes Max Pereira

Algoritmos de Fluxo Máximo

Uma Introdução Sucinta à Teoria dos Grafos

Projeto e Análise de Algoritmos NP Completude Parte 2. Prof. Humberto Brandão

PCC104 - Projeto e Análise de Algoritmos

Em vários problemas, é preciso particionar os vértices de um grafo em conjunto de vértices independentes.

Paulo Guilherme Inça. 7 de dezembro de 2016

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Algoritmos em redes de fluxo e aplicações

Problemas de rotulação graciosa e colorações: algoritmos, complexidade e aplicações

Complexidade de Algoritmos. Edson Prestes

Projeto e Análise de Algoritmos

Agenda. Complexidade Não Determinista A classe NP. A classe Co-NP Reduções de tempo polinomial. Definida por. Exemplos em:

1.2 Subgrafos. 8 Conceitos Basicos

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Teorema da Galeria de Arte

Satisfação de Restrições. Capítulo 5 (disponível online)

Teoria dos Grafos Coloração. Profª. Alessandra Martins Coelho

Colóquio Brasileiro de Matemática - Exercícios de Algoritmos Randomizados

Lógica Computacional Aula 4

x y Grafo Euleriano Figura 1

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Na última aula... Procurando um caminho. Certificados. Procurando um caminho

Teoria dos Grafos. Grafos Planares

Algoritimos e Estruturas de Dados III CIC210

Transcrição:

Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú 5/5/2014 Ruy Luiz Milidiú 1

A Classe NPC 5/5/2014 Ruy Luiz Milidiú 2

Resumo Objetivo Apresentar Classe de Problemas NPC Sumário P, NP, NP-difícil, e NP-completo De 3-SAT para clique De clique para cobertura de vértices clique e cobertura de vértices estão em NPC 5/5/2014 Ruy Luiz Milidiú 3

NP-Difícil MAXC NP SAT 3SAT 3DM Teorema de Cook PLI 3C CLIQUE 3XC 3CP IND MPS ST XC 3SC VC SC 5/5/2014 Ruy Luiz Milidiú 4

Problemas de decisão P NP resolvidos em tempo polinomial verificáveis em tempo polinomial NP-Difícil NP-Hard qualquer problema em NP pode ser reduzido a ele NPC é NP é NP-Difícil NP-Completos verificador redutor 5/5/2014 Ruy Luiz Milidiú 5

NPC SAT NPC SAT NP Teorema de Cook 3-SAT NPC 3-SAT NP SAT 3-SAT PLI NPC PLI NP SAT PLI NP SAT 3SAT PLI 5/5/2014 Ruy Luiz Milidiú 6

CLIQUE Grupo Exclusivo de G=(V,E) H V u,v H então {u,v} E. Problema de decisão H = {u,v,x,y} grupo exclusivo de G tamanho 4 grupo exclusivo de tamanho k em G? 5/5/2014 Ruy Luiz Milidiú 7

CLIQUE NP //Verificador for all v V do na_clique[v] := 0 for all v H do na_clique[v] := 1 for all v V do if (na_clique[v] = 1) then total_na_clique := 0 for all w Adjacent[v] do total_na_clique := total_na_clique + na_clique[w] if (total_na_clique k-1) then return(não) return(sim) 5/5/2014 Ruy Luiz Milidiú 8

3-SAT CLIQUE C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) x1 x2 x3 x1 x2 x3 x1 x2 x3 5/5/2014 Ruy Luiz Milidiú 9

3-SAT CLIQUE C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) x1 x2 x3 x1 x1 x x PROIBIDO x2 x3 x2 x3 5/5/2014 Ruy Luiz Milidiú 10

3-SAT CLIQUE C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) 5/5/2014 Ruy Luiz Milidiú 11

3-SAT CLIQUE //Redutor input C = C 1 C 2 C k for r=1,...,k do criar três vértices em V, rotulados pelas variáveis de C r for all pairs u,v V de triplas diferentes if (rótulo(u) rótulo(v)) then criar a aresta {u,v} em E 5/5/2014 Ruy Luiz Milidiú 12

3-SAT CLIQUE C é capaz de satisfação existe um grupo exclusivo de tamanho k em G 5/5/2014 Ruy Luiz Milidiú 13

3-SAT CLIQUE C é capaz de satisfação cada C r possui ao menos um literal com atribuição 1 escolha esse literal e seu vértice correspondente em V H são os k vértices escolhidos todos os vértices de H estão ligados entre si pois a atribuição é consistente H é CLIQUE de tamanho k 5/5/2014 Ruy Luiz Milidiú 14

3-SAT CLIQUE existe um grupo exclusivo de tamanho k em G Atribua 1 ao literal associado a cada vértice de H Nenhuma aresta em E conecta vértices da mesma tripla ou complementares H possui exatamente um vértice por tripla (tamanho k) H não contém pares {x, x} (consistência) Cada cláusula C r é satisfeita C é satisfeita 5/5/2014 Ruy Luiz Milidiú 15

CLIQUE NPC NP SAT 3SAT PLI CLIQUE 5/5/2014 Ruy Luiz Milidiú 16

VERTEX-COVER Cobertura de Vértices de G=(V,E) V V tq se {u,v} E, então u V ou v V V = {z,w} cobertura de vértices de G tamanho 2 Problema de decisão uma cobertura de vértices de tamanho k em G? 5/5/2014 Ruy Luiz Milidiú 17

VERTEX-COVER NP //Verificador for all v V do na_cobertura[v] := 0 for all v V do na_cobertura [v] := 1 for all v V do if (na_cobertura[v] = 0) then for all w Adjacent[v] do if (na_cobertura[w] = 0) then return(não) return(sim) 5/5/2014 Ruy Luiz Milidiú 18

CLIQUE VERTEX-COVER Redução {v,w} E {v,w} E G=(V,E) G =(V,E ) 5/5/2014 Ruy Luiz Milidiú 19

CLIQUE VERTEX-COVER X é CLIQUE de G V-X é cobertura de vértices de G 5/5/2014 Ruy Luiz Milidiú 20

CLIQUE VERTEX-COVER X é CLIQUE de G {u,v} E u X ou v X, pois se u,v X então {u,v} E u (V-X) ou v V-X {u,v} é coberta por V-X em G V-X é cobertura de vértices de G Obs.: V-X = n - k 5/5/2014 Ruy Luiz Milidiú 21

CLIQUE VERTEX-COVER V-X é cobertura de vértices de G u,v X (p/absurdo) {u,v} E {u,v} E u V-X ou v V-X X (V-X) {u,v} E X é clique de G 5/5/2014 Ruy Luiz Milidiú 22

CLIQUE NPC NP SAT 3SAT PLI CLIQUE VC 5/5/2014 Ruy Luiz Milidiú 23

3-COLOR 3-COLOR de G=(V,E) f: V {1,2,3} {u,v} E então f(u) f(v) Problema de decisão uma 3-COLOR de G? 5/5/2014 Ruy Luiz Milidiú 24

3-COLOR NP //Verificador for all u V do if f(u) {1,2,3} then return(não) for all {u,v} E do if (f(u) = f(v)) then return(não) return(sim) 5/5/2014 Ruy Luiz Milidiú 25

3-SAT 3-COLOR ( X X) = T (X Y) = T X X X Y G T F T 5/5/2014 Ruy Luiz Milidiú 26

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 1 X 2 X 2 X 3 X 3 G T F 5/5/2014 Ruy Luiz Milidiú 27

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 1 X 2 X 2 X 3 X 3 G T F 5/5/2014 Ruy Luiz Milidiú 28

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 29

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 30

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 31

3-SAT 3-COLOR C é capaz de satisfação existe f que é uma 3-COLOR de G 5/5/2014 Ruy Luiz Milidiú 32

3-SAT 3-COLOR C é capaz de satisfação atribuição de cores se u=t então f(u) = VERDE se u=f então f(u) = VERMELHO cada tripla tem pelo menos um nó VERMELHO Podemos atribuir cores para os nós auxiliares f é uma 3-COLOR de G 5/5/2014 Ruy Luiz Milidiú 33

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 34

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 35

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 36

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 37

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 38

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 39

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 40

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 41

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 42

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 43

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 44

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 45

3-SAT 3-COLOR existe f que é uma 3-COLOR de G atribuição de valores verdade se f(u) = VERDE então u=t se f(u) = VERMELHO então u=f f(u) = VERDE f( u) = VERMELHO f tem pelo menos um nó VERDE por tripla C é capaz de satisfação 5/5/2014 Ruy Luiz Milidiú 46

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 47

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T 5/5/2014 Ruy Luiz Milidiú 48

3-SAT 3-COLOR C = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) X 1 X 2 X 3 T Absurd! 5/5/2014 Ruy Luiz Milidiú 49

3-COLOR NPC NP SAT 3SAT PLI CLIQUE 3-COLOR 5/5/2014 Ruy Luiz Milidiú 50

3-COLOR PLANAR 3-COLOR de G=(V,E) f: V {1,2,3} {u,v} E então f(u) f(v) G é planar Problema de decisão uma 3-COLOR de G? 5/5/2014 Ruy Luiz Milidiú 51

3-COLOR PLANAR NP //Verificador if (not verificador_de_planaridade (G)) return(não) for all {u,v} E do if (f(u) = f(v)) then return(não) return(sim) 5/5/2014 Ruy Luiz Milidiú 52

3-COLOR 3-COLOR PLANAR cantos opostos tem mesma cor 5/5/2014 Ruy Luiz Milidiú 53

3-COLOR 3-COLOR PLANAR? W é 3-COLOR então cantos opostos tem mesma cor? 5/5/2014 Ruy Luiz Milidiú 54

3-COLOR 3-COLOR PLANAR u v 5/5/2014 Ruy Luiz Milidiú 55 G

3-COLOR 3-COLOR PLANAR u v G 5/5/2014 Ruy Luiz Milidiú 56

3-COLOR 3-COLOR PLANAR u v G 5/5/2014 Ruy Luiz Milidiú 57

3-COLOR 3-COLOR PLANAR G é 3-COLOR G é 3-COLOR 5/5/2014 Ruy Luiz Milidiú 58

3-COLOR 3-COLOR PLANAR G é 3-COLOR G é 3-COLOR u u v u 5/5/2014 Ruy Luiz Milidiú 59

3-COLOR 3-COLOR PLANAR G é 3-COLOR G é 3-COLOR u u u v u u 5/5/2014 Ruy Luiz Milidiú 60

3-COLOR 3-COLOR PLANAR G é 3-COLOR G é 3-COLOR u u u v u u 5/5/2014 Ruy Luiz Milidiú 61

3-COLOR 3-COLOR PLANAR G é 3-COLOR G é 3-COLOR u u u v u u 5/5/2014 Ruy Luiz Milidiú 62

3-COLOR 3-COLOR PLANAR G é 3-COLOR G é 3-COLOR u u u v u u 5/5/2014 Ruy Luiz Milidiú 63

3-COLOR NPC NP SAT 3SAT CLIQUE 3-COLOR PLI 3-COLOR P 5/5/2014 Ruy Luiz Milidiú 64