HEURÍSTICAS PARA O PROBLEMA DA ÁRVORE GERADORA MÍNIMA PROBABILÍSTICA Rafael Ferreira Barra de Souza, Sebastián Urrutia Departamento de Ciência da Computação Universidade Federal de Minas Gerais (UFMG) Av. Antônio Carlos 6627 Prédio do ICEx Pampulha CEP 31270-010 Belo Horizonte Minas Gerais Brasil {rbarra, surrutia}@dcc.ufmg.br RESUMO Neste trabalho procura-se descrever e analisar heurísticas para obter boas soluções viáveis para o problema da árvore geradora mínima probabilística (PMST). O PMST é uma generalização natural do problema clássico da árvore geradora mínima (MST) e é frequentemente um modelo mais realista, que pode ser utilizado em diversas aplicações que envolvem roteamento e escalonamento, incluindo desenho de circuitos VLSI, logística e telecomunicações. O PMST ilustra a situação pertinente quando nem todos os nós estão deterministicamente presentes, mas, eles estão presentes conforme uma determinada probabilidade. Embora existam casos específicos deste problema que podem ser tratados em tempo polinomial, sabe-se que o problema é NP- Difícil no caso geral. PALAVRAS CHAVE. Árvore geradora mínima probabilística, Heurísticas, Otimização a priori. Área principal: Heurísticas, Teoria de grafos, Redes. ABSTRACT In this paper we describe and analyze heuristics for obtaining fair solutions to the probabilistic minimum spanning tree (PMST) problem. The PMST problem is a natural generalization of the classical minimum spanning tree (MST) problem and is frequently a more realistic model, which can be applied to many applications that involve routing and scheduling problems, including VLSI design, logistics and telecommunications. The PMST problem addresses circumstances that arise when not all nodes are deterministically present but, rather, nodes are present with known probabilities. Although there are some special cases that are solvable in polynomial time, it is known that the PMST problem is NP-Hard in the general case. KEYWORDS. Probabilistic Minimum Spanning Tree. Heuristics. A priori optimization. Main area: Heuristics, Graph Theory, Networks. 1344
1. Introdução O problema da Árvore Geradora Mínima (MST, do inglês Minimum Spanning Tree) consiste em se encontrar uma árvore geradora de custo mínimo em um grafo conectado através de arestas com custos para conectar seus vértices. Este é um problema muito bem estudado, possuindo diversos algoritmos que o resolvem em tempo polinomial, conforme proposto por Borůvka (1926), Kruskal (1956) e Prim (1957). Naturalmente, foram surgindo novas variações do problema conforme a demanda em situações práticas. Dentre elas podemos exemplificar a árvore geradora mínima com restrição de grau, proposta por Narula e Ho (1980), estocástica, proposta por Ishii et al. (1981), quadrática, por Xu (1995), e, por fim, a árvore geradora mínima probabilística, proposta por Bertsimas (1990). O problema da Árvore Geradora Mínima Probabilística (PMST, de Probabilistic MST) se aplica em circunstâncias nas quais os nós estão presentes conforme uma determinada probabilidade. Mesmo que alguns casos específicos do problema possam ser resolvidos em tempo polinomial, este problema é NP-Difícil, conforme Bertsimas (1990). O problema é NP-Difícil quando o grafo não é completo e os custos das arestas são iguais, ou se o grafo é completo e os custos podem assumir dois valores distintos, 1 ou M, por exemplo. Destaca-se, ainda, a dificuldade do PMST quando a probabilidade dos vértices é idêntica para todos eles. Por outro lado, sempre que uma árvore geradora mínima possui uma topologia em estrela, o problema da árvore geradora mínima probabilística se reduz ao problema da árvore geradora mínima clássico e, então, ele pode ser resolvido em tempo polinomial. Em instâncias onde as probabilidades dos nós estarem presentes são muito baixas, conforme Bertsimas (1990), o problema é praticamente equivalente ao problema de modelagem de redes, que foi provado como sendo NP-Difícil em Garey e Johnson (1979). A busca por uma árvore geradora de um grafo que considera que os nós possuam uma probabilidade de estarem presentes tem diversas aplicações práticas, desde problemas relacionados a roteamento e escalonamento, até problemas de transporte, projetos de circuitos VLSI, estruturas organizacionais e telecomunicações. Estas aplicações são, inclusive, citadas em Abuali et al (1994, 1995) e até exemplificadas em Bertsimas (1988). O PMST é modelado como uma variação do problema clássico do MST. Dado um grafo, G = (V, E), onde há um custo associado a cada aresta e uma probabilidade associada a cada vértice, conhecida a priori, deseja-se construir uma árvore geradora para este grafo. O custo ativo desta árvore é definido como a soma dos custos das arestas que conectam nós ativos em determinado momento. O problema PMST tem como objetivo encontrar uma árvore geradora a priori, cujo custo ativo esperado seja o menor possível. Existem trabalhos que abordam o PMST através de algoritmos genéticos, tal como em Abuali et al. (1994, 1995). Neste trabalho propõe-se uma abordagem para a resolução do problema utilizando heurísticas construtivas baseadas no algoritmo de Prim, além da descrição de um procedimento de simulação para estimar o custo de uma árvore geradora probabilística. O restante deste artigo se organiza da seguinte maneira. Na seção 2 o PMST é formulado segundo Bertsimas (1990). A seguir, na seção 3, descrevemos as heurísticas propostas e seus objetivos. Na seção 4 é apresentada uma alternativa para o cálculo do custo ativo esperado de uma árvore através de simulação. Na seção 5 são apresentados os resultados comparativos das heurísticas, bem como os resultados das simulações. Finalmente, a última seção apresenta as conclusões e trabalhos futuros. 2. Formulação Dado um grafo não direcionado G = (V, E), não necessariamente completo, uma função de custo c: E R+, e uma função de probabilidade P: 2 V [0,1], que mapeia cada subconjunto de nós com uma probabilidade, o objetivo do PMST é encontrar uma árvore geradora T, que minimize o custo ativo esperado E[L T ], onde E L T = P S L T S, S V 1345
onde L T S é a soma das arestas da árvore T necessárias para possibilitar a conexão de todos os nós de S. Se um nó i está ativo com uma probabilidade p i, sendo a ativação dos nós eventos independentes, Bertsimas (1990) mostra que o custo ativo esperado, E[L T ], para uma árvore geradora mínima, é dado pela equação E L T = c e 1 1 p i 1 1 p i e T i K e i V K e. A operação de somatório é feita sobre todas as arestas existentes na árvore T. A remoção de uma aresta e divide T em duas sub-árvores, representadas como K e e V K e. Na fórmula acima o custo da aresta é multiplicado pela probabilidade da aresta estar ativa em um determinado momento. Pode-se calcular a probabilidade de uma aresta ser ativa como a probabilidade de se ter um nó ativo em cada uma das componentes conexas geradas pela eliminação da aresta da árvore. Isto se deve ao fato de que, em uma árvore, entre todo par de nós existe apenas um caminho. Como as probabilidades são independentes, a probabilidade da aresta ser ativa pode ser calculada como a multiplicação das probabilidades de pelo menos um nó estar presente em cada uma das componentes conexas. A probabilidade de pelo menos um nó estar presente em cada uma das componentes conexas pode ser calculada como um menos a probabilidade de nenhum nó estar presente. Como forma de ilustrar o problema, pode-se levar em consideração um grafo qualquer com dez nós e sua árvore geradora mínima, T, ilustrada na figura 1. A partir daí, pressupõe-se que em um momento futuro, o conjunto de nós presentes é dado por S = {2,3,5,6,7,10}. A partir daí, definimos T(S) como a mínima sub-árvore de T necessária para possibilitar a conexão de todos os nós de S. T(S) é ilustrada na figura 2. As arestas (4,1) e (1,7) não estão conectadas em T(S), pois os vértices 4 e 1 não estão ativos. Porém, as arestas (6,9) e (7,9), bem com as arestas (5,8) e (8,10), permanecem presentes em T(S). Isto acontece pois existem nós ativos, 6 e 10, que dependem dos nós 9 e 8 para estarem conectados à sub-árvore T(S). 4 2 3 4 2 3 1 5 1 5 6 7 8 6 7 8 9 10 9 10 Figura 1: Grafo com árvore geradora mínima T. Figura 2: Sub-árvore T(S). 3. Heurísticas propostas O algoritmo de Prim (1957) em sua forma clássica serviu como base para a elaboração das heurísticas utilizadas neste trabalho. A primeira heurística proposta consiste na construção da árvore geradora por meio do algoritmo de Prim, sem considerar as probabilidades dos nós. Apenas o custo das arestas é levado em conta para a computação do custo de inserção de uma aresta. Dado um grafo para o qual desejamos encontrar uma árvore geradora mínima, inicia-se com a escolha de uma subárvore inicial composta apenas de um vértice. Iterativamente, o vértice que se conecta à árvore pela aresta de menor custo é adicionado a ela. Este processo continua até que todos os vértices do 1346
grafo pertençam à árvore, isto é, até que a árvore seja uma árvore geradora. Como forma de agilizar a escolha do vértice que proporciona a aresta de menor custo a cada iteração, é utilizado um heap para armazenar as arestas que permitem a ligação dos vértices da subárvore aos vértices remanescentes do grafo. No início da execução o heap possui todas as arestas que podem ser conectadas ao vértice inicial, ordenadas por custo. À medida que novos nós são incluídos na árvore que vai sendo construída, a quantidade de arestas no heap vai diminuindo e as arestas vão sendo substituídas por arestas de custo menor, permitindo sempre o acesso rápido em ordem O(1) à menor aresta que conecta um vértice não conectado a qualquer vértice já presente na árvore. A segunda heurística, chamada de Prim-D, também é embasada no algoritmo de Prim, porém o cálculo do custo de cada aresta a ser conectada é proporcional ao caminho mais longo do vértice ao qual o candidato a ser inserido se conecta para outro nó da árvore. Pretende-se, com esta heurística, avaliar se é possível construir árvores com custo ativo esperado não muito alto mantendo o diâmetro da árvore pequeno. Diâmetros curtos para árvores geralmente significam um número maior de folhas. Mantendo os caminhos mais longos menores, espera-se que a probabilidade das arestas fiquem menores. Um exemplo deste tipo de situação pode ser visto na figura 3. Nesta figura, temos duas árvores oriundas de um mesmo grafo. Na árvore da esquerda, temos poucas folhas e um diâmetro de 11. No caso de estarem ativos apenas os nós marcados em preto, todas as arestas da árvore deverão estar ativas dado que o caminho entre eles passa por todos os nós. Já na árvore da direita a ativação de apenas os nós pretos dispensa a ativação de todas as arestas que se conectam aos nós brancos. Isto acaba diminuindo o custo ativo da árvore neste caso. D = 11 D = 3 Figura 3: Arestas ativas em duas árvores geradoras de um mesmo grafo. Nesta heurística, busca-se manter o diâmetro da árvore, desencorajando a conexão de arestas que aumentem o seu diâmetro. A exemplo da árvore na figura 4, temos um vértice que pode ser conectado à árvore através dos nós cinza e branco. Supondo que as duas prováveis arestas possuem custo igual, o nó cinza é preferível pois a inclusão do novo vértice não aumenta o diâmetro da árvore. Isto não aconteceria caso fosse feita uma conexão com o nó branco, que implicaria em aumentar o diâmetro da árvore de 7 para 8. Para decidir entre arestas de custo diferente, deve ser realizada a multiplicação do custo da aresta pelo caminho mais longo, escolhendo-se o menor valor. Assim como na primeira heurística, as arestas candidatas são mantidas em um heap, mas a sua atualização também atualiza o caminho mais longo de cada um dos nós a cada operação de inclusão. 1347
Figura 4: Conexão de um nó à árvore baseado na heurística Prim-D. A terceira heurística, chamada de Prim-P, baseia-se também no algoritmo de Prim, diferindo-se dele apenas na etapa de computação do custo das arestas. O custo das arestas nesta heurística é definido pelo custo original da aresta no grafo, dividido pela probabilidade do vértice estar presente. No algoritmo de Prim, quanto mais cedo um nó é inserido, mais chance ele tem de ser um nó essencial para a conectividade da árvore dado que nos seguintes passos vários outros nós podem se conectar a ele. Observa-se que o último nó inserido pelo algoritmo de Prim é sempre uma folha da árvore. Espera-se que os vértices que têm mais chances de estarem ativos sejam nós internos da árvore, ao contrário dos vértices com probabilidade pequena. Como os nós mais internos são aqueles que mantêm a conectividade da árvore, é desejável que estes tenham sempre uma probabilidade maior de estarem ativos caso contrário, em uma situação real com vértices com probabilidade pequena de estarem ativos, ao se localizarem mais internamente na árvore, devem ser tornados ativos meramente para garantir a conectividade de todos os vértices ativos. O resultado disto são folhas com probabilidade menor de estarem ativas. Este tipo de resultado favorece cortes na árvore, conforme o exemplo ilustrado na figura 5. A figura do meio representa a ativação dos nós da árvore geradora da esquerda. Ao realizarmos cortes para remover os nós inativos, representados em branco, várias arestas são cortadas. Considerando o nó cinza também como inativo, ele não pode ser cortado por garantir a conectividade de um nó ativo. Ativação Cortes Figura 5: Ativação e cortes em uma árvore geradora. Igualmente às heurísticas anteriores, utiliza-se um heap, mas levando em conta a probabilidade do vértice no cálculo do custo. 1348
4. Simulações Observando-se a composição da última equação apresentada para o cálculo do custo ativo de uma árvore geradora, e, sabendo que as probabilidades são sempre compostas por números entre 0 e 1, percebe-se que os produtos das probabilidades podem levar a números de ordem de grandeza muito pequena. A exemplo de uma instância de 100 nós, onde todos os nós possuem probabilidade igual a 0.5, o cálculo do custo ativo esperado de uma aresta que divida a árvore ao meio, envolverá cálculos com números da ordem de 1 10 16. Isto pode levar ao surgimento de erros numéricos. Além disso, considerando-se a complexidade computacional de se processar o cálculo do custo ativo esperado de uma árvore geradora probabilística, estabelecer um ambiente de simulação para o cálculo deste mesmo custo pode ser interessante. No trabalho de Balaprakash et al (2007), que trata de algoritmos de busca local estocástica, é apresentado um estudo de caso de busca local baseada em estimativas para o problema do caixeiro viajante probabilístico. As idéias que sustentam o estudo consistem de técnicas de speed-up para melhorar algoritmos de busca local e também da utilização de estimativas empíricas para avaliar movimentos em busca local. Um entendimento em alto nível deste problema também se enquadra no PMST, pois trata-se de um problema que consiste de uma otimização a priori, que define uma solução, solução esta que minimiza o custo de soluções conhecidas apenas a posteriori. Os resultados positivos do trabalho, que superaram as soluções previamente conhecidas para o problema, serviram como motivação para se calcular o custo das árvores geradoras mínimas trabalhadas no PMST fazendo o uso de dados experimentais, ou seja, através de estimativas empíricas. Como maneira de calcular o custo das árvores para avaliação dos resultados produzidos pelas heurísticas, são realizados os seguintes passos: Toma-se a árvore produzida pela heurística escolhida, seja ela Prim Clássico, Prim-P ou Prim-D. Aleatoriamente determina-se quais nós estão presentes e quais nós estão ausentes segundo a probabilidade de cada nó. Sobre esta árvore, realizam-se operações de corte, que servem para remover nós não ativos. Nesta operação, não são removidos nós ausentes dos quais dependam nós ativos. O custo da árvore gerada pela heurística é então determinado pela soma dos custos das arestas presentes. Esta simulação é executada por uma quantidade específica de vezes, e, o custo atribuído à árvore gerada pela heurística é computado a partir da média dos custos encontrados. 5. Resultados Nesta seção são apresentados os resultados que permitem avaliar as heurísticas propostas, bem como comparar o custo ativo esperado das árvores construídas com o custo computado através de simulações realizadas. A geração das instâncias e a codificação das heurísticas utilizadas neste trabalho foram desenvolvidos na linguagem C++ e executados em uma máquina com processador Intel Core 2 Duo de 1.83GHz, 3GB de RAM e sistema operacional Windows Vista SP1. Para a realização dos testes foram geradas instâncias a partir de algumas das instâncias do TSPLIB para o problema do caixeiro viajante simétrico. As instâncias geradas formam sempre grafos completos. O custo de cada aresta é dado pela distância euclidiana de um nó a outro. Uma probabilidade foi associada a cada nó. Para cada instância escolhida do TSPLIB, gerou-se uma instância onde todos os nós possuíam probabilidade igual, de valor 0.5, e outra instância onde os nós tiveram probabilidades de 0.1 a 0.9 distribuídas uniformemente. A tabela 1 compara o custo ativo esperado das árvores construídas pelas heurística, de forma que para cada instância, os valores destacados em negrito identificam o menor custo ativo esperado calculado para as árvores geradas pelas heurísticas. Na terceira e quarta colunas é possível observar a comparação do custo ativo esperado das árvores construídas a partir do algoritmo de Prim clássico com o das árvores construídas a partir da heurística Prim-D para as instâncias onde todos os nós possuem probabilidade igual a 0.5. Neste caso, o resultado da heurística Prim-P é o mesmo da primeira heurística. Ainda na tabela 1, da quinta coluna em diante, tem-se a comparação das três heurísticas para instâncias onde os nós possuem probabilidades que variam uniformemente entre 0.1 e 0.9. 1349
Tabela 1: Comparação das heurísticas Instâncias Prim Clássico / Prim-P Prim-D Prim Clássico Prim-P Prim-D instância nós p=[0.5] p=[0.1,0.9] att48 48 21451,60 23685,30 20856,80 21216,60 23850,80 st70 70 462,51 512,61 450,26 447,39 499,91 rat99 99 933,72 936,60 864,41 865,12 871,76 eli101 101 429,93 443,95 415,91 412,34 432,43 bier127 127 74082,10 77062,80 75422,40 75422,40 79216,10 gr137 137 491,09 498,31 474,78 475,16 473,872 ch150 150 5134,87 5047,84 5188,33 5187,39 5075,30 d198 198 9729,30 10133,00 9277,42 9212,61 9638,84 gr202 202 301,00 302,15 282,24 282,24 287,00 a280 280 2078,33 2093,26 2092,75 2101,37 2098,76 fl417 417 9322,21 9523,08 9430,41 9417,91 9588,38 gr431 431 1325,95 1324,55 1305,16 1305,16 1279,90 ali535 535 1408,02 1417,90 1401,72 1401,72 1424,70 d657 657 36046,20 36268,30 35738,50 35752,50 35908,80 u724 724 32047,40 32186,50 32145,70 32147,10 32304,60 d1291 1291 41697,00 41920,40 41126,40 41116,00 41411,70 u1432 1432 118600,00 119312,00 119519,00 118168,00 119310,00 fl1577 1577 18072,40 17983,20 18020,00 18039,50 17972,70 d1655 1655 49112,30 49041,60 48144,40 48275,20 48106,00 vm1748 1748 248160,00 250832,00 248478,00 248479,00 252268,00 rl1889 1889 253255,00 253991,00 253461,00 253375,00 254110,00 d2103 2103 71774,40 72063,00 70986,10 70955,40 71374,40 u2319 2319 178114,00 186322,00 180106,00 178568,00 188250,00 pr2392 2392 296549,00 296204,00 294197,00 294197,00 292783,00 Como pode ser observado quando as probabilidades são de 0.5, a heurística baseada no algoritmo de Prim Clássico obtém melhores resultados, ou seja, árvores de custo médio menor que a heurística Prim-D. Isto parece indicar que o custo da aresta é mais importante que os comprimentos dos caminhos mais longos neste caso. Analisando-se os resultados para árvores geradas a partir de instâncias cujos nós possuíam probabilidade variando entre 0.1 e 0.9, observa-se que a heurística que mais vezes obteve a melhor solução foi a heurística Prim-P. Isto parece indicar que neste caso compensa inserir arestas de custo mais elevado para inserir nós com maior probabilidade de estarem ativos antes dos nós com menor probabilidade. 1350
A tabela 2 apresenta os resultados obtidos em simulação para o custo das árvores geradas para instâncias com nós de probabilidades idênticas, iguais a 0.5. Estes valores são comparados com o custo ativo esperado calculado para as árvores geradas, conforme a instância. Para cada comparação, há uma coluna (%) que denota a diferença percentual entre o custo da árvore obtido por simulação e o custo ativo esperado calculado para a árvore. As simulações foram realizadas 50 vezes para cada árvore, portanto o valor exibido nas colunas de simulação representam uma média do custo medido das árvores. Tabela 2: Resultados de simulação para probabilidade dos nós constante, igual a 0.5. Instâncias Prim Clássico / Prim-P Prim-D p=[0.5] p=[0.5] instância nós heurística simulação (%) heurística simulação (%) att48 48 21451,60 21244,40 0,97 23685,30 23468,60 0,91 st70 70 462,51 464,52-0,43 512,61 517,60-0,97 rat99 99 933,72 930,84 0,31 936,60 934,96 0,17 eli101 101 429,93 435,85-1,38 443,95 449,55-1,26 bier127 127 74082,10 74886,40-1,09 77062,80 77676,50-0,80 gr137 137 491,09 486,31 0,97 498,31 491,92 1,28 ch150 150 5134,87 5089,09 0,89 5047,84 5047,84 0,00 d198 198 9729,30 9688,41 0,42 10133,00 10069,70 0,62 gr202 202 301,00 300,44 0,18 302,15 302,80-0,22 a280 280 2078,33 2093,28-0,72 2093,26 2095,17-0,09 fl417 417 9322,21 9338,68-0,18 9523,08 9513,63 0,10 gr431 431 1325,95 1324,67 0,10 1324,55 1326,12-0,12 ali535 535 1408,02 1406,68 0,10 1417,90 1419,19-0,09 d657 657 36046,20 35957,40 0,25 36268,30 36174,50 0,26 u724 724 32047,40 32040,60 0,02 32186,50 32185,90 0,00 d1291 1291 41697,00 41579,00 0,28 41920,40 41728,00 0,46 u1432 1432 118600,00 118352,00 0,21 119312,00 119336,00-0,02 fl1577 1577 18072,40 18067,00 0,03 17983,20 17990,90-0,04 d1655 1655 49112,30 49056,20 0,11 49041,60 48942,60 0,20 vm1748 1748 248160,00 247632,00 0,21 250832,00 250341,00 0,20 rl1889 1889 253255,00 253659,00-0,16 253991,00 254430,00-0,17 d2103 2103 71774,40 71684,10 0,13 72063,00 71988,20 0,10 u2319 2319 178114,00 179020,00-0,51 186322,00 186644,00-0,17 pr2392 2392 296549,00 297098,00-0,19 296204,00 296592,00-0,13 Observa-se, através da comparação dos resultados da tabela 2, que a simulação apresenta árvores de custo sempre muito próximos do custo ativo esperado. Este é um resultado interessante por mostrar que, como os custos medidos através de simulação são bastante próximos dos custos calculados através das equações, esta pode ser uma alternativa interessante para a estimativa do custo das árvores geradoras probabilísticas geradas. A tabela 3, análoga à tabela 2, exibe os resultados de simulação porém para os nós que possuem probabilidades entre 0.1 e 0.9. 1351
Tabela 3: Resultados de simulação para probabilidade dos nós entre 0.1 e 0.9. Instâncias Prim Clássico Prim-P Prim-D p=[0.1,0.9] p=[0.1,0.9] p=[0.1,0.9] instância nós heurística simulação (%) heurística simulação (%) heurística simulação (%) att48 48 20856,80 20602,80 1,22 21216,60 20938,80 1,31 23850,80 23241,20 2,56 st70 70 450,26 447,28 0,66 447,39 444,81 0,58 499,91 497,96 0,39 rat99 99 864,41 866,52-0,24 865,12 866,70-0,18 871,76 872,71-0,11 eli101 101 415,91 423,04-1,71 412,34 419,39-1,71 432,43 442,25-2,27 bier127 127 75422,40 76254,40-1,10 75422,40 76254,40-1,10 79216,10 79999,20-0,99 gr137 137 474,78 472,63 0,45 475,16 472,92 0,47 473,872 470,90 0,63 ch150 150 5188,33 5150,17 0,74 5187,39 5148,37 0,75 5075,30 5070,61 0,09 d198 198 9277,42 9277,90-0,01 9212,61 9210,24 0,03 9638,84 9625,27 0,14 gr202 202 282,24 281,49 0,26 282,24 281,60 0,23 287,00 287,00 0,00 a280 280 2092,75 2096,16-0,16 2101,37 2105,33-0,19 2098,76 2090,61 0,39 fl417 417 9430,41 9423,41 0,07 9417,91 9410,54 0,08 9588,38 9554,35 0,35 gr431 431 1305,16 1308,95-0,29 1305,16 1309,15-0,31 1279,90 1287,47-0,59 ali535 535 1401,72 1399,08 0,19 1401,72 1399,13 0,18 1424,70 1425,85-0,08 d657 657 35738,50 35561,80 0,49 35752,50 35579,50 0,48 35908,80 35735,40 0,48 u724 724 32145,70 32017,30 0,40 32147,10 32027,70 0,37 32304,60 32151,80 0,47 d1291 1291 41126,40 40959,30 0,41 41116,00 40901,80 0,52 41411,70 41221,20 0,46 u1432 1432 119519,00 119650,00-0,11 118168,00 118349,00-0,15 119310,00 119455,00-0,12 fl1577 1577 18020,00 18011,40 0,05 18039,50 18031,10 0,05 17972,70 17969,70 0,02 d1655 1655 48144,40 48259,30-0,24 48275,20 48362,10-0,18 48106,00 48171,70-0,14 vm1748 1748 248478,00 247526,00 0,38 248479,00 247527,00 0,38 252268,00 251630,00 0,25 rl1889 1889 253461,00 253553,00-0,04 253375,00 253473,00-0,04 254110,00 254367,00-0,10 d2103 2103 70986,10 71043,30-0,08 70955,40 71011,70-0,08 71374,40 71437,20-0,09 u2319 2319 180106,00 180314,00-0,12 178568,00 178762,00-0,11 188250,00 188438,00-0,10 pr2392 2392 294197,00 294567,00-0,13 294197,00 294567,00-0,13 292783,00 293070,00-0,10 Da mesma forma como foi constatado para a tabela 2, é possível perceber que os valores dos custos não diferem por mais que poucos pontos percentuais, reafirmando a proximidade de valores de custos obtidos por simulação e custos para árvores obtidos através das equações definidas para o problema. 6. Conclusões Neste trabalho foram apresentadas três heurísticas construtivas para um problema pouco estudado e de difícil resolução. O uso de heurísticas se justifica pela dificuldade em se encontrar uma solução exata para o PMST. Conforme os resultados apresentados, concluímos que podemos utilizar heuristicamente a probabilidade dos nós para reduzir o custo ativo esperado da árvore geradora. Através da análise dos custos das árvores medidos através de simulações, foi possível constatar que é possível utilizar este recurso como forma de medir o custo das árvores geradoras, alternativamente ao uso das equações para cálculo de custo ativo esperado, evitando-se assim problemas numéricos. Trabalhos futuros incluem o uso de metaheurísticas e algoritmos de busca local. Pretende-se também verificar o comportamento das heurísticas em outros tipos de instâncias. Em particular, acreditamos que instâncias tais que todos os nós tenham uma probabilidade constante baixa a heurística Prim-D pode obter melhores resultados. 1352
7. Agradecimentos O autor Sebastián Urrutia agradece ao Programa de Auxílio à Pesquisa de Recém Doutores Contratados Edital PRPq/UFMG 02/2006, que financia parcialmente o seu trabalho. Referências Abuali, F. N.; Schoenefeld, D. A.; Wainwright, R. L., (1994). Designing Telecommunications Networks Using Genetic Algorithms and Probabilistic Minimum Spanning Trees, Volume 03 p. 242-246, ACM Press. Abuali, F. N.; Wainwright, R. L.; Schoenefeld, D. A., (1995). Determinant Factorization: A New Encoding Scheme for Spanning Trees Applied to the Probabilistic Minimum Spanning Tree Problem, Proceedings of The 6 th Intl. Conf. on Genetic Algorithms (ICGA-95), Pittsburgh, PA. Morgan Kaufmann Publisher, pp. 470-477. Balaprakash, P., Birattari, M., Stützle, T. (2007). Engineering Stochastic Local Search Algorithms: A Case Study in Estimation-based Local Search for the Probabilistic Traveling Salesman Problem. IRIDIA Technical Report Series Technical Report No. TR/IRIDIA/2007-022 Bertsimas, D. J., (1988). The Probabilistic Minimum Spanning Tree, Part I: Complexity and Combinatorial Properties, Massachusetts Institute of Technology, Sloan School of Management Working Paper, Rm E53-359. Bertsimas, D. J., (1990). The Probabilistic Minimum Spanning Tree Problem, Networks, Volume 20: 245-275. Borůvka, O. (1926). O jistém problému minimálním, Práce mor. přírodověd. spol. v Brně III 3: 37 58. Garey, M. R., Johnson, D. S. (1979). Computers and Intractability: A Guide to the Theory of NPCompleteness. Freeman, New York. Ishii,H., Shiode, H., Nishida, T. (1981). Stochastic spanning tree problem, Discrete Applied Mathematics 3 263±273. Kruskal, J.B. Jr., (1956). On the shortest spanning subtree of a graph and the traveling salesman problem, Proc. ACM 7/1 48±50. Narula, S.C., Ho, C.A. (1980). Degree-constrained minimum spanning tree, Computer & Operations Research 7 239±249. Prim, R.C. (1957). Shortest connection networks and some generalizations, Bell System Technical Journal 36 1389±1401. TSPLIB (n.d.). TSPLIB, a library of sample instances for the TSP (and related problems) from various sources and of various types Disponível em: http://www.iwr.uni-heidelberg.de/groups/comopt/software/tsplib95/, consultado pela última vez em 15 de maio de 2008). Xu, W. (1995). On the quadratic minimum spanning tree problem, in: M. Gen, W. Xu (Eds.), Proceedings of 1995 Japan- China International Workshops on Information Systems, Ashikaga, Japan, pp. 141±148. 1353