You are on page 1of 134

1

MINISTRIO DA CINCIA E TECNOLOGIA


INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS

A RELAXAO LAGRANGEANA/SURROGATE E ALGUMAS


APLICAES EM OTIMIZAO COMBINATRIA
Marcelo Gonalves Narciso

Tese de Doutorado em Computao Aplicada, orientada pelo Dr. Luiz


Antnio Nogueira Lorena.

INPE
So Jos dos Campos
Maro 1998

ABSTRACT
The lagrangean relaxation has been used there is a long time, with great success, as
auxiliary in the development of methods for the search of feasible solutions to
Combinatorial Optimization problems. The solutions of the relaxations supply limits, that
jointly with other limits of feasible solutions to the problems, provide indications of the
value of those feasible solutions.

Another well-known relaxation and maid, in this context, is the surrogate relaxation.
This relaxation, although it supplies better limits in general than the lagrangeana, has not
frequently been used due to the inherent difficulty of solution of the relaxed problem.

This work has the

objective of show as local information can improve the

performance of the employment of lagrangean relaxations when applied together with


subgradient methods. A surrogate version of the lagrangean relaxation provides a local
otimization that will contemplate in all the iterations of a subgradient method. This new
form of use of local information can also be seen as a new relaxation, denominated in this
work of relaxation lagrangeana/surrogate or simply lagsur. This new proposal was applied
to the generalized assignment problem (PGA) and to the traveling salesman problem (PCV)
and the obtained results were better than obtained with the lagrangean relaxation in terms of
time of execution, mainly when the instances have great dimensions. Besides winning in
time, the relaxation lagsur obtained such good limits as supplied for the lagrangean
relaxation.

RESUMO
A relaxao lagrangeana tem sido empregada h muito tempo, com grande sucesso,
como auxiliar no desenvolvimento de mtodos para a busca de solues timas aos
problemas da Otimizao Combinatria. As solues das relaxaes fornecem limites, que
conjuntamente com outros limites de solues viveis aos problemas, proporcionam
indicaes do valor dessas solues viveis.

Outra relaxao conhecida e empregada, neste contexto, a relaxao surrogate.


Esta relaxao, embora fornea em geral limites melhores que a lagrangeana, no tem sido
empregada frequentemente devido dificuldade inerente de soluo do problema relaxado.

Este trabalho tem como objetivo mostrar como informaes locais podem melhorar
a performance do emprego de relaxaes lagrangeanas quando aplicadas em conjunto com
mtodos subgradientes. Uma verso surrogate da relaxao lagrangeana proporciona uma
otimizao local, que ir refletir em todas as iteraes de um mtodo subgradientes. Esta
nova forma de uso de informaes locais pode ser vista tambm como uma nova relaxao,
denominada neste trabalho de relaxao lagrangeana/surrogate ou simplesmente lagsur.
Esta nova proposta foi aplicada ao

problema generalizado de atribuio (PGA) e ao

problema do caixeiro viajante (PCV) e os resultados obtidos foram melhores do que os


obtidos com a relaxao lagrangeana em termos de tempo de execuo, principalmente
quando as instncias tm grandes dimenses. Alm de ganhar em tempo, a relaxao
lagsur obteve limites to bons quantos os fornecidos pela relaxao lagrangeana.

AGRADECIMENTOS

Agradeo a Deus, primeiramente, por tornar possvel esta tese de Doutorado ser
realizada e por todas as outras coisa que Ele fez por mim.

Agradeo minha esposa por ter sido uma grande companheira para mim.

Agradeo ao meu orientador, Luiz A. N. Lorena, por tudo o que fez por mim
desde o Mestrado at aqui.

Agradeo a todo pessoal do CNPTIA/EMBRAPA e CNPA/EMBRAPA que


me ajudou a confeccionar esta tese e tambm pelo apoio moral e financeiro.

Agradeo CAPES pelo apoio financeiro.

Agradeo a todos os estudantes da Ps-Graduao do INPE pelo apoio que


Me deram durante todo o tempo em que estive aqui.

SUMRIO
Pg
Captulo 1 ...........................................................................................................

1 - Introduo .....................................................................................................

Captulo 2 - Relaxao de Programao Linear,


Lagrangeana e Surrogate .............................................................

2.1 -Introduo ...................................................................................................

2.2 - Propriedades de uma relaxao ................................................................

2.3 - A Relaxao de programao linear .........................................................

2.4 - Relaxao lagrangeana .............................................................................

2.4.1 - Introduo ...............................................................................................

2.4.2 - Formulao da relaxao lagrangeana .................................................

2.4.3 - Aplicao da relaxao lagrangeana ao


Problema Generalizado de Atribuio (PGA) .......................................

2.4.4 - Dual lagrangeano ...................................................................................

10

2.4.4.1 Resoluo do dual lagrangeano .........................................................

11

2.5 - Relaxao surrogate ..................................................................................

14

2.5.1 - Introduo ...............................................................................................

14

2.5.2 - Formulao da relaxao surrogate ......................................................

15

2.5.3 - Aplicao da relaxao surrogate contnua ..........................................

16

2.5.3.1 - Aplicao da relaxao surrogate para o


Problema de Cobertura de Conjuntos ..................................................

17

2.5.3.2 - Relaxao surrogate aplicada ao (PGA) ............................................

19

Pg
2.5.3.2.1 - Resultados Relaxao surrogate contnua
aplicada ao (PGA) ............................................................................

23

Captulo 3 - Relaxao lagrangeana/surrogate (lagsur) .................................

26

3.1 - Introduo .................................................................................................

26

3.2 - Formulao matemtica da relaxao lagsur .........................................

27

3.3 - Aplicao do algoritmo de subgradientes ...............................................

31

3.3.1 - Comentrios sobre o algoritmo de subgradientes ..............................

33

Captulo 4 - Problema Generalizado de Atribuio (PGA) ............................

35

4.1 - Introduo .................................................................................................

35

4.2 - Relaxaes lagrangeanas e lagsur ...........................................................

36

4.3 - Busca unidimensional ...............................................................................

41

4.4 -Heurstica usada para fornecer soluo vivel ao (PGA) ........................

45

4.5 -Resultados ...................................................................................................

50

4.6 - Comentrios sobre os resultados obtidos para o (PGA) ..........................

57

Captulo 5 - Problema do Caixeiro Viajante


Simtrico (PCVS) ...........................................................................

59

5.1. Introduo ...................................................................................................

59

5.2 - Formulao do Problema do Caixeiro Viajante ......................................

61

5.3 - A relaxao lagrangeana aplicada ao (PCVS) .........................................

63

5.3.1 - Algoritmo de Kruskal para gerar a rvore mnima ..............................

65

5.3.2- Algoritmo para gerar a 1-tree de custo mnimo ...................................

67

Pg
5.3.3 - Proposta de Held e Karp - a relaxao
lagrangeana aplicada ao (PCVS) ...........................................................

67

5.4 - A relaxao lagsur aplicada ao (PCVS) ...................................................

70

5.5 - Resultados obtidos com as relaxaes lagrangeana e lagsur ..................

73

5.5.1 - Resultados obtidos com a relaxao


lagsur x lagrangeana ..............................................................................

74

5.5.1.1 - Resultados obtidos com a relaxao lagrangeana .............................

74

5.5.1.2 - Resultados obtidos com a relaxao lagsur ........................................

75

5.5.1.3 - Detalhes de implementao das tabelas ............................................

76

5.5.2 - Grficos lagsur versus iterao e


lagrangeano versus iterao .................................................................

78

5.6 - Concluso ..................................................................................................

83

Captulo 6 - Concluso ....................................................................................

85

6.1 - Concluso geral sobre o lagsur .................................................................

85

7 - Referncias Bibliogrficas ...........................................................................

88

Apndice A - Resultados obtidos para o (PGA) e o (PCVS)..............................

93

A . 1 -Resultados obtidos com o (PGA) .............................................................

93

A.1.1 - Relaxao da restrio das capacidades ..............................................

97

A.1.1.1 - Lagrangeano normal ..........................................................................

97

A.1.1.2 - Lagsur ..................................................................................................

99

A.1.1.3 - Lagsur versus lagrangeano normal ...................................................

101

Pg

A.1.2 - Relaxao da restrio de atribuio ...................................................

103

A.1.2.1 - Relaxao lagrangeana normal ........................................................

103

A.1.2.2 - Relaxao lagsur ...............................................................................

105

A.1.2.3 - lagsur versus lagrangeano normal ...................................................

106

A.1.3 - Proposta de Jornsten e Nasberg (J e N) .............................................

108

A.1.3.1 - Relaxao lagrangeana conforme a proposta de (J e N) ................

108

A.1.3.2 - Relaxao lagsur conforme a proposta de (J e N) ..........................

111

A.1.3.3 - lagsur versus lagrangeano normal para a


proposta de Jornsten e Nasberg .......................................................

114

A . 2 -Resultados obtidos com o (PCVS) .........................................................

117

A.2.1 - Resultados obtidos com a relaxao lagrangeana .............................

118

A.2.2 - Resultados obtidos com a relaxao lagsur .......................................

119

A.2.3 - Resultados obtidos com a relaxao lagsur x lagrangeana .............

120

LISTA DE TABELAS
Tabela

Pg

4.1 - resultados computacionais para instncias pequenas


(classe C de problemas) ................................................................... 51
4.2 - Resultados computacionais para problemas de larga escala ........ 52
5.1 - Lagrangeano para instncias do (PCVS) com soluo
tima conhecida ............................................................................... 74
5.2 - Lagrangeano para instncias do (PCVS) com soluo
tima conhecida (continuao) ...................................................... 74
5.3 - Lagsur para instncias do (PCVS) com soluo tima
conhecida ........................................................................................ 75
5.4 - Lagsur para instncias do (PCVS) com soluo tima
conhecida (continuao) ...............................................................

75

A1 - Lagrangeano para problemas da classe C com soluo


tima conhecida. Nmero mximo de iteraes igual
a 600. A restrio relaxada a das capacidades ........................

97

A2 - Lagrangeano para problemas das classes A, B, C e D


com soluo tima no conhecida. Nmero mximo de
iteraes igual a 600 ..................................................................

98

A3 - Lagsur para problemas das classes A, B, C e D com


soluo tima conhecida. Nmero mximo de iteraes
igual a 600 ..................................................................................

99

A4 - Lagsur para problemas das classes A, B, C e D com


soluo tima no conhecida. Nmero mximo de
iteraes igual a 600 ..................................................................

100

10

Tabela

Pg

A5 - Lagsur/lagrangeano para problemas da classe


C com soluo tima conhecida. Nmero mximo
de iteraes igual a 600 ................................................................ 101
A6 - Lagsur/lagrangeano para problemas das classes
A, B, C e D com soluo tima no conhecida. Nmero
mximo de iteraes igual a 600 ................................................... 102
A7 - Lagrangeano para problemas das classes A, B, C e D
com soluo tima conhecida. Nmero mximo de
iteraes igual a 600. A restrio relaxada
a da atribuio .................................................................................. 103

A8 - Lagrangeano para problemas das classes A, B, C e D


com soluo tima no conhecida. Nmero mximo de
iteraes igual a 600. A restrio relaxada a da
atribuio ......................................................................................... 104
A9 - Lagsur para problemas das classes A, B, C e D com soluo
tima conhecida. Nmero mximo de iteraes igual a 600.
A restrio relaxada a da atribuio ...........................................

105

A10 - Lagsur para problemas das classes A, B, C e D com soluo


tima no conhecida. Nmero mximo de iteraes igual
a 600. A restrio relaxada a da atribuio ..............................

105

A11 - Lagsur/lagrangeano para problemas da classe C com


soluo tima conhecida. Nmero mximo de iteraes
igual a 600. A restrio relaxada a da atribuio ....................

106

A12 - Lagsur/lagrangeano para problemas das classes


A, B, C e D com soluo tima no conhecida. Nmero
mximo de iteraes igual a 600. A restrio relaxada
a da atribuio ............................................................................

107

11

Tabela

Pg

A13 - Lagrangeano para problemas das classes A,


B, C e D com soluo tima conhecida. Nmero
mximo de iteraes igual a 600. Proposta de
Jornsten e Nasberg ........................................................................ 108

A14 - Lagrangeano para problemas das classes A, B,


C e D com soluo tima no conhecida. Nmero
mximo de iteraes igual a 600. Proposta de
Jornsten e Nasberg ........................................................................ 109

A15 - Lagrangeano para problemas das classes A, B, C e


D com soluo tima no conhecida. Nmero
mximo de iteraes igual a 1200. Proposta
de Jornsten e Nasberg ................................................................... 110

A16 - Lagsur para problemas das classes A, B, C e D


com soluo tima conhecida. Nmero mximo
de iteraes igual a 600. Proposta de Jornsten
e Nasberg ....................................................................................... 111
A17 - Lagsur para problemas das classes A, B, C e D
com soluo tima no conhecida. Nmero mximo
de iteraes igual a 600. Proposta de Jornsten e
Nasberg ........................................................................................... 112
A18 - Lagsur para problemas das classes A, B, C e D
com soluo tima no conhecida. Nmero mximo
de iteraes igual a 1200. Proposta de Jornsten e
Nasberg .......................................................................................... 113
A19 . Lagsur/lagrangeano para problemas da classe C
com soluo tima conhecida. Nmero mximo de
iteraes igual a 600. Proposta de Jornsten e
Nasberg .......................................................................................... 114

12

Tabela

Pg

A20 - Lagsur/lagrangeano para problemas das classes A, B,


C e D com soluo tima no conhecida. Nmero
mximo de iteraes igual a 600. Proposta de
Jornsten e Nasberg ....................................................................... 115

A21 - Lagsur/lagrangeano para problemas das classes A,


B, C e D com soluo tima no conhecida. Nmero
mximo de iteraes igual a 1200. Proposta de
Jornsten e Nasberg ........................................................................ 116

A22 - Lagrangeano para instncias do (PCVS) com


soluo tima conhecida ............................................................... 118

A23 - Lagrangeano para instncias do (PCVS) com


soluo tima conhecida ............................................................... 118

A24 - Lagsur para instncias do (PCVS) com soluo


tima conhecida ............................................................................ 119
A25 - Lagsur para instncias do (PCVS) com soluo
tima conhecida ............................................................................ 119
A26 - Lagsur/lagrangeano para instncias do
(PCVS) com soluo tima conhecida ........................................

120

A27 - Lagsur/lagrangeano para instncias do


(PCVS) com soluo tima conhecida .......................................

120

13

LISTA DE FIGURAS
Figura

Pg

2.1 - Comportamento da funo a ser otimizada no dual


surrogate contnuo ........................................................................... 21
2.2 - Comportamento do dual lagrangeano ............................................ 24
2.3 - Comportamento do dual surrogate contnuo ................................. 24
2.4 - Comportamento do dual surrogate contnuo ................................. 25
3.1 - Comportamento da funo objetivo da relaxao lagsur ............. 30
4.1 - comportamento da funo v(LtSPGA) ........................................ 42
4.2 - Grfico L1SaPGA versus iterao ................................................ 54
4.3 - Grfico LtSaPGA versus iterao ................................................ 54
4.4 - Grfico L1SJN versus iterao ..................................................... 55
4.5 - Grfico LtSJN versus iterao ..................................................... 55
4.6 - Grfico L1ScPGA versus iterao ................................................ 56
4.7 - Grfico LtScPGA versus iterao ................................................. 56
5.1 - Grfico v(LtS*PCV) versus t ......................................................... 71
5.2 - Grfico (L1SPCVS) versus iterao para 48 cidades .................. 79
5.3 - Grfico (LtSPCVS) versus iterao para 48 cidades ..................

79

5.4 - Grfico (L1SPCVS) versus iterao para 442 cidades ................

80

5.5 - Grfico (LtSPCVS) versus iterao para 442 cidades .................

80

5.6 - Grfico (L1SPCVS) versus iterao para 1002 cidades ..............

81

5.7 - Grfico (LtSPCVS) versus iterao para 1002 cidades ...............

81

6.1 - Grfico v(LtSP) versus t ..............................................................

86

14

CAPTULO 1
1 - Introduo
Considere problemas onde um grande nmero de possibilidades proporcionem
solues, mas que seriam inviveis de avaliar, ou mesmo gerar, uma a uma. Os problemas
de Otimizao Combinatria caem neste contexto. Um espao discreto e finito de solues
representa o conjunto vivel para a avaliao de uma funo objetivo. Este espao possui
em geral grande dimenso tornando os problemas de Otimizao Combinatria difceis de
resolver. As diversas aplicaes prticas de problemas que podem ser formulados neste
contexto levaram a uma crescente pesquisa de mtodos para sua soluo. Este trabalho se
enquadra na linha de propostas para a melhora de performance do emprego da relaxao
lagrangeana neste contexto, particularmente nos problemas formulados como de
Programao Linear Inteira zero-um.

A relaxao lagrangeana tem sido empregada h muito tempo, com grande sucesso,
como auxiliar no desenvolvimento de mtodos para a busca de solues timas aos
problemas da rea. As solues das relaxaes fornecem limites, que conjuntamente com
outros limites de solues viveis aos problemas, proporcionam indicaes do valor dessas
solues viveis. Podem participar de mtodos enumerativos, ou no desenvolvimento de
heursticas. Em geral seu emprego est relacionado ao uso de um mtodo dual de
otimizao por subgradientes, tambm de consagrado uso e conhecimento para
pesquisadores de mtodos de otimizao.

Outras relaxaes conhecidas e empregadas so a de programao linear

e a

relaxao surrogate. Esta ltima, embora fornea em geral limites melhores que as
anteriores, no tem sido empregada, frequentemente devido dificuldade inerente de
soluo do problema relaxado. As trs relaxaes so amplamente descritas na literatura e
seus aspectos formais necessrios aos resultados deste trabalho sero descritos no segundo
captulo.

15

Este trabalho tem como objetivo mostrar como informaes locais podem melhorar
a performance do emprego de relaxaes lagrangeanas quando aplicadas em conjunto com
mtodos subgradientes. Uma verso surrogate da relaxao lagrangeana proporciona uma
otimizao local, que ir refletir em todas as iteraes de um mtodo subgradientes. Esta
nova forma de uso de informaes locais pode ser vista tambm como uma nova relaxao,
denominada neste trabalho de relaxao lagrangeana/surrogate ou simplesmente lagsur. A
nova relaxao ser descrita no captulo 3.

O comportamento da relaxao lagsur para se obter limites ser investigado em sua


aplicao a dois problemas clssicos e importantes devido ao seu grande nmero de
aplicaes: o problema generalizado de atribuio (PGA) e a verso simtrica do problema
do caixeiro viajante (PCV). Eles sero descritos nos captulos 4 e 5, respectivamente. A
relaxao lagsur ser comparada com a lagrangeana usando instncias de larga escala,
isto , problemas com um grande nmero de variveis. Com o emprego da relaxao lagsur
obtm-se um ganho significativo em relao relaxao lagrangeana no que se refere a
tempo computacional. Alm disso, a relaxao lagsur fornece limites to bons quanto os
fornecidos pela relaxao lagrangeana.

Embora este trabalho enfoque o lagsur aplicado ao (PGA) e ao (PCV), esta nova
relaxao pode ser aplicada em vrios outros problemas da Otimizao Combinatria, em
particular sua verso surrogate contnua foi aplicada a vrios problemas de cobertura e
localizao de facilidades (veja Narciso [52], Lorena e Narciso [48], Lorena e Lopes [47],
Lopes [46], Senne e Lorena [61], Espejo [20] e Almiana e Pastor [1]).

Finalmente, no captulo 6, ser feita uma anlise desta nova proposta de relaxao
(lagsur) dentro do contexto do (PCV) e do (PGA). Tambm sero sugeridas algumas linhas
de pesquisa para continuao do tema. No apndice A esto mostrados em tabelas todos os
resultados obtidos com os problemas (PGA) e (PCV).

16

CAPTULO 2
2 - Relaxao de Programao Linear, Lagrangeana e Surrogate
2.1 -Introduo
Para uma melhor compreenso do que seja relaxao, oportuno definir antes
alguns termos que sero usados daqui em diante neste trabalho. Aps a definio destes
termos (programao, problema de programao linear, problema de programao inteira),
ser dada uma breve introduo sobre relaxao e ento sero enfocadas as relaxaes de
programao linear, lagrangeana e surrogate.

O termo programao usado para descrever o planejamento de um conjunto de


atividades. A idia representar a quantidade ou nvel de cada atividade como uma varivel
de deciso. Assim, um problema pode ser representado como um conjunto de equaes e
inequaes que, depois de resolvidos, geram o valor das variveis. O termo programao
matemtica usado para descrever a minimizao ou maximizao de uma funo objetivo
de muitas variveis, sujeita a restries sobre tais variveis. Tanto no desenvolvimento
como nas aplicaes da programao matemtica, surgem casos especiais nos quais todos
os custos, requisitos e outras atividades de interesse so termos estritamente proporcionais
aos nveis das atividades ou soma de tais termos, isto , a funo objetivo uma funo
linear, e as restries so equaes ou inequaes lineares. Tal problema chamado de
problema de programao linear (PPL).

Os chamados problemas de otimizao discreta so aqueles que algumas ou todas


as variveis de deciso so restritas a assumir valores dentro de um conjunto discreto.
Alguns destes problemas podem ser formulados como problemas lineares com a restrio
adicional de que algumas ou todas as variveis de deciso assumam somente valores
inteiros. Tais problemas so chamados de problemas de programao inteira (PPI). Em
geral, problemas de programao inteira so mais difceis de se resolver do que os
problemas de programao linear. Nesta tese sero enfocados, em captulos posteriores,

17

dois problemas de programao linear inteira: O problema generalizado de atribuio


(PGA) e a verso simtrica do problema do caixeiro viajante (PCV).

Feitas as consideraes acima, ser enfocada ento a relaxao. A relaxao de um


problema tem como finalidade tornar o problema mais fcil de se resolver. Entretanto, a
soluo fornecida pela relaxao geralmente no vivel para o problema original. Uma
soluo vivel para um problema se satisfaz a todas as restries do problema. Um
limitante obtido para o valor de sua soluo tima. Se o problema for de minimizao
(maximizao), ento o valor da funo objetivo da relaxao fornecer um limite inferior
(superior) para a soluo tima do problema em questo. Estas afirmaes sero mostradas
mais adiante.

Neste captulo sero cobertas as relaxaes de programao linear, lagrangeana e


surrogate. Estas relaxaes so muito conhecidas e amplamente divulgadas na literatura.
As relaxaes lagrangeana e surrogate sero enfocadas com maior nfase pois formam a
base da relaxao lagsur, a qual ser descrita no captulo 3.

2.2 - Propriedades de uma relaxao


Seja o (PPI) formulado como

(P)

v(P) = min cx
sujeito a
Ax = b
Dx e
x 0 e inteiro;

onde x um vetor n x 1, b um vetor m x 1, e um vetor k x 1, A uma matriz m x n e D


uma matriz k x n.
De acordo com Parker e Rardin [55], define-se relaxao de um problema de
minimizao (P) como um problema (RP) tal que

18

(i) cada soluo vivel de (P) tambm vivel para (RP);


(ii) a funo objetivo do problema (P), avaliada para qualquer ponto xv vivel,
maior ou igual a funo objetivo de (RP) para o mesmo ponto xv.

De acordo com a afirmao (ii), podemos concluir que a relaxao fornece um limite
inferior para problemas de minimizao. Se (P) for problema de maximizao, a afirmao
(i) tambm vlida, porm a afirmao (ii) seria substituda por

(iii) a funo objetivo do problema de maximizao (P), avaliada para qualquer


ponto xv vivel, menor ou igual a funo objetivo de (RP) para o mesmo ponto xv.

Desta forma, para problemas de maximizao, o valor da funo objetivo da relaxao seria
um limitante superior ao valor timo da funo objetivo do problema (P).

Lema 2.1 - Seja (P) definido acima e (RP) uma relaxao de (P). Ento v(RP)
v(P).
Prova. Qualquer ponto xv vivel para (P) tambm vivel para (RP). Assim, se (P)
no vivel (v(P) = +) a desigualdade acima ( v(RP) v(P) ) se mantm. Se v(P)
ilimitado (v(P) = -), ento v(RP) tambm ilimitado. Se v(P) tem um timo e
este timo finito, o valor da funo objetivo de (P), o qual maior ou igual a
funo objetivo de (RP), fornece um limite superior a v(RP) pois a soluo tima de
(P) vivel em (RP).

Lema 2.2 - Seja (P) definido acima e (RP) uma relaxao de (P). Seja c*.x a
funo objetivo de (RP). Se x* timo em (RP), x* vivel em (P) e c.x* = c*.x*
ento x* timo em (P).

19

Prova. Um x* que satisfaa as hipteses do Lema 2.2 necessariamente vivel em


(P). Isto implica dizer que c.x* v(P). Ento, do item (ii) do Lema 2.1, c*.x* =
v(RP) v(P) c.x* = c*.x* Segue ento que x* soluo vivel para (P) e x*
soluo tima para (P).

2.3 - A Relaxao de programao linear

Se o domnio de x, no problema (P), for alterado de {0, 1, ...} (x um nmero


inteiro no negativo) para x 0 e x pertencente aos reais, ento teremos uma relaxao de
(P). Esta relaxao conhecida como relaxao de programao linear [55]. A grande
vantagem desta relaxao de (P) a existncia de algoritmos eficientes para a soluo de
problemas de programao linear.

Lema 2.3 - Seja (RPL) a relaxao de programao linear de (P). Temos as


seguintes relaes entre (P) e (RPL),
(i) v(P) v(RPL);
(ii) Se a soluo xRPL do problema (RPL) for tal que cada componente nonegativa e inteira, ento xRPL tambm soluo de (P).

A prova deste lema pode ser facilmente verificada usando-se os lemas 2.1 e 2.2
(vide Parker e Rardin [55]).

Para problemas (P) nos quais x {0,1}, o item (ii) do lema 2.3 seria melhor escrito
da seguinte forma: se a soluo xRPL do problema (RPL) for tal que cada componente de
xRP seja 0 ou 1, ento xRPL tambm soluo de (P).

20

2.4 - Relaxao lagrangeana


2.4.1 - Introduo
A relaxao lagrangeana baseada na observao de que muitos problemas de
programao inteira so modelados atravs de um conjunto de restries que consideradas
isoladamente tornam o problema de fcil soluo. As outras possveis restries seriam
restries complicadoras tornando o problema de difcil soluo. Para explorar esta
observao, cria-se um problema lagrangeano no qual as restries complicadoras so
adicionadas funo objetivo atravs de um vetor de multiplicadores, e em seguida
eliminadas do conjunto total de restries.

