PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

42
i PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA NUMÉRICA PARA PROBLEMAS DE MÉDIO PORTE UTILIZANDO FORMULAÇÕES COMPACTAS DE MULTI-FLUXO Arthur Besso Dissertação de Mestrado apresentada ao Programa de Pós-graduação em Engenharia de Sistemas e Computação, COPPE, da Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Mestre em Engenharia de Sistemas e Computação. Orientador: Nelson Maculan Filho Rio de Janeiro Setembro de 2015

Transcript of PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

Page 1: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

i

PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA NUMÉRICA PARA

PROBLEMAS DE MÉDIO PORTE UTILIZANDO FORMULAÇÕES COMPACTAS DE

MULTI-FLUXO

Arthur Besso

Dissertação de Mestrado apresentada ao Programa de

Pós-graduação em Engenharia de Sistemas e

Computação, COPPE, da Universidade Federal do Rio

de Janeiro, como parte dos requisitos necessários à

obtenção do título de Mestre em Engenharia de

Sistemas e Computação.

Orientador: Nelson Maculan Filho

Rio de Janeiro

Setembro de 2015

Page 2: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

ii

PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA NUMÉRICA PARA

PROBLEMAS DE MÉDIO PORTE UTILIZANDO FORMULAÇÕES COMPACTAS DE

MULTI-FLUXO

Arthur Besso

DISSERTAÇÃO SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO LUIZ

COIMBRA DE PÓS-GRADUAÇÃO E PESQUISA DE ENGENHARIA (COPPE) DA

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS

NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS EM

ENGENHARIA DE SISTEMAS E COMPUTAÇÃO.

Examinada por:

________________________________________________

Prof. Nelson Maculan Filho, D.Habil.

________________________________________________

Profa. Laura Silvia Bahiense da Silva Leite, D.Sc.

________________________________________________

Prof. Thibaut Victor Gaston Vidal, D.Sc.

RIO DE JANEIRO, RJ - BRASIL

SETEMBRO DE 2015

Page 3: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

iii

Besso, Arthur

Problema de Steiner em Grafos: uma Experiência

Numérica para Problemas de Médio Porte Utilizando

Formulações Compactas de Multi-Fluxo/ Arthur Besso. –

Rio de Janeiro: UFRJ/COPPE, 2015.

VI, 36 p.: il.; 29,7 cm.

Orientador: Nelson Maculan Filho

Dissertação (mestrado) – UFRJ/ COPPE/ Programa de

Engenharia de Sistemas e Computação, 2015.

Referências Bibliográficas: p. 35-36.

1. Steiner. 2. Multi-Fluxos. 3. Relaxação Linear. I.

Maculan, Nelson. II. Universidade Federal do Rio de

Janeiro, COPPE, Programa de Engenharia de Sistemas e

Computação. III. Título.

Page 4: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

iv

Resumo da Dissertação apresentada à COPPE/UFRJ como parte dos requisitos necessários para

a obtenção do grau de Mestre em Ciências (M.Sc.)

PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA NUMÉRICA PARA

PROBLEMAS DE MÉDIO PORTE UTILIZANDO FORMULAÇÕES COMPACTAS DE

MULTI-FLUXO

Arthur Besso

Setembro/2015

Orientador: Nelson Maculan Filho

Programa: Engenharia de Sistemas e Computação

Este trabalho estuda o Problema de Steiner em Grafos, o qual é conhecidamente

NP-difícil. No entanto, sua relaxação linear tem complexidade polinomial. Começamos

definindo o problema e suas principais características. Apresentamos alguns métodos para

resolver o problema já existentes na literatura. Em seguida, mostramos três formulações para

o problema usando multi-fluxo, comparando-as antes de selecionar aquela que mais se

aproxima do problema original. Realizamos alguns testes em diferentes instâncias para

verificar a proximidade entre a relaxação e o problema original.

Page 5: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

v

Abstract of Dissertation presented to COPPE/UFRJ as a partial fulfillment of the requirements

for the degree of Master of Science (M.Sc.)

STEINER PROBLEM IN GRAPHS: A NUMERIC EXPERIENCE FOR MEDIUM-SIZE

PROBLEMS USING MULTI-FLOW COMPACT FORMULATIONS

Arthur Besso

September/2015

Advisor: Nelson Maculan Filho

Department: Systems and Computer Engineering

This work studies the Steiner Tree Problem, which is known to be NP-hard. However,

its linear relaxation has polynomial complexity. We begin by defining the problem and its

major characteristics. We introduce some methods to solve the problem that already exist in

literature. Then we show three formulations for the problem using multi-flow, comparing them

before selecting the one that gets the closest to the original problem. We do some tests in

different instances in order to check the closeness between the relaxation and the original

problem.

Page 6: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

vi

SUMÁRIO

1 Introdução .......................................................................................................................... 1

2 Definição do Problema ....................................................................................................... 2

2.1 Casos Particulares ........................................................................................................... 3

2.2 Aplicações ..................................................................................................................... 4

3 Algumas Formulações do Problema .................................................................................. 5

3.1 Formulação com Restrição de Grau .................................................................................. 7

3.2 Formulação de Fluxo Acumulado ..................................................................................... 8

3.3 Formulação de Cobrimento de Cortes................................................................................ 8

4 O Modelo de Fluxos Não Simultâneos ............................................................................. 10

4.1 Variações do Modelo de Fluxos Não Simultâneos............................................................. 12

4.2 Comparação entre as formulações ................................................................................... 14

5 Relaxação Linear ............................................................................................................. 17

6 Resultados Computacionais ............................................................................................. 23

6.1 Ambiente Computacional .............................................................................................. 23

6.2 Descrição dos Resultados .............................................................................................. 23

6.3 Comparação com outro modelo ...................................................................................... 30

6.4 Exemplo Ilustrativo....................................................................................................... 33

7 Conclusão ........................................................................................................................ 34

Referências Bibliográficas ................................................................................................... 35

Page 7: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

1

1 Introdução

A programação inteira ou programação linear inteira mista, também chamada de

otimização combinatória, é empregada para modelar e resolver grande parte dos problemas de

logística envolvendo variáveis discretas. Um dos problemas mais conhecidos e estudados nessa

área é o Problema de Steiner em Grafos.

Um grafo é um conjunto de vértices e arestas (que ligam pares de vértices). Dado um

grafo conexo (existe caminho entre cada par de vértices), sem laços ou arestas múltiplas e não-

direcionado, o Problema de Steiner em Grafos se propõe a encontrar o conjunto de arestas de

custo mínimo que conecta um determinado subconjunto de vértices do grafo.

Esse problema, computacionalmente, não é tão simples de se resolver. Sua versão de

decisão é NP-difícil. No entanto, a sua relaxação (na versão de decisão) possui complexidade

polinomial.

Começamos definindo o problema mais precisamente. Em seguida, apresentamos os

principais modelos existentes na literatura. Depois, escolhemos um modelo com três variações

para trabalhar. Após compararmos essas variações e as suas respectivas relaxações lineares,

