Você está na página 1de 62

Pesquisa Operacional / Captulo 6 / Programao 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

( ) os valores das funes objetivo no timo


de ( ) P e ( ) P respect i vament e t emos que:

V P V P

( ) ( )




Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
239

Considerando ainda qualquer soluo vivel
~
x de (P), ento:

V x V P

(
~
) ( )

e dessa forma V P

( ) um limite superior para (P), e qualquer de suas solues


viveis. Se x a soluo tima de ( ) P tal que x
j
no inteiro teremos:


]
x x
j j
+ 1ou
]
x x
j j
(1)

em toda a soluo vivel de (P). Dessa forma o problema (P) pode ser dividido em
dois novos problemas (P
1
) e (P
2
) em que a envoltria convexa C de (P
1
) (P
2
)
ou Conv((P
1
) ( P
2
)) estritamente contida na envoltria de (P) ou Conv ((P
1
)
(P
2
) ) Conv ((P)).
Vamos exemplificar o processo de diviso da envol t ri a convexa de (P) com
o segui nt e exempl o:
+

+
+
+
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

41), o que obriga ao desenvolvimento de (P


3
).
De modo semelhante (P
0
) com z =41,25 pode dar origem a um problema com a
soluo tambm de valor 41 (40 z
0

41, 25), o que obri ga ao desenvol vi ment o de


(P
1
) .
A reduo pelo limite inferior (bound) de apenas um vrtice da rvore de
enumerao do exemplo pode parecer pequena, mas devemos lembrar que esse
problema pequeno. Em muitos casos reais o poder de simplificao do limite
inferior (ou superior no problema de minimizao) se mostra dramtico, sendo
extremamente til no processo de soluo.

5. 2. O Mtodo de Branch-and-Bound e sua Forma Geral
Podemos observar 4 fases do mtodo:
a) Fase de Seleo
b) Fase de Ramificao
c) Fase de Limitao
d) Fase de Aprofundamento

Fase de Seleo
a) Um subproblema que no esta ainda particionado (veja as fases(b) e (d)),
sel eci onado para cont i nuar o procedimento. Existem trs possibilidades:
a
1
) Backtracking - A ramificao ocorre sobre o n criado mais recentemente da
rvore de Branch- and- Bound; se o n aprofundado (veja (d)) ento novos
procedimentos de Backtrakings so desenvolvidos. Backtraking chamado de Busca
LIFO( Last- in- first- out).


Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
244


a
12
) A busca FIFO(First- in- first- out) procede a busca sobre um n no ramificado.
a
2
) Jumptracking - Aplicamos a ramificao sobre o ramo com o melhor valor
finito da funo objetivo. O Jumptracking chamado de busca BF(Best- first).
Em geral, FIFO e jumptracking apresentam menos ramos do que o Backtracking.
Enterrando, mais requerem armazenagem, em termos computacionais do que os
outros procedimentos.

Fase de Rami fi cao
b) A soluo de um subproblema, representado por um n k da rvore de Branch- and-
Bound, particionada em subconjuntos mutuamente exclusivos; cada um destes
subconjuntos representado por um n conectado por arco, denominado n k. Se duas
ou mais variveis no so inteiras ento aplicamos as seguintes estratgias de
ramificao:
b
1
) Escolha da varivel no inteira pelo maior interesse econmico.
b
2
) Muitos cdigos computacionais, escolhem a ramificao sobre a varivel no
inteira com o menor ndice.

Fase de Limitao
No caso de um modelo de m ximo, limites superiores sobre a soluo tima
de um det ermi nado subprobl ema so det ermi nados. Por exempl o, a rel axao das
vari vei s i nt ei ras, det ermi na um probl ema com vari vei s cont nuas onde sua
soluo fornece um limite superior sobre a soluo tima.

Fase de Aprofundamento
Os subproblemas so excludos, quando a soluo inteira encontrada ou
soluo invivel.






Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
245

5. 3. Al gori tmo de Branch-and-Bound

