Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf ·...

24

Transcript of Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf ·...

Page 1: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Exame de Quali�cação

Mestrado em Ciência da Computação

Algoritmos para o problema da árvore de Steiner com

coleta de prêmios

Camila Mari Matsubara

Orientador: Prof. Dr. José Coelho de Pina

31 de julho de 2011

Índice

1 Introdução 2

2 Árvore de Steiner 4

3 Árvore de Steiner com coleta de prêmios 13

4 Algoritmo de Goemans e Williamson 14

5 Algoritmo GW não-enraizado 16

6 Algoritmo de ABHK 19

7 Tópicos estudados e projeto 21

Page 2: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

1 Introdução

O problema da árvore de Steiner consiste em, dado um grafo com custo nasarestas e um conjunto de vértices denominados terminais, determinar um subgrafoconexo que contém todos os vértices terminais e cuja soma dos custos das arestasseja a menor possível. Ele pode conter outros vértices além dos terminais. Estesubgrafo de custo mínimo existe para qualquer grafo conexo dado, e podemos suporque é uma árvore quando os custos das arestas são positivos.

O nome do problema é uma homenagem ao matemático suíço Jakob Steiner, degrande in�uência e destaque no estudo de geometria. O problema surgiu no iníciodo século 19, a partir da ideia de conectar três aldeias com um sistema de estradasde comprimento mínimo. Sua descrição inicial era:

Em um dado triângulo acutângulo ABC, localizar um ponto P cuja somadas distâncias a A, B e C seja mínima.

O problema descrito foi pela primeira vez denominado problema de Steiner nolivro What is Mathematics? em 1941, de R. Courant e H. Robbins [5].

Os progressos no problema da árvore de Steiner foram rápidos desde 1990,quando Zelikovsky [18] apresentou o fator de aproximação de 1,833 � o primeiroalgoritmo a melhorar o ingênuo fator 2. Berman e Ramaiyer [2] diminuíram ofator para 1,746 em 1992. Zelikovsky alcançou uma 1,693-aproximação em 1997,seguida da melhoria de Promel e Steger para 1,667 e de Karpinski e Zelikovsky [14]para 1,644 em 1997. Em 1999, Hougardy e Promel [12] apresentaram uma1,598-aproximação. O melhor fator de aproximação encontrado para o problema daárvore de Steiner é 1,55 devido a Robins e Zelikovsky [16], em 2005.

No problema da árvore de Steiner com coleta de prêmios (PCST, Prize-Collecting Steiner Tree), além do custo das arestas, o grafo também possui um valorde penalidade para cada vértice. Não é dado um conjunto de vértices terminais.Então, o objetivo é obter uma árvore que minimize a soma dos custos de suas arestase as penalidades dos vértices que não pertencem à árvore. O problema da árvore deSteiner pode ser visto como um caso particular do PCST, quando os vértices ter-minais têm valor de penalidade bem grande e os demais vértices têm penalidade zero.

Este problema tem aplicações no projeto de circuitos elétricos e redes decomunicação. Além de ser uma ferramenta teórica útil para ajudar a resolver outrosproblemas de otimização, foi aplicado pela empresa AT&T com bons resultadospara otimização de redes de telecomunicações do mundo real [1]. Ljubic, emassociação com outros autores, utilizou-o para modelar a instalação de cabos de�bra ótica na Alemanha [15].

O primeiro algoritmo de aproximação para o PCST foi apresentado porBienstock [3] em 1993, e seu fator de aproximação é 3, por meio da busca pelasolução ótima da relaxação do programa linear. Mais tarde, em 1995, Goemanse Williamson (GW) [8] construíram um algoritmo com fator de aproximação(2− 1

n−1) baseado em um esquema primal-dual para a versão enraizada do problema.

2

Page 3: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Executando o algoritmo para todas as possibilidades de raiz, obtém-se uma(2− 1

n−1)-aproximação que consome tempo O(n3 log n). Johnson, Minko� e Phil-

lips [13] propuseram em 2000, uma modi�cação no algoritmo que permite executaro esquema primal-dual apenas uma vez resultando em um tempo de execução deO(n2 log n). Entretanto, este algoritmo não mantém o mesmo fator de aproximaçãode GW, como demonstrado por Feo�lo�, Fernandes, Ferreira e Pina [6] em 2006.Estes mesmos autores, em 2007 [7] publicaram uma modi�cação no algoritmo deGW baseado em um programa linear sutilmente diferente, que resulta em umfator de aproximação de (2− 2

n) para a versão enraizada e pode ser implementada

com tempo de execução de O(n2 log n). Finalmente, em 2009, Archer, Bateni,Hajiaghayi e Karlo� (ABHK) [1] obtiveram um fator de aproximação melhor doque 2 para o problema do PCST.

3

Page 4: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

2 Árvore de Steiner

Seja G = (VG, EG) um grafo e R um subconjunto de VG dos chamados vérticesterminais. Uma árvore de Steiner é uma árvore T = (VT , ET ) de G de modoque VT contém todos os vértices terminais. Note que o conceito de árvore de Steinerdepende do conjunto R. Assim, ao falarmos em árvore de Steiner o conjunto devértices terminais R �ca implícito.