O problema lagrangeano frequentemente usado para fornecer limites em


algoritmos de enumerao implcita do tipo branch and bound, constituindo-se em uma
alternativa ao uso da relaxao de programao linear (ver Fisher [21], Geoffrion[26]).

O nascimento da relaxao lagrangeana, tal como conhecido hoje, ocorreu em


1970 quando Held e Karp [33,34] usaram a relaxao lagrangeana para fornecer um limite
inferior para o problema do caixeiro viajante (PCV). Motivados pelo sucesso da relaxao
lagrangeana, este mtodo foi aplicado ainda no incio da dcada de 70 em problemas de
programao inteira em geral (Shapiro [62]).

A lista de aplicaes da relaxao lagrangeana muito extensa, assim como a


amplitude do tipo de problemas que so abordados usando esta tcnica. Uma relao de
algumas das aplicaes pode ser encontrada em Fisher [21], e incluem problemas tais como
o do caixeiro viajante, problemas de localizao, problema generalizado de atribuio,
problemas de cobertura e particionamento de conjuntos. Outros exemplos de aplicaes
esto amplamente descritos na literatura. Neste trabalho veremos a aplicao desta
relaxao ao problema generalizado de atribuio e no problema simtrico do caixeiro
viajante.

21

2.4.2 - Formulao da relaxao lagrangeana


Vamos assumir as restries de (P) particionadas em dois conjuntos: Ax = b e
Dxe. Suponha que Dxe sejam as restries complicadoras. Para facilitar a resoluo de
(P), vamos adicionar a restrio Dxe, modificada por um vetor u0, funo objetivo, isto
,

(Lu)

v(Lu) = min
sujeito a

{cx - u(e - Dx)}


Ax = b
x 0 e inteiro,

onde u = (u1, u2,...., uk) um vetor de multiplicadores com componentes no-negativos.


(Lu) uma relaxao lagrangeana de (P).

Por convenincia, vamos assumir que (Lu) tenha soluo vivel e que o conjunto J =
{ x | Ax = b, x 0 e inteiro } de solues viveis para (Lu) seja finito. Ento (Lu) finito
para todo u 0. bem conhecido que v(Lu) v(P) (Fisher[21]). Isto fcil mostrar.
Assumindo x* como soluo tima para (P), observa-se que v(Lu) cx* - u(e - Dx*)
v(P). A primeira desigualdade na relao acima segue da definio de v(Lu). A Segunda
desigualdade segue do fato que cx* - u(e -Dx*) cx* = v(P), visto que u 0.

Em geral, no possvel garantir um determinado valor de u para o qual v(Lu) =


v(P). O fato de que v(Lu) v(P) permite que v(Lu) seja usado em substituio ao valor da
relaxao de programao linear, fornecendo limites inferiores para (P) em algoritmos
exatos tipo branch and bound".

22

2.4.3 - Exemplo de formulao da relaxao lagrangeana para o


(PGA)
Para exemplificar o uso da relaxao lagrangeana, vamos considerar o problema
generalizado de atribuio (PGA). Este problema pode ser visto como maximizar o lucro pij
(benefcio, rendimento, etc.) de se atribuir n itens a m mochilas (n > m) tal que cada item
seja atribudo a apenas uma mochila, levando-se em conta as restries de peso wij de cada
item e a capacidade bi de cada mochila. A formulao matemtica do (PGA), para o caso
de maximizao, a seguinte:
m

v(PGA)

max

pij.xij

i=1 j=1

(PGA)
n

w ij.xij bi, i M = {1,...,m}

sujeito a

(2.1)

j=1
m

xij = 1, j N = {1,...,n}

(2.2)

i=1

xij {0,1}, i M, j N

(2.3)

As restries (2.1) impem que os pesos dos itens escolhidos no devem exceder
capacidade de cada mochila e as restries (2.2) impem que cada item deve ser atribudo a
somente uma mochila.
Duas relaxaes lagrangeanas podem ser diretamente identificadas, relaxando-se as
restries de capacidades (2.1) ou relaxando-se as restries de atribuio (2.2). Vamos
considerar a primeira relaxao.
Seja um vetor de multiplicadores i 0 e i M. A relaxao lagrangeana ser
m

v(LPGA)

max

{pij.xij + i.(bi - wij.xij)}.


i=1 j=1

(LPGA)
sujeito a

(2.2) e (2.3).

23

2.4.4 - Dual lagrangeano


Seja o problema (Lu) tal como definido anteriormente no item 2.4.2. O dual
lagrangeano de (Lu), chamado doravante de (DLu), determina para um conjunto de vetores
u diferentes, o maior valor de v(Lu). O dual de (Lu) seria portanto
v(DLu) = max v(Lu), u 0,
onde u = (u1, u2,...., uk) um vetor de multiplicadores com componentes reais no
negativos. Vale a pena ressaltar que se as restries relaxadas do problema original (P)
forem igualdades, ento u pode ser irrestrito de sinal.
A resoluo do dual pode ser obtida aplicando um mtodo de otimizao de
subgradientes. Este mtodo ser descrito mais adiante.
A seguir, vamos apresentar alguns resultados importantes envolvendo o dual
lagrangeano, a relaxao lagrangeana, o problema primal (P) e a relaxao de programao
linear. Atravs destes teoremas, podemos verificar caractersticas importantes da relaxao
lagrangeana . O material apresentado aqui baseia-se no livro de Parker and Rardin [55],
onde podem ser encontrados mais detalhes, incluindo provas de teoremas e provas de
convergncia de algoritmos.
Teorema 2.1. (Dualidade lagrangeana fraca) Sejam (P), (Lu) e (DLu) definidos
anteriormente. Ento, para todo u 0, v(Lu) v(P). Consequentemente,
v(DLu)v(P).
Teorema 2.2. (Dualidade lagrangeana forte) Sejam (P), (Lu) e (DLu) definidos
anteriormente. Se x* resolve (Lu*) para algum u* 0 e tambm Dx* e e u*.(e Dx*) = 0 ento x* resolve (P).
Teorema 2.3. (Caracterizao de v(DLu)) Seja J o conjunto { x | x 0 e inteiro e
Ax=b}. Sejam (P), (Lu) e (DLu) definidos anteriormente. Ento

24

v(DLu)
sujeito a

min

cx
Ax = b
Dx e
x [J]

onde [J] denota a envoltria convexa de pontos em J.

Corolrio 2.1. (Dual lagrangeano versus relaxao de programao linear) Sejam


(P), (Lu) e (DLu) definidos anteriormente e (RPL) a relaxao de programao linear
de (P). Ento v(DLu) v(RPL).

Quando [J] = J*, isto , quando subproblemas (Lu) puderem ser resolvidos pela
relaxao de programao linear, diz-se que J tem a propriedade de integralidade. Um
resultado importante pode ser visto no corolrio a seguir.

Corolrio 2.2. (Propriedade de integralidade) Sejam (P), (Lu) e (DLu) definidos


anteriormente. Se J tem a propriedade de integralidade, ento v(DLu) = v(RPL).

Teorema 2.4. (Concavidade linear por partes da funo dual lagrangeana) Sejam
(P), (Lu) e (DLu) definidos anteriormente. Ento v(Lu) uma funo cncava linear
por partes em u.

2.4.4.1 Resoluo do dual lagrangeano


Um dos mtodos de soluo de problemas no-lineares a busca por gradientes. A
idia deste mtodo , partindo-se de um determinado ponto, avanar ao longo do gradiente
da funo at um ponto em que no se consiga mais um progresso significativo. Calcula-se,
ento, o gradiente neste ponto e a busca continua. Se o problema a ser resolvido de
maximizao e a funo a ser maximizada cncava, tal processo permite uma
aproximao do timo. Do teorema 2.4, tem-se que v(Lu) em funo de u cncava. A

25

dificuldade aqui que, como esta funo linear por partes, no possvel garantir que ela
seja sempre diferencivel.

Para tratar a falta de diferenciabilidade necessrio generalizar o conceito de


gradiente. Um vetor s um subgradiente de uma funo (cncava) (u) no ponto u* se,
para todo u, (u*)+s(u-u*) (u).
Teorema 2.5. Seja (Lu) como definido acima, com J no vazio e finito. Seja S = {x
J | x resolve (Lu)}. Ento a coleo de subgradientes de v(Lu) para qualquer u tem a
forma:
{ x(e Dx) | x = 1, x 0, para todo x S }.
xS

x S

O teorema a seguir estabelece que tais subgradientes aproximam (no sentido


euclidiano de distncia) as solues de um problema soluo tima.
Teorema 2.6. Seja (u) uma funo cncava e contnua de u. Seja, para um dado ,
o conjunto B() = { u | (u) }. Ento, dados , u* B() e s (subgradiente de
no ponto u*), existe tal que:
u (u* + s) | < | u u*|, para todo u B() e (0,
).
Com base nos resultados acima, pode-se estabelecer o seguinte algoritmo para a
soluo de (DLu):
Algoritmo de subgradientes
Seja u 0,
Fazer k 1, v ,
Enquanto {no para as condies de parada} fazer
Resolver a relaxao lagrangeana (Lu). Seja x J a soluo tima obtida.
Se v < v(Lu) = c x + u (e - D x) ento v v(Lu).
Fazer u u + pk(e Dx), onde pk o tamanho de passo,
Fazer uj max (0, uj) para todo j,
Testar condies de parada,
Fazer k k+1,
fim_enquanto.

26

Deve-se observar neste algoritmo que necessrio manter o valor v da


melhor soluo obtida anteriormente porque os passos do mtodo subgradientes no
garantem melhorias em v(Lu). As condies de parada poderiam ser (e - Dx) 0 e u.(e - Dx)
= 0, onde neste caso v(Lu) = v(DLu ) = v(P), ou o tamanho do passo ficou muito pequeno ou um
nmero pr determinado de iteraes foi atingido. Outra observao refere-se aos tamanhos
dos passos pk, que devem satisfazer as condies:
(i) pk > 0 para todo k, e

lim
pk. ||(e Dx)|| = 0;
k

(ii)

pk. ||(e Dx)|| = .

k=1

Esta condies foram propostas por Ermol'ev [19], para garantir a convergncia do
algoritmo. Poljak [56] props que o clculo do passo Pk fosse feito da seguinte maneira
2

pk qk.(v(DLu) - v(Lu))/||(e - D x)|| ,


onde 0<
< qk2 -
, .
Held, Wolfe e Crowder [35] validaram outros tamanhos de passos sugeridos por
Held e Karp [34] . Na expresso de pk proposta por Poljak [56] , o valor de v(DLu)
substitudo pelo melhor limite superior conhecido (melhor soluo vivel para (P) gerada
ou conhecida no momento da atualizao do passo) e o intervalo de variao de qk
substitudo por 0 qk 2, comeando com qk inicial igual a 2. Esta proposta, embora
largamente usada, no satisfaz a condio (ii) de Ermol'ev [19] . Nos problemas enfocados
nesta tese (PGA e PCV), o passo usado foi o proposto por Poljak [56] com a substituio
de v(DLu) pelo melhor limite superior conhecido, conforme a proposta de Held e Karp
[33,34], bem como a variao do valor de qk (0qk2). Isto foi feito devido ao fato de que,
para a maioria das instncias utilizadas, no se conheciam os valores das solues timas.
A determinao do tamanho do passo e provas de convergncia do mtodo so tpicos que
tm recebido considervel ateno, o que pode ser consultado em Allen et al. [2], Held et
al.[35], Bazaraa e Sherali [6] e Goffin [30].

27

Outros mtodos para resolver (DLu) esto baseados em variantes do mtodo


simplex, e algoritmos especializados em mtodos de ajuste de multiplicadores, que
aproveitam a estrutura de uma aplicao particular (ver Fisher [23]). Estes mtodos esto
fora do escopo deste trabalho e no sero mostrados.

2.5 - Relaxao surrogate


2.5.1 - Introduo
A relaxao surrogate foi introduzida na programao matemtica por Glover
[27,28]. Basicamente, esta relaxao consiste em tomar um conjunto de restries do
problema original (P) e usando um vetor de multiplicadores transformar estas restries em
apenas uma restrio. Esta nova restrio chamada de restrio surrogate.

Desde a sua introduo por Glover [27,28], a relaxao surrogate tem sido proposta
por vrios autores para o uso na soluo de problemas no convexos, especialmente em
problemas de programao inteira. Um tratamento terico abrangente da dualidade
surrogate em programao matemtica dado por Greenberg e Pierskalla [31]. Glover
[29], em 1975, resumiu esses resultados e apresentou um tratamento unificado da teoria da
dualidade surrogate. Um estudo da relao entre o dual lagrangeano e o dual surrogate,
para o caso de problemas inteiros, foi feito por Karwan e Rardin [40].

Procedimentos de busca para multiplicadores surrogate foram desenvolvidos por


Banerjee[5], Glover [27,28,29], Karwan e Rardin [40] , Dyer [18] , Sarin et al.[60].

Mais recentemente, Lorena, Freville e Plateau [49] aplicaram a relaxao surrogate


contnua (relaxa-se tambm a restrio de integralidade) ao problema multidimensional da
mochila 0-1 com vantagens sobre a relaxao lagrangeana, principalmente em relao
estabilidade na convergncia da sequncia dos valores relaxados. No trabalho de Lorena e

28

Lopes [47] a relaxao surrogate contnua foi aplicada com sucesso no problema de
cobertura de conjuntos (PCC), obtendo maior estabilidade na sequncia de valores
relaxados e tambm resultados melhores em relao a tempo computacional em
comparao com a relaxao lagrangeana. Em Lorena e Narciso [48], esses resultados
foram confirmados com o uso da relaxao surrogate contnua no problema generalizado
de atribuio (PGA). Os trabalhos de Lorena e Lopes [47] e Lorena e Narciso [48] sero
mostrados, resumidamente,

neste captulo para exemplificar a aplicao da relaxao

surrogate.

2.5.2 - Formulao da relaxao surrogate


Seja o problema (P) definido na seo 2.2. Considera-se um vetor de
multiplicadores = (1, 2, ..., k) , onde i 0, i = 1,..,k. Uma relaxao surrogate
referente a (P) pode ser formulada como

(S)

v(S) = min cx
sujeito a
Ax = b
Dx - e 0,
x 0 e inteiro.

Desta forma, as k restries de Dx e so substitudas pela restrio Dx - e 0. Quando


as restries de integralidade so tambm relaxadas, obtem-se a relaxao surrogate
contnua (Scont), que no caso de (S) produz um problema de programao linear.
De um modo geral os problemas resultantes das relaxao surrogate so mais
difceis de resolver que os da relaxao lagrangeana. O dual surrogate (DS) definido
como

max {v(S)}, 0. Sua soluo fornece limites melhores ou iguais ao dual

lagrangeano. Este fato foi demonstrado por Greenberg e Pierskala [31] e Glover [27], e
ser formalizado a seguir. Novamente aqui, as provas dos teoremas que no forem includas
podem ser encontradas no livro de Parker e Rardin [55].

29

Teorema 2.7. (Dualidade surrogate fraca) Sejam (P), (S) e (DS) definidos
anteriormente. Ento, para todo 0, v(S) v(P). Consequentemente, v(DS)
v(P).
Prova. Cada (S) obviamente uma relaxao de (P), conforme o lema 2.1, pois
cada soluo vivel para (P) vivel para (S). Segue ento que
v(DS) = max0 v(S) v(P).

Teorema 2.8. (Dualidade surrogate forte) Sejam (P), (S) e (DS) definidos
anteriormente. Ento, se para todo * 0, existe um x* que resolve (S*) e satisfaz
Dx* e, x* resolve (P) e v(DS)= v(P).
Prova. Como (S) e (P) tm a mesma funo objetivo, e (S) uma relaxao de
(P), segue do lema 2.2 que x* resolve (P). Alm disso, a dualidade fraca implica
cx* = v(S) v(DS) v(P) = cx*. Desta forma, v(DS) = v(P).

Teorema 2.9. (Dual surrogate versus dual lagrangeano) Seja o problema (P)
definido sobre um conjunto no vazio T. Sejam (P), (S) e (DS) definidos
anteriormente. Ento v(DLu) v(DS). Alm disso, se v(DLu) = v(DS), ento, para
qualquer u* que resolva (DLu), deve existir x* T tal que u*(e - Dx*) = 0.

2.5.3 - Aplicao da relaxao surrogate contnua


Para ilustrar a aplicao da relaxao surrogate contnua, vamos tomar como
exemplos os problemas de cobertura de conjuntos (PCC) e o generalizado de atribuio
(PGA). O trabalho de Lorena e Lopes [47] sobre o (PCC) e o de Lorena e Narciso [48]
sobre o (PGA), mostraram como a relaxao surrogate contnua pode ser usada com
vantagens sobre a relaxao lagrangeana. Inicialmente, vamos descrever o (PCC) e, em
seguida, o (PGA), enfocando a relaxao surrogate.

30

2.5.3.1 - Aplicao da relaxao surrogate para o (PCC)

Muitos problemas da vida real podem ser modelados como (PCC). Como exemplos,
podemos citar: recuperao de informaes (Day [15]), localizao de facilidades
(Garfinkel [25]), balanceamento de linhas de montagem (Salverson [59]), projeto de
circuitos digitais (Quine[57]) e roteamento (Foster [24]). Outras reas de aplicao podem
ser encontradas em Balas e Padberg [4].

Lopes [46] desenvolveu um algoritmo heurstico para o (PCC) baseado em uma


relaxao surrogate contnua, usada em conjunto com um mtodo de subgradientes, e
comparou os seus resultados com a heurstica lagrangeana de Beasley [7] para o (PCC).
Veremos posteriormente que a aplicao do mtodo subgradientes com o surrogate
contnuo foi realizada em uma relaxao lagrangeana correspondente, denominada
relaxao lagrangeana/surrogate, que ser melhor descrita no captulo 3.

A heurstica de Beasley consiste em resolver o dual lagrangeano para fornecer um


limite inferior soluo tima. Alm disso, a heurstica de Beasley fornece um limite
superior, dado por uma heurstica, a qual gera a soluo vivel para o (PCC) a partir da
soluo no vivel obtida pela relaxao.

Para descrever a heurstica desenvolvida por Lopes para o (PCC), conveniente


definir a relaxao surrogate para o (PCC).
Seja o (PCC) abaixo

(PCC)

v(PCC) =
sujeito a

Min

cx
Ax e
n
x {0,1} .

31

onde c um vetor de custos com n componentes, A uma matriz de elementos iguais a 0


ou 1 e cuja dimenso m x n, e um vetor n x 1 e com todos os elementos iguais a 1 e x
um vetor com n componentes.
A relaxao surrogate associada ao (PCC)

(S)

v(S)= min
sujeito a

cx
Ax e
n
x {0,1} .

onde i 0 e o vetor no nulo.


Lopes [46], em seu trabalho, considerou a relaxao surrogate contnua do (PCC),
n

isto , a restrio x {0,1} foi relaxada para x [0,1] . Desta forma, a relaxao
surrogate contnua do PCC dada por

(Scont)

v(Scont) =
sujeito a

min

cx
Ax e
n
x [0,1] .

O problema (S) um problema da mochila 0-1. A aplicao de algoritmos do tipo


branch and bound pode resolver problemas da mochila 0-1 com milhares de variveis
(veja Martello e Toth [50]), mas sua verso contnua possui algoritmos de tempo
polinomial para soluo. A relaxao surrogate contnua leva vantagem em tempo quando
so considerados vrios valores diferentes de . A sequncia de valores para foi obtida
atravs de um mtodo subgradientes, mostrando sua relao com a soluo de um dual
lagrangeano, onde a relaxao lagrangeana/surrogate usada. Este dual no foi
completamente explicitado no trabalho de Lopes [46] (ou em Lorena e Lopes [47]). Porm
sua comparao com o dual lagrangeano de Beasley mostrou uma sequencia estvel de
valores, convergindo mais rapidamente e com aproximadamente metade do tempo usado
pela heurstica de Beasley para as mesmas instncias.

32

2.5.3.2 - Relaxao surrogate aplicada ao (PGA)


A relaxao surrogate aplicada ao (PGA), definido na seo 2.4.3, considerando a
restrio das capacidades (2.1), tem a seguinte formulao matemtica
m

v(S) = max

pij.xij

i=1 j=1
m

(S)

sujeito a

i=1

j=1

i=1

i.wij.xij i.ci

xij = 1, j N={1,...,n}

i=1

xij {0,1}, i M, j N.
i 0 e o vetor no nulo.

(S) pode ser visto como um problema da mochila de mltipla escolha [17]. Sendo
(S) um problema da classe NP-hard [23], como na aplicao ao (PCC), (Scont) foi
considerada, relaxando-se a restrio de integralidade, isto , a restrio xij {0,1} foi
modificada para xij [0,1]. Desta forma, tem-se o problema linear da mochila de mltipla
escolha. Alguns algoritmos eficientes so conhecidos para resolver este problema [17].
Dudzinski e Waluckiewicz [17] descrevem o algoritmo que foi usado para resolver o
problema da mochila de mltipla escolha linear no trabalho de Lorena e Narciso [48]. Para
uma

melhor

compreenso

deste

algoritmo

sua

conexo

com

relaxao

lagrangeana/surrogate, ser descrita a seguir a proposta de Dudzinski e Waluckiewicz


[17].

33

O problema dual da relaxao de programao linear de (Scont) pode ser escrito


como
m

i=1

i =1

( i.ci).t + ri

v(DScont) = min

(DScont)

(i.wij).t

sujeito a

+ ri pij , i M

j=1

j=1

t 0 e t um nmero real.
O conjunto de restries de (DScont) pode ser reescrito como
n

j=1

j=1

ri pij - (i.wij).t , i M.

Levando-se em conta que a funo objetivo em (DScont) de minimizao, ento


os menores valores de ri possveis ocorrem quando
n

ri = max pij - (i.wij).t , i M.


j=1

j=1

Substituindo-se ri na funo objetivo em (DScont), temos


m

v(DScont) = min {( i.ci).t + max


i=1

[pij - (i.wij).t]}

i=1 j=1

Desta forma, (DScont) pode ser escrito como uma minimizao de uma funo
linear por partes, isto ,

v(DScont) = min

( i.ci).t +
i=1
n

onde

fi(t) = max

j=1

fi(t),
i=1

[pij - (i.wij).t], i M.

34

A funo objetivo de (DScont) funo de t. A figura 2.1, a seguir, apresenta uma


representao grfica do problema:

fi(t)

t*

Figura 2.1: Comportamento da funo a ser otimizada no dual surrogate contnuo

Da figura 1, pode-se observar que existe um ponto de mnimo. Seja t* este ponto.
Seja v(t) = fi(t) . No ponto de mnimo t*, a derivada a esquerda de v(t*) negativa. A
derivada a direita de v(t*) positiva. Simbolizando a derivada a esquerda de v(t*) como
-

sendo v'(t*) e a derivada a direita de t* como sendo v'(t*) +, tem-se que


m

v'(t*) = max

(i.wij)
i=1
m

v'(t*) + = min

(i.wij)
i=1

onde (i.wij) tal que pij - (i.wij).t* = fi(t*).

35

Uma vez que, para um dado t = t*, v'(t*) < 0 e v'(t*)


por t* = (prj* - psj*) / (r.wrj* - s.wsj*), onde r, s M e j* N.

> 0, o valor de t* dado

A soluo tima de (Scont) dada por:


xij = 1 para os valores de i e j que satisfazem fi(t*) = pij - (i.wij).t*
xrj* = q, xsj* = 1 - q
xrj = 0 para os demais valores de i e j.
O valor de q dado por
m

q = [ ( i.ci) -
i=1

(i.wij)] / (r.wrj* - s.wsj*)

i=1 j=1
j j*

Observa-se que dois valores da soluo so fracionrios (xrj* = q, xsj* = 1 - q). Caso
o valor de q seja 0, ento a soluo obtida tambm soluo para a relaxao surrogate no
contnua.
O dual surrogate contnuo foi resolvido fazendo-se uma busca de t=t*, com um
valor fixo do vetor . Reescrevendo sua funo objetivo, tem-se que
m

v(DScont) = min { max [ pij + (ci - w ij).i.t ]}


i=1 j=1

j=1

Uma relaxao lagrangeana pode ser identificada desta expresso, onde o


multiplicador lagrangeano seria .t. Esta relaxao ser identificada no prximo captulo
como a relaxao lagrangeana/surrogate.

Algumas observaes a mais podem ser feitas a ttulo de resumo da aplicao do


surrogate contnuo aos problemas (PCC) e (PGA):

36

(i) O vetor est fixo na formulao de (S). A princpio a relaxao surrogate


contnua (Scont) foi usada com o objetivo de se ter um problema de mais fcil
soluo;
(ii) Com a variao do vetor em um mtodo de otimizao por subgradientes, o
problema (Scont) foi resolvido vrias vezes, para diferentes valores de ;
(iii) O uso do mtodo subgradientes como introduzido na seo 2.4.4.1 tem seu
fundamento terico de convergncia para a relaxao lagrangeana. Portanto, o
surrogate contnuo adequado ao uso do mtodo subgradientes pela
identificao realizada acima de uma relaxao lagrangeana implcita;
(iv) Outra constatao interessante a de que para os problemas testados e
relaxaes consideradas, o conjunto de restries em questo possui a
propriedade de integralidade, proporcionando, conforme o corolrio 2.2, a
igualdade dos limites timos dos problemas (DScont) e um possvel dual
lagrangeano na varivel unidimensional t.

2.5.3.2.1 - Resultados Relaxao surrogate contnua aplicada ao


(PGA)
A relaxao surrogate contnua obteve melhores resultados (em termos de tempo)
do que a relaxao lagrangeana, na mdia de todos os problemas testados. Foram testados
problemas das classes A, B, C e D. Estas classes de problemas esto disponveis na ORLibrary [8] e tambm esto descritas no apndice A. A grande dificuldade da relaxao
surrogate contnua foi a sua implementao computacional, a qual foi bem mais complexa
que a implementao da relaxao lagrangeana. Maiores detalhes podem ser vistos em
Lorena e Narciso [48] e Narciso [52]. As figuras 2.2, 2.3 e 2.4 a seguir mostram o
comportamento do dual lagrangeano e o comportamento do dual surrogate contnuo para
uma instncia conhecida por B10x60. Em cada um dos grficos esto dispostos os pontos
relativos relaxao e os pontos da soluo vivel obtidos em cada iterao. Observe que o
comportamento do dual surrogate contnuo bem mais estvel e tambm converge em um

37

