-
FACULDADE INTEGRADO DE CAMPO MOURO DEPARTAMENTO DE ENGENHARIA DE
PRODUO
CURSO DE ENGENHARIA DE PRODUO DISCIPLINA DE INTRODUO ENGENHARIA
DE PRODUO
PROFESSORA CELISE RODER
1. DUALIDADE
Em determinadas situaes, a quantidade de clculos necessria para
resolver um
modelo linear pelo mtodo Simplex pode ser reduzida. O modelo
inicial chamado Primal pode
ser substitudo por outro modelo chamado Dual, cuja soluo mais
rpida. Uma vez
conhecida a soluo do Dual, conhece-se em consequncia a soluo do
Primal, o que
resolve o problema.
Todo problema de programao linear, chamado Primal, possui um
segundo problema
associado chamado Dual. Ambos so completamente
inter-relacionados, de forma que a
soluo tima de um fornece informaes completas sobre o outro.
A cada modelo de programao linear com tendo coeficiente aij, bj
e cj corresponde um
outro modelo denominado Dual, formado por esses mesmos
coeficientes, porm dispostos de
maneira diferente.
O problema Dual, para modelos de programao linear na forma padro
(todas as
restries so desigualdades do tipo ), construdo a partir do
Primal da seguinte forma:
a) A funo-objetivo do dual de minimizao, ao passo que a do
primal de
maximizao.
b) Os termos constantes das restries do dual so coeficientes da
funo-objetivo
do primal.
c) Os coeficientes da funo-objetivo do dual so os temos
constantes das restries
do primal.
d) As restries do dual so do tipo , ao passo que as restries do
primal so do
tipo .
e) O nmero de incgnitas (variveis) do dual (m valores de yi)
igual ao nmero de
restries do primal.
f) O nmero de restries do dual igual ao nmero de incgnitas
(variveis) do
primal (n valores de xj).
g) A matriz dos coeficientes do dual a transposta da matriz dos
coeficientes do
primal.
h) As variveis de ambos os problemas so no-negativas.
-
Seja o problema Primal assim definido:
nnxcxcxcZMax .... 2211
Sujeito a:
),...,2,1(0
...
...
...
...
...
2211
222222121
111212111
njx
ybxaxaxa
ybxaxaxa
ybxaxaxa
j
mmnmnmm
nn
nn
Onde:
i nmero de linhas (m nmero de linhas)
j nmero de colunas (n nmero de colunas)
Associando-se a cada restrio i do primal uma varivel yi, o
problema dual assim
definido:
mmybybybDMin .... 2211
Sujeito a:
),...,2,1(0
...
...
...
...
...
2211
22222112
11221111
miy
cyayaya
cyayaya
cyayaya
i
nmmnnn
mm
mm
Exemplo: Seja o seguinte problema, que ser chamado de
Primal:
-
Max Z = 2X1 + 3X2 + X3
Sujeito a: 3X1 + 4X2 + 2X3 10
2X1 + 6X2 + X3 20
X1 X2 X3 30
X1 0; X2 0; X3 0
A obteno do Dual se processa da seguinte maneira: para cada
restrio ser
atribuda uma varivel de deciso (yi). A funo objetivo do Dual ser
de minimizao e cada
uma de suas parcelas ser o produto da varivel yi pelo termo da
direita da restrio
correspondente.
Cada varivel de deciso do Primal gera uma restrio no Dual. Neste
caso o sinal
ser , e o termo da direita ser o coeficiente da varivel Primal
na funo objetivo. Todas as
variveis do Dual sero no negativas. Assim, o Dual ser formulado
da seguinte maneira:
Min D = 10Y1 + 20Y2 + 30Y3
Sujeito a: 3Y1 + 2Y2 + Y3 2
4Y1 + 6Y2 - Y3 3
2Y1 + Y2 Y3 1
Y1 0; Y2 0; Y3 0
Devido a grande interligao existente entre os problemas dual e
primal de se
esperar que seja grande a relao entre as solues timas.
Existem algumas razes para o estudo dos problemas duais. A
primeira e mais
importante so as interpretaes econmicas que podemos obter dos
valores das variveis
do Dual na soluo tima, tais como variaes marginais. A segunda
est ligada ao nmero
de restries. O problema dual apresenta um nmero menor de
restries.
Computacionalmente falando , algumas vezes, mais eficiente
resolver o problema dual
(dependendo do nmero de restries e de variveis) do que o primal
correspondente, j que
obtendo a soluo tima de um estaremos obtendo a do outro.
-
** Como a soluo de um problema pode ser obtida pela soluo do
outro, em alguns
casos torna-se mais eficiente resolver o dual, j que grande
parte da dificuldade
computacional do Mtodo Simplex dependente do nmero de restries,
e no do nmero
de variveis.
Teoremas da Dualidade
Teorema I O dual do dual o primal.
21 25. xxZMax
Sujeito a:
0;0
)(92
)(4
)(3
21
321
22
11
xx
yxx
yx
yx
Primal
321 943. yyyDMin
Sujeito a:
0;0;0
)(22
)(5
321
232
131
yyy
xyy
xyy
Dual
Calculando o dual do dual, teremos novamente o primal.
21 25. xxZMax
-
Sujeito a:
0;0
92
4
3
21
21
2
1
xx
xx
x
x
Logo, o dual do dual o primal.
Teorema II - Se a restrio K do primal uma igualdade, ento a
varivel yK do dual sem
restrio de sinal (yK ser uma varivel livre). A restrio do tipo
igualdade pode tambm ser
substituda por duas outras variveis com sinais contrrios.
Sujeito a:
0;0
)(142
)(92
21
221
121
xx
yxx
yxx
Primal
Para o clculo do dual y1 ser uma varivel livre.
21 149. yyDMin
Sujeito a:
0;
222
5
21
21
21
ylivrey
yy
yy
Dual
Teorema III Se a varivel p do primal sem restrio de sinal
(varivel livre), ento a
restrio p do dual ser uma igualdade.
321 2. xxxZMax
21 25. xxZMax
-
Sujeito a:
0;;0
)(2043
)(102
321
2321
121
xlivrexx
yxxx
yxx
Primal
Para o clculo do dual, como x2 uma varivel livre, a restrio
correspondente ser uma
igualdade.
21 2010. yyDMin
Sujeito a:
0;0
2
142
13
21
2
21
21
yy
y
yy
yy
Dual
OBSERVAES:
* Se o objetivo de um problema maximizar, o do outro ser
minimizar, e vice-versa.
* O problema de maximizao tem restries do tipo e o problema de
minimizao
tem restries do tipo .
Existem duas maneiras de preparar o primal para se poder obter o
dual:
1) Transformando a funo-objetivo em maximizao e as restries em
(isto ,
inverter o sinal da restrio multiplicando toda a inequao por
-1). Em outras
palavras, deixar o problema primal com funo-objetivo de
maximizao e no
permitir que nenhuma de suas restries seja do tipo .
2) Deixar o problema primal com funo-objetivo de minimizao, e no
permitir que
nenhuma restrio seja do tipo . Em outras palavras, inverter o
sinal da restrio
multiplicando a inequao por 1.
Exemplo: Seja o seguinte problema primal.
321 25. xxxZMin
-
Sujeito a:
0;0;0
8423
9
4
321
321
32
1
xxx
xxx
xx
x
Mtodo Dual-Simplex
Em alguns caso pode-se resolver diretamente o Dual introduzindo
as variveis de
excesso e as variveis artificiais ao modelo de programao linear,
e ento, aplicar o mtodo
da Funo-Objetivo Auxiliar/Artificial.
Max Z = 2X1 + X2
Sujeito a: X1 + 5X2 + 2X3 10
X1 + 3X2 6
2X1 + 2X2 X3 30
X1 0; X2 0
Min D = 10Y1 + 6Y2 + 8Y3
Sujeito a: Y1 + Y2 + 2Y3 2
5Y1 + 3Y2 + 20Y3 1
Y1 0; Y2 0; Y3 0
O mtodo Dual-Simplex trata diretamente com solues compatveis
bsicas do primal
e piores que a soluo tima, procurando otimiz-lo. Ele est ao
mesmo tempo tratando
indiretamente com solues bsicas incompatveis do dual porm
melhores que a sua
soluo tima, procurando compatibiliz-lo.
O mtodo Dual-Simplex lida diretamente com solues bsicas
incompatveis porm
melhores que a tima, e procura achar a compatibilidade do
problema. Ele lida com um
problema exatamente como se o mtodo simplex estivesse sendo,
simultaneamente, aplicado
ao seu problema dual.
O mtodo Dual-Simplex bastante empregado em anlise de
sensibilidade, quando
so feitas pequenas modificaes no modelo. Alm disso, algumas
vezes mais fcil comear
com uma soluo bsica incompatvel, porm melhor que a tima e
procurar a
-
compatibilidade, do que obter uma soluo compatvel bsica inicial
e depois otimiz-la como
e faz no mtodo Simplex.
Resumo do Mtodo
Assumindo que a funo-objetivo de maximizao, o mtodo Dual-Simplex
envolver
as seguintes etapas:
a) Introduzir as variveis de folga e achar uma soluo bsica
inicial tal que todos os
coeficientes da linha da funo-objetivo (Z/D) do quadro inicial,
estando a funo-objetivo
somente em funo das variveis no bsicas, sejam 0. Se esta soluo
for compatvel
ento ela j a soluo tima.
b) Retirar da base aquela varivel que for mais incompatvel, isto
, aquela que tiver o
menor valor negativo (maior valor absoluto com sinal
negativo).
c) Introduzir na base aquela varivel cujo coeficiente na linha
da funo-objetivo atingir
zero mais rapidamente (menor valor absoluto) quanto um mltiplo
da equao contendo a
varivel que sai for somado linha da funo-objetivo.
d) Achar uma nova soluo bsica e colocar a funo-objetivo somente
em funo das
variveis no-bsicas. Se esta soluo for compatvel, isto , se todos
os valore bi (termo
independente) forem 0, ela a soluo tima. Caso contrrio, volte ao
passo (b).
As diferenas com relao ao mtodo Simplex se resumem nas regras de
entrada e
sada de variveis da base, que so as seguintes:
a) Varivel que sai: a varivel bsica com o valor mais negativo.
Se todas as variveis
bsicas tiverem valores positivos, a soluo tima.
b) Varivel que entra: escolhida entre as variveis fora da base,
da seguinte forma.
b1) Dividir os coeficientes do lado esquerdo da equao
Z-transformada pelos
correspondentes coeficientes negativos da equao da varivel que
sai;
b2) A varivel que entra a que tem o menor valor entre os
quocientes
encontrados (problemas de minimizao) ou o menos valor
absoluto
(problemas de maximizao).
Quando, em ambos os casos, no houver coeficientes negativos na
linha da varivel
que sai da base, o problema no tem soluo vivel.
Exemplo: Resolver o problema abaixo usando o mtodo
Dual-Simplex
-
Min D = 3Y1 + 4Y2 + 9Y3
Sujeito a: Y1 + Y3 5
Y2 + 2Y3 2
Y1 0; Y2 0; Y3 0
Analogia entre as Solues Primal e Dual
a) A cada soluo vivel bsica primal no tima corresponde uma soluo
bsica
invivel dual.
b) A cada soluo tima primal corresponde soluo tima dual com Z =
D.
c) O coeficiente da varivel de deciso na funo-objetivo primal o
valor da varivel
de folga correspondente na soluo dual.
d) O coeficiente da varivel de folga da funo-objetivo primal o
valor da varivel de
deciso correspondente na soluo dual. (Coeficiente de XFi = Valor
de Yi).
Como o primal o dual do prprio dual, vale o raciocnio no sentido
dual primal:
Coeficiente de Yi = Valor de XFi
Coeficiente de XFi = Valor de Xi
Exemplo:
Max Z = X1 + 2X2 + 3X3
Sujeito a: X1 + X2 + X3 10
2X1 + X2 + 4X3 12
X1 + 3X2 - X3 9
X1 0; X2 0; X3 0
-
Dado um problema de programao linear, podemos escolher entre
solucionar o
modelo primal ou o modelo dual correspondente. A escolha leva em
considerao o esforo
computacional, que depende do nmero de restries, variveis
artificiais, etc.
O modelo dual correspondente :
Min D = 10Y1 + 12Y2 + 9Y3
Sujeito a: Y1 + 2Y2 + Y3 1
Y1 + Y2 + 3Y3 2
Y1 + 4Y2 - Y3 3
Y1 0; Y2 0; Y3 0
Colocando as variveis de folga no primal, temos:
Z -X1 -2X2 -3X3 = 0
X1 +X2 +X3 +X4 (XF1) = 10
2X1 +X2 +4X3 +X5(XF2) = 12
X1 +3X2 -X3 +X6(XF3) = 9
Soluo Bsica Inicial Vivel
V.B. Z X1 X2 X3 X4 X5 X6 T.I
Z 1 -1 -2 -3 0 0 0 0
X4 0 1 1 1 1 0 0 10
X5 0 2 1 4 0 1 0 12
X6 0 1 3 -1 0 0 1 9
Soluo Bsica Inicial:
Z = 0
X1 = 0
X2 = 0
X3 = 0
X4 = 10
X5 = 12
-
X6 = 9
Colocando as variveis de folga no dual temos:
Max (-D )= -10Y1 - 12Y2 - 9Y3
Sujeito a: -Y1 - 2Y2 - Y3 -1
- Y1 - Y2 - 3Y3 -2
- Y1 - 4Y2 + Y3 -3
Y1 0; Y2 0; Y3 0
-D +10Y1 +12Y2 +9Y3 = 0
-Y1 -2Y2 -Y3 +Y4 (YF1) = -1
-Y1 -Y2 -3Y3 +Y5(YF2) = -2
-Y1 -4Y2 +Y3 +Y6(YF3) = -3
Soluo Bsica Inicial Vivel
V.B. D Y1 Y2 Y3 Y4 Y5 Y6 T.I
D -1 10 12 9 0 0 0 0
Y4 0 -1 -2 -1 1 0 0 -1
Y5 0 -1 -1 -3 0 1 0 -2
Y6 0 -1 -4 1 0 0 1 -3
Soluo Bsica Inicial:
D = 0
Y1 = 0
Y2 = 0
Y3 = 0
Y4 = -1
Y5 = -2
Y6 = -3
Correspondncia Primal Dual
-
PRIMAL DUAL
Coeficiente de X1 = -1
Coeficiente de X2 = -2
Coeficiente de X3 = -3
Coeficiente de X4 = 0 (XF1)
Coeficiente de X5 = 0 (XF2)
Coeficiente de X6 = 0 (XF3)
Valor de Y4 = -1 (YF1)
Valor de Y5 = -2 (YF2)
Valor de Y6 = -3 (YF1)
Valor de Y1 = 0
Valor de Y2 = 0
Valor de Y3 = 0
COEFICIENTE NA FUNO-OBJETIVO TERMO INDEPENDENTE
Valor de X1= 0
Valor de X2 = 0
Valor de X3 = 0
Valor de X4 =10 (XF1)
Valor de X5 = 12 (XF2)
Valor de X6 = 9 (XF3)
Coeficiente de Y4 = 0 (YF1)
Coeficiente de Y5 = 0 (YF2)
Coeficiente de Y6 = 0 (YF3)
Coeficiente de Y1 = 10
Coeficiente de Y2 = 12
Coeficiente de Y3 = 9
TERMO INDEPENDENTE COEFICIENTE NA FUNO-OBJETIVO
Z = 0 D = 0
O quadro a seguir fornece a soluo tima do modelo primal.
V.B. Z X1 X2 X3 X4 X5 X6 T.I
Z 1 1,077 0 0 0 0,846 0,385 13,615
X4 0 0,154 0 0 1 -0,308 -0,231 4,231
X3 0 0,385 0, 1 0 0,231 -0,077 2,077
X2 0 0,461 1 0 0 0,077 0,308 3,692
Soluo tima do modelo primal:
Variveis Bsicas Variveis No-Bsicas Valor de Z
X2 = 3,692 (Y5) X1 = 0 (Y4) Z = 13,615
X3 = 2,077 (Y6) X5 = 0 (Y2)
X4 = 4,231 (Y1) X6 = 0 (Y3)
Relembrando:
-
- Cada varivel de deciso primal equivale a uma varivel de folga
dual; e
- Cada varivel de folga primal equivale a uma varivel de deciso
dual.
X1 = Y4 X4 = Y1 Z = D
X2 = Y5 X5 = Y2
X3 = Y6 X6 = Y3
Usando a correspondncia descrita anteriormente, podemos montar o
quadro de
soluo tima do dual.
V.B. D Y1 Y2 Y3 Y4 Y5 Y6 T.I
D -1 4,231 0 0 0 3,692 2,077 -13,615
Y4 0 0 0 1 1,077
Y2 0 1 0 0 0,846
Y3 0 0 1 0 0,385
Soluo tima do modelo dual:
Variveis Bsicas Variveis No-Bsicas Valor de D
Y4 = 1,077 Y1 = 0 D = -13,615
Y2 = 0,846 Y5 = 0
Y3 = 0,385 Y6 = 0
. PROGRAMAO INTEIRA
Um problema de programao inteira um problema de programao linear
com o
requisito adicional de que o valor de uma ou mais variveis de
deciso sejam nmeros inteiros.
Esses problemas podem apresentar dois tipos bsicos:
Programao Inteira Total todas as variveis de deciso so do tipo
inteiro.
Programao Inteira Mista apenas uma parte das variveis so do tipo
inteiro,
enquanto outras so do tipo real.
-
A todo problema de programao linear inteira est associado um
problema com a
mesma funo-objetivo e as mesmas restries, com exceo da condio de
variveis
inteiras. A este problema se d o nome de Problema Relaxado.
Maximizar Z = 3X1 + 3X2
Sujeito a:
2X1 + 4X2 12
6X1 + 4X2 24
X1 0; X2 0
X1 e X2 inteiros
Programao Linear Inteira
Maximizar Z = 3X1 + 3X2
Sujeito a:
2X1 + 4X2 12
6X1 + 4X2 24
X1 0; X2 0
Problema Relaxado/Programao Linear
A primeira idia que pode vir mente a de resolver o problema como
se fosse um
problema de programao linear e truncar os valores timos
encontrados para cada uma das
variveis de deciso. Para problemas de grande porte, isso
geralmente resultar numa
soluo aceitvel (prxima ao timo real) sem a violao de nenhuma
restrio. Para
problemas menores, este tipo de procedimento geralmente nos
levar a solues inaceitveis,
s vezes longe do valor timo.
Em conseqncia, a primeira aproximao da soluo de qualquer
problema de
programao inteira pode ser obtida ignorando-se o requisito de
valores inteiros e resolvendo-
se o problema de programao linear resultante por meio de uma das
tcnicas de
programao linear j conhecidas.
-
Se acontecer da soluo tima ao problema de programao linear ser
inteira, ento
esta soluo tambm soluo tima ao problema de programao inteira
original. Caso
contrrio, e esta a situao usual, pode-se arredondar os
componentes da primeira
aproximao aos valores inteiros viveis mais prximos e obter uma
segunda aproximao.
Este procedimento freqentemente posto em prtica, especialmente
quando a primeira
aproximao envolve grandes nmeros, mas pode ser impreciso quando
os nmeros so
pequenos.
Diversos so os problemas que podem ocorrer pela utilizao da
tcnica de
arredondamento da soluo do problema de programao linear. Entre
eles podemos citar:
Nenhum ponto inteiro vizinho ao ponto timo necessariamente
vivel.
Mesmo que um dos vizinhos seja vivel ele pode no ser
necessariamente o
ponto timo inteiro.
A programao linear inteira possibilita resolver problemas que no
seriam
adequadamente resolvidos pela Programao Linear, visto exigirem
valores inteiros como
resposta.
Uma idia que pode resultar em uma soluo para um problema de
programao
inteira o de se enumerar todas as possveis solues. De forma
exaustiva todos os valores
possveis para a funo-objetivo so calculados e escolhido aquilo
que apresenta o maior
valor, no caso de maximizao, ou o menor valor, no caso de
minimizao.
O problema est no fato de que ela s consegue ser aplicada a
problemas pequenos.
O nmero de combinaes possveis cresce de forma exponencial, isto
, de forma muito
rpida.
Em um problema de MAXIMIZAO, o valor timo da funo-objetivo do
problema
relaxado sempre representa um limite superior ao respectivo
valor do problema inteiro. Em
um problema de MINIMIZAO, o valor timo da funo-objetivo de um
problema relaxado
sempre representa um limite inferior ao respectivo problema
inteiro.
Uma outra observao importante est no fato de que cada soluo
vivel resulta num
problema de maximizao, em um limite inferior para o valor timo
da funo-objetivo. Em um
problema de minimizao cada soluo vivel resulta num limite
superior para o valor timo
da funo-objetivo.
Por exemplo, em um modelo de aquisio de equipamentos (mquinas,
caminhes,
navios, etc.) o resultado somente pode ser inteiro e a
alternativa de se resolver o problema
pela programao linear com posterior arredondamento no produz um
resultado timo, caso
os valores timos das variveis sejam pequenos. Assim, se o
resultado de um modelo implicar
a aquisio de 2,6 tratores, 1,6 caminhes e 3,2 mquinas de
beneficiamento, o
arredondamento pode levar a uma soluo no tima. O mesmo problema,
se resolvido pela
tcnica de programao linear inteira, pode levar a resultados
bastante diferentes do
-
arredondamento. Por outro lado, se o resultado de um problema de
programao linear
implicar valores grandes, o arredondamento pode ser feito sem
nenhum receio. Assim, se um
modelo mostrar como soluo que uma empresa deve fabricar 254,8
caixas por semana, o
arredondamento para 255 certamente o resultado timo, mesmo se o
problema for resolvido
por programao linear inteira.
De maneira geral, o problema passvel de soluo por programao
inteira deve
apresentar as seguintes caractersticas:
a) Funo-objetivo linear;
b) Restries lineares;
c) Variveis positivas;
d) Algumas (ou todas) variveis inteiras.
Quando o problema envolve apenas duas variveis de deciso, a
soluo tima de um
problema de programao linear inteira pode ser encontrada
graficamente. Diversos
algoritmos so utilizados para a soluo de problemas de programao
linear inteira, dentre
eles podemos citar: o algoritmo Branch-and-Bound (algoritmo da
bifurcao e limite), o
algoritmo de Gomory (algoritmo de corte), o algoritmo de
transportes, os modelos de
designao, entre outros.
4.1. Mtodo Branch-and-Bound (Algoritmo de Bifurcao e Limite)
O mtodo denominado de Branch-and-Bound baseia-se na idia de
desenvolver uma
enumerao inteligente dos pontos candidatos soluo tima 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 de otimalidade da soluo
utiliza-se de limites calculados
ao longo da enumerao.
4.1.1. Bifurcao
Se a primeira aproximao contm uma varivel no inteira, por
exemplo, xj ento i1
xj i2, onde i1 e i2 so inteiros consecutivos e no negativos.
Dois novos modelos de
programao inteira so ento criados aumentando o problema de
programao inteira
original com a restrio xj i1 ou com a restrio xj i2. Este
processo chama-se
BIFURCAO, e tem o efeito de contrair a regio vivel de um modo
que elimina de
-
consideraes posteriores a soluo corrente no inteira para xj
preservando ainda todas as
possveis solues inteiras do problema original.
Obtm-se as primeiras aproximaes dos dois modelos de programao
inteira
gerados pelo processo de bifurcao, ignorando-se novamente os
requisitos sobre valores
inteiros, e resolvendo-se os modelos de programao linear
resultantes. Se alguma das
primeiras aproximaes continua a ser no inteira, ento o problema
de programao inteira
originado por esta primeira aproximao torna-se candidato a uma
bifurcao adicional.
4.1.2. Limite
Admita-se que a funo-objetivo deva ser maximizada. A bifurcao
continua at ser
obtida uma primeira aproximao inteira (que uma soluo ao problema
de programao
inteira). O valor da funo objetivo referente a esta primeira
aproximao inteira torna-se um
limite inferior para o problema e, todos os modelos, cujas
primeiras aproximaes, inteiras ou
no, conduzam a valores da funo objetivo menores que o limite
inferior, so descartados.
O processo de bifurcao prossegue a partir dos modelos de
programao com
primeiras aproximaes no inteiras que produzam valores da
funo-objetivo maiores que o
limite inferior. Se durante o processo, for descoberta uma nova
soluo inteira dando funo-
objetivo um valor superior ao limite inferior corrente, ento
esse valor da funo objetivo torna-
se o novo limite inferior. O modelo de programao que conduziu ao
antigo limite inferior
eliminado, bem como o so todos os modelos de programao cujas
primeiras aproximaes
dem funo objetivo valores menores que o novo limite inferior. O
processo de bifurcao
prossegue at que no haja mais modelos com primeira aproximao no
inteira a considerar.
Neste ponto, a soluo correspondente ao limite inferior corrente
a soluo tima do
problema de programao inteira original.
Se a funo-objetivo deve ser minimizada, o procedimento permanece
o mesmo,
exceto que sero utilizados limites superiores. Assim, o valor da
primeira soluo inteira torna-
se o limite superior do problema e os modelos de programao so
eliminados quando os
valores de Z de suas primeiras aproximaes so maiores que o
limite superior corrente.
Exemplo:
Maximizar Z = 10X1 + X2
-
Sujeito a 2X1 + 5X2 11
X1 e X2 no negativos e inteiros
Utilizando o mtodo grfico para calcular o Modelo (1) obtemos
como soluo X1 =
5,5 e X2 = 0 com Z = 55.
Como no obtemos uma varivel inteira na primeira aproximao (X1 =
5,5), ento
partimos para o processo de bifurcao. Tendo em vista que 5 X1 6,
a bifurcao origina
dois novos modelos de programao inteira.
Modelo 2
Maximizar Z = 10X1 + X2
Sujeito a 2X1 + 5X2 11
X1 5
X1 e X2 no negativos e inteiros
Modelo 3 Maximizar Z = 10X1 + X2
Sujeito a 2X1 + 5X2 11
X1 6
X1 e X2 no negativos e inteiros
Utilizando o mtodo grfico para calcular os modelos (2) e (3)
verificamos que no
podemos obter no modelo (2) uma varivel inteira (X2 = 0,2) e o
modelo (3) no apresenta
regio vivel de soluo. Logo o modelo (2) candidato a nova
bifurcao.
Como X2 = 0,2 temos:
0 X2 1
-
Acrescentamos ento duas novas restries (X2 0 e X2 1) nos dois
novos modelos
de programao inteira.
Modelo 4
Maximizar Z = 10X1 + X2
Sujeito a 2X1 + 5X2 11
X1 5
X2 0
X1 e X2 no negativos e inteiros
Modelo 5
Maximizar Z = 10X1 + X2
Sujeito a 2X1 + 5X2 11
X1 6
X2 1
X1 e X2 no negativos e inteiros
Utilizando o mtodo grfico para calcular os modelos (4) e (5)
obtemos as seguintes
solues:
Modelo (4): X1 = 5; X2 = 0 e Z = 50
Modelo (5): X1 = 3; X2 = 1 e Z = 31
Ambas as solues apresentam todas as variveis inteiras. De acordo
com a teoria,
quando obtemos uma primeira aproximao inteira (que uma soluo ao
problema de
programao inteira), o valor da funo objetivo desta primeira
aproximao torna-se um limite
inferior para o problema, devendo ser descartados todos os
modelos que conduzam a valores
da funo objetivo menores que o limite inferior. Logo o modelo 5
foi eliminado por causa do
limite inferior.
-
Diagrama esquemtico dos resultados
O problema de programao inteira original est designado por um 1
no interior de um
circulo e todos os demais modelos de programao formados por
bifurcaes so designados,
por ordem de sua criao, por meio de nmeros inteiros no interior
dos crculos. Assim, os
modelos de programao so designados, respectivamente, pelos
nmeros 2 a 5 no interior
dos crculos. A soluo de primeira aproximao de cada um dos
modelos de programao
est escrita ao p do crculo que designa o modelo. Cada crculo
(modelo de programao)
ento conectado por uma reta ao crculo (modelo de programao) que
o gerou pelo processo
de bifurcao. A nova restrio que definiu a bifurcao escrita acima
da reta. Finalmente,
assinala-se o crculo com uma cruz se o modelo de programao
correspondente deva ser
eliminado de consideraes posteriores. Assim, o ramo 3 foi
eliminado por no ser vivel. O
ramo 5, foi eliminado por causa do limite inferior. Tendo em
vista que no se deixou de
1
Z = 55
(5,5;0)
3
No
vivel
2
Z =50,2
(5;0,2)
5
Z = 31
(3;1)
4
Z = 50
(5;0) X1 5
X2 0
X1 6
X2 1
-
considerar nenhum ramo com soluo inteira, o diagrama esquemtico
indica que o modelo
de programao 1 foi resolvido com X1 = 5, X2 = 0 e Z = 50
5. RESOLVENDO PROBLEMAS DE PROGRAMAO LINEAR NO EXCEL
5.1 Instalando o Solver
Caso a opo Solver no esteja presente no menu Ferramentas, isto
porque a
ferramenta Solver no foi instalada. Para instal-la proceda da
seguinte maneira:
- No menu Ferramentas, clique em Suplementos. Se o solver no
estiver listado na caixa
de dilogo, clique em Procurar e localize a unidade de arquivo
para o suplemento
Solver.xla (Geralmente localizado na pasta Biblioteca\Solver) ou
execute o programa
de instalao se no conseguir localizar o arquivo.
- Na caixa de dilogo Suplementos, marque a caixa de seleo
Solver.
Os suplementos que voc selecionar na caixa de dilogo permanecero
ativos at que
voc os remova.
-
5.2. Definindo e Resolvendo um Problema de Programao Linear no
Excel
Inicialmente, devemos definir o problema na planilha do Excel. A
mgica da modelagem de
um problema de programao linear em uma planilha eletrnica est na
maneira como arrumamos
as clulas.
Primeiramente devemos designar uma clula para representar cada
uma das seguintes
entidades:
- Funo-Objetivo (Expresso a ser Maximizada ou Minimizada)
- Variveis de Deciso (Variveis que o modelador pode alterar seu
valor)
- Para cada restrio:
- Uma para o lado esquerdo da restrio LHS (Left Land Side)
- Uma para o lado direito da restrio RHS (Right Land Side)
Para que possamos definir cada uma das clulas necessitamos
inserir uma srie de
parmetros do problema, tais como todos os coeficientes das
restries e da funo-objetivo.
Para lembrar o que cada clula representa aconselhvel a colocao
de ttulos que
especifiquem o contedo de cada clula (clula com texto).
Precisamos agora avisar ao Excel quais so as clulas que
representam a nossa funo-
objetivo, as variveis de deciso, as restries do modelo e,
finalmente, mandar o Excel resolver
para ns. Isto feito utilizando-se a Ferramenta (Solver) do
Excel.
Para tal, clique com o boto esquerdo do mouse sobre o nome
Ferramentas na barra de
menu e clique em Solver.
Aps este procedimento aparecer na tela uma janela, onde devero
ser informadas ao
software as clulas que representaro a funo-objetivo, as variveis
de deciso e as restries.
Na parte superior da janela aparece um campo para a entrada de
dados chamado Clula-
Alvo (Target Cell) que deve representar o valor da
funo-objetivo. Existem duas maneiras para
designar esta clula:
- A primeira clicar sobre o cone que est do lado direito do
campo;
- A segunda digitar o nome da clula no campo.
Na linha seguinte so apresentadas as opes de maximizar,
minimizar e atingir valor.
Dependendo do problema devemos clicar o mouse sobre uma das
trs.
Na prxima linha h um campo denominado Clulas Variveis (Changing
Cells). Neste
campo sero inseridas as clulas que representaro as variveis de
deciso.
Os valores podem ser inseridos da mesma maneira como no caso da
funo-objetivo, isto
, clicando sobre o cone direita do campo e marcando as clulas
escolhidas ou simplesmente
digitando seus nomes utilizando as regras do Excel para tal.
-
O prximo passo designar as restries do problema. Devemos inserir
uma restrio de
cada vez.
Para inserir a primeira restrio devemos clicar no boto Add
(Adicionar) para aparecer uma
janela de entrada de restries.
A janela de restries tem trs campos, que representam o LHS Cell
Reference (
esquerda), o sinal da restrio (ao centro) e o RHS Constraint (
direita).
No necessria a introduo de variveis de folga/excesso, j que o
Excel far isto de uma
forma automtica.
O passo seguinte ser o de clicar no boto OK, no caso de no haver
nenhuma outra
restrio, ou Add para confirmar esta restrio e abrir espao para
uma nova entrada. Ao final da
entrada de todas as restries, devemos acrescentar as restries de
no-negatividade, isto ,
quais variveis de deciso no so negativas.
Existem duas maneiras de colocar estas restries no modelo:
- A primeira simplesmente criar restries dizendo que cada
varivel deve ser maior ou igual
a zero e adicionar a restrio.
- A segunda alternativa para introduzir as variveis de
no-negatividade atravs da opo
do Solver. Para poder utiliz-la, devemos clicar no boto Options
(Opes) na janela de
parmetros, contendo as opes da ferramenta Solver do Excel. Para
incluir esta opo
basta marcar o check Box ao lado da opo Assume Non-Negative
(Assumir no-nagativos)
A ltima caracterstica do modelo que deve ser implementada a de
Programao Linear.
Isto feito na mesma janela de opes. Basta marcar a opo Assume
Linear Model (Assumir
modelo linear), bem acima da opo de no-negatividade. Para sair
da janela basta clicar sobre o
boto OK da janela e isto levar de volta para a janela de
parmetros.
Uma vez inserido o modelo e suas caractersticas, devemos
efetivamente resolve-lo. Para
tanto basta clicar no boto Solver (Resolver) na janela dos
parmetros da ferramenta Solver do
Excel.
Exemplo
Maximizar Z = 2X1 + 3X2
Sujeito a:
X1 + 5X2 15
X1 + 3X2 7
-
2X1 + 2X2 9
X1 0; X2 0
5.3. Anlise de Sensibilidade
Uma das hipteses dos problemas de programao linear a considerao
de certeza nos
coeficientes e constantes. Isto , a soluo otimizada dependente
dos coeficientes da funo-
objetivo (geralmente lucro, receita ou custo unitrio) e dos
coeficientes e constantes das restries
(geralmente necessidades por produto e disponibilidade de um
recurso).
No mundo real, quase nunca temos certeza destes valores;
portanto, devemos saber o
quanto a soluo otimizada est dependente de uma determinada
constante ou coeficiente. Se
observarmos uma alta dependncia, devemos tomar um grande cuidado
na determinao da
mesma.
Para amenizar essa hiptese realizamos uma anlise ps-otimizao
verificando as
possveis variaes, para cima e para baixo, dos valores dos
coeficientes da funo-objetivo, dos
coeficientes e das constantes das restries, sem que a soluo tima
(X1, X2... Xn) seja alterada.
Este estudo denominado Anlise de Sensibilidade.
Em uma anlise de sensibilidade deveremos responder basicamente a
trs perguntas:
Qual o efeito de uma mudana num coeficiente da
funo-objetivo?
Qual o efeito de uma mudana numa constante de uma restrio?
Qual o efeito de uma mudana num coeficiente de uma restrio?
Existem dois tipos bsicos de anlise de sensibilidade. O primeiro
estabelece limites
inferiores e superiores para todos os coeficientes da
funo-objetivo e para as constantes das
restries. Este estudo efetuado automaticamente pelo Excel,
considerando a hiptese de apenas
uma alterao a cada momento. O segundo verifica se mais de uma
mudana simultnea em um
problema altera a sua soluo tima. Neste caso, este estudo no
realizado automaticamente
pelo Excel por se um estudo mais complexo. A maneira mais
simples para se realizar este estudo,
em problemas de pequeno e mdio porte, o de se realizar alteraes
na modelagem do problema
e encontrar sua nova soluo realizando uma nova otimizao.
Maximizar Z = 5X1 + 2X2
Sujeito a:
4X1 + X2 10
-
X1 + 2X2 9
X1 0; X2 0
Onde X1 e X2 representam as quantidades dos produtos P1 e P2. Os
recursos R1 e R2 tm
disponibilidade de 10 e 9 unidades respectivamente. Os lucros
unitrios so 5 e 2 respectivamente
para P1 e P2. Os coeficientes de X1 e X2 nas restries
representam os usos dos recursos R1 e R2
por unidade dos produtos P1 e P2. Vamos verificar as conseqncias
das variaes desses dados.
Considerando o problema acima, sua modelagem no Excel e os
parmetros e opes do
Solver utilizado para resolv-lo. Aps o comando de otimizao ter
sido dado, ou seja, clicamos no
boto OK de maneira que a soluo otimizada seja inserida
automaticamente na planilha. Os
resultados sero inseridos automaticamente na planilha utilizada
na modelagem.
Para obtermos os relatrios, devemos marc-los, clicando com o
mouse nos trs relatrios
disponveis. Vale notar o aparecimento de diversas planilhas, uma
para cada relatrio pedido.
Existem trs relatrios gerados pelo Excel. So eles: Relatrio de
Respostas;Relatrio de
Sensibilidade; e Relatrio de Limites.
-
5.3.1. Relatrio de Respostas
Devemos salientar que algumas legendas so automaticamente
inseridas pelo Excel. Estas
legendas podem ser alteradas facilmente pelo modelador, bastando
editar a clula desejada.
A figura a seguir mostra o Relatrio de Respostas do problema que
acabamos de modelar.
Este primeiro relatrio o de mais simples compreenso. O relatrio
tem trs partes
distintas. A primeira parte, denominada Clula-Alvo (Clula de
Destino), indica o tipo de problema
de otimizao tratado (maximizao ou minimizao) e o valor original
(valor inicial) e final da
funo-objetivo, bem como a clula que foi utilizada para
represent-la.
A segunda parte do relatrio relativo s variveis de deciso,
denominada Clulas
Ajustveis Esta parte anloga a primeira parte. Ela apresenta os
valores iniciais e finais das
variveis de deciso e as clulas utilizadas para defini-las.
A terceira parte diz respeito s restries. A coluna das clulas
indica as clulas utilizadas
pelo LHS (Left Hand Side) de cada uma das restries. A coluna de
valores das clulas indica os
valores das constantes (RHS) de cada uma das restries. A coluna
Frmulas indica cada uma das
-
frmulas utilizadas nas restries. As colunas de Status e de
Transigncia so as que no so de
compreenso direta.
A coluna Status pode apresentam dois valores: Agrupar e Sem
Agrupar. Quando o valor
desta coluna relativo a uma restrio apresentar o valor Agrupar
significa que o LHS tem o mesmo
valor do RHS quando so substitudos os valores da soluo tima no
lado esquerdo da
restrio.Quando esta igualdade no acontecer, o valor apresentado
ser de Sem Agrupar.
O mais importante est na interpretao desta igualdade. Quando a
igualdade existe, o lado
direito e esquerdo da restrio so iguais na soluo tima,
significando que todo o recurso
disponvel (RHS) foi consumido, isto , a varivel de folga ou
excesso (Transigncia) tem valor zero.
A coluna Transigncia indica a diferena entre o LHS e o RHS de
cada uma das restries.
Por definio, restries que tenha o status Agrupar dever
apresentar valor na coluna Transigncia
igual a zero. As restries com valor Sem Agrupar apresentam algum
valor positivo, que a
diferena entre a disponibilidade do recurso e o que ser
efetivamente utilizado caso a soluo
tima seja implantada.
5.3.2. Relatrio de Limites
O relatrio de limites do problema em estudo apresentado a
seguir.
-
Este relatrio apresenta duas partes. A primeira na parte
superior, relativa funo-objetivo,
e a outra na parte inferior, relativa s variveis de deciso. A
parte superior de interpretao direta
e apresenta a clula utilizada para representar a funo-objetivo e
o seu valor na soluo tima.
A parte inferior do relatrio necessita de esclarecimentos. O
lado esquerdo apresenta as
clulas utilizadas para representar as variveis de deciso e seus
valores na soluo tima. O lado
direito (4 ltimas colunas) diz respeito variao possvel dos
valores das variveis de deciso. Os
limites inferiores significam os menores valores que estas
variveis de deciso podem assumir
(mantidas todas as outras como constantes) sem que nenhuma
restrio deixe de ser satisfeita. A
coluna seguinte indica o valor da funo-objetivo, caso cada
varivel de deciso em questo
assuma o limite inferior e todas as outras permaneam constantes.
As duas colunas seguintes so
de interpretao anloga. A nica diferena que ao invs de
encontrarmos os menores valores,
encontraremos os maiores valores.
5.3.3. Relatrio de Sensibilidade
A figura a seguir apresenta o relatrio de anlise de
sensibilidade do problema em estudo.
-
Este relatrio divido em duas partes. A primeira refere-se s
mudanas que possam
ocorrer nos coeficientes das variveis de deciso da
funo-objetivo. A outra parte mostra as
possveis alteraes que as constantes das restries podem
sofrer.
Na primeira coluna so apresentadas as clulas que representam as
variveis de deciso e
os LHS das restries, enquanto na terceira coluna so apresentados
os valores aps a otimizao.
A quarta coluna contm os valores das variveis de deciso e de
folga/excesso do problema dual
(Custo Reduzido e Preo-Sombra).
Preo-Sombra
- A quantidade pela qual a funo-objetivo altera dado um
incremento de uma unidade na
constante da restrio, assumindo que todos os outros coeficientes
permaneam
constantes.
- A interpretao econmica seria at quanto estaramos dispostos a
pagar por uma unidade
adicional de um recurso.
O Excel reporta o valor do preo-sombra como um valor positivo ou
zero ou negativo.
Se o preo-sombra for positivo, um incremento de uma unidade na
constante da restrio
resulta num aumento do valor de funo-objetivo. Se o preo-sombra
for negativo, um incremento
de uma unidade na constante da restrio resulta na diminuio do
valor da funo-objetivo. Como
comentado anteriormente, o valor do preo-sombra permanecer
constante desde que o valor da
-
constante fique no intervalo descrito pelas duas ltimas colunas
(Permissvel Acrscimo e
Permissvel Decrscimo).
Enquanto o valor da constante (RHS) permanecer no intervalo de
variao, o conjunto de
variveis bsicas no se altera, isto , as variveis com valores
diferentes de zero (as variveis
bsicas geralmente tem valor diferentes de zero) continuam com um
valor diferentes de zero.
O preo-sombra de uma restrio do tipo Sem Agrupar tem que ser
zero, uma vez que
existem recursos disponveis no sendo utilizados; portanto, sem
valor marginal.
Devemos observar que uma restrio do tipo menor ou igual
abrandada pelo incremento
de uma unidade, enquanto restries do tipo maior ou igual o pelo
decremento de uma unidade.
Analogamente, uma restrio do tipo menor ou igual se torna mais
restritiva pelo decremento de
uma unidade, e a do tipo maior ou igual pelo incremento de uma
unidade.
O valor absoluto do preo-sombra pode ento ser visto como o valor
que a funo-objetivo
melhorada no caso de um abrandamento na restrio, isto , um
incremento de uma unidade na
restrio do tipo menor ou igual ou um decremento de uma unidade
na restrio do tipo maior ou
igual.
Analogamente, o valor absoluto do preo-sombra pode ento ser
visto como o valor da
funo-objetivo que piorado no caso de uma restrio se tornar mais
restritiva, isto , um
incremento de uma unidade na restrio do tipo maior ou igual, ou
um decremento de uma unidade
na restrio do tipo menor ou igual.
Custo Reduzido
Existem duas interpretaes bsicas para o Custo Reduzido:
- A quantidade que o coeficiente da funo-objetivo de uma varivel
original deve melhorar
antes desta varivel se tornar bsica.
- A penalizao que dever ser paga para tornar uma varivel
bsica.
Os Custos Reduzidos so as variveis de folga ou excesso do
problema dual. Portanto, se
uma varivel do problema original for maior que zero, o valor da
varivel do dual relacionada ser
zero, isto , o valor do custo reduzido ser zero.
Como os valores do Custo Reduzido esto ligados aos coeficientes
da funo-objetivo
(lembrando que os coeficientes da funo-objetivo do problema
Primal se tornam as constantes das
restries do problema Dual), as colunas Permissvel Acrscimo e
Permissvel Decrscimo dos
coeficientes formam um intervalo no qual os coeficientes podem
sofrer alteraes (desde que
apenas um dos coeficientes se altere) sem que a soluo tima seja
alterada.
5.4. Exerccios
-
1) Uma pequena empresa produz psteres de bandas de Rock. Ela
fabrica quatro tipos de psteres,
que diferem em tamanho e nas cores utilizadas. A empresa
conseguiu uma impressora para
produzir os psteres. Cada pster deve ser impresso, cortado e
dobrado. O tempo (em minutos)
para fazer isso para os quatro tipos de psteres e o lucro
unitrio de:
Tipo de Pster Impresso Corte Dobragem Lucro
A 1 2 3 1
B 2 4 2 1
C 3 1 5 1
D 3 3 3 1
Disponvel 15000 20000 20000
Pede-se:
a) Construir o modelo matemtico para o problema de programao
linear.
b) Determinar as quantidades timas produzidas e o lucro projeto
utilizando a ferramenta
Solver do Excel.
c) Com base no relatrio de sensibilidade, determine quanto a
empresa est disposta a pagar
por tempo extra de impresso, de corte e de dobragem?
2) As Indstrias Barbieri fabricam os Produtos 1 e 2. As empresas
conseguem vender todos os
produtos. Cada produto passa por trs departamentos e os tempos
de fabricao requeridos
encontram-se na tabela a seguir:
Tempo de fabricao em horas por unidade
Departamento A Departamento B Departamento C
Produto 1 2 1 4
Produto 2 2 2 2
Cada departamento, entretanto, tem uma capacidade fixa de
homens-hora por ms, como
mostra a tabela a seguir.
Departamento Capacidade mxima em homens-hora
A 160
-
B 120
C 280
A margem de contribuio do Produto 1 de $1,00 por unidade e a do
Produto 2 de $1,50
por unidade.
O problema consiste em determinar quanto fabricar de cada
produto com o objetivo de
maximizar a margem de contribuio total (MCT).
Pede-se:
1) Elaborar o modelo do problema.
2) Resolver o problema utilizando a Ferramenta Solver do
Excel.
3) Analisar os relatrios de reposta, limites e sensibilidade e
responder as seguintes
questes:
3.1) Qual a quantidade dos produtos deve ser produzida na soluo
tima? Qual a MCT
obtida nessa soluo?
3.2) Em que departamentos produtivos existe ociosidade e de
quantas horas?
3.3) Considerando a soluo tima, se o Produto 1 passar a ser
produzido em seu limite
mnimo, qual a margem de contribuio total?
3.4) A partir da soluo tima, qual o reflexo na MCT de cada nova
unidade do Produto
2 que a empresa produzir? Isto vlido para que intervalo?
3.5) Considerar que a empresa deseja ampliar a capacidade
produtiva do Departamento
B.
3.5.1) Determinar qual o impacto na margem de contribuio que
seria provocado
pelo aumento de cada nova unidade na capacidade total do
departamento.
3.5.2) Considerar que o custo com a ampliao da capacidade
produtiva de 40
unidades no departamento de $500,00. Calcular quantos meses
seriam
necessrios para, com o ganho adicional na margem de contribuio
da empresa,
cobrir os custos decorrentes da ampliao.
3) Dado o modelo de Programao Linear.
Maximizar Z = 2100X1 + 1200X2 + 600X
-
Sujeito a:
6X1 + 4X2 +6X3 3760 (Horas de Mquina)
12X1 +16X2 +2X3 9520 (Horas de Mo-de-obra)
X1 380 (Demanda de P1)
X2 400 (Demanda de P2)
X3 480 (Demanda de P3)
X1 0; X2 0; X3 0
a) Construir o modelo matemtico para o problema de programao
linear.
b) Determinar as quantidades timas produzidas e o lucro projeto
utilizando a ferramenta
Solver do Excel.
c) Qual a utilizao dos recursos horas de mquina e horas de
mo-de-obra?
d) A demanda dos produtos P1, P2 e P3 completamente atendida?
Justifique sua resposta.
e) Quais so as utilidades marginais (preo sombra) dos recursos
produtivos (mquinas e mo-
de-obra) e das demandas (P1, P2 e P3)?
f) Caso pudssemos produzir mais uma unidade de produto (P1, P2 e
P3), qual seria a melhor
opo? Porque?
g) Caso pudssemos acrescentar mais uma hora em algumas das sees
(mquina/mo-de-
obra), qual seria a melhor alternativa? Por qu?
h) Quais so os recursos escassos do processo produtivo?
i) Verifica-se que a demanda de alguns produtos no completamente
atendida. Identifique
esses produtos.