Dada uma função custo c de EG para Q≥, de�nimos o custo da árvore T comoc(T ) :=

∑e∈ET ce. O problema da árvore de Steiner (Steiner Tree) consiste em:

Problema MinST(G, c,R): Dados um grafo conexo G, um custo ceem Q≥ para cada e em EG e um subconjunto R de VG, encontrar umaárvore de Steiner de custo mínimo.

Subconjuntos ativos e cortes

Dada uma instância (G, c,R) do problema, dizemos que um subconjunto S deVG é ativo se

R ∩ S 6= ∅ e R \ S 6= ∅

Então S é ativo se existe pelo menos um vértice terminal em S e um fora dele.A coleção de todos os conjuntos ativos é denotada por A. Aqui, mais uma vez, oconjunto R de vértices terminais está implícito.

Dado um conjunto de vértices S, de�nimos o corte δG(S) como o con-junto de arestas que têm uma extremidade em S e outra em VG \ S. Dizemos queum corte δG(S) separa dois vértices u e v, se u está em S e v em VG\S, ou vice-versa.

É evidente que uma árvore T é de Steiner se e somente se δT (S) 6= ∅ para todoS em A. Assim, todo par de vértices terminais está conectado na árvore T .

Delimitação para o valor ótimo

O seguinte programa linear é uma relaxação de MinST(G, c,R): encontrar umvetor x indexado pelas arestas de G que

minimize cxsob as restrições x(δG(S)) ≥ 1 para cada S em A

xe ≥ 0 para cada e em EG

(1)

onde

cx :=∑

e∈EG cexe e x(δ(S)) :=∑

e∈δ(S) xe

4

Page 5: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Dada uma árvore de Steiner T , é evidente que o vetor característico de ETé uma solução viável de (1). Portanto, se x∗ é uma solução ótima de (1) entãocx∗ ≤ opt(G, c,R), onde opt(G, c,R) denota o valor da solução ótima do problemaMinST para a instância (G, c,R).

O dual da relaxação (1) consiste em encontrar um vetor y indexado pela coleçãoA de subconjuntos ativos de VG que

maximize y(A)sob as restrições

∑S:e∈δ(S) yS ≤ ce para cada e em EG

yS ≥ 0 para cada S em A(2)

onde y(A) :=∑

S∈A yS.

Chamamos o programa (1) de primal e o (2) de dual.

Dizemos que um vetor y respeita c se é solução viável do dual. Dizemos aindaque uma aresta f está saturada por y se vale que

∑S:f∈δ(S) yS = cf .

Se y é uma solução viável do dual e x∗ é uma solução ótima do primal entãoy(A) ≤ cx∗, segundo o Lema da Dualidade da programação linear. Portanto,

y(A) ≤ opt(G, c, R). (3)

Esta delimitação inferior para opt(G, c,R) é fundamental para o cálculo da razãode aproximação do algoritmo MinST-GW descrito adiante, devido a Goemans eWilliamson [8].

Descrição do algoritmo

No início de cada iteração tem-se uma �oresta geradora F de G e um vetor yindexado por A que respeita c.

No início da primeira iteração, F é vazia e y é o vetor nulo. Em cada iteração,dizemos que um componente H de F é um componente ativo se VH está em A,e inativo caso contrário. Denotamos por AF a coleção de conjuntos de vérticesdos componentes de F ativos. Simpli�cadamente, dizemos que AF é a coleção doscomponentes de F ativos. Cada elemento S de AF viola a restrição x(δ(S)) ≥ 1de (1), onde x é o vetor característico de F . Isso sugere que devemos acrescentar aF alguma das arestas de δ(S). Qualquer aresta deste tipo conecta dois componentesdistintos de F . Dizemos que uma tal aresta é externa a F . Devemos, então,escolher uma aresta externa e acrescentá-la a F . Esta escolha deve, é claro, estarrelacionada ao custo das arestas.

Como o programa dual tem o objetivo de maximizar a soma das variáveis yS,o algoritmo aumenta uniformemente os valores das variáveis yS com S em AF demodo a manter viabilidade. Esse aumento gradativo de alguns componentes de y

5

Page 6: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

para quando alguma aresta é saturada por y. Essa aresta é então acrescentada à�oresta F e uma nova iteração se inicia com a �oresta atualizada.

O processo iterativo termina quando F não tem componentes ativos. Então,existe um componente T0 de F que contém todos os vértices terminais, e cada umdos demais componentes é unitário. O algoritmo devolve uma árvore minimalde T0, isto é, uma árvore T tal que, para cada aresta e, a �oresta (T−e) temalgum componente ativo. Por exemplo, se em T0 ocorrer um vértice não-terminalfolha, este pode ser removido diminuindo ou mantendo o custo e não violando apropriedade de árvore de Steiner. As �guras de 1 a 7 ilustram a execução destealgoritmo.