menor nmero de iteraes do que o dual lagrangeano. Estes grficos exemplificam o


comportamento dos duais lagrangeano e surrogate contnuo para as instncias da classe B.
Este comportamento foi observado tambm para as instncias das classes A, C e D.

Lagrangeano
1640
1590
1540
1490

274

287

273

289

iterao

Figura 2.2 - comportamento do dual lagrangeano

surrogate contnuo

1640
1590
1540
1490

iterao

Figura 2.3 - comportamento do dual surrogate contnuo

241

225

161

145

129

113

97

81

65

49

33

17

1440

300

261

257

248

209

209

235

196

193

222

183

177

170

157

144

131

118

105

92

79

66

53

40

27

14

1440

38

Para uma melhor visualizao da figura 2.3, est abaixo a figura 2.4 com o eixo da
ordenada modificado.

surrogate contnuo

iterao

Figura 2.4 - comportamento do dual surrogate contnuo

289

273

257

241

225

209

193

177

161

145

129

113

97

81

65

49

33

17

1465
1464
1463
1462
1461
1460
1459
1458
1457
1456
1455

39

CAPTULO 3
3 - Relaxao lagrangeana/surrogate (lagsur)
3.1 - Introduo
A relaxao lagrangeana/surrogate (lagsur) uma nova proposta para problemas
de Otimizao Combinatria. As relaxaes lagrangeana e surrogate so combinadas com
objetivo de conseguir melhores tempos computacionais na aplicao de heursticas
subgradientes.

Para um dado problema de Otimizao Combinatria, inicialmente derivada uma


relaxao surrogate de um conjunto adequado de restries. Uma relaxao lagrangeana da
restrio surrogate ento obtida. Vale a pena mencionar que neste caso o multiplicador
lagrangeano uni-dimensional.

Considerando-se a aplicao de um mtodo subgradientes com a relaxao


lagrangeana usual e a lagsur, dado um mesmo multiplicador inicial para as duas relaxaes,
a relaxao lagsur nos proporciona um conjunto maior de informaes locais que a
relaxao usual lagrangeana. Uma otimizao local do multiplicador lagrangeano da
relaxao lagsur capaz de proporcionar limites locais de melhor qualidade.

A relaxao lagsur foi inspirada nos trabalhos de Lorena e Lopes [47] e Lorena e
Narciso [48] observando-se os resultados da aplicao das relaxaes surrogate contnua e
lagrangeana para o (PCC) e (PGA), respectivamente. Foi constatado que na aplicao de
um mtodo subgradientes, usando o mesmo multiplicador inicial, sobre os mesmos dados, a
relaxao surrogate contnua proporcionava uma sequncia mais estvel que a
correspondente da relaxao lagrangeana, convergindo mais rapidamente. Alm disso, os

40

limites obtidos com a aplicao da relaxao surrogate contnua eram to bons quanto os
obtidos com a relaxao lagrangeana.

Para os problemas estudados, isto , o problema de cobertura de conjuntos e o


problema generalizado de atribuio, as relaxaes lagrangeanas consideradas possuiam a
propriedade de integralidade, existindo uma coincidncia dos limites obtidos com o dual
da relaxao surrogate contnua e o dual lagrangeano. Mais adiante neste captulo, com a
definio formal da relaxao lagsur, iremos mostrar que neste caso, com o uso da
relaxao surrogate contnua, estamos usando a informao local (otimizao) em todos os
passos do correspondente mtodo subgradientes.

A relaxao lagsur fornece um mtodo geral para trabalhar com relaxaes que
satisfaam ou no a propriedade de integralidade e, em princpio, pode ser usada com uma
classe de mtodos de subgradientes, conforme ser mostrado mais adiante neste captulo. A
direo do subgradiente , em geral, diferente da fornecida pela direo correspondente
dada pela relaxao lagrangeana.

Conforme pode ser constatado nos resultados relativos s instncias do (PGA) e do


(PCV) (captulos 4, 5 e Apndice A), a relaxao lagsur apropriada para problemas com
um grande nmero de variveis. Quanto maior for o nmero de variveis do problema,
melhor ser o desempenho da relaxao lagsur em relao relaxao lagrangeana no que
se refere a tempo de execuo. Esta comparao da relaxao lagrangeana com a relaxao
lagsur adequada visto que a relaxao lagsur tambm uma relaxao lagrangeana.

3.2 - Formulao matemtica da relaxao lagsur


Para expor matematicamente a relaxao lagsur, vamos considerar novamente o
problema (P), tal como foi definido na relaxao no captulo 2.

41

(P)

v(P) = min cx
sujeito a
Ax = b
Dx e
x 0 e inteiro.

Considere ainda a relaxao surrogate (S) de (P) em relao ao conjunto de


restries Dx e, considerando-se um vetor de multiplicadores = (1, 2, ..., k) , onde i

0, i = 1,..,k.
(S)

v(S) = min cx
sujeito a
Ax = b
Dx - e 0,
x 0 e inteiro.

Desta forma, as k restries de Dx e foram substitudas pela restrio Dx - e 0. Seja


o conjunto J definido por J = { x 0 e inteiro | Ax = b }. Relaxando a restrio de
integralidade, isto , x 0 e x um nmero real, esto teremos a relaxao surrogate
contnua (Scont) e v(ScontP) v(S).

Seja agora relaxar a restrio surrogate de (S) no modo lagrangeano. Visto que a
restrio surrogate possui apenas uma dimenso, precisa-se de um multiplicador de apenas
uma dimenso. Seja t 0 o multiplicador lagrangeano. Desta forma, aps relaxar a restrio
surrogate, temos a relaxao lagsur com a seguinte formulao:
v(LtS) = min cx - t.( Dx - e )
(LtS) sujeito a
x J
Reescrevendo a funo objetivo, temos:
v(LtS) = min (c -t..D ).x + t..e
(LtS) sujeito a
x J
Visto que (LtS) uma relaxao de (S), ento temos: v(LtS) v(S) v(P).

42

O dual lagsur dado por


(DLtS)

v(DLtS) = max v(LtS)


sujeito a
t. 0.

imediato que, fazendo-se u = t., o problema (DLtS) o dual lagrangeano (DLu)


definido na seo 2.4.4. Desta forma, os limites inferiores coincidem para o dual lagsur e
para o dual lagrangeano.

Um dual local tambm pode ser obtido usando-se o lagsur. Para um multiplicador
, fixado em um valor *, o melhor valor de t para o qual v(LtS*) seja mximo dado por

(DLtS*)

v(DLtS*) = max v(LtS*)


sujeito a
t 0.

Se o conjunto J satisfaz a propriedade de integralidade, ento v(DLtS*) =


v(Scont*) (corolrio 2.2). Em geral, temos v(LtS) v(DLtS*) v(DLtS) = v(DLu)
v(P).

Uma caracterstica interessante da relaxao lagsur que, usando-se t = 1, tem-se a


relaxao lagrangeana usual para a restrio Dx e referente ao multiplicador . Desta
forma, para t = 1 , temos:

(L1S)
O problema

v(L1S) = min (c -.D ).x +.e


sujeito a
x J
(L1S) em nossa notao poderia ser escrito ainda como (L) (veja

seo 2.4.2). Handler e Zang [32] e Minoux [51] propuseram uma forma exata de resolver
(DLtS*), e consequentemente obter o melhor valor local do multiplicador t (dado que
v(LtS) v(DLtS*)). O custo computacional para se obter o melhor t, conforme a proposta
de Handler e Zang alto. Entretanto, nem sempre ser necessrio se obter o melhor valor
de t, bastando obter um valor de t que leve a um resultado melhor do que para t = 1.

43

Vamos considerar a figura abaixo, a qual ilustra o comportamento de v(LtS*) em


funo de t para * fixo.

v(LtS*)

v(L1S*)

t1

t*

t2

Figura 3.1 - Comportamento da funo objetivo da relaxao lagsur

Na figura 3.1, tem-se que a funo a ser otimizada na relaxao lagsur cncava e
linear por partes (teorema 2.4). Alm disso, o valor de t = t* que torna v(LtS*) mximo
situa-se no intervalo t1< t < t2. Supondo t1 = 1 , se obtivermos um valor de t no intervalo
t1=1 < t < t2, ento v(LtS*) > v(L1S*). O mesmo raciocnio pode ser repetido quando t2 =
1. Um algoritmo de busca unidimensional poderia ser empregado aqui, e a obteno do
valor de t nos intervalos considerados teria um custo computacional menor que o da
resoluo de (DLtS*).
O dual lagsur (DLtS) pode ser resolvido usando-se o mtodo subgradientes.
Localmente, a relaxao lagsur pode fornecer melhores limites do que a correspondente
relaxao lagrangeana (L). As regras de convergncia do mtodo subgradientes, definidas
no teorema 2.6 do captulo 2, bem como os resultados de Ermol'ev [19], Poljak [56], Held e
Karp [33,34], tambm valem para o lagsur.

44

3.3 - Aplicao do algoritmo de subgradientes


Para a aplicao do algoritmo de subgradientes apresentado na seo 2.4.4.1, alguns
de seus passos foram reescritos para que o mesmo algoritmo fosse usado com as duas
relaxaes, a lagrangeana e a lagsur. Depois de resolvida a respectiva relaxao, sua
soluo tornada vivel ao problema (P) aplicando uma heurstica convenientemente
elaborada visando a aplicao em estudo. Os limites superior e inferior so atualizados e
usados na frmula de atualizao do passo na direo do subgradiente. Alguns critrios de
parada adicionais aos apresentados no algoritmo da seo 2.4.4.1 podem ser derivados. O
algoritmo de subgradientes foi ento reescrito como:
Algoritmo de subgradientes - verso II
Seja 0,
Fazer lb - e ub +
Enquanto {no para as condies de parada} fazer
Resolver (Rel). Seja x J a soluo tima obtida.
Obter uma soluo vivel xv para (P) a partir de x e o valor c. xv,
Fazer lb mx (lb, v(Rel)),
ub min (ub, c.xv).
Atualizar a direo do subgradiente g , o tamanho do passo p, e o
multiplicador ;
Testar condies de parada,
fim_enquanto.

Deste algoritmo, algumas consideraes devem ser feitas:


(i) A relaxao (Rel) pode ser uma das duas relaxaes: (L) (lagrangeana) ou
(LtS) (lagsur). O uso da relaxao lagrangeana pode ser considerado nesse caso
como a lagsur, onde o multiplicador t foi fixado no valor 1 em todas as
iteraes do algoritmo de subgradientes - verso II. A relaxao lagsur envolve
ainda a aplicao de um algoritmo para o clculo do multiplicador t . Este
algoritmo pode ser um de busca unidimensional ou eventualmente aquele que
calcula o melhor multiplicador

t de uma forma exata (como foi feito no caso

das aplicaes apresentadas considerando o (PCC) e o (PGA)). No caso da

45

aplicao do lagsur ao (PGA), que ser descrito no captulo 4, um algoritmo de


busca unidimensional foi aplicado durante algumas iteraes do algoritmo
subgradientes - verso II. J no caso da aplicao ao (PCV) o mtodo de busca
unidimensional foi aplicado apenas na primeira iterao do algoritmo.
(ii) A atualizao do multiplicador e do tamanho do passo feita da seguinte
maneira:
i max {0, i + p.gi }, i = 1,2,...,k,
onde g o subgradiente selecionado e p > 0 o tamanho do passo. O tamanho
do passo mais usado p = .(ub - lb)/|| g ||2. O valor de um nmero real e
0<2. O valor de variado durante as iteraes do mtodo dos subgradientes.
Inicialmente, comea com o valor 2. Aps um determinado critrio ter sido
atingido, passa a ser /2 ( o valor atual dividido pela metade).
No caso da relaxao lagsur, o multiplicador tm. (onde tm o melhor valor do
parametro t obtido por busca unidimensional ou mtodo exato) est sendo
atualizado indiretamente.

Suponha tm calculado na primeira iterao do

algoritmo de subgradientes - verso II, e ento fixado nas demais iteraes.


Desta forma, uma correspondente regra de atualizao para os multiplicadores
tm. obtida substituindo-se p por tm.p (tm um multiplicador escalar). Por
outro lado, se tm calculado em cada iterao (ou em algumas iteraes) do
algoritmo de subgradientes - verso II,

um efeito semelhante poderia ser

constatado.

(iii) Critrios de parada:


Nmero de iteraes > valor convenientemente escolhido, ou
0.005, ou
ub - lb < 1, ou
a parte inteira de lb no mudar aps 30 iteraes consecutivas.
(iv) A direo do vetor de subgradientes obtida na soluo do problema (LtS), em
geral diferente da correspondente direo obtida pela soluo do problema (L).

46

Iniciando o mtodo subgradientes com o mesmo multiplicador inicial 0 ,


diferentes sequncias de limites so obtidas para cada relaxao.

(v) Outros mtodos subgradientes apareceram na literatura [10,11,14,41,42]. Mais


elaborados, eles aumentam os tempos computacionais computando direes
descendentes [14], ou combinando subgradientes de iteraes anteriores [10,11],
ou realizando projees em conjuntos convexos [41,42,44]. Resultados
experimentais com alguns destes mtodos mostraram uma melhora no
desempenho quando comparados ao mtodo subgradientes [41,44]. O mtodo
subgradientes ainda largamente usado para se obter o dual da relaxao
lagrangeana.

3.3.1 - Comentrios sobre o algoritmo de subgradientes


Este algoritmo tem uma srie de fatores que influenciam o desempenho. Estes
fatores so:

O tipo de relaxao do problema. Como exemplo, considere o (PGA), e trs maneiras


diferentes de se usar a relaxao lagrangeana (vide prximo captulo). Observa-se que,
para uma mesma instncia, o tempo para se resolver o dual de cada tipo diferente de
relaxao lagrangeana

diferente e os valores dos limites obtidos tambm so

diferentes.
Os valores iniciais usados para os multiplicadores. A convergncia mais rpida ou
lenta do algoritmo de subgradientes est ligada tambm aos valores iniciais dos
multiplicadores . Entretanto, no possvel prever que valor de inicial seria eficaz
para cada instncia;

47

O tamanho do passo. O controle do tamanho do passo importante, pois pode


influenciar no comportamento da relaxao, principalmente no que se refere a
estabilidade e convergncia;

As condies de parada do algoritmo. Elas devem ser convenientemente escolhidas de


tal forma que, ao trmino do algoritmo, a sequncia de valores fornecidos pela
relaxao j tenha se estabilizado.

Controle do valor do parmetro "". H casos em que o parmetro "" do tamanho


passo "p" rapidamente diminui. Isto pode comprometer a qualidade do resultado do
dual da relaxao em questo. Como um dos critrios de parada o valor de < 0.005,
ento o algoritmo pode parar antes do algoritmo de subgradientes conseguir um valor
razovel. Desta forma, necessrio controlar o decaimento de "" para que este no
fique pequeno demais, pois a soluo final resultante pode no ser a melhor que o
algoritmo de subgradientes possa obter.

48

CAPTULO 4
4. Problema Generalizado de Atribuio
4.1 - Introduo

O problema de se maximizar o lucro (benefcio, rendimento, etc.) ao se atribuir n


tarefas a m agentes, n > m, tal que cada tarefa seja atribuda a apenas um nico agente,
levando-se em conta as restries de capacidade de cada agente, conhecido na literatura
como problema generalizado de atribuio (PGA). Muitos problemas da vida real podem
ser modelados como um (PGA). Podemos citar como exemplos,

problemas de

investimento de capitais [16], alocao de espao de memria [12], projeto de redes de


comunicao com restries de capacidades para cada n da rede [16], atribuio de tarefas
de desenvolvimento de software para programadores [3], atribuio de tarefas a
computadores em uma rede [3], subproblemas de roteamento de veculos [22] , e outros.
Como uma consequncia lgica de sua aplicao, um grande esforo tem sido realizado no
desenvolvimento de algoritmos para este problema [39].
Este problema NP-hard [12,23] e poucas heursticas existem na literatura para a
resoluo deste problema de forma a encontrar boas solues viveis. Dentre as que mais se
destacam podemos citar as de Klastorin [43], Martello e Toth [50] e Lorena e Narciso [48].

Em Lorena e Narciso [48] temos alguns resultados da relaxao lagrangeana e


tambm da relaxao surrogate contnua aplicadas ao (PGA). Com instncias do (PGA),
obtidas da OR-Library [8], foram comparadas as duas relaxaes (surrogate contnua e
lagrangeana) e a relaxao surrogate contnua mostrou-se ser melhor tanto em tempo
computacional como em limites de relaxao. A seqncia de limites de relaxao obtida
com a aplicao do algoritmo de subgradientes - verso II, mostrou-se mais estvel no caso
da relaxao surrogate contnua.

49

A aplicao do trabalho de Lorena e Narciso se restringiu relaxao lagrangeana


do (PGA) apresentada na sesso 2.4.3. Neste caso particular de relaxao das restries de
capacidades, o problema resultante apresenta um conjunto de restries que satisfaz a
propriedade de integralidade, onde foi usado um algoritmo exato de resoluo do dual
(DLtS*) (resumido na sesso 2.5.3.2).

Nesta sesso, sero usadas trs relaxaes diferentes para o (PGA). O desempenho
da relaxao lagrangeana e da relaxao lagsur ser mostrado para um conjunto maior de
instncias para o (PGA), incluindo instncias de grande porte, todas obtidas da OR-Library
[8]. Duas das relaxaes no apresentam a propriedade de integralidade e
consequentemente seus limites so melhores que os do trabalho de Lorena e Narciso [48].
Alm disso, um algoritmo de busca unidimensional foi usado para o clculo do melhor
parmetro lagsur em algumas iteraes do algoritmo subgradientes-verso II. A heurstica
construtiva, que torna a soluo da relaxao viavel, foi melhorada. Os resultados foram
melhores que os do trabalho de Lorena e Narciso [48], tanto em limites de relaxaes
quanto nos de solues viveis, e esto apresentados em um artigo recente (Narciso e
Lorena [53]).

4.2 - Relaxaes lagrangeanas e lagsur


O (PGA) foi formulado matematicamente na sesso 2.4.3, e ser relembrado aqui
para melhor continuidade do texto:

v(PGA)

max

m
n

pij.xij
i=1 j=1

(PGA)
sujeito a

n
wij.xij bi, i M = {1,...,m}
j=1

(4.1)

50

m
xij = 1, j N = {1,...,n}
i=1

(4.2)

xij {0,1}, i M, j N

(4.3)

As restries (4.1) impem que os pesos dos itens escolhidos no devem exceder
capacidade de cada mochila e as restries (4.2) impem que cada item deve ser atribudo a
somente uma mochila.

A relaxao lagrangeana aplicada ao (PGA) pode ser vista inicialmente de duas


maneiras, isto , relaxando-se as restries das capacidades (4.1) ou relaxando-se as
restries de atribuio (4.2). Vamos considerar inicialmente a relaxao das restries
(4.1), reproduzindo a relaxao usada em Lorena e Narciso [48] e tambm apresentada na
sesso 2.4.3.
Seja um vetor de multiplicadores i 0 e i M. A primeira relaxao lagrangeana
ser

v(LcPGA) = max

m n
m n
{(pij - i. w ij).xij} +
i.cij
i=1 j=1
i=1j=1

(LcPGA)
sujeito a

(4.2) e (4.3);

e para um multiplicador multiplicador t 0, a correspondente lagsur


m n
m n
v(LtScPGA) = max
{(pij - t.i. w ij).xij} + t.i.cij
i=1 j=1
i=1j=1
(LtScPGA)
sujeito a
(4.2) e (4.3)

Para a segunda relaxao consideram-se outros multiplicadores j e j N.

51

m
n
n
v(LaPGA) = max
{(pij + i).xij } - j
i=1 j=1
j=1
(LaPGA)
sujeito a (4.1) e (4.3);
e a correspondente lagsur (para t irrestrito neste caso)
m n
n
v(LtSaPGA) = max

{(pij + t.i).xij } - t.j


i=1 j=1
j=1
(LtSaPGA)
sujeito a (4.1),(4.3)
Para a resoluo de (LaPGA), basta verificar que, para cada i M, existe um
problema da mochila a ser resolvido. Desta forma, podemos decompor o problema como:

n
v(LaPGA)i = max
{pij.xij + j.(1 - . xij)}
j=1
(LaPGA)i
sujeito a (4.1) e (4.3)
O valor de v(LaPGA) seria o somatrio dos valores dos m problemas da mochila, isto ,
v(LaPGA)

v(LaPGA)i
=
i=1

Uma interpretao semelhante poder ser dada no caso da relaxao lagsur,


considerando-se t fixo.

Das duas relaxaes diferentes apresentadas at agora temos a seguinte relao:


v(LaPGA)v(LcPGA) (propriedade de integralidade). Nos resultados obtidos com

52

instncias do (PGA), descritos no apndice A, isto pode ser visto claramente. Entretanto, a
relaxao (LaPGA) de mais difcil soluo que a relaxao (LcPGA), visto que m
problemas da mochila devero ser resolvidos para se determinar o valor de (LaPGA). Para
o caso de (LcPGA), o problema se resume o de escolher, para cada j, o maior valor de (pij
- iw ij), para i variando de 1 a m (idem para a correspondente lagsur com t fixo) e, desta
forma, este problema resolvido de forma exata. Vale a pena mencionar que o problema da
mochila deve ser resolvido de forma exata. Para resolver de forma exata os m problemas da
mochila, tm-se vrias opes de algoritmos na literatura. O algoritmo usado para se
determinar os m problemas de forma exata foi o proposto por Horowitz e Sahni [50].

Em 1986, Jornsten e Nasberg [38] propuseram uma nova relaxao lagrangeana que
combina as relaxaes (LaPGA) e (LcPGA). Esta nova relaxao esta descrita a seguir.
Seja o seguinte problema:

m n
m n
v(JN) = max
pij.xij + pij.y ij
i=1 j=1
i=1 j=1
(JN)
sujeito a

(4.1)

m
yij = 1, j N = {1,...,n}
i=1

(4.4)

yij = xij, para i = {1,...,m} e j = {1,...,n}

(4.5)

xij {0,1}, i M, j N

(4.6)

yij {0,1}, i M, j N

(4.7)

Na expresso da funo objetivo, e so positivos. Pode-se afirmar tambm que


v(JN) = (+).v(PGA). Se +=1, ento tem-se que v(JN)=(+).v(PGA)=1.v(PGA) =
v(PGA). No apndice A, e resumidamente neste captulo, so apresentados uma srie de

53

resultados obtidos com a proposta de Jornsten e Nasberg. Para estes resultados, os valores
de e so iguais a 0.5.

Para um multiplicador (cujos componentes ij so nmeros reais), relaxando as


restries (4.5) conforme a relaxao lagrangeana, teremos:
m
n
m n
m n
v(LJN) = max [
pij.xij + pij.yij + ij(y ij - xij)]
i=1 j=1
i=1 j=1
i=1 j=1
(LJN)

(4.1), (4.4), (4.6) e (4.7).

sujeito a

Considerando ainda um multiplicador t (irrestrito em sinal), tem-se a


correspondente relaxao lagsur
m
n
m n
m n
v(LtSJN)= max [
pij.xij + pij.y ij + t.ij(y ij - xij)]
i=1 j=1
i=1 j=1
i=1 j=1
(LtSJN)

(4.1), (4.4), (4.6) e (4.7).

sujeito a

O problema (LJN) podem ser separado em dois outros problemas, (LXJN) e


(LYJN). O primeiro est descrito a seguir.
v(LXJN) = max
(LXJN)

m n

(.pij - ij).xij
i=1 j=1

sujeito a

(4.1) e (4.6)

O segundo problema tem a seguinte formulao matemtica:


v(LYJN) = max

(LYJN)

m n

(.pij + ij).yij
i=1 j=1

sujeito a (4.4) e (4.7)

54

Observe que o primeiro problema apresenta o conjunto de restries variveis xij e o


segundo com as variveis y ij. Alm disso, temos que v(LJN) = v(LYJN) + v(LXJN),
conforme descrito em Jornsten e Nasberg [38]. Esta relaxao lagrangeana tambm
conhecida como decomposio lagrangeana [38].
Os problemas acima so semelhantes aos descritos nas relaxaes anteriores e so
resolvidos da mesma forma descrita para essas relaxaes.

A relaxao (LJN) tem a caracterstica de obter limites melhores que as relaxaes


(LaPGA) e (LcPGA). Entretanto, a convergncia bem mais lenta. Isto foi comprovado
nos resultados obtidos com os problemas testes para o (PGA). Maiores informaes sobre a
relaxao descrita acima pode ser vista em Jornsten e Nasberg [38].

Cada uma destas relaxaes foi comparada com a respectiva relaxao lagsur e os
resultados computacionais esto apresentados na seo 4.6 e no apndice A.

4.3 - Busca unidimensional

Nas trs relaxaes lagsur propostas para o (PGA), uma busca local foi empregada
para se aproximar o melhor valor de t. Para um dado fixo, temos que a funo objetivo da
relaxao lagsur linear por partes.

A figura

4.1 ilustra, qualitativamente, o

comportamento da funo v(LtSPGA) versus t. Observe que a funo v(LtSPGA) linear


por partes (teorema 2.4).

55

v(LtSPGA)

t*

Figura 4.1 - comportamento da funo v(LtSPGA)

No existe uma expresso analtica que obtenha o melhor valor de t diretamente tal
que minimize v(LtSPGA). No captulo 3 foram citados Minoux [51] e Handler e Zang
[32], os quais propuseram mtodos para se obter esse valor.

Entretanto, estes mtodos

consomem muito esforo computacional. Desta forma, como foi descrito no captulo 3,
busca-se uma forma alternativa de se obter um valor de t tal que v(LtSPGA) < v(L1SPGA)
e este valor de t seja o mais prximo possvel do melhor valor de t em poucas iteraes.
Existem na literatura uma srie de propostas para se obter o valor de t quando se conhece o
intervalo no qual ele se encontra. Entretanto, para o caso do lagsur, h de se levar em conta
o fato de que no se sabe previamente um intervalo no qual t esteja contido. Desta forma,
necessrio obter t

atravs de um mtodo que seja independente dos valores de um

intervalo. Uma proposta de se obter um valor de t descrita a seguir:

1 . Defina um valor de t inicial t = t0. Calcule o valor do lagsur para este t=t0.
2 . Se a inclinao da funo v(LtSPGA) for negativa, isto indica que o valor de
t* maior que t. Desta forma, um possvel limite inferior do intervalo no qual t*

56

est t1 = t. Se a inclinao da funo v(LtSPGA) for positiva, isto indica