optamos por uma delas, cujo desempenho numérico vamos testar antes de, finalmente,

avaliarmos os resultados.

Não estamos interessados na eficiência do modelo. O que queremos mostrar é que, para

a formulação que vamos utilizar, a relaxação linear é muito próxima ao problema original.

A grande vantagem deste trabalho está na aplicação de uma técnica simples que produz

bons resultados para instâncias de médio porte, como será visto mais adiante.

Page 8: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

2

2 Definição do Problema

O Problema de Steiner surgiu a partir do Problema de Fermat, que consiste em, dado

um triângulo, encontrar o ponto cuja soma das distâncias aos vértices é mínima. Esse problema

foi generalizado para qualquer figura em qualquer dimensão e hoje é conhecido como Problema

de Steiner Euclidiano. Posteriormente, formulou-se uma versão em grafos.

O Problema de Steiner em Grafos (em inglês, Steiner Tree Problem - STP) consiste em,

dado um grafo � = ��, ��, onde � é o conjunto de vértices e � é o conjunto de arestas, e um

subconjunto � ⊆ � de vértices desse grafo, encontrar um subgrafo conexo �’ = ��’, �’� de

custo mínimo que contenha esses vértices.

O problema pode ser mais formalmente definido da seguinte forma:

Dados: Grafo � = ��, ��, Custos ����, � ⊆ �;

Objetivo: ���’�;

Sujeito a: �′ ⊆ �, � ⊆ �′. Os vértices de S são chamados de pontos obrigatórios e os vértices de � − � são

opcionais. Os elementos de �� − �, ou seja, os vértices opcionais que entram na solução, são

conhecidos como Pontos de Steiner. O grafo-solução é denominado Árvore de Steiner, já que

a formação de ciclos piora a função objetivo.

Algumas variações do Problema de Steiner em Grafos consideram custos para os

vértices (LI et al, 2009), ou então atribuem prêmios ao passar por determinadas arestas (custos

negativos), entre outras inúmeras generalizações, muitas delas apresentadas por

Page 9: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

3

HAUPTMANN e KARPINSKI (2015). Neste trabalho, consideramos apenas os custos das

arestas, o qual é estritamente positivo.

Esse problema é conhecidamente classificado dentro da otimização combinatória como

NP-difícil, como demonstraram GAREY, GRAHAM e JOHNSON (1977), e sua versão de

decisão, mostrada abaixo, é NP-completa.

Versão de decisão do Problema de Steiner em Grafos:

Dados: Grafo � = ��, ��, Custos ����, � ⊆ �, constante �;

Questão: Existe um subgrafo de � que contém � e possui custo total no máximo �?

Isso significa que, no pior caso, o tempo de resolução é exponencialmente proporcional

ao tamanho dos dados de entrada.

2.1 Casos Particulares

Existem algumas instâncias bem simples de verificar que o problema pode ser resolvido

em tempo polinomial:

1) |�| = 1, solução trivial = S;

2) |�| = 2, problema do caminho mínimo (SPP);

3) |�| = |�|, problema da árvore geradora mínima (MSTP);

4) |�| = |�| − �, onde k é constante, bastando resolver o MSTP para cada uma das 2k

combinações de � − �, sendo T um subconjunto dos k vértices.

Page 10: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

4

2.2 Aplicações

O STP tem aplicações em diversas áreas, com destaque para telecomunicações,

abastecimento, transporte e localização. Pode-se observar que, para se melhor projetar e utilizar

redes, a modelagem de problemas nessa forma é bastante empregada. GUANGHUA e

ZHANJIANG (2010) resolveram o problema para determinar a localização de um centro de

distribuição, enquanto BURDAKOV, DOHERTY e KVARNSTRÖM (2014) aplicaram o STP

para sistemas de monitoramento e vigilância.

Muitas vezes, contudo, o modelo empregado não se baseia no STP original, mas em

uma variação do mesmo. Por exemplo, quando se pensa em segurança de redes, são incluídas

algumas restrições como:

- cada par de pontos deve ter pelo menos 2 caminhos entre si;

- nenhum vértice do grafo-solução pode ter grau muito alto.

Mesmo assim, a solução do STP original pode servir como ponto de partida para

resolver o problema modificado em vez de desenvolver algoritmos ou heurísticas próprias para

cada caso. Há situações, ainda, em que se aceita resultados não tão próximos do ótimo ou em

que se fixa um custo máximo em função do tamanho do grafo, para as quais se basear no STP

também pode ser vantajoso.

Page 11: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

5

3 Algumas Formulações do Problema

Muito já se estudou sobre o Problema de Steiner em Grafos, entre algoritmos e

heurísticas. A principal dificuldade na hora de se formular um modelo é a dicotomia entre a

precisão dos resultados e o tempo computacional de resolução. Quanto mais próximo do valor

ótimo se deseja chegar, maior o tempo gasto para resolver a formulação.

HWANG, RICHARDS e WINTER (1992) compilaram os melhores métodos da

literatura para resolver o STP. Estes incluem desde reduções e heurísticas até algoritmos exatos.

Para se ter uma visão mais completa do problema, recomenda-se a consulta desse livro,

intitulado The Steiner Tree Problem.

Em se tratando de instâncias mais complexas do problema, uma alternativa seria aplicar

reduções ao grafo dado. Esse processo consiste em identificar subgrafos em que a presença ou

ausência de determinados vértices não obrigatórios ou arestas na solução pode ser dada como

certa. Um exemplo bem simples seria uma ponte entre dois vértices obrigatórios. Esse tipo de

análise, em princípio, reduz a complexidade do problema - diminuindo a quantidade de

variáveis e restrições - porém, quando se investe muito nessa parte, o tempo computacional

gasto pode superar o tempo de resolução sem aplicar essas reduções.

Em relação às heurísticas, elas geralmente começam com uma árvore contendo todo o

conjunto de vértices obrigatórios. Em seguida, busca-se encontrar árvores com custo cada vez

menor. ROBINS e ZELIKOVSKY (2005) desenvolveram uma heurística que resolve o

problema em tempo polinomial com um fator de aproximação de 1,55. Quando não há vértices

não-obrigatórios que sejam adjacentes, esse fator cai para 1,28.

Um algoritmo exato tido como melhor para muitos autores foi formulado por

DREYFUS e WAGNER (1971) e por LEVIN (1971), os quais resolveram o STP por

Page 12: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

6

programação dinâmica. Os resultados são tão expressivos que a complexidade do algoritmo é

polinomial no tamanho do grafo, sendo exponencial apenas na quantidade de nós obrigatórios.

Aqui vamos apresentar brevemente alguns dos principais modelos. Foram escolhidas

formulações mais compactas, mesmo que a resolução seja mais complexa. Para uma relação

mais completa de outras formulações e uma análise mais detalhada, o livro citado acima é uma

boa sugestão. Outros trabalhos (MACULAN, 1987, e WINTER, 1987) também estudam

diferentes formulações do problema.

Algumas notações importantes que aparecem nos modelos são:

