Problemas NP-completos

Slides:



Advertisements
Apresentações semelhantes
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Advertisements

ISOMETRIAS. ISOMETRIAS Transformações Simetria Axial; Translação; Rotação.
Grafos - Caminhos Caminhos Máximo / Mínimo:
Distâncias.
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
Teoria dos Grafos Um grafo é um conjunto de pontos, chamados vértices, conectados por linhas, chamadas de arestas. A Teoria dos Grafos é o ramo da matemática.
Exercícios PAA- Grafos
Exercícios PAA- Grafos
CC/EC/PPGI/UFES Teoria dos Grafos (INF 5037/INF2781) Coloração.
Cláusulas Conjuntos de cláusulas
Pesquisa em profundidade
Grafos Grafo G = (V, E) V — conjunto de vértices
Tópicos de Lógica Proposicional
Conexidade e Conectividade
Lógica de Predicados Sintaxe. O que não é possível expressar em Lógica Prop. Todo tricolor é um campeão. Roberto é tricolor. Logo Roberto é um campeão.
Introdução à Programação Lógica
Modelos de Preferências em Inteligência Artificial CP-Nets
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
PREDIÇÃO DATA MINING AULA 13 SANDRA DE AMO
Cálculo Relacional Datalog não-recursivo
Programação Linear Método Simplex
Lema do Bombeamento – Gramáticas Livres do Contexto
Teorema da Recursão Teoria da Computação
Pós-graduação em Ciência da Computação – UFU
SQL – Comandos de Agregação
SQL – Consultas Aninhadas e Agregação Profa. Sandra de Amo Capitulo 5 – Livro Texto Database Management Systems Ramakrishnan - Gehrke.
Exercícios para entregar
Mineração de Preferências (a partir de amostras superiores e inferiores) J.Pei et al. KDD 2008 AULA 18 Data Mining Profa. Sandra de Amo.
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Algoritmos e Estruturas de Dados
Introdução à NP-completude
Problemas NP-completo
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Métodos de Demonstração
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Algoritmos em Grafos.
Algoritmos em Grafos Conceitos principais Prof. André Renato
Grafos Árvores Geradoras.
Informática Teórica Engenharia da Computação
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
E Ellís Carvalho Luiz Afonso
Exercícios PAA- Grafos
Lógica de Predicados Teorema de Herbrand.
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
Histórico, exemplos e problemas
Operações com grafos União Exemplo
Histórico, exemplos e problemas
AULA 26 Profa. Sandra de Amo GBC053 – BCC
Teoria dos Grafos Introdução
Lógica de Predicados Sintaxe.
1. Se este nó é raiz de uma árvore QuasiEquilibrada de ordem k, e
Introdução à NP-completude Katia S. Guimarães
Trabalho de Introdução a Ciência da Computação
Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo
Navegação e Controle de Robôs Móveis PLANEJAMENTO DE CAMINHOS.
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL UNIDADE 4 Itens fundamentais para Desenvolvimento de algoritmos.
Análise e Síntese de Algoritmos
Aula 14: Distribuição normal Prof. Diovani Milhorim
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Problemas NP-completos e Programação Dinâmica
Algoritmos de aproximação

Introdução à NP-completude
Exercícios de Fluxo em Redes
Teoria da complexidade
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.
Programação Dinâmica Profa. Sandra de Amo Bacharelado em Ciência da Computação – UFU Disciplina de Análise de Algoritmos.
Transcrição da apresentação:

Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação

Diagrama das Reduções entre os Problemas SAT 3-SAT SUM-SET K-COLOR CLIQUE VC HAMCIRC HAMPATH Mochila UHAMCIRC UHAMPATH VC = Vertex Cover CV = Caixeiro Viajante CV

Coloração de Grafos Input: Grafo G = (V,E) , não dirigido, inteiro K ≤ |V| Pergunta: G é k-colorável, isto é, existe uma função f: V  {1,2,...,K} tal que f(u) ≠ f(v) sempre que {u,v} ϵ E ? K = 2 K = 3 ???

Problema da K-coloração de grafos K ≥ 3 : NP-Completo Karp 1972 : 3SAT  K-color K=2 : polinomial K=4 : todo grafo planar pode ser colorido com 4 cores. 1879: Alfred Kempe deu primeira prova 1890: encontrado um erro na prova de Kempe 1890: idéias de Kempe utilizadas para mostrar a 5-coloração de grafos planares (Percy John Heawood) 1976: Kenneth Appel/Wolfgang Haken – prova por computador