que o valor de t* menor que t. Desta forma, o limite superior do intervalo
no qual t* est t2 = t.
3 . Conforme a avaliao do passo 2, o valor de t dever sofrer um acrscimo ou
um decrscimo para uma nova avaliao do lagsur. Aps calcular este novo
valor para t, ento voltar para o passo 2 caso o critrio de parada no
seja satisfeito. Em cada iterao deste mtodo, verificar qual o menor valor
de v(LtSPGA) e guard-lo. Quando o critrio de parada for atendido,
tem-se ento o menor valor de v(LtSPGA) e o respectivo valor de t.

Em relao ao critrio de parada, para o (PGA), levou-se em considerao:


o limite mximo de iteraes e
a diferena entre t2 e t1 ser menor que
, definido conforme
o grau de preciso que se queira obter para se obter t*.

Para o (PGA), usando uma srie de instncias, observou-se que, para uma mdia de
11 iteraes, a diferena entre t2 e t1 tornava-se menor que 0.05. Entretanto, isto custa uma
quantidade considervel de tempo. Desta forma, para os testes feitos para o (PGA), o limite
mximo de iteraes para se obter o melhor valor de t foi 5 e o valor de foi 0.10.
Feitas as consideraes acima, pode-se ento descrever o algoritmo de busca do
melhor t que foi usado para o (PGA).

57

Algoritmo de busca do melhor t


Dados incremento = 0.10;
k_max = 5 (nmero mximo de iteraes);
t1 := - ( limite inferior para o melhor t);
t := incremento ( multiplicador lagrangeano/surrogate atual);
t2 := ( limite superior para o melhor t);
v* := (melhor limite inferior atual). Inicialmente, v* := + ;
k := 0 ( nmero de iteraes atual);
delta = 0.10;
Repita
Fazer k := k + 1;
Se k > k_max ou (t2 - t1) < delta ento pare;
Seno resolva (LtSPGA)
Fim_Se
Se v(LtSPGA) < v* ento
Fazer melhor_t = t,
v* := v(LtSPGA);
Fim_Se

Calcule ( a inclinao da funo lagsur);


Se

> 0 ento
t2 = t;
t = t - incremento;
Se t1 - (t1 j tem valor definido) ento
incremento = (t2 - t1)/2.0;
t = t + incremento;
Fim_Se
seno
t1 = t;
incremento = incremento*2;
t = t + incremento;
Se t t2 ento
t = t - incremento;
incremento = (t2 - t1)/2.0;
t = t + incremento;
Fim_Se

Fim_Se
At ( condies de parada ).

58

O valor da inclinao para cada um dos tres casos o seguinte:


1) para quando a restrio relaxada for a das capacidades
=

m
m
n
( bi.i -
i.wij.xij)
i=1
i = 1 j=1

2) para quando a restrio relaxada for a da atribuio

n
( j j=1

m
n

i.xij)
i = 1 j=1

3) para quando a restrio relaxada for a proposta por Jornsten e Nasberg


m
=
i=1

n
ij.(yij - xij)
j=1

4.4 -Heurstica usada para fornecer soluo vivel ao (PGA)

Em Lorena e Narciso [48] foi descrita uma heurstica que era usada para se resolver
o (PGA) e fornecer uma soluo vivel. Esta heurstica, na mdia, com instncias
conhecidas como classe C, as quais tm soluo tima conhecida, forneceu resultados
muito prximos da soluo tima para cada instncia considerada. O maior desvio em
relao soluo tima foi de 0.5%. Para as classes A e B, esta heurstica praticamente
obteve todas as solues timas. A idia desta heurstica , partindo-se da soluo obtida
atravs de uma relaxao, tentar torn-la vivel atravs de uma srie de critrios. Esta
heurstica foi melhorada (adicionando mais uma etapa, a qual est descrita no algoritmo a
seguir como etapa 5) e usada para se obter a soluo vivel para cada instncia do (PGA).

59

Para cada restrio relaxada, a heurstica tem um determinado critrio. Considerando-se a


relaxao das capacidades, tem-se as seguintes etapas do algoritmo
1 . Verificar quais foram as restries de capacidade que no foram atendidas;

2 . Nas restries de capacidades no atendidas pela soluo fornecida


pela relaxao retirar, em ordem crescente, pij tal que xij seja igual a 1 at
que as restries de capacidades voltem a ser atendidas. Aps isto,
algumas restries de atribuio ficam sem ser atendidas.

3 . Inserir, em cada coluna j, na qual a restrio de atribuio no seja atendida,


o maior valor de pij possvel tal que a restrio das capacidades no sejam
violadas;

4 . Caso consiga viabilizar todas as restries de atribuio sem violar as restries


de capacidade, ento melhorar a soluo conforme a proposta de Martello e
Toth [50] modificada ( vide em Lorena e Narciso [48]).

5 . Se no conseguir viabilizar, repetir os critrios de 1 a 4 com alterao no


critrio 2. A alterao seria, nas restries de capacidades no atendidas,
retirar, em ordem crescente de pij/wij tal que xij = 1, pij at que as restries
de capacidade sejam atendidas;

6 . Se no conseguir viabilizar, repetir os critrios de 1 a 4 com alterao no


critrio 2. A alterao seria, nas restries de capacidades no atendidas,

60

retirar, em ordem decrescente de wij tal que xij = 1, pij at que as restries
de capacidade sejam atendidas;

7 . Se no conseguir viabilizar, ento usar uma heurstica qualquer para obter


a soluo vivel tal que a soluo seja funo do multiplicador .

O algoritmo para os primeiros 4 critrios acima, quando a restrio relaxada a das


capacidades, o seguinte:

Algoritmo soluo vivel para o PGA


Fazer zij :=xij; i = 1,....,m (z recebe a soluo x da relaxao)
knapi := bi - wij.xij; j = 1,....,n
Repita para i = 1, 2,....., m
Se knapi < 0 ento
j* := ndice de min { pij | zij= 1}
K := { k | (knapq - wij*) 0; q = 1, 2, ...., m; q i }
Se K ento
i* := ndice de max { pkj* | k K};
zij* := 0;
zi*j* := 1;
knapi := knapi + wij*;
knapi* := knapi* - wi*j*;
fim_Se
fim_Se
fim_Repita
Repita para i = 1, 2,....., m
Se knapi < 0 ento v para o passo 5;
{ Os 4 primeiros passos do algoritmo no encontraram uma soluo}
fim_Se
fim_Repita
Melhorar a soluo vivel com a Segunda parte do algoritmo
Proposto por Martello e Toth modificado
(vide Lorena e Narciso[48] e Narciso[52])
Parar

61

Quando a restrio relaxada for a da atribuio, o procedimento anlogo. As


etapas do algoritmo so as seguintes:

1 . Verificar quais foram as restries de atribuio que no foram atendidas;

2 . Nas restries de atribuio no atendidas pela soluo fornecida pela relaxao,


tem-se duas situaes: xij = 0 ou xij > 1 para i M e um dado j* N.
Se xij* > 1, retirar, em cada coluna j* e em ordem crescente, pij*
tal que xij* seja igual a 1 at que a restrio volte a ser atendida
( xij* = 1). Cada vez que pij* retirado, xij* muda o valor de 1 para 0.
Se xij* = 0, ento inserir, em ordem decrescente, um valor de pij* tal
que as restries de capacidades no sejam violadas e, se houver sucesso,
mudar o valor de xij* de 0 para 1. Aps verificar todas as restries de
atribuio no atendidas e tentar atend-las, verificar se todas as restries
de atribuio e das capacidades foram atendidas, e ento melhorar a
soluo obtida usando a heurstica de Martello e Toth modificada.
Aps isto, parar. Se alguma restrio no foi atendida, ento ir para o passo 3.

3 . Repetir o passo 2, alterando pij* para pij*/wij*. Desta forma, temos que:
Se xij* > 1, verificar, em cada coluna j* e em ordem crescente de pij* /wij*,
o valor de pij* tal que xij* seja igual a 1. Se xij* = 1, retirar pij*
( e consequentemente, fazer xij = 0) at que a restrio volte a ser
atendida ( xij* = 1).
Se xij* = 0, ento inserir, em ordem decrescente de pij* /wij*, um valor
de pij* tal que as restries de capacidades no sejam violadas e, se

62

houver sucesso, mudar o valor de xij* de 0 para 1. Aps verificar


todas as restries de atribuio no atendidas e tentar atend-las,
verificar se todas as restries de atribuio e das capacidades foram
atendidas, e ento melhorar a soluo obtida usando a heurstica de
Martello e Toth modificada. Aps isto, parar. Se alguma restrio
no foi atendida, ento ir para o passo 4.

4 . Repetir o passo 2, alterando pij* para wij*. Desta forma, temos que:
Se xij* > 1, verificar, em cada coluna j* e em ordem decrescente de wij*,
o valor de pij* tal que xij* seja igual a 1. Se xij* = 1, retirar pij*
( e consequentemente, fazer xij = 0) at que a restrio volte a ser
atendida ( xij* = 1).
Se xij* = 0, ento inserir, em ordem crescente de wij*, um valor
de pij* tal que as restries de capacidades no sejam violadas e, se
houver sucesso, mudar o valor de xij* de 0 para 1. Aps verificar
todas as restries de atribuio no atendidas e tentar atend-las,
verificar se todas as restries de atribuio e das capacidades foram
atendidas, e ento melhorar a soluo obtida usando a heurstica de
Martello e Toth modificada. Aps isto, parar. Se alguma restrio
no foi atendida, ento ir para o passo 5.

5 . Se no conseguir viabilizar, ento usar uma heurstica qualquer para obter


a soluo vivel tal que a soluo seja funo do multiplicador .

63

Para a relaxao proposta por Jornsten e Nasberg, para se obter a soluo vivel a
partir da soluo fornecida pela relaxao, foi usada a heurstica que leva em conta a
soluo fornecida pela relaxao da atribuio pois esta tem um valor mais prximo da
soluo tima (v(LaPGA)v(LcPGA), conforme visto anteriormente).

4.5 -Resultados

Para verificar o comportamento das relaxaes lagsur e lagrangeana com o (PGA)


foram usadas instncias obtidas da OR-Library [8]. Os resultados obtidos esto dispostos,
nesta seo, em duas tabelas. A primeira tabela contm instncias consideradas de pequena
e mdia escala. A Segunda tabela contm instncias consideradas larga escala. A seguir,
esto descritas as duas tabelas com a mdia dos resultados obtidos.

A tabela 1 apresenta os resultados computacionais usando um conjunto de 12 tipos


diferentes de problemas. Cada tipo de problemas possui uma dimenso

m x n

e 5

instncias diferentes. Os valores de m x n so: (5 x 15), (5 x 20), (5 x 25), (5 x 30), (8 x 24),


(8 x 32), (8 x 40), (8 x 48), (10 x 30), (10 x 40), (10 x 50) e (10 x 60). Apenas a classe C de
problemas da OR-Library foi usada por ter todas as solues timas conhecidas e os
resultados esto dispostos como uma mdia, para cada problema, das 5 instncias
diferentes. Os resultados computacionais foram obtidos usando-se um PC486DX2 e todos
os algoritmos foram codificados em linguagem C. A notao em cada coluna a seguinte:

tempo := tempo final, em segundos, obtido pela heurstica;


iter.

:= nmero de vezes que a relaxao lagrangeana foi resolvida;

gap1 := ((soluo tima) - lb) / (soluo tima) ;


gap2 := (ub - (soluo tima)) / (soluo tima) ;

64

gap2 = 5%,...,0.5% := tempo computacional para o gap2 obter 5%, 4%, 3%, 2%,
1% and 0.5%.

Em gap1, lb significa limite inferior e em gap2, ub significa limite superior, tal


como definido no algoritmo de subgradientes, verso II. Quando as porcentagens do gap2
so alcanadas, elas refletem o desempenho da relaxao sem a influncia dos testes de
parada. Os nmeros entre parnteses representam o nmero de problemas que a
correspondente relaxao alcanou a dada porcentagem de gap2.

Vale a pena mencionar que, para a relaxao lagsur, o melhor valor de t foi
calculado at que fosse repetido em 5 iteraes seguidas. A partir da foi fixado nesse
ltimo valor. Para a relaxao lagrangeana, t foi fixado para 1 em todas as iteraes.

Relaxao

tempo

iter.

(seg.)

L1ScPGA
LtScPGA
L1SaPGA
LtSaPGA
L1SJN
LtSJN

1.99

1.12

12.32
15.18
46.45
28.62

300

196

192
248
444
370

gap1

gap2

gap2

gap2

gap2

gap2

gap2

gap2

x10 3

x10 3

= 5%

= 4%

= 3%

= 2%

= 1%

=0.5%

3.87

11.16

0.10

0.11

0.14

0.16

0.50

0.89

(12)

(12)

(12)

(10)

(7)

(1)

0.09

0.09

0.10

0.10

0.16

0.26

(12)

(12)

(12)

(10)

(7)

(1)

2.59

2.81

3.09

3.48

4.30

6.09

(12)

(12)

(12)

(12)

(12)

(12)

2.24

2.38

2.61

3.31

7.52

8.65

(12)

(12)

(12)

(12)

(12)

(12)

4.12

6.18

9.72

16.76

21.32

24.29

(12)

(12)

(12)

(12)

(11)

(8)

2.11

2.98

4.76

9.60

10.58

10.60

(12)

(12)

(12)

(12)

(12)

(12)

5.28

0.84
0.90
0.95
0.37

11.24

1.76
1.82
4.76
2.38

Tabela 4.1 - resultados computacionais para instncias pequenas (classe C de problemas).

65

A tabela 4.2, a seguir, mostra a mdia dos resultados obtidos para os problemas
considerados de larga escala. Foram utilizados 24 tipos de problemas com dimenses
diferentes. Estes problemas so conhecidos como problemas de classes A, B, C, e D. As
dimenses de cada um destes problemas so: (5 x 100), (5 x 200), (10 x 100), (10 x 200),
(20 x 100) e (20 x 200). Os nmeros em cada campo da tabela 4.2 representam os valores
mdios obtido. Estes testes foram executados em uma mquina SUN SPARC 5, com
compilador C.

Relaxao

tempo

iter.

(seg.)

L1ScPGA

9.15

232

gap1

gap2

gap2

gap2

gap2

gap2

gap2

gap2

x10 3

x10 3

= 5%

= 4%

= 3%

= 2%

= 1%

=0.5%

1.58

2.23

1.50

1.55

1.60

1.66

1.83

2.04

(22)

(22)

(22)

(22)

(22)

(21)

(19)

2.45

0.80

0.80

0.80

0.80

0.86

0.88

(24)

(24)

(24)

(24)

(24)

(23)

(21)

2.24

35.88

37.6

39.63

44.64

48.55

52.37

(17)

(17)

(17)

(17)

(16)

(16)

(16)

1.00

14.15

14.76

15.51

17.43

19.20

22.53

(23)

(23)

(23)

(23)

(23)

(23)

(22)

16.12

35.95

42.72

24.57

30.60

23.59

19.52

(13)

(13)

(13)

(9)

(8)

(5)

(4)

4.94

9.80

11.41

8.06

9.90

8.39

9.61

(21)

(21)

(20)

(19)

(18)

(15)

(13)

(22)

LtScPGA

2.60

148

2.48

(24)

L1SaPGA

184.54

534

0.44

(17)

LtSaPGA

115.83

433

0.30

(23)

L1SJN

248.44

600

2.50

(13)

LtSJN

278.83
(21)

541

1.18

Tabela 4.2 - Resultados computacionais para problemas de larga escala.

Os resultados acima, para problemas de larga escala, foram obtidos com um limite
de 600 iteraes. Para computar o gap1 e o gap2 era necessrio saber o valor da soluo

66

tima de cada instncia. Entretanto, para as instncias usadas, no se conheciam as solues


timas. As solues timas foram determinadas antes de se executar os testes. Para isso,
cada instncia foi usada nas duas relaxaes (lagsur e lagrangeana) para cada uma das 3
propostas descritas anteriormente (Jornsten e Nasberg, relaxao da restrio de atribuio
e relaxao da restrio das capacidades), totalizando 6 testes com a mesma instncia. Para
cada instncia, usou-se o critrio de parada (ub - lb) < 1 e um nmero mximo de iteraes
igual a 2000. Quando se obtia (ub - lb) < 1, ento a soluo tima era obtida. Quando no
se obtia (ub - lb) < 1, era usada a melhor soluo vivel encontrada para os 6 testes com a
instncia. As solues obtidas para cada instncia esto abaixo e os valores marcados com
(*) so solues timas.

A5x100 4456 (*)

A5x200 8788 (*)

A10x100 4700 (*)

A10x200 9413 (*)

A20x100 4857 (*)

A20x200 9666 (*)

B5x100 4008

B5x200 8502

B10x100 4633 (*)

B10x200 9255

B20x100 4817 (*)

B20x200 9670

C5x100 4411 (*)

C5x200 8347

C10x100 4528

C10x200 9247

C20x100 4784

C20x200 9611

D5x100 9147 (*)

D5x200 18750 (*)

D10x100 10349 (*)

D10x200 20562 (*)

D20x100 10839 (*)

D20x200 21733 (*)

A seguir, para ilustrar o comportamento do dual das relaxaes lagrangeana e


lagsur, relaxando-se as restries das capacidades, atribuio e a da proposta de Jornsten e
Nasberg, tem-se os grficos abaixo. A instncia usada para as trs diferentes formas de
relaxao foi a de classe C, com dimenses 5 x 100.

67

L1SaPGA

287

313

339

365

391

417

443

287

313

339

365

391

417

443

261

235

209

183

157

131

105

79

53

27

5600
5500
5400
5300
5200
5100
5000
4900
4800
4700
4600
4500
4400

iterao
Figura 4.2 - Grfico L1SaPGA versus iterao

LtSaPGA

261

235

209

183

157

131

105

79

53

27

5600
5500
5400
5300
5200
5100
5000
4900
4800
4700
4600
4500
4400

iterao
Figura 4.3 - Grfico LtSaPGA versus iterao

68

L1SJN
5000
4900
4800
4700
4600
4500
507

553

599

645

691

737

783

507

553

599

645

691

737

783

461

415

369

323

277

231

185

139

93

47

4400

iterao

Figura 4.4 - Grfico L1SJN versus iterao

LtSJN
5000
4900
4800
4700
4600
4500
461

415

369

323

277

231

185

139

93

47

4400

iterao

Figura 4.5 - Grfico LtSJN versus iterao

69

L1ScPGA
4530
4510
4490
4470
4450
4430
265

287

309

331

353

375

265

287

309

331

353

375

243

221

199

177

155

133

111

89

67

45

23

4410

iterao

Figura 4.6 - Grfico L1ScPGA versus iterao

LtScPGA
4530
4510
4490
4470
4450
4430
243

221

199

177

155

133

111

89

67

45

23

4410

iterao

Figura 4.7 - Grfico LtScPGA versus iterao

70

4.6 - Comentrios sobre os resultados obtidos para o (PGA)

Em relao a 600 iteraes, a relaxao LtSaPGA obteve melhores resultados do


que as outras duas (LtScPGA e LtSJN) para gap1 e gap2. Entretanto, se o limite mximo
de iteraes fosse maior, a relaxao LtSJN obteria melhores resultados. Isto pode ser
visto no Apndice A, para as tabelas contrudas para o LtSJN para 1200 iteraes. Nestas
tabelas, nota-se claramente que a relaxao LtSJN obtm um valor melhor para gap1 e
gap2. A desvantagem desta relaxao proposta por Jornsten e Nasberg a convergncia
lenta. Observou-se, portanto, que, conforme a restrio a ser relaxada, os resultados
podem mudar significativamente.

Os testes com instncias maiores refletem de uma forma mais intensa o ganho em
tempo computacional da relaxao lagsur ( (LtSaPGA), (LtScPGA) e (LtSJN) ) em
relao relaxao lagrangeana (L1SaPGA, L1ScPGA e L1SJN). Isto tambm ocorreu
com os valores dos limites obtidos, principalmente com os problemas mais difceis (classes
C e D).

Para os problemas da classe D, considerados mais difceis, a relaxao lagsur


mostrou ser mais eficaz para se encontrar limites superiores do que a relaxao
lagrangeana.

A relaxao lagsur, dentro de um mesmo nmero mximo de iteraes, encontrou


mais valores do que a relaxao lagrangeana para todos os testes realizados para os
problemas maiores (classes A, B, C e D) e em um tempo menor, na mdia. Isto pode ser
comprovado mais claramente nos resultados dispostos no Apndice A.

71

Nos grficos apresentados, verifica-se que, para as relaxaes (L1SaPGA) e


(L1SJN), as sequncias de limites lagrangeanos oscilam pouco e ainda menos que as
correspondentes sequncias do lagsur . Portanto, neste caso, o modo de emprego do lagsur
no estabilizou suas sequncias de limites, refletindo o fato de que a busca unidimensional
para o melhor t foi realizada em apenas algumas iteraes (iniciais) do algoritmo de
subgradientes, verso II. Mesmo assim, o uso da informao local do lagsur foi suficiente
para o ganho computacional obtido.

No caso da relaxao (L1ScPGA), verificou-se grande oscilao na sequncia de


valores lagrangeanos. Nesse caso, a relaxao lagsur (LtScPGA) atenuou um pouco esta
oscilao e tambm um obteve um ganho computacional significativo.

O algoritmo empregado para a busca unidimensional do melhor t poderia ser mais


elaborado, mas o objetivo de ganho de tempo computacional seria prejudicado neste caso,
pois um algoritmo elaborado exigiria mais avaliaes de v(LtSPGA). Quando o melhor t
repetiu e foi fixado nas iteraes seguintes, o efeito da busca local se propagou nas
prximas iteraes e se mostrou benfico em relao convergncia do lagsur.

72

CAPTULO 5

5 - Problema do Caixeiro Viajante Simtrico

5.1. Introduo
Suponha que um caixeiro, a partir de sua cidade de origem, precise visitar um
conjunto de n - 1 cidades. Cada cidade dever ser visitada somente uma vez. Aps visitar
todas as n - 1 cidades, ento o caixeiro dever voltar a sua cidade inicial. O caixeiro poder
escolher a primeira cidade a ser visitada, a segunda, e assim por diante. Entretanto, caso o
caixeiro queira economizar tempo e energia (ou ainda gasolina, recursos, etc.), ento ele
deve procurar o menor caminho tal que todas as cidades sejam visitadas somente uma vez
e ento retornar para a sua cidade de origem. Se o caixeiro sabe a distncia entre as cidades,
ento ele pode encontrar o caminho mais curto para a sua viagem simplesmente por
comparar todas as maneiras possveis de se visitar as n - 1 cidades e voltar. Entretanto,
admitindo-se que exista sempre um caminho ligando uma cidade a outra, medida em que
o nmero de cidades vai crescendo, o nmero de maneiras de se visitar todas as cidades
cresce tambm. O problema de se determinar o caminho mais curto tal que todas as cidades
sejam visitadas uma vez conhecido como Problema do Caixeiro Viajante (PCV) e
considerado um problema clssico da Otimizao Combinatria.

Se um caixeiro deve visitar n cidades, contando com a cidade de origem, ento o


nmero de maneiras de se visitar todas as n cidades dado por (n-1)!. Isto pode ser visto da
seguinte maneira. Se o caixeiro est na cidade 1, ento para ir cidade 2, exitem (n-1)
maneiras, pois restam (n-1) cidades. Para ir da cidade 2 para a cidade 3, existem (n-2)
maneiras, visto que restam (n-2) cidades. Para ir da cidade 3 para a cidade 4 existem (n-3)
maneiras. O raciocnio prossegue at que, para ir da cidade (n-1) para a n-sima cidade
exita apenas um caminho. Desta forma, o nmero de maneiras de visitar todas as cidade
apenas uma vez dado por (n-1).(n-2).(n-3)....1 = (n-1)!. Desta forma, se o nmero de

73

cidades a serem visitadas for 5, ento teremos 24 possibilidades (4! possibilidades) de


visitar todas as cidades. Se, entretanto, o nmero de cidades for 1001, o nmero de
possibilidades ser dado por 1000!, o que muito elevado, tornando-se invivel
contabilizar todas as possibilidades. Com estas consideraes, para se encontrar o menor
caminho para visitar todas as cidades, deve ser feito um procedimento tal que no se
necessite conferir todos os caminhos possveis, a menos que o nmero de cidades seja 3, 4,
ou 5, por exemplo.

O (PCV) NP-Completo (Noschang [54], Lenstra et al [45]). Desta forma, pouco


provvel que qualquer algoritmo, por mais eficiente que seja, encontre um caminho timo
quando o nmero de cidades for grande e, alm disso, a execuo seja rpida. Embora seja
difcil encontrar solues timas para o (PCV), quando o nmero de cidades muito
grande, com o uso de heursticas (mtodos no exatos), possvel encontrar solues
viveis que sejam muito prximas do timo. Alm de se poder encontrar solues viveis
prximas da soluo tima, possvel encontrar tambm uma soluo no vivel que
fornea um limite inferior soluo tima do (PCV) em questo. Isto pode ser feito atravs
de uma relaxao. Desta forma, a relaxao seria um limitante inferior e a soluo vivel
dada por uma heurstica seria um limitante superior da soluo tima do problema. Com
estes limites, podemos ento obter a soluo tima usando mtodos exatos.

Uma das relaxaes usada com sucesso para se encontrar o limite inferior da
soluo tima para o (PCV) foi a proposta de Held e Karp [33,34]. Em 1970 e 1971, Held e
Karp

publicaram trabalhos nos quais experimentaram a relaxao lagrangeana para

fornecer limites inferiores para a soluo tima de problemas do caixeiro viajante. Estes
limites obtidos eram muito prximos do timo. Christofides [13], para um conjunto de
problemas gerados aleatoriamente, conseguiu valores de 99% da soluo tima, na mdia,
usando a proposta de Held e Karp. Volgenant & Jonker [63], com uma outra srie de
problemas, conseguiram valores em torno de 99.7% da soluo tima, na mdia. Segundo
Johnson [37], usando a proposta de Held e Karp para problemas conhecidos e
disponibilizados na Internet (TSPLIB), a relaxao lagrangeana pode alcanar resultados

74

variando de 90% (pior caso encontrado) a praticamente 100% (para problemas menores, em
geral). Para problemas considerados grandes (acima de 500 cidades), os valores fornecidos
pela relaxao lagrangeana eram muito prximos de 99%. Desta forma, embora a proposta
de Held e Karp seja de 1971, ainda hoje empregada com sucesso pois os valores obtidos
so muito bons.