Algoritmo MinST-GW(G, c, π): Recebe um grafo conexo G, umcusto ce em Q≥ para cada aresta e em EG e um subconjunto R de VG.Devolve uma árvore de Steiner T e um vetor y, solução viável de (2),tais que c(T ) ≤ 2y(A).

O algoritmo é composto de dois passos. O primeiro passo faz uma chamada aum algoritmo iterativo e o segundo passo obtém uma árvore minimal da árvoreobtida no primeiro passo.

Passo 1: Sejam T0 e y a árvore e o vetor obtidos pela execução do algoritmo ST-Expansão com a instância (G, c,R).

Passo 2: Seja T a árvore obtida pela execução do algoritmo ST-Poda com ainstância (T0, R).Devolva T e y.

Algoritmo ST-Expansão(G, c,R): Recebe um grafo conexo G, umcusto ce em Q≥ para cada aresta e em EG e um subconjunto R de VG.Devolve uma árvore de Steiner T0 de G e um vetor y, solução viávelde (2).

Cada iteração do algoritmo começa com uma �oresta geradora F de G, um vetory viável dual e a coleção AF de componentes de F ativos. No início da primeiraiteração tem-se que F = ∅, y = 0 e AF = {{v} : v ∈ R}.

Caso 1: AF = ∅ :Seja T0 o componente de F que contém todos os vértices terminais.Devolva (T0, y) e pare.

Caso 2: AF 6= ∅ :Seja ε o maior número em Q≥ tal que y′ respeita c, onde y′ é de�nido assim:y′S = yS + ε se S ∈ AF e y′S = yS caso contrário.Seja f uma aresta externa que foi saturada.Sejam A1 e A2 os extremos de f em AF . Seja A′F = ∅, se A1 e A2 forem os

6

Page 7: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

dois últimos componentes ativos de F , ou A′F = (AF \ {A1, A2}) ∪ {A1 ∪A2}e y′(A1 ∪ A2) := 0 caso contrário.Comece nova iteração com F+f , y′ e A′F nos papéis de F , y e AF .

Algoritmo ST-Poda(T0, R): Recebe uma árvore T0 e um subconjuntode vértices R tal que T0 contém todos os vértices em R. Devolve T , umaárvore minimal de T0 em relação aos vértices em R.

Passo único: Seja T a árvore minimal de T0 que contém todos os vértices em R.Devolva T .

Lema 2.1 ([4]) O algoritmo MinST-GW admite uma implementação polino-mial.

O algoritmo devolve uma árvore de Steiner. De fato, no início de cada iteração,F é uma �oresta geradora de G. Ao �nal do algoritmo, F não tem componentesativos, e portanto, todos os vértices terminais estão conectados. A árvore T0 é ocomponente da �oresta F que contém todos os vértices terminais, portanto é umaárvore de Steiner. Logo, T devolvida pelo algoritmo é também uma árvore deSteiner.

a

b

c

de

f

Figura 1: Uma instância do problema MinST: VG = {a, b, c, d, e, f} e R ={a, c, d, e}. O grafo é completo e o custo das arestas é o valor da distânciaeuclidiana entre os vértices. No instante inicial, tem-se: F = ∅, y = 0 eAF = {{a}, {c}, {d}, {e}}.

7

Page 8: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

a

b

c

de

f

Figura 2: Após o primeiro incremento, a aresta ef �ca saturada e é adicionada à�oresta. A con�guração é: F = {ef}, y corresponde aos círculos ao redor de algunsvértices, e AF = {{a}, {c}, {d}, {e, f}}.

a

b

c

de

f

Figura 3: Neste instante, a aresta ab é saturada por y e a con�guração se torna:F = {ab, ef}, y corresponde aos círculos da �gura e AF = {{a, b}, {c}, {d}, {e, f}}.

8

Page 9: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

a

b

c

de

f

Figura 4: A aresta cd é saturada por y, ligando dois componentes ativos. Por isso,a cardinalidade da coleção de conjuntos ativos diminui. Neste instante, tem-se:F = {ab, cd, ef} e AF = {{a, b}, {c, d}, {e, f}}.

a

b

c

de

f

Figura 5: Mais uma vez dois conjuntos ativos são ligados: a aresta de �ca sa-turada pelo incremento dos valores de y. Dessa forma: F = {ab, cd, de, ef} eAF = {{a, b}, {c, d, e, f}}.

9

Page 10: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

a

b

c

de

f

Figura 6: Finalmente, a aresta bd �ca saturada e a �oresta �ca com um únicocomponente ativo: F = {ab, bd, cd, de, ef} e AF = {{a, b, c, d, e, f}}.

a

b

c

de

f

Figura 7: Na execução do algoritmo ST-Poda, a aresta ef é removida. O resultadoé a árvore de Steiner: T = {ab, bd, cd, de}.

Análise do fator de aproximação

Passamos agora a analisar o fator de aproximação do algoritmo MinST-GW.Porém, antes de delimitar c(T ), é preciso estabelecer uma relação fundamentalentre T e a coleção AF dos componentes de F ativos em uma iteração arbitrária doalgoritmo.