Passo 1: Relaxe todas as restries de integralidade no problema linear inteiro
(PLI) e resolva o pr oblema linear(PL). Se a soluo tima do problema linear
relaxado satisfaz as condies de integralidade, pare, esta a soluo inteira
tima.
Passo 2: Se o problema resolvido de maximizao seja z
best
= . Se o problema
resol vi do de mi ni mi zao sej a z
best
= . (Em geral , z
best
represent a o val or da
funo objetiva da melhor soluo inteira conhecida).
Passo 3: Sej a x
j
representando uma varivel que viola a condio de integralidade na
soluo do problema que foi por ltimo resolvido e seja b
j
representando seu valor no
inteiro. Seja INT(b
j
) representando o maior inteiro que menor do que b
j
. Criar dois
novos problemas candidatos: um por anexar a restrio x
j
INT(b
j
) ao (PL) mais
recente resolvido e o outro por anexar a restrio x
j
INT(b
j
) + 1 tambm ao (PL)
mais recente resolvido. Colocar ambos destes novos (PL) em uma lista de problemas
candidatos a serem resolvidos.
Passo 4: Se a lista de problemas candidatos vazio, v para o passo 9. Caso
contrrio, remova um problema candidato da lista, relaxe qualquer condio de
integralidade no problema e resolva ele.
Passo 5: Se no exi st e sol uo para o corrent e probl ema candi dat o( i st o , el e
invivel), volte ao passo 4. Caso cont rri o, sej a Z
cp
denotando o valor timo da
funo objetivo para o corrente problema candidato.
Passo 6: Se Z
cp
no mel hor do que Z
bes t
(para o problema de maximizao Z
cp

Z
best
ou para um probl ema de mi ni mi zao Z
cp
Z
best
) v para o passo 4.
Passo 7: Se a soluo do corrente problema candidato no satisfaz as condies
originais de integralidade, v para o passo 3.

Passo 8: Se a soluo do corrente problema candidato no satisfaz as condies
originais de integralidade, uma melhor soluo inteira foi encontrada. Assim sendo,
sej a Z
cp
= Z
best
e mantenha a soluo obtida para este problema candidato. Ento
retorne para o passo 4.

Passo 9: Pare. A soluo tima foi encontrada e tem um valor para a funo
objetiva dada pelo valor corrente de Zbest.

Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
246


5. 3. Exerccios Resolvidos
Exemplo 1: Consi deremos a segui nt e apl i cao:
A fabrica de moveis Pedro Gabriel produz mesas e cadeiras. Uma mesa requer 1
hora de trabalho e 9dm
2
de madei ra enquant o que a cadei ra requer 1 hora de
t rabal ho e 5dm
2
de madeira. Tem- se di spon vel 6 horas de t rabal ho e 45dm
2
de
madeira. O lucro da produo de uma mesa de R$ 8 e uma cadeira de R$ 5.
Formule e resolva o problema linear inteiro de modo a maximizar o lucro.
Sol uo: Sej am x
1
= o nmero de mesas e x
2
o nmero de cadeiras, variveis
inteiras.
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
Relaxando- se as variveis de integralidade tem- se o seguinte problema linear (PL)
Subproblema I Mx z = 8x
1
+ 5x
2

s. a: x
1
+ x
2
6
9x
1
+ 5x
2
45
x
i
0, i = 1, 2
cuja soluo z x
165
4
15
4
9
4
1
; e x
2
onde o valor de z um limite superior para
o custo timo. Escolhendo- se aleatoriamente x
1
a varivel a ser ramificada tem- se
x
1
3 e x
1
4.
Subproblema II = Subproblema I + restrio x
1
4
Subproblema II Mx z = 8x
1
+ 5x
2

s. a: x
1
+ x
2
6
9x
1
+ 5x
2
45
x
1
4
x
i
0, i = 1, 2





Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
247

Subproblema III = Subproblema I + restrio x
1
3
Subprobl ema III Mx z = 8x
1
+ 5x
2

s. a: x
1
+ x
2
6
9x
1
+ 5x
2
45
x
1
3
x
i
0, i = 1, 2
Do subproblema II tem- se como soluo, z x 41 4
9
5
1
; e x
2
e subprobl ema III
t em- se z x 39 3
1 2
; x . Da varivel x
2
t em- se x
2
1 e x
2
2 do subprobl ema II
Subproblema IV Mx z = 8x
1
+ 5x
2

