Escolar Documentos
Profissional Documentos
Cultura Documentos
Fev 2005
Minimize f( x1 , x2 ,, xn )
(max imize )
sujeito a : g 1 ( x1 , x2 ,, xn ) { ,= , } b1
g 2 ( x1 , x2 ,, xn ) { ,= , } b2
L
g m ( x1 , x2 ,, xn ) { ,= , } bm
x1 , x2 ,, xn 0 (1)
Minimize z = c1 x1 + c2 x2 + + cn xn
sujeito a : a11 x1 + a12 x2 + + a1n xn = b1
a21 x1 + a22 x2 + + a2n xn = b2
L
am1 x1 + am2 x2 + + am n xn = bm
x1 , x2 ,, xn 0 (2)
onde c1x1 + c2 x2 + + cn xn a funo objetivo a ser minimizada e ser referida pela letra z.
Os coeficientes c1, c2, , cn so coeficientes de custo conhecidos e x1, x2, , xn so as
variveis de deciso cujos valores devem ser determinados.
n
A igualdade aij x j = bi designa a i-sima restrio. Os coeficientes aij, para i=1, 2, ... , m,
j =1
a11 a12 L a1 n
a a2 L a2 n
A = 21
M M M M
am am 2 L amn
(3)
O vetor coluna, cujo i-simo elemento bi, referido como vetor do lado direito, vetor
independente, que representa as exigncias mnimas a serem satisfeitas.
Usando essa terminologia, o problema de programao linear pode ser estabelecido como
segue: dentre todos os pontos viveis, encontre um que minimize (ou maximize) a funo
objetivo.
Minimize z = 2x1 + 5 x2
sujeito a : x1 + x2 6
-x1 - 2x2 - 18
x1 , x2 0 (4)
Neste caso, temos duas variveis de deciso x1 e x2. A funo objetivo a ser minimizada 2
x1+ 5x2. As restries e a regio vivel so ilustradas na figura a seguir.
[0 9]T
[0 6]T
Regio
Vivel
X2 0
T T
0 [6 0] [18 0]
X1 0 1 2
1. Proporcionalidade: Dada uma varivel xj, sua contribuio para formar o custo cjxj e
sua contribuio para a i-sima restrio aij x j . Isto significa que se xj aumentado de
duas vezes, tambm o a sua contribuio para o custo e para cada uma das restries.
2. Aditividade: Esta suposio garante que o custo total a soma dos custos individuais, e
que a contribuio total i-sima restrio a soma das contribuies individuais das
atividades individuais. Em outras palavras, no h substituio ou efeitos de interao
entre atividades.
Maximize z = c1 x1 + c2 x2 + + cn xn
sujeito a : a11 x1 + a12 x2 + + a1n xn b1
a21 x1 + a22 x2 + + a2n xn b2
L
am1 x1 + am2 x2 + + am n xn bm
x1 , x2 ,, xn 0 (5)
Maximize z = c1 x1 + c2 x2 + + cn xn
sujeito a : a11 x1 + a12 x2 + + a1n xn + xn + 1 = b1
a21 x1 + a22 x2 + + a2n xn + xn + 2 = b2
L
am1 x1 + am2 x2 + + am n xn + xn + m = bm
x1 , x2 ,, xn , ..., xn + m 0 (6)
Minimize z = c1 x1 + c2 x2 + + cn xn
sujeito a : a11 x1 + a12 x2 + + a1n xn b1
a21 x1 + a22 x2 + + a2n xn b2
L
am1 x1 + am2 x2 + + am n xn bm
x1 , x2 ,, xn 0 (7)
Maximize z = c1 x1 + c2 x2 + + cn xn
sujeito a : a11 x1 + a12 x2 + + a1n xn xn + 1 = b1
a21 x1 + a22 x2 + + a2n xn xn + 2 = b2
L
am1 x1 + am2 x2 + + am n xn xn + m = bm
x1 , x2 ,, xn , ..., xn + m 0 (8)
Se um problema de programao linear dado na forma padro exceto que uma ou mais
variveis desconhecidas no so restringidas pela condio de no-negatividade, o problema
poder ser transformado na forma padro utilizando-se duas tcnicas. Para mostrarmos isto,
considere o problema:
Minimize z = c1 x1 + c2 x2 + + cn xn
sujeito a : a11 x1 + a12 x2 + + a1n xn = b1
a21 x1 + a22 x2 + + a2n xn = b2
L
am1 x1 + am2 x2 + + am n xn = bm
x1 , x2 ,, x j -1 , x j +1 ,..., xn 0
(9)
x j = xj xj
(10)
2) Uma segunda maneira para converter forma padro quando xj livre, consiste em
eliminar xj juntamente com uma das equaes de restrio. Por exemplo, seja a i-sima
equao abaixo:
onde aij 0.
Ento xj pode ser expressa como uma combinao linear das outras variveis mais uma
constante.
teis: forma padro e forma cannica. Um problema dito estar na forma padro quando
todas as restries so de igualdade e todas as variveis so no-negativas. O mtodo
simplex foi projetado para ser aplicado somente aps o problema ser colocado na forma
padro.
n n
Minimize z= cj xj Maximize z = c j x j
j =1 j =1
n
a ij x j = bi
n
Padro i = 1 ,..., m
sujeito a :
j =1
sujeito a : a
j =1
ij x j = bi i = 1 ,..., m
xj 0 j = 1 ,..., n
xj 0 j = 1 ,..., n
n n
Minimize z = c j x j Maximize z = c j xj
j =1 j =1
n n
Cannica
sujeito a : a ij x j bi i = 1 ,...,m sujeito a : a
j =1
ij x j bi i = 1 ,..., m
j =1
xj 0 j = 1 ,..., n xj 0 j = 1 ,..., n
n
Minimize z= cj xj
j =1
n
sujeito a : a
j =1
ij x j = bi i = 1 ,..., m
xj 0 j = 1 ,..., n
(15)
Chamando o vetor linha (c1, c2, ..., cn) por c, e considerando os seguintes vetores x e b, e a
matriz A de ordem mxn,
x1 b1 a11 a21 an 1
x b a a22 an 2
x = 2 b= 2 A= 21
(16)
xn bm am 1 am 2 amn
Minimize z = cx
sujeito a : Ax = b
x 0 (17)
n
Minimize z = c j xj
j =1
n
sujeito a : a
j =1
j xj = b
(18)
xj 0 j = 1 ,...,n
Formulao do Problema:
Os dados referentes aos alimentos S1, S2, S3, S4 e S5 podem ser convenientemente escritos
em uma tabela. Veja Tabela II.
Alim S1 S2 S3 S4 S5
A 0 1 5 4 3
B 2 1 0 3 2
C 3 1 0 9 0
Custo 4 2 1 10 5
Observando a Tabela II, podemos formular o problema considerando x1, x2, ..., x5 como sendo
as variveis de deciso, isto , as quantidades dos alimentos S1, S2, ..., S5 que devem ser
utilizados para compor a dieta de custo mnimo.
Minimize z = 4 x1 + 2 x2 + x3 + 10 x4 + 5 x5
sujeito a : 0 x1 + 1 x2 + 5x3 + 4 x4 + 3 x5 10
2 x1 + 1 x2 + 0x3 + 3 x4 + 2 x5 30
3 x1 + 1 x2 + 0x3 + 9 x4 + 0 x5 18 (19)
x1 , x2 , x3 , x4 , x5 0
determinar as quantidades xij a serem transportadas entre cada par origem-destino i = 1, 2, ...,
m; j = 1,2, ..., n; de tal forma a satisfazer s exigncias de transporte e minimizar o custo total
associado.
Tabela III : Dados do problema do transporte de produtos entre m cidades origem para n
cidades destino.
Destino
Origem 1 2 ... n Soma
1 X11 x12 ... X1n a1
2 X21 X22 ... X2n a2
... ... ... ... ... ...
m n
minimize z = cij xij
i =1 j =1
sujeito a :
n
xij = ai i = 1,2 ,..., m
j =1
m
xij = b j j = 1,2 ,..., n
i =1
m n
ai = b j (20)
i =1 j =1
xij 0 i = 1,2 ,..., m;
j = 1,2 ,..., n.
Produto
Tempo x1 x2 Total disponvel
Horas-homem 9 1 18
Horas-mquina 3 1 12
Lucro/unid 4 1
Este problema possui a seguinte representao matemtica:
Maximize z = 4 x1 + x2
sujeito a : 9 x1 + x2 18
3 x1 + x2 12 (21)
x1 , x2 0
O desenvolvimento desse problema resulta no valor mximo da funo objetivo x1* = 1, x2* = 9
e z = R$13,00. Tente resolv-lo.
Minimize z = 20 x1 + 15 x2
sujeito a : 0 ,3 x1 + 0 ,4 x2 2000 (Gasolina )
0 ,4 x1 + 0 ,2 x2 1500 (Querosene)
0 ,2 x1 + 0 ,3 x2 500 (Lubrificantes )
x1 9000 ( Arbia Saudita ) (22)
x2 6000 (Venezuela)
x1 , x2 0 (No negatividade)
A soluo tima deste problema x1* = 2000, x2* = 3500 a um custo mnimo de US92.500,00.
Tente resolv-lo.
Soluo Geomtrica
A soluo geomtrica adequada para problemas pequenos, de duas ou no mximo trs
variveis. A grande vantagem da soluo geomtrica permitir a visualizao do problema.
r r
Minimize cT x
r r
sujeito a : Ax b
r r (23)
x 0
r r
Observe que a regio vivel formada por todo vetor r
x satisfazendo ao sistema Ax b e
r r
x 0 . Dentre todos estes pontos, nos interessamos por determinar um que conduza ao
rT r
mnimo valor para c x .
n
rT r
Note que pontos cujo valor da funo objetivo z, satisfazem a c x = z, ou c x
j =1
j j = z . Uma
deslocado paralelamente a ele prprio na direo que minimiza a funo objetivo. Esta
r
direo c . Veja a representao na figura abaixo.
X2
[X1*, X2*]T
Diminuio da
funo
Regio
c1 x1 + c 2 x 2 = z 4
Vivel
c1 x1 + c 2 x 2 = z 3
c1 x1 + c 2 x 2 = z 2 X1
r c1 x1 + c 2 x 2 = z 1
c
r
[
r* r*
fcil notar que o ponto timo x* = x1 , x 2 ]T
um entre os cinco vrtices, os quais so
chamados de pontos extremos.
Minimize z = - x1 - 3 x2
sujeito a : x1 + x2 6
-x1 + 2x2 8
(24)
x1 , x2 0
[4/3 14/3]T 2
[0 Diminuio da
funo objetivo
- x1 - 3 x2 = 46 / 3
Regio
[0 4]T
Vivel
X2 0
T
[0 [6 0]
r X1 0
c = [ 1,3 ] T - x1 - 3 x2 = 0 1
A regio vivel ilustrada na Fig. 3. Para construir esta regio, considere a segunda restrio
- x1 + 2x2 8 . A equao associada a esta restrio - x1 + 2x2 = 8 . O gradiente desta
funo [-1 2]T. Logo, a funo - x1 + 2x2 aumenta nesta direo e diminui na direo
nica soluo tima finita: se a soluo tima finita e nica ento ela ocorre em um ponto
extremo.
Diminuio da
funo objetivo
Regio
Vivel
2
x2 0
r
c 1
Regio Diminuio da
Vivel funo objetivo
2
x2 0
r
c
Infinitas solues timas finitas: Este o caso ilustrado na Fig. 5. No caso (a), a regio
vivel limitada. Os dois vrtices x1* e x2* so solues timas, bem como qualquer outro
ponto sobre o segmento unindo-os.
x1 0
Soluo tima finita x1*
1
x1 0 Soluo tima
finita Fronteira tima
Regio Diminuio da
Vivel funo objetivo
2
x2 0
r
c
Em 5.b, a regio vivel ilimitada. O vrtice indicado ponto timo, bem como qualquer outro
sobre a fronteira tima.
Valor da funo objetivo na soluo tima ilimitado: Este caso ilustrado pela Fig. 6,
T r r
onde a regio e o timo so ilimitados. Para o problema de minimizao, o plano c x = z
Tr r
pode ser deslocado na direo c x indefinidamente e sempre estar interceptando a regio
vivel. O valor timo z* = - e nenhuma soluo tima existe.
x1 0
Regio
Vivel
2 Diminuio da
funo objetivo
x2 0
r
c
Regio Vivel Vazia: Neste caso o sistema de equaes e ou inequaes definindo a regio
vivel inconsistente. Para ilustrar isto, considere o problema a seguir:
Minimize z = - 2x1 + 3 x2
sujeito a : - x1 + 2x2 2
2x1 x2 3
x2 4 (25)
x1 , x2 0
x1 0
x1 + 2 x2 2
2 x1 x2 3
[0 4]T x2 4
[8/3 7/3]T
x2 0
[0 0]T
Interpretao de Viabilidade
Considere o problema de programao linear na forma padro:
rT r
Minimize c x
r r
sujeito a : Ax = b
r r (26)
x 0
r
onde A uma matriz mxn cuja e-sima coluna aj . Este problema pode ser re-escrito como:
n
Minimize c x
j =1
j j
rn r
sujeito a : ajxj = b
j =1
(27)
xj 0 j = 1,2, ..., n
r r r
Dado os vetores a1 , a 2 , ...., a n , desejamos encontrar valores no-negativos x1 , x 2 , ...., x n
n
r r n
tais que a j x j = b e ainda que c x j j seja minimizado. Note que o conjunto de vetores
j =1 j =1
n
r
da forma a j
j =1
x j x ,
, onde 1 2x , ...., x n o cone gerado por
r r
a 1 , a 2 , ....,
r
a n.
r r
a1 r a1 r
a4 a4
r r
a3 r a3
b
r r
a2 a2
r
b
Fig. 8.a Regio vivel no vazia. Fig. 8.b Regio vivel vazia.
r
Assim, o problema possuir uma soluo vivel somente se o vetor b pertencer ao cone
r r
a
gerado pelo conjunto de vetores j . Desde que o vetor b usualmente representa exigncias
a serem satisfeitas, o espao das figuras (a) e (b) acima denominado de espao das
exigncias.
2x1 + x2 + x3 =2 2x1 + x2 + x3 = 1
- x1 + 3x2 + x4 =3 - x1 + 3x2 + x4 =2
(28)
x1 , x2 , x3 , x4 0 x1 , x2 , x3 , x4 0
r
b r
r b r
r a2 r a2
a4 a4
r r
a3 a3
r r
a1 a1
Conceitos Fundamentais
A introduo dos conceitos fundamentais abaixo descritos necessria para a compreenso
do Mtodo Simplex. Alguns destes conceitos j foram introduzidos. No entanto, a repetio de
alguns deles contribui para a melhor compreenso do Mtodo Simplex.
n
r r
sujeito a : ajxj = b
j =1 (29)
xj 0 j = 1,2, ..., n
A constante m o nmero de restries funcionais e n o nmero de variveis de deciso.
Definies:
1. A funo a minimizar, z = c1 x1 + c2 x2 + + cn xn , designa-se por funo objetivo.
2. As equaes (inequaes) designam-se por restries.
3. As desigualdades x1 0, x2 0,, xj 0,, xn 0 designam-se por condies de
no-negatividade.
4. As variveis (x1, x2,, xj,, xn ) designam-se por variveis de deciso.
5. Qualquer especificao de valores para as variveis de deciso (x1, x2,, xj,, xn)
que satisfaa as restries do modelo e as condies de no-negatividade designa-se
por soluo vivel.
6. O conjunto de todas as solues viveis designa-se por conjunto de viabilidade ou
regio de viabilidade.
7. Uma soluo tima minimiza (ou maximiza) a funo objetivo sobre toda a regio
vivel.
Definio 1. Qualquer conjunto de valores para as variveis (x1, x2,, xn) que satisfaa
as restries do modelo
n
aj =1
j xj = b
(30)
Definio 2. Se, alm disso, a soluo x = (x1, x2,, xn) verificar as restries de no-
1
Chama-se caracterstica de uma matriz Amxn ao nmero mximo de colunas que so linearmente independentes.
x1
x
a11 a12 L a1m a1m +1 L a1n 2 b1
a M
a22 L a2 m a2 m +1 L a2 n xB b2
Ax = 21 xm = [B I ] = = b
M M M M M M xN
xm + 1 bm
am1 am 2 L amm amm +1 L amn
M
x
n
(31)
Um sistema nestas condies um sistema indeterminado de grau n-m, em que m variveis
podem ser escritas em termo das restantes n m, e tem, por conseqncia, uma infinidade de
solues (correspondente infinidade de valores que arbitrariamente podem ser atribudos s
n - m variveis).
Suponha-se ento que x = (x1, x2,, xm, xm+1, xm+2,, xn ) seja uma soluo do sistema de
equaes (31).
Para simplificar a notao suponha que a base B composta pelas m primeiras colunas, i.e.,
B = {a1 , a2 ,..., am}.
Definio 6. Uma soluo bsica para o sistema (31) obtm-se atribuindo o valor
zero s variveis no bsicas xm+1 , xm+2 ,, xn , e determinando, depois, uma soluo para as
m variveis bsicas restantes x1 , x2,, xm , i.e., x = (x1 , x2 , , xm , 0, ,0), onde xB =(x1 , x2
,, xm) a nica soluo do sistema de equaes BxB = b.
Definio 8. Se alguma varivel bsica for igual a zero a soluo bsica designa-se
Definio 10. Se uma soluo bsica vivel tambm uma soluo bsica degenerada,
ela dita ser uma soluo bsica vivel degenerada.
1) Se existe uma soluo vivel para o problema de PL, definido pelas expresses
n
a
j =1
j x j = b e x j 0 para j = 1 ,..., n , ento existe uma soluo bsica vivel.
2) Se existe uma soluo tima vivel ento existe uma soluo tima bsica vivel.
n n!
=
m m!(n m)! (32)
Embora este nmero possa ser muito grande, teoricamente a soluo tima poderia ser
encontrada pela experimentao de todas as solues bsicas viveis. Este mtodo, porm,
mostra-se ineficaz.
O Mtodo Simplex
Pivs
Para obter uma compreenso do mtodo Simplex, necessrio compreender o processo de
pivotagem em um conjunto de equaes lineares. H para isso 2 interpretaes:
Primeira interpretao:
Ax = b (34)
a1x = b1
a2x = b2
.
.
.
m
a x = bm (35)
Para o sistema (36), as variveis x1, x2, ..., xm so chamadas de bsicas e as outras variveis
so no-bsicas. A soluo bsica correspondente :
x = (y0, 0) (38)
O sistema (36) pode ser representado por uma matriz ou tabela (quadro Simplex):
Exemplo 1: 5. Aula
Dado o problema abaixo, encontre uma soluo bsica atravs de pivotagem.
3x1 + x2 + x3 + x4 = 1 3 1 1 1 1
2x1 + 2 x2 - 3 x3 + x4 = 3 B = 2 2 - 3 1 3
x1 + x2 + 2 x3 - x4 = 2 1 1 2 - 1 2
Soluo:
B(1,:)=B(1,:)/B(1,1) { B(1,1) elemento piv}
1.0000 0.3333 0.3333 0.3333 0.3333
2.0000 2.0000 -3.0000 1.0000 3.0000
1.0000 1.0000 2.0000 -1.0000 2.0000
Exemplo 2:
Dado o problema abaixo, determine uma soluo bsica atravs de pivotagem e coloque o
problema na forma de tabela.
x1 + 2 x2 + x3 - x4 = 3 1 2 1 - 1 3
2x1 - x2 + x3 + x4 = 2 B = 2 - 1 1 1 2
2 x1 + x2 2 x3 - x4 = 2 2 1 - 2 - 1 2
Soluo:
B=
1.0000 0 0 0.0588 1.1176
0 1.0000 0 -0.6471 0.7059
0 0 1.0000 0.2353 0.4706
H, porm, uma questo a se resolver: Dado um sistema na forma acima, suponha que se
deseje tornar uma varivel bsica em no-bsica e uma varivel no-bsica em bsica. Qual
ser a nova tabela correspondente a esse novo conjunto de variveis bsicas?
Isso pode ser resolvido da seguinte forma, utilizando o mtodo de reduo Gauss-Jordan:
1) Divida toda a linha correspondente varivel no-bsica a entrar na base pelo valor do
coeficiente correspondente mesma, desde que diferente de zero, de forma que essa
varivel se torne unitria (ela deve ser no-negativa).
Exemplo 3:
Na tabela abaixo x1, x2 e x3 so as variveis bsicas e x4 no bsica. Entre com x4 na base
no lugar de x3.
1 0 0 2 2
0 1 0 3 6
0 0 1 4 2
Soluo:
B(3,:)=B(3,:)/B(3,4) { B(3,4) elemento piv, isto , coeficiente de x4 que deve entrar
na base no lugar de x3}
1.0000 0 0 2.0000 2.0000
0 1.0000 0 3.0000 6.0000
0 0 0.2500 1.0000 0.5000
B(1,:)=B(1,:)- B(3,:)*B(1,4) { Zerando o elemento B(1,4) acima do elemento piv}
1.0000 0 -0.5000 0 1.0000
0 1.0000 0 3.0000 6.0000
0 0 0.2500 1.0000 0.5000
B(2,:)=B(2,:)- B(3,:)*B(2,4) { Zerando o elemento B(2,4) acima do elemento piv}
1.0000 0 -0.5000 0 1.0000
0 1.0000 -0.7500 0 4.5000
0 0 0.2500 1.0000 0.5000
Segunda interpretao:
O conjunto de equaes simultneas representadas por (35) e (36) pode ser interpretado em
Em como uma equao vetorial. Denotando as colunas de A por a1, a2, ..., an, pode-se
escrever (35) como:
Nesse caso as primeiras m colunas formam a base. Alm disso, qualquer vetor representado
na tabela pode ser expresso como uma combinao linear dos outros vetores da base.
Conseqentemente:
A tabela pode ser interpretada como uma representao dos vetores ai em termos da base; a
i-sima coluna da tabela constitui a representao para o vetor ai. Em particular, a expresso
para b em termos da base dada na ltima coluna.
Considere agora a operao de substituio de um membro da base por outro vetor no-
existente na base. Suponha que se deseje substituir o vetor da base ap, 1 p m, pelo vetor
aq, m+1 q n. Conhecido que os m primeiros vetores ap so LI, esses vetores constituem a
base e todo vetor pode ser expresso como uma combinao linear dessa nova base. Para
encontrar uma nova representao desses novos vetores preciso atualizar a base. Isso
feito de forma semelhante ao procedimento 1) descrito anteriormente.
Ax = b
x0 (43)
Suponha que ns tenhamos a soluo vivel bsica x = (x1, x2, ..., xm, 0, 0, ..., 0), ou,
equivalentemente a representao
x1 a1 + x2 a2 + ... + xmam =b
y1ka1 + y2ka2 + ... + ymkam - ak = 0
--------------------------------------------------------------------------
(x1 - y1k)a1 + (x2 - y2k)a2 + ... + (xm - ymk)am + ak = b (46)
Nesse caso ns temos uma nova soluo vivel bsica, com o vetor ak ocupando o lugar do
vetor ai, que corresponde ao mnimo em (47).
Se o mnimo em (47) obtido para mais de um ndice i, teremos ento uma nova soluo
bsica que degenerada e, qualquer um dos vetores com componentes iguais a zero poder
ser considerado aquele que deixar a base.
Se nenhum dos yiks positivo, ento todos os coeficientes na representao (47) crescem
(ou permanecem constantes) quando aumenta e, nenhuma nova soluo vivel bsica
obtida. Observa-se, entretanto, que nesse caso, h solues viveis para (43) tendo grandes
coeficientes. Isso significa que o conjunto K de solues viveis para (43) ilimitado e
corresponde a um caso especial do mtodo Simplex.
Em um quadro Simplex para determinar a varivel bsica que deixa a base deve-se
prosseguir como:
Exemplo: Substitua a varivel no-bsica x4 por uma das variveis bsicas mantendo a
condio de no-negatividade.
1 0 0 2 2
B= 0 1 0 3 6
0 0 1 4 2
Soluo: Observe que para o problema, a soluo bsica vivel x = [2 6 2 0]T.
Determinao de qual varivel bsica deve entrar na base:
1 0 0 2 2 1
0 1 0 3 6 yi 0 / ai 4 = 2 x3 deve sair da base
0 0 1 4 2 0 ,5
Substituindo x3 bsica por x4 no-bsica:
De forma a tornar o mtodo Simplex iterativo e reduzir o valor da funo objetivo necessrio
determinar agora qual varivel no-bsica entrar na base.
r
c
Seja o vetor linha correspondente aos coeficientes da funo objetivo, com elementos ci,
r r
i =1,2,...,n. Seja cB o vetor correspondente s variveis bsicas xi , i =1,2,...,m e yij o
componente i da coluna j do quadro Simplex. Tem-se que
m
r r
z0 = ci xi = c B x B
(48)
i =1
n
rr
z = ci xi = c x
(49)
i =1
Embora seja natural usar a soluo bsica (xB, 0) quando temos o quadro Simplex, claro
que se valores arbitrrios so associados a xm+1, xm+2, ... xn, ns podemos facilmente
determinar as alteraes nas variveis bsicas para acomodar estas variaes, isto :
n
x1 = y10 y1 j x j
j = m +1
n
x2 = y20 y2 j x j (50)
j = m +1
M
M
n
xm = y m0 ymj x j
j = m +1
Usando (50), podemos eliminar as variveis bsicas da frmula geral para o clculo da funo
objetivo dada em (49). Fazendo-se isto, temos:
rr
z = c x = z0 + ( cm +1 z m +1 )xm +1 + ( cm + 2 z m + 2 )xm + 2 + L + ( cn z n ) xn
(51)
onde
z m +1 = c1 y1,m +1 + c2 y2 ,m +1 + L + cm ym ,m +1
z m + 2 = c1 y1,m + 2 + c2 y2 ,m + 2 + L + cm ym ,m + 2
(52)
z n = c1 y1,n + c2 y2 ,n + L + cm ym ,n
A expresso (51) a relao fundamental requerida para determinar a coluna piv, isto ,
qual varivel no-bsica deve entrar na base. Por qu?
Para a escolha da varivel no bsica a entrar na base necessrio determinar qual dos
custos definidos como
cj - zj , j=m+1,..., n
menor que zero. Se tiver pelo menos um, significa que a funo objetivo z pode ser feita
menor que z0 (Eq. 51). Assim, a varivel no-bsica a entrar na base deve ser tal que
Critrio de entrada na
base
Min { cj - zj | cj - zj < 0 }
j
Para que o processamento possa ser feito de forma automtica, isto , para que a introduo
de uma nova varivel possa ser processada nas demais variveis, consideramos o quadro
Simplex anteriormente apresentado acrescentando uma nova linha correspondendo funo
objetivo z:
em que:
y1,m +1
y
zm +1 = [c1 c2 . cm ]
2,m +1
M . (55)
ym,m +1
Considere dada uma soluo bsica vivel no-degenerada com o correspondente valor zo.
Suponha que para algum j tenha-se cj zj < 0. Dessa forma h uma soluo vivel com valor
z < z0. Se a coluna aj pode ser substituda por algum vetor na base original para constituir uma
nova soluo bsica vivel, ento a nova soluo contm z < z0. Se aj no pode ser
substituda, o conjunto soluo K ilimitado.
Exerccio:
Resolva via Simplex o problema abaixo:
max imize 3 x1 + x2 + 3 x3
sujeito a : 2 x1 + x2 + x3 2
x1 + 2 x2 + 3 x3 5
2 x1 + 2 x2 + x3 6 (56)
x1 , x2 , x3 0
Soluo:
O problema precisa ser colocado na forma padro. Para isto, vamos transformar o problema em
problema de minimizao e acrescentar uma varivel de folga para cada restrio:
2 1 1 1 0 0 2
1 2 3 0 1 0 5
2 2 1 0 0 1 6 (57)
3 1 3 0 0 0 0
2 1 1 1 0 0 2
1 2 3 0 1 0 5
2 2 1 0 0 1 6
-3 -1 -3 0 0 0 0
Observando esta matriz, vimos que as variveis no-bsicas x1 e x3 ao entrarem na base
conduziro maior diminuio na funo objetivo. Escolhamos a varivel x1 para entrar na
base. Ao fazermos isto, precisamos agora escolher qual varivel bsica deixar a base com a
condio de que a viabilidade da soluo bsica seja mantida. Isto pode ser feito tomando o
menor valor do yi0/ai1, para i = 1, 2 ou 3. Efetuando as contas obtemos respectivamente os
valores 2/2, 5/1 e 6/2. Logo, o menor resultado corresponde ao elemento a11 que conduz a
retirar da base a varivel x4. Assim, faamos ento a introduo de x1 e retirada de x4.
A(1,:)=A(1,:)/A(1,1)
1.0000 0.5000 0.5000 0.5000 0 0 1.0000
1.0000 2.0000 3.0000 0 1.0000 0 5.0000
2.0000 2.0000 1.0000 0 0 1.0000 6.0000
-3.0000 -1.0000 -3.0000 0 0 0 0
A(2,:)=A(2,:)-A(1,:)*A(2,1)
1.0000 0.5000 0.5000 0.5000 0 0 1.0000
0 1.5000 2.5000 -0.5000 1.0000 0 4.0000
2.0000 2.0000 1.0000 0 0 1.0000 6.0000
-3.0000 -1.0000 -3.0000 0 0 0 0
A(3,:)=A(3,:)-A(1,:)*A(3,1)
1.0000 0.5000 0.5000 0.5000 0 0 1.0000
0 1.5000 2.5000 -0.5000 1.0000 0 4.0000
0 1.0000 0 -1.0000 0 1.0000 4.0000
-3.0000 -1.0000 -3.0000 0 0 0 0
A(4,:)=A(4,:)-A(1,:)*A(4,1)
1.0000 0.5000 0.5000 0.5000 0 0 1.0000
0 1.5000 2.5000 -0.5000 1.0000 0 4.0000
Continuando o processo, verificamos que a varivel x3 ao entrar na base ela provocar uma
diminuio na funo objetivo. Ao dividirmos 1/0.5 e 4/2.5, verificamos que o menor resultado
4/2.5, o que corresponde a introduzir x3 na base e retirar x5. Faamos ento as operaes.
A(2,:)=A(2,:)/A(2,3)
1.0000 0.5000 0.5000 0.5000 0 0 1.0000
0 0.6000 1.0000 -0.2000 0.4000 0 1.6000
0 1.0000 0 -1.0000 0 1.0000 4.0000
0 0.5000 -1.5000 1.5000 0 0 3.0000
A(1,:)=A(1,:)-A(2,:)*A(1,3)
1.0000 0.2000 0 0.6000 -0.2000 0 0.2000
0 0.6000 1.0000 -0.2000 0.4000 0 1.6000
0 1.0000 0 -1.0000 0 1.0000 4.0000
0 0.5000 -1.5000 1.5000 0 0 3.0000
A(4,:)=A(4,:)-A(2,:)*A(4,3)
1.0000 0.2000 0 0.6000 -0.2000 0 0.2000
0 0.6000 1.0000 -0.2000 0.4000 0 1.6000
0 1.0000 0 -1.0000 0 1.0000 4.0000
0 1.4000 0 1.2000 0.6000 0 5.4000
Como no h mais nenhum resduo negativo, significa que impossvel reduzir a funo
objetivo dentro do espao vivel. Logo, a soluo tima x = [0.2 0.0 1.6 0.0 0.0 4.0]T. Este
valor corresponde ao valor da funo objetivo original igual a z* = 3*0.2 + 1*0.0 + 3*1.6 = 5.4.
Para alguns tipos de problemas de programao linear, a soluo bsica vivel inicial nem
sempre visvel. Dessa forma so necessrios procedimentos para determin-la, uma vez
que o mtodo Simplex precisa desta condio para ser iniciado. Para isso recorre-se ao uso
da tcnica das variveis artificiais.
A tcnica das variveis artificiais consiste em construir um problema auxiliar introduzindo uma
nova varivel, chamada varivel artificial, em cada uma das restries onde no foi possvel
adicionar uma varivel de folga, sendo esta tomada como varivel bsica para essa equao.
Desta forma fica garantida a existncia de uma varivel bsica em cada equao e a
possibilidade de identificar uma soluo bsica vivel (SBV ) inicial.
Ax = b
x0eb0 (58)
De forma a encontrar uma soluo para (58) considere o problema de minimizao (artificial)
m
minimize y
i =1
i
sujeito a Ax + y = b
x0
y0 (59)
onde y = (y1, y2, , ym) um vetor de variveis artificiais. Se h uma soluo vivel para (58)
o problema (59) tem um valor mnimo y = 0. Se (58) no tem uma soluo vivel, ento o
valor mnimo de (59) maior que zero.
O problema (59) est na forma adequada com a soluo vivel bsica y = b. Usando as
tcnicas do mtodo Simplex possvel obter uma soluo vivel bsica em cada passo. Se o
valor mnimo de (59) zero, ento a soluo bsica final ter todos os yi = 0 e no ter
nenhuma varivel bsica yi.
2 Fase: Tomando como SBV (Soluo Bsica Vivel) inicial a soluo obtida na 1 Fase,
aplica o algoritmo Simplex, para determinar a soluo tima. Durante essa fase, as
variveis artificiais e a funo objetivo da 1 Fase so omitidas.
No fim da 1 fase, em que se atingiu a soluo tima do problema auxiliar, est-se perante
uma das seguintes situaes:
PS: Geralmente, num problema que apresenta inequaes cujas restries so do tipo
torna-se necessria a incluso de variveis artificiais.
Problema 1:
max imize x1 + 2 x2 + 4 x3
sujeito a : x1 + x2 + 3 x3 6
3 x1 + 2 x2 + 2 x3 5
2 x1 2 x2 + x3 6 (60)
x1 , x2 , x3 0
Problema 2:
max imize 3 x1 + x2 + 3 x3
sujeito a : 2 x1 + x2 + x3 6
x1 + 2 x2 + 3 x3 = 5
2 x1 + 2 x2 + x3 2 (61)
x1 , x2 , x3 0
Problema 3:
max imize 3 x1 + x2 + 3 x3
sujeito a : 2 x1 + x2 + x3 2
x1 + 2 x2 + 3 x3 5
2 x1 + 2 x2 + x3 6
x1 0
(62)
x2 1
x3 3
Problema 4:
min imize 3 x1 + x2 + 3 x3
sujeito a : 2 x1 + x2 + x3 2
x1 + 2 x2 + 3 x3 5
2 x1 + 2 x2 + x3 = 6 (63)
x1 , x3 0
1 1 3 1 0 0 6
3 2 2 0 1 0 5
2 2 1 0 0 1 6
1 2 4 0 0 0 0
b(2,:)=b(2,:)-b(1,:)*b(2,3)/b(1,3)
0.3333 0.3333 1.0000 0.3333 0.0000 0.0000 2.0000
2.3333 1.3333 0.0000 -0.6667 1.0000 0.0000 1.0000
2.0000 -2.0000 1.0000 0.0000 0.0000 1.0000 6.0000
-1.0000 -2.0000 -4.0000 0.0000 0.0000 0.0000 0.0000
b(3,:)=b(3,:)-b(1,:)*b(3,3)/b(1,3)
0.3333 0.3333 1.0000 0.3333 0.0000 0.0000 2.0000
2.3333 1.3333 0.0000 -0.6667 1.0000 0.0000 1.0000
1.6667 -2.3333 0.0000 -0.3333 0.0000 1.0000 4.0000
-1.0000 -2.0000 -4.0000 0.0000 0.0000 0.0000 0.0000
b(4,:)=b(4,:)-b(1,:)*b(4,3)/b(1,3)
0.3333 0.3333 1.0000 0.3333 0.0000 0.0000 2.0000
2.3333 1.3333 0.0000 -0.6667 1.0000 0.0000 1.0000
b(1,:)=b(1,:)-b(2,:)*b(1,2)/b(2,2)
-0.2500 0.0000 1.0000 0.5000 -0.2500 0.0000 1.7500
1.7500 1.0000 0.0000 -0.5000 0.7500 0.0000 0.7500
1.6667 -2.3333 0.0000 -0.3333 0.0000 1.0000 4.0000
0.3333 -0.6667 0.0000 1.3333 0.0000 0.0000 8.0000
b(3,:)=b(3,:)-b(2,:)*b(3,2)/b(2,2)
b(4,:)=b(4,:)-b(2,:)*b(4,2)/b(2,2)
-0.2500 0.0000 1.0000 0.5000 -0.2500 0.0000 1.7500
1.7500 1.0000 0.0000 -0.5000 0.7500 0.0000 0.7500
5.7500 0.0000 0.0000 -1.5000 1.7500 1.0000 5.7500
1.5000 0.0000 0.0000 1.0000 0.5000 0.0000 8.5000
Problema 2:
max imize 3 x1 + x2 + 3 x3
sujeito a : 2 x1 + x2 + x3 6
x1 + 2 x2 + 3 x3 = 5
2 x1 + 2 x2 + x3 2
x1 , x2 , x3 0
Soluo: Para o sinal de menor ou igual vamos acrescentar uma varivel de folga e para o
sinal de maior ou igual vamos acrescentar uma varivel de excesso. Alm disto, este
problema no possui uma soluo vivel bsica. Logo, teremos que resolve-lo usando o
procedimento das duas etapas. Assim, a tabela para este problema na primeira etapa ficar:
2 1 1 1 0 1 0 0 6
1 2 3 0 0 0 1 0 5
2 2 1 0 1 0 0 1 2
0 0 0 0 0 1 1 1 0
>> b(3,:)=b(3,:)/b(3,1)
2.0000 1.0000 1.0000 1.0000 0.0000 1.0000 0.0000 0.0000 6.0000
1.0000 2.0000 3.0000 0.0000 0.0000 0.0000 1.0000 0.0000 5.0000
1.0000 1.0000 0.5000 0.0000 -0.5000 0.0000 0.0000 0.5000 1.0000
-5.0000 -5.0000 -5.0000 -1.0000 1.0000 0.0000 0.0000 0.0000 -13.0000
>> b(1,:)=b(1,:)-b(3,:)*b(1,1)/b(3,1)
0.0000 -1.0000 0.0000 1.0000 1.0000 1.0000 0.0000 -1.0000 4.0000
1.0000 2.0000 3.0000 0.0000 0.0000 0.0000 1.0000 0.0000 5.0000
1.0000 1.0000 0.5000 0.0000 -0.5000 0.0000 0.0000 0.5000 1.0000
-5.0000 -5.0000 -5.0000 -1.0000 1.0000 0.0000 0.0000 0.0000 -13.0000
>> b(2,:)=b(2,:)-b(3,:)*b(2,1)/b(3,1)
>> b(4,:)=b(4,:)-b(3,:)*b(4,1)/b(3,1)
0.0000 -1.0000 0.0000 1.0000 1.0000 1.0000 0.0000 -1.0000 4.0000
0.0000 1.0000 2.5000 0.0000 0.5000 0.0000 1.0000 -0.5000 4.0000
1.0000 1.0000 0.5000 0.0000 -0.5000 0.0000 0.0000 0.5000 1.0000
0.0000 0.0000 -2.5000 -1.0000 -1.5000 0.0000 0.0000 2.5000 -8.0000
>> b(3,:)=b(3,:)-b(2,:)*b(3,3)/b(2,3)
0.0000 -1.0000 0.0000 1.0000 1.0000 1.0000 0.0000 -1.0000 4.0000
0.0000 0.4000 1.0000 0.0000 0.2000 0.0000 0.4000 -0.2000 1.6000
1.0000 0.8000 0.0000 0.0000 -0.6000 0.0000 -0.2000 0.6000 0.2000
0.0000 0.0000 -2.5000 -1.0000 -1.5000 0.0000 0.0000 2.5000 -8.0000
>> b(4,:)=b(4,:)-b(2,:)*b(4,3)/b(2,3)
0.0000 -1.0000 0.0000 1.0000 1.0000 1.0000 0.0000 -1.0000 4.0000
0.0000 0.4000 1.0000 0.0000 0.2000 0.0000 0.4000 -0.2000 1.6000
1.0000 0.8000 0.0000 0.0000 -0.6000 0.0000 -0.2000 0.6000 0.2000
0.0000 1.0000 0.0000 -1.0000 -1.0000 0.0000 1.0000 2.0000 -4.0000
>> b(4,:)=b(4,:)-b(1,:)*b(4,4)/b(1,4)
0.0000 -1.0000 0.0000 1.0000 1.0000 1.0000 0.0000 -1.0000 4.0000
0.0000 0.4000 1.0000 0.0000 0.2000 0.0000 0.4000 -0.2000 1.6000
Logo, a soluo bsica vivel x = [0.2 0.0 1.6 4.0 0.0]. Agora, o prximo passo a
construo da tabela Simplex para a etapa 2. Para isto, recuperamos os valores que nos
interessam e acrescentamos no lugar da ltima linha os valores correspondentes ao vetor c=
[-3 -1 -3 0 0] para o problema de minimizao.
Fazemos agora a eliminao dos termos da ltima linha abaixo das variveis bsicas:
>> d(4,:)=d(4,:)-d(3,:)*d(4,1)/d(3,1)
0.0000 -1.0000 0.0000 1.0000 1.0000 4.0000
0.0000 0.4000 1.0000 0.0000 0.2000 1.6000
1.0000 0.8000 0.0000 0.0000 -0.6000 0.2000
0.0000 1.4000 -3.0000 0.0000 -1.8000 0.6000
>> d(4,:)=d(4,:)-d(2,:)*d(4,3)/d(2,3)
0.0000 -1.0000 0.0000 1.0000 1.0000 4.0000
0.0000 0.4000 1.0000 0.0000 0.2000 1.6000
>> d(2,:)=d(2,:)-d(1,:)*d(2,5)/d(1,5)
0.0000 -1.0000 0.0000 1.0000 1.0000 4.0000
0.0000 0.6000 1.0000 -0.2000 0.0000 0.8000
1.0000 0.8000 0.0000 0.0000 -0.6000 0.2000
0.0000 2.6000 0.0000 0.0000 -1.2000 5.4000
>> d(3,:)=d(3,:)-d(1,:)*d(3,5)/d(1,5)
0.0000 -1.0000 0.0000 1.0000 1.0000 4.0000
0.0000 0.6000 1.0000 -0.2000 0.0000 0.8000
1.0000 0.2000 0.0000 0.6000 0.0000 2.6000
0.0000 2.6000 0.0000 0.0000 -1.2000 5.4000
>> d(4,:)=d(4,:)-d(1,:)*d(4,5)/d(1,5)
0.0000 -1.0000 0.0000 1.0000 1.0000 4.0000
0.0000 0.6000 1.0000 -0.2000 0.0000 0.8000
1.0000 0.2000 0.0000 0.6000 0.0000 2.6000
0.0000 1.4000 0.0000 1.2000 0.0000 10.2000
Logo, a soluo para o problema original x = [2.60 0.00 0.80], o que conduz a z = 10.20.
Incio
Passo Iterativo
No
Cada nova soluo bsica vivel obtida substituindo uma varivel bsica por uma varivel
no-bsica. Uma soluo bsica tima quando o valor da funo objetivo a minimizar possui
o menor valor.
Identificar uma Soluo Bsica Vivel
Sim
Move-se para a soluo
bsica melhor
INCIO
Forma Padro
FIM !!
timo no finito? Sim O problema no tem
Critrio de timo no finito timo finito.
No