1 / 27

Problemas NP-completos

Problemas NP-completos. Profa. Sandra de Amo Teoria da Computação Pós-graduação em Ciência da Computação. Diagrama das Reduções entre os Problemas. SAT. 3-SAT. SUM-SET. K-COLOR. HAMCIRC. HAMPATH. CLIQUE. VC. Mochila. UHAMCIRC. UHAMPATH. VC = Vertex Cover. CV = Caixeiro Viajante.

amadis
Download Presentation

Problemas NP-completos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 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 ???

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

  5. p HAMPATH é NP-completo Input: Grafo G = (V,E) , 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 HAMPATH HAMPATH

  6. Redução polinomial Variáveis = {x1, x2, ..., xl} F é satisfatível 3-SAT 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

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

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

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

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

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

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

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

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

  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 é: • 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 negativaem Ci. Logo V(Ci) = true.

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

  17. p SUM-SET é NP-completo 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 SUM-SET SUM-SET

  18. Redução polinomial Variáveis = {x1, x2, ..., xl} F é satisfatível 3-SAT 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’

  19. 1 2 3 4 . . . l C1 C2 . . . Ck n1 1 0 . . . 0 y1 1 0 0 0 0 0 0 . . . 0 n2 z1 1 0 0 0 0 n3 0 1 0 0 0 0 1 . . . 0 y2 n4 1 0 . . . 0 0 1 0 0 0 z2 Um par y,z para cada variável x n5 0 0 1 0 0 y3 1 1 . . . 0 n6 0 0 1 0 0 0 0 . . . 1 z3 . . . S yl 0 0 . . . 0 n7 0 0 0 0 1 zl 0 0 . . . 0 0 0 0 0 1 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

  20. 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)

  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. 1 2 3 4 . . . l C1 C2 . . . Ck n1 1 0 . . . 0 y1 1 0 0 0 0 z1 0 0 . . . 0 n2 1 0 0 0 0 n3 0 1 . . . 0 0 1 0 0 0 y2 n4 1 0 . . . 0 0 1 0 0 0 z2 Um par y,z para cada variável x n5 1 1 . . . 0 0 0 1 0 0 y3 n6 0 0 1 0 0 0 0 . . . 1 z3 . . . S yl 0 1 . . . 0 n7 0 0 0 0 1 zl 0 0 . . . 0 0 0 0 0 1 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

  23. p 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 2. HAMPATH UHAMPATH UHAMPATH

  24. 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´

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

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

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

More Related