algoritmos de aproximação - problema de cobertura por conjuntos · algoritmos de aproxima˘c~ao -...

33
Algoritmos de aproxima¸c˜ ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro 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 22 de setembro de 2015 1 / 33

Upload: others

Post on 30-Jul-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmos de aproximacao - Problema de cobertura porconjuntos

Marina Andretta

ICMC-USP

22 de setembro 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 22 de setembro de 2015 1 / 33

Page 2: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Problema de cobertura mınima por conjuntos

Dada uma colecao finita S de conjuntos finitos, dizemos que umasubcolecao T de S cobre um conjunto finito E se todo elemento de Epertence a algum conjunto de T .

Neste caso, dizemos tambem que T e uma cobertura de E .

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 2 / 33

Page 3: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Problema de cobertura mınima por conjuntos

O problema da cobertura mınima por conjuntos (minimum set coverproblem) consiste no seguinte:

Problema MinCC(E ,S, c): Dados um conjunto finito E , uma colecaofinita S de conjuntos finitos que cobre E e um custo cS em Q≥ para cadaS em S , encontrar uma cobertura T de E que minimize c(T ).

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 3 / 33

Page 4: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Problema de cobertura mınima por conjuntos

A exigencia de que S cubra E serve apenas para excluir instancias inviaveisdo problema.

Chamamos o numero c(T ) de custo da cobertura T .

Assim, o problema consiste em encontrar uma cobertura de custo mınimo.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 4 / 33

Page 5: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo 1

Um caso particular o problema MinCC e o problema de cobertura porarestas.

Neste problema, dado um grafo G = (V ,A), e um custo ca em Q≥ paracada aresta a ∈ A, desejamos encontrar um sub-conjunto T de arestas deA de custo mınimo de forma que todo vertice de V seja atingido por aomenos uma aresta de T .

Neste caso, dado G = (V ,A), temos que E e o conjunto de vertices de umgrafo (E = V ), S e o conjunto de arestas (S = A) e cS e o custo dasarestas (cS = ca).

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 5 / 33

Page 6: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo 1

Neste exemplo, E = {a, b, c , d , e},S = {{a, b}, {a, d}, {b, c}, {b, d}, {c , e}, {d , e}} e cS e dado pelosnumeros nas arestas da figura.

a

b c

d e

1

24

2

1

8

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 6 / 33

Page 7: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo 1

Uma possıvel cobertura (minimal) e T = {{a, d}, {d , e}, {b, c}}, comcusto c(T ) = 4 + 8 + 2 = 14.

a

b c

d e

1

24

2

1

8

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 7 / 33

Page 8: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo 1

A cobertura mınima, neste caso, e T = {{a, b}, {c , e}, {b, d}}, com custoc(T ) = 1 + 1 + 2 = 4.

a

b c

d e

1

24

2

1

8

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 8 / 33

Page 9: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo 2

Um outro problema que pode ser escrito como um problema MinCC e oproblema de cobertura por vertices.

Neste problema, dado um grafo G = (V ,A), e um custo cv em Q≥ paracada vertice v ∈ V , desejamos encontrar um sub-conjunto T de verticesde V de custo mınimo de forma que toda aresta de A seja incidente a pelomenos um vertice T .

Neste caso, dado G = (V ,A), temos que E e o conjunto de arestas de umgrafo (E = A), cS e o custo dos vertices (cS = cv ) e, para cada v ∈ V ,temos um conjunto S ∈ S formado por todas arestas de A incidentes em v .

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 9 / 33

Page 10: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo 2

Neste exemplo, E = {a, b, c , d , e, f },S = {{a, b}, {a, c , d}, {d , e}, {b, c , f }, {e, f }} e cS e 1 para todo S ∈ S.

1

2 3

4 5

a

db

ce

f

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 10 / 33

Page 11: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo 2

Uma cobertura mınima e T = {{a, b}, {a, c , d}, {e, f }}, correspondenteao conjunto de vertices {1, 2, 5}, com custo c(T ) = 3.

1

2 3

4 5

a

db

ce

f

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 11 / 33

Page 12: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo 2