s. a: x
1
+ x
2
6
9x
1
+ 5x
2
45
x
1
4
x
2
2
x
i
0, i = 1, 2
Subproblema V Mx z = 8x
1
+ 5x
2

s. a: x
1
+ x
2
6
9x
1
+ 5x
2
45
x
1
4
x
2
1
x
i
0, i = 1, 2
subproblema IV tem soluo invivel, enquanto que o subproblema V tem soluo
tima z x
365
9
40
9
1
1
; e x
2
. Considerando- se a soluo x
1
do subproblema V
tem- se os subprobl emas VI e VII com x
1
4 e x
1
5.
Subproblema VI Mx z = 8x
1
+ 5x
2

s. a: x
1
+ x
2
6
9x
1
+ 5x
2
45
x
1
4
x
2
1
x
1
5
x
i
0, i = 1, 2

Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
248

Subprobl ema VII Mx z = 8x
1
+ 5x
2

s. a: x
1
+ x
2
6
x
1
+ 5x
2
45
x
1
4
x
2
1
x
1
4
x
i
0, i = 1, 2
A soluo do problema VI z x 40 5 0
1
; e x
2
, enquanto que o subproblema
VII tem soluo z x 37 4 1
1
; e x
2
. Por outro lado, o subproblema III tem soluo
z x 39 3 3
1
; e x
2
.

rvore do Algoritmo de Branch-and- Bound Aplicado ao Problema




















Logo a soluo tima z = 40 5 0 ; ; x x
1 2
.
Subproblema I
z =
165
4
15
4
9
4
; ; x x
1 2

Subproblema II
z = 41 4
9
5
; ; x x
1 2

Subproblema IV

Soluo Invivel

Subproblema V
z =
365
9
40
9
1 ; ; x x
1 2

Subproblema III
z = 39 3 3 ; ; x x
1 2

Candidato a soluo
Subproblema VI
z = 40 5 0 ; ; x x
1 2

Candidato a soluo
Subproblema VII
z = 37 4 1 ; ; x x
1 2

Candidato a soluo

Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
249

Exemplo 2: Seja o PLI abaixo,
m n z = 10x
1
+ 9x
2

s. a x
1
8
x
2
10
5x
1
+ 3x
2
45
x
i
0, i = 1, 2; inteiros
Denomi nando por PL- 1 o problema linear, sua soluo tima tem valores
t i mos Z
1
= 95; x
1
= 8 e x
2
=
5
3
.
Esta soluo no satisfaz condio das varive is serem inteiras, mas
permite ilustrar os aspectos fundamentais da tcnica de Branch- and- Bound. Por
outro lado
Z
1
= 95 um limite inferior para a funo objetivo, ou seja, ao se forar solues
i nt ei ras, o val or de Z
1
no pode se reduzi r al m de Z
1
= 95 (delimitao inferior).
Por outro lado, o valor x
2
=
5
3
1
2
3
sugere dividir (ramificar) o problema em dois
outros, tendo em vista que x
2
deve ser um nmero inteiro, a saber: x
2
1 e x
2
2.
A i ncorporao das rest ri es cri a os probl emas PL- 2 e PL- 3, respectivamente:
m n z = 10x
1
+ 9x
2
m n z = 10x
1
+ 9x
2

s. a x
1
8 s. a x
1
8
x
2
10 x
2
10
5x
1
+ 3x
2
45 5x
1
+3x
2
45
x
2
1 x
2
2
x
i
0, i = 1, 2; inteiros x
i
0, i = 1, 2; inteiros
A resoluo do subproblemas PL- 2 e PL- 3 graficamente ou pelo mtodo simplex
tem sol ues t i mas PL- 2: i nvi vel e PL- 3: Z
3
= 96; x
1
39
5
7
4
5
2 e x
2

A i nvi abi l i dade de PL- 2 mostra que no h mais o que explorar nessa
ramificao; ela esta concluda. A resoluo de PL- 3 most ra que Z
3
= 96 o novo
limite inferior para o problema proposto, em face da inviabilidade de PL- 2. Como
x
1
= 7
4
5
o problema deve ser ramificado em dois outros, com restries
correspondent es x
1
7 e x
1
8. Tais problemas so denominados PL- 4 e PL- 5,
respect i vament e:

Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
250

