A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Problemas NP-completos Profa. Sandra de Amo Análise de Algoritmos Pós-graduação em Ciência da Computação."— Transcrição da apresentação:

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

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

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

4 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 provaAlfred Kempe – –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)Percy John Heawood – –1976: Kenneth Appel/Wolfgang Haken – prova por computador

5 HAMPATH é NP-completo 3-SAT HAMPATH 1.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

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

7 ... 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 Construção do grafo G: estruturas básicas M vértices M = 3k + 1 k = nº de cláusulas

8 Juntando as estruturas x1 x2 xl C1 C2 C3 Ck

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

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

11 Resumo Um diamante só está ligado a vértices externos correspondendo a cláusulas onde sua variável aparece. 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 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. Os vértices verdes e vermelhos dos diamantes estão ligados aos vértices externos (cláusulas) onde eles aparecem.

12 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. Cada cláusula Ci contém ao menos um literal Li verdadeiro. Escolhemos este literal verdadeiro para cada cláusula Ci. Escolhemos este literal verdadeiro para cada cláusula Ci. Li = xj ou Lj = ¬xj 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 xj x1 x2

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

14 Todos os vértices dos diamantes são visitados uma única vez. Todos os vértices dos diamantes são visitados uma única vez. Todos os vértices externos são visitados: 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.

15 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 é: 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) = True se o diamante é percorrido em zig-zag V(xi) = False se o diamante é percorrido em zag-zig 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.

16 Caso 2: O caminho hamiltoniano percorre os diamantes de forma anormal: C1... C1... ISTO NÃO PODE OCORRER ! v 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 ! u t

17 SUM-SET é NP-completo 3-SAT SUM-SET 1.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

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

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

20 Se F é satisfatível então existe subconjunto S de S com soma = t 1. 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, 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. 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). 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)

21 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.

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

23 UHAMPATH é NP-Completo Input: Grafo não dirigido G, s, t vértices de G 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 ? Pergunta: Existe caminho hamiltoniano em G, começando em s e terminando em t ? HAMPATH UHAMPATH 1.UHAMPATH é NP 2. HAMPATH p UHAMPATH

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

25 (G,s,t) (G,s´,t´) t s u v GRAFO DIRIGIDO G t in s out u out GRAFO Não - DIRIGIDO G´ u mid u in v in v mid v out

26 Suponhamos que existe caminho hamiltoniano em G ligando s a t Suponhamos que existe caminho hamiltoniano em G ligando s a t St u v S out t in u in u mid u out v out v mid v in

27 Sout t in u mid u out v out v mid v in u in Por que não seria um Vout ? St u v


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

Apresentações semelhantes


Anúncios Google