� = ��, �� onde � é o grafo dado e � e � são, respectivamente, seus conjuntos de vértices e

arestas;

�� = ��, �� é o grafo direcionado induzido por �; � = ���, ��, ��, �� | ��, �} ∈ �} o conjunto de arcos de ��;

�′ = ��′, �′� é o grafo correspondente à solução ótima do problema, onde �′ é o conjunto de

vértices e �′ é o conjunto de arestas de custo total mínimo

�� = variável de decisão do problema, binária: !�� = 1, "# ��, �� ∈ �′�� = 0, "# ��, �� ;

%� & =quantidade de fluxo que passa no arco ��, �� ∈ � tendo o vértice '( como origem e '&

como destino;

)� =valor do custo da aresta ��, �};

�� = )� �� =contribuição da aresta ��, �} no custo total;

* = custo total ou valor da função objetivo;

+,��� = �� ∈ �|��, �� ∈ �}; +-��� = �� ∈ �|��, �� ∈ �}.

Page 13: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

7

3.1 Formulação com Restrição de Grau

Esta formulação foi proposta por BEASLEY (1989).

Dado um grafo � = ��, ��, o custo )� de cada aresta e o conjunto de vértices

obrigatórios � ⊆ �, existe um algoritmo que resolve o problema da seguinte forma:

- Adicionar um novo vértice ('.) ao grafo G;

- Para cada vértice não obrigatório, adicionar uma aresta de custo zero ligando esse

vértice a '.;

- Adicionar uma aresta entre '. e '(, sendo que '( ∈ �;

- Encontrar a árvore geradora mínima do grafo resultante �′ = ��, ��) com a condição

de que todo vértice não obrigatório que esteja ligado a '. tenha grau 1;

- Formular o problema da seguinte forma:

/�0 1 )� ��, }∈23

�� (1)

Sujeito a:

���, �} | �� = 1} forma uma árvore geradora de G’ (2)

�.� + �56 ≤ 1, �8, 9� ∈ ��, � ∈ � − � (3)

�� ∈ �0,1}, ��, �} ∈ �� (4)

onde �� = ��8, 9� | 8 = � :; 9 = �} (5)

A expressão (1) é a função objetivo. A restrição (2) garante que toda aresta pertencente

ao grafo resultante seja um dado de entrada do problema da árvore geradora mínima. (3) e (5)

asseguram que todo vértice não obrigatório ligado a '. tenha grau 1. (4) é a restrição de

binariedade.

Mesmo que a verificação da formação de uma árvore geradora é feita em tempo

polinomial, realizar essa operação para cada solução potencialmente viável pode ter uma

demora considerável.

Page 14: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

8

3.2 Formulação de Fluxo Acumulado

Proposta por ARPIN (1984), esta formulação é mais compacta que a anterior por

envolver operações mais simples nas restrições.

Considerando que um grafo com |�| pontos obrigatórios requer |�| unidades de fluxo,

uma para cada elemento de �. Seja %� a quantidade de fluxo no arco ��, ��. O problema pode

ser enunciado assim:

/�0 1 )� �, ∈<

�� (6)

Sujeito a:

1 %� ∈=>���

− 1 %� ∈=?���

= 0, � ∈ � − � (7)

1 %& ∈=>�&�

− 1 % & ∈=?�&�

= −1 , � ∈ � (8)

0 ≤ %� ≤ |�| �� , ��, �� ∈ � (9)

�� ∈ �0,1}, ��, �� ∈ � (10)

Ordenando aleatoriamente os vértices, começamos com |�| unidades de fluxo,

descontando uma unidade para cada vértice obrigatório que encontramos. Assim, o fluxo

resultante em cada vértice obrigatório é -1 (8) e 0 em cada vértice não obrigatório (7). (9) é a

restrição de capacidade em cada arco e (10) a restrição de binariedade.

3.3 Formulação de Cobrimento de Cortes

Proposta por ANEJA (1980), esta formulação, aparentemente, tem uma complexidade

maior que as anteriores, uma vez que uma das suas restrições tem tamanho exponencial.

Page 15: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

9

Sendo � o conjunto de pontos obrigatórios e '(um elemento de �, qualquer corte � =�@, @A � de � que tiver pelo menos um vértice obrigatório em cada bipartição deve ter pelo

menos uma aresta conectando as duas partições que apareça na solução.

/�0 1 )� ��, �∈<

�� (11)

Sujeito a:

∑ �� ��, �∈C ≥ 1, ∀� = �@, @A }, '( ∈ @, � ∩ @A ≠∅ (12)

�� ∈ �0,1}, ��, �� ∈ � (13)

A restrição (12) garante que, se cada bipartição tiver ao menos um vértice obrigatório,

pelo menos uma aresta atravesse o corte. Isso é válido para qualquer corte. (13) garante a

binariedade.

Está claro que essa formulação possui uma complexidade exponencial, visto que

teríamos que calcular todos os cortes possíveis no grafo dado.

Page 16: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

10

4 O Modelo de Fluxos Não Simultâneos

Agora vamos apresentar o modelo que será estudado mais profundamente aqui e sobre

o qual vamos testar os resultados. Esse modelo foi proposto por MACULAN, PLATEAU e

LISSER (2003), baseado em um trabalho anterior de CLAUS e MACULAN (1983), e tem

como principal característica o conceito de fluxos.

As variáveis de decisão do modelo são y e z, onde y (binária) está associada à presença

de uma certa aresta no grafo-solução e z representa o fluxo real em um dado arco. Esse fluxo

está limitado à capacidade de cada aresta (0 ou 1, dependendo se a aresta pertence à solução).

Para cada vértice de S, exceto o primeiro, existe uma configuração de fluxos para cada arco.

Usaremos aqui as mesmas notações apresentadas na seção anterior.

Portanto, temos que:

�� = 1, "# ��, �} ∈ �� (14)

�� = 0, "# ��, �} ∉ �� (15)

0 ≤ %� & ≤ �� , ��, �} ∈ �, � ∈ � − �'(}, �'(} ∈ � (16)

0 ≤ % �& ≤ �� , ��, �} ∈ �, � ∈ � − �'(}, �'(} ∈ � (17)

O único parâmetro utilizado no modelo é o custo c referente a cada aresta do grafo

dado: )� é o custo de incluir a aresta ��, �} na solução.

A função objetivo do problema é minimizar o custo do grafo G’. Em termos dos

parâmetros e variáveis acima:

/�0 1 )� �� , ��, �} ∈ � (18)

A restrição de conexidade pode ser construída com base nos fluxos. Cada par de vértices

de S deve ter um caminho que os liga. Para simplificar, pegamos um vértice qualquer ('() de

Page 17: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

11

S. Se exigirmos que '( esteja ligado a todos os |�| − 1 demais vértices obrigatórios, garantimos

pelo menos um caminho de '� a ' para todo ��, �} ⊆ �, � ≠ �, �, � ≠ 1, o qual passa por '(.