m n z = 10x
1
+ 9x
2
m n z = 10x
1
+ 9x
2

s. a x
1
8 s. a x
1
8
x
2
10 x
2
10
5x
1
+ 3x
2
45 5x
1
+3x
2
45
x
2
1 x
2
2
x
1
7 x
1
8
x
i
0, i = 1, 2; inteiros x
i
0, i = 1, 2; inteiros
As solues timas dos problemas (PL- 4) e (PL- 5) podem ser obtidas
facilmente a partir da soluo tima de PL- 3, de maneira a reduzir o esforo
computacional. As solues timas so:
PL- 4: Z = 100; x
1
= 7 e x
2
=
10
7
e PL- 5: Z = 98; x
1
= 8 e x
2
= 2





















PL-1
Z
1
= 95; x
1
= 8; x
2
= 1
2
3

PL-2; Invivel.
PL-3
Z
3
= 96; x
1
=7
4
5
; x
2
= 2

PL-4
Z
4
= 100; x
1
=7; x
2
=
10
3


PL-5
Z
3
= 98; x
1
=8; x
2
= 2

Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
251

Exempl o 3: Consi deremos o seguinte problema de programao linear inteira
Mx z = 2x
1
+ x
2
s. a. 5x
1
+ 2x
2
8
x
1
+ x
2
3
x
1
, x
2
0; x
1
inteiro
De modo similar ao problema de programao inteira pura, apl i ca- se o
algoritmo de Branch- and- Bound ao problema de programao linear mista inteira.
Assim sendo, relaxando- se a condio de integralidade da varivel x
1
e
resol vendo- se o problema:
Mx z = 2x
1
+ x
2
s. a. 5x
1
+ 2x
2
8
x
1
+ x
2
3
x
1
, x
2
0
t em- se como soluo tima z
11
3
2
3
7
3
, , x x
1 2
. Desde que a varivel x
2
pode ser
fracionria, nos no ramificaremos x
2
. Ento ramificaremos a varivel x
1
e a
partir desta tem- se os se guintes subproblemas II e III.
Subproblema II = Subproblema I + restrio x
1
1
Mx z = 2x
1
+ 5x
2

s. a: 5x
1
+ 2x
2
8
x
1
+ x
2
3
x
1
1
x
1
, x
2
0
Subproblema III = Subproblema I + restrio x
1
0
Mx z = 2x
1
+ x
2

s. a: 5x
1
+ 2x
2
6
x
1
+ x
2
45
x
1
0
x
1
, x
2
0




Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
252

Do subproblema II tem- se como soluo, z 3 0 3
1
; x e x
2
e o subproblema III
tem como soluo z
7
2
1
3
2
1
; x e x
2
o qual soluo tima do problema linear
misto inteiro.





























Subproblema I
z
11
3
2
3
7
3
, , x x
1 2

Subprobl ema II
z 3 0 3 , , x x
1 2

Candidato a soluo
Subprobl ema III
z
7
2
1
3
2
, , x x
1 2

Candidato a soluo

Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
253

6. Tcnicas de Ramificao do Branch- and-Bound

Na maioria das ocasies as tcnicas de soluo so especializadas para os
inmeros tipos de problemas de programao inteira, desenvolvendo- se abordagens
e algoritmos especficos para cada situao. Apresentaremos agora duas tcnicas
exatas muitas empregadas na soluo de problemas de PLI. Um dos pontos
fundamentais para o sucesso do B&B a qualidade do limite ger ado pela soluo
inteira. Em vrias situaes esses limites podem ser alcanados atravs de
procedimentos heursticos. A qualidade do limite alcanado normalmente depende,
para cada problema, da estratgia de desdobramento da rvore de busca. Existem
basicamente duas grandes estratgias de diviso ou branch.
O B&b uma tcnica de ampla aplicao. A idia geral sujeita a inmeras
adaptaes e estratgias de implementao. Basicamente os aspectos envolvidos
so:

Tcnicas de desenvolvimento da rvore de enumerao:
- Busca em profundidade;
- Busca em largura;
- Variantes hbridas.