Outra cobertura mınima e T = {{a, b}, {d , e}, {b, c , f }}, correspondenteao conjunto de vertices {1, 3, 4}, com custo c(T ) = 3.

1

2 3

4 5

a

db

ce

f

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 12 / 33

Page 13: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Problema de cobertura mınima por conjuntos

O MinCC e NP-difıcil mesmo quando cada conjunto em S nao tem maisque tres elementos.

Uma estrategia gulosa simples para o problema consiste em selecionarrepetidamente o conjunto em S que e mais “promissor” em termos decusto com relacao ao numero de elementos ainda nao cobertos que elecontem.

Essa estrategia da origem ao seguinte algoritmo, proposto por Chvatal,que apresentamos em sua versao recursiva.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 13 / 33

Page 14: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao

Algoritmo MinCC-Chvatal(E ,S, c):

1 se E = ∅

2 entao devolva ∅;

3 senao seja Z em S tal que cZ/|Z ∩ E | e mınimo;

4 faca E ′ ← E \ Z ;

5 faca S ′ ← {S ∈ S : S ∩ E ′ 6= ∅};

6 seja c ′ a restricao de c a S ′;

7 faca T ′ ←MinCC-Chvatal(E ′,S ′, c ′);

8 devolva {Z} ∪ T ′.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 14 / 33

Page 15: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Considere a instancia do exemplo 2. Temos E0 = {a, b, c , d , e, f },S0 = {{a, b}, {a, c , d}, {d , e}, {b, c , f }, {e, f }} e cS e 1 para todo S ∈ S0.

1

2 3

4 5

a

db

ce

f

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 15 / 33

Page 16: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Como E0 nao e vazio, iremos para a linha 3 do algoritmo.

Temos que

Z {a, b} {a, c , d} {d , e} {b, c , f } {e, f }cZ|Z∩E0|

12

13

12

13

12

Vamos escolher Z0 = {a, c , d}.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 16 / 33

Page 17: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Definimos

E ′ ← E0 \ Z0 = {b, e, f },

S ′ ← {S ∈ S0 : S ∩ E ′ 6= ∅} = {{a, b}, {d , e}, {b, c , f }, {e, f }},

e chamamos o algoritmo novamente com estes parametros.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 17 / 33

Page 18: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Temos agora E1 = {b, e, f }, S1 = {{a, b}, {d , e}, {b, c , f }, {e, f }} e cS e1 para todo S ∈ S1.

1

2 3

4 5

a

db

ce

f

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 18 / 33

Page 19: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Como E1 nao e vazio, iremos para a linha 3 do algoritmo.

Temos que

Z {a, b} {d , e} {b, c , f } {e, f }cZ|Z∩E1| 1 1 1

212

Vamos escolher Z1 = {b, c , f }.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 19 / 33

Page 20: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Definimos

E ′ ← E1 \ Z1 = {e},

S ′ ← {S ∈ S1 : S ∩ E ′ 6= ∅} = {{d , e}, {e, f }},

e chamamos o algoritmo novamente com estes parametros.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 20 / 33

Page 21: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Temos agora E2 = {e}, S2 = {{d , e}, {e, f }} e cS e 1 para todo S ∈ S2.

1

2 3

4 5

a

db

ce

f

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 21 / 33

Page 22: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Como E2 nao e vazio, iremos para a linha 3 do algoritmo.

Temos que

Z {d , e} {e, f }cZ|Z∩E2| 1 1

Vamos escolher Z2 = {d , e}.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 22 / 33

Page 23: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Definimos

E ′ ← E2 \ Z2 = ∅,

S ′ ← {S ∈ S2 : S ∩ E ′ 6= ∅} = ∅,

e chamamos o algoritmo novamente com estes parametros.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 23 / 33

Page 24: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Exemplo

Temos agora E3 = S3 = ∅. Assim, o algoritmo termina e devolve acobertura T = {Z0} ∪ {Z1} ∪ {Z2} = {{a, c , d}, {b, c , f }, {d , e}}, quecorresponde aos vertices {2, 3, 4}.

1

2 3

4 5

a

db

ce

f

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 24 / 33

Page 25: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao

Claramente o algoritmo devolve uma cobertura de E .