Neste captulo, ser enfocada a relaxao lagrangeana, conforme a proposta de Held


e Karp, para fornecer o limite inferior da soluo tima para uma srie de problemas e
tambm a relaxao lagsur para o caixeiro viajante, a qual tambm usar a proposta de
Held e Karp. Os resultados das duas relaxaes sero mostrados e comparados. As
instncias usadas para comparar as duas relaxaes foram obtidos atravs de um site na
Internet

(http://www.iwr.uni-heidelberg.de/iwr/comopt/soft/TSPLIB95),

qual

disponibiliza os dados relativos ao problema caixeiro viajante simtrico, bem como as


solues timas j encontradas ou as melhores solues viveis encontradas.

5.2 - Formulao do Problema do Caixeiro Viajante

Seja um grafo no direcionado G=(V,E) com n vrtices, onde V={1,2,...,n} e o


conjunto de arcos E = {(i,j) tal que i,j V e seja cij o custo no negativo associado ao arco
i-j. O Problema do caixeiro viajante pode ser definido como

75

v(PCV) = min

sujeito a

(PCV)

cijxij
i V j V

xij = 1
j V

i V

(5.1)

xij = 1
i V

j V

(5.2)

i V j V

xij = 0 ou 1,

xij |S| -1,


S V,
S
i,j V,

(5.3)

(5.4)

onde xij = 1 se o arco i-j pertence a soluo e xij = 0, se o arco i-j no pertence a soluo.
A funo objetivo do problema indica a minimizao das distncias ao se visitar
todas as cidades e voltar a cidade de origem. A restrio (5.1) indica que, a partir da cidade
i, deve-se ir a apenas uma cidade j, j V-{i}. Analogamente, a restrio (5.2) indica que, a
partir de uma cidade j, deve-se ir apenas a uma cidade i, i V - {j}. A restrio (5.3) serve
para eliminar ciclos dentro de todo o trajeto. Desta forma, se existe um conjunto S com k
cidades, k < n, estas k cidades no sero interligadas de forma a existir um ciclo entre elas.
O nico ciclo que pode existir o trajeto comeando de uma cidade inicial, percorrendo as
outras n-1 cidades e voltando cidade inicial. Esta restrio tambm pode ser escrita como

xij 1, S V, S
i S j V-S

(5.5)

A restrio (5.4) indica que, para xij = 1, o arco que liga i a j escolhido para fazer parte da
soluo. Se o valor for 0, ento o arco que liga i a j no escolhido para o trajeto.

76

O (PCV) simtrico quando cij = cji, para todo i,j V. Sendo assim, o (PCV)
simtrico pode ser definido como um grafo no direcionado completo G= (V,E) com n
vrtices, V={1,2,...,n}, onde E o conjunto de todos os arcos conhecidos de i a j ou j a i, e
cij = cji. Desta forma, o (PCV) simtrico, doravante chamado de (PCVS), pode ser definido
como

v(PCVS) = min

i V j >i

sujeito a

cijxij

xij + xij = 2
j<i
j>i

i V

(5.6)

(PCVS)

i V

xij = 0 ou 1,

xij |S| -1
j S , S V, S
j>i

i,j V, j>i.

(5.7)

(5.8)

A expresso (5.7) pode ser tambm escrita como

xij
i V j S
j>i

xij 2, S V, S
i V j S
j>i

(5.9)

5.3 - A relaxao lagrangeana aplicada ao (PCVS)

Esta relaxao usa a proposta de Held e Karp [33,34]. Para um melhor entendimento
da relaxao lagrangeana aplicada ao (PCVS), temos que fazer algumas consideraes, as
quais esto descritas a seguir.

77

O problema de obter um subgrafo conectado H de G=(V,E) com n arcos, onde o


grau (nmero de arcos que esto ligados a um determinado vrtice) de cada um dos n
vrtices seja maior ou igual a 1, tal que minimize a funo objetivo, obviamente uma
relaxao do (PCVS). O subgrafo H consiste de uma rvore obtida a partir de G em adio
com um caminho extra. Pode-se restringir H para uma classe Q de subgrafos na qual alguns
vrtices arbitrrios de G, digamos vertice 1, tenha grau 2 e est contido em um nico ciclo
de H. Os subgrafos desta classe Q so chamados de 1-tree. Desta forma, a 1-tree de custo
mnimo (M1-tree) seria formulada matematicamente como

v(M1-tree) = min

i V j >i

sujeito a
i S
j>i
(M1-tree)

cijxij

xij +
j V-S

xij 1
i V-S j S
j>i

S V= V - {1}, S

i V

j >i

j V

x1j = 2

xij = n

(5.10)

(5.11)

(5.12)

(5.8)

Para provar que se encontrarmos uma 1-tree que minimiza a funo objetivo ento
esta uma relaxao do (PCVS), basta perceber que o conjunto de restries que define a
famlia Q so a funo objetivo acima e as expresses (5.8), (5.10), (5.11), e (5.12). A
expresso (5.10) proveniente da expresso (5.9). A expresso (5.11) proveniente da
soma de todas as equaes (5.6) dividida por 2. A expresso (5.12) primeira equao de
(5.6).

78

O problema da 1-tree de custo mnimo pode ser visto como uma decomposio em
dois problemas independentes:

(1) encontrar uma rvore geradora de custo mnimo em V - {1}; e


(2) encontrar os dois menores arcos dentre aqueles que vo do vrtice 1 a V-{1}.

Os n-2 arcos da rvore geradora encontrados no primeiro problema (1), juntamente com os
dois outros arcos encontrados no problema (2), formam a rvore 1-tree de custo mnimo em
G.

Para se encontrar a rvore geradora mnima, pode ser usado o algoritmo de Kruskal [36], tal
como descrito a seguir.

5.3.1 - Algoritmo de Kruskal para gerar a rvore mnima

Para se obter a rvore gerador de custo mnimo, uma das possibilidades seria o
emprego do algoritmo de Kruskal. Para um melhor entendimento do algoritmo, vamos
definir algumas variveis. Seja E o conjunto de todos os arcos, tal como descrito
anteriormente. Cada arco liga um vrtice i a um vrtice j. A caminho de i at j o mesmo
de j a i. Seja D o conjunto dos arcos (i,j) que so escolhidos para comporem a rvore

79

mnima. Feitas estas duas consideraes, temos ento o algoritmo de Kruskal, segundo
[36].

D
Enquanto (D contm menos de n-1 arcos) e (o conjunto E for no vazio) faa
escolha um arco (i,j) do E, de menor custo;
suprima (i,j) do conjunto E;
Se (i,j) no cria um ciclo em D
ento adicione (i,j) a D
seno suprima (i,j)
fim_enquanto

Se D contm menos de n-1 arcos


ento Imprimir (nenhuma arvore minima foi gerada)

Vale a pena mencionar que o ponto crtico deste algoritmo a ordenao necessria
para que a instruo escolha um arco (i,j) do E, de menor custo seja executada. Antes do
algoritmo de Kruskal ser executado, feita uma ordenao de todos os custos dos arcos.
Desta forma, ao comear o algoritmo, j existir uma lista de arcos ordenados de forma
crescente. Para o caso da implementao do algoritmo de Kruskal, o algoritmo de
ordenao utilizado foi o Quicksort, amplamente conhecido na literatura (vide Sahni e
Horowitz [36]) e tambm com O(nlog(n)) para pior caso.

80

5.3.2- Algoritmo para gerar a 1-tree de custo mnimo

Para se obter a 1-tree, podemos ento usar o seguinte algoritmo


1 - Escolher um vrtice pertencente a G. Seja este vrtice denominado de vrtice 1.
2 - Determinar uma rvore geradora mnima para os n-1 vrtices restantes.
3 - Escolher as duas menores distancias que vo do vertice 1 a rvore geradora mnima e
adicionar estes dois caminhos rvore geradora mnima, formando assim a 1-tree.

5.3.3 - Proposta de Held e Karp - a relaxao lagrangeana


aplicada ao PCVS

O problema de se obter o mnimo custo da 1-tree, cuja funo objetivo a mesma


do (PCVS), uma relaxao do (PCVS). Em Lenstra et al [45], temos que a soluo tima
obtida pela 1-tree, em um conjunto de 140 problemas, , em mdia, 63% do valor timo do
(PCVS). Entretanto, esta relaxao pode ser melhorada consideravelmente por se tomar a
equao (5.6) e adicion-la funo objetivo tal como na relaxao lagrangeana e ento
n

maximizar o lagrangeano como uma funo de multiplicadores = (1, 2,....,n), .


Desta forma, teramos ento a formulao matemtica funo objetivo da relaxao
lagrangeana para o (PCVS) definida como

v(LPCVS ) = min{
cijxij + i( xij + xij - 2)
iV j>i
iV
j<i
j>i

},

Esta funo objetivo pode ser reescrita como:


v(LPCVs ) = min{
(cij + i + j)xij - 2. i}
i V j>i
iV

81

Feitas estas consideraes, temos ento a relaxao lagrangeana definida por:


v(LPCVS ) = min {
(cij + i + j)xij - 2. i}
iV j>i
iV
(LPCVS)

sujeito a

(5.10), (5.11), (5.12) e (5.8)

Para se obter o valor de v(LPCV), basta se obter a 1-tree, tal como foi descrito
anteriormente, fazendo uma pequena modificao no valor de cij, isto , o valor de cij deve
ser sempre atualizado para (cij + i + j). Ao se obter a 1-tree, determine o custo desta e
subtraia do custo a parcela 2 i, onde i varia de 1 a n. Desta forma

v(LPCVS) = v(1-tree) - 2 i, i = {1,2,...,n}.


Os arcos obtidos pelo algoritmo da 1-tree, desta forma, seriam os mesmos da relaxao
lagrangeana, isto , xij (obtido via 1-tree) = xij (lagrangeano)

O maior valor que a funo objetivo de v(LPCVS) pode obter dado por
v(DLPCVS) = max { v(LPCVS) } ,

Para resolver v(DLPCVS) usa-se o algoritmo de subgradientes, verso II. Comece


k

por um =0 arbitrrio. Em cada iterao k, atualize . Para atualizar , necessrio


resolver (LPCVS). Ao se resolver (LPCVS), determine o vetor de subgradientes. Cada
componente i deste vetor dado por
k

di - 2, onde di o grau do vrtice i, i V. Desta forma,


k+1

= i + p (di - 2)

82

onde p o passo definido por p = (U - v(LPCVS))/ (di - 2) .


iV
k

Para este clculo de p , temos que. 0<2, U a soluo vivel obtida na iterao k (ou
soluo tima do problema).

A seguir, tem-se o exemplo da aplicao da relaxao lagrangeana, retirada de [45]


para se obter o limite inferior do (PCVS) do seguinte problema. Sejam 8 cidades pelas quais
o caixeiro dever passar. Seja cij = cji o custo de se ir da cidade i para a cidade j. Como o
problema simtrico, ento cij = cji A matriz de custos est disposta da seguinte maneira:

0
2
4
5
0
0
0
0

c=

2
0
4
0
0
7
5
0

4
4
0
1
7
4
0
0

5 0
0 0
1 7
0 10
10 0
0 1
0 0
0 4

0
7
4
0
1
0
3
5

0
5
0
0
0
3
0
2

0
0
0
0
4
5
2
0

Seja U=25, =2, i =0, para i=1,...,8. A soluo obtida para a 1-tree de custo mnimo, para
os custos iniciais dados acima, igual a 21 e a 1-tree dada pelos seguintes arcos i-j:
8-7, 7-6, 6-5, 6-3, 3-2, 3-4, 1-3 e 1-2.

Visto que i =0, ento a soluo dada pela 1-tree igual ao valor da funo objetivo do
lagrangeano.
0

Alm desta soluo dada pelo 1-tree, temos: di =(2,2,4,1,1,3,2,1), p =2(25-21)/8 = 1,

83
0

i =(0, 0, 2, -1, -1,1,0,-1).


1

Desta forma, na proxima iterao, os custos sero modificados para cij = (cij + i + j).
A nova matriz de custos dada por:

c=

0
2
6
4
0
0
0
0

2
0
2
0
0
8
5
0

6
6
0
2
8
7
0
0

4
0
2
0
8
0
0
0

0
0
8
8
0
1
0
2

0
8
7
0
1
0
4
5

0
5
0
0
0
4
0
1

0
0
0
0
2
5
1
0

A soluo fornecida pelo algoritmo de clculo da 1-tree de custo mnimo tem os seguintes
arcos:
1-2, 2-7, 7-8, 8-5, 5-6, 6-3, 3-4, 4-1. Desta forma, visto que todos os vrtices tem grau 2,
ento a soluo tima. Entretanto, geralmente a soluo obtida pela relaxao no
tima, mas o valor da funo objetivo da relaxao lagrangeana se aproxima
consideravelmente do valor da soluo tima.

5.4 - A relaxao lagsur aplicada ao (PCVS)


A relaxao lagsur, para o (PCVS), relaxa a restrio (5.6), tal com na relaxao
lagrangeana, descrita anteriormente. Entretanto, Antes de adicionar esta restrio funo
objetivo, esta restrio relaxada conforme a relaxao surrogate. Desta forma, a restrio
(5.6), aps a relaxao surrogate, ficaria:
i( xij + xij ) = i* 2 = 2 * i,
iV j<i
j>i
iV
iV
onde i pertence ao conjunto dos nmeros reais e i pertence ao conjunto {1, 2,...,n}. Esta
restrio relaxada novamente, conforme o modo lagrangeano, e ento adicionada funo

84

objetivo. Seja t, um nmero real qualquer, o multiplicador lagrangeano. Desta forma,


teramos a seguinte formulao matemtica para o lagsur, no que se refere ao (PCVS):
v(LtSPCVS) = min { (cij + t.i + t.j)xij - 2. t.i}
i V j>i
iV
(LtSPCVS)

sujeito a

(5.10), (5.11), (5.12) e (5.8)

Para resolver o dual lagsur, isto ,


v(DLtSPCVS) = max {v(LtSPCV)}, n e t 0,
procede-se de forma anloga ao que feito para a relaxao lagrangeana, isto , usando o
algoritmo de subgradientes, verso II. Entretanto, a relaxao lagsur precisa de buscar o
melhor t, para um dado * fixo, tal como descrito anteriormente. Na figura (5.1), a seguir,
tem-se a representao qualitativa de um grfico v(LtS*PCVS) versus t, para um valor fixo
de *. Supondo que o valor de t que maximize a funo objetivo seja t*, ento tem-se que
obter um valor de t tal que seja prximo de t*. No caso do (PCVS) , na busca do melhor t,
tem-se o seguinte grfico v(LtS*PCV) versus t:

v(LtS*PCV)

t1

t*

Figura 5.1 - Grfico v(LtS*PCV) versus t

t2

85

No grfico acima, t1 e t2 e t* so tais como descrito no captulo 3. O algoritmo de


busca do melhor t, usado para o lagsur, no caso do (PCVS), est descrito a seguir.
Algoritmo de busca do melhor t
Dados incremento = 1.5;
k_max = 5 (nmero mximo de iteraes);
t1 := - ( limite inferior para o melhor t);
t := incremento ( multiplicador lagrangeano/surrogate atual);
t2 := ( limite superior para o melhor t);
v* := (melhor limite superior atual). Inicialmente, v* := - ;
k := 0 ( nmero de iteraes atual);
delta = 0.50 (diferena entre t2 e t1);
Repita
Fazer k := k + 1;
Se k > k_max ou (t2 - t1) < delta ento pare;
Seno resolva (LtSPCVS)
Fim_Se
Se v(LtSPCVS) > v* ento
Fazer melhor_t = t,
v* := v(LtSPCVS);
Fim_Se
= i.(di - 2) (di o grau do vrtice i e
Calcule
i V
Se

a inclinao da funo lagsur);

< 0 ento
t2 = t;
t = t - incremento;
Se t1 (t1 j foi determinado)
incremento = (t2 - t1)/2.0;
t = t + incremento;
Fim_Se

ento

seno
t1 = t;
incremento = incremento*2;
t = t + incremento;
Se t t2 ento
t = t - incremento;
incremento = (t2 - t1)/2.0;
t = t + incremento;
Fim_Se
Fim_Se
At ( condies de parada ).

86

5.5 - Resultados obtidos com as relaxaes lagrangeana e lagsur


Para verificar o comportamento da relaxao lagsur e tambm da relaxao
lagrangeana, foram usados problemas testes disponveis na Internet no endereo
http://www.iwr.uni-heidelberg.de/iwr/comopt/soft/TSPLIB95/tsp, doravante chamada de (TSPLIB).

Os resultados esto dispostos em uma tabela para uma melhor visualizao. Os problemas
testes usados so aqueles que tem soluo tima conhecida. Em cada tabela, tem-se os
seguintes campos:

Prob - contm o nmero de cidades a serem consideradas


t - contm o tempo, em segundos, de execuo para se resolver o dual lagrangeano/lagsur
n_iter - contm o nmero de iteraes para que o dual lagrangeano/lagsur
venha a convergir
10%, 5%,.....,0.1% - contm o tempo necessrio para o dual lagrangeano/lagsur
venha a atingir a porcentagem de 10%, 5%,.....,0.1% de diferena
em relao soluo tima.
gap1, gap2 - so definidos como:
gap1 = (soluo vivel - relaxao)/soluo tima
gap2 = (soluo tima - relaxao)/soluo tima

Cada problema foi resolvido usando-se o algoritmo de subgradientes, verso II. A


implementao foi em linguagem C. Os problemas forma executados em estao Sun Sparc
Ultra, 128 Mbytes de memria, 167 Mhz.

87

5.5.1 - Resultados obtidos com a relaxao lagsur x lagrangeana


5.5.1.1 - Resultados obtidos com a relaxao lagrangeana
Prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

gap1
2.0
0.000230
9.380
0.000123
23.0
0.008141
6.0
0.002132
52.00
0.044380
675.0
0.090032
6469.0
0.067190
52420.0 0.030597
56066.0 0.023840
42816.0 0.040637
38018.0 0.015077
128326.0 0.022040
64421.0 0.040159
87629.0 0.049982
99230.0 0.012201

gap2
0.000230
0.000123
0.002355
0.002132
0.018157
0.039181
0.007115
0.030597
0.023842
0.040637
0.015077
0.02204
0.040159
0.049982
0.012201

10%
1.00
2.94
1.00
1.00
0.00
2.00
2.00
6853.00
14.00
4234.90
9.90
40.18
9739.00
10786.00
21.40

5%
1.00
4.130
1.00
2.00
6.00
67.00
527.00
27475.00
420.00
28094.30
1918.60
6405.25
48413.00
87568.00
21.40

4%
1.00
4.37
2.00
2.00
9.00
495.00
754.00
36714.00
2376.00
-2826.10
12701.90
--2900.10

Tabela 5.1 - Lagrangeano para instncias do (PCVS) com soluo tima conhecida.

prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

n_iter
289
487
1431
282
714
950
3000
3000
3000
3000
2986
3000
3000
3000
3000

3%
1.00
4.64
4.00
2.00
15.00
-1119.0
-13431.
-4412.8
29368.
--11413.

2%
1.00
4.87
7.00
3.00
27.00
-1810.0
---9465.7
---31334.

1%
1.00
6.34
11.00
4.00
--4054.0
---------

0.5%
1.00
7.71
15.00
5.00
------------

0.4%
1.00
7.98
17.00
5.00
------------

0.3%
1.00
8.40
19.00
5.00
------------

0.2%
1.00
8.71
--------------

0.1%
2.00
9.10
--------------

Tabela 5.2 - Lagrangeano para instncias do (PCVS) com soluo tima conhecida (continuao).

88

5.5.1.2 - Resultados obtidos com a relaxao lagsur


Prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

t
1.10
7.00
8.00
6.50
28.00
652.00
997.00
17856.00
15384.00
15033.00
12249.00
128325.0
64419.00
87643.00
99222.0

gap1
0.000233
0.006471
0.009697
0.002121
0.050297
0.098934
0.084628
0.011068
0.021880
0.018360
0.014109
0.019877
0.014932
0.017504
0.009182

gap2
0.000233
0.000096
0.002988
0.002121
0.021871
0.039154
0.009726
0.011068
0.021880
0.018360
0.014109
0.019877
0.014932
0.017504
0.009182

10%
0.17
1.01
0.15
0.33
0.56
2.28
1.95
455.50
14.00
626.00
9.15
40.18
785.00
675.80
25.77

5%
0.19
1.16
1.00
1.00
3.00
83.00
82.00
869.50
291.00
1511.00
315.00
1251.000
1802.00
2275.40
25.77

4%
0.20
1.20
1.00
1.00
3.00
392.00
92.00
1054.80
736.000
2111.0
351.000
1600.00
2285.0
3785.90
1106.0

Tabela 5.3 - Lagsur para instncias do (PCVS) com soluo tima conhecida.

prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

n_iter
264
372
521
309
373
882
506
905
618
1057
962
3000
3000
3000
3000

3%
0.22
1.28
1.00
1.00
4.00
-110.00
1428.4
3230.0
3678.0
440.0
3029.0
3098.0
9080.7
1805.0

2%
0.89
1.41
3.00
4.00
14.00
-152.00
2514.5
-9060.0
3147.0
42846.
6716.0
37393.
3648.0

1%
0.93
1.72
6.00
5.00
--997.00
-------21829.

0.5%
1.00
2.02
7.00
5.00
------------

0.4%
1.00
2.36
7.00
5.00
------------

0.3%
1.00
2.52
8.00
5.00
------------

0.2%
1.00
3.94
--------------

0.1%
1.03
4.67
--------------

Tabela 5.4 - Lagsur para instncias do (PCVS) com soluo tima conhecida (continuao).

89

5.5.1.3 - Detalhes de implementao das tabelas

Para os problemas de at 442 cidades, para se obter a soluo vivel, foi usada uma
heurstica, baseada no algoritmo de Kruskal. Esta heurstica est descrita a seguir.
Seja E o conjunto de todos os arcos, tal como descrito anteriormente. Cada arco liga
o vrtice i ao vrtice j. A caminho de i at j o mesmo de j a i. Seja R o conjunto dos arcos
(i,j) a que so escolhidos para comporem a soluo vivel. Feitas estas duas consideraes,
temos ento o seguinte algoritmo:

R
Enquanto (R contm menos de n - 1 arcos) e (o conjunto E for no vazio) faa
escolha um arco (i,j) do E, de menor custo;
suprima (i,j) do conjunto E;
Se (i,j) no cria um ciclo em R e o grau de i e j forem menores do que 2
ento adicione (i,j) a R
seno suprima (i,j)
fim_enquanto

Se R contm menos de n vrtices


ento Imprimir (nenhuma soluo vivel foi gerada)
seno unir os dois nicos vrtices que esto com grau 1.

Esta heurstica foi escolhida para se obter solues viveis para as relaxaes
lagrangeana e lagsur devido ao fato de ser mais fcil de se resolver e tambm pelo fato de

90

que, para se escolher um arco de menor custo, esta heurstica aproveita a ordenao feita
pela heurstica de Kruskal. Outras heursticas foram testadas (algoritmo do vizinho mais
prximo [36] menor distncia, Christofides [13,36]). Entretanto, estas heursticas
consumiam muito tempo, inviabilizando os testes. Foi observado tambm que os resultados
obtidos por elas no melhoravam significamente a soluo vivel.

Para problemas com 1002 cidade em diante, no foi usada a heurstica para se obter
a soluo vivel. Quando o programa chamava a heurstica que fornecia o valor da soluo
vivel, o valor fornecido era o da soluo tima, a qual econhecida. Isto foi feito devido ao
fato de que o tempo para se executar o mtodo subgradientes para instncias com valores
acima de 1002 cidades aumentou demais ao se usar a heurstica para fornecer a soluo
vivel. Desta forma , visto que o enfoque desse trabalho a relaxao lagsur, optou-se por
desistir do algoritmo e fornecer a soluo tima conhecida diretamente. Entretanto, a
heurstica usada forneceu bons valores para o limite superior at 442 cidades. A maioria
dos resultados foi muito prximo do timo. O pior resultado foi para 1002 cidades, onde o
desvio em relao soluo tima foi de 7%.

Para problemas a partir de 1655 cidades, o critrio de parada foi o limite de 3000
iteraes para que melhor se observasse o desempenho do lagsur e da verso lagrangeana.
Com apenas este critrio, pode-se ver que o lagsur consegue porcentagens da soluo tima
em tempos bem menores do que a verso lagrangeana.

A instncia com maior nmero de cidades usada nos testes foi 2152 cidades.
Existiam outras instncias com um nmero maior de cidades (3000, 4000 e 7000) para
serem testadas. Entretanto, conforme foi citado anteriormente, seria preciso uma mquina
dedicada para os testes pois, para o lagsur e a relaxao lagrangeana, com limite de 3000
iteraes, no se atingia sequer 95% da soluo tima e o tempo de execuo da relaxao
lagrangeana, para 3000 cidades, demorou em torno de 15 dias. Para um nmero maior de
cidades, 4000 e 7000, estima-se uma maior quantidade de dias e mesmo assim no se pode

91

garantir que, para estes valores, as duas relaxaes iriam conseguir atingir a pelo menos
95%.

5.5.2 - Grficos lagsur versus iterao e lagrangeano versus


iterao

Para uma melhor visualizao do comportamento do dual da relaxao lagsur e o


comportamento do dual da relaxao lagrangeana para o (PCVS) em cada iterao, tem-se 3
comparaes entre os grficos dos dois duais. So usadas 3 instncias diferentes. Estas
instncias so conhecidas como att48.tsp (48 cidades), pcb442.tsp (442 cidades), e
pr1002.tsp (1002 cidades) e foram retiradas da biblioteca de problemas para o caixeiro
viajante (TSPLIB). Os grficos so dispostos, a seguir, para 48, 442 e 1002 cidades.

92

(L1SPCVS)
11000
10500
10000
9500

1429

1345

1261

1177

1093

1009

925

841

757

673

589

505

421

337

253

169

85

9000

iterao

Figura 5.2 - Grfico (L1SPCVS) versus iterao para 48 cidades.

(LtSPCVS)
11000
10500
10000
9500

iterao

Figura 5.3 - Grfico (LtSPCVS) versus iterao para 48 cidades.

1395

1313

1231

1149

1067

985

903

821

739

657

575

493

411

329

247

165

83

9000

93

L1SPCVS
51000
50000
49000
48000
47000
2029

2198

2367

2536

2705

2874

2041

2211

2381

2551

2721

2891

1860

1691

1522

1353

1184

1015

846

677

508

339

170

46000

iterao

Figura 5.4 - Grfico (L1SPCVS) versus iterao para 442 cidades.

LtSPCVS
51000
50000
49000
48000
47000
1871

1701

1531

1361

1191

1021

851

681

511

341

171

46000

iterao

Figura 5.5 - Grfico (LtSPCVS) versus iterao para 442 cidades.

94

L1SPCVS
260000
250000
240000
230000

2925

2753

2581

2409

2237

2065

1893

1721

1549

1377

1205

1033

861

689

517

345

173

220000

iterao

Figura 5.6 - Grfico (L1SPCVS) versus iterao para 1002 cidades.

LtSPCVS
260000
250000
240000
230000

iterao

Figura 5.7 - Grfico (LtSPCVS) versus iterao para 1002 cidades.

2953

2789

2625

2461

2297

2133

1969

1805

1641

1477

1313

1149

985

821

657

493

329

165

220000

95

Para as instncias acima, no foi usado o algoritmo que fornece soluo vivel em
cada iterao do mtodo subgradientes. A soluo vivel fornecida em cada iterao era o
valor da soluo tima, a qual conhecida para cada instncia.

Os grficos dos exemplos acima resumem o que ocorreu com os testes. Nas
instncias usadas nos testes com a relaxao lagsur e a relaxao lagrangeana, observou-se
que a sequncia de pontos fornecida pelo dual lagrangeano era crescente e praticamente
montona. Entretanto, a convergncia muito lenta. A relaxao lagsur converge mais
rapidamente. Entretanto, no incio da sequncia de pontos fornecida pelo dual lagsur, o
comportamento instvel e vai se estabilizando medida em que o nmero de iteraes vai
crescendo. Observe que os primeiros valores da sequncia fornecida pelo dual lagsur so
maiores do que os valores fornecidos pelo dual lagrangeano.

Nos testes feitos, observou-se que, para a maioria dos casos, o valor do melhor t
fixado foi em 46.5 aps este valor se repetir em 5 iteraes consecutivas do mtodo
subgradientes. Para alguns casos, o melhor valor de t foi 22.5. Desta forma, o valor de ,
aps t ter sido fixado, era sempre multiplicado por um escalar rasoavelmente grande (22.5
ou 46.5). Isto poderia explicar o motivo do comportamento oscilante em uma boa parte da
sequncia de pontos fornecidos pelo dual lagsur. Observe ainda que a fixao, aps 5
primeiras iteraes consecutivas em que o melhor valor de t se repita, foi equivalente a,
nesse caso, a fixar desde a primeira iterao os valores de 46.5, para a maioria das
instncias testadas, ou 22.5.

96

5.6 - Concluso

A relaxao lagsur, para problemas de pequeno porte, obteve um comportamento


mais instvel do que a relaxao lagrangeana nas primeiras iteraes, ou ainda, em uma boa
parte do nmero de iteraes. Entretanto, convergiu mais rapidamente. Para um nmero de
cidades maiores do que 442, para as instncias testadas, a relaxao lagsur foi ficando mais
estvel e tambm continuou a convergir mais rapidamente.

medida em que o nmero de cidades vai aumentando, necessrio um nmero


maior de iteraes para a relaxao lagsur ou lagrangeana convergir. Desta forma, para um
limite de 3000 iteraes, para algumas instncias (a partir de 1655 cidades), a relaxao
lagsur no conseguiu convergir pelos outros critrios de parada a no ser o limite mximo
de 3000 iteraes. Porm, o dual da relaxao lagrangeana, a partir de 442 cidades, na
maioria das instncias, no conseguiu convergir antes de 3000 iteraes. medida em que
o nmero de cidades vai crescendo, necessrio estabelecer um limite maior para o
nmero de iteraes para melhor ver o comportamento do dual das duas relaxaes.
Entretanto, para isto ser feito, seria necessrio mquinas dedicadas exclusivamente aos
testes, com uma maior quantidade de memria e tambm uma maior velocidade pois o
tempo de execuo pode demorar semanas ou meses.

Observando o gap2 nas tabelas, pode-se observar que a relaxao lagsur tem
aproximadamente os mesmos valores para quando o dual da relaxao lagrangeana
converge antes de 3000 iteraes. Quando a o dual da relaxao lagrangeana no consegue
convergir antes de 3000 iteraes, a relaxao lagsur superior em termos de resultados.
Isto pode ser melhor visto atravs do item "porcentagens" (10% a 0.10). Na maioria dos
casos, a relaxao lagsur atinge a uma dada porcentagem em um nmero de
iteraes/tempo menor que a relaxao lagrangeana. Desta forma, ao se atingir a 3000
iteraes, a relaxao lagrangeana no ter atingido ainda a uma dada porcentagem que a

97

relaxao lagsur atinge. Em suma, a relaxao lagsur atinge a valores mais prximos da
soluo tima em menos iteraes/tempo do que a relaxao lagrangeana.

98

CAPTULO 6
6 - Concluso
6.1 - Concluso geral sobre o lagsur
A relaxao lagsur conseguiu nos testes computacionais, para um mesmo limite
mximo de iteraes, obter resultados mais prximos da soluo tima dos problemas que
a relaxao lagrangeana.

No (PGA), observamos que na grande maioria dos casos, a relaxao lagsur obteve
resultados melhores do que a lagrangeana, no que se refere a tempo e tambm em limites. A
relaxao proposta por Jornsten e Nasberg, que converge mais lentamente, mostrou de uma
de forma mais ntida a superioridade do lagsur sobre a relaxao lagrangeana. Nas outras
duas relaxaes propostas (relaxando a restrio das capacidades e relaxando a restrio da
integralidade), tambm podemos notar que a relaxao lagsur foi superior a lagrangeana,
conforme os resultados mostraram. Desta forma, com menos esforo computacional,
podemos obter bons resultados (to bons quanto aos da relaxao lagrangeana) usando a
relaxao lagsur.

No problema do caixeiro viajante, os resultados mostraram que a relaxao lagsur


obtm resultados muito mais rapidamente do que a relaxao lagrangeana. Vale a pena
mencionar que quanto mais lenta for a convergncia, devido a caracterstica de cada
problema, mais nitidamente se nota o fato de que a relaxao lagsur fornece melhores
resultados em menos tempo. Desta forma, para relaxaes de convergncia lenta no
algoritmo de subgradientes, verso II, parece ser adequada a utilizao da relaxao lagsur
pois fornece bons resultados em menor tempo que a lagrangeana.

99

Conforme foi
poderiam ser testados

mencionado anteriormente, outros algoritmos de subgradientes


com a abordagem lagsur. O lagsur, assim como a relaxao

lagrangeana, independente do mtodos subgradientes usados.

O problema dual local (DLtS*) (veja seo 3.2) parece ser a indicao do sucesso
no emprego da relaxao lagsur. Entretanto, suponha que, para * tenhamos uma situao
como a da figura (6.1) abaixo

v(LtSP)

t*

Figura 6.1 - Grfico v(LtSP) versus t

Neste caso, t=1 ou qualquer outro valor de t no produzir um valor v(LtSP)


significativamente diferente de v(Lt*SP). Seria, portanto, indiferente o uso de qualquer das
relaxaes (lagrangeana ou lagsur). Esta situao poder ocorrer quando os dados no
possuem uma disperso adequada, principalmente nos custos da funo objetivo, ou ainda
quando se est prximo da convergncia do algoritmo de subgradientes (o multiplicador
inicial bom). Pode-se, portanto, esperar algum insucesso na aplicao do lagsur para
esses casos.

100

Como sugesto do emprego do lagsur, pode-se tomar como base o resultado da


busca de t na primeira iterao do algoritmo de subgradientes, verso II, e conforme a
diferena | v(LtSP) - v(L1SP)| , tomar a deciso de usar ou no o lagsur.

Os algoritmos de busca unidimensional, usados para o (PGA) e o (PCVS), se


mostraram adequados nos testes computacionais. Outros algoritmos poderiam ser testados.

O lagsur pode ainda ser testado incorporando-o a um algoritmo exato do tipo


"branch and bound". Uma busca local poder ser suficiente para melhorar o limite
lagrangeano, com a correspondente economia em tempo, fator crucial nos algoritmos
exatos. Entretanto, esta sugesto no foi testada.

Uma ltima concluso que o uso da relaxao surrogate contnua pode ser
amplamente substitudo pela relaxao lagsur com busca do melhor t em algumas iteraes.
Alm do fato da relaxao surrogate contnua ter que ser de fcil resoluo, o que no
frequente, sua resoluo exata toma maior tempo computacional que a relaxao lagsur
com as buscas unidimensionais propostas.

Espera-se que a relaxao lagsur venha no futuro a ter grande uso tal como o atual
emprego da relaxao lagrangeana.

101

7 - REFERNCIAS BIBLIOGRFICAS
[1] Almiana, Marcos e Pastor, T. J. "Na adaptation of SH heuristic to the
location set covering problem". European Journal of Operational
Research, 100, 586-593, 1997.
[2] Allen, E., Helgason, R., Kennington, et al. "A generalization of Poliak's
convergence results for subgradient optimization". Mathematical
Programming, 37, 309-317, 1987.
[3] Balachandran, V. "An integer generalized transportation model for optimal job
assignment in computers networks". Operations Research, 24:(4),
742-749, 1976.
[4] Balas, E., Padberg, M. W. "Set partitioning - a survey" in Christofides,
(ed.), Combinatorial Optimization, Wiley, New York, 1979.
[5] Banerjee,K. "Generalized Lagrange multipliers in Dynamic Programming",
Research Report No. ORC 71-12, Operations Research Center,
University of California, Berkeley, California, 1971.
[6] Bazaraa, M. S., Sherali, H. D. "On the choice of step size in subgradient
optimization". European Journal of Operational Research, 7, 380-388, 1981.
[7] Beasley, J. E. A lagrangian heuristic for set covering problem. Naval
Research Logistics 37, 151-164, 1990.
[8] Beasley, J. E. "OR-Library: Distributing test problems by eletronic mail".
Journal of Operational Research Society, 41:(11), 1069-1072, 1990.
[9] Benders, J. F., "PartitioningProcedures for Solving Mixed-Variables
Programming Problems", Numerische Mathematik, 6, pp 63-72, 1962.
[10] Brnnlund, U., A Generalized subgradient method with relaxation
step, Mathematical Programming 71 (1995) 207-219.
[11] Camerini, P. ; Fratta, L. and Maffioli F., On improving relaxation methods
by modified gradient techniques Mathematical Programming
Study, 3, (1975) 26-34.
[12] Catrysse, D. Van Wassenhove, L. N. "A survey of algorithms for the
Generalized Assignment Problem". European Journal of Operational
Research, 60, 260-272, 1992.

102

[13] Christofides, N. The Traveling Salesman Problem. Combinatorial


Optimization, Wiley, Chichester, 1979.
[14] Correa, R. and Lemarchal, C, Convergence of some algorithms for
convex minimization, Mathematical Programming 62 (1993) 261-275.
[15] Day, R. H. "On optimal extracting from a multiple file data storage system:
an application of integer programming". Operations Research, 13:(3),
482-494, 1965.
[16] De Maio, A., Roveda, C. An all zero-one algorithm for a certain class of
transportation problems". Operations Research, 19, 1406-1418, 1971.

[17] Dudzinsky, k., Waluckiewicz, S. "A fast algorithm for the linear
multiple-choice knapsack problem". Operations Research Letters, 3(4),
205-209, 1984.
[18] Dyer, M. E. "Calculating surrogate constraints". Mathematical Programming,
19, 255-278, 1980.
[19] Ermol'ev, Y. M. "Methods for solving nonlinear extremal problems".
Cybernetics, 16/1, 1-14, 1966.
[20] Espejo, L. G. A. "Relaxaes e heursticas para o problema de localizao de
mxima cobertura". (Dissertao de Mestrado em Engenharia de
Produo) - COPPE/UFRJ, Rio de Janeiro, 1997.

[21] Fisher, M. L. "The lagrangian relaxation method of solving integer


programming problems". Management Science, 27, 1-18, 1981.
[22] Fisher, M. L., Jaikumar, R. A generalized assignment heuristic for vehicle
routing". Networks, 11, 109-124, 1981.
[23] Fisher, M. L., Jaikumar, R., Wassenhove, L. N. V. "A multiplier adjustment
method for the generalized assignmet problem". Management Science, 32,
1095-1103, 1986.
[24] Foster, B. A., Ryan, D. M. "An integer programming approach to the vehicle
scheduling problem". Operational Research Quarterly, 27, 367-384, 1976.

[25] Garfinkel, R. S., Neeb, A. W., Rao, M. R. "The m-center problem: bottleneck
facility location". Working paper number 7414, Graduate School of
Management, University of Rochester, Rochester, N. Y., 1974.

103

[26] Geoffrion, A. " Lagrangean relaxation and its uses in integer programming".
Mathematical Programming Study, 2, 82-114, 1974.
[27] Glover, F. "A multiphase dual algorithm for the zero-one integer
programming problem". Operations Research, 13, 879-919, 1965.
[28] Glover, F. "Surrogate constraints". Operations Research, 16(4):741-749,
1968.
[29] Glover, F. "Surrogate Constraints Duality in Mathematical
Programming". Operations Research, 23, pp 434-451, 1975.
[30] Goffin, J. L. "On convergence rates of subgradiente optimization methods",
Mathematical Programming, 13, 329-347, 1977.
[31] Greenberg, H. J., Pierskalla, W. P. "Surrogate Mathematical Programming".
Operations Research, 18, 924-939, 1970.
[32] Handler, G., Zang, I. "a dual algorithm for the constrained shortest path
problem". Networks, 10, 193-310, 1980.
[33] Held. M., Karp, R. M. The Traveling salesman problem and minimum
spanning trees. Operations Research, 18,1138-1162, (1970).
[34] Held. M., Karp, R. M. The Traveling salesman problem and minimum
spanning trees: Part II. Mathematical Programming 1, 6-25, (1971).
[35] Held. M., Wolfe, P., Crowder, H. P. "Validation of subgradient optimization",
Mathematical Programming, 6, 62-88, 1974.
[36] Horowitz, E., Sahni, Sartaj. Fundamentos de Estrutura de Dados.Editora
Campus, Rio de Janeiro, 1987.
[37] Jonhson, D.S., McGeoch, L.A., Rothberg, E. E. Asymptotic Experimental
Analysis for the Held-Karp Traveling Salesman Bound. Proceedings of the
7th Annual ACM-SIAM Symposium on Discrete Algorithms, 341-350,
1996.
[38] Jornsten, K, Nasberg, M. "A new Lagrangian relaxation approach to the
generalized assignment problem". European Journal of Operational
Research, 27, 313-323, 1986.

[39] Jornsten, K.; Varbrand, P. "Relaxation techniques and valid inequalities


applied to the generalized assignment problem". Asia Pacific Journal of
Operational Research, 7, 172-189, 1990.

104

[40] Karwan, M. H., Rardin, R. L. "Some realtionships between lagrangian and


surrogate duality in integer programming". Mathematical Programming,
17, 320-334, 1979.
[41] Kim, S. and Um, B. S., Polyaks subgradient method with simplified
projection for nondifferentiable optimization with linear
constraints, Optimization 20 (1989) 451-456.
[42] Kim, S. and Um, B. S., An improved subgradient method for
constrained nondifferentiable optimization, Operations
Research Letters 14 (1993) 61-64.
[43] Klastorin, T. D. "An effective subgradiente algorithm for the Generlized
Assignment Problem". Computers and Operations Research, 6, 155-164,
1979.
[44]

Larsson, T. ; Patriksson, M. and Strmberg, A-B., Conditional subgradient


optimization - theory and applications, European Journal of Operational
Research 88 (1996) 382-403.

[45]

Lenstra, J. K., Lawler, E. L., Rinnooy Kan, A. H. G., Shmoys, D. D. "The


Traveling Salesman Problem". John Wiley & Sons. New York, USA,
1985.

[46] Lopes, F. B. "Nova heurstica para o problema de cobertura de conjuntos".


(Tese de Mestrado em Computao Aplicada) - Instituto Nacional de
Pesquisas Espaciais. So Jos dos Campos, 1992. (INPE - 5471 TDI/502).
[47]

Lorena, L. A. N., Lopes, F. B. " A surrogate heuristic for set covering


problems". European Journal of Operational Research. 79(1), 138-150,
1994.

[48] Lorena, L. A. N., Narciso, M. G. "Relaxation heuristics for a generalized


assignment problem". European Journal of Operational Research, 91(1),
600-610, 1996.
[49] Lorena, L. A. N., Plateau, G and Freville, A. "New subgradiente algorithms
for the multiknapsack lagrangean and surrogate duals". Pre-publication #
90. LIPN-Universite Paris Nord, 1990.
[50] Martello, S Toth, P. "Knapsack Problems - Algorithms and Computer
Implementations". John Wiley & Sons. New York, USA, 1990.

105

[51] Minoux, M.. "Plus courts chemins avec constraints: Algorithmes et


applications", Annals of Telecommunications, 30, 383-394, 1975.
[52] Narciso, M. G. "Novas heursticas para o problema generalizado de
atribuio". (Dissertao de Mestrado em Computao Aplicada) Instituto Nacional de Pesquisas Espaciais. So Jos dos Campos, 1994.
(INPE - 5607 - TDI/730).
[53] Narciso, M. G., Lorena, L. A.N. "Lagrangean/surrogate relaxation for
generalized assignment problem". European Journal of Operational
Research. A aparecer. (1998)
[54] Noschang, M. H. The Traveling Salesman Problem - a review of theory and
current research.
[55] Parker, R. G., Rardin, L. R. "Discrete Optimization". Academic Press, INC,
London, 1988.
[56] Poljak, B. T. "Minimization of unsmooth functionals". USSR
Computational Mathematics and Mathematical Physics 9 (1969) 14-29.
[57] Quine, W. V. "A way to simplify truth functions". Am. Math. Mon., 62,
627-631, 1955
[58] Ross, G. T., Soland, M. S. "A branch and bound algorithm for the generalized
assignment problem". Mathematical Programming, 8, 91-103, 1975.
[59] Salverson, M. E. "The assembly line balancing problem". Journal of
Industrial Engineering, 6, 18-25, 1955.
[60] Sarin, S., Karwan, M. H., Rardin, R. L. "A new surrogate dual multiplier
search procedure". Naval Research Logistics, 34, 431-450, 1987.
[61] Senne, E.L.F. and Lorena, L.A.N A lagrangean/surrogate approach to
facility location problems, EURO-TIMS Congress - Barcelona (1997).
[62] Shapiro, J. F. "Generalized lagrange multipliers in integer programming".
Operations Research, 19, 68-76, 1971.
[63] Volgenant, T., Jonker, R. A branch and bound algorithm for the symmetric
traveling salesman problem based on the 1-tree relaxation. European
Journal of Operational Research, 9, 83-89, 1982.

106

APNDICE A
Resultados obtidos para o (PGA) e o (PCVS)

A . 1 -Resultados obtidos com o (PGA)

Antes de descrever os resultados obtidos, vale a pena descrever os tipos de


instncias (problemas) que sero usadas para os testes com o (PGA). As instncias usadas
para os testes com o (PGA) so conhecidas como instncias de classe A, B, C, D. Estas
instncias so definidas a seguir.

Seja Xmn um tipo de problema (ou instncia), onde X denota um problema da


classe A, B, C ou D. O ndice m significa nmero de agentes e n significa nmero de
tarefas. Cada problema Xmn vem em um arquivo diferente. Cada arquivo contm valores
para pij, wij, e bi. Desta forma, tem-se as seguintes leis para cada uma das classes:

a) Classe A - wij [5,25], pij [1,40], e