HAMPATH é NP-completo HAMPATH é NP 2. 3-SAT ≤ p HAMPATH Input: Grafo G = (V,E) , não dirigido, s,t  V Pergunta: Existe caminho hamiltoniano ligando os vértices s e t ? Caminho hamiltoniano: passa uma única vez por todos os vértices do grafo 3-SAT ≤ HAMPATH é NP 2. 3-SAT ≤ p HAMPATH HAMPATH

Redução polinomial Variáveis = {x1, x2, ..., xl} 3-SAT F é satisfatível F = (a1 V b1 V c1) ^ (a2 V b2 V c2) ^ ... ^ (ak V bk V ck) HAMPATH Grafo G, vértices s, t Existe caminho Hamiltoniano ligando s a t

Construção do grafo G: estruturas básicas Para cada variável x construímos uma estrutura de “diamante” com 4 + M vértices Para cada cláusula C construímos um vértice extra . . . M vértices M = 3k + 1 k = nº de cláusulas

Juntando as estruturas C1 x1 C2 x2 C3 . . Ck xl

Como ligar os dois tipos de estruturas x1 C1 = x1 V x4 V ¬ x5 C1 . . . C1

Como ligar os dois tipos de estruturas C1 = x1 V x4 V ¬ x5 x5 C1 . . . C1

Resumo Um diamante só está ligado a vértices externos correspondendo a cláusulas onde sua variável aparece. Os vértices internos “brancos” e “azuis” dos diamantes não estão ligados a vértices externos. Os vértices “verdes” e “vermelhos” dos diamantes estão ligados aos vértices externos (cláusulas) onde eles aparecem.

Se F é satisfatível então existe caminho hamiltoniano de s a t Cada cláusula Ci contém ao menos um literal Li verdadeiro. Escolhemos este literal verdadeiro para cada cláusula Ci. Li = xj ou Lj = ¬xj O caminho hamiltoniano ligando os vértices s a t vai percorrer os diamantes fazendo desvios para os vértices externos e voltando para o mesmo diamante s x1 . x2 xj

Os diamantes correspondentes aos literais escolhidos vão conter “desvios” para as cláusulas onde eles foram selecionados C1 V(xj) = F . . . C1 O diamante é percorrido em zig-zag ou zag-zig, dependendo se a variável é avaliada como verdadeira ou falsa.

Todos os vértices dos diamantes são visitados uma única vez. Todos os vértices externos são visitados: O vértice Ci é visitado uma única vez quando se percorre o diamante correspondente ao literal Li que foi escolhido como verdadeiro para Ci.

Se existe caminho Hamiltoniano ligando s a t então F é satisfatível. Caso 1: o caminho hamiltoniano percorre os diamantes de forma normal, isto é: na ordem em que aparecem fazendo desvios para os vértices externos e retornando para o mesmo diamante de onde saiu o desvio. Avaliação de variáveis: V(xi) = True se o diamante é percorrido em zig-zag V(xi) = False se o diamante é percorrido em zag-zig É claro que V(F) = True: Seja Ci cláusula de F. Se Ci é percorrido em zig-zag é porque a variável xj de onde saiu o desvio (em zig-zag) aparece como positiva em Ci. Logo V(Ci) = true. Se Ci é percorrido em zag-zig é porque a variável xj de onde saiu o desvio (em zag-zig) aparece como negativa em Ci. Logo V(Ci) = true.

Caso 2: O caminho hamiltoniano percorre os diamantes de forma anormal: . . . u v t Como percorrer o vértice v ? - chegando de u ? Não ! - chegando de t ? Para onde ir depois disto ? Só poderia ir para u, mas este já foi percorrido ! C1 ISTO NÃO PODE OCORRER ! C1 . . .

SUM-SET é NP-completo SUM-SET é NP 2. 3-SAT ≤ p SUM-SET Input: S = {n1,...,np}  N , t  N Pergunta: Existe subconjunto S’  S tal que Σ i = t ? i  S’ 3-SAT ≤ SUM-SET é NP 2. 3-SAT ≤ p SUM-SET SUM-SET

Redução polinomial Variáveis = {x1, x2, ..., xl} 3-SAT F é satisfatível F = (a1 V b1 V c1) ^ (a2 V b2 V c2) ^ ... ^ (ak V bk V ck) SUM-SET S = {n1,...,nk}  N , t  N Existe subconjunto S’  S tal que Σ i = t ? i  S’