Para cada um desses caminhos entre '( e '&, ambos os fluxos resultantes (soma dos

fluxos de todos os arcos adjacentes) de saída de '( (20) e de entrada em '& (22) deverão ser

iguais a 1. Além disso, os fluxos resultantes dentro desses caminhos de vértices intermediários

deverão ser iguais a 0 (21), garantindo que o mesmo fluxo que sai de '( percorra todos esses

vértices até chegar a '&.

Assim, a modelagem do problema fica da seguinte forma:

(P1):

/�0 1 )� �� , ��, �} ∈ � (19)

Sujeito a:

1 %( & ∈=>�(�

− 1 % (& ∈=?�(�

= 1 (20)

1 %� & ∈=>���

− 1 % �& ∈=?���

= 0, '� ∈ � − �'(, '&} (21)

1 %& & ∈=>�&�

− 1 %&(& ∈=?�&�

= −1 (22)

%� & ≤ �� e % �& ≤ �� , ��, �} ∈ � (23)

%� & ≥ 0, ��, �� ∈ � (24)

�� ∈ �0,1}, ��, �} ∈ � (25)

'(, '& ∈ �, � ≠ 1 (26)

A restrição (23) limita a capacidade do fluxo em cada arco: só pode haver fluxo positivo

se o arco estiver na solução do problema, ou seja, se ele contribuir na função objetivo. (24)

Page 18: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

12

garante que o fluxo seja não-negativo e (25) assegura a binariedade. (26) especifica que, nas

restrições de fluxo, os vértices de origem e destino sejam obrigatórios.

Pode-se perceber, nas restrições (20), (21) e (22), que uma é combinação linear das

outras duas. Apesar de podermos descartar uma das três, manteremos assim para fins didáticos.

4.1 Variações do Modelo de Fluxos Não Simultâneos

A formulação acima considera um grafo não orientado. Porém, uma vez que

introduzimos o conceito de fluxos, devemos atentar para o fato que %� & e % �& não são sinônimos,

logo tivemos que definir para cada aresta ��, �} de E um par de arcos opostos tais que %� & é o

fluxo que passa em ��, �� e % �& o fluxo que passa em ��, ��. Ainda assim, o valor de �� era o

mesmo para ��, �� e ��, ��.

Contudo, se considerarmos que cada arco tem um custo de utilização independente do

arco oposto, mesmo que o valor seja o mesmo, podemos obter uma nova formulação para o

problema. Substituindo as restrições %� & ≤ �� e % �& ≤ �� , ��, �} ∈ � por %� & ≤ �� , ��, �� ∈ �, o

problema passa a ser formulado assim:

(P2):

/�0 1 )� ��� + � �� , ��, �} ∈ � (27)

Sujeito a:

1 %( & ∈=>�(�

− 1 % (& ∈=?�(�

= 1 (28)

1 %� & ∈=>���

− 1 % �& ∈=?���

= 0, '� ∈ � − �'(, '&} (29)

Page 19: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

13

1 %& & ∈=>�&�

− 1 %&(& ∈=?�&�

= −1 (30)

%� & ≤ �� , ��, �� ∈ � (31)

%� & ≥ 0, ��, �� ∈ � (32)

�� ∈ �0,1}, ��, �� ∈ � (33)

'(, '& ∈ �, � ≠ 1 (34)

Essas duas formulações lidam com os fluxos de formas diferentes. Enquanto a primeira

considera que o custo de utilizar uma aresta gera a possibilidade de percorrê-la nos dois

sentidos devido ao pressuposto da não-simultaneidade, a segunda implica que para utilizar

arcos opostos precisamos de um vetor de custo distinto para cada um, como mostra a figura

abaixo:

Figura 4.1: Diferença conceitual entre P1 e P2

Uma terceira forma de enxergar a relação entre os fluxos e os arcos seria pensar que os

fluxos são cumulativos, ou seja, a utilização simultânea de fluxos opostos deve respeitar a

restrição de que a soma dos mesmos não pode exceder a capacidade do arco. Assim, a relação

entre o vetor capacidade e os fluxos seria %� & + % �& ≤ �� , ��, �} ∈ � (39) e o problema ficaria

(P3):

/�0 1 )� �� , ��, �} ∈ � (35)

� �

%� ��� )

% ��� ��

� �

%� ��� )

% ���� �

P1 P2

Page 20: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

14

Sujeito a:

1 %( & ∈=>�(�

− 1 % (& ∈=?�(�

= 1 (36)

1 %� & ∈=>���

− 1 % �& ∈=?���

= 0, '� ∈ � − �'(, '&} (37)

1 %& & ∈=>�&�

− 1 %&(& ∈=?�&�

= −1 (38)

%� & + % �& ≤ �� , ��, �} ∈ � (39)

%� & ≥ 0, ��, �� ∈ � (40)

�� ∈ �0,1}, ��, �} ∈ � (41)

'(, '& ∈ �, � ≠ 1 (42)

Muitos autores fazem uma distinção entre o Problema de Steiner em Grafos Orientados

e Não-Orientados. Este modelo assume, inicialmente, um grafo não-orientado. Nas duas

últimas formulações, utilizamos o artifício de orientar o grafo, porém a entrada do problema

continua não-orientada. Para um grafo orientado, um bom modelo de um algoritmo dual foi

proposto por WONG (1984).

4.2 Comparação entre as formulações

Pelas restrições de fluxo, para cada vértice obrigatório (exceto '(), o fluxo total que sai

de '( deve ser igual a 1. Se esse fluxo se dividir em mais de um arco, cada arco terá seu custo

computado na função objetivo. Como �( é binária, esse custo independe da quantidade de

fluxo que passa no arco. Estendendo esse raciocínio para todos os vértices de cada caminho

Page 21: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

15

�'(, '&�, concluímos que a configuração de fluxos ilustrada abaixo (figura 4.1) nunca entrará

na solução ótima. Portanto, as variáveis % sempre serão binárias.

Figura 4.1: Divisão de fluxo impossível em um nó

Verificando a restrição que diferencia P1, P2 e P3, que são, respectivamente, (23), (31)

e (39), temos três possibilidades válidas para os valores de %� & e % �&. Vamos analisar os valores

de �� e � � em cada caso. Esse raciocínio é válido para cada aresta ��, �} ∈ �. Assumimos que

o � utilizado é aquele que produz os máximos valores de %.

• %� & = 0 e % �& = 0:

�� = 0 (P1, P2 e P3) e � � = 0 (P2);

• %� & = 1 e % �& = 0:

�� = 1 (P1, P2 e P3) e � � = 0 (P2);

• %� & = 0 e % �& = 1:

�� = 1 (P1 e P3), �� = 0 (P2) e � � = 1 (P2);

• %� & = 1 e % �& = 1:

Este caso não existe (P1, P2 e P3), como prova o teorema abaixo.

1

0,5

0,5

Page 22: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

16

Teorema: Sejam '5 e '6 dois vértices obrigatórios de �, 1 < 8 ≤ |�|, 1 < 9 ≤ |�| e

8 ≠ 9. Então, na solução ótima do problema, não existe uma aresta ��, �} tal que %� 5 > 0 e % �6 >0, considerando os caminhos direcionados K'(, '5L e K'(, '6L.

Prova: (Caminho mínimo) Suponha, por contradição, que, na solução ótima, %� 5 > 0 e

% �6 > 0. Observando o caminho K'(, '5L, deduzimos que o custo de �'(, '�� é menor que o

custo de K'(, ' L pois cada arco acrescido aumenta o custo acumulado do trajeto. Por outro

lado, observando o caminho K'(, '6L, deduzimos que o custo de K'(, ' L é menor que o custo

de �'(, '��, uma contradição.

A partir da análise acima, concluímos que os valores ótimos de �� em P1 e P3 são

sempre os mesmos. Em P2, esses valores só podem ser diferentes quando �� = 1 em P1 e P3

e �� = 0 e � � = 1 em P2. Em todos esses casos, o valor ótimo da função objetivo é igual para

todas as formulações: *�M1� = *�M2� = *�M3�. Portanto, podemos dizer que as três

formulações são equivalentes:

M1 = M2 = M3 (43)

Vistas as três formulações, vamos estudar agora as suas relaxações lineares e realizar o

mesmo tipo de comparação entre elas.

Page 23: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

17

5 Relaxação Linear

Dado o modelo acima com as suas três variações, podemos explorar uma relaxação a

fim de encontrar uma solução viável razoavelmente próxima da solução ótima em um tempo

polinomial em relação ao tamanho dos dados de entrada (�, � e )���). Uma opção seria testar

a relaxação lagrangeana, o que produz bons resultados (BEASLEY, 1984). No entanto, a

relaxação linear é matematicamente mais simples, apesar de menos preferida de forma geral

para esse tipo de problema. Como referência, ÖNCAN, ALTINEL e LAPORTE (2009) já

realizaram esse teste, porém para o Problema do Caixeiro Viajante. Afinal, a proposta deste

trabalho é justamente fazer a experiência de verificar a qualidade da relaxação linear como uma

aproximação para o problema.

No modelo, temos dois tipos de variáveis: � e %, sendo que somente as variáveis do tipo

� possuem restrição de integralidade (� ∈ �0,1}). Relaxar o problema significa, então, relaxar

essa restrição, de modo que � seja tratada como contínua. Contudo, � continua sendo limitada

pelos mesmos valores, de modo que � ∈ O0,1P. Logo, o problema relaxado pode ser formulado assim:

(RL1):

/�0 1 )� �� , ��, �} ∈ � (44)