bi = 9.(n/m) + 0.4max (
j N

w ij )
i

i M, M = {1,...,m}, j N, N = {1,...,n}
Ni = {j N tal que, na coluna j, pij seja mximo}

107

b) Classe B - wij [5,25], pij [1,40], e


bi = 0,7.[9.(n/m) + 0.4max (
j N

wij )]
i

i M, M = {1,...,m}, j N, N = {1,...,n}
Ni = {j N tal que, na coluna j, pij seja mximo}

c) Classe C - wij [5,25], pij [1,40], e


bi = 0,8.(

wij /m)]

j N

i M, M = {1,...,m}, j N, N = {1,...,n}

d) Classe D - wij [1,100], pij [wij,wij+ 20], e


bi = 0,8.(

wij /m)]

j N

i M, M = {1,...,m}, j N, N = {1,...,n}

Feitas estas consideraes, pode-se ento descrever os resultados obtidos. Estes


resultados esto dispostos em tabelas. Em cada tabela, tem-se os seguintes campos:

prob - instncia da classe C (m por n) com soluo tima conhecida ou problemas do tipo
A, B, C e D (m por n) sem soluo vivel conhecida previamente.
t- tempo gasto para resolver o problema
gap1 - (limite superior - limite inferior)/(soluo tima).
gap2 - ((soluo tima) - limite inferior)/(soluo tima).

108

gap3 - (limite superior - (soluo tima))/(soluo tima).


n_iter - nmero de iteraes total para resolver o problema (nmero de vezes que a
relaxao resolvida).
5%,4%, .., 0.5% - tempo mdio para a soluo tima ter 5%, 4%, ...,0.5% de diferena em
relao ao limite superior.

Os problemas da classe C (m por n) so obtidos na OR-Library [8] e tem soluo


tima de cada problema conhecida. O maior problema tem dimenses 10 por 60. O menor
problema tem dimenses 5 por 15.

Na OR-Library existem outros problemas, com

dimenses maiores mas com soluo tima no conhecida. Alguns dos problemas tiveram a
soluo tima obtida durante os testes, observando-se a diferena entre o melhor limite
inferior de um determinado problema e o melhor limite superior deste mesmo problema. Se
a diferena entre estes limites for menor do que 1, ento o melhor limite inferior obtido
para um dado problema a soluo tima, visto que o valor da soluo tima inteiro e
que o limite inferior uma soluo vivel obtida. Com estas consideraes feitas, temos os
seguintes valores obtidos, isto , as solues timas obtidas (SO) e as melhores solues
viveis (MSV) obtidas:

A5x100 = 4456 (SO),


A10x200 = 9413 (SO),

A5x200 = 8788 (SO), A10x100 = 4700 (SO),


A20x100 = 4857 (SO),

A20x200 = 9666 (SO)

B5x100 = 4008 (MSV),

B5x200=8502 (MSV),

B10x100= 4633 (SO),

B10x200=9255 (MSV),

B10x200 = 4817 (SO),

B20x200 = 9670 (MSV)

C5x100 = 4411 (SO),

C5x200 = 8347 (MSV),

C10x100 = 4528 (MSV),

C10x200 = 9247 (MSV),

C20x200 = 4784 (MSV),

C20x200 = 9611 (MSV)

109

D5x100 = 9147 (SO),

D5x200 = 18750 (SO),

D10x100 = 10349 (SO),

D10x200 = 20562 (SO),

D20x100 = 10839 (SO),

D20x200 = 21733 (SO).

Todos estes problemas com soluo tima no conhecida foram resolvidos com
programas escritos em linguagem C, e executados em uma estao SUN Sparc 5, 70 Mhz,
128 Mb de RAM. Os problemas com soluo tima conhecida foram resolvidos em um
micro 486/DX2, 60 Mhz, 16M de memria RAM. Os programas fontes usados para
resolver estes problemas no micro foram os mesmos que foram executados na estao
Sparc 5.

Aps estes comentrios, tem-se a seguir

os resultados obtidos para quando a

relaxao for a restrio das capacidades, da atribuio e a proposta de Jornsten e Nasberg,


a qual foi descrita anteriormente no captulo 4.

110

A.1.1 - Relaxao da restrio das capacidades


A.1.1.1 - Relaxao lagrangeana

prob

t_med

C5x15

0.703

C5x20
C5x25
C5x30
C8x24
C8x32
C8x40
C8x48
C10x30
C10x40
C10x50
C10x60

0.912
1.022
1.143
1.440
1.692
2.022
3.418
2.121
2.506
3.231
3.670

gap1
(10-3)
38.33
21.38
9.577
13.71
17.70
13.82
10.31
11.24
16.02
11.64
8.201
6.258

gap2
(10-3)
8.991
3.323
1.044
2.142
2.145
2.381
4.218
5.300
6.133
4.189
3.247
3.321

gap3
(10-3)
30.54
18.51
8.621
11.74
15.88
10.95
6.156
6.003
10.07
7.547
5.000
2.957

n_iter

5%

4%

3%

2%

1%

0.5%

275
305
303
288
295
340
279
325
299
273
317
307

0.033

0.099

0.257

0.011
0.033
0.044
0.055
0.066
0.088
0.132
0.066
0.154
0.220
0.297

0.022
0.033
0.044
0.055
0.077
0.099
0.132
0.099
0.165
0.242
0.308

0.055
0.033
0.055
0.066
0.088
0.121
0.132
0.110
0.165
0.264
0.330

--0.033
0.077
0.090
0.121
0.132
0.143
0.198
0.187
0.275
0.352

--0.211
--1.117
0.209
0.429
-0.780
0.351
0.396

-----------0.890

Tabela A1 - Lagrangeano para problemas da classe C com soluo tima conhecida. Nmero
mximo de iteraes igual a 600. A restrio relaxada a das capacidades.

111

prob
A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

n_iter

5%

4%

3%

2%

1%

0.5%

0.213

34

0.160

0.160

0.170

0.180

0.190

0.200

0.000

0.180

26

0.550

0.580

0.620

0.660

0.680

0.710

1.316

0.638

0.679

56

0.380

0.400

0.420

0.440

0.450

0.470

1.980

0.104

0.000

0.104

70

1.400

1.470

1.550

1.640

1.710

1.730

1.520

0.369

0.000

0.369

72

1.030

1.070

1.100

1.130

1.170

1.190

4.990

0.211

0.000

0.211

108

3.670

3.790

3.950

4.070

4.200

4.270

0.220

124.2

108.5

17.94

36

0.140

0.140

0.150

0.170

--

--

3.170

2.694

1.176

1.522

320

0.530

0.530

0.530

0.530

0.530

0.530

2.500

4.699

3.238

1.469

329

0.260

0.260

0.260

0.280

0.320

0.360

6.280

3.531

2.701

0.833

350

1.060

1.060

1.060

1.060

1.110

1.160

4.880

8.988

5.813

3.204

305

0.610

0.660

0.700

0.750

0.820

0.910

15.06

2.899

0.724

2.181

463

2.120

2.270

2.430

2.560

2.720

2.950

1.580

2.837

1.134

1.707

393

0.130

0.130

0.130

0.130

0.130

0.140

3.470

4.851

3.714

1.143

345

0.530

