Algoritmos para o problema da árvore de Steiner com coleta de prêmios Camila Mari Matsubara Orientador: Prof. Dr. José Coelho de Pina Defesa de mestrado Instituto de Matemática e Estatística Universidade de São Paulo Dezembro de 2012
Sumário Árvore de Steiner Árvore de Steiner com coleta de prêmios Algoritmo de ABHK Considerações finais
Sumário Árvore de Steiner Árvore de Steiner com coleta de prêmios Algoritmo de ABHK Considerações finais
Árvore de Steiner Dados: um grafo e um subconjunto R de vértices terminais. : R
Árvore de Steiner Conecta os vértices terminais. Exemplo: : R
Custo da árvore de Steiner Dados custos nas arestas, o custo desta árvore de Steiner é 7 + 4 + 2 + 4 + 3 + 5 + 3 = 28. 7 4 2 2 4 3 5 1 2 3 1
O problema da árvore de Steiner Dados: Grafo G Custos c e 0 nas arestas Subconjunto R de vértices terminais Objetivo: Encontrar uma árvore de Steiner T de G com custo mínimo
O problema da árvore de Steiner Exemplo: árvore com custo mínimo 4 + 2 + 2 + 1 + 3 + 1 + 2 = 15. 7 4 2 2 4 3 5 1 2 3 1
Caminho Mínimo Se R = 2 : problema do caminho mínimo. 7 4 2 2 4 3 5 1 2 3 1 : R
Árvore Geradora Mínima Se R = V G : problema da árvore geradora mínima. 7 4 2 2 4 3 5 1 2 3 1 : R
Complexidade computacional Fato: o problema da árvore de Steiner é NP-difícil. Redução polinomial do problema CE d (U, F) para o problema MinST d (G, c, R, k)
Complexidade computacional Exemplo de cobertura exata: U = {1, 2, 3, 4, 5} e F = {{1}, {1, 2, 3}, {2, 3}, {4, 5}, {1, 2, 4}, {1, 3, 5}}, a subfamília {{1}, {2, 3}, {4, 5}} é uma cobertura exata de U
Complexidade computacional U = {1, 2, 3, 4, 5} e F = {{1, 2, 3}, {4, 5}, {1, 2, 4}, {1, 3, 5}, {2, 3}, {1}}, n 0 1 2 3 3 3 2 t = U k = t + t 2 {1} {2, 3} {1, 2, 3} {1, 2, 4} {1, 3, 5} {4, 5} 1 2 3 4 5 arestas com custo 5
Complexidade computacional {1} n 0 1 2 3 3 3 2 t = U k = t + t 2 {2, 3} {1, 2, 3} {1, 2, 4} {1, 3, 5} {4, 5} 1 2 3 4 5 arestas com custo 5
Um pouco de história... Algoritmos de aproximação: 2,000 Goemans e Williamson, 1995 1,833 Zelikovsky, 1993 1,746 Berman e Ramaiyer, 1992 1,693 Zelikovsky, 1997 1,667 Promel e Steger, 1997 1,644 Karpinski e Zelikovsky, 1997 1,598 Hougardy, 1999 1,550 Robin e Zelikovsky, 2005 1,390 Byrka, Grandoni, Rothvoss e Sanita, 2010
Programação linear: Primal minimize sob as restrições custo da árvore corte de todo conjunto ativo contém uma aresta A A = {A : A é ativo}
Programação linear: Dual maximize sob as restrições largura das molduras dos conjuntos ativos molduras respeitam custos das arestas
Algoritmo MinST-GW 1. Expansão: enquanto há componente ativo Incrementar molduras dos componentes ativos até uma aresta ficar justa Adicionar esta aresta à floresta e iniciar outra iteração
Execução: MinST-GW Grafo G:
Execução: expansão
Execução: expansão
Execução: expansão
Execução: expansão
Execução: expansão
Execução: expansão
Execução: expansão
Execução: expansão
Execução: fim da expansão
Algoritmo MinST-GW 2. Poda: Calcular árvore de Steiner minimal
Execução: fim da expansão
Execução: poda
Fator de aproximação O algoritmo MinST-GW é uma 2-aproximação
Sumário Árvore de Steiner Árvore de Steiner com coleta de prêmios Algoritmo de ABHK Considerações finais
Custos e penalidades Dados: um grafo, custos nas arestas e penalidades nos vértices. 3 7 6 42 4 2 1 2 5 4 3 7 1 8 5 4 2 3 2 1 4
O problema da árvore de Steiner com coleta de prêmios Dados: Grafo G Custos c e 0 nas arestas Penalidades π v 0 nos vértices Objetivo: Encontrar uma árvore T de G que minimize custos das arestas + penalidades dos vértices fora
Custo da árvore de Steiner com coleta de prêmios O custo de T é 4+4+3+1+2 + 3+42+5+4 = 68. 3 7 6 42 4 2 1 2 5 4 3 7 1 8 5 4 2 3 2 1 4
Árvore de Steiner com coleta de prêmios O custo de T é 4+4+3+1+2+2 + 3+5+4 = 28. 3 7 6 42 4 2 1 2 5 4 3 7 1 8 5 4 2 3 2 1 4
Versão com raiz O custo de T r é 7+4+2+3+1 + 5+4+4+2 = 32. r 7 6 42 4 2 1 2 5 4 3 7 1 8 5 4 2 3 2 1 4
Complexidade computacional O problema da árvore de Steiner com coleta de prêmios também é NP-difícil.
Um pouco de história... 3 Bienstock, 1993 2 1 n 1 Goemans e Williamson, 1995 2 Johnson, Minkoff e Philips, 2000 2 2 n Feofiloff, Fernandes, Ferreira e Pina, 2007 2 ε Archer, Bateni, Hajiaghayi, Karloff, 2009
Programação linear: Primal minimize custo da árvore + penalidades dos vértices fora da árvore A A = {A : A é ativo}
Programação linear: Dual maximize sob as restrições largura das molduras dos conjuntos ativos molduras respeitam custos e penalidades
Algoritmo PCST-GW 1. Expansão: enquanto há pelo menos 2 componentes ativos Incrementar molduras dos componentes ativos até: a. uma aresta ficar justa, ou b. um componente ficar saturado, ou c. o complemento de um componente ficar saturado a. Adicionar a aresta à floresta e iniciar outra iteração, ou b. Desativar o componente e iniciar outra iteração (Z), ou c. Devolver a árvore induzida por este componente
Execução: PCST-GW e 9 c 7 9 d b8 3 a
Execução: aresta justa e 9 c 7 9 d b8 3 a
Execução: aresta justa 9 e c 7 9 d b8 3 a
Execução: componente saturado 9 e c 7 9 d b 8 3 a
Execução: fim da expansão 9 e c 7 9 d b8 3 a
Algoritmo PCST-GW 2. Poda: enquanto há um conjunto S que foi desativado (Z) tal que δ T (S) = 1 Remover S da árvore T e iniciar nova iteração
Execução: fim da expansão 9 e c 7 9 d b8 3 a
Execução: ponte! 9 e c 7 9 d b8 3 a ponte!
Execução: poda 9 e c 7 9 d b8 3 a
Algoritmo com raiz Penalidade da raiz r =
Fator de aproximação A árvore T devolvida por R-PCST-GW satisfaz c(t ) + 2 π(t ) 2 opt
Sumário Árvore de Steiner Árvore de Steiner com coleta de prêmios Algoritmo de ABHK Considerações finais
ABHK - Visão geral O algoritmo R-PCST-GW lida bem quando árvore paga muita penalidade Estratégia Gerar duas árvores T GW e T ST e devolver a mais barata
Primeira candidata T GW = R-PCST-GW(G, r, c, 1 2 π)
Análise da primeira candidata (0) T GW = R-PCST-GW(G, r, c, 1 2 π) T = R-PCST-GW(G, r, c, π) O = árvore ótima da instância (G, r, c, π)
Análise da primeira candidata (1) c(t GW ) + 2 c(t ) + 2 π(t ) 2 opt ( ) 1 2 π (T GW ) 2 opt 1 2 c(t GW ) + π(t GW ) 2 opt 1 2
Análise da primeira candidata (2) c(t GW ) + π(t GW ) 2 opt 1 2 2 (c(o) + 12 π(o) ) = 2c(O) + π(o) = 2opt π(o)
Análise da primeira candidata (3) c(t GW ) + π(t GW ) 2opt π(o) δ = π(o) opt c(t GW ) + π(t GW ) 2 opt δopt = (2 δ) opt
Segunda candidata: intuição Mas e se δ < ε? Ideia ingênua: Identificar vértices terminais, usando R-PCST-GW Utilizar um algoritmo para o problema MinST como caixa-preta
Segunda candidata Execute R-PCST-Expansão(G, r, c,βπ) β > 1 D β = S Z S T ST = MinST ρ (G, c,d β )
Análise da segunda candidata Limitar c(t ST ) e π(t ST )
Análise da segunda candidata Demonstra-se que: c(t ST ) ρ(1 + (2β 1)δ) opt π(d β ) ( ) 1 δ β + δ opt
Análise da segunda candidata c(t ST ) + π(t ST ) ( ρ(1 + (2β 1)δ) + 1 δ β + δ ) opt
Análise da segunda candidata Teorema Se β = 2 2 ρ, então o algoritmo R-PCST-ABHK tem fator de aproximação 2 ( 2 ρ 2+ρ )2
Fator de aproximação Finalmente... A árvore T devolvida por R-PCST-ABHK satisfaz c(t ) + π(t ) (2 ε(ρ)) opt
Fatores de aproximação MinST ρ Fator de R-PCST-ABHK Zelikovsky (1993) 1,83 1,9982 Robin e Zelikovsky (2005) 1,55 1,9839 Byrka et al.(2010) 1,39 1,9672 opt MinST 1,00 1,8889
Curiosidade Algoritmo R-PCST-ABHK não tenta resolver o problema original.
Sumário Árvore de Steiner Árvore de Steiner com coleta de prêmios Algoritmo de ABHK Considerações finais
R-PCST-ABHK PCST-GW Comparativo entre os fatores 2 ε e 2 2 n : MinST ρ 2 ε n >? Zelikovsky (1993) 1,83 1,9982 1111 Robin e Zelikovsky (2005) 1,55 1,9839 124 Byrka et al.(2010) 1,39 1,9672 60 opt MinST 1,00 1,8889 18
Resumindo... Descrição e análise dos principais algoritmos de aproximação: MinST, PCST, R-PCST; Padronização para conceitos, notação e algoritmos; Descrição e análise do algoritmo R-PCST-ABHK.
Que interessante... com ou sem raiz? prize-collecting; relaxação linear importante (conceito de A);
Futuro (2 ε)-aproximação sem raiz; implementações; abordagens diferentes.
Referências 1 Uma introdução sucinta a algoritmos de aproximação, 2001 M.Carvalho, M.Cerioli, R.Dahab, P.Feofiloff, C.Fernandes, C.Ferreira, K.Guimarães, F.Miyazawa, J.Pina, J.Soares, Y.Wakabayashi 2 A general approximation technique for constrained forest problems, 1995 M.Goemans, D.Williamson
Referências Primal-dual approximation algorithms for the Prize-Collecting Steiner Tree Problem, 2007 P.Feofiloff, C. Fernandes, C.Ferreira, J.Pina Improved approximation algorithms for Prize-Collecting Steiner Tree and TSP, 2011 A.Archer, M.Bateni, M.Hajiaghayi, H.Karloff
Um exemplo ruim Para k 2, um 2k-ciclo + um vértice: 1 1 1+z 1 1+z 1+z 1 1 1 k = 3
Um exemplo ruim T α : custo = 2k 2 1 1 1+z 1 1+z 1+z 1 1 1 custo = 4
Um exemplo ruim Árvore ótima: custo = k(1 + z) Fator de aproximação 2 quando k e z 0 1 1 1 1+z 1+z 1+z 1 1 1 custo = 3+3z
Análise da segunda candidata T ST Limitar separadamente c(t ST ) e π(t ST ).
Análise da segunda candidata π(t ST ) É suficiente limitar π(d β ). Vale que π(d β ) ( ) 1 δ + δ opt β
Análise da segunda candidata c(t ST ) Vale que c(t ST ) ρ(1 + (2β 1)δ
Análise da segunda candidata c(t ST ) detalhe Hipótese: Vale lema 5.5 Sejam T, y, L F e Z = R-PCST-Expansão(G, r, c, π). D = S Z S I qualquer subconjunto de vértices de V G que contém r A = D \ I = I \ D Então existe uma floresta K T que satisfaz: 1 V K contém todos os vértices em A; 2 Cada árvore na floresta K inclui exatamente um vértice de I ; 3 c(k) 2 S I y S 2π(I ).
Análise da segunda candidata c(t ST ) fig1 I I D r A D O diagrama ilustra os subconjuntos I e D de V G. As arestas sólidas representam a floresta K.
Análise da segunda candidata c(t ST ) fig2 I I D r A D As arestas em linhas pontilhadas conectam vértices em I e as arestas sólidas formam a árvore T.
Análise da segunda candidata c(t ST ) fig3 D D I r (a) I A (a) Na primeira fase, as arestas de T que conectam dois vértices de I são removidas. D D I r (b) I A (b) Na segunda fase, os conjuntos pontilhados que foram desativados durante a execução de R-PCST-Expansão e que não contêm vértices de I são removidos.