algoritmos de aproximação - método primal-dual problema da

32
Algoritmos de aproxima¸c˜ ao - M´ etodo primal-dual Problema da transversal m´ ınima Marina Andretta ICMC-USP 5 de novembro de 2015 Baseado no livro Uma introdu¸ ao sucinta a Algoritmos de Aproxima¸ ao, de M. H. Carvalho, M. R. Cerioli, R. Dahab, P. Feofiloff, C. G. Fernandes, C. E. Ferreira, K. S. Guimar˜ aes, F. K. Miyazawa, J. C. Pi˜ na Jr., J. A. R. Soares e Y. Wakabayashi. Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 1 / 32

Upload: others

Post on 01-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos de aproximação - Método primal-dual Problema da

Algoritmos de aproximacao - Metodo primal-dualProblema da transversal mınima

Marina Andretta

ICMC-USP

5 de novembro de 2015

Baseado no livro Uma introducao sucinta a Algoritmos de Aproximacao,de M. H. Carvalho, M. R. Cerioli, R. Dahab, P. Feofiloff, C. G. Fernandes,C. E. Ferreira, K. S. Guimaraes, F. K. Miyazawa, J. C. Pina Jr., J. A. R.

Soares e Y. Wakabayashi.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 1 / 32

Page 2: Algoritmos de aproximação - Método primal-dual Problema da

Problema da transversal mınima

Veremos agora como aplicar o metodo primal-dual para obter umalgoritmo de aproximacao para o problema da transversal mınima.

Seja S uma colecao finita de subconjuntos de um conjunto finito E .

Um subconjunto T de E e uma transversal de S se T ∩ S e nao-vazio paracada S em S.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 2 / 32

Page 3: Algoritmos de aproximação - Método primal-dual Problema da

Problema da transversal mınima

O problema da transversal mınima (hitting set problem) consiste noseguinte:

Problema MinTC(E ,S, c): Dados um conjunto finito E , uma colecaofinita S de subconjuntos de E e um custo ce em Q≥ para cada e em E ,encontrar uma transversal T de S que minimize c(T ).

As vezes, dizemos que c(T ) e o custo da transversal T . Com isso, oproblema consiste em encontrar uma transversal de S de custo mınimo.

Diversos problemas combinatorios sao casos particulares do MinTC, comoo do caminho mınimo, da arvore geradora mınima e do corte mınimo.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 3 / 32

Page 4: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Considere o grafo G dado na figura.

1

2 3

4 5

a

db

ce

f

Definimos E e S como os conjuntos de vertices e arestas de G , ou seja,E = {1, 2, 3, 4, 5} e S = {{1, 2}, {1, 4}, {2, 4}, {2, 3}, {3, 5}, {4, 5}}.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 4 / 32

Page 5: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Definimos o custo ce = 1 para elementos e ∈ {1, 2, 3, 4} e c5 = 5.

Neste caso, o problema de encontrar uma transversal mınima T de S eequivalente a encontrar uma cobertura mınima de vertices de G .

Uma transversal mınima e T = {1, 3, 4}, com custo c(T ) = 3.

1

2 3

4 5

a

db

ce

f

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 5 / 32

Page 6: Algoritmos de aproximação - Método primal-dual Problema da

Programa primal

O seguinte programa linear e uma relaxacao de MinTC(E ,S, c):encontrar um vetor x indexado por E que

minimize cx

sob as restricoes x(S) ≥ 1, para cada S em S,

xe ≥ 0, para cada e em E .

(1)

Note que o vetor caracterıstico x de qualquer transversal T e um vetorviavel de (1) de custo c(T ).

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 6 / 32

Page 7: Algoritmos de aproximação - Método primal-dual Problema da

Programa dual

O correspondente programa dual consiste em encontrar um vetor yindexado por S que

maximize y(S)

sob as restricoes∑

S :e∈S yS ≤ ce , para cada e em E ,

yS ≥ 0, para cada S em S.