0.530

0.530

0.530

0.530

0.530

3.040

7.270

1.106

6.209

367

0260

0260

0260

0260

0.310

--

5.560

2.358

0.108

2.255

324

1.060

1.060

1.060

1.060

1.110

1.160

7.210

9.525

4.390

5.185

389

0.530

0.530

0.560

0.610

0.780

--

14.29

5.530

2.393

3.154

422

2.110

2.110

2.210

2.360

2.520

2.700

0.170

0.990

0.000

---

23

---

---

---

---

---

---

0.590

98.12

0.000

---

23

---

---

---

---

---

---

1.560

0.120

0.000

0.120

197

1.000

1.030

1.070

1.110

1.230

1.320

5.360

0.042

0.000

0.042

325

4.050

4.210

4.370

4.540

4.770

4.910

3.29

0.088

0.000

0.088

219

2.360

2.440

2.520

2.620

2.740

2.860

11.60

0.254

0.000

0.254

385

9.030

9.340

9.640

9.990

10.40

10.69

gap1

gap2

gap3

(10-3)

(10-3)

(10-3)

0.250

0.213

0.000

0.720

0.180

0.630

Tabela A2 - Lagrangeano para problemas das classes A, B, C e D com soluo tima no conhecida.
Nmero mximo de iteraes igual a 600. A restrio relaxada a das capacidades.

112

A.1.1.2 - Relaxao Lagsur

prob

t_med

C5x15
C5x20
C5x25
C5x30
C8x24
C8x32
C8x40
C8x48
C10x30
C10x40
C10x50
C10x60

0.473
0.560
0.516
0.813
0.824
0.901
1.066
2.286
1.088
1.286
1.637
1.934

gap1
(10-3)
38.72
21.37
14.82
17.23
19.43
16.33
10.30
12.56
18.53
10.05
9.903
5.967

gap2
(10-3)
9.758
3.323
6.290
5.523
3.932
5.556
4.205
6.540
5.629
4.599
4.959
3.040

gap3
(10-3)
30.18
18.49
8.656
11.92
15.86
10.95
6.156
6.092
13.16
5.518
4.998
2.946

n_iter

5%

4%

3%

2%

1%

0.5%

235
233
167
261
184
192
155
294
162
147
163
161

0.022
0.022
0.033
0.055
0.033
0.055
0.077
0.143
0.099
0.110
0.187
0.231

0.022
0.022
0.033
0.055
0.033
0.055
0.077
0.143
0.099
0.110
0.187
0.231

0.145
0.033
0.033
0.055
0.033
0.055
0.077
0.143
0.099
0.110
0.187
0.231

--0.033
0.055
0.033
0.066
0.077
0.143
0.110
0.110
0.187
0.231

--0.083
--0.210
0.099
0.154
-0.138
0.198
0.231

-----------0.264

Tabela A3 - Lagsur para problemas das classes A, B, C e D com soluo tima conhecida. Nmero
mximo de iteraes igual a 600. A restrio relaxada a das capacidades.

113

prob
A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

n_iter

5%

4%

3%

2%

1%

0.5%

0.291

53

0.160

0.160

0.160

0.160

0.160

0.160

0.000

0.220

47

0.580

0.580

0.580

0.580

0.580

0.580

2.311

1.489

0.824

59

0.270

0.270

0.270

0.270

0.270

0.270

1.530

0.480

0.160

0.374

47

1.080

1.080

1.080

1.080

1.080

1.080

1.340

1.316

0.000

1.318

77

0.560

0.560

0.560

0.560

0.560

0.560

3.730

0.998

0.103

0.895

77

2.150

2.150

2.150

2.150

2.150

2.150

1.100

123.7

108.5

17.30

222

0.140

0.140

0.140

0.150

--

--

2.390

3.641

2.117

1.529

176

0.580

0.580

0.580

0.580

0.580

0.580

1.700

7.264

5.828

1.447

229

0.280

0.280

0.280

0.280

0.280

0.330

5.650

3.523

2.701

0.824

306

1.080

1.080

1.080

1.080

1.080

1.080

1.210

12.82

9.134

3.725

61

0.540

0.540

0.540

0.540

0.580

0.870

7.730

4.762

2.585

2.187

225

2.160

2.160

2.160

2.160

2.160

2.160

0.930

2.851

1.134

1.722

183

0.140

0.140

0.140

0.140

0.140

0.150

2.400

8.638

7.068

1.584

173

0.570

0.570

0.570

0.570

0.570

0.570

2.910

7.485

1.327

6.204

326

0.280

0.280

0.280

0.280

0.290

---

4.300

3.863

1.622

2.250

221

1.070

1.070

1.070

1.070

1.070

1.070

1.720

17.05

11.29

5.861

65

0.540

0.540

0.540

0.540

0.580

---

9.730

5.323

2.185

3.154

250

2.150

2.150

2.150

2.150

2.150

2.210

0.350

1.083

0.000

1.084

77

0.140

0.140

0.140

0.140

0.140

0.140

1.370

1.211

0.000

1.213

139

0.550

0.550

0.550

0.550

0.550

0.550

0.790

1.548

0.000

1.550

108

0.270

0.270

0.270

0.270

0.270

0.270

2.620

1.631

0.000

1.634

139

1.080

1.080

1.080

1.080

1.080

1.080

1.850

1.862

0.000

1.866

139

0.550

0.550

0.550

0.550

0.550

0.550

5.340

1.855

0.000

1.858

170

2.170

2.170

2.170

2.170

2.170

2.170

gap1

gap2

gap3

(10-3)

(10-3)

(10-3)

0.310

0.291

0.000

0.810

0.229

0.570

Tabela A4 - Lagsur para problemas das classes A, B, C e D com soluo tima no conhecida.
Nmero mximo de iteraes igual a 600. A restrio relaxada a das capacidades.

114

A.1.1.3 - Relaxao lagsur versus relaxao lagrangeana


Diviso, campo a campo, dos valores obtidos com o lagsur com a relaxao
lagrangeana.

prob

t_med

gap1

gap2

gap3

n_iter

5%

4%

3%

2%

1%

0.5%

C5x15
C5x20
C5x25
C5x30
C8x24
C8x32
C8x40
C8x48
C10x30
C10x40
C10x50
C10x60

0.673
0.614
0.505
0.711
0.572
0.532
0.527
0.669
0.513
0.513
0.507
0.527

1.010
1.000
1.548
1.257
1.098
1.182
0.999
1.117
1.157
0.863
1.208
0.954

1.085
1.000
6.025
2.578
1.833
2.333
0.997
1.234
0.918
1.098
1.527
0.915

0.988
0.999
1.004
1.015
0.999
1.000
1.000
1.015
1.307
0.731
0.999
0.996

0.855
0.764
0.551
0.906
0.624
0.565
0.556
0.905
0.542
0.539
0.514
0.524

0.667
2.000
1.000
1.250
0.600
0.833
0.875
1.083
1.500
0.714
0.850
0.778

0.222
1.000
1.000
1.250
0.600
0.714
0.778
1.083
1.000
0.667
0.773
0.750

0.564
0.600
1.000
1.000
0.500
0.625
0.636
1.083
0.900
0.667
0.708
0.700

--1.000
0.071
0.367
0.546
0.583
1.000
0.556
0.588
0.680
0.656

--0.393
--0.188
0.474
0.354
1.000
0.177
0.564
0.583

-----------0.297

Tabela A5. Lagsur/lagrangeano para problemas da classe C com soluo tima conhecida. Nmero
mximo de iteraes igual a 600. A restrio relaxada a das capacidades.

115

prob

gap1

gap2

gap3

n_iter

5%

4%

3%

2%

1%

0.5%

A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

1.240

1.366

1.000

1.366

1.559

1.000

1.000

0.942

0.889

0.842

0.800

1.125

1.272

1.000

1.222

1.808

1.055

1.000

0.935

0.879

0.853

0.817

0.905

1.756

2.333

1.214

1.053

0.711

0.675

0.643

0.614

0.600

0.575

0.773

4.615

3.596

0.671

0.771

0.735

0.697

0.659

0.632

0.624

0.882

3.686

1.000

3.572

1.069

0.544

0.523

0.509

0.496

0.479

0.471

0.748

4.730

4.242

0.713

0.586

0.567

0.544

0.528

0.512

0.504

5.00

0.996

1.000

0.964

6.167

1.000

1.000

0.933

0.882

--

--

0.754

1.352

1.800

1.005

0.550

1.094

1.094

1.094

1.094

1.094

1.094

0.680

1.546

0.934

0.985

0.696

1.077

1.077

1.077

1.000

0.875

0.917

0.900

0.998

1.000

0.989

0.874

1.019

1.019

1.019

1.019

0.973

0.931

0.248

1.426

1.571

1.163

0.200

0.885

0.818

0.771

0.720

0.707

0.956

0.513

1.643

3.570

1.003

0.489

1.019

0.952

0.889

0.844

0.794

0.732

0.589

1.005

1.000

1.009

0.466

1.077

1.077

1.077

1.077

1.077

1.071

0.692

1.780

1.903

1.386

0.502

1.076

1.076

1.076

1.076

1.076

1.076

0.957

1.030

1.200

0.999

0.888

1.077

1.077

1.077

1.077

0.935

--

0.773

1.638

15.02

0.998

0.682

1.009

1.009

1.009

1.009

0.964

0.922

0.239

1.790

2.572

1.130

0.167

1.019

1.019

0.964

0.885

0.743

--

0.681

0.963

0.913

1.000

0.592

1.019

1.019

0.973

0.911

0.853

0.819

2.059

1.094

1.000

--

3.348

--

--

--

--

--

--

2.322

0.012

1.000

--

6.044

0.506

12.90

1.000

12.91

0.548

0.270

0.262

0.252

0.243

0.220

0.205

0.489

38.83

1.000

38.90

0.427

0.267

0.257

0.247

0.238

0.226

0.220

0.562

21.16

1.000

21.20

0.635

0.233

0.225

0.218

0.210

0.201

0.192

0.460

7.303

1.000

7.315

0.442

0.240

0.232

0.225

0.217

0.209

0.203

Tabela A6 - Lagsur/lagrangeano para problemas das classes A, B, C e D com soluo tima no


conhecida. Nmero mximo de iteraes igual a 600. A restrio relaxada a das capacidades.

116

A.1.2 - Relaxao da restrio de atribuio


A.1.2.1 - Relaxao lagrangeana

prob

t_med

C5x15
C5x20
C5x25
C5x30
C8x24
C8x32
C8x40
C8x48
C10x30
C10x40
C10x50
C10x60

1.011
1.560
1.912
4.648
4.132
8.121
11.04
24.26
11.20
15.60
26.03
38.37

gap1
(10-3)
4.294
2.611
1.519
2.902
2.301
3.102
0.967
3.504
3.031
3.227
2.007
1.622

gap2
(10-3)
0.595
0.000
0.000
0.620
0.358
1.321
0.000
2.300
1.120
1.884
1.025
0.830

gap3
(10-3)
3.717
2.619
1.521
2.291
1.948
1.787
0.968
1.209
1.916
1.348
0.984
0.793

n_iter

5%

107
115
110
187
157
207
185
301
241
208
234
252

0.0879
0.198
0.462
0.429
0.725
1.506
2.725
3.538
1.780
3.593
5.626
10.45

4%

3%

2%

1%

0.5%

0.121
0.253
0.539
0.517
0.802
1.626
2.890
4.110
1.912
3.901
6.055
10.99

0.198
0.363
0.604
0.681
0.879
1.791
3.121
4.802
2.110
4.198
6.571
11.73

0.341
0.538
0.714
0.923
1.000
2.011
3.429
5.868
2.352
4.626
7.286
12.65

0.560
0.802
0.912
1.736
1.362
2.659
4.308
7.549
3.286
5.483
8.615
14.32

0.750
1.165
1.231
2.758
2.198
4.429
6.176
11.98
5.736
8.176
11.87
16.59

Tabela A7 - Lagrangeano para problemas das classes A, B, C e D com soluo tima conhecida.
Nmero mximo de iteraes igual a 600. A restrio relaxada a da atribuio.

117

prob
A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

n_iter

5%

4%

3%

2%

1%

0.5%

0.218

226

6.290

6.520

6.790

7.110

7.420

7.610

0.000

0.333

470

31.43

33.52

35.92

38.51

41.36

43.08

0.173

0.000

0.173

285

16.04

16.49

16.93

17.36

17.90

18.19

109.2

0.089

0.000

0.089

544

87.25

89.84

92.65

95.72

99.44

101.7

49.28

0.171

0.000

0.171

394

42.87

43.51

44.14

44.90

45.63

46.12

244.7

88.79

0.414

96.99

600

--

--

--

--

--

--

15.17

23.52

0.000

24.09

398

1.630

1.980

2.800

--

--

--

60.07

1.218

0.000

1.218

600

12.51

13.91

16.03

18.70

23.16

26.58

35.88

0. 570

0. 432

0. 138

575

9.670

10.49

11.62

13.11

15.16

17.29

114.2

3.603

2.917

0. 688

600

50.02

53.61

57.78

62.94

70.99

78.36

70.82

0. 612

0. 208

0. 405

565

30.43

31.54

32.81

34.74

36.99

39.01

244.7

88.79

0.414

96.99

600

--

--

--

--

--

--

15.78

0.622

0.453

0.169

466

2.870

3.320

3.860

4.550

5.650

6.680

60.72

0.697

0.000

0.698

600

8.63

9.65

11.13

13.68

18.21

22.41

40.04

4.154

1.546

2.619

600

9.710

10.50

11.37

12.62

14.89

18.28

112.3

3.017

0.865

2.159

600

48.25

52.14

56.94

62.43

70.84

81.18

78.74

4.663

2.926

1.745

600

28.70

30.15

31.82

34.82

37.70

42.49

246.5

3.319

0.208

3.121

600

158.1

166.0

175.0

187.1

204.7

222.1

67.16

0.079

0.000

0.079

491

65.58

65.89

66.20

66.51

66.80

66.95

1366.

205.1

0.000

258.0

600

--

--

--

--

--

--

75.78

288.9

0.000

406.3

600

--

--

--

--

--

--

340.9

503.0

0.097

1000.

600

--

--

--

--

--

--

103.8

600.8

0.000

1000

600

--

--

--

--

--

--

901.7

661.1

0.000

1950

600

--

--

--

--

--

--

gap1

gap2

gap3

(10-3)

(10-3)

(10-3)

7.970

0.218

0.000

47.64

0.333

19.24

Tabela A8 - Lagrangeano para problemas das classes A, B, C e D com soluo tima no conhecida.
Nmero mximo de iteraes igual a 600. A restrio relaxada a da atribuio.

118

A.1.2.2 - Relaxao lagsur


Problem

t_med

C5x15
C5x20
C5x25
C5x30
C8x24
C8x32
C8x40
C8x48
C10x30
C10x40
C10x50
C10x60

1.681
2.637
3.362
6.121
6.066
10.14
15.77
27.17
13.33
21.09
29.22
45.59

gap1
(10-3)
5.653
2.911
1.900
2.549
3.062
2.528
0.939
3.687
2.900
2.996
2.110
1.328

gap2
(10-3)
1.840
0.000
0.349
0.311
0.716
0.793
0.000
2.477
0.839
1.888
1.022
0.554

gap3
(10-3)
3.840
2.921
1.554
2.246
2.355
1.740
0.940
1.215
2.067
1.112
1.091
0.776

n_iter

5%

184
196
185
251
213
258
258
333
280
273
257
293

0.330
0.396
0.659
0.758
0.890
1.450
2.384
3.582
1.813
3.231
4.308
7.055

4%

3%

2%

1%

0.5%

0.495
0.495
0.725
0.846
0.978
1.528
2.495
3.802
1.934
3.341
4.593
7.352

0.747
0.780
0.835
1.011
1.055
1.659
2.648
4.330
2.131
3.626
4.901
7.780

0.934
1.275
1.198
1.516
2.582
2.077
3.088
5.242
3.912
4.066
5.451
8.352

1.198
1.692
2.253
3.209
3.418
5.791
7.868
12.42
7.176
11.56
15.40
18.23

1.500
2.132
2.879
4.517
4.198
6.934
10.99
15.13
8.868
12.66
19.47
26.47

Tabela A9 - Lagsur para problemas das classes A, B, C e D com soluo tima conhecida. Nmero
mximo de iteraes igual a 600. A restrio relaxada a da atribuio.

Prob
A5x100
A5x200
A10x100
A10x200
A20x100
A20x200
B5x100
B5x200
B10x100
B10x200
B20x100
B20x200
C5x100
C5x200
C10x100
C10x200
C20x100
C20x200
D5x100
D5x200
D10x100
D10x200
D20x100
D20x200

t
6.820
25.54
16.87
64.56
31.29
181.4
16.75
49.35
23.74
118.0
43.67
222.4
11.62
56.49
34.38
100.6
53.56
229.0
32.37
609.9
40.87
210.0
83.17
517.5

gap1

gap2

gap3

(10-3)

(10-3)

(10-3)

0.128
0.085
0.413
0.089
0.784
0.098
8.628
1.821
0.199
0.396
0.438
1.797
0.591
2.225
5.435
1.677
2.735
1.926
0.095
0.048
0.094
0.348
0.073
447.9

0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.588
0.000
0.108
0.000
0.414
0.453
1.557
2.871
0.108
1.045
0.000
0.000
0.000
0.000
0.000
0.000
0.000

0.128
0.085
0.413
0.089
0.785
0.098
8.703
1.236
0.199
0.288
0.438
1.386
0.138
0.669
2.578
1.571
1.694
1.929
0.095
0.048
0.094
0.340
0.073
811.3

n_iter

5%

222
256
277
326
260
452
464
496
388
600
361
557
357
569
523
518
429
565
249
394
367
600
579
600

2.650
12.39
6.290
31.89
16.33
89.01
1.040
6.020
4.440
19.70
12.13
56.75
1.700
4.560
4.530
19.48
11.63
55.82
29.97
600.6
36.05
197.2
71.77
--

4%

3%

2%

1%

0.5%

2.750
13.27
6.470
32.92
16.57
90.20
1.100
6.470
4.810
21.16
12.48
59.42
1.900
4.790
4.820
20.92
12.11
58.52
30.07
601.1
36.17
198.0
72.00
--

2.850
14.17
6.600
33.92
16.82
91.87
1.210
7.240
5.230
22.63
12.97
62.54
2.110
5.150
5.170
22.88
12.71
61.96
30.17
601.7
36.28
198.7
72.34
--

2.970
15.37
6.780
35.12
17.06
93.91
1.390
8.350
5.780
24.87
13.69
66.68
2.430
5.640
5.720
25.08
13.68
66.23
30.26
602.3
36.40
199.5
72.57
--

3.100
16.54
7.070
36.53
17.42
96.79
10.24
10.45
6.840
28.28
14.79
74.02
2.990
7.100
7.480
29.21
15.72
73.32
30.35
602.9
36.52
200.5
72.81
--

3.250
17.13
7.190
3752
17.77
98.42
-12.24
8.320
32.08
15.77
83.30
3.510
16.64
21.46
35.06
19.97
82.15
30.41
603.2
36.63
201.3
73.04
--

Tabela A10 - Lagsur para problemas das classes A, B, C e D com soluo tima no conhecida.
Nmero mximo de iteraes igual a 600. A restrio relaxada a da atribuio.

119

A.1.2.3 - Relaxao lagsur versus relaxao lagrangeana


Diviso, campo a campo, dos valores obtidos com a relaxao lagsur com a
relaxao lagrangeana.

prob

t_med

gap1

gap2

gap3

n_iter

5%

4%

3%

2%

1%

0.5%

C5x15
C5x20
C5x25
C5x30
C8x24
C8x32
C8x40
C8x48
C10x30
C10x40
C10x50
C10x60

1.663
1.690
1.758
1.317
1.468
1.249
1.428
1.118
1.190
1.352
1.123
1.188

1.317
1.115
1.251
0.878
1.330
0.815
0.971
1.052
0.957
0.928
1.051
0.818

3.092
1.000

0.502
2.000
0.600
1.000
1.077
0.749
1.002
0.997
0.667

1.033
1.115
1.015
0.980
1.209
0.974
0.971
1.005
1.079
0.825
1.109
0.979

1.720
1.704
1.682
1.342
1.357
1.246
1.395
1.106
1.162
1.313
1.098
1.163

3.754
2.000
1.426
1.767
1.228
0.962
0.875
1.012
1.019
0.899
0.766
0.675

4.091
1.960
1.345
1.636
1.219
0.940
0.863
0.925
1.012
0.856
0.758
0.667

3.773
2.149
1.382
1.485
1.200
0.926
0.849
0.902
1.010
0.864
0.746
0.663

2.739
2.470
1.678
1.643
2.582
1.032
0.900
0.893
1.663
0.879
0.748
0.660

2.139
2.110
2.470
1.849
2.510
2.178
1.826
1.645
2.184
2.108
1.787
1.273

2.000
1.288
2.339
1.638
1.910
1.566
1.780
1.263
1.546
1.548
1.640
1.596

Tabela A11 . Lagsur/lagrangeano para problemas da classe C com soluo tima conhecida. Nmero
mximo de iteraes igual a 600. A restrio relaxada a da atribuio.

120

prob

gap1

gap2

gap3

n_iter

5%

4%

3%

2%

1%

0.5%

A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

0.856

1.00

1.00

1.00

0.982

0.421

0.422

0.420

0.418

0.418

0.427

0.538

0.255

1.00

0.255

0.545

0.394

0.400

0.395

0.399

0.400

0.398

0.877

2.374

1.00

2.374

0.972

0.392

0.392

0.390

0.391

0.395

0.395

0.591

1.00

1.00

1.00

0.599

0.366

0.366

0.366

0.367

0.367

0.369

0.635

4.585

1.00

4.586

0.660

0.381

0.381

0.381

0.380

0.382

0.385

0.741

0.001

0.000

0.001

0.753

--

--

--

--

--

--

1.104

0.367

1.000

0.361

1.166

0.638

0.556

0.432

--

--

--

0.821

1.495

1.015

0.827

0.481

0.465

0.452

0.447

0.451

0.461

0.662

0.349

0.000

1.442

0.675

0.459

0.459

0.450

0.441

0.451

0.481

1.033

0.110

0.037

0.417

1.000

0.394

0.395

0.392

0.395

0.398

0.409

0.620

0.716

0.000

1.082

0.639

0.399

0.396

0.395

0.394

0.400

0.404

0.909

0.020

1.000

0.014

0.928

--

--

--

--

--

--

0.736

0.950

1.00

0.817

0.766

0.592

0.572

0.547

0.534

0.529

0.525

0.930

3.192

0.959

0.948

0.528

0.496

0.463

0.412

0.390

0.743

0.859

1.308

1.857

0.984

0.872

0.467

0.459

0.455

0.453

0.502

1.174

0.896

0.556

0.125

0.728

0.863

0.404

0.401

0.402

0.402

0.412

0.432

0.680

0.586

1.208

0.971

0.715

0.405

0.401

0.223

0.219

0.417

0.470

0.929

0.580

0.000

0.618

0.942

0.353

0.353

0.354

0.354

0.358

0.370

0.482

1.203

1.000

1.203

0.507

0.457

0.437

0.456

0.455

0.454

0.454

0.447

0.000

1.000

0.000

0.657

--

--

--

--

--

--

0.539

0.000

1.000

0.000

0.612

--

--

--

--

--

--

0.615

0.000

0000

0.000

1.000

--

--

--

--

--

--

0.801

0.000

1.000

0.000

0.965

--

--

--

--

--

--

0.574

0.678

1.000

0.416

1.000

--

--

--

--

--

--

Tabela A12 - Lagsur/lagrangeano para problemas das classes A, B, C e D com soluo tima no
conhecida. Nmero mximo de iteraes igual a 600. A restrio relaxada a da atribuio.

121

A.1.3 - Proposta de Jornsten e Nasberg (J e N)


A.1.3.1 - Relaxao lagrangeana conforme a proposta de J e N

prob

t_med

C5x15
C5x20
C5x25
C5x30
C8x24
C8x32
C8x40
C8x48
C10x30
C10x40
C10x50
C10x60

1.648
4.440
7.868
9.253
16.13
34.26
50.01
80.54
47.68
74.09
97.31
134.21

gap1
(10-3)
4.959
4.120
2.597
3.407
3.785
4.354
4.533
5.473
5.830
8.403
6.495
14.289

gap2
(10-3)
0.595
0.000
0.000
0.311
0.358
0.531
0.631
1.943
0.558
2.517
1.020
3.043

gap3
(10-3)
4.388
4.140
2.604
3.111
3.443
3.842
3.921
3.549
5.304
5.938
5.511
11.410

n_iter

5%

130
253
306
265
413
520
541
526
582
600
593
600

0.0769
0.1319
0.2637
0.220
1.055
1.593
3.451
1.385
3.220
7.857
8.121
22.12

4%

3%

2%

1%

0.5%

0.0989
0.2198
0.3517
0.297
1.517
2.539
5.143
2.066
4.868
11.95
11.73
33.56

0.165
0.3077
0.604
0.418
2.462
4.407
8.132
3.483
8.066
19.08
17.94
51.58

0.440
0.7143
1.297
0.758
4.550
8.769
14.26
7.527
15.19
32.34
30.40
84.94

0.934
1.681
2.659
2.506
8.637
18.17
28.63
30.44
26.59
54.98
59.32
--

-3.335
4.571
4.383
11.28
25.45
39.55
62.14
43.66
----

Tabela A13 - Lagrangeano para problemas das classes A, B, C e D com soluo tima conhecida.
Nmero mximo de iteraes igual a 600. Proposta de Jornsten e Nasberg.

122

prob
A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

n_iter

5%

4%

3%

2%

1%

0.5%

0.534

600

8.330

9.870

11.62

14.17

17.18

19.03

0.000

23.46

600

27.97

38.42

51.83

--

--

--

36.42

0.638

37.13

600

35.49

40.50

--

--

--

--

123.3

75.62

0.000

81.80

600

--

--

--

--

--

--

87.60

120.2

0.000

136.7

600

--

--

--

--

--

--

253.7

155.5

0.414

183.6

600

--

--

--

--

--

--

30.43

57.94

27.70

32.11

600

1.430

2.210

--

--

--

--

64.62

3.927

1.529

2.407

600

6.940

8.610

10.52

13.08

17.49

26.13

69.04

15.95

5.180

10.94

600

9.280

11.76

16.87

28.83

--

--

122.9

18.45

6.483

12.19

600

34.17

42.45

55.02

78.05

--

--

185.0

60.74

7.058

57.15