Lema 2.2 No início de cada iteração do algoritmo ST-Expansão, vale a desigual-dade ∑

S∈AF

|δT (S)| ≤ 2|AF |,

10

Page 11: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

onde T é a árvore de Steiner que o algoritmo MinST-GW devolve.

Demostração: Digamos que o grau em T de um componente S de F é o númerode arestas em δT (S). Matematicamente, o grau de S em T é |δT (S)|. Vale que, paraqualquer componente S de F ,

se |δT (S)| = 1 então S ∈ AF (4)

A implicação (4) a�rma que os componentes de F de grau 1 em T são todosativos. Para provar essa a�rmação, tome um componente S de F tal que |δT (S)|contém uma única aresta, digamos uw; ajuste a notação de modo que u ∈ S. SejamU e W os componentes de T − uw que contêm u e w respectivamente. Como uwé a única aresta de T em δ(S), temos U ⊆ S e W ⊆ V \ S. Como T é umaárvore minimal, a remoção da aresta uw faz com que a �oresta resultante tenhacomponentes ativos, ou seja, a aresta uw separa vértices terminais. Então,

R ⊆ U ∪W, R ∩ U 6= ∅ e R ∩W 6= ∅.

Segue daí que R ∩ S 6= ∅ e R \ S 6= ∅. Assim, S está em A e portanto em AF .Isso conclui a prova de (4).

Seja ZF o conjunto de todos os componentes inativos de F cujo grau em T nãoé nulo, ou seja, todos os componentes inativos S tais que |δT (S)| ≥ 1. Digamosque dois elementos S e S ′ de AF ∪ ZF são adjacentes se existe uma aresta de Tcom um extremo em S e outro em S ′. Esse conceito de adjacência de�ne um grafo,digamos H, sobre o conjunto de vértices AF ∪ ZF . Como F e T são subgrafos deT0, qualquer circuito em H corresponderia a um circuito em T0, o que é impossível,já que T0 é uma árvore. Portanto, H é uma �oresta. Segue daí imediatamente que∑

S∈VH |δH(S)| = 2|EH | ≤ 2(|VH | − 1), donde∑S∈AF∪ZF

|δT (S)| ≤ 2(|AF |+ |ZF | − 1).

Em virtude de (4), temos que |δT (S)| ≥ 2 para cada S em ZF . Portanto,

∑S∈AF

|δT (S)| =∑

S∈AF∪ZF

|δT (S)| −∑S∈ZF

|δT (S)|

≤ 2(|AF |+ |ZF | − 1)− 2|ZF |≤ 2|AF |

A interpretação dessa desigualdade é de que o grau médio dos vértices ativos dografo H não é maior do que 2.

A seguir, mostramos como esse resultado garante o fator de 2-aproximação paraa árvore construída pelo algoritmo.

Teorema 2.3 O algoritmo MinST-GW é uma 2-aproximação para o problemaMinST.

11

Page 12: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Demostração: Como já foi observado, o subgrafo T que o algoritmo devolve, éuma árvore de Steiner. Provaremos agora que, no início de cada iteração de ST-Expansão, vale a desigualdade∑

S∈A

|δT (S)|yS ≤ 2y(A), (5)

É evidente que a desigualdade é válida no início da primeira iteração, quandoy = 0. Suponha agora que a desigualdade seja válida no início de uma iteraçãoqualquer. Durante a iteração, yS é acrescido de ε se e somente se S ∈ AF . Portanto,o lado esquerdo de (5) é acrescido de∑

S∈AF

|δT (S)|ε

enquanto o lado direito é acrescido de 2|AF |ε. O lema 2.2 garante que o incrementodo lado esquerdo não é maior que do lado direito. Portanto a desigualdade (5) valeno início da iteração seguinte. Isso prova (5).

No �m do processo iterativo, o vetor y é viável dual. Além disso, vale tambémque ∑

S:e∈δ(S)

yS = ce para cada e ∈ T. (6)

Para mostrar que o algoritmo é uma 2-aproximação, resta veri�car quec(T ) ≤ 2opt(G, c,R):

c(T ) =∑e∈T

ce

=∑e∈T

∑S:e∈δ(S)

yS

=∑S∈A

|δT (S)|yS (7)

≤ 2y(A) (8)

≤ 2opt(G, c,R). (9)

A linha (7) segue da anterior por meio de reorganização da soma. A desigual-dade (8) segue de (5). Finalmente, a desigualdade (9) é consequência da delimitaçãoinferior (3).

12

Page 13: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

3 Árvore de Steiner com coleta de prêmios

No problema da árvore de Steiner com coleta de prêmios, além dos custos decada aresta em EG, são dadas penalidades πv para cada vértice v de VG. O custoda árvore é de�nido como: c(T ) + π(T ), onde c(T ) = c(ET ) e π(T ) = π(V \ VT )para simpli�car a notação.

Problema PCST(G, c, π): Dados um grafo G, um custo ce em Q≥

