1 / 51

Caixeiro Viajante

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  -aproximativo polinomial para o TSP para qualquer  >=1.

aviva
Download Presentation

Caixeiro Viajante

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. 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 -aproximativo polinomial para o TSP para qualquer  >=1. Prova: Suponha que exista um algoritmo -aproximativo polinomial A para algum >1. Vamos mostrar então que é possível encontrar um ciclo Hamiltoniano em tempo polinomial

  2. Caixeiro Viajante K K 1 K K 1 1 1 1 K = 1+|V| 1 Instância do Caixeiro Viajante Instância do Ciclo Hamiltoniano

  3. Se o algoritmo retorna um ciclo de custo |V| o Ciclo Hamiltoniano existe Se existe um ciclo Hamiltoniano em G então A retorna um tour (T ) de comprimento menor ou igual a |V|. Como o TSP não utiliza nenhuma aresta de valor maior que |V| então ele retorna um tour de custo |V| Caixeiro Viajante Objetivo: Provar que o algoritmo -aproximativo polinomial para o TSP (A) irá retornar um tour de custo |V | se e somente se existe um ciclo Hamiltoniano em G.

  4. Caixeiro Viajante Circuito Euleriano: Um circuito Euleriano é um passeio fechado que visita todas as arestas do grafo uma única vez Teorema Um grafo G admite um circuito Euleriano se e somente se todo vértice de G tem grau par

  5. Caixeiro Viajante Problema: TSP sobre grafo G=(V,E) que satisfaz a desigualdade triangular: d(i,j) d(i,k) + d(k,j) • Algoritmo Tree: • Obter a árvore geradora de peso mínimo T; • Duplicar as arestas de T; • Obter um circuito euleriano, usando busca em profundidade; • Escolher um nó inicial; • Encontrar circuito hamiltoniano sobre o circuito euleriano, usando “atalhos” para não repetir nós.

  6. Árvore geradora mínima Árvore geradora mínima com arestas duplicadas 1 5 2 4 3 Caixeiro Viajante

  7. 1 5 2 4 3 Caixeiro Viajante Circuito Euleriano

  8. 1 5 2 4 3 Caixeiro Viajante Circuito Hamiltoniano

  9. 1 5 2 4 3 Caixeiro Viajante Circuito Hamiltoniano

  10. 1 5 2 4 3 Caixeiro Viajante Circuito Hamiltoniano

  11. A(I)  2 .OPT(I) Caixeiro Viajante Teorema: O algoritmo Tree é 2-aproximado. Prova: Seja OPT(I) o circuito hamiltoniano de custo mínimo. Sabemos que custo(T)OPT(I) e A(I)  2 custo(T)

  12. Caixeiro Viajante • Algoritmo de Christofides: • Obter a árvore geradora de peso mínimo T; • Encontrar o conjunto C de nós de T que têm grau ímpar; • Encontrar o matching perfeito de custo mínimo M sobre o o subgrafo de G induzido por C • Seja G’ = T U M; • Encontrar um circuito euleriano em G’ e um tour neste circuito eliminando repetições;

  13. Caixeiro Viajante

  14. C(M) ½.OPT(I) OPT(I) M1 M2 A(I)  3/2.OPT(I) Caixeiro Viajante Teorema: O algoritmo de Christofides é 3/2-aproximado. Prova: A(I) c(T)+c(M) e c(T)OPT(I) C(M1) + c(M2 )OPT(I)

  15. Caixeiro Viajante Exemplo Ruim 4 6 2 n-1 n 3 5 1 (n-1)/2 4 6 Christofides 2 n-1 n 3 5 1 (n-1)/2 Ótimo, custo=n-1 2 1 n

  16. Set Cover • SET COVER: Dado um conjunto U de elementos e uma coleção F={S1, S2, . . . , Sm} de subconjuntos de U, determinar a família G  F de menor cardinalidade tal que a união dos conjuntos de G é igual a U

  17. Set Cover • Algoritmo Guloso • Enquanto houver algum elemento não coberto • Escolha o conjunto ainda não selecionado que cobre o maior número de elementos de não cobertos

  18. Set Cover • Análise S: primeiro conjunto escolhido. OPT(F’,U’): custo da solução ótima para cobrir U’ utilizando a família F’ custoGr (F,U) = 1 + custoGr(F-{S},U-S) Lema 1. OPT(F,U)>= |U|/|S| Lema 2. OPT(F,U)>=OPT(F-{S},U-S)

  19. Set Cover • Análise. • Hipótese Indutiva. razaoGreedy(F,T)<=H|T| para todo conjunto T com |T|<|U|, onde Hn é o n-ésimo número harmônico

  20. Set Cover • [Feig 98] A menos que P=NP não existe um algoritmo polinomial com razão de aproximação o(log n) para o SET-COVER

  21. Subset Sum • Dado um par (S,t) onde t é um inteiro positivo e S={x1,…,xn} é um conjunto de inteiros não negativos, encontrar S’  S cuja soma de seus elementos seja a maior possível mas não ultrapasse T • O problema é NP-Completo • Redução a partir do 3-SAT

  22. Subset Sum • Algoritmo Exponencial • Seja L+x a lista obtida a partir de uma lista L, aumentando todo elemento de L de x unidades • L=<1,2,5,9>  L+4 =<5,6,9,13>

  23. Subset Sum • Algoritmo Exponencial 1. L0{0} 2. Para i1 até n faça 2.1 Li  MergeLists(Li-1,Li-1+xi) 2.2 Remova todo elemento de Li maior que t 3. Devolva o maior elemento de Ln

  24. Subset Sum • Algoritmo Exponencial • O algoritmo Exponencial retorna o subconjunto de maior soma cuja soma não ultrapassa T • Para obter uma aproximação em tempo polinomial, somas com valores próximos são descartadas

  25. Subset Sum • TRIM(L, ): Esta operação remove o máximo possível de elementos de L de modo que a lista resultante L’satisfaz: • Para todo x  L, existe z L’ tal que (1-)x <= z <= x • Todas as somas de L estão representadas em L’ salvo uma precisão

  26. Subset Sum • Algoritmo Approx-SubsetSum(S,t, ) L0{0} Para i1 até n faça Li  MergeLists(Li-1,Li-1+xi) Li  TRIM(Li,  / n) Remova todo elemento de Li maior que t Devolva z, o maior elemento de Ln

  27. Subset Sum Lema. Seja Pi o conjunto de todas as somas possíveis com os i primeiros números de S. Devemos mostrar que para todo elemento y de Pi existe um elemento wLi , após trimmed, tal que (1- /n)i y <= w <= y

  28. Subset Sum Prova Indução em i. A base é verdadeira. Caso i) y – xi não pertence a Pi-1 Logo, y pertence a Pi-1. Pela hip indutiva, existe w’ em Li-1tal que (1-  /n)i-1 y <= w’ <= y Como a lista Li é ‘trimmed’ existe w em Li tal que (1-  /n) w’ <= w <=w’. Logo w satisfaz a condição requerida

  29. Subset Sum Prova Caso ii) y – xi pertence a Pi-1 Neste caso, existe w’ em Li-1 tal que (1-  /n)i-1 y - xi<=(1-  /n)i-1 (y-xi)<= w’<= y-xi Por outro laso, existe w em Li tal que (1-  /n)(w’+xi)<= w<= w’+xi Logo, w satisfaz as condições requeridas

  30. Subset Sum Teorema. Approx-SubsetSum aproxima o SubsetSum de um fator de (1-) em tempo (n2 ln t) /  Prova. Seja z* a solução ótima. Pelo lema o algoritmo retorna um z tal que (1-/n)nz*<= z<= z*. Como (1-/n)n>(1- ) para n>1, temos que (1-)z*<= z<= z*.

  31. Subset Sum Teorema. Approx-SubsetSum aproxima o SubsetSum de um fator de (1-) em tempo Prova. Depois da operação de TRIM os elementos sucesssivos de Li , w e w’, satisfazem w/w’< 1/(1-/n). Logo, o número máximo de elementos de Li após o TRIM é logt1/(1-/n) <= (n ln t) / 

  32. MAX SAT Entrada • n variáveis booleanas : x1,... Xn • m cláusulas : C1,... Cm • Pesos wi >= 0 para cada clausula Ci Objetivo : Encontrar uma atribuição de verdadeiro/falso para xi que maximize a soma dos pesos das clausulas satisfeitas

  33. MAX SAT Algoritmo randomizado Para i=1,...,n Se random(1/2) = 1 xi true Senão xi  false Com probabilidade ½ dizemos que uma variável é verdadeira ou falsa

  34. Teorema : O algoritmo tem aproximação ½ Prova: Considere a variável aleatória xj xj • 1, se a clausula é satisfeita • 0, caso contrário W: soma dos pesos das clausulas satisfeitas Logo, MAX SAT

  35. MAX SAT E(xj) = 1*Pr(xj=1) + 0*Pr(xj=0) = Pr(clausula j ser satisfeita) Lj : número de literais na clausula j Obs: A clausula j não é satisfeita somente se todos literais forem 0 Cj = (x1 v x3 v x5 v x6) Devemos ter x1=0, x3 = 1, x5 =0 e x6 =0 Probabilidade = (1/2)4 Caso Geral=(1/2)Lj

  36. Probabilidade da clausula j ser satisfeita é 1-(1/2)Lj Logo, 0,5-aproximação Obs: é um limite superior MAX SAT

  37. O que aconteceria se toda clausula tivesse exatamente 3 literais? 7/8-aproximação Hastad 97) Se MAXE3SAT tem aproximação (7/8 + e) para algum e > 0, P = NP MAX SAT

  38. MAX SAT Algoritmo 2 Mudando a probabilidade do sorteio Seja p>= ½ Para i=1,...,n Se random(p) = 1 xi true Senão xi false

  39. MAX SAT Lema: Seja I uma instância do MAXSAT onde nenhuma clausula de tamanho 1 aparece negada. Então, para toda clausula j, Pr[cj ser satisfeita] >= min (p,1-p2) Prova: Caso 1) Lj = 1. Neste caso, Pr[Cj é satisfeita] = p Caso 2) Lj >= 2. Pr[Cj não satisfeita] <= pLj

  40. MAX SAT Pr[cj ser satisfeita] >= 1 - pLj >= 1 – p2 (x1 v x2) como exmplo Pr[Cj ser satisfeita] >= 1-p2

  41. MAX SAT Instância onde cláusula de tamanho 1 aparece negada? Caso 1) Se existe a clausula (xi) e não existe a clausula (xi), podemos fazer com que xi = true com probabilidade 1-p. Recaimos no caso anterior (equivalente a substituir xi por zi)

  42. MAX SAT Instância onde cláusula de tamanho 1 aparece negada? Caso 2) Existe a clausula (xi) e a clausula (xi). Neste caso uma das duas não são satisfeitas. Dessa forma podemos melhorar o limite superior. Se ci=xj e ci’= xj, retiramos min{wi,wi’} do limite superior. Neste caso, devemos sortear com maior probabilidade a clausula de maior peso.

  43. MAX SAT A: cláusulas cujo peso é retirado do limite superior segundo o caso 2 B: cláusulas complementares a A Exemplo: Clausulas: (x1 v x2 v x3) , (x4) , (x4) , (x2 v x3), Pesos :(2, 3,5,4) A = {(x4)} e B = {(x4)}

  44. MAX SAT Maximizando p, temos p=0.618

  45. Modele MAXSAT como PI s.a 0<= zj <= 1 yi{0,1} Ij+ : conjunto das variáveis que aparecem não-negadas em Cj Ij- : conjunto das variáveis que aparecem negadas em Cj MAX SAT

  46. MAX SAT Exemplo (x1 v x2 v  x3) , (x2 v x3) Max w1z1 + w2z2 s.a y1 + y2 + (1 - y3) >= z1 (1 - y2)+ (1 - y3) >= z2 yi {0,1} 0 <= zi<= 1 Resolva a relaxação linear yi {0,1} é substituído por 0 <= y <= 1

  47. MAX SAT y* : solução da relaxação linear Para i=1,...,n Se random(y*) = 1 xi  true Senão xi  false

  48. Fato 1) (Desigualdade das Médias) Seja a1,..., ak reais não negativo,então: Fato 2) Se f é côncava em [l,v], f(l) >= al+b e f(v) >= av+b, então f(x) >= ax + b em [l,v] MAX SAT

  49. Teorema : O algoritmo tem aproximação (1-1/e) @ 0,632 Prova : Considere a clausula Cj da forma: x1 v x2 v ... v xk Pr(Cj é satisfeita) = Como y* é viável, MAX SAT

  50. MAX SAT A última desigualdade segue do fato 2, já que Zj*=0  1 – (1 – (Zj* / k ) ) k = 0 Zj*=1  1 – (1 – (Zj* / k ) ) k = 1-(1-1/k)k e 1 – (1 - (Zj* / k ) )k é côncava Sendo que este resultado vale para qualquer cláusula.

More Related