(2)

Note que o vetor nulo e viavel em (2).

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 7 / 32

Page 8: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Para o exemplo apresentado, temos que o programa linear primal e dadopor:

minimizar x1 + x2 + x3 + x4 + 5x5sob as restricoes x1 + x2 ≥ 1,

x1 + x4 ≥ 1,x2 + x4 ≥ 1,x2 + x3 ≥ 1,x3 + x5 ≥ 1,x4 + x5 ≥ 1,

x1, x2, x3, x4, x5 ≥ 0.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 8 / 32

Page 9: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

E o programa linear dual e dado por:

maximizar ya + yb + yc + yd + ye + yfsob as restricoes ya + yb ≤ 1,

ya + yc + yd ≤ 1,yd + ye ≤ 1,

yb + yc + yf ≤ 1,ye + yf ≤ 5,

ya, yb, yc , yd , ye , yf ≥ 0.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 9 / 32

Page 10: Algoritmos de aproximação - Método primal-dual Problema da

Aproximacao primal-dual

Tome β := maxS∈S |S | e α = 1. Seja y uma solucao viavel do problemadual (2).

Sejam ainda

I (y) := {S ∈ S : yS = 0} e J(y) := {e ∈ E :∑S:e∈S

yS ≥ ce}.

O problema restrito aproximado relativo a y associado ao problema (1),consiste em encontrar um vetor x indexado por E tal que

x(S) ≥ 1, para cada S em S,x(S) ≤ β, para cada S em S \ I (y),

xe ≥ 0, para cada e em J(y),

xe = 0, para cada e em E \ J(y).

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 10 / 32

Page 11: Algoritmos de aproximação - Método primal-dual Problema da

Aproximacao primal-dual

Como xe = 0 para todo e em E \ J(y), podemos trocar S por J(y) ∩ Snas duas primeiras desigualdades.

Assim, esse problema pode ser reescrito como

x(J(y) ∩ S) ≥ 1, para cada S em S,x(J(y) ∩ S) ≤ β, para cada S em S \ I (y),

xe ≥ 0, para cada e em J(y),

xe = 0, para cada e em E \ J(y).

(3)

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 11 / 32

Page 12: Algoritmos de aproximação - Método primal-dual Problema da

Aproximacao primal-dual

Se o vetor caracterıstico x de J(y) e viavel em (3), entao J(y) e umatransversal de S.

Se J(y) nao e uma transversal e evidente que o sistema (3) e inviavel.

Esta observacao e suficiente para obter uma solucao viavel do seguinteproblema restrito aproximado dual: encontrar um vetor y ′ indexado por Stal que

y ′(S) > 0,∑S:e∈S y

′S ≤ 0, para cada e em J(y),

y ′S ≥ 0, para cada S em I (y).

(4)

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 12 / 32

Page 13: Algoritmos de aproximação - Método primal-dual Problema da

Aproximacao primal-dual

Se J(y) ∩ R e vazio para algum R, entao o vetor caracterıstico y ′ de {R}e uma solucao de (4).

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 13 / 32

Page 14: Algoritmos de aproximação - Método primal-dual Problema da

Algoritmo MinTC-BE

O algoritmo resultante da aplicacao do metodo de aproximacaoprimal-dual ao MinTC e devido a Bar-Yehuda e Even e foi originalmenteconcebido para o problema da cobertura mınima por vertices.

O algoritmo MinTC-BE recebe um conjunto finito E , uma colecao S desubconjuntos nao-vazios de E e um custo ce em Q≥ para cada e em E edevolve uma transversal J de S tal que c(J) ≤ βopt(E ,S, c).

A descricao do algoritmo supoe que cada subconjunto de S nao e vazio, eportanto o problema MinTC(E ,S, c) e viavel.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 14 / 32

Page 15: Algoritmos de aproximação - Método primal-dual Problema da

Algoritmo MinTC-BE

Algoritmo MinTC-BE(E ,S, c):