para cada aresta e em EG e uma penalidade πv em Q≥ para cada vérticev em VG, encontrar uma árvore T de G que minimize c(T ) + π(T ).

O problema MinST pode ser visto como um caso especial do PCST, atri-buindo aos vértices terminais penalidade su�cientemente grande, e aos vérticesnão-terminais, penalidade nula.

Uma variante do problema, denominada enraizada, recebe também um vérticeraiz r e tem como objetivo determinar uma árvore T que contenha r.

Pode-se reduzir uma instância da versão enraizada para a não-enraizadaatribuindo penalidade grande ao vértice r. Dessa forma, o algoritmo não-enraizadoé forçado a incluí-lo na árvore. Por outro lado, para reduzir uma instâncianão-enraizada para a enraizada, basta executar o algoritmo para todas as possi-bilidades de raiz e, dentre todas as árvores obtidas, escolher aquela com menor custo.

Como MinST é um problema NP-difícil, então o problema PCST também éNP-difícil. Por isso, há interesse em métodos alternativos para resolvê-lo, comobons algoritmos de aproximação.

13

Page 14: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

4 Algoritmo de Goemans e Williamson

O problema PCST enraizado pode ser formulado como um programa inteiro,cuja relaxação linear é:

minimize cx+∑

R⊆VG\{r} π(R)zRsob as restrições x(δ(R)) +

∑U⊇R zU ≥ 1 para cada R ⊆ VG \ {r}

xe ≥ 0 para cada e ∈ EGzR ≥ 0 para cada R ⊆ VG \ {r}

(10)

Intuitivamente, a variável zR vale 1 para os subconjuntos de vértices R que nãoestão na árvore. O dual de (10) pode ser formulado como:

maximize∑

R⊆VG\{r} yRsob as restrições

∑R:e∈δ(R) yR ≤ ce para cada e ∈ EG∑

U⊆R yU ≥ π(R) para cada R ⊆ VG \ {r}yR ≥ 0 para cada R ⊆ VG \ {r}

(11)

Denominamos o algoritmo descrito por Goemans e Williamson de PCST-

GW [8]. Este algoritmo, de maneira semelhante ao MinST-GW, também faz usodo conceito de componente ativo para incrementar as variáveis duais. O algoritmomantém uma �oresta geradora F que inicialmente é vazia. Então cada vértice vestá inicialmente no seu próprio componente conexo. Todos os componentes, comexceção da raiz r estão ativos. O algoritmo repetidamente executa uma das duasalternativas a seguir:

� Adicionar uma aresta entre dois componentes de F . Se o componente resul-tante contém a raiz, ele se torna inativo. Caso contrário, mantém-se ativo.

� Desativar um componente. Intuitivamente, um componente é desativado seo algoritmo concorda em não incluí-lo na árvore e pagar as penalidades detodos os vértices neste componente.

O processo iterativo termina quando todos os componentes de F estão inativos.Como a cada iteração, o número de componentes ou o número de componentesativos diminui, o número de iterações não é superior a 2n− 1.

A fase �nal do algoritmo, assim como o MinST-GW, remove tantas arestas deF quanto possível, para devolver a melhor árvore minimal em relação ao custo.

Não nos alongaremos mais na descrição do algoritmo PCST-GW, pois apresen-taremos na próxima seção a sua versão não-enraizada com detalhes.

O algoritmo PCST-GW é uma (2− 1n−1

)-aproximação e é possível implementá-lode maneira que seu consumo de tempo seja O(n2 log n) [8].

14

Page 15: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Teorema 4.1 (ABHK [1]) O algoritmo PCST-GW devolve uma árvore T tal que

c(T ) + 2π(T ) ≤ 2 opt(G, c, π)

15

Page 16: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

5 Algoritmo GW não-enraizado

A descrição da versão não-enraizada do algoritmo nesta seção é devida aFeo�lo�, Fernandes, Ferreira e de Pina [7].

Conceitos e notação

Para qualquer coleção L de subconjuntos de VG e qualquer aresta e em EG,de�ne-se L(e) := {L ∈ L : e ∈ δG(L)}, em que δG(L) denota o conjunto de arestascom uma extremidade em L e outra em L.

⋃L representa a união de todos os

conjuntos em L.Para qualquer função y de L para Q≥ e qualquer subcoleção M de L, de�ne-

se y(M) :=∑

L∈M y(L). Diz-se que y respeita uma função c de�nida sobre oconjunto de arestas EG se

y(L(e)) ≤ ce para cada e ∈ EG. (12)

Uma aresta e está saturada por y se (12) vale com igualdade para esta aresta.Diz-se que a função y respeita a função π de�nida sobre os vértices VG se∑

S⊆L

yS +∑S⊇L

yS ≤ π(L) para cada L ∈ L (13)

e

∑S⊆L

yS +∑S⊇L

yS ≤ π(L) para cada L ∈ L (14)