A figura 6 apresenta o aspecto das rvores desenvolvidas pela busca em
profundidade e pela busca em largura.
P
0
P
2
P
1
P
4
P
3
P
6
P
5
P
0
P
4
P
3
P
1
P
6
P
5
P
2
Busca em Profundidade Busca em Largura

Fi gura 6: Est rat gi as de di vi so




Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
254

Tcnicas de formao da rvore (escolha da varivel de diviso):
- Variante de Danki n (1960);
- Vari ant e de Lang e Doi ng (1965);
- Variante de Spi el berg (1968);
- Mtodo das penalidades (1965);
- Mtodo de Taha (1971)
- Estratgias Dinmicas (1976);
- Outras variantes.
Tcnicas complementares para obteno dos limites
- Relaxao Lagrangeana;
- Algoritmos heursticos (com uso de meta- heur st i cas);
- Cortes.
Variante de Dank
Esse autor prope que a varivel a ser escolhida para a diviso em um certo
nvel da rvore seja a que possuir o maior resduo em relao a soluo inteira, ou
seja, considerando que
~
x
j
seja a varivel que escolheremos para a diviso proposta
pela equao (1), ento:

]
( )
1
( ) { }
~
x x x e x x
j j j j j
Maximo (2)
Se a soluo cont nua do n a ser expandido se apresenta como na figura 7
(a), ento, pela proposta de Dank o n
~
x
j
ser x
2
, uma vez que possui um resduo
igual a 0, 75, maior que o de x
1
.
P
n
x
1
=7,25 x
2
=11,75
x
1
ou x
2
?
P
n
x
1
=7,25 x
2
=11,75
res (x
1
) = 0,25
res ( x
2
) = 0,75
(a) (b)

Figura 7: Estratgias de diviso de Dank








Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
255

Variante de Land e Doig
Essa abordagem sugere que a rvore de enumerao seja expandida em vrios valores
simultneos para a varivel de diviso, como mostra a figura 8.
P
n
x
1
=7,25 x
2
=11,75
(b)
x
2
x
1
x
2
12
x
2
= 11
x
2
10
(a)

Figura 8: Estratgias de diviso de Land e Doing


Variante de Spielberg
Desenvolve o n com maior valor de z

e o mais recentemente calculado,


usando o critrio de Land e Doig para aumentar a retirada de espao contnuo no
entorno do n pesquisado. Trata- se de uma busca em profundidade associada ao
critrio de Land e Doig.

Mtodo das Penalidades
Essa est rat gi a pode ser descri t a nos segui nt es passos:
wDetermina uma estimativa do decrscimo da funo objetivo quando
obrigamos as variveis a assumir valores inteiros;
wEscolhe o n na lista dos ns em aberto com a menor estimativa de
decrscimo (utiliza um pivoteamento associado a varivel
~
x
j
);
wAproveita as redues possveis quando a estimativa de decrscimo
ultrapassa o limite inferior corrente.









Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
256

Mtodo de Taha
A abordagem objetiva inspecionar os 2
n
vrtices do hipercubo unitrio
contendo a soluo tima do sub- probl ema de PL. Consi derando o probl ema P
0

abaixo descrito a estratgia de Taha buscar a soluo de um programa linear em
funo dos vrtices do hipercubo unitrio vizinho a
0
x .
0
a sujeito
Maximizar ) (
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

tem somente vrtices inteiros quando b


um vetor inteiro.
27) Uma fbrica de cermica produz 2 tipos de vasos(A e B) nas suas sees de
cozimento e pintura. Os tempos necessrios preparao de uma unidade de cada
tipo nas sees referidas, bem como a disponibilidade diria destas constam no
quadro segui nt e:
Tempo
Necessrio (h)
Tempo
Necessrio (h)

Seo Tipo A Tipo B Disponvel/Dia
Cozimento 3 1 4
Pintura 1 2 4




Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
292

O lucro unitrio da venda de A e B respectivamente 6 e 8 unidades monetrias:
a) Modelar o problema de programao linear inteira;
b) Aplicando-se o simplex a modelo acima se obtm o seguinte quadro timo:
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
Objetivando encontrar uma soluo ao problema de programao linear inteira, empregar o mtodo
dos cortes de Gomory.
(sugesto: Desenvolver o corte de Gomory em relao a varivel x
1
)
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
293