Ha uma boa delimitacao inferior para o valor otimo do problemaMinCC(E ,S, c) relacionada ao algoritmo.

Suponha que Z e um elemento de S tal que

cZ|Z ∩ E |

≤ cS|S ∩ E |

para todo S em S.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 25 / 33

Page 26: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao

Entao, para qualquer cobertura T de E ,

cZ|Z∩E | |E | ≤

cZ|Z∩E |

∑S∈T |S ∩ E |

≤∑

S∈TcS|S∩E | |S ∩ E |

=∑

S∈T cS

= c(T ).

Como esta relacao vale inclusive para a cobertura otima T ∗, temos que

c(T ∗) = opt(E ,S, c) ≥ |E | cZ|Z ∩ E |

.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 26 / 33

Page 27: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao - teorema

Seja Hn o numero harmonico Hn := 1 + 12 + 1

3 + ...+ 1n .

Teorema: O algoritmo MinCC-Chvatal e uma Hn-aproximacaopolinomial para o MinCC(E ,S, c) , com n := |E |.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 27 / 33

Page 28: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao - demonstracao

Demonstracao: Vamos mostrar que o algoritmo e uma Hn-aproximacaopor inducao em |E |.

Se |E | = 0, entao o algoritmo devolve o conjunto vazio, que e umacobertura de custo mınimo.

Vejamos agora o caso em que |E | > 0 e, portanto, |S| > 0.

Defina n := |E | e k := |Z ∩ E |, com Z o conjunto escolhido na linha 3 doalgoritmo.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 28 / 33

Page 29: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao - demonstracao

Como |E ′| = n − k < |E |, pela hipotese de inducao temos que a colecaoT ′ produzida na linha 7 do algoritmo e uma cobertura de E ′ e que

c ′(T ′) ≤ Hn−kopt(E ′,S ′, c ′).

Alem disso, como toda cobertura de E contem uma cobertura de E ′

formada por conjuntos de S ′, temos que

opt(E ′,S ′, c ′) ≤ opt(E ,S, c).

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 29 / 33

Page 30: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao - demonstracao

Assim,

c({Z} ∪ T ′) = cZ + c ′(T ′) ≤ cZ + Hn−kopt(E ,S, c).

Como opt(E ,S, c) ≥ |E | cZ|Z∩E | = n

k cZ ,

c({Z} ∪ T ′) ≤ knopt(E ,S, c) + Hn−kopt(E ,S, c)

≤(1n + 1

n−1 + ...+ 1n−k+1 + Hn−k

)opt(E ,S, c)

= Hnopt(E ,S, c).

Ademais, o algoritmo e polinomial, ja que consome tempo O(|E ||S|).

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 30 / 33

Page 31: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao

O algoritmo MinCC-Chvatal pode produzir coberturas de custoarbitrariamente proximo de Hnopt(E ,S, c), onde n := |E |.

Mais precisamente, para cada ε positivo, existe uma instancia do problemapara a qual o algoritmo produz uma cobertura de custoHnopt(E ,S, c)/(1 + ε).

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 31 / 33

Page 32: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao

Basta tomar E := {1, ..., n}, S := {E , {1}, ..., {n}}, cE = 1 + ε ec{i} := 1/i , para cada i .

Uma cobertura de custo mınimo e {E} e o custo desta cobertura e 1 + ε.

Por outro lado, o algoritmo MinCC-Chvatal produz a cobertura{{1}, ..., {n}}, cujo custo e Hn.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 32 / 33

Page 33: Algoritmos de aproximação - Problema de cobertura por conjuntos · Algoritmos de aproxima˘c~ao - Problema de cobertura por conjuntos Marina Andretta ICMC-USP 22 de setembro de

Algoritmo de aproximacao

Assintoticamente, o algoritmo MinCC-Chvatal tem a melhor razaopossıvel para o problema MinCC, pois sabe-se que Hn ≤ 1 + ln(n) eexiste uma constante positiva α para a qual nao existe algoritmo comrazao de aproximacao menor que α ln(n), com n := |E |, para oMinCC(E ,S, c), a menos que P = NP.

Marina Andretta (ICMC-USP) sme0216 e 5826 22 de setembro de 2015 33 / 33