Um elemento L de L está saturado por y se (13) vale com igualdade. Se (14)vale com igualdade, dizemos que L está saturado por y. A desigualdade (12)assemelha-se com a primeira restrição de (11). Usualmente, diz-se que a somados yS para todo conjunto S em L contido em L não deve exceder a soma daspenalidades de todos os elementos em L. Em (13) adicionou-se a parcela dasoma dos yS dos conjuntos S que contêm o complemento de L, ou seja, os S cujocomplemento está em L. A desigualdade (14) é similar a (13) para o complementode cada conjunto em L.

Uma coleção L de subconjuntos de VG é dita laminar se, para quaisquer doiselementos L1 e L2 de L, vale que L1 ∩L2 = ∅ ou L1 ⊆ L2 ou L1 ⊇ L2. A coleção deelementos maximais de uma coleção laminar L será denotada por L∗. Então, L∗ éuma coleção disjunta.

Para qualquer coleção laminar L de subconjuntos de VG, diz-se que umaárvore T de G não tem pontes em L se |δT (S)| 6= 1 para todo S ∈ L.

16

Page 17: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Algoritmo

O algoritmo GW-Não-Enraizado segue o mesmo esquema primal-dual dePCST-GW. Consiste de dois passos e trata a versão não-enraizada do problema.Na primeira fase obtém-se uma árvore, e na segunda fase algumas arestas sãoremovidas resultando na saída �nal do algoritmo.

Algoritmo GW-Não-Enraizado(G, c, π): Recebe um grafoconexo G, um custo ce em Q≥ para cada aresta e em EG e um custo πvem Q≥ para cada vértice v em VG. Devolve uma árvore T de G tal quec(T ) + π(T ) ≤ (2− 2

n) opt(G, c, π).

Passo 1 Sejam T0 e Z a árvore e a coleção de conjuntos de vértices obtidos a partirda execução do algoritmo Expansão sobre a instância (G, c, π).

Passo 2 Seja T a árvore devolvida pela execução do algoritmo Poda sobre a ins-tância (T0,Z).Devolva T .

Algoritmo Expansão(G, c, π): Recebe um grafo conexo G, um custoce em Q≥ para cada aresta e em EG e um custo πv em Q≥ para cadavértice v em VG. Devolve uma árvore T0 de G e uma coleção Z deconjuntos de vértices.

Cada iteração do algoritmo começa com uma �oresta geradora F de G, umvetor y viável dual, uma coleção AF de componentes de F e um conjunto Z decomponentes que foram desativados. No início da primeira iteração tem-se queF = ∅, y = 0, AF = {{v} : v ∈ VG} e Z = ∅.

Caso 1 |AF | = 1:Seja T0 o único elemento de AF .Devolva (T0,Z) e pare.

Caso 2 |AF | > 1:Seja y′ de�nido por: y′S = yS + ε se S ∈ AF e y′S = yS caso contrário, onde εé o menor número em Q≥ tal que implique em um dos seguintes eventos:

Caso 2a Uma aresta externa f está saturada por y′:Comece nova iteração com F + f e y′ nos papéis de F e y.

Caso 2b Um conjunto S em AF está saturado por y′:Desative o conjunto S.Seja Z ′ = Z ∪ S.Comece nova iteração com y′ e Z ′ nos papéis de y e Z.

Caso 2c O conjunto S em AF está saturado por y′:Seja T0 a árvore induzida por F em S.Devolva (T0,Z) e pare.

17

Page 18: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Algoritmo Poda(T0,Z): Recebe uma árvore T0 e uma coleção deconjuntos de vértices Z. Devolve uma árvore T de T0.

Caso 1 T0 não tem pontes em Z:Seja T = T0. Devolva T e pare.

Caso 2 T0 tem alguma ponte em Z:Seja S em Z tal que |δT0(S)| = 1.Comece nova iteração com T0 \ S no papel de T0

Teorema 5.1 (Fator de aproximação [7]) O algoritmo GW-Não-Enraizado

devolve uma árvore T de G tal que

c(T ) + π(T ) ≤

(2− 2

n

)opt(G, c, π)

18

Page 19: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

6 Algoritmo de ABHK

Introduzimos nesta seção um esboço do algoritmo de Archer, Bateni, Hajiaghayie Karlo� (ABHK), que baseia-se no teorema 4.1. Tal teorema a�rma que a árvoredevolvida por PCST-GW para o problema PCST satisfaz:

c(T ) + 2π(T ) ≤ 2 opt(G, c, π)

É importante notar que este fato apresenta-se mais forte do que seria necessáriopara que PCST-GW seja uma 2-aproximação: há um fator 2 multiplicando π(T ),onde o fator 1 seria su�ciente:

c(T ) + π(T ) ≤ 2 opt(G, c, π)− π(T )

Essa diferença implica que, se o valor de π(T ) for pelo menos ε opt(G, c, π), então aárvore T devolvida por PCST-GW é uma (2−ε)-aproximação.

Entretanto, quando esta proporção entre o total de penalidades e o valor ótimonão é válida, uma outra abordagem é adotada para garantir que, ao �nal, se tenha adesejada (2−ε)-aproximação. Nesta abordagem, a ideia é identi�car o conjunto devértices que devem ser gerados pela árvore �nal por meio do PCST-GW e utilizarum bom algoritmo para o problema MinST como uma caixa-preta. Neste caso, oalgoritmo PCST-ABHK utiliza o MinST-RZ devido a Robins e Zelikovsky [16],cujo fator de aproximação é 1,55.

