Caixeiro ViajanteCaixeiro 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
1
K
K
K K
11 1
1
1 K = 1+|V|
Instância do Ciclo Hamiltoniano
Instância do Caixeiro Viajante
Caixeiro ViajanteCaixeiro 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.
Se o algoritmo retorna um ciclo de custo |V| oCiclo 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 ViajanteCaixeiro 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
Caixeiro ViajanteCaixeiro 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.
Caixeiro ViajanteCaixeiro Viajante
5
4 3
2
1Árvore geradora mínimaÁrvore geradora mínima com arestas duplicadas
Caixeiro ViajanteCaixeiro Viajante
5
4 3
2
1Circuito Euleriano
Caixeiro ViajanteCaixeiro Viajante
Circuito Hamiltoniano
5
4 3
2
1
Caixeiro ViajanteCaixeiro Viajante
Circuito Hamiltoniano
5
4 3
2
1
Caixeiro ViajanteCaixeiro Viajante
Circuito Hamiltoniano
5
4 3
2
1
Caixeiro ViajanteCaixeiro 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)
A(I) 2 .OPT(I)
Caixeiro ViajanteCaixeiro 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;
Caixeiro ViajanteCaixeiro Viajante
Caixeiro ViajanteCaixeiro Viajante
Teorema: O algoritmo de Christofides é 3/2-aproximado.
Prova:
A(I) c(T)+c(M) e c(T) OPT(I)
A(I) 3/2.OPT(I)
OPT(I)M1
M2
C(M1) + c(M2 ) OPT(I)C(M)
½.OPT(I)
Caixeiro ViajanteCaixeiro Viajante
1 3 5 n
2 4 6 n-1
(n-1)/2
Exemplo Ruim
Ótimo, custo=n-1
1 n
Caixeiro ViajanteCaixeiro Viajante
2
Christofides
1 3 5 n
2 4 6 n-1
(n-1)/2
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
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
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)
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
||||||||||
)},{()},{(
||/||1
)}},{(|,|/|max{|)},{(1
),(),(
USUGr
GrGr
HHUS
SUSFOPTSUSFcusto
SU
SUSFOPTSUSUSFcusto
UFOPTUFcusto
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
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
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>
Subset Sum
• Algoritmo Exponencial
1. L0{0}
2. Para i1 até n faça2.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
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
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
Subset Sum
• Algoritmo Approx-SubsetSum(S,t, )L0{0}
Para i1 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
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 wLi , após trimmed, tal que
(1- /n)i y <= w <= y
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-1
tal 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
Subset Sum
ProvaCaso 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
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*.
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) /
MAX SATEntrada 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
MAX SAT
Algoritmo randomizadoPara i=1,...,n
Se random(1/2) = 1xi true
Senãoxi false
Com probabilidade ½ dizemos que uma variável é verdadeira ou falsa
MAX SAT
Teorema : O algoritmo tem aproximação ½Prova: Considere a variável aleatória xj
xj 1, se a clausula é satisfeita 0, caso contrárioW: soma dos pesos das clausulas satisfeitas
Logo,)()()( j
jjj
jj xEwxwEwE
jj
j xww
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
MAX SAT
Probabilidade da clausula j ser satisfeita é 1-(1/2)Lj
Logo,
0,5-aproximação
Obs: é um limite superior
22211)( OPT
wwwE j
j
j
L
j
j
j
jw
MAX SAT
O que aconteceria se toda clausula tivesse exatamente 3 literais?
7/8-aproximação
Hastad 97) Se MAXE3SAT tem aproximação (7/8 + para algum > 0, P = NP
jj
jj wwwE
87
211)(
3
MAX SAT
Algoritmo 2Mudando a probabilidade do sorteioSeja p>= ½
Para i=1,...,nSe random(p) = 1
xi true
Senãoxi false
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
MAX SAT
Pr[cj ser satisfeita] >= 1 - pLj >= 1 – p2
(x1 v x2) como exmplo
Pr[Cj ser satisfeita] >= 1-p2
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)
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.
MAX SAT
A: cláusulas cujo peso é retirado do limite superior segundo o caso 2B: cláusulas complementares a AExemplo:
Clausulas: (x1 v x2 v x3) , (x4) , (x4) , (x2 v x3), Pesos :(2, 3,5,4)A = {(x4)} e B = {( x4)}
}1,min{}1,min{
lg][ 2
2
ppww
wpppw
OPTAE
Bii
BAii
Bii
BAii
MAX SAT
Maximizando p, temos p=0.618
MAX SAT
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
j
jj zwmax
jIi
jIi
j zyyjj
)1(
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
MAX SAT
y* : solução da relaxação linear
Para i=1,...,n
Se random(y*) = 1
xi true
Senão
xi false
MAX SAT
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]
k
aaaa
k
ii
kk
121
MAX SAT
Teorema : O algoritmo tem aproximação (1-1/e) 0,632Prova : Considere a clausula Cj da forma:x1 v x2 v ... v xk
Pr(Cj é satisfeita) =
Como y* é viável,
k
k
i
k
ii
i k
yky
1
1
*
* 1)1(1
i
k
ii zy
1
*
**
1
*
11111 j
kk
j
kk
ii
zkk
zkk
yk
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.
MAX SAT
, já que lim(1-1/x)x converge para 1/e.
j
j satisfeitaéjclausulawwE )___Pr()(
jjj
k
kzw
k*111min
OPTe
OPTk
k
k
11111min
Top Related