O PROBLEMA DA PSEUDO ÁRVORE CAPACITADA DE
CUSTO MÍNIMO
Guilherme Figueiredo Terenciani1 , Edna Hoshino1
1
Faculdade de Computação FACOM – Universidade Federal de Mato Grosso do Sul (UFMS)
CEP: 79070-900 - Caixa Postal 549 Campo Grande/MS - Brasil
Resumo. Este trabalho apresenta o problema da pseudo árvore capacitada de
custo mı́nimo e propõe uma heurı́stica para encontrar pseudo árvores capacitadas baseada em heurı́sticas de problemas relacionados, como o problema da
árvore de Steiner [Hwang et al. 1992] e o problema dos anéis-estrelas capacitados. O problema estudado surge como um subproblema de pricing de um
modelo baseado em cobertura de conjuntos para um problema mais geral denominado o problema das m pseudo árvores capacitadas. Trabalhos anteriores
mostram que a relaxação linear deste modelo fornece bons limitantes inferiores,
mas a solução exata do subproblema de pricing exige alto custo de processamento, o qual motiva o estudo de boas heurı́sticas para se resolver o problema.
Testes computacionais foram realizados para avaliar a qualidade das soluções
geradas pela heurı́stica proposta. Os resultados mostram que, na média, os
limitantes gerados estão aproximadamente 14% distantes do ótimo. Futuramente, pretende-se incorporar a heurı́stica aqui proposta como uma heurı́stica
de pricing dentro de um algoritmo branch-and-price para o problema das m
pseudo árvores capacitadas.
1. Introdução
Este trabalho propõe uma heurı́stica para o problema da pseudo árvore capacitada de custo mı́nimo (CRTP), que surge como um subproblema de pricing de modelos
baseados em cobertura de conjuntos para o problema das m pseudo árvores capacitadas.
Trabalhos anteriores mostram que a relaxação linear destes modelos fornecem bons limitantes inferiores, mas a solução exata do subproblema de pricing exige alto custo de
processamento, o qual motiva o estudo de boas heurı́sticas para o subproblema. Dado um
grafo G = (V, E), uma pseudo árvore é um subgrafo conexo de G contendo no máximo
um ciclo. Dados uma partição de V em ({d}, U1 , U2 , W ) e um inteiro Q, uma pseudo
árvore T = (VT , ET ) de G é válida se (i) T é uma árvore com exatamente uma aresta
incidente em d e VT ∩ U2 = ∅; ou (ii) T contém um ciclo C tal que vértices em U2 pertencem a VT somente se ocorrem no único ciclo C, que necessariamente deve conter d;
e (iii) |VT ∩ (U1 ∪ U2 )| ≤ Q. Dado um grafo G = ({d} ∪ U1 ∪ U2 ∪ W, E), um inteiro
Q, pesos ce associados a cada aresta e ∈ E e prêmios pv em cada vértice v ∈ U1 ∪ U2 ,
oPCRTP consiste
P em encontrar uma pseudo árvore válida T = (VT , ET ) que minimiza
e∈ET ce −
v∈VT pv .
2. A heurı́stica proposta
Para a construção da heurı́stica foi utilizada a linguagem de programação C e
utilizada uma abordagem construtiva na qual atacamos o problema em partes a fim de ao
final obtermos o resultado esperado. Abaixo são apresentados os passos seguidos para a
construção da heurı́stica:
2.1. Construção da árvore geradora capacitada
Definição: Considere um grafo não direcionado G = (V, E) onde para cada aresta
e ∈ E, tem-se um custo Ce associado. Deseja-se encontrar um subconjunto T ⊆ E que
conecta todos os vértices de G e cuja soma total dos seus custos dado pela Equação 1 é
minimizada.
X
C(T ) =
Ce
(1)
e∈T
Para o fim da construção da árvore geradora capacitada, utilizamos o Algoritmo de
[Prim 1957] com algumas modificações para atender ao nosso problema geral. Onde
para o nosso problema T = (VT , ET ) é construı́da partindo-se de uma solução parcial
T = ({d}, ∅) e, sucessivamente, incluindo-se um vértice v em V \ VT que minimiza
cuv − pv , em que u ∈ VT , enquanto |VT ∩ (U1 ∪ U2 )| ≤ Q.
2.2. Construção da pseudo árvore
Com base na pseudo árvore proposta por [Hill and Voss 2015] o algoritmo criado para a construção da pseudo árvore tem como entrada uma árvore capacitada, gerada
por um algoritmo guloso baseado no Algoritmo de Prim, e devolve como saı́da a pseudo
árvore com apenas um ciclo contendo, pelo menos, o servidor e todos os clientes prioritários, evitando assim a perda de comunicação dos mesmos com o servidor.
O algoritmo usa uma abordagem construtiva para a construção do ciclo. O algoritmo começa servidor e percorre todos os outros vertices que pertencentes a arvore para
verificar de eles devem estar no ciclo ou não. Existem três possibilidades, (I) Não existe
nenhum vertice do tipo U2 portanto, a arvore é valida, (II) Momento quando partimos
do servidor e encontramos o primeiro vertice do tipo U2(e) é inserida uma aresta ligando
o vertice V(e) ao servidor construindo assim um ciclo e (III) Quando já temos o ciclo e
encontramos um vertice do tipo U2(e) que não esta contido no ciclo em que removemos
uma aresta contida no ciclo ligada ao seu antecessor U2(i) e incluimos a aresta A(e,i)
aumentando assim o tamanho do ciclo e fazendo com que o vertice V(e) seja incluido no
ciclo.
2.3. Two-Change
A técnica de aceleração Two-Change, utilizada para o problema TSP
[Croes 1958], pode ser facilmente adaptada para o problema da pseudo árvore, pelo fato
da pseudo árvore ter apenas um ciclo, podemos utiliza-lo para diminuir o custo da pseudo
árvore.
3. Resultados Computacionais
Os testes realizados nas instâncias computacionais foram motivadores, além do
tempo de execução da heurı́stica ser muito baixo, conseguimos bons resultados de custo
da pseudo árvore, mas devemos ter cuidado ao fazer tal afirmação, para confirmar a qualidade da heurı́stica proposta rodaremos o algoritmo exato para a construção da pseudo
árvore.
Para verificar a qualidade dos limitantes gerados pela heurı́stica, um algoritmo
exato baseado em branch-and-bound foi implementado usando a biblioteca GLPK e um
modelo de PLI para o problema. Após a construção do algoritmo exato para o problema
das peseudo árvores, comparamos a execução do algoritmo exato com os valores obtidos
pela heurı́stica. Como esperado, o valor ótimo (S*), obtido pelo algoritmo exato, é menor
do que aqueles obtidos pela heurı́sca, mas com um tempo de execução bem maior comparado aos tempos obtidos pela heurı́stica. O tempo do algoritmo exato chega a 134,9
segundos em instâncias fáceis, nas quais o número de vertices é de apenas 26, enquanto o
tempo gasto pela heurı́stica fica próximo de zero.
A Tabela 1 apresenta um resumo dos testes realizados para avaliar a qualidade da
solução gerada pela heurı́stica. Na tabela, os resultados estão agrupados pelo número de
vértices do grafo de entrada.
Tabela 1. Resumo comparativo da qualidade dos limitantes
total
100%
82,1%
tempo médio (em seg)
12,6
108
gap s/ 2-opt
18,2%
18,7%
gap c/ 2-opt
14.7%
17,7%
• tempo médio/s tempo médio gasto pelo algoritmo exato (em segundos);
• gap s/ 2-opt qualidade da solução gerada pela heurı́stica sem Two-Change;
• gap c/ 2-opt qualidade da solução gerada pela heurı́stica com Two-Change.
Como pode ser observado na Tabela 1, a heurı́stica mostrou-se muito eficaz nos
testes realizados quando comparado ao algoritmo exato. Analisando-se os resultados entre
o algoritmo exato e a heurı́stica em instâncias com 26 vértices, obtivemos um GAP médio
de apenas 14, 7% que demonstra que além da heurı́stica resolver o problema de forma
rápida ela também constrói soluções muito próximas às do algoritmo exato. As colunas
tempo médio e total mostram a dificuldade do algoritmo exato em resolver as instâncias
testes com 51 vértices.
4. Conclusões e trabalhos futuros
Testes preliminares mostraram a eficiência e agilidade da heurı́stica proposta neste
trabalho para a construção de pseudo árvores de custo mı́nimo. Testes adicionais em
instâncias mais complexas devem ser realizados para analisar o tempo gasto e os valores
obtidos em relação ao algoritmo exato, para então obter uma estimativa mais precisa da
qualidade da heurı́stica em relação ao algoritmo exato.
Futuramente, pretende-se incorporar a heurı́stica aqui proposta como uma
heurı́stica de pricing dentro de um algoritmo branch-and-price para o problema das m
pseudo árvores capacitadas, potencialmente reduzindo o tempo do algoritmo.
Referências
Croes, G. A. (1958). A method for solving traveling salesman problems. Operations
Research, 6:791–812.
Hill, A. and Voss, S. (2015). Optimal capacitated ring trees. EURO Journal on Computational Optimization, pages 1–30.
Hwang, F. K., Richards, D. S., and Winter, P. (1992). The Steiner tree problem. Elsevier.
Prim, R. C. (1957). Shortest connection networks and some generalizations. Bell System
Technical Journal, 36:1389–1401.
Download

o problema da pseudo´arvore capacitada de custo - ERI