27) O gerente de informtica da Universidade do Estado de DED deseja habilitar o
acesso de cinco diferentes arquivos. Estes arquivos armazenados em dez discos
como mostrado na tabela abaixo:

1 2 3 4 5 6 7 8 9 10
Arq. 1 X X X X X X
Arq. 2 X X
Arq. 3 X X X X
Arq. 4 X X X
Arq. 5 X X X X X X X

A quantidade de armazenagem requerida em cada disquete : disco 1, 3K; disco 2,
5K; disco3, 1K; disco 4, 2K; disco 5, 1K; disco 6, 4K; disco 7, 3K; di sco 9, 2K;
di sco 10, 2K.
a)Formule uma Programao inteira que determine o conjunto de discos requeridos para
armazenar uma quantidade mnima de arquivos, tal que cada arquivo est no mnimo em
um dos discos. Para um dado disco, devemos armazenar nele o arquivo inteiro ou no
armazenar; no podemos armazenar o arquivo em parte do disco.
min 3x1 + 5x2 + x3 + 2x4 + x5 + 4x6 + 3x7 + x8 + 2x9 + 2x10
s.t.
x1 + x2 + x4 + x5 + x8 + x9 >= 1
x1 + x3 >= 1
x2 + x5 + x7 + x10 >= 1
x3 + x6 + x8 >= 1
x1 + x2 + x4 + x6 + x7 + x9 + x10 >= 1
x
i
{0, 1} i = 1,..., 10

b)Modifique sua formulao tal que se o disco 3 ou o disco 5 so usados, ento o disco 2 deve tambm ser
usado.
min 3x1 + 5x2 + x3 + 2x4 + x5 + 4x6 + 3x7 + x8 + 2x9 + 2x10
s.t.
x1 + x2 + x4 + x5 + x8 + x9 >= 1
x1 + x3 >= 1
x2 + x5 + x7 + x10 >= 1
x3 + x6 + x8 >= 1
x1 + x2 + x4 + x6 + x7 + x9 + x10 >= 1
x2 - x3 >= 0
x2 - x5 >= 0
x
i
{0, 1} i = 1,..., 10

Pesquisa Operacional / Captulo 6 / Programao Linear Inteira
294

Bi bl i ografi a
1) Scharage, L. , Opti mi zation Modeling with LINGO, LINDO SYSTEMS INC,
USA, 2
a
Edi t i on, 1999;
2) Scharage, L. , Optimization Modeling with LINDO, LINDO SYSTEMS INC,
USA, 5
a
Edi t i on, 1999;
3) Bazaraa et alli., Linear Programming and Network Flows . John Wiley Wiley
& Sons. Second Edit ion;
4) Arbel, A. Exploring Interior- Point Linear Programming, Algorithms and
Software , The MIT Press;
5) Puccini, A. L. et alli., Programao Linear, LTC;
6)Bregalda, P. F. et alli. , Introduo Programao Linear, Ed. Ca mpus;
7)Ramalhete, M. et alli. , Programao Linear, Vol I e II, Ed. McGraw- Hill;
8)Syslo, M. M. et alli. , Discrete Optimization Algorithms with Pascal Problems;
9)Lieberman et alli. , Introduo Pesquisa Operacional. Ed. Campus;
10)Bronson, R. , Pesquisa Operacional . Col eo Schaum.
11)Avriel, M. et alli. Mathematical Programming for Industrial Engineers .
Marcel Dekker, Inc. 1996.
12) Chvtal. V. Linear Programming, Freeman and Company, 1983.
13) Pinheiro, P. R., Uma Metodologia de Feixe e Benders Aplicada a um Problema Linear
Inteiro de Grande Porte, Tese de Doutorado, PESC/COPPE/UFRJ, 1998.
14) Clemente, N. Ao Mestre com Carinho, Revista Exame, n
o
. 4, ed. 682, ano 32, p. 56-58,
Editora abril, 1999.
15) Avriel, M., AND GOLANY, B., Mathematical Programming for Industrial Engineers, Marcel
Dekker, Inc.1996.
16) Winston, W. L., Operations Research, Applications and Algorithms ,
Duxbury- 1994.

Você também pode gostar