1 faca J ← {e ∈ E : ce = 0};

2 para cada S em S faca yS ← 0;

3 enquanto existe R em S tal que J ∩ R = ∅, faca:

4 seja y ′ o vetor caracterıstico de {R};

5 seja θ o maior numero tal que

6∑

S :e∈S(y + θy ′)S ≤ ce para cada elemento e de R;

7 seja f um elemento de R tal que∑

S :f ∈S(y + θy ′)S = cf ;

8 faca y ← y + θy ′;

9 faca J ← J ∪ {f };

10 devolva J.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 15 / 32

Page 16: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Vamos simular a execucao do algoritmo MinTC-BE para a instanciadada no exemplo. Lembre-se que, para esta instancia, E = {1, 2, 3, 4, 5},S = {{1, 2}, {1, 4}, {2, 4}, {2, 3}, {3, 5}, {4, 5}} e ce = 1 parae ∈ {1, 2, 3, 4} e c5 = 5.

Apos a execucao das linhas 1 e 2 do algoritmo, temos J = ∅ eya = yb = yc = yd = ye = yf = 0.

Tomando R = {1, 2}, temos que J ∩ R = ∅.

Na linha 4, definimos y ′a = 1 e y ′b = y ′c = y ′d = y ′e = y ′f = 0.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 16 / 32

Page 17: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Nas linhas 5 e 6, precisamos definir o maior θ tal que

ya + θy ′a + yb + θy ′b ≤ 1

e

ya + θy ′a + yc + θy ′c + yd + θy ′d ≤ 1,

restricoes correspondentes aos elementos de R.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 17 / 32

Page 18: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Temos entao que encontrar o maior θ que satisfaz

0 + θ1 + 0 + θ0 = θ ≤ 1

e

0 + θ1 + 0 + θ0 + 0 + θ0 = θ ≤ 1.

Ou seja, θ = 1.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 18 / 32

Page 19: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Como as restricoes correspondentes aos elementos 1 e 2 sao satisfeitas porigualdade para este valor de θ, vamos definir f = 1 na linha 7.

Na linha 8, definimos ya = 0 + θ1 = 1 e, apos a linha 9, J = {1}.Voltamos a linha 3 do algoritmo.

Tomando R = {2, 4}, temos que J ∩ R = ∅.

Na linha 4, definimos y ′c = 1 e y ′a = y ′b = y ′d = y ′e = y ′f = 0.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 19 / 32

Page 20: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Nas linhas 5 e 6, precisamos definir o maior θ tal que

ya + θy ′a + yc + θy ′c + yd + θy ′d ≤ 1,

e

yb + θy ′b + yc + θy ′c + yf + θy ′f ≤ 1,

restricoes correspondentes aos elementos de R.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 20 / 32

Page 21: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Temos entao que encontrar o maior θ que satisfaz

1 + θ0 + 0 + θ1 + 0 + θ0 = 1 + θ ≤ 1

e

0 + θ0 + 0 + θ1 + 0 + θ0 = θ ≤ 1.

Ou seja, θ = 0.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 21 / 32

Page 22: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Como a restricao correspondente ao elemento 2 e satisfeita por igualdadepara este valor de θ, vamos definir f = 2 na linha 7.

Na linha 8, mantemos os valores de y e, apos a linha 9, J = {1, 2}.Voltamos a linha 3 do algoritmo.

Tomando R = {3, 5}, temos que J ∩ R = ∅.

Na linha 4, definimos y ′e = 1 e y ′a = y ′b = y ′c = y ′d = y ′f = 0.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 22 / 32

Page 23: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Nas linhas 5 e 6, precisamos definir o maior θ tal que

yd + θy ′d + ye + θy ′e ≤ 1,

e

ye + θy ′e + yf + θy ′f ≤ 5,

restricoes correspondentes aos elementos de R.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 23 / 32

Page 24: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Temos entao que encontrar o maior θ que satisfaz