600

--

--

--

--

--

--

242.6

69.88

5.274

69.46

600

--

--

--

--

--

--

30.17

0.991

0.453

0.539

600

1.390

1.790

2.240

3.310

6.650

11.33

78.48

8.607

5.271

3.364

600

4.260

5.420

7.100

9.430

13.39

22.80

70.08

13.06

3.757

9.425

600

8.450

10.14

13.12

19.91

63.25

--

123.7

16.95

4.650

12.51

600

33.45

40.49

52.88

78.05

--

--

176.5

40.65

8.361

33.66

600

77.99

122.8

--

--

--

--

250.4

60.10

8.220

55.20

600

--

--

--

--

--

--

223.9

30.41

0.000

31.36

600

218.3

220.9

--

--

--

--

617.4

107.4

0.000

120.3

600

--

--

--

--

--

--

643.4

172.0

0.000

207.8

600

--

--

--

--

--

--

1589.

292.5

0.000

413.4

600

--

--

--

--

--

--

312.7

367.9

0.000

582.1

600

--

--

--

--

--

--

538.9

456.0

0.000

838.2

600

--

--

--

--

--

--

gap1

gap2

gap3

(10-3)

(10-3)

(10-3)

22.37

0.533

0.000

63.65

22.94

42.93

Tabela A14 - Lagrangeano para problemas das classes A, B, C e D com soluo tima no
conhecida. Nmero mximo de iteraes igual a 600. Proposta de Jornsten e Nasberg.

123

prob

gap1

gap2

gap3

(10-3)

(10-3)

(10-3)

n_iter

5%

4%

3%

2%

1%

0.5%

A
5x100

23.37

0.219

0.000

0.219

627

8.220

9.810

11.65

14.18

17.30

19.14

A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200

123.0

0.101

0.000

0.101

1172

27.95

38.39

51.78

68.78

90.23

101.9

77.83

0.183

0.000

0.183

1080

35.49

40.50

46.64

52.74

60.94

66.08

247.1

30.62

0.000

31.59

1200

182.3

213.3

--

--

--

--

177.4

50.92

0.000

53.65

1200

--

--

--

--

--

--

496.2

96.74

0.310

106.8

1200

--

--

--

--

--

--

35.45

57.60

27.70

32.06

660

1.470

2.31

--

--

--

--

88.58

3.449

1.529

1.926

763

6.930

8.610

10.52

13.10

17.51

26.12

B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

167.3

6.880

2.374

4.537

1200

9.29

11.76

16.87

28.81

74.75

154.9

373.5

8.097

4.214

3.914

1200

34.17

42.45

55.02

78.05

144.6

312.5

553.2

38.38

5.813

33.87

1051

225.5

378.0

--

--

--

--

556.0

39.18

3.00

37.66

1200

385.5

495.5

--

--

--

--

24.61

782.0

453.0

328.0

664

0.973

1.253

1.561

2.310

4.648

7.931

79.86

8.607

5.271

3.364

607

4.26

5.420

7.10

9.440

13.39

22.77

185.4

5.30

0.000

5.325

1200

8.450

10.14

13.12

19.91

63.25

--

441.4

7.235

1.730

5.545

1200

33.45

40.49

52.88

78.05

167.5

--

473.6

23.03

6.689

16.72

1200

77.99

122.8

351.7

--

--

--

519.5

34.14

5.098

30.07

1200

263.8

339.1

493.3

--

--

--

130.0

0.108

0.000

0.108

902

119.2

120.7

122.4

124.3

126.4

127.4

762.8

27.69

0.000

28.48

1200

727.9

742.5

759.0

--

--

--

342.0

51.87

0.000

54.71

1200

--

--

--

--

--

--

911.9

160.6

0.000

0.191

1200

--

--

--

--

--

--

250.0

192.0

0.000

237.7

1200

--

--

--

--

--

--

1137.

345.7

0.000

528.5

1200

--

--

--

--

--

--

Tabela A15 - Lagrangeano para problemas das classes A, B, C e D com soluo tima no
conhecida. Nmero mximo de iteraes igual a 1200. Proposta de Jornsten e Nasberg.

124

A.1.3.2 - Relaxao lagsur para a proposta de J e N

prob

t_med

C5x15
C5x20
C5x25
C5x30
C8x24
C8x32
C8x40
C8x48
C10x30
C10x40
C10x50
C10x60

2.923
4.560
4.912
5.901
9.143
21.65
28.55
48.77
23.02
40.62
60.00
94.09

gap1
(10-3)
4.774
4.038
1.674
3.722
2.914
2.069
1.554
2.893
3.716
2.348
1.431
1.867

gap2
(10-3)
0.000
0.000
0.348
0.311
0.358
0.268
0.000
1.237
0.840
0.837
0.000
0.277

gap3
(10-3)
4.804
4.059
1.328
3.427
2.565
1.805
1.557
1.661
2.887
1.515
1.433
1.594

n_iter

5%

254
299
237
213
300
444
405
412
403
468
447
558

0.4835
0.330
0.4176
0.3626
1.033
1.286
2.132
1.802
2.077
3.593
4.066
7.769

4%

3%

2%

1%

0.6703
0.857
0.6373
0.5275
1.407
1.857
2.857
2.186
3.473
5.363
5.253
10.73

0.8462
1.516
1.0879
0.8901
2.989
3.5495
4.297
2.956
7.461
9.242
8.088
17.20

1.088
2.3956
2.3626
2.7033
4.681
8.571
10.50
8.473
10.10
19.55
15.43
29.46

1.3956
2.8132
3.0769
3.5165
5.956
8.967
14.37
16.84
12.21
22.30
25.00
56.92

0.5%
2.800
2.900
3.4835
3.9300
7.110
10.74
16.13
23.73
15.51
28.41
34.85
61.21

Tabela A16 - Lagsur para problemas das classes A, B, C e D com soluo tima conhecida. Nmero
mximo de iteraes igual a 600. Proposta de Jornsten e Nasberg.

125

prob
A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

n_iter

5%

4%

3%

2%

1%

0.5%

0.214

325

3.010

3.650

4.360

5.390

6.560

7.740

0.000

0.072

505

9.490

13.03

17.59

24.32

33.09

37.97

0.175

0.000

0.175

441

11.35

13.27

15.36

17.66

20.98

24.08

124.5

6.123

0.000

6.161

600

55.19

65.75

78.65

95.00

114.5

--

86.45

8.760

0.000

8.837

600

53.92

59.99

66.80

74.89

84.99

--

243.1

49.11

0.310

51.32

600

239.1

--

--

--

--

19.95

55.31

24.50

32.14

504

0.910

1.170

--

--

--

--

42.75

3.259

1.294

1.971

390

3.410

3.820

4.350

5.170

6.420

11.29

44.73

4.688

1.727

2.975

600

2.980

3.760

5.180

8.290

19.60

40.98

122.5

6.406

3.241

3.185

600

10.60

13.06

16.44

23.89

47.29

84.01

149.2

19.17

4.360

15.10

600

35.62

51.10

72.89

116.9

--

--

244.8

24.63

2.172

23.02

600

94.53

125.2

177.6

--

--

--

12.91

0.311

0.000

0.311

346

0.860

0.960

1.140

1.480

3.040

5.240

55.23

8.134

4.912

3.248

487

2.740

2.940

3.270

3.910

5.180

14.17

56.66

4.058

00000

4.074

600

3.090

3.620

4.400

6.870

20.75

45.97

121.3

5.027

0.757

4.292

600

11.00

12.88

15.92

24.20

51.21

102.9

127.2

14.52

3.344

11.34

600

17.30

24.73

36.36

60.48

--

--

258.9

22.22

3.850

18.79

600

72.90

97.33

141.2

235.6

--

--

59.67

0.068

0.000

0.068

409

50.66

51.52

52.58

53.64

54.94

55.68

620.0

0.048

0.000

0.048

600

608.8

610.3

611.8

613.7

615.8

616.7

192.8

1.684

0.000

1.687

600

175.8

178.5

181.2

184.3

187.4

189.3

725.7

77.18

0.000

83.63

600

--

--

--

--

--

--

155.3

94.62

0.000

104.5

600

--

--

--

--

--

--

1703

228.5

0.000

296.2

600

--

--

--

--

--

--

gap1

gap2

gap3

(10-3)

(10-3)

(10-3)

11.32

0.214

0.000

53.71

0.072

29.39

Tabela A17 - Lagsur para problemas das classes A, B, C e D com soluo tima no conhecida.
Nmero mximo de iteraes igual a 600. Proposta de Jornsten e Nasberg.

126

prob
A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

n_iter

5%

4%

3%

2%

1%

0.5%

0.214

325

2.960

3.580

4.260

5.270

6.420

7.570

0.000

0.072

505

9.30

12.80

17.27

23.87

32.50

37.30

0.175

0.000

0.175

441

11.32

13.22

15.31

17.60

20.92

24.00

171.4

0.139

0.000

0.139

854

55.16

65.69

78.57

94.99

114.5

128.6

115.7

0.215

0.000

0.215

851

54.04

60.11

69.94

75.03

85.16

96.01

475.7

3.408

0.000

3.420

1200

239.4

274.2

313.3

358.8

417.6

457.3

24.65

57.6

24.9

34.7

518

0.50

0.64

--

--

--

--

74.05

3.104

1.294

1.816

589

3.37

3.77

4.29

5.09

6.33

11.11

70.04

1.774

0.432

1.345

779

2.97

3.76

5.17

8.26

19.52

40. 86

258.5

1.229

0.648

0.582

985

10.57

13.01

16.38

23.83

47.26

83.95

430.7

1.590

0.415

1.177

1200

35.7

51.17

73.05

117.1

197.2

356.0

556.3

10.34

0.827

9.615

1200

94.7

125.4

177.9

288.8

535.4

--

12.9

0.311

0.000

0.311

346

0.85

0.95

1.13

1.47

3.03

5.23

54.31

8.134

4.912

3.248

487

2.69

2.89

3.21

3.84

5.090

13.96

63.15

3.084

0.000

3.093

652

3.02

3.500

4.39

6.32

18.08

38.43

316.0

3.240

0.433

2.817

857

14.89

17.45

21.56

32.83

69.48

140.0

434.1

4.435

0.418

4.035

1100

25.35

36.23

53.24

88.46

225.5

301.3

530.0

9.571

1.769

7.878

1200

61.83

81.54

118.3

197.2

411.0

--

58.69

0.068

0.000

0.068

409

49.89

50.74

51.77

52.81

54.08

54.80

391.0

0.048

0.000

0.048

610

383.9

384.7

385.6

386.8

388.1

388.7

196.9

0.092

0.000

0.092

691

175.6

178.3

180.9

184.0

187.1

189.0

856.4

0.047

0.000

0.047

1147

756.3

769.5

784.0

801.4

819.5

828.3

245.6

0.070

0.000

0.070

1193

183.7

191.9

200.8

210.9

221.1

227.0

1188.

84.81

0.000

92.67

1200

--

--

--

--

--

--

gap1

gap2

gap3

(10-3)

(10-3)

(10-3)

11.06

0.214

0.000

52.78

0.072

29.28

Tabela A18 - Lagsur para problemas das classes A, B, C e D com soluo tima no conhecida.
Nmero mximo de iteraes igual a 1200. Proposta de Jornsten e Nasberg.

127

A.1.3.3 - Relaxao lagsur versus relaxao lagrangeana para a


proposta de Jornsten e Nasberg
Diviso, campo a campo, dos valores obtidos com o lagsur com a relaxao
lagrangeana.

prob

t_med

gap1

gap2

gap3

n_iter

5%

4%

3%

2%

1%

0.5%

C5x15
C5x20
C5x25
C5x30
C8x24
C8x32
C8x40
C8x48
C10x30
C10x40
C10x50
C10x60

1.774
1.027
0.624
0.638
0.567
0.632
0.571
0.606
0.483
0.548
0.617
0.701

0.962
0.980
0.645
1.093
0.770
0.475
0.343
0.529
0.637
0.279
0.220
0.131

0.000
1.000

1.000
1.000
0.505
0.000
0.637
1.505
0.333
0.000
0.091

1.094
0.980
0.510
1.102
0.745
0.470
0.397
0.468
0.544
0.255
0.260
0.140

1.954
1.182
0.775
0.804
0.726
0.854
0.749
0.783
0.692
0.780
0.754
0.930

6.287
2.502
1.584
1.648
0.980
0.807
0.618
1.301
0.645
0.457
0.501
0.351

6.778
3.899
1.812
1.776
0.928
0.731
0.556
1.058
0.713
0.449
0.446
0.320

5.129
4.927
1.801
2.129
1.214
0.805
0.528
0.849
0.925
0.484
0.451
0.334

2.473
3.354
1.822
3.566
1.029
0.977
0.736
1.126
0.665
0.605
0.508
0.347

1.494
1.674
1.157
1.403
0.699
0.494
0.502
0.553
0.459
0.406
0.421
56.92

-0.870
0.762
0.900
0.630
0.422
0.408
0.382
0.355
-34.85
61.21

Tabela A19 - Lagsur/lagrangeano para problemas da classe C com soluo tima conhecida. Nmero
mximo de iteraes igual a 600. Proposta de Jornsten e Nasberg.

128

prob

gap1

gap2

gap3

n_iter

5%

4%

3%

2%

1%

0.5%

A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

0.506

0.402

1.000

0.401

0.542

0.361

0.370

0.375

0.380

0.381

0.407

0.844

0.003

1.000

0.003

0.842

0.339

0.339

0.339

--

--

--

0.685

0.005

0.000

0.005

0.735

0.320

0.328

--

--

--

--

1.010

0.081

1.000

0.075

1.000

--

--

--

--

--

--

0.987

0.073

1.000

0.075

1.000

--

--

--

--

--

--

0.958

0.316

0.749

0.280

1.000

--

--

--

--

--

--

0.656

0.955

0.885

1.001

0.840

0.636

0.840

--

--

--

--

0.662

0.830

0.850

0.819

0.650

0.368

0.325

0.258

0.179

--

--

0.648

0.294

0.333

0.272

1.000

0.321

0.320

0.307

0.288

--

--

0.997

0.347

0.499

0.261

1.000

0.310

0.308

0.299

0.306

--

--

0.807

0.316

0.618

0.264

1.000

--

--

--

--

--

--

1.009

0.353

0.412

0.331

1.000

--

--

--

--

--

--

0.428

0.314

0.000

0.577

0.577

0.619

0.536

0.509

0.447

0.457

0.463

0.704

0.945

0.932

0.966

0.812

0.643

0.542

0.461

0.415

0.387

0.622

0.809

0.310

0.000

0.432

1.000

0.366

0.357

0.335

0.345

0.328

--

0.981

0.297

0.163

0.343

1.000

0.329

0.318

0.301

0.310

--

--

0.721

0.357

0.387

0.337

1.000

0.222

0.201

--

--

--

--

1.034

0.370

0.468

0.340

1.000

--

--

--

--

--

--

0.267

0.002

1.000

0.002

0.682

0.232

0.233

--

--

--

--

3.321

0.001

1.000

0.001

1.000

--

--

--

--

--

--

0.300

0.010

1.000

0.008

1.000

--

--

--

--

--

--

0.457

0.264

1.000

0.202

1.000

--

--

--

--

--

--

0.497

0.257

1.000

0.180

1.000

--

--

--

--

--

--

3.160

0.501

1.000

0.353

1.000

--

--

--

--

--

--

Tabela A20 - Lagsur/lagrangeano para problemas das classes A, B, C e D com soluo tima no
conhecida. Nmero mximo de iteraes igual a 600. Proposta de Jornsten e Nasberg.

129

A tabela acima foi construda levando-se em considerao o limite mximo de 600


iteraes. Entretanto, observa-se que, dos testes feitos, cujos resultados esto no apndice
A, que ainda possvel alcanar mais resultados, bastando para isso aumentar o nmero
mximo de iteraes para 1200. Os resultados obtidos esto a seguir.
prob

gap1

gap2

gap3

n_iter

5%

4%

3%

2%

1%

0.5%

A
5x100
A
5x200
A
10x100
A
10x200
A
20x100
A
20x200
B
5x100
B
5x200
B
10x100
B
10x200
B
20x100
B
20x200
C
5x100
C
5x200
C
10x100
C
10x200
C
20x100
C
20x200
D
5x100
D
5x200
D
10x100
D
10x200
D
20x100
D
20x200

0.473

0.977

1.00

0.077

0.002

0.360

0.365

0.366

0.372

0.371

0.396

0.429

0.713

1.00

0.713

0.431

0.333

0.333

0.334

0.347

0.360

0.366

0.376

0.956

1.00

0.956

0.408

0.319

0.326

0.328

0.334

0.343

0.363

0.694

0.005

1.00

0.004

0.712

0.303

0.308

--

--

--

--

0.652

0.004

1.00

0.004

0.709

--

--

--

--

--

--

0.959

0.035

0.00

0.032

1.00

--

--

--

--

--

--

0.695

1.00

0.899

1.082

0.785

0.340

0.277

--

--

--

--

0.841

0.899

0.846

0.943

0.772

0.486

0.437

0.408

0.389

0.362

0.425

0.419

0.258

0.182

0.297

0.649

0.320

0.320

0.307

0.287

0.261

0.264

0.692

0.152

0.154

0.149

0.821

0.309

0.306

0.300

0.305

0.327

0.269

0.779

0.041

0.071

0.035

1.00

0.158

0.135

--

--

--

--

1.001

0.264

0.276

0.255

1.418

0.246

0.253

--

--

--

--

0.524

0.001

0.000

0.001

0.521

0.874

0.758

0.724

0.636

0.625

0.659

0.680

0.945

0.932

0.966

0.802

0.632

0.533

0.452

0.407

0.380

0.613

0.341

0.581

1.00

0.581

0.543

0.357

0.345

0.335

0.317

0.286

--

0.716

0.448

0.250

0.508

0.714

0.445

0.431

0.408

0.421

0.415

--

0.917

0.193

0.063

0.241

0.917

0.325

0.295

0.151

--

--

--

1.020

0.280

0.347

0.262

1.00

0.234

0.240

0.240

--

--

--

0.452

0.630

1.00

0.630

0.453

0.419

0.420

0.423

0.425

0.428

0.430

0.192

0.002

1.00

0.002

0.508

0.527

0.518

0.508

--

--

--

0.576

0.002

1.00

0.002

0.576

--

--

--

--

--

--

0.939

0.001

1.00

0.246

0.956

--

--

--

--

--

--

0.982

0.001

1.00

0.001

0.994

--

--

--

--

--

--

1.045

0.245

1.00

0.175

1.00

--

--

--

--

--

--

Tabela A21 - Lagsur/lagrangeano para problemas das classes A, B, C e D com soluo tima no
conhecida. Nmero mximo de iteraes igual a 1200. Proposta de Jornsten e Nasberg.

130

A.2 -Resultados obtidos com o (PCVS)


Para verificar o comportamento da relaxao lagsur e tambm da relaxao
lagrangeana, foram usados problemas testes disponveis na Internet no endereo
http://www.iwr.uni-heidelberg.de/iwr/comopt/soft/TSPLIB95/tsp (TSPLIB). Estes problemas testes

tm soluo tima conhecida, a qual vem junto com os dados dos problemas. Os resultados
esto dispostos em uma tabela para uma melhor visualizao. Em cada tabela, tem-se os
seguintes campos:

Prob - contm o nmero de cidades que o problema teste possui.


t - contm o tempo, em segundos, de execuo para se resolver o dual lagrangeano/lagsur
n_iter - contm o nmero de iteraes para que o dual lagrangeano/lagsur
venha a convergir
10%, 5%,.....,0.1% - contm o tempo necessrio para o dual lagrangeano/lagsur
venha a atingir a porcentagem de 10%, 5%,.....,0.1% de diferena
em relao soluo tima.
gap1, gap2, gap3 - so definidos como:
gap1 = (soluo vivel - relaxao)/soluo tima
gap2 = (soluo tima - relaxao)/soluo tima
gap3 = (soluo vivel - soluo tima)/soluo tima

Cada problema foi resolvido usando-se o mtodo subgradientes. O nmero mximo


de iteraes foi 3000. A implementao foi em linguagem C. Os problemas forma
executados em estao Sun Sparc Ultra, 128 Mbytes de memria, 167 Mhz.

131

A.2.1 - Resultados obtidos com a relaxao lagrangeana


Prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

t
2.0
9.380
23.0
6.0
52.00
675.0
6469.0
52420.0
56066.0
42816.0
38018.0
128326.0
64421.0
87629.0
99230.0

gap1
0.00023
0.000123
0.008141
0.002132
0.044380
0.090032
0.06719
0.030597
0.02384
0.040637
0.015077
0.02204
0.040159
0.049982
0.012201

gap2
0.00023
0.000123
0.002355
0.002132
0.018157
0.039181
0.007115
0.030597
0.023842
0.040637
0.015077
0.02204
0.040159
0.049982
0.012201

gap3
0.00000
0.00000
0.005834
0.00000
0.027441
0.055882
0.064378
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000

10%
1.0
2.940
1.00
1.00
0.00
2.00
2.0
6853.0
14.00
4234.90
9.90
40.180
9739.0
10786.0
21.40000

5%
1.0
4.130
1.00
2.00
6.00
67.00
527.0
27475.0
420.0
28094.30
1918.60
6405.25
48413.0
87568.0
21.40000

4%
1.0
4.370
2.00
2.00
9.00
495.00
754.0
36714.0
2376.0
-2826.10
12701.90
--2900.100

Tabela A22 - Lagrangeano para instncias do (PCVS) com soluo tima conhecida.

prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

n_iter
289
487
1431
282
714
950
3000
3000
3000
3000
2986
3000
3000
3000
3000

3%
1.0
4.640
4.0
2.00
15.00
-1119.0
-13431.
-4412.8
29368.
--11413.

2%
1.0
4.870
7.0
3.00
27.00
-1810.0
---9465.7
---31334.

1%
1.0
6.340
11.0
4.00
--4054.0
---------

0.5%
1.0
7.710
15.0
5.00
------------

0.4%
1.0
7.980
17.0
5.00
------------

0.3%
1.0
8.40
19.0
5.00
------------

Tabela A23 - Lagrangeano para instncias do (PCVS) com soluo tima conhecida.

0.2%
1.0
8.710
--------------

0.1%
2.0
9.10
--------------

132

A.2.2 - Resultados obtidos com a relaxao lagsur


Prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

gap1
1.10
0.000233
7.0
0.006471
8.00
0.009697
6.50
0.002121
28.00
0.050297
652.0
0.098934
997.0
0.084628
17856.0 0.011068
15384.0 0.02188
15033.0 0.018360
12249.0 0.014109
128325.0 0.019877
64419.0 0.014932
87643.0 0.017504
99222.0 0.009182

gap2
0.000233
0.000096
0.002988
0.002121
0.021871
0.039154
0.009726
0.011068
0.02188
0.018360
0.014109
0.019877
0.014932
0.017504
0.009182

gap3
0.0000
0.006417
0.006775
0.000000
0.029931
0.066343
0.081827
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000

10%
0.17
1.010
0.15
0.330
0.56
2.28
1.950
455.50
14.00
626.0
9.15
40.180
785.0
675.80
25.7700

5%
0.19
1.160
1.00
1.00
3.00
83.0
82.00
869.50
291.0
1511.0
315.0
1251.0
1802.0
2275.40
25.7700

4%
0.20
1.20
1.00
1.00
3.00
392.0
92.00
1054.80
736.0
2111.0
351.0
1600.0
2285.0
3785.90
1106.0

Tabela A24 - Lagsur para instncias do (PCVS) com soluo tima conhecida.

prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

n_iter
264
372
521
309
373
882
506
905
618
1057
962
3000
3000
3000
3000

3%
0.22
1.28
1.00
1.00
4.00
-110.00
1428.4
3230.0
3678.0
440.0
3029.0
3098.0
9080.7
1805.0

2%
0.89
1.41
3.00
4.00
14.00
-152.00
2514.5
-9060.0
3147.0
42846.
6716.0
37393.
3648.0

1%
0.93
1.72
6.00
5.00
--997.00
-------21829.

0.5%
1.0
2.02
7.00
5.00
------------

0.4%
1.0
2.36
7.00
5.00
------------

0.3%
1.0
2.52
8.00
5.00
------------

Tabela A25 - Lagsur para instncias do (PCVS) com soluo tima conhecida.

0.2%
1.0
3.94
--------------

0.1%
1.03
4.67
--------------

133

A.2.3 - Resultados obtidos com a relaxao lagsur x lagrangeana


Prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

t
0.550
0.748
0.347
1.083
0.583
0.925
0.154
0.340
0.274
0.351
0.322
1.00
1.00
1.00
1.00

gap1
1.00
52.600
1.191
0.999
1.133
1.098
1.259
0.361
0.917
0.451
0.935
0.901
0.371
0.350
0.7525

gap2
1.00
0.78
1.268
0.999
1.204
0.999
1.366
0.361
0.917
0.451
0.935
0.901
0.371
0.350
0.7525

gap3
1.00
indeterm
1.161
1.00
1.090
1.187
1.271
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000

10%
0.170
0.343
0.15
0.33
Indeterm
1.140
0.975
0.06646
1.00
0.1478
0.924
1.00
0.0806
0.06265
1.204

5%
0.190
0.280
1.00
0.500
0.500
1.238
0.155
0.0316
0.692
0.0537
0.164
0.195
0.0372
0.0260
1.204

4%
0.200
0.275
0.50
0.50
0.333
0.792
0.122
0.0287
0.3098
-0.124
0.126
--0.381

Tabela A26 - Lagsur/lagrangeano para instncias do (PCVS) com soluo tima conhecida.

prob
16
22
48
52
100
225
442
1002
1291
1304
1379
1655
1748
1889
2152

n_iter
0.913
0.763
0.364
1.095
0.522
0.928
0.168
0.301
0.206
0.352
0.320
1.00
1.00
1.00
1.00

3%
0.22
0.276
0.250
0.500
0.267
-0.0983
-0.2405
-0.0997
0.103
--0.158

2%
0.890
0.295
0.429
1.333
0.519
-0.084
---0.333
---0.116

1%
0.930
0.271
0.546
1.250
--0.246
---------

0.5%
1.00
0.262
0.467
1.00
------------

0.4%
1.00
0.296
0.412
1.00
------------

0.3%
1.00
0.300
0.421
1.00
------------

0.2%
1.00
0.452
--------------

Tabela A27 - Lagsur/lagrangeano para instncias do (PCVS) com soluo tima conhecida.

0.1%
0.515
0.513
--------------

134

You might also like