Beruflich Dokumente
Kultur Dokumente
Caixeiro Viajante
K
K
1
K
K
1
1
1
Instncia do Ciclo
Hamiltoniano
Instncia do
Caixeiro Viajante
K = 1+|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.
Caixeiro Viajante
Caixeiro Viajante
Problema: TSP sobre grafo G=(V,E) que satisfaz a
desigualdade triangular:
Caixeiro Viajante
1
Caixeiro Viajante
1
Circuito Euleriano
Caixeiro Viajante
1
Circuito Hamiltoniano
Caixeiro Viajante
1
Circuito Hamiltoniano
Caixeiro Viajante
1
Circuito Hamiltoniano
Caixeiro Viajante
Teorema: O algoritmo Tree 2-aproximado.
Prova: Seja OPT(I) o circuito hamiltoniano de custo mnimo.
Caixeiro Viajante
Algoritmo de Christofides:
Obter a rvore geradora de peso mnimo T;
Encontrar o conjunto C de ns de T que tm grau mpar;
Encontrar o matching perfeito de custo mnimo 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 repeties;
Caixeiro Viajante
Caixeiro Viajante
Teorema: O algoritmo de Christofides 3/2-aproximado.
Prova:
OPT(I)
M1
M2
Caixeiro Viajante
Exemplo Ruim
n-1
(n-1)/2
Christofides
1
timo, custo=n-1
n-1
5
(n-1)/2
Set Cover
SET COVER: Dado um conjunto U de
Set Cover
Algoritmo Guloso
Enquanto houver algum elemento no coberto
Escolha o conjunto ainda no selecionado que cobre o maior
nmero de elementos de no cobertos
Set Cover
Anlise
S: primeiro conjunto escolhido.
OPT(F,U): custo da soluo tima para cobrir U utilizando a famlia F
custoGr (F,U) = 1 + custoGr(F-{S},U-S)
Set Cover
Anlise.
Hiptese Indutiva. razaoGreedy(F,T)<=H|T|
para todo conjunto T com |T|<|U|, onde Hn o
n-simo nmero harmnico
custoGr ( F ,U )
1 custoGr ( F {S},U S )
OPT ( F ,U )
max{|U | / | S |, OPT ( F {S},U S )}
custoGr ( F {S},U S ) | S |
1
H |U ||S | H |U |
| U | / | S | OPT ( F {S},U S )
|U |
Set Cover
[Feig 98] A menos que P=NP no existe
um algoritmo polinomial com razo de
aproximao o(log n) para o SET-COVER
Subset Sum
Dado um par (S,t) onde t um inteiro
positivo e S={x1,,xn} um conjunto de
inteiros no negativos, encontrar S S
cuja soma de seus elementos seja a maior
possvel mas no ultrapasse T
O problema NP-Completo
Reduo a partir do 3-SAT
Subset Sum
Algoritmo Exponencial
Seja L+x a lista obtida a partir de uma lista L,
aumentando todo elemento de L de x
unidades
Subset Sum
Algoritmo Exponencial
1. L0{0}
2. Para i1 at n faa
2.1 Li MergeLists(Li-1,Li-1+xi)
2.2 Remova todo elemento de Li maior que t
Subset Sum
Algoritmo Exponencial
O algoritmo Exponencial retorna o
subconjunto de maior soma cuja soma no
ultrapassa T
Para obter uma aproximao em tempo
polinomial, somas com valores prximos so
descartadas
Subset Sum
TRIM(L, ): Esta operao remove o
mximo possvel de elementos de L de
modo que a lista resultante Lsatisfaz:
Para todo x L, existe z L tal que
(1-)x <= z <= x
Subset Sum
Algoritmo Approx-SubsetSum(S,t, )
L0{0}
Para i1 at n faa
Li MergeLists(Li-1,Li-1+xi)
Li TRIM(Li, / n)
Remova todo elemento de Li maior que t
Subset Sum
Lema. Seja Pi o conjunto de todas as somas
possveis com os i primeiros nmeros de
S. Devemos mostrar que para todo
elemento y de Pi existe um elemento wLi
, aps trimmed, tal que
(1- /n)i y <= w <= y
Subset Sum
Prova
Subset Sum
Prova
Subset Sum
Teorema. Approx-SubsetSum aproxima o SubsetSum de
um fator de (1-) em tempo (n2 ln t) /
Prova.
Seja z* a soluo 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*.
Subset Sum
Teorema. Approx-SubsetSum aproxima o SubsetSum de
um fator de (1-) em tempo
Prova.
Depois da operao de TRIM os elementos sucesssivos de
Li , w e w, satisfazem
w/w< 1/(1-/n).
Logo, o nmero mximo de elementos de Li aps o TRIM
logt1/(1-/n) <= (n ln t) /
MAX SAT
Entrada
m clusulas : C1,... Cm
MAX SAT
Algoritmo randomizado
Para i=1,...,n
Se random(1/2) = 1
xi true
Seno
xi false
Com probabilidade dizemos que uma varivel
verdadeira ou falsa
MAX SAT
Teorema : O algoritmo tem aproximao
Prova: Considere a varivel aleatria xj
xj
1, se a clausula satisfeita
0, caso contrrio
W: soma dos pesos das clausulas satisfeitas
w wj x j
Logo,
E (w) E ( w j x j ) w j E ( x j )
j
MAX SAT
E(xj)
= 1*Pr(xj=1) + 0*Pr(xj=0)
= Pr(clausula j ser satisfeita)
Probabilidade = (1/2)4
Caso Geral=(1/2)Lj
MAX SAT
Probabilidade da clausula j ser satisfeita 1-(1/2)Lj
Logo,
wj
Lj
OPT
1 j
E ( w) w j 1
2
2
j
2
0,5-aproximao
Obs:
w
j
um limite superior
MAX SAT
O que aconteceria se toda clausula tivesse exatamente 3
literais?
1 3 7
E ( w) w j 1 w j
j
2 8 j
7/8-aproximao
Hastad 97) Se MAXE3SAT tem aproximao (7/8 + )
para algum > 0, P = NP
MAX SAT
Algoritmo 2
Se random(p) = 1
xi true
Seno
xi false
MAX SAT
Lema: Seja I uma instncia do MAXSAT onde nenhuma
clausula de tamanho 1 aparece negada. Ento, 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 no satisfeita] <= pLj
MAX SAT
Pr[cj ser satisfeita] >= 1 - pLj >= 1 p2
(x1 v x2) como exmplo
Pr[Cj ser satisfeita] >= 1-p2
MAX SAT
Instncia onde clusula de tamanho 1 aparece negada?
Caso 1) Se existe a clausula (xi) e no existe a clausula
(xi), podemos fazer com que xi = true com
probabilidade 1-p. Recaimos no caso anterior
(equivalente a substituir xi por zi)
MAX SAT
Instncia onde clusula de tamanho 1 aparece negada?
Caso 2) Existe a clausula ( xi) e a clausula (xi). Neste
caso uma das duas no so 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
probabilidade a clausula de maior peso.
maior
MAX SAT
A: clusulas cujo peso retirado do limite superior segundo o caso 2
B: clusulas complementares a A
Exemplo:
Clausulas: (x1 v x2 v x3) , (x4) , (x4) , (x2 v x3),
A = {(x4)} e B = {( x4)}
2
w
min{
p
,
1
p
} p wi
i
E[ A lg] iA B
OPT
iB
w w
iA B
iB
min{ p,1 p 2 }
MAX SAT
MAX SAT
Modele MAXSAT como PI
max w j z j
j
s.a
y (1 y ) z
iI j
iI j
0<= zj <= 1
yi {0,1}
MAX SAT
Exemplo (x1 v x2 v x3) , ( x2 v x3)
y1 + y2 + (1 - y3) >= z1
(1 - y2)+ (1 - y3) >= z2
yi {0,1}
0 <= zi <= 1
Resolva a relaxao linear
yi {0,1} substitudo por 0 <= y <= 1
MAX SAT
Se random(y*) = 1
xi true
Seno
xi false
MAX SAT
Fato 1) (Desigualdade das Mdias)
Seja a1,..., ak reais no negativo,ento:
k
ai
a1a2 ak i 1
k
Fato 2) Se f cncava em [l,v], f(l) >= al+b e f(v) >= av+b, ento
f(x) >= ax + b em [l,v]
MAX SAT
Teorema : O algoritmo tem aproximao (1-1/e) @ 0,632
Prova : Considere a clausula Cj da forma:
*
x1 v x2 v ... v xk
k y i
k
*
i 1
(
1
y
)
i
Pr(Cj satisfeita) =
k
i 1
k
*
y
Como y* vivel, i zi
i 1
k y *i
i 1
1
k
* k
z
1
j
1
1 1 z *j
k
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 cncava
Sendo que este resultado vale para qualquer clusula.
MAX SAT
E (w) w j Pr(clausula _ j _ _ satisfeita)
j
1 k
min 1 1 w j z * j
k
k j
1 k
1
min 1 1 OPT 1 OPT
k
e
k