Escolar Documentos
Profissional Documentos
Cultura Documentos
Programacao Linear Inteira
Programacao Linear Inteira
233
Captulo 6
Programao Li near Intei ra
1. Introduo
A programao linear inteira uma eficiente ferramenta na modelagem e
soluo de um grande nmero de problemas. So eles provenientes das mais
diversas reas, tais como recolhimento de lixo, planejame nto de sistemas de
telecomunicaes, cortes em uma, duas ou trs dimenses, etc.
Os problemas de programao linear inteiro de grande porte so
freqentemente impossveis de serem resolvidos diretamente atravs de softwares
comerciais. Em tais casos a relaxao lagrangeana, combinada com a otimizao
por subgradientes muitas vezes usada para achar cotas inferiores para o valor
timo da funo objetivo. Estas cotas podem ser usadas, por exemplo, no mtodo
de Branch- and- Bound [Salkin and Mathur. 89], ou apenas para medir a qualidade
das solues viveis. Tais propriedades encontram- se atualmente incorporadas em
soft wares comerci ai s como [CPLEX3. 0 97], [OSL1. 2 90], conforme descri t o em
MINTO [Nemhauser et al i i . 94]. Out ras est rat gi as t ambm so consi deradas:
obteno de cotas superiores, uma maior eficincia nas rotinas sobre a gerao de
cortes alm do uso do processamento paralelo, veja, por exemplo [Nemhauser. 94]
para o pri mei ro e [Lee. 94] para o l t i mo.
A relaxao lagrangeana foi utilizada por [Hel d and Karp. 70] e [Hel d and
Karp. 71] com seus trabalhos sobre problemas do caixeiro viajante; os mtodos de
Branch- and- Bound e enumerao implcita tiveram considervel ganho em
[Geoffri on 74] com a rel axao l agrangeana; em [Fi sher. 81], encont ramos vri as
questes norteadoras sobre a relaxao lagrangeana nos problemas lineares
inteiros, dentre estas como calcular os multiplicadores de Lagrange, de que
manei ra escol her dent re as vri as rel axaes do probl ema e como obt er sol ues
viveis para o proble ma primal. Recentes tcnicas para resolver o dual lagrangeano
relaxado de problemas de otimizao combinatria, em um tempo polinomial,
utilizando como subrotina o algoritmo dos Elipsides 77[Khachian. 79] ou o
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
234
algoritmo de Vaidya [Vaidya. 90], tem sido apresentadas desde 1994, com
[Bert si mas and Orl i n. 94].
Outras metodologias de decomposio usam heursticas lagrangeanas,
combinando a soluo do dual lagrangeano, atravs do mtodo de subgradientes,
juntamente com solues primais viveis heursticas. Estas tcnicas foram
aplicadas a problemas de fluxo em redes multicommodity em [Holmberg. 96a],
[Holmberg and Yuan. 96b], [Holmberg and Hellstrand. 96c], a probl emas de
localizao capacitada em [Holmberg and Ling. 97b] e [Holmberg et alii. 97].
2. Concei tos Prel i mi nares
O objetivo desta seo deixar claro alguns termos que empregaremos no
decorrer deste captulo. Os conceitos a serem abordados sero em Teoria Poliedral.
3. Definies em Teoria Poliedral
Definio 2.1 Um conjunto de pontos x
1
, x
2
,.. . , x
k
R
n
dito linearmente
independente se a soluo nica para
k
i=1
i
x
i
= 0
i
= 0 para i = 1, 2, . . . , k.
Definio 2.2 Um conjunto de pontos x
1
, x
2
, . .. , x
k
R
n
dito ser afim
independente se a soluo nica para
k
i=1
i
x
i
= 0 e
k
i =1
i
= 0
i
= 0 para i =
1, 2, . . . , k.
Definio 2. 3 Seja S = {x
1
, x
2
, . . . , x
n
} um conjunto de pontos em Rn. A envoltria
convexa de S, denotada por conv(S), o conjunto de pontos dados por conv(S) =
{
k
i=1
i
x
i
:
k
i=1
i
= 1, x
i
S,
i
R e
i
0 i = 1, 2, 3, . . . , n}.
Definio 2.4 Um poliedro P R
n
um conjunto de pontos que satisfaz um
nmero finito de desigualdades lineares, isto , P = {x R
n
: Ax b}.
Definio 2.5 Dado um Poliedro P = { x R
n
: Ax b}, o fecho i nt ei ro de P
consiste na envoltria convexa dos vetores inteiros de P, isto , P= conv({x P: x
inteiro}).
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
235
Definio 2.6 Um poliedro P R
n
dito limitado se existem vetores l e u R
n
,
tal que, l x u para todo x P. Um poliedro limitado denominado um poltipo.
Definio 2. 7 A desigualdade x
0
denominada uma desigualdade vlida para
o pol i edro P R
n
se ela satisfeita por todos os pontos de P.
Defi ni o 2. 8 Um conjunto P = { x: Ax b} uma face de P, se e somente
se, para algum subsistema A
0
x b
0
de Ax b ns temos = {x P : A
0
x = b
0
}.
Uma fase dita ser prpria se e P.
Definio 2.9 Sej a uma face prpria de um poliedro P. Ento uma faceta, se e
somente se, dim( ) = dim(P) 1.
4. Problemas de Programao Linear Inteira
Definio 3.1: Um problema de programao linear da forma Mx{c
t
x; Ax b, x 0,
x inteiro} com x, c R
n
, bR
m
e
AR
mxn
denominado problema de programao
linear inteira.
Exemplo 1: Seja o seguinte problema de programao Linear Inteira, conforme
ilustrado na figura 1.
Mx z = 8x
1
+ 5x
2
s. a: x
1
+ x
2
6
9x
1
+ 5x
2
45
x
i
0, i = 1, 2; inteiros
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
236
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
0
1
2
3
4
5
6
7
8
9
10
11
: 1 x1 + 1 x2 = 6
: 9 x1 + 5 x2 = 40
Payoff: 8 x1 + 5 x2 = 36
Optimal Decisions(x1,x2): ( 2, 4)
: 1x1 + 1x2 <= 6
: 9x1 + 5x2 <= 40
Figura 1
4. 1. Propriedades:
a) Mx{c
t
x; Ax b, x 0} Mx{c
t
x; Ax b, x 0, x inteiro}
b) Mn{c
t
x; Ax b, x 0} mn{c
t
x; Ax b, x 0, x inteiro}
c) O arredondamento da soluo de um Problema de Programao Linear no
implica na soluo do Problema de Programao Linear Inteira
Exempl o:
Mn z = x
1
s. a 15x
1
- 20x
2
4
21x
1
- 20x
2
10
x
i
0, i =1, 2 int ei ros
d) falso afirmar: Se um modelo de Programao Linear Inteira tem soluo ento
o problema linear correspondente tambm tem soluo tima.
Exempl o:
Mx z = x
1
s. a x
1
- x
2
= 0 ( pi)
x
i
0, i =1, 2 inteiros
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
237
Existem diversas tcnicas desenvolvidas para a busca da soluo inteira dos
problemas de programao linear, das quais podemos citar:
Tcnicas de Enumerao:
- Separao e avaliao progressiva ou Branch- and- Bound (B&B);
- Enumerao implcita;
- Restries Surrogate.
Tcni cas de Cort es:
- Cort es Int ei ros (pri mai s e duai s);
- Cort es Combi nat ri os;
- Cortes de interseo;
- Mtodo de decomposio de Benders.
Tcnicas Hbridas:
- Branch- and- Cut;
Teoria de Grupo.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
238
5. O Conceito de Branch-and-Bound
O espao soluo de um problema de programao inteiro geral pode ser
assumido limitado. Podemos assumir que o nmero de pontos inteiros limitado e
em assim sendo investigaremos um nmero finito de pontos. O caminho mais
simples para resolver o problema inteiro enumerar todos os pontos, descartando
as inviabilidades e sempre mantendo a soluo vivel correspondente ao melhor
valor timo. Quando a enumerao esta completa encontra a soluo tima(se
existir), associado ao melhor valor da funo objetivo.
Se a soluo do problema contnuo inteira, ento esta corresponde a
soluo do problema inteiro. Caso contrrio, a tcnica de Branch- and- Bound
apl i cada i mpl ement ando duas operaes bsi cas:
(1) Ramificao Particionamos o espao das solues cont i nuas sobre
subproblemas os quais so tambm continuo. O propsito deste partionamento
eliminar do espao continuo solues no viveis do problema inteiro.
(2) Limitao Assumindo que o problema original do tipo maximizao, o
valor da funo obj et i vo para cada subprobl ema cri ado por um ramo gera um l i mi t e
superior sobre o valor da funo objetivo.
O mtodo denominado de Branch- and- Bound (B&B) baseia- se na idia de
desenvolver uma enumerao inteligente dos pontos candidatos soluo t i ma
inteira de um problema. O termo branch refere- se ao fato de que o mtodo efetua
parties no espao das solues. O termo bound ressalta que a prova da
otimalidade da soluo utiliza- se de limites calculados ao longo da enumerao.
Defi ni do:
{ }
( ) | , , P cx Ax b x x Z
+
Maximizar 0
e
{ }
( ) | , , P cx Ax b x x R
+
Maximizar 0
Definindo ainda V P
( ) eV P
+
+
+
Z x , x
45 x 9 x 5
6 x x
: a sujeito
x 8 x 5 z Maximizar
2 1
2 1
2 1
2 1
Que pode ser representado graficamente na figura 2. A soluo tima
contnua do problema encontrada em: x x
1 2
9
4
15
4
; levando a z 41
1
4
.
Desenvolvendo a idia de separao da envoltria convexa em relao a vari vel
x
2
podemos organizar a seguinte equao disjuntiva:
x ou x
2 2
15
4
1 4
15
4
3
1
]
1
+
1
]
1
A equao a equao anterior produz duas restries disjuntivas que, quando
acrescidas ao problema original so capazes de criar dois novos problemas que no
mais possuem a soluo tima contnua x em sua envoltria convexa.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
240
x
2
x
1
O
z=5x
1
+8x
2
5x
1
+9x
2
=45
x
1
+x
2
=6
Solues I nteiras
A
B
C
Fi gura 2: Sol uo grfi ca do exempl o
A figura 3 mostra o efeito da aplicao da equao disjuntiva gerada em
relao a varivel x
2
, no problema exemplo.
x
2
x
1
O
A
B
C
(P
2
)
(P
1
)
Figura 3: Resultado do branch (diviso)
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
241
Com a considerao da disjuno o problema original ser reduzido ento a
doi s novos probl emas, a saber:
]
+
Z x
x x
b Ax
cx z P
i
i i
0
1
: a Sujeito
Maximizar ) (
]
+
Z x
x x
b Ax
cx z P
i
i i
1
: a Sujeito
Maximizar ) (
0
2
A essncia do algoritmo de Branch-and-Bound a segui nte:
1)Resolver a relaxao linear do problema. Se a soluo inteira, ento se obtm a
soluo tima. Caso contrrio, cria- se dois novos subproblemas ramificando- se
uma varivel fracionria.
2) Um subproblema no ramificado qua ndo:
Todas as variveis na soluo so inteiras,
A soluo do subproblema invivel,
3) Escolha um subproblema onde h variveis fracionrias e ramifique sobre uma
delas. Repita at que no tenhamos variveis fracionrias.
A estratgia de separao cria novos e mais restritos problemas que,
normalmente, sero de mais fcil soluo. No exemplo o problema (P) separado
em dois problemas (P
1
) e (P
2
). A estratgia de separao pode ser reaplicada a
esses problemas em funo, por exemplo, da varivel x
1
. Vamos enumerar atravs
de uma rvore as possibilidades de soluo dos problemas que sero gerados pela
diviso de (P). Na rvore da figura 4 cada nvel representa uma separao ou
branch em relao a uma varivel.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
242
P
0
x
1
=2,25 x
2
=3,75
z=41,25
P
2
x
1
=1,8 x
2
=4,0
z=41
P
1
x
1
=3,0 x
2
=3,0
z=39
P
3
Invivel
P
4
x
1
=1,0 x
2
=4,25
z=40,4
P
5
x
1
=0 x
2
=5
z=40
P
6
x
1
=1,0 x
2
=4,0
z=37
x
2
4,0
x
2
3,0
x
1
2,0 x
1
1,0
x
2 5,0
x
1
4,0
Figura 4: rvore branch do exempl o
Para entendermos o efeito do bound suponhamos que tenhamos escolhido a
seqncia de branchs da figura 5, deixando de solucionar os problemas
marcados:
P
0
x
1
=2,25 x
2
=3,75
z=41,25
P
2
x
1
=1,8 x
2
=4,0
z=41
P
1
Aguarda
P
3
Aguarda
P
4
x
1
=1,0 x
2
=4,25
z=40,4
P
5
x
1
=0 x
2
=5
z=40
P
6
Aguarda
x
2
4,0
x
2
3,0
x
1
2,0
x
1
1,0
x
2 5,0
x
1
4,0
Figura 5: O efeito de reduo do bound (limite)
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
243
As solues cont nuas so um limite superior para o valor de z
0
, sob as
condies estabelecidas nos vrtices da rvore, enquanto que as solues inteiras
geram um limite inferior. Como (P
4
), um problema com soluo contnua possui
z 40 4 , e (P
5
), um problema com soluo inteira, possui z 40 , o problema (P
6
)
no precisa mais ser solucionado, uma vez que entre 40,4 e 40 no existe a
possibilidade de uma outra soluo inteira melhor que 40 (40 z
0
40, 4). O
probl ema (P
2
) com z=41 pode dar origem, contudo, ainda a um problema com uma
soluo inteira de valor 41 (40 z
0
j
i
N j
j ij
N j
j j
x
M i b x a
x c z P
Definindo a vizinhana inteira de x
0
por
~
( , ,..., ) x x x x
n
0
0
1
0
2 0
e fazendo
]
x x y
j j j
+
0
, para y
j
{ , } 01 , podemos constit uir com P
0
o segui nt e programa
linear:
]
]
} 1 , 0 {
,
a sujeito
Maximizar ) (
0
0
0
j
N j
j ij i
N j
j ij
j j
N j
j j
y
M i x a b y a
x c y c z Q
Podemos exemplificar a formao do problema auxiliar (Q
0
) com o segui nt e
probl ema:
0 ,
1
2 2
a sujeito
Maximizar ) (
2 1
2
2 1
2 1
+
+
x x
x
x x
x x z P
e
Cujo hipercubo unitrio do problema est representado na figura 9.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
257
x
2
x
1
O
2x
1
+x
2
=2
x
2
=1
Hipercubo
2
1
(1/2;1)
Figura 9: Hipercubo no entorno de (1/2; 1)
Substituindo os valores
]
x x x y
j j j
0 0
1 2 1 + ( / ; ); em ( ) P
e
t e mos :
} 1 , 0 { ,
) 1 0 ( 1
) 1 0 ( 2 2
a sujeito
1 Maximizar ) (
2 1
2
2 1
2 1 0
+
+ +
+ +
y y
y
y y
y y z Q
Que solucionado nos leva a y e y
1 2
0 0
. Finalmente podemos calcular o
vrtice inteiro timo:
]
x x
1 2
1 2 0 1 0 + + / ; , ou sej a: x
( , ) 01
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
258
7. Solues Heursticas para os Problemas de Programao Linear Inteira
Enquanto os problemas lineares contnuos possuem no Simplex um algoritmo
muito eficiente para a soluo exata, os problemas lineares discretos, salvo alguns
casos particulares, normalmente carecem da mesma sorte. O estudo de Garey e
Johnson (ver Garey e Johnson (1979) ) um marco para o entendimento dos
obstculos que se interpem entre uma possvel soluo terica para um problema
de programao di scret a e sua i mpl ement ao prt i ca at ravs dos i nst rument os
computacionais da atualidade. O cerne da dificuldade da abordagem exata dos
problemas denominados NP- rduos, que, por sinal, representam uma grande
parte dos problemas de PLI realmente interessantes, est na exploso combinatria
dos mtodos enumerativos. fcil perceber que uma rvore de B&B pode envolver
um nmero da ordem de 2
n
ns, onde n representa a altura (distncia entre o n raiz
e o n mais extremo, tambm denominado folha da rvore) da rvore de
enumerao. Para que possamos entender melhor essa dificuldade vamos
solucionar o problema (PAT) que se segue:
Seja n um nmero mpar 3. Consi dere o segui nt e probl ema da mochi l a:
(PAT) Mx x
1
+ . . . . + x
n
s. a 2x
1
+ .... + 2x
n
n
x
i
{0, 1} para i = 1, . . . , n
No caso n= 3, tem- se:
Max z = x
1
+ x
2
+ x
3
s. a. 2x
1
+ 2x
2
+ 2x
3
3
x
i
{0, 1}, i = 1,..,3
Como notcia informamos que (PAT) um modelo que pertence a uma classe
de problemas de programao linear inteira denominada Problemas da Mochila,
que se caracteriza por possuir apenas uma restrio e ser estudado a seguir. Se
decidirmos solucionar (PAT) atravs da utilizao de uma estratgia B&B bsica a
rvore de enumerao seria a representada na figura 10.
No mtodo de Branch- and- Bound, o nmero de subproblemas pode ser
exorbitantemente grande. Mostraremos que o nmero de subproblemas a ser
resolvido em geral uma funo exponencial do nmero de variveis.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
259
A soluo deste modelo tomar
n
2
] =
n 1
2
variveis de deciso x
i
iguais a 1 e o restante
n
2
] + 1 =
n +1
2
variveis de deciso x
i
iguais a 0. O valor timo da funo objetivo satisfaz z
*
=
n
2
]. De qualquer maneira, resolvendo-se este modelo pelo mtodo de Branch-and-Bound, obtm-
se um tempo computacional exorbitantemente grande, de fato o nmero de subproblemas resolvidos
exponencial em n.
Os: Se as solues de um problema lineares no so inteiras, ento exatamente uma das variveis de
valor no inteiro .
Teorema: O nmero de subproblemas resolvidos para n arbitrrio(impar) de no mnimo 2
1
2
( ) n+
.
A concluso que embora, prtico, o mtodo de Branch-and-Bound teoricamente
ineficiente para resolver problemas lineares inteiros.
P
0
x
1
=1 x
2
=1/2
x
2
1 x
2
0
P
6
x
1
=1/2 x
2
=1
P
1
x
1
=1 x
3
=1/2
P
3
x
1
=1/2 x
3
=1
P
2
Invivel
P
7
x
2
=1 x
3
=1/2
x
3
0 x
3
1
x
1
0
P
4
Invivel
P
5
Invivel
x
1
1
P
8
Invivel
P
9
Invivel
P
10
Invivel
x
1
0 x
1
1
x
3
0 x
3
1
Figura 10: rvore B&B de (PAT)
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
260
Para concluir da inviabilidade de (PAT) foi necessrio desenvolver 11 problemas. fcil
provar que esse algoritmo aplicado a um problema com n variveis desenvolver no mnimo cerca
de 2
1
2
n+
ns. Se o problema possuir 201 variveis (os problemas reais podem possuir da ordem de
milhares ou milhes de variveis), ento a rvore ser da ordem de 2
100
ns. Um computador capaz
de examinar 1,5 trilhes de ns por segundo dessa rvore levaria cerca de 537 milhes de anos para
esgotar todas as possibilidades possveis !! Apesar de todo o avano das tcnicas atuais que,
obviamente, fariam melhor que desenvolver a rvore de enumerao completa de (PAT) para
determinar a inviabilidade do problema, ainda permanece a dificuldade imposta pela exploso
combinatria desse tipo de problema. Em virtude dessa realidade, nos ltimos anos tem se
verificado o surgimento de um significativo conjunto de tcnicas e algoritmos computacionalmente
muito eficientes mas que no garantem a soluo tima do problema de programao linear inteira.
Esses algoritmos so denominados de heursticos ou aproximativos (para detalhes
complementares ver o anexo em complexidade de algoritmos).
O termo heurstica derivado do Grego heuriskein que significa descobrir ou achar.
Mas o significado da palavra em Pesquisa Operacional vai um pouco alm de sua raiz etimolgica.
Podemos dizer que uma heurstica, no sentido dado ao termo, refere-se a um mtodo de busca de
solues em que no existe qualquer garantia de sucesso. O sucesso do mtodo pode ser expresso
quantitativa ou qualitativamente. Em um problema de otimizao o sucesso pode ser representado
pela obteno da soluo tima. Alguns autores entendem que a possibilidade de fracasso seja
extensiva at para a obteno de uma soluo vivel. No comungamos dessa opinio. Definiremos
o termo da seguinte forma:
Uma heurstica uma tcnica que busca alcanar uma boa soluo utilizando um esforo
computacional considerado razovel, sendo capaz de garantir a viabilidade ou a otimalidade da
soluo encontrada ou ainda, em muitos casos, ambas, especialmente nas ocasies em que essa
busca partir de uma soluo vivel prxima ao timo.
As heursticas iniciaram historicamente seu desenvolvimento a partir de problemas
especficos. As primeiras heursticas relatadas na literatura pretendiam a soluo de problemas
especficos e no eram, vias de regra, passveis de serem utilizadas em outros problemas. As
heursticas clssicas de roteamento so um bom exemplo disso.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
261
Podemos tambm considerar que os primeiros mtodos gerais clssicos estavam associados
a estratgias de enumerao incompleta, soluo parcial ou relaxaes. Dentre as muitas
classificaes possveis para as heursticas sugerimos a constante da figura 11:
Procedimentos
Aproximativos
Procedimentos
Aproximativos
Heursticas
Heursticas
Relaxaes
Relaxaes
Linear
Linear
Lagrangeana
Lagrangeana
Clssicas
Clssicas
-Dual Ascent
-Dual Ascent
-Subgradiente
-Ajuste Mltiplo
-Subgradiente
-Ajuste Mltiplo
-Mopes
.Construtivas
.Por economia
-Busca local
.Mtodo descendente
.Mtodo aleatrio
-Particionamento/
Grupamento
-Mopes
.Construtivas
.Por economia
-Busca local
.Mtodo descendente
.Mtodo aleatrio
-Particionamento/
Grupamento
Estocsticas
Estocsticas
-Simulated Anneling
-Tabu Search
.Clssica
.Reativa
-GRASP
-Simulated Anneling
-Tabu Search
.Clssica
.Reativa
-GRASP
Analgicas
Analgicas
-Redes Neurinais
-Computao Evolutiva
.Algoritmos genticos
.Scatter Search
.Colnia de formigas
-Redes Neurinais
-Computao Evolutiva
.Algoritmos genticos
.Scatter Search
.Colnia de formigas
Figura 11: Classificao das abordagens aproximativas
Utilizando-se um diagrama semelhante ao sugerido poderemos examinar o comportamento
tpico de uma busca heurstica mope. A figura 12 representa, dentro dos crculos, o valor final da
soluo obtida no estgio i da busca. Nesse caso podemos visualizar o esforo de busca na medida
em que as possveis combinaes entre as variveis n e n-1 so exploradas. No grfico facilmente
perceptvel que, na medida do crescimento do nmero de opes, representado pelo comprimento
das colunas do diagrama, o esforo cresce exponencialmente. No caso da figura 11, apenas a
vizinhana imediata de uma soluo (ou configurao) explorada (a de maior valor no estgio i da
busca). Entendemos por vizinhana de uma configurao as configuraes que diferem da
configurao base pelo valor atribudo a uma varivel.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
262
1
S
10
6
9
13
8
11
16
4
9
0
2 3 4
7
Figura 12: Tomada de deciso mope
claro que podemos melhorar o exame das solues vizinhas e reduzir o grau de miopia
da tomada de deciso. A figura 12 mostra essa possibilidade. Nesse caso a explorao estende-se
agora para a vizinhana de duas configuraes (as duas melhores segundo o critrio do valor de
f(s) ). A penalidade que devemos pagar pela remoo da miopia o crescimento do nmero de
configuraes admitidas como candidatas explorao. Obviamente se examinssemos todas as
configuraes encontraramos a soluo tima, mas exatamente esse enorme trabalho que
desejamos evitar. O que se deseja uma soluo de compromisso com o risco de no encontrar a
soluo tima. Existem dois procedimentos que permitem a gerncia desse risco:
Buscar a anlise de um nmero crescente de combinaes entre as variveis selecionadas
em um determinado estgio da deciso e as variveis dos estgios seguintes (intensificao ou
melhoria na qualidade da soluo);
Buscar considerar um nmero cada vez maior de variveis em cada nvel (diversificao
ou aumento do alcance (dimetro) da busca).
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
263
1
f(S)
S
10
20
6
9
13
8
11
16
4
9
0
2 3 4
7
22
20
16
Figura 13: Incrementando a deciso mope
Podemos perceber visualmente como a incluso da segunda configurao parcial mais
valorada em cada nvel (diversificao), cresce com o nmero de combinaes para a definio da
configurao (intensificao) representada pelas setas. O aumento do esforo de busca trs seus
resultados: as decises 1 e 3 da figura 13 no podem ser mais consideradas apenas gulosas. Se o
procedimento adotado for suficientemente inteligente podemos encontrar o equilbrio entre a
diversificao e a intensificao, e caminhar, economicamente em relao ao esforo de busca,
atravs dos mximos (ou mnimos) locais at o mximo (ou mnimo) global, como mostra a figura
14. Nesse caso a inteligncia foi expressa pela estratgia de explorar as trs solues mais
interessantes a cada estgio. Infelizmente no podemos deduzir a priori qual seria essa estratgia
inteligente pois ela depende da instncia de cada problema.
1
f(S)
S
10
20
6
9
13
8
11
16
4
9
0
2 3 4
7
22
20
16
23
24
26
Mximo
Local
Mximo
Local
Mximo
Global
Figura 14: Esforo timo para a busca heurstica
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
264
A figura 14 procura resumir as vrias abordagens conhecidas para os
procedimentos heursticos de soluo. Na linha clssica bastante comum como
anteriormente ressaltamos, que as heursticas explorem casuisticamente a estrutura
do problema, sem que, normalmente, se possa definir claramente uma estratgia
universal de soluo. No caso das chamada meta- heur st i cas, que envol vem as
chamadas heursticas estocsticas e analgicas, existe invariavelmente uma
est rat gi a geral de sol uo, cabendo apenas adapt a- la ao caso especfico.
Na at ual i dade os procedi ment os heur st i cos so t ambm mui t o empregado em
conjunto com os mtodos exatos, especialmente para produzirem limites e solues
viveis de boa qualidade.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
265
E
EED
DDS
SSG
GGE
EER
RR W
WWY
YYB
BBE
EE D
DDI
II J
JJK
KKS
SST
TTR
RRA
AA
Homem brilhante, Edsger Wybe Dijkstra
colecionou vrios prmios e honras, como o Prmio
ACM Turing, em 1972 e o Prmio AFIPS Harry Goode
Memorial, em 1974. Ele scio honorrio estrangeiro
da Academia americana de Artes e Cincias, scio da
Academia Real de Artes e Cincias dos Pases Baixos e da sociedade de Computao
Britnica, alm de Doutor Honoris Causa de Cincia pela Universidade da Rainha de
Belfast.
As reas de maior interesse de Dijkstra so: correo de programas, metodologia
matemtica, algoritmos e sistemas. Ele concentra-se em dar forma aerodinmica ao
argumento matemtico para aumentar nossos poderes de razoamento, em particular, pelo
uso de tcnicas formais.
Edsger Wybe Dijkstra foi um contribuinte principal na dcada de 50 para o
desenvolvimento do ALGOL (ALGOrithmic Languagem), uma linguagem de programao
de nivel alto que se tornou um modelo de clareza e rigor matemtico, pois muito eficiente
para resolver uma grande classe de problemas numricos, porm inadequada para o
processamento de dados no-numricos.
Dijkstra considerado um dos exponentes principais da cincia e arte de
linguagens de programao, e tem contribudo bastante para a nossa compreenso da
estrutura, representao, e implementao destas. Os seus quinze anos de publicaes
estendem-se desde artigos sobre a teoria dos grafos para manuais bsicos, textos
expositivos, at contemplaes filosficas no campo de linguagens de programao. Em
1956, criou um eficiente algoritmo para otimizar os caminhos em grafos e minimizar
expanso de rvores.
O conhecido algoritmo de Dijkstra para determinar o caminho mais curto em um
grafo, determinado um ponto de comeo para qualquer outro ponto, descrito em muitos
livros, incluindo o muito completo: Introduo para Algoritmos, Thomas Cormen, Charles
Leiserson, e Ronald Rivest, Colina de McGraw, 1990.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
266
8. Matri zes Total mente Uni modul ar e Vrti ces Intei ros.
Definio: Uma matriz A de posto r chamado Uni modul ar se todos os elementos
de A so inteiros, e o determinante de qualquer sub- matriz de ordem r 0, 1 ou - 1.
Exempl o:
A=
,
_
2 5
1 3
Uma matriz A chamado Totalmente Uni modul ar se o determinante de qualquer
sub- matriz de A 0, 1 ou - 1.
Exempl o:
,
_
1 0 1
0 1 1
1 0 1
A
Observaes:
1) Qualquer matriz Totalmente Unimodular consi st e soment e de el ement os 0, t1
2) Total mente Uni modul ar implica em Unimodularidade.
3) Qualquer sub- matriz de uma matriz Totalmente Unimodular ela mesmo
Totalmente Unimodular.
Teore ma 1: Unimodularidade e Vrtices Inteiros
Seja A uma matriz inteira (m, n) de posto completo m, e F = {x
n
; Ax = b, x
0} no vazio. Ento A Uni modul ar se e somente se para cada vetor inteiro b
n
o conjunto F tem vrtices inteiros.
Teorema 2: Tot al mente Uni modul ar e Vrtices Inteiros
Seja A uma matriz inteira, e F = {x
n
; Ax b, x 0} no vazio. Ento A
Totalmente Unimodular se e somente se para cada vetor inteiro b
n
o conj unt o
F tem vrtices inteiros. (Hoffman e Kruskal, 1956).
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
267
Corolrio 2.1: Sej a A uma matriz Total mente Uni modul ar, b e c vetores inteiros.
Ento os seguintes problemas lineares tm soluo inteira:
Mx{c
t
x; Ax b} = M n{y
t
b; y
t
A = c, y 0}
Corolrio 2. 2: Uma matriz A Totalmente Unimodular se e somente se para
quaisquer vetores b e c, ambos os lados da equao(de dualidade linear):
Mx{c
t
x; Ax b, x 0} = M n{y
t
b; y
t
A c, y 0}
so atingidos por vetores inteiros x e y(se forem finitos).
Teorema 3: Condi o Sufi ci ent e para Tot al ment e Uni modul ar
Qual quer matriz A com elementos 0, t1 Totalmente Unimodular se:
1. Cada coluna de A contem no mais do que dois elementos inteiros e no- nulos.
2. As linhas de A podem ser particionadas sobre dois subconjuntos tal que:
i) Se uma coluna contm dois inteiros com o mesmo sinal, ento as linhas
correspondentes pertencem a diferentes subconjuntos, e,
ii) Se uma coluna contm dois inteiros com sinal opostos, ento as linhas
correspondentes pertencem ao mesmo subconjunto.
Diversas caracterizaes da matriz Totalmente Unimodular foram
obtidas nas dcadas de 60 e 70, nenhuma das quais fornece um algoritmo
polinomial para testar total- unimodularidade. Em 1980, P. D. Seymour,
Decomposition of regular matroids, Journal of Combinatorial Theory(B) 28, 305-
359 (1980) car acterizou matrizes totalmente unimodulares usando decomposio
de matrides. Estes resultados foram utilizados por W. H. Cunningham, J.
Edmonds, A Combinatorial Decomposition Theory, Candian Journal of
Mathematics 32, 734- 765 (1980) que apresentaram um al gori t mo de
reconhecimento de matrizes Totalmente Unimodular. O algoritmo mais rpido que
se conhece devido a K. Truemper, A Decomposition Theory for Matrizes V.
Testing of Matriz Total Unimodulary, Journal of Combinatorial Theory (B) 49,
241- 281 (1980).
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
268
9. Algoritmos Planos - de -Corte
Os al gori t mos pl anos- de- corte procuram reduzir o espao de solues
contnuas viveis com o intuito de aproximar o poliedro obtido pela relaxao
linear do poliedro que representa a envoltria convexa das solues intei ras [22].
Um dos resultados fundamentais da Programao Linear (PL) no qual os
algoritmos pl anos-de-cort e se baseiam o seguinte: se um programa de PL tiver
um valor timo finito, ento existe pelo menos uma soluo tima que um vrtice
do pol i edro descrito pelo sistema linear associado ao problema.
Sendo assim, se fosse possvel encontrar a descrio completa de conv(S),
atravs de um sistema de desigualdades lineares, ento o problema de PLI poderia
ser diretamente resolvido por um algoritmo de PL, por exemplo, Si mpl ex ou
Mtodos de pontos interiores . Tipicamente em problemas NP- Completos, o nmero
de desigualdades que descreve completamente o conv(S) exponencial (no
nmero de variveis). Sendo assim, fica invivel o uso computacional da descrio
compl et a de conv(S), mesmo se est a fosse conheci da. Part e- se ento para a
descrio parcial da envoltria convexa na esperana de que ao resolvermos a
relaxao linear associada a conv(S) encontraremos uma soluo tima inteira.
O princpio bsico de um algori t mo planos -de- cort e resolver o problema
de PL dado pela relaxao das restries de integralidade, e o fortalecimento da
relaxao linear atravs do acrscimo de sucessivas desigualdades vlidas
formul ao.
Essas novas desigualdades melhoram a descr io da envoltria convexa
eliminando pores do espao de soluo, tal que, nenhuma soluo vivel inteira
seja excluda [23]. Para ilustrar esse mtodo observamos a Figura 1 [22].
Consideremos que o problema representado na figura seja de maximizao. As
linhas cheias representam desigualdades vlidas que descrevem o poliedro inicial
(relaxao linear), a seta indica a direo da funo objetiva, os crculos indicam
pontos inteiros, os crculos cheios representam solues viveis, e por ltimo, a
linha tracejada representa a desigualdade acrescentada relaxao linear que
elimina a soluo fracionria sem eliminar qualquer soluo (vivel) inteira.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
269
Figura 1
Note que o fato importante em algoritmos em planos- de- corte reside em
termos um mtodo apropriado para identificar desigualdades que so vlidas para o
problema original, mas violadas pela soluo fracionria atual. Assim, se ns
conhecemos uma classe de desigualdades vlidas, ns devemos ser hbeis para
verificar se uma desigualdade dessa classe violada, ou seja, devemos resolver um
problema de separao. Ns detalharemos melhor com problemas de separao no
final da seo onde estabeleceremos uma relao com problemas de otimizao.
Citaremos agora alguns tipos de planos- de- corte comumente utilizados quando
trabalhamos com algoritmo de planos- de- cort e.
(a) Planos - de - Corte Geral: Os planos- de- corte que representaremos nessa seo
podem ser aplicados a qualquer problema de programao linear inteira pura ou
mi st a. Como esses t i pos de pl anos- de- corte no so especficos a um dado
problema eles recebem o nome de planos- de- corte gerais ou de propsito gerais.
Gomory i nt roduzi u os pri mei ros al gori t mos de pl anos- de- corte. Naquele trabalho,
ele provou que o algoritmo termina aps um nmero finitos de passos e que o
programa inteiro pode ser resolvido atravs da gerao de um nmero tambm
finito de planos- de- corte. Infelizmente, os planos- de- corte de Gomory no se
most raram efi cazes em experi ment os prt i cos. OS pl anos- de- corte eram fracos e
causavam instabilidade numrica, e apenas em problemas de pequeno porte era
possvel atingir a otimalidade. Os planos- de- corte gerais so muitos limitados
quando ut i l i zamos e, probl emas de ot i mi zao combi nat ri a. Para esse t i po de
problema recomenda- se o emprego de planos- de- corte projetados de acordo com a
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
270
estrutura do problema que se deseja resolver. Na prxima subseo, abordaremos
esse t i po de pl anos- de- corte denominados planos- de- corte faciais.
(b)Planos - de- Corte Facial: so desigualdades vlidas definidoras de facetas para
um poliedro P. Como as facetas no so dominadas por quaisquer outras
desigualdades vlidas e ainda fornecem uma descrio completa e no redundante
do pol i edro, el as podem ser consi deradas como sendo os mel hores t i pos de pl ano-
de- corte. Entre tanto, dois aspectos devem ser considerados: no triviais,
encontrar desigualdades vlidas definidoras de facetas, e segundo, mesmo que
tenhamos uma classe de desigualdades vlidas devemos ser capazes de projetar
al gori t mos de separao para encont r- las.
9.1. Corte de Gomory
Na dcada de 50 Gomory sugeri u um mt odo de pl anos- de- cort e conheci do
como cortes de Gomory (sendo o mt odo precursor dos pl anos- de- cort e), com o
objetivo de resolver problemas de programao linear inteira. Ns mostraremos
abaixo o processo de obt eno de t ai s cort es.
Considere o problema de programao linear inteiro misto:
Min cx
s. a. Ax = b
x
j
0 e inteiro para j = 1,...,p
x
j
0 para j = p+1,...,n.
Primeiros vo assumir que p = n, i. e. o problema inteiro puro. Temos que
x
k
= b
k
JNI
a
k j
x
j
, i = 1, . . , m,
a linha correspondente para varivel bsica fracionria do tableau corrente timo
(si mpl ex) da rel axao LP, onde NI o conj unt o de ndi ces das vari vei s no-
bsicas.
Defi ni ndo:
]
]
kj kj kj
k k k
a a
b b
+
+
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
271
Temos a inequao correspondente para o corte de Gomory i nt ei ro, abai xo:
ou
Para probl emas onde p < n, i . e. onde o probl ema mi st o a i nequao de
formao do cort e al t erada j que al gumas das vari vei s (no- bsi cas) podem no
ser restringida para va lores inteiros [4]; temos assim a inequao abaixo para
problemas mistos:
ou
onde,
J
+
= {j NI | a
kj
0}
J
-
= {j NI | a
kj
< 0}
k
a x 0 , k j
J N I
j
a x k j j
J NI
k
,
k
J J
j kj
k
k
J J
j kj
x a
1
x a
+
+
,
k
J J
j kj
k
k
J J
j kj
x a
1
x a
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
272
9. 2. Em detalhes, consideremos a seguinte nomenclatura:
Suponhamos que nos resolvemos o problema pelo mtodo simplex e que a
soluo tima dada pelo TABLEAU mostrado abaixo
Base Valor x
1
x
2
x
m
x
m+1
x
n
x
1
x
2
.
.
.
x
i
x
m
b
1
b
2
.
.
.
b
i
b
m
1
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
1
a
1m+1
a
2m+1
.
.
.
a
im+1
a
mm+1
A
1n
a
2n
.
.
.
a
in
a
mn
-z -z
0
. . . c
m+1
c
n-1
c
n
Suponhamos ainda que b
i
no inteiro de modo que a soluo no satisfaz a
hiptese de integrabilidade. Na linha onde a integrabilidade no satisfeita nos
dividimos o coeficiente no maior inteiro + uma parte fracionria. (por exemplo,
3
1
8
3
1
8
2
3
4
+ + , -1
1
4
).
Assim
b
i
= n
io
+ f
io
, a
i j
= n
i j
+ f
i j
onde 0 f
i j
< 1 para j = 0, m + 1, m + 2,..., n.
Seja
k
i
= f
i m +1
x
m+1
+ f
i m + 2
x
m +2
+ . . . +f
in
x
n
0. (1)
Para a i- si ma l i nha do t ableau timo ns temos
n
i0
+ f
i0
= x
i
+ (n
i m +1
+ f
i m+1
) x
m+1
+ . . . + ( n
in
+ f
in
) x
n
(2)
tal que por subtrao ns obtemos
f
i0
- k
i
= x
i
+ n
i m +1
x
m+1
+ n
i m +2
x
m+2
+ . . . + n
in
x
n
- n
i 0
(3)
Agora desde que todas nos sas variveis devem ser inteiras o RHS de (3)
deve ser inteiro e no pode ser maior do que f
i0
desde que k
i
0. Porm isto uma
frao, tal que lado direito(R. H. S), no pode ser zero.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
273
Deste modo, f
i0
- k
i
0, isto , k
i
f
i0
.
Assi m sendo, a exi st ncia de integrabilidade equivalente a k
i
f
i0
, i st o ,
- f
i m +1
x
m+1
- f
i m + 2
x
m +2
- . . .- f
in
x
n
+ x
n+1
= - f
i0
. (4)
onde x
n+1
uma nova varivel, o qual deve no negativa e inteira desde que ela
i gual a k
i
- f
i 0.
A restrio (4) deve ser adicionada ao problema. Neste ponto o
val or de x
n+1
negativo.
9.2.1. Escolha da Linha Inicial
Cortes podem ser gerados usando como linha inicial:
Qualquer linha no quadro do LP timo a qual no tenha nenhum inteiro do lado
di rei t o;
Um mltiplo de qualquer linha no quadro do LP;
Uma combinao linear de linhas do quadro LP.
Por outro lado, nenhuma regra conhecida garantir escolha da linha mais fcil
forando um melhor corte.
9.2.2. Heursticas
Diversas heursticas foram desenvolvidas e implementadas objetivando a escolha
da linha inicial. Dentre elas podemos citar:
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
274
Passo 1
Passo 2
Passo 3
Algoritmo:
Inicializao
Solucionar o problema do relaxamento do LP
Teste de otimizao
A soluo do LP inteira? Se sim ento, pare.
Corte
Escolha uma linha inicialmente ( com nenhum inteiro do lado direito) e gere um corte ,
adicione ao corte a base do quadro.
Pivoteamento
Re-optimize o LP, usando o algoritmo dual simplex. Retorne para o passo 1.
Passo 0
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
275
Exemplo:
Achar os inteiros no - negat i vos x
1
, x
2
tal que
x
1
+ x
2
5
x
1
+ 5x
2
10
o qual minimiza - 2x
1
- 9x
2
= z , x
i
0, i = 1, 2.
Graficamente tem- se:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0
1
2
3
4
5
6
7
8
(1): 1 x1 + 1 x2 = 5
(2): 1 x1 + 5 x2 = 10
(1): 1x1 + 1x2 <= 5
(2): 1x1 + 5x2 <= 10
Aplicando-se o mtodo simplex, tem-s e :
Base Valor x
1
x
2
x
3
x
4
x
3
x
4
5
10
1
1
1
5
*
1
.
.
1
- z 0 -2 -9 . .
x
3
x
2
3
2
4
5
*
1
5
.
1
1
.
1
5
1
5
- z 18
1
5
. .
9
5
x
1
x
2
15
4
5
4
1
.
.
1
5
4
1
4
-
1
4
1
4
-z
1
4
. .
1
4
7
4
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
276
Evidentemente os valores timos x
1
e x
2
no so i nt ei ros. A equao (1) para
a soluo tima x
1
toma a forma
3 +
3
4
= x
1
+ (1 +
1
4
)x
3
+ (-1 +
3
4
)x
4
onde (4) torna-se
1
4
x
3
-
3
4
x
4
+ x
5
= -
3
4
(5)
onde x
5
uma varivel inteira no negativa. Esta uma restri o o qual
adicionaremos ao problema, utilizaremos o mtodo dual simplex.
Base Valor x
1
x
2
x
3
x
4
x
5
x
1
x
2
x
5
15
4
5
4
3
4
1
.
.
.
1
.
5
4
1
4
1
4
*
1
4
1
4
3
4
.
.
1
-z 75
4
. . 1
4
7
4
.
x
1
x
2
x
3
0
2
3
1
.
.
.
1
.
.
.
1
-4
1
3
5
-1
-4
-z 18 . . . 1 1
A soluo tima inteira x
1
= 0, x
2
= 2 e z = - 18.
Em termos das variveis x
1
e x
2
a restrio adicional (5) toma a forma
x
5
= -
3
4
+
1
4
x
3
+
3
4
x
4
0
isto , -
3
4
+
1
4
(5 - x
1
- x
2
) +
3
4
(10 - x
1
- 5x
2
) 0
i st o , x
1
+ 4x
2
8.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
277
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0
1
2
3
4
5
6
7
8
(1): 1 x1 + 1 x2 = 5
(2): 1 x1 + 5 x2 = 10
(3): 1 x1 + 4 x2 = 8
(1): 1x1 + 1x2 <= 5
(2): 1x1 + 5x2 <= 10
(3): 1x1 + 4x2 <= 8
10. Exerccios Resolvidos
1. Considere o seguinte P.P.I.:
Mx z = 14x
1
+ 18x
2
s.a. -x
1
+ 3x
2
6
7x
1
+ x
2
35
x
i
0; x
i
inteiro (i = 1, 2)
A tabela tima para o P.P.L. dada na Tabela 2. Use o algoritmo dos planos cortantes para
resolver o P.P.I.
Base x
1
x
2
s
1
s
2
b
X
2
0 1 7/22 1/22 7/2
X
1
1 0 -1/22 3/22 9/2
z 0 0 56/11 30/11 126
Tabela 2.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
278
Soluo:
Escolhendo-se arbitrariamente x
2
, temos:
x
2
+ (0 + 7/22)s
1
+ (0+1/22)s
2
= (3 + 1/2)
Fazendo a equao do corte:
-7/22s
1
- 1/22s
2
+ s
3
= -1/2
Adicionando esta restrio ao modelo e aplicando o Dual Simplex, teremos:
Base x
1
x
2
s
1
s
2
s
3
b
x
2
0 1 7/22 1/22 0 7/2
x
1
1 0 -1/22 3/22 0 9/2
s
3
0 0 -7/22 * -1/22 1 -1/2
z 0 0 56/11 30/11 0 126
x
2
0 1 0 0 1 3
x
1
1 0 0 1/7 -1/7 32/7
s
1
0 0 1 1/7 -22/7 11/7
z 0 0 0 2 112/7 118
Devem-se fazer os passos acima novamente, desta vez escolhendo-se s
1
:
s
1
+ (0 + 1/7)s
2
+ (-4 + 6/7)s
3
= (1 + 4/7)
Fazendo a equao do corte:
-1/7s
2
- 6/7s
3
+ s
4
= -4/7
Adicionando esta restrio ao modelo e aplicando o Dual Simplex, teremos:
Base x
1
x
2
s
1
s
2
s
3
s
4
b
x
2
0 1 0 0 1 0 3
x
1
1 0 0 1/7 -1/7 0 32/7
s
1
0 0 1 1/7 -22/7 0 11/7
s
4
0 0 0 -1/7 * -6/7 1 -4/7
z 0 0 0 2 112/7 0 118
x
2
0 1 0 0 1 0 3
x
1
1 0 0 0 -1 1 4
s
1
0 0 1 0 -4 1 1
s
2
0 0 0 1 6 -7 4
z 0 0 0 0 4 14 110
Logo a soluo tima para este P.P.I. z = 110; V.B.: x
1
= 4; x
2
= 3; s
1
= 1; s
2
= 4; V.N.B.: s
3
= s
4
= 0.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
279
2. Considere o seguinte P.P.I.:
Mn z = 6x
1
+ 8x
2
s.a. 3x
1
+ x
2
4
x
1
+ 2x
2
4
x
i
0; x
i
inteiro (i = 1, 2)
A tabela tima para o P.P.L. dada na Tabela 3. Use o algoritmo dos planos cortantes para resolver
o P.P.I.
Tabela 3.
Base x
1
x
2
e
1
e
2
b
x
1
1 0 -2/5 1/5 4/5
x
2
0 1 1/5 -3/5 8/5
z 0 0 -4/5 -18/5 88/5
Soluo
Escolhendo-se arbitrariamente x
2
, temos:
x
2
+ (0 + 1/5)e
1
+ (-1 + 2/5)e
2
= (1 + 3/5)
Fazendo a equao do corte:
-1/5e
1
- 2/5e
2
+ e
3
= -3/5
Adicionando esta restrio ao modelo e aplicando o Dual Simplex, teremos:
Base x
1
x
2
e
1
e
2
e
3
b
x
1
1 0 -2/5 1/5 0 4/5
x
2
0 1 1/5 -3/5 0 8/5
e
3
0 0 -1/5 * -2/5 1 -3/5
Z 0 0 -4/5 -18/5 0 88/5
x
1
1 0 0 1 -2 2
x
2
0 1 0 -1 1 1
e
1
0 0 1 2 -5 3
Z 0 0 0 2 -4 20
Logo a soluo tima para este P.P.I. z = 20; V.B.: x
1
= 2; x
2
= 1; e
1
= 3; V.N.B.: e
2
= e
3
= 0.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
280
3. Considere o seguinte P.P.I:
Mn z = 2x
1
- 4x
2
s.a. 2x
1
+ x
2
5
-4x
1
+ 4x
2
5
x
i
0; x
i
inteiro (i = 1, 2)
A tabela tima para o P.P.L. dada na Tabela 4. Use o algoritmo dos planos cortantes para resolver
o P.P.I.
Base x
1
x
2
e
1
e
2
b
x
1
1 0 1/3 -1/12 5/4
x
2
0 1 1/3 1/6 5/2
z 0 0 -2/3 -5/6 -15/2
Tabela 4
Soluo:
Escolhendo-se arbitrariamente x
2
, temos:
x
2
+ (0 + 1/3)e
1
+ (0 + 1/6)e
2
= (2 + 1/2)
Fazendo a equao do corte:
-1/3e
1
- 1/6e
2
+ e
3
= -1/2
Adicionando esta restrio ao modelo e aplicando o Dual Simplex, teremos:
Base x
1
x
2
e
1
e
2
e
3
b
x
1
1 0 1/3 -1/12 0 5/4
x
2
0 1 1/3 1/6 0 5/2
e
3
0 0 -1/3 * -1/6 1 -1/2
z 0 0 -2/3 -5/6 0 -15/2
x
1
1 0 0 -1/4 1 3/4
x
2
0 1 0 0 1 2
e
1
0 0 1 -3 3/2
z 0 0 0 -1/2 -2 -13/2
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
281
Devem-se fazer os passos acima novamente, desta vez escolhendo-se e
1
:
e
1
+ (0 + 1/2)e
2
+ (-3 + 0)e
3
= (1 + 1/2)
Fazendo a equao do corte:
-1/2e
2
+ e
4
= -1/2
Adicionando esta restrio ao modelo e aplicando o Dual Simplex, teremos:
Base x
1
x
2
e
1
e
2
e
3
e
4
b
x
1
1 0 0 -1/4 1 0 3/4
x
2
0 1 0 0 1 0 2
e
1
0 0 1 1/2 -3 0 3/2
e
4
0 0 0 -1/2 * 0 1 -1/2
z 0 0 0 -1/2 -2 0 -13/2
x
1
1 0 0 0 1 -1/2 1
x
2
0 1 0 0 1 0 2
e
1
0 0 1 0 -3 1 1
e
2
0 0 0 1 0 -2 1
Z 0 0 0 0 -2 -1 -6
Logo a soluo tima para este P.P.I. z = -6; V.B.: x
1
= 1; x
2
= 2; e
1
= 1; e
2
= 1; V.N.B.: e
3
= e
4
=
0.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
282
11. Exerccios Propostos
1) Seja o problema de programao linear inteira
Mx z = 7x
1
+ 9x
2
s.a -x
1
+ 3x
2
6
7x
1
+ x
2
35
x
1
, x
2
0, inteiros
cuja soluo tima do problema de programao linear dado pelo tableau abaixo:
Base x
1
x
2
x
3
x
4
soluo
x
2
0 1 7
22
1
22
7
2
x
1
1 0
1
22
3
22
9
2
z 0 0 28
11
15
11
63
Sugesto: Aplique o mtodo dos planos cortantes a partir da varivel x
2
, at encontrar uma soluo
inteira tima.
2) Seja o problema de programao linear inteira
Mx z = 7x
1
+ 9x
2
s.a -x
1
+ 3x
2
6
7x
1
+ x
2
35
x
1
, x
2
0, inteiros
cuja soluo tima do problema de programao linear dado pelo tableau abaixo
Base x
1
x
2
x
3
x
4
soluo
x
2
0 1 7
22
1
22
7
2
x
1
1 0
1
22
3
22
9
2
z 0 0 28
11
15
11
63
Aplicando-se o mtodo dos cortes de Gomory, com respeito a varivel x
2
obtm-se o seguinte
quadro:
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
283
Base x
1
x
2
x
3
x
4
S
1
Soluo
x
2
0 1 7
22
1
22
0 7
2
x
1
1 0
1
22
3
22
0 9
2
S
1
0 0
-
7
22
-
1
22
1
-
1
2
Z 0 0 28
11
15
11
0 63
a) Construir a restrio adicionada ao quadro acima em termos das variveis x
1
e x
2
.
Aplicando-se o dual simplex ao quadro acima se obtm.
Base x
1
x
2
x
3
x
4
S
1
Soluo
x
2
0 1 0 0 1 3
x
1
1 0 0 1
7
-
1
7
32
7
x
3
0 0 1 1
7
-
22
7
11
7
z 0 0 0 1 8 59
b) Complete o quadro abaixo, aplicando o mtodo dos cortes de Gomory ao quadro
acima em relao a varivel x
1
.
Base x
1
x
2
x
3
x
4
S
1
S
2
Soluo
x
2
0 1 0 0 1 0 3
x
1
1 0 0 1
7
-
1
7
0 32
7
x
3
0 0 1 1
7
-
22
7
0 11
7
S
2
0 0 0 1
-
4
7
z 0 0 0 1 8 0 59
c) Construir a restrio adicionada ao quadro acima em termos das variveis x
1
e x
2
.
d) Com as restries obtidas dos itens a) e c) resolver graficamente o problema. Obtenha a soluo
inteira tima.
e) Aplique o dual simplex ao quadro do item b e compare a soluo com o item d.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
284
3) Resolver os seguintes modelos lineares inteiro, usando o mtodo de cortes de Gomory.
Mx z = 2x
1
+ x
2
s.a 3x
1
+ x
2
21
7x
1
+ 4x
2
56
x
1
+ x
2
12
x
1
, x
2
0, inteiros
4) Considere o seguinte problema da mochila
Mx z = 10x
1
+ 24x
2
+ 10x
3
+ 2x
4
s. a 2x
1
+ 4x
2
+ 3x
3
+ x
4
23
x
1
, x
2
, x
3
, x
4
0, i nt ei ros
a) Resolver este modelo usando o mtodo dos cortes de Gomory.
b) Transforme este problema em um problema da mochi l a 0- 1. Use o mtodo de
Branch- and- Bound para resolver este problema da mochila 0- 1.
5) Exerccios Computacionais
Implementar cdigos computacionais para executar problemas de programao
linear inteira e binria 0- 1, consi derando:
a) Mtodo dos Cort es de Gomory, a partir da rotina allint. pas, do livro Discrete
Optimization Algoritms with Pascal Programs by Syslo, M. M et alli.
a1) Construir uma entrada e saida de dados.
a2) Efetuar vrios testes, com problemas at 50variveis e 52 restries.
6) Assinale (V) verdadeiro ou (F) falso
( ) possvel obter uma soluo vivel inteira por arredondamento da soluo tima de um
problema de programao linear com restries de igualdade.
( ) O custo timo inteiro de um problema pode fornecer um melhor custo do que seu custo
contnuo associado.
( ) O nmero de subproblemas obtidos por uma ramificao do mtodo de Branch-and-Bound
pode ser drasticamente reduzido se um bom limite descoberto para a soluo inteira.
( ) A principal desvantagem do algoritmo de Branch-and-Bound o nmero de subproblemas que
pode sobrecarregar a memria computacional.
( ) O algoritmo de enumerao implcita 0 - 1 um caso especial do mtodo geral de Branch-and-
Bound.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
285
7) Aplique o algoritmo de Branch-and-Bound ao Problema de Programao Inteira(PLI) abaixo.
mn z = 10x
1
+ 9x
2
s.a x
1
8
x
2
10
5x
1
+ 3x
2
45
x
1
, x
2
0 inteiros.
a)Construir uma rvore composta pelos subproblemas lineares PL1, PL2, PL3, PL4 e PL5.
b) Interprete os resultados em cada n da rvore.
6) Mostrar a rvore de Branch-and-Bound que corresponde a soluo tima do seguinte modelo
linear inteiro
Mx z = 2x
1
+ x
2
s.a: x
1
+ 2x
2
8
x
1
- x
2
1
2
x
1
, x
2
0; x
1
, x
2
inteiros
8)Utilizando o mtodo de Branch-and-Bound ache a soluo tima dos seguintes problemas
inteiros.
a) Mx z = 5x
1
+ 2x
2
s.a: 3x
1
+ x
2
12
x
1
+ x
2
5
x
1
, x
2
0; x
1
, x
2
inteiros
b) Mx z = 7x
1
+ 3x
2
s.a: 2x
1
+ x
2
9
3x
1
+ 2x
2
13
x
1
, x
2
0; x
1
, x
2
inteiros
9) Implementar o algoritmo de Branch-and-Bound em MATLAB
10) Resolver graficamente o exemplo da fabrica de moveis interpretando cada etapa do mtodo
de Branch-and-Bound.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
286
11) Considere o modelo:
mn z = x
1
s.a 15x
1
- 20x
2
4
21x
1
- 20x
2
10
x
1
, x
2
0 inteiros.
Mostre que o arredondamento da soluo tima do problema linear para uma soluo inteira deste
modelo, no a soluo tima do problema inteiro.
12) Seja o problema inteiro
(PI) Mx z = c x c x
t t
1 1 2 2
+
s.a
a x a x b
d x d x b
t t
t t
1 1 2 2 1
1 1 2 2 2
+
+
x
1 2
0 0 , x inteiros
Descreva a aplicao do algoritmo de Branch-and-Bound ao problema (PI), narrando:
a) As ramificaes com subproblemas inclusive os que tenham solues impossveis.
b) Descrever limitaes dos vrios subproblemas candidatos a soluo, descrevendo os critrios a
melhor escolha.
13) Resolver atravs do algoritmo de Branch-and-Bound os seguintes problemas abaixo:
a) Mx z = 3x
1
+ x
2
b) Mx z = 4x
1
+ 3x
2
+ x
3
s.a. 5x
1
+ 2x
2
10 s.a. 3x
1
+ 2x
2
+ x
3
7
4x
1
+ x
2
7 2x
1
+ x
2
+ 2x
3
3
x
1
, x
2
0; x
2
inteiro x
1
, x
2
, x
3
0; x
2
, x
3
inteiros
14) Considere o modelo
Mx z = x
1
s.a. 15x
1
- 20x
2
4
21x
1
- 20x
2
10
x
1
, x
2
0
a)Resolver o problema na forma linear e inteira utilizando o LINDO.
b)Verifique que o arredondamento da soluo linear do PPL no implica na soluo do problema
inteiro.
c) Resolver o problema linear graficamente.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
287
15) Considere o modelo
Mx z = 3x
1
+ 3x
2
+ 13x
3
s.a. -3x
1
+ 6x
2
+ 7x
3
8
6x
1
- 3x
2
+ 7x
3
8
x
1
, x
2
, x
3
0 e inteiros
a) Resolver o problema utilizando o mtodo de Branch-and-Bound com a verso do
jumptracking.(A ramificao(bound) sempre sobre a varivel de menor ndice que no inteira).
b) Quando a verso do backtracking aplicada para este problema, existe a liberdade na escolha do
subproblema com x
i
*, ou o subproblema com x
i
* + 1. Analise
a diferena entre as duas verses do backtracking.
c) Compare o resultado com a soluo encontrada no item (a).
d)O que podemos dizer neste caso sobre o jumptracking em relao ao backtracking.
16) Atravs do mtodo de Branch-and-Bound para construir a rvore de soluo dos seguintes
problemas linear inteiro. Utilize o computador para resolver os subproblemas.
a) Mx z = 3x
1
+ 3x
2
+ 13x
3
s.a. -3x
1
+ 6x
2
+ 7x
3
8
6x
1
- 3x
2
+ 7x
3
8
0 x
1
, x
2
, x
3
5, inteiros
b) Mx z = 23x
1
+ 14x
2
+ 17x
3
s.a. -x
1
+ x
2
+ 2x
3
7
2x
1
+ 2x
2
- x
3
9
3x
1
+ 2x
2
+ 2x
3
13
x
1
, x
2
, x
3
0, inteiros
c) Mx z = 26x
1
+ 17x
2
+ 13x
3
s.a. 3x
1
+ x
2
+ 4x
3
9
x
1
+ 2x
2
- 3x
3
6
4x
1
- x
2
+ x
3
17
x
1
, x
2
, x
3
0, inteiros
d) Mx z = 19x
1
+ 27x
2
+ 23x
3
s.a. 4x
1
- 3x
2
+ x
3
7
2x
1
+ x
2
- 2x
3
11
-3x
1
+ 4x
2
+ 2x
3
5
x
1
, x
2
, x
3
0, inteiros
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
288
e) Mx z = 34x
1
+ 29x
2
+ 2x
3
s.a. 7x
1
+ 5x
2
- x
3
16
-x
1
+ 3x
2
+
x
3
10
- x
2
+ 2x
3
3
x
1
, x
2
, x
3
0, int eiros
f) Mx z = 135x
1
+ 31x
2
+ 142x
3
s.a. x
1
+ 2x
2
- x
3
13
2x
1
- x
2
+
3x
3
5
x
1
- x
2
+ 2x
3
3
x
1
, x
2
, x
3
0, inteiros
17) Qual das seguintes afirmaes verdadeira e quais so falsas? Justifique suas respostas.
a) Se um modelo linear inteiro tem uma soluo tima, ento o modelo linear tambm tem soluo
tima.
c) Se um modelo linear tem uma soluo tima, ento o modelo linear inteiro tambm tem soluo
tima.
18) Considere o seguinte modelo linear inteiro
Mx z = 77x
1
+ 6x
2
+ 3x
3
+ 6x
4
+ 33x
5
+ 13x
6
+ 110x
7
+ 21x
8
+ 47x
9
s.a 77x
1
+ 76x
2
+ 22x
3
+ 42x
4
+ 21x
5
+ 760x
6
+ 818x
7
+ 62x
8
+ 785x
9
1500
67x
1
+ 27x
2
+ 794x
3
+ 53x
4
+ 234x
5
+ 32x
6
+ 792x
7
+ 97x
8
+ 435x
9
1500
x
1
,...,x
9
{0,1}
a) Resolver a relaxao linear deste problema e determine uma soluo inteira vivel por
arredondamento da soluo linear.
b) Mostre que z
*
= 176, x x x x x x x x x
1 2 3 4 5 6 7 8 9
1
* * * * * * * * *
uma soluo tima
do modelo, usando o mtodo de Branch-and-Bound. Mostre tambm a rvore do mtodo de Branch-
and-Bound.
19) Considere o seguinte modelo linear inteiro
Mx z = - x
1
- 9x
2
s.a -x
1
+ x
2
+ x
3
= 0.5
x
1
, x
2
0, x
3
{0,1}
Determine a soluo tima e a rvore correspondente pelo mtodo de Branch-and-Bound.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
289
20) Sej a o PPI
Mx z = x
1
+ x
2
+ 4x
3
x
4
+ 5x
5
s. a x
2
+ x
5
4
- x
1
+ x
2
1
x
3
- x
4
0
- x
3
- x
4
+ x
5
5
x
1
2
x
I
0, I= 1,,5
A soluo do problema de programao linear corresponde a soluo do problema de programao
inteira. Justifique sua resposta.
Soluo: A soluo do problema de programao linear no corresponde a soluo do problema de
programao inteira, pois as hipteses do teorema
Seja A uma matriz inteira, e F = {x
n
; Ax b, x 0} no vazio. Ento A Totalmente
Unimodular se e somente se para cada vetor inteiro b
n
o conjunto F tem vrtices inteiros no
so satisfeitas. De fato, a matriz:
,
_
0 0 0 0 1
1 1 1 0 0
0 1 1 0 0
0 0 0 1 1
1 0 0 1 0
A no totalmente unimodular, pois a sub- mat ri z
,
_
1 1
1 1
A possui determinante igual a 2.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
290
21) Considere o seguinte P.P.I.:
Mn z = 6x
1
+ 8x
2
s.a. 3x
1
+ x
2
4
x
1
+ 2x
2
4
x
i
0; x
i
inteiro (i = 1, 2)
A tabela tima para o P.P.L. dada abaixo. Use o algoritmo dos planos cortantes de Gomory para
resolver o P.P.I.
Base x
1
x
2
e
1
e
2
b
x
1
1 0 -2/5 1/5 4/5
x
2
0 1 1/5 -3/5 8/5
z 0 0 -4/5 -18/5 88/5
Sugesto: Construa o corte de Gomory considerando a equao envolvendo x
2
.
22) Consi dere o segui nt e P. P. I. :
M n z = 2x
1
- 4x
2
s. a. 2x
1
+ x
2
5
- 4x
1
+ 4x
2
5
x
i
0; x
i
inteiro (i = 1, 2)
A tabela tima para o P. P. L. dada abaixo. Use o algoritmo dos planos cortantes
para resolver o P. P. I.
Base x
1
x
2
e
1
e
2
b
x
1
1 0 1/3 -1/12 5/4
x
2
0 1 1/3 1/6 5/2
z 0 0 -2/3 -5/6 -15/2
23)Verifique
Se A e B so matrizes Totalmente Unimodular, ento
a) A
t
Totalmente Unimodular.
b)
,
_
B
A
Totalmente Unimodular.
c) Se A uma matriz Totalmente Modular ento [I A] Unimodular.
Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
291
24) Determine qual das seguintes matrizes so Totalmente Unimodulares.
a)
,
_
1 0 1
0 1 1
1 0 1
A ; b)
,
_
1 1 1
0 1 0
0 1 1
A ;
,
_
0 0 1 0 0
0 1 1 0 0
1 0 0 0 1
0 1 0 1 1
A ;
,
_
0 0 0 0 1
1 1 1 0 0
0 1 1 0 0
0 0 0 1 1
1 0 0 1 0
A
25) Justifique as seguintes quest es:
a) Dar um exemplo de uma matriz unimodular de posto completo que no
totalmente unimodular.
b) Dar um exemplo de uma matriz totalmente unimodular de posto completo,
com no mnimo um inteiro positivo e um inteiro negativo em cada coluna, que no
sat i sfaz as condi es do t eorema 3.
26) Mostre, calculando todas as solues viveis bsicas, que a regio
{x R
6
; 0} x , b x
1 0 0 1 0 1
0 1 0 0 1 1
0 0 1 0 0 1
1
1
1
]
1