0 + θ0 + 0 + θ1 = θ ≤ 1

e

0 + θ1 + 0 + θ0 = θ ≤ 5.

Ou seja, θ = 1.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 24 / 32

Page 25: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Como a restricao correspondente ao elemento 3 e satisfeita por igualdadepara este valor de θ, vamos definir f = 3 na linha 7.

Na linha 8, atualizamos ye = 0 + θ1 = 1 e, apos a linha 9, J = {1, 2, 3}.Voltamos a linha 3 do algoritmo.

Tomando R = {4, 5}, temos que J ∩ R = ∅.

Na linha 4, definimos y ′f = 1 e y ′a = y ′b = y ′c = y ′d = y ′e = 0.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 25 / 32

Page 26: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Nas linhas 5 e 6, precisamos definir o maior θ tal que

yb + θy ′b + yc + θy ′c + yf + θy ′f ≤ 1,

e

ye + θy ′e + yf + θy ′f ≤ 5,

restricoes correspondentes aos elementos de R.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 26 / 32

Page 27: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Temos entao que encontrar o maior θ que satisfaz

0 + θ0 + 0 + θ0 + 0 + θ1 = θ ≤ 1

e

1 + θ0 + 0 + θ1 = 1 + θ ≤ 5.

Ou seja, θ = 1.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 27 / 32

Page 28: Algoritmos de aproximação - Método primal-dual Problema da

Exemplo

Como a restricao correspondente ao elemento 4 e satisfeita por igualdadepara este valor de θ, vamos definir f = 4 na linha 7.

Na linha 8, atualizamos yf = 0 + θ1 = 1 e, apos a linha 9, J = {1, 2, 3, 4}.Voltamos a linha 3 do algoritmo.

Como nao ha mais nenhum subconjunto R de S tal que R ∩ J = ∅, oalgoritmo devolve J = {1, 2, 3, 4} como uma transversal, que tem custoc(T ) = 4.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 28 / 32

Page 29: Algoritmos de aproximação - Método primal-dual Problema da

Algoritmo MinTC-BE

Teorema: O algoritmo MinTC-BE e uma β-aproximacao polinomialpara o MinTC(E ,S, c), com β := maxS∈S |S |.

Demonstracao: Durante a execucao do algoritmo, y e uma solucao viaveldo programa linear dual (2).

E claro que o conjunto J devolvido pelo algoritmo e uma transversal de S.

Alem disso, pela escolha de β, e claro que |J ∩ S | ≤ β para cada S em S.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 29 / 32

Page 30: Algoritmos de aproximação - Método primal-dual Problema da

Algoritmo MinTC-BE

Logo, se x e o vetor caracterıstico de J, temos

c(J) = cx .

Pelo lema das folgas aproximadas,

c(J) = cx ≤ βyb.

Seja x uma solucao otima de (1). Pelo teorema fraco da dualidade temos

c(J) ≤ βyb ≤ βcx ≤ βopt(E ,S, c).

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 30 / 32

Page 31: Algoritmos de aproximação - Método primal-dual Problema da

Algoritmo MinTC-BE

O valor de |J| cresce a cada execucao da linha 9. Assim, o numero deexecucoes das linhas 3 a 9 do algoritmo e no maximo |E |.

Ademais, a execucao de cada linha consome tempo O(|E ||S|).

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 31 / 32

Page 32: Algoritmos de aproximação - Método primal-dual Problema da

Algoritmo MinTC-BE

A transversal J devolvida pelo algoritmo pode nao ser minimal.

E possıvel que exista uma transversal propriamente contida em J de customenor que c(J).

Um pos-processamento simples pode extrair de J uma transversal minimal.

Apesar de util do ponto de vista pratico, este pos-processamento mas naoresulta em uma melhor razao de aproximacao para o algoritmoMinTC-BE.

Marina Andretta (ICMC-USP) sme0216 e 5826 5 de novembro de 2015 32 / 32