Algoritmo PCST-ABHK(G, c, π, α, β): Recebe um grafo G, umcusto ce em Q≥ para cada aresta e em EG e um custo πv em Q≥ paracada vértice v em VG. Além disso, recebe dois parâmetros α em (1

2, 1) e

β > 1. Devolve uma árvore T tal que c(T ) + π(T ) ≤ (2−ε) opt(G, c, π)para um constante ε.

Passo 1: Seja πα a função de�nida por παv = απv para todo vértice v em VG.Seja Tα a árvore devolvida pelo algoritmo PCST-GW para a instân-cia (G, c, πα).

Passo 2: Seja πα,β a função de VG em Q≥ de�nida por

πα,βv =

{βπv se v ∈ VTα

0 caso contrário.

Seja T0 e Z a árvore e a coleção de conjuntos de vértices devolvidos peloalgoritmo GW-Expansão com a instância (G, c, πα,β).Seja Tα,β a árvore de Steiner devolvida pelo algoritmo MinST-RZ com ainstância (G, c, VTα \ Z).

Passo 3: Dentre Tα e Tα,β, devolva a árvore T que minimize c(T ) + π(T ).

19

Page 20: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Teorema 6.1 (Existência dos parâmetros [1]) Em tempo polinomial é possívelencontrar os parâmetros α e β tais que o algoritmo PCST-ABHK seja uma (2−ε)-aproximação para o problema PCST, onde (2−ε) = 1, 992324.

20

Page 21: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

7 Tópicos estudados e projeto

Os estudos relacionados ao tema do projeto de mestrado tiveram início com oentendimento e familiaridade acerca de algoritmos de aproximação para problemasde otimização NP-difíceis. Estudamos principalmente o algoritmo 2-aproximaçãopara o problema da árvore de Steiner [4].

A partir daí, estudamos os algoritmos destacados neste texto, analisandoos pontos em comum que eles contém e observando a relação primal-dual daprogramação linear na qual estes algoritmos se baseiam. A primeira proposta doesquema primal-dual foi apresentada por Goemans e Williamson [8]. O algoritmode melhor fator de aproximação publicado até o momento tem base na mesmaideia: (2−ε)-aproximação [1].

Existem problemas interessantes que generalizam o PCST. Em 2005, Hayra-petyan, Swamy e Tardos [11] de�niram uma versão do problema que recebe umafunção de penalidades π de�nida sobre conjuntos de vértices. O objetivo é encontraruma árvore T que minimize a soma dos custos das arestas em T mais o valor dapenalidade do subconjunto de vértices que �caram fora de T . Eles mostraramque, se a função π é submodular, o algoritmo PCST-GW pode ser extendido paraproduzir uma 2-aproximação para este problema.

O PCST generalizado, de�nido em 2006 por Hajiaghayi e Jain [10], é o problemaque generaliza PCST do ponto de vista da conectividade. Ele recebe como entradaum grafo, custos nas arestas, k pares de vértices que devem ser conectados, epenalidades para cada par. O objetivo é obter uma �oresta F que minimize a somados custos das arestas em F mais as penalidades dos pares de vértices que nãoestão conectados em F . Os autores obtiveram o fator de aproximação 3 para esteproblema por meio de um esquema primal-dual, e o fator 2,54 com uma relaxaçãodo programa linear.

Por sua vez, em 2007, Sharma, Swamy e Williamson [17] apresentaram oproblema da �oresta de Steiner com coleta de prêmios (PCSF), que consiste emuma generalização do PCST do ponto de vista de penalidades e de conectividade.Logo, é uma generalização do PCST com penalidades modulares e do PCST

generalizado. Na tabela 1 fazemos uma breve comparação entre os problemasestudados.

Problema Fator de aproximação

MinST 2 [4]MinSForest 2 [4]

PCST 2−ε [1]PCST com penalidades submodulares 2 [11]

PCST generalizado 2, 54 [10]PCSF 2, 54 [17]

Tabela 1: Comparação entre os problemas e seus fatores de aproximação

21

Page 22: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Investigamos também alguns algoritmos que representam uma abordagem di-ferente para solucionar o problema. Entre eles, um algoritmo recursivo devido aGutner [9] com o mesmo fator de aproximação de PCST-GW, baseado no conceitode local ratio e um algoritmo devido a Ljubic [15] que resolve PCST com otimalidadepara instâncias especí�cas.

Pretendemos que a dissertação de mestrado contenha a descrição e a análisedos principais algoritmos de aproximação para o problema PCST, tratando comprofundidade o algoritmo que superou a barreira do fator 2-aproximação.

Além disso, pretendemos apresentar uma padronização para as diferentesnotações e conceitos utilizados por cada algoritmo, assim como as suas descriçõesno formato de pseudocódigo com método dos casos.

22

Page 23: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

Referências

[1] A. Archer, M.H. Bateni, M.T. Hajiaghayi, and H. Karlo�, Improved Approxi-mation Algorithms for Prize-Collecting Steiner Tree and TSP, Foundations ofComputer Science, 2009. FOCS '09. 50th Annual IEEE Symposium on, oct.2009, pp. 427 � 436.

[2] P. Berman and V. Ramaiyer, Improved Approximations for the Steiner TreeProblem, Proceedings of the third annual ACM-SIAM Symposium on DiscreteAlgorithms (Philadelphia, PA, USA), SODA '92, Society for Industrial andApplied Mathematics, 1992, pp. 325�334.

[3] D. Bienstock, M.X. Goemans, D. Simchi-Levi, and D.P. Williamson, A Note onthe Prize-Collecting Traveling Salesman Problem, Mathematical Programming59 (1993), 413�420, 10.1007/BF01581256.

[4] M. H. Carvalho, M. Cerioli, R. Dahab, P. Feo�lo�, C.G. Fernandes, C.E. Fer-reira, K.S. Guimaraes, F.K. Miyazawa, J.C. Pina Jr., J.A. Soares, and Y. Waka-bayashi, Uma Introdução Sucinta a Algoritmos de Aproximação, 23º ColóquioBrasileiro de Matemática - IMPA, RJ, 2001.

[5] R. Courant and H. Robbins, What is Mathematics? An elementary approachto ideas and methods, Oxford University Press, 1941.

[6] P. Feo�lo�, C.G. Fernandes, C.E. Ferreira, and J.C. Pina Jr., A Note on John-son, Minko� and Phillips' Algorithm for the Prize-Collecting Steiner Tree Pro-blem, 2006.

[7] , Primal-dual Approximation Algorithms for the Prize-Collecting SteinerTree Problem, Information Processing Letters 103 (2007), no. 5, 195 � 202.

[8] M.X. Goemans and D.P. Williamson, A General Approximation Technique forConstrained Forest Problems, SIAM J. Comput. 24 (1995), 296�317.

[9] S. Gutner, Elementary Approximation Algorithms for Prize-Collecting SteinerTree Problems, Inf. Process. Lett. 107 (2008), 39�44.

[10] M. Hajiaghayi and K. Jain, The Prize-Collecting Generalized Steiner Tree Pro-blem via a New Approach of Primal-Dual Schema, Proceedings of the sevente-enth annual ACM-SIAM Symposium on Discrete Algorithms, SODA '06, Soci-ety for Industrial and Applied Mathematics, 2006, pp. 631�640.

[11] A. Hayrapetyan, C. Swamy, and E. Tardos, Network Design for InformationNetworks, Proceedings of the sixteenth annual ACM-SIAM Symposium on Dis-crete Algorithms, SODA '05, Society for Industrial and Applied Mathematics,2005, pp. 933�942.

[12] S. Hougardy and H.J. Promel, A 1.598 Approximation Algorithm for the SteinerProblem in graphs, Proceedings of the tenth annual ACM-SIAM Symposium onDiscrete Algorithms (Philadelphia, PA, USA), SODA '99, Society for Industrialand Applied Mathematics, 1999, pp. 448�453.

23

Page 24: Algoritmos para o problema da árvore de Steiner com coleta ...camilam/quali_CamilaMatsubara.pdf · 1 Introdução O problema da árvore de Steiner consiste em, dado um grafo com

[13] D.S. Johnson, M. Minko�, and S. Phillips, The Prize-Collecting Steiner TreeProblem: Theory and Practice, Proceedings of the eleventh annual ACM-SIAMSymposium on Discrete Algorithms (Philadelphia, PA, USA), SODA '00, Soci-ety for Industrial and Applied Mathematics, 2000, pp. 760�769.

[14] M. Karpinski and A. Zelikovsky, New Approximation Algorithms for the Stei-ner Tree Problems, Journal of Combinatorial Optimization 1 (1997), 47�65,10.1023/A:1009758919736.

[15] I. Ljubi¢, R. Weiskircher, U. Pferschy, G. Klau, P. Mutzel, and M. Fischetti, Sol-ving the prize-collecting Steiner tree problem to optimality, Proceedings of ALE-NEX, Seventh Workshop on Algorithm Engineering and Experiments (Vancou-ver), 2005.

[16] G. Robins and A. Zelikovsky, Tighter Bounds for graph Steiner Tree Approxi-mation, SIAM J. Discret. Math. 19 (2005), no. 1, 122�134.

[17] Y. Sharma, C. Swamy, and D. Williamson, Approximation Algorithms for Prize-Collecting Forest Problems with Submodular Penalty Functions, Proceedings ofthe eighteenth annual ACM-SIAM Symposium on Discrete Algorithms, SODA'07, Society for Industrial and Applied Mathematics, 2007, pp. 1275�1284.

[18] A.Z. Zelikovsky, An 11/6-approximation algorithm for the network Steiner Pro-blem, Algorithmica 9 (1993), 463�470, 10.1007/BF01187035.

24