1 2 3 4 . . . l C1 C2 . . . Ck n1 y1 1 0 0 0 0 1 0 . . . 0 0 0 . . . 0 n2 z1 1 0 0 0 0 0 1 0 0 0 n3 y2 0 1 . . . 0 0 1 0 0 0 1 0 . . . 0 n4 z2 Um par y,z para cada variável x y3 0 0 1 0 0 n5 1 1 . . . 0 0 0 1 0 0 n6 z3 0 0 . . . 1 . S yl 0 0 0 0 1 0 0 . . . 0 n7 zl 0 0 0 0 1 0 0 . . . 0 g1 1 0 . . . 0 h1 1 0 . . . 0 g2 1 . . . 0 Um par g,h para cada cláusula C h2 . 1 . . . 0 .. gk 1 hk 1 np t 1 1 1 1 . . . 1 3 3 . . . 3

Se F é satisfatível então existe subconjunto S’ de S com soma = t Se F é satisfatível, existe avaliação de variáveis V tal que V(F) = True. 2. Para cada variável xi: V(xi) = true ou V(xi) = false. 3. Para cada i = 1,...,l : Se V(xi) = true, considere a linha yi Se V(xi) = false, considere a linha zi 4. Como F é satisfatível, então V(Cj) = true para toda cláusula Cj, j = 1,...,k Logo, para todo j = 1,...,k, existe um literal verdadeiro em Cj. Logo, toda coluna j = 1,...,k, contém pelo menos uma célula em uma das linhas escolhidas em (3). Esta célula contém um 1. Como cada cláusula só tem 3 literais, então cada coluna j = 1,...,k tem no máximo 3 células nas linhas escolhidas em (3). 5. Para cada coluna j = 1,...,k completa-se com 0, 1 ou 2 linhas da parte bottom-right da tabela, dependendo se tem 3, 2, ou 1 célula nas linhas escolhidas em (3). 6. O conjunto S` = conjunto das linhas consideradas em (3) e em (5)

Se existe subconjunto S’ de S com soma = t então F é satisfatível 1. Se a soma resulta em 3 para cada coluna de j = 1,...,k (da parte top-right), então em cada coluna da parte top-right, ao menos uma linha de S’ que colabora para esta soma está na parte top-right da tabela. 2. Como a soma das colunas da parte esquerda é 1, conclui-se que S’ não contém duas linhas yi e zi. 3. Associamos o valor verdade True para cada literal com valor 1 aparecendo nas linhas de S’ da parte de cima da tabela. 4. A partir de (1) concluimos que cada cláusula possui um literal verdadeiro. Logo V(F) = True. 5. Portanto F é satisfatível.

1 2 3 4 . . . l C1 C2 . . . Ck n1 y1 1 0 0 0 0 1 0 . . . 0 z1 0 0 . . . 0 n2 1 0 0 0 0 n3 y2 0 1 0 0 0 0 1 . . . 0 n4 0 1 0 0 0 1 0 . . . 0 z2 Um par y,z para cada variável x y3 0 0 1 0 0 1 1 . . . 0 n5 0 0 1 0 0 n6 z3 0 0 . . . 1 . S yl 0 0 0 0 1 0 1 . . . 0 n7 zl 0 0 0 0 1 0 0 . . . 0 g1 1 0 . . . 0 h1 1 0 . . . 0 g2 1 . . . 0 Um par g,h para cada cláusula C h2 . 1 . . . 0 .. gk 1 hk 1 np t 1 1 1 1 . . . 1 3 3 . . . 3

UHAMPATH é NP-Completo Input: Grafo não dirigido G, s, t vértices de G Pergunta: Existe caminho hamiltoniano em G, começando em s e terminando em t ? HAMPATH ≤ UHAMPATH é NP ≤ p 2. HAMPATH UHAMPATH UHAMPATH

Redução polinomial G= Grafo dirigido G, s,t vértices de G Existe caminho hamiltoniano em G ligando s a t HAMPATH UHAMPATH G’ = Grafo não- dirigido G, s´,t´ vértices de G Existe caminho hamiltoniano em G´ ligando s´ a t´

(G,s,t)  (G’,s´,t´) s sout t tin umid u uin uout vin vout v vmid GRAFO DIRIGIDO G sout uin uout vin vout vmid tin GRAFO Não - DIRIGIDO G´

Suponhamos que existe caminho hamiltoniano em G ligando s a t v S t umid uin uout S out t in vin vout vmid

umid uin uout tin vin vout vmid Por que não seria um Vout ? Sout u v S