Sujeito a:

1 %( & ∈=>�(�

− 1 % (& ∈=?�(�

= 1 (45)

1 %� & ∈=>���

− 1 % �& ∈=?���

= 0, '� ∈ � − �'(, '&} (44)

Page 24: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

18

1 %& & ∈=>�&�

− 1 %&(& ∈=?�&�

= −1 (45)

% �& ≤ �� , ��, �} ∈ � (46)

%� & ≥ 0, ��, �� ∈ � (47)

�� ∈ O0,1P, ��, �} ∈ � (48)

'(, '& ∈ �, � ≠ 1 (49)

A relaxação linear das outras variações do modelo são descritas a seguir:

(RL2):

/�0 1 )� ��� + � ��, ��, �} ∈ � (50)

Sujeito a:

1 %( & ∈=>�(�

− 1 % (& ∈=?�(�

= 1 (51)

1 %� & ∈=>���

− 1 % �& ∈=?���

= 0, '� ∈ � − �'(, '&} (52)

1 %& & ∈=>�&�

− 1 %&(& ∈=?�&�

= −1 (53)

%� & ≤ �� , ��, �� ∈ � (54)

%� & ≥ 0, ��, �� ∈ � (55)

�� ∈ O0,1P, ��, �� ∈ � (56)

'(, '& ∈ �, � ≠ 1 (57)

(RL3):

Page 25: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

19

/�0 1 )� �� , ��, �} ∈ � (58)

Sujeito a:

1 %( & ∈=>�(�

− 1 % (& ∈=?�(�

= 1 (59)

1 %� & ∈=>���

− 1 % �& ∈=?���

= 0, '� ∈ � − �'(, '&} (60)

1 %& & ∈=>�&�

− 1 %&(& ∈=?�&�

= −1 (61)

%� & + % �& ≤ �� , ��, �} ∈ � (62)

%� & ≥ 0, ��, �� ∈ � (63)

�� ∈ O0,1P, ��, �} ∈ � (64)

'(, '& ∈ �, � ≠ 1 (65)

Como a relaxação contém o problema original, deduzimos que *�QR� ≤ *�M�,

independentemente da formulação utilizada.

A comparação utilizada na versão original do problema não se aplica na versão

relaxada. Aqui podemos fazer as seguintes deduções, observando a desigualdade que diferencia

as três formulações:

Comparando RL1 (48) e RL3 (64):

RL1: %� & ≤ ��

% �& ≤ ��

Somando: %� & + % �& ≤ 2��

RL3: %� & + % �& ≤ ��

Observamos que RL1 é mais folgada que RL3, logo

Page 26: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

20

*�QR1� ≤ *�QR3� (66)

Comparando RL2 (56) e RL3 (64):

RL2: %� & ≤ ��

% �& ≤ � �

Na solução ótima, �� = maxK%� & L e � � = maxK% �&L, considerando a aresta ��, �} fixa e

� variando. A relação de igualdade provém do sentido da função objetivo. Nesse caso, �� =)� K�� + � �L = )� VWX&K%� & L + )� VWX&K% �&L.

RL3: %� & + % �& ≤ ��

Na solução ótima, minK%� & , % �&L = 0 para um mesmo �, ou seja, �� = VWX&K%� & , % �&L,

considerando a aresta ��, �} fixa e � variando. Nesse caso, �� = )� �� = )� VWX&K%� & , % �&L.

Como �� [\] ≤ �� [\^, conclui-se que

*�QR3� ≤ *�QR2� (67)

Logo, temos que

*�QR1� ≤ *�QR3� ≤ *�QR2� (70)

Para ilustrar, vamos mostrar um exemplo em que *�QR1� < *�QR2�:

Considere o grafo abaixo (figura 5.1) com seus respectivos custos relativos às arestas,

sendo que todos os vértices são obrigatórios.

Figura 5.1: Exemplo de grafo simples

1

C

A

B 1

1

Page 27: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

21

A solução ótima da versão original (inteira) do problema é qualquer subconjunto de

tamanho 2 das arestas e o valor da função objetivo nesse caso é 2, independentemente da

formulação escolhida, conforme ilustrado abaixo nas figuras 5.2, 5.3 e 5.4 (os números

representam os valores de �).

Figura 5.2: Solução ótima 1

Figura 5.3: Solução ótima 2

Figura 5.4: Solução ótima 3

1

C

A

B 1

C

A

B 1

1

1

C

A

B

1

Page 28: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

22

Quando consideramos a relaxação QR1, o valor ótimo da função objetivo cai para 1,5

com a seguinte solução (figura 5.5):

Figura 5.5: Solução ótima de RL1

Considerando o vértice A como origem, essa solução é viável porque o fluxo de A para

C pode se dividir entre AC (0,5) e ABC (0,5), e o mesmo se aplica de A para B e de B para C.

Por nenhuma aresta passa um fluxo maior que 0,5.

Já em QR2 isso não ocorre, pois %_CC e %C__ estão associados a arcos distintos, requerendo

uma variável não-nula para cada arco. Dessa forma, a divisão de fluxos nessa formulação tende

a ser rara e uma solução ótima é a seguinte (figura 5.6):

Figura 5.6: Solução ótima de RL2

Como estamos interessados em uma aproximação do problema inteiro, a formulação

mais próxima da relaxação linear é QR2, pois *�QR1� ≤ *�QR3� ≤ *�QR2� ≤ *�M�. Escolhida

a formulação, vamos trabalhar com alguns testes computacionais para verificar a proximidade

entre *�QR2� e *�M�.

0,5

C

A

B

0,5

0,5

1

C

A

B 1

Page 29: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

23

6 Resultados Computacionais

6.1 Ambiente Computacional

A fim de comparar a relaxação linear do problema com a sua versão inteira original,

testamos algumas instâncias do problema.

Foram utilizadas duas máquinas do Laboratório de Otimização do Programa de

Engenharia de Sistemas e Computação da UFRJ: a conan, com processador Intel(R) Xeon(R)

CPU X5472, capacidade 3GHz, memória 12GB e sistema operacional Ubuntu 14.04 LTS; e a

kappa, com processador Intel(R) Xeon(R) CPU X5675, capacidade 3,07GHz, memória 48GB

e sistema operacional Ubuntu 12.04 LTS.

Os dados foram retirados da OR-Library (BEASLEY) e organizados de modo a facilitar

a leitura do programa responsável por compilar o modelo. O software utilizado foi o AMPL

versão 20150721 (Linux x86_64). Este, por sua vez, utilizou o CPLEX(R) Interactive

Optimizer 12.6.0.0 como solver.

Primeiramente, as instâncias mais simples foram testadas na conan. A partir do

momento em que a memória dessa máquina passou a ser insuficiente, testamos as demais

instâncias na kappa. Mesmo assim, parte das instâncias continuou exigindo uma memória

maior do que a disponível na máquina.

6.2 Descrição dos Resultados

A tabela a seguir mostra o tamanho das instâncias em termos de quantidade de vértices

total (|�|), quantidade de arestas (|�|) e quantidade de vértices obrigatórios (|�|).

Page 30: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

24

Tabela 6.1: Tamanho das Instâncias

Instância Pontos Arestas Obrigatórios

b1 50 63 9

b2 50 63 13

b3 50 63 25

b4 50 100 9

b5 50 100 13

b6 50 100 25

b7 75 94 13

b8 75 94 19

b9 75 94 38

b10 75 150 13

b11 75 150 19

b12 75 150 38

b13 100 125 17

b14 100 125 25

b15 100 125 50

b16 100 200 17

b17 100 200 25

b18 100 200 50

c1 500 625 5

c2 500 625 10

c3 500 625 83

c4 500 625 125

c5 500 625 250

c6 500 1000 5

c7 500 1000 10

c8 500 1000 83

Page 31: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

25

c9 500 1000 125

c10 500 1000 250

c11 500 2500 5

c12 500 2500 10

c13 500 2500 83

c14 500 2500 125

c15 500 2500 250

c16 500 12500 5

c17 500 12500 10

c18 500 12500 83

c19 500 12500 125

c20 500 12500 250

d1 1000 1250 5

d2 1000 1250 10

d3 1000 1250 167

d4 1000 1250 250

d5 1000 1250 500

d6 1000 2000 5

d7 1000 2000 10

d8 1000 2000 167

d9 1000 2000 250

d10 1000 2000 500

d11 1000 5000 5

d12 1000 5000 10

d13 1000 5000 167

d14 1000 5000 250

d15 1000 5000 500

d16 1000 25000 5

Page 32: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

26

d17 1000 25000 10

d18 1000 25000 167

d19 1000 25000 250

d20 1000 25000 500

e1 2500 3125 5

e2 2500 3125 10

e3 2500 3125 417

e4 2500 3125 625

e5 2500 3125 1250

e6 2500 5000 5

e7 2500 5000 10

e8 2500 5000 417

e9 2500 5000 625

e10 2500 5000 1250

e11 2500 12500 5

e12 2500 12500 10

e13 2500 12500 417

e14 2500 12500 625

e15 2500 12500 1250

e16 2500 62500 5

e17 2500 62500 10

e18 2500 62500 417

e19 2500 62500 625

e20 2500 62500 1250

Das 78 instâncias disponíveis nessa biblioteca, 49 foram executadas com sucesso em

pelo menos uma das máquinas e as demais requeriam uma quantidade de memória

computacional acima da capacidade das máquinas utilizadas. Dessas 49 instâncias, o resultado

Page 33: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

27

da função objetivo da versão original e da relaxação RL2 foi o mesmo em todos os casos exceto

um (c18). Os resultados para o valor ótimo da função objetivo, assim como os tempos de

execução para P2 e RL2 (em segundos), são mostrados a seguir.

Tabela 6.2: Resultados dos Testes

Instância Valor ótimo da FO

Tempo P2 (s)

Tempo RL2 (s)

b1 82 0,029816 0,011383

b2 83 0,017348 0,015156

b3 138 0,030536 0,030129

b4 59 0,025302 0,026025

b5 61 0,026231 0,027734

b6 122 0,123923 0,124025

b7 111 0,044627 0,030505

b8 104 0,034261 0,043912

b9 220 0,088182 0,085621

b10 86 0,087335 0,055728

b11 88 0,101192 0,103585

b12 174 0,48156 0,45402

b13 165 0,44583 0,43806

b14 235 0,111448 0,107215

b15 318 0,145138 0,149599

b16 127 0,128929 0,131864

b17 131 0,202319 0,20312

b18 218 0,605989 0,599645

c1 85 0,143905 0,062865

c2 144 0,485687 0,287503

c3 754 5,66101 6,79748

c4 1079 23,6026 22,9791

Page 34: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

28

c5 1579 60,8093 71,3232

c6 55 0,68561 0,17583

c7 102 1,48653 1,43862

c8 509 149,863 205,771

c9 707 1.004,31 2.218,25

c10 1093 1.865,51 575,52

c11 32 2,8464 1,5249

c12 46 15,9122 7,6168

c13 258 4.856,99 8.440,30

c14 323 4.130,90 10.246,80

c15 556 7.076,49 119.248,00

c16 11 12,743 5,938

c17 18 57,1455 39,4076

c18 (P2) 113 / (RL2) 112,21

48.009,80 31.724,10

c19 146 361.601,00 110.588,00

c20 137602 erro Erro

d1 106 1,37303 0,28993

d2 220 1,92434 0,34046

d3 memória insuficiente

d4 memória insuficiente

d5 memória insuficiente

d6 67 6,12535 1,26065

d7 103 11,752 2,778

d8 memória insuficiente

d9 memória insuficiente

d10 memória insuficiente

d11 29 8,13107 5,75921

d12 42 49,7962 37,5852

d13 memória insuficiente

Page 35: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

29

d14 memória insuficiente

d15 memória insuficiente

d16 13 30,6025 22,1697

d17 memória insuficiente

d18 memória insuficiente

d19 memória insuficiente

d20 memória insuficiente

e1 11 1,05735 0,54802

e2 214 3,64182 1,77127

e3 memória insuficiente

e4 memória insuficiente

e5 memória insuficiente

e6 73 10,0968 4,0827

e7 145 84,6429 memória insuficiente

e8 memória insuficiente

e9 memória insuficiente

e10 memória insuficiente

e11 memória insuficiente

e12 memória insuficiente

e13 memória insuficiente

e14 memória insuficiente

e15 memória insuficiente

e16 memória insuficiente

e17 memória insuficiente

e18 memória insuficiente

e19 memória insuficiente

e20 memória insuficiente

A única instância cujo valor ótimo da função objetivo apresenta discrepância entre P2

e RL2 é c18. Mesmo assim, o bound inteiro em RL2, nesse caso, é igual ao valor em P2. Isso

mostra que, em todos os casos que obtivemos resultados, a relaxação linear se apresentou como

uma técnica eficaz para aproximar o problema original.

Page 36: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

30

Observando a tabela acima, vemos que, na maioria das instâncias, a relaxação foi

executada mais rapidamente que o problema inteiro. Isso só não ocorreu nos demais casos

porque o solver CPLEX, ao resolver problemas de programação inteira ou inteira mista, aplica

alguns cortes de pré-processamento antes de iniciar a resolução do problema em si, o que, às

vezes, pode economizar um tempo significativo.

É importante ressaltar que as formulações que serviram de base para os nossos testes

utilizam até variáveis tridimensionais, o que contribui significativamente para aumentar o

tempo de processamento das variáveis e das restrições, assim como a memória exigida,

explicando, também, o fato de não termos obtido resultado para algumas instâncias. Portanto,

esse modelo não é ideal para resolver instâncias de grande porte. Todavia, o objetivo que

estipulamos de avaliar se a relaxação linear é forte foi alcançado.

6.3 Comparação com outro modelo

Para situar os modelos P2 e RL2 em relação a uma referência mais robusta, observamos

na penúltima coluna da tabela abaixo o tempo de processamento das mesmas instâncias pelo

Algoritmo do Volume (LEITE, 2000). As demais colunas contêm os mesmos dados

apresentados nas tabelas 6.1 e 6.2.

Tabela 6.3: Comparação com Algoritmo do Volume

Instância |�| |�| |�| * Tempo P2 Tempo RL2

Tempo AV

Melhor modelo

b1 50 63 9 82 0,300 0,011 0,350 RL2

b2 50 63 13 83 0,017 0,015 0,440 RL2

b3 50 63 25 138 0,031 0,030 1,100 RL2

b4 50 100 9 59 0,025 0,026 0,430 P2

b5 50 100 13 61 0,026 0,028 0,890 P2

b6 50 100 25 122 0,124 0,124 2,740 P2 = RL2

Page 37: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

31

b7 75 94 13 111 0,045 0,031 0,650 RL2

b8 75 94 19 104 0,034 0,044 1,750 P2

b9 75 94 38 220 0,088 0,086 4,160 RL2

b10 75 150 13 86 0,087 0,056 0,650 RL2

b11 75 150 19 88 0,101 0,104 1,870 P2

b12 75 150 38 174 0,482 0,454 8,200 RL2

b13 100 125 17 165 0,446 0,438 2,140 RL2

b14 100 125 25 235 0,111 0,107 2,980 RL2

b15 100 125 50 318 0,145 0,150 11,660 P2

b16 100 200 17 127 0,129 0,132 3,460 P2

b17 100 200 25 131 0,202 0,203 4,340 P2

b18 100 200 50 218 0,606 0,600 14,490 RL2

c1 500 625 5 85 0,144 0,063 1,790 RL2

c2 500 625 10 144 0,486 0,288 6,720 RL2

c3 500 625 83 754 5,661 6,797 192,950 P2

c4 500 625 125 1079 23,603 22,979 449,920 RL2

c5 500 625 250 1579 60,809 71,323 5379,220 P2

c6 500 1000 5 55 0,686 0,176 2,630 RL2

c7 500 1000 10 102 1,487 1,439 7,170 RL2

c8 500 1000 83 509 149,863 205,771 216,420 P2

c9 500 1000 125 707 1004,310 2218,250 4058,820 P2

c10 500 1000 250 1093 1865,510 575,51610501,200 RL2

c11 500 2500 5 32 2,846 1,525 11,320 RL2

c12 500 2500 10 46 15,912 7,617 26,240 RL2

c13 500 2500 83 258 4856,990 8440,300 1700,650 AV

c14 500 2500 125 323 4130,900 10246,800 664,410 AV

c15 500 2500 250 556 7076,490119248,000 3506,140 AV

c16 500 12500 5 11 12,743 5,938 17,820 RL2

Page 38: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

32

c17 500 12500 10 18 57,146 39,408 100,270 RL2

c18 500 12500 83 (P2) 113 / (RL2)

112,21

48009,800 31724,100 5043,900 AV

c19 500 12500 125 146361601,000110588,000 3325,490 AV

d1 1000 1250 5 106 1,373 0,290 8,740 RL2

d2 1000 1250 10 220 1,924 0,340 14,940 RL2

d6 1000 2000 5 67 6,125 1,261 8,120 RL2

d7 1000 2000 10 103 11,752 2,778 19,900 RL2

d11 1000 5000 5 29 8,131 5,759 24,140 RL2

d12 1000 5000 10 42 49,796 37,585 36,220 AV

d16 1000 25000 5 13 30,603 22,170 42,430 RL2

e1 2500 3125 5 11 1,057 0,548 19,310 RL2

e2 2500 3125 10 214 3,642 1,771 53,400 RL2

e6 2500 5000 5 73 10,097 4,083 20,220 RL2

e7 2500 5000 10 145 84,643 memória insuficiente

86,360 P2

Dado que o Algoritmo do Volume obteve os mesmos resultados para o valor da função

objetivo, a comparação dos tempos se torna válida. Apesar de este ter sido mais vantajoso em

apenas 12,5% das instâncias acima, ele se sobressaiu nos casos mais complexos, mostrando um

crescimento menor no tempo de execução em relação ao tamanho dos dados de entrada. Além

disso, ele conseguiu resolver outras instâncias não descritas acima, as quais não tivemos

sucesso aqui devido à alta exigência de memória computacional.

Page 39: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

33

6.4 Exemplo Ilustrativo

A fim de observarmos um exemplo menos complexo, consideremos o grafo abaixo, na

figura 6.1, onde os vértices obrigatórios já estão destacados e os números adjacentes às arestas

representam os custos.

O valor ótimo da função objetivo na versão inteira foi igual a 7. Já a versão relaxada

retornou 7 considerando RL2 e 6,5 considerando RL1 e RL3, devido ao triângulo formado

pelos vértices 4, 5 e 8, idêntico ao da figura 5.5. Isso reforça ainda mais a eficácia da formulação

RL2 como uma aproximação para o problema inteiro.

A solução ficou assim: (os demais valores são nulos)

M1 = M2 = M3 = QR2: �(^ = �^] = �]a = �ab = �ac = 1 (68)

QR1 = QR3: �(^ = �^] = �]a = 1 (69)

�ab = �ac = �bc = 0,5 (70)

Figura 6.1: Exemplo de grafo com vértices numerados e pesos das arestas especificados

Page 40: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

34

7 Conclusão

A hipótese formulada inicialmente era que a relaxação linear seria uma boa

aproximação para o Problema de Steiner em Grafos. Nesse sentido, apresentamos o modelo de

fluxos com as suas três formulações e escolhemos aquela cujo valor ótimo da função objetivo

do problema relaxado mais se aproximava do problema original. Os testes mostraram que essa

formulação, quando relaxada, continua com praticamente os mesmos resultados de antes nas

instâncias testadas.

Isso significa que podemos abrir mão de resolver o problema original uma vez que

temos uma relaxação linear com resultados fortemente próximos aos obtidos pela versão

inteira. Se pensarmos em instâncias muito maiores do que as aqui tratadas, desde que sejam

executadas em máquinas com memória e capacidade de processamento à altura, a economia de

tempo tende a ser bastante significativa. Além disso, bastaria um software que resolvesse

problemas de programação linear.

Assim, apesar de o Problema de Steiner em Grafos ser NP-difícil, podemos reduzi-lo a

sua relaxação sem perda significativa de precisão nos resultados, diminuindo a complexidade

para polinomial.

Uma sugestão para um trabalho posterior é comparar os resultados obtidos aqui com

outros modelos além do Algoritmo do Volume, a fim de situar melhor a eficiência do nosso

modelo. Outra ideia é pesquisar contraexemplos para a igualdade *�QR2� = *�M2�, ou seja,

exemplos em que *�QR2� < *�M2�, como na instância c18 deste trabalho, e estudar o

significado dessa diferença segundo a lógica de fluxos.

Page 41: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

35

Referências Bibliográficas

ANEJA, Y. P., “An Integer Linear Programming Approach to the Steiner Problem in Graphs”,

Networks, v. 10, n. 1, pp. 167-178, 1980.

ARPIN, D., 1984, Algorithme pour la Résolution du Problème de Steiner sur un Graphe

Orienté. Dissertação de M.Sc., Université de Montréal, Montréal, QC, Canada.

BEASLEY, J. E., “An Algorithm for the Steiner Problem in Graphs”, Networks, v. 14, n. 1, pp.

147-159, 1984.

BEASLEY, J. E., “An SST Based Algorithm for the Steiner Problem in Graphs”, Networks, v.

16, n. 1, pp. 1-16, 1989.

BEASLEY, J. E. OR-Library. Diponível em:

<http://people.brunel.ac.uk/~mastjjb/jeb/orlib/steininfo.html> Acesso em: 10 jun. 2015,

11:00.

BURDAKOV, O., DOHERTY, P., KVARNSTRÖM, J., “Local Search for Hop-constrained

Directed Steiner Tree Problem with Applications to UAV-based Multi-target Surveillance”,

Technical Report LiTH-MAT-R–2014/10–SE, Department of Mathematics, Linkoping

University, Sweden, Aug. 2014.

CLAUS, A., MACULAN, N., “Une Nouvelle Formulation du Problème de Steiner sur un

Graphe”, Technical Report 280, Centre de Recherche sur les Transports, Université de

Montréal, 1983.

DREYFUS, S. E., WAGNER, R. A., “The Steiner Problem in Graphs”, Networks, v. 1, pp.

195-207, 1971.

GAREY, M. R., GRAHAM, R. L., JOHNSON, D. S., “The Complexity of Computing Steiner

Minimal Trees”, SIAM Journal on Applied Mathematics, v. 32, n. 4, pp. 835-859, Jun. 1977.

GUANGHUA, W., ZHANJIANG, S., “Application of AHP and Steiner Tree Problem in the

Location-Selection of Logistics Distribution Center”, 2nd International Conference on

Networking and Digital Society (ICNDS), v. 1, pp. 290-293, 2010.

HAUPTMANN, M., KARPINSKI, M., “A Compendium on Steiner Tree Problems”,

Department of Computer Science and Hausdorff Center for Mathematics, University of Bonn,

2015.

HWANG, F. K., RICHARDS, D. S., WINTER, P., The Steiner Tree Problem. 1 ed.

Amsterdam, Elsevier, 1992.

Page 42: PROBLEMA DE STEINER EM GRAFOS: UMA EXPERIÊNCIA …

36

LEITE, L. S. B. S., 2000, O Algoritmo do Volume: Convergência e Resolução do Problema de

Steiner em Grafos. Tese de D.Sc., COPPE/UFRJ, Rio de Janeiro, RJ, Brasil.

LEVIN, A. Y., “Algorithm for the Shortest Connection of a Group of Graph Vertices”, Soviet

Math. Dokladi, v. 12, pp. 1477-1481, 1971.

LI, X., XU, X., ZOU, F., DU, H., WAN, P., WANG, Y., WU, W., “A PTAS for Node-weighted

Steiner Tree in Unit Disk Graphs”, 3rd International Conference on Combinatorial

Optimization and Applications, pp. 36-48, 2009.

MACULAN, N., “The Steiner Problem in Graphs”, Annals of Discrete Mathematics, v. 31, pp.

185-212, 1987.

MACULAN, N., PLATEAU, G., LISSER, A., “Integer Linear Models with a Polynomial

Number of Variables and Constraints for Some Classical Combinatorial Optimization

Problems”, Pesquisa Operacional, v. 23, n. 1, pp. 161-168, 2003.

ÖNCAN, T., ALTINEL, I. K., LAPORTE, G., “A Comparative Analysis of Several

Asymmetric Traveling Salesman Problem Formulations”, Computers and Operations

Research, v. 36, pp. 637-654, 2009.

ROBINS, G., ZELIKOVSKY, A., “Tighter Bounds for Graph Steiner Tree Aproximation”,

SIAM Journal of Discrete Mathematics, v. 19, n. 1, pp. 122-134, 2005.

WINTER, P., “Steiner Problem in Networks: a Survey”, Networks, v. 17, pp. 129-167, 1987.

WONG, R. T., “A Dual Ascent Approach for Steiner Tree Problems on a Directed Graph”,

Mathematical Programming, v. 28, pp. 271-287, 1984.