Você está na página 1de 115

Programao Linear

Universidade Federal de Minas Gerais

Departamento de Engenharia Eltrica

Apostila de Programao Linear

Prof. Joo Antnio de Vasconcelos

Fev 2005

Prof. Joo Antnio de Vasconcelos 1


Programao Linear

Programao Linear 1. Aula

1) Problemas de Programao Matemtica como Problemas de Otimizao

O que so Problemas de Otimizao?


Os problemas de Otimizao so problemas de maximizao ou minimizao de funes de
variveis num determinado domnio normalmente definido por um conjunto de restries nas
variveis.

O que so problemas de programao matemtica?


Os problemas de Programao Matemtica so uma classe particular de Problemas de
Otimizao aplicados nos campos da organizao e da gesto econmica, em que o objetivo
e as restries so dadas como funes matemticas e relaes funcionais.

A terminologia Programao Matemtica tem sua origem na relao:

Prof. Joo Antnio de Vasconcelos 2


Programao Linear

Programao planejamento de atividades.


Matemtica o problema representado por um modelo matemtico composto de
funes objetivo(s) e restries dependentes das variveis de deciso..

O problema representado matematicamente pelo modelo:

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)

em que x1 , x2 ,, xn so as n variveis de deciso, f( x1 , x2 ,, xn ) a funo objetivo, g i ( x1 , x2 ,, xn ) ,


para i = 1, 2, ..., m so as m restries do problema.

Prof. Joo Antnio de Vasconcelos 3


Programao Linear

Os problemas de Programao Matemtica podem ser classificados em lineares, se f (x1, x2,


, xn ) , gi (x1, x2, , xn ), para i = 1, 2, ..., m so funes lineares e em no-lineares, se alguma
das relaes f (x1, x2, , xn ) ou gi (x1, x2, , xn ), para i = 1, 2, ..., m for uma funo no-linear.

Os problemas de Programao Matemtica como Problemas de Otimizao abrangem a


anlise e estudo de sistemas de forma a determinar o programa de ao mais adequado ao
alcance de certo objetivo, tendo em conta as restries que limitam o seu comportamento.

2) Problemas de Programao Linear como classe particular dos problemas de


Programao Matemtica Definies bsicas

Os problemas de Programao Linear so uma classe particular de problemas de


Programao Matemtica, onde a funo objetivo e as restries so representadas por
funes lineares.

A terminologia Programao Linear tem sua origem na relao:

Prof. Joo Antnio de Vasconcelos 4


Programao Linear

Programao planejamento de atividades.


Linear o problema representado matematicamente pelo modelo em que todas as
funes f (x1, x2, , xn ) , gi (x1, x2 , , xn ), so lineares.

Os problemas de Programao Linear determinam o planejamento timo de atividades, ou


seja, um plano timo que representa a melhor soluo entre todas as solues possveis.

Um problema de programao linear corresponde a uma programao matemtica no qual a


funo objetivo linear e as restries consistem de igualdades e/ou desigualdades lineares.
A forma exata dessas restries pode diferenciar de um problema para outro, mas, de uma
forma geral, a programao linear pode se transformar na seguinte forma padro:

Prof. Joo Antnio de Vasconcelos 5


Programao Linear

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.

Prof. Joo Antnio de Vasconcelos 6


Programao Linear

n
A igualdade aij x j = bi designa a i-sima restrio. Os coeficientes aij, para i=1, 2, ... , m,
j =1

j=1, 2, ... ,n so chamados de coeficientes tecnolgicos. Estes coeficientes formam a matriz de


restrio A.

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.

Prof. Joo Antnio de Vasconcelos 7


Programao Linear

As restries x1, x2,, xn 0 so as restries de no-negatividade. Um conjunto de variveis x1,


x2,, xn satisfazendo todas as restries chamado de ponto vivel, ponto factvel ou
ponto realizvel.

O conjunto de todos os pontos viveis constitui a regio realizvel ou espao vivel.

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.

Exemplo1: Considere o problema seguinte:

Minimize z = 2x1 + 5 x2
sujeito a : x1 + x2 6
-x1 - 2x2 - 18
x1 , x2 0 (4)

Prof. Joo Antnio de Vasconcelos 8


Programao Linear

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

Fig. 1 Regio vivel e restries Exemplo 1.

Prof. Joo Antnio de Vasconcelos 9


Programao Linear

O problema de otimizao dessa maneira o problema de encontrar um ponto na regio


vivel com o menor valor da funo objetivo.

Suposies da Programao Linear


Para representar um problema de otimizao como um problema de programao linear,
vrias suposies implcitas formulao da programao linear discutida anteriormente so
necessrias. Estas suposies so:

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.

Prof. Joo Antnio de Vasconcelos 10


Programao Linear

3. Divisibilidade: Esta suposio assegura que as variveis de deciso podem ser


divididas em qualquer nvel fracionrio. Isto , elas podem assumir valores no-inteiros.
4. Determinstico: Os coeficientes c j , aij e bj so todos conhecidos deterministicamente.
Qualquer elemento probabilstico, estocstico, inerente demanda, aos custos, preos,
disponibilidade de recursos, e assim por diante, so todos assumidos serem
aproximados por um destes coeficientes atravs de algum procedimento determinstico.

Manipulao do Problema 2. Aula


Quando as restries de um modelo de Programao Linear so apresentadas na forma de
inequaes, diz-se que esse modelo est na forma cannica. Abaixo encontram-se alguns
mtodos de converso forma cannica forma padro.

1 Caso: Introduo de variveis de folga


Considere o problema formulado na forma cannica abaixo:

Prof. Joo Antnio de Vasconcelos 11


Programao Linear

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)

Nesse caso, o conjunto de restries determinado inteiramente pelas desigualdades


lineares. Mediante operaes, possvel transformar o problema acima para a forma padro.

Prof. Joo Antnio de Vasconcelos 12


Programao Linear

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)

As novas variveis positivas xn +1 , xn + 2 ,...., xn + m introduzidas para converter as


desigualdades em igualdades so chamadas de variveis de folga. O novo problema com n +
m incgnitas se encontra na forma padro. A matriz m x (m + n) que agora descreve as
restries de igualdade lineares da forma especial [A, I] (ou seja, as colunas podem ser
separadas em dois conjuntos; as primeiras n colunas se originam da matriz original A, e as
ltimas m colunas se originam de uma matriz identidade (m x m).

Prof. Joo Antnio de Vasconcelos 13


Programao Linear

2 caso: Variveis Surplus (Excesso)


Considere o problema formulado na forma cannica abaixo:

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)

Essa forma equivalente a:

Prof. Joo Antnio de Vasconcelos 14


Programao Linear

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)

3 Caso: Variveis Livres

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:

Prof. Joo Antnio de Vasconcelos 15


Programao Linear

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)

1) Suponha que no problema anterior, a restrio xj 0 no esteja presente. Dessa forma,


pode-se escrever:

x j = xj xj
(10)

Prof. Joo Antnio de Vasconcelos 16


Programao Linear

em que se requer xj 0 e xj 0. Se ns substituirmos xj por xj xj em todo o

problema, a linearidade das restries preservada e todas as variveis so agora no-


negativas.

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:

ai1 x1 + ai2 x2 + + aij x j + ain xn = bi


(11)

onde aij 0.

Prof. Joo Antnio de Vasconcelos 17


Programao Linear

Ento xj pode ser expressa como uma combinao linear das outras variveis mais uma
constante.

x j = [bi ( ai1 x1 + ai2 x2 + + ain xn )] / aij


(12)

Se essa expresso substituir xj em todas as equaes, teremos um novo problema


expresso em funo de x2, x3, ..., xn. Como resultado, teremos agora um problema de
programao linear com n 1 variveis e m 1 equaes de restries. O valor de xj
pode ser determinado a partir de (12). Este segundo procedimento raramente utilizado
devido s dificuldades de manipulao de dados e implementao numrica.

4 Caso: Variveis Limitadas Inferior ou Superiormente


Se xj lj, ento a nova varivel xj xj - lj automaticamente no-negativo. Por outro lado, se
xj uj , ento a nova varivel xj uj - xj produz uma varivel xj no-negativa.

Prof. Joo Antnio de Vasconcelos 18


Programao Linear

Transformao de Problemas de Minimizao em Maximizao


interessante notar que qualquer problema de maximizao (minimizao) pode converter-se
num problema de minimizao (maximizao), pois:

mximo z = - mnimo (- z) (13)


n n
mximo c j x j = - mnimo - c j x j
j =1 j =1
(14)
Assim, um problema de maximizao (minimizao) pode ser convertido em um problema de
minimizao (maximizao) atravs da multiplicao dos coeficientes da funo objetivo por -
1. Depois de concluda a otimizao do novo problema, a funo objetivo do problema original
igual -1 vez o valor timo da funo objetivo do novo problema.

Forma Padro e Forma Cannica


Da discusso anterior, vemos que um dado problema linear pode ser colocado em diferentes
formas equivalentes atravs de manipulaes adequadas. Duas formas em particular sero

Prof. Joo Antnio de Vasconcelos 19


Programao Linear

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.

A forma cannica tambm til especialmente na explorao de relaes de dualidade. Um


problema de minimizao se encontra na forma cannica se todas as variveis so no-
negativas e todas as restries so do tipo . Um problema de maximizao est na forma
padro se todas as variveis so no-negativas e todas as restries so do tipo . A Tabela I
a seguir faz um resumo destas discusses.

Tabela I: Sumrio da Manipulao do Problema de Programao Linear

Forma Minimizao Maximizao

Prof. Joo Antnio de Vasconcelos 20


Programao Linear

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

Prof. Joo Antnio de Vasconcelos 21


Programao Linear

Programao Linear em Notao Matricial


O problema de programao linear pode ser escrito em uma forma mais conveniente usando
notao matricial. Para ilustrar, considere o problema seguinte:

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,

Prof. Joo Antnio de Vasconcelos 22


Programao Linear

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

o problema pode ser escrito como segue:

Minimize z = cx
sujeito a : Ax = b
x 0 (17)

O problema pode tambm ser convenientemente representado via colunas da matriz A.


Representando A por [a1, a2, ..., am], onde aj a j-sima coluna de A, o problema pode ser
formulado como segue:

Prof. Joo Antnio de Vasconcelos 23


Programao Linear

n
Minimize z = c j xj
j =1
n
sujeito a : a
j =1
j xj = b
(18)
xj 0 j = 1 ,...,n

Onde x um vetor n-dimensional coluna, A uma matriz m x n e b um vetor m-dimensional


coluna. O vetor desigualdade x 0 determina que cada componente de x no-negativo.

Prof. Joo Antnio de Vasconcelos 24


Programao Linear

Modelagem de Problemas de Programao Linear e Exemplos 3. Aula

Exemplo I : Problema da Dieta


Um nutricionista deve elaborar uma dieta contendo pelo menos 10 unidades de vitamina A, 30
unidades de vitamina B e 18 unidades de vitamina C, contidas em 5 alimentos. O alimento S1
contm 0 unidade de vitamina A, 2 unidades de vitamina B, 3 unidades de vitamina C e custa
R$4,00 por quilograma. O alimento S2 contm 1 unidade de vitamina A, 1 unidade de vitamina
B, 1 unidade de vitamina C e custa R$2,00 por quilograma. O alimento S3 contm 5 unidades
de vitamina A, 0 unidade de vitaminas B e C, e custa R$1,00 por quilograma. O alimento S4
contm 4 unidades de vitamina A, 3 unidades de vitamina B, 9 unidades de vitamina C e custa
R$10,00 por quilograma. O alimento S5 contm 3 unidades de vitamina A, 2 unidades de
vitamina B, 0 unidades de vitamina C e custa R$5,00 por quilograma.

Qual o custo mnimo para se atender dieta estabelecida pelo nutricionista?

Prof. Joo Antnio de Vasconcelos 25


Programao Linear

Formulao do Problema:
Os dados referentes aos alimentos S1, S2, S3, S4 e S5 podem ser convenientemente escritos
em uma tabela. Veja Tabela II.

Tabela II: Dados dos Alimentos S1, S2, S3, S4 e S5.

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.

Prof. Joo Antnio de Vasconcelos 26


Programao Linear

Assim, a formulao do problema pode ser escrita como:

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

Exemplo II : Problema do Transporte


Quantidades a1, a2, ..., am, respectivamente, de um certo produto devem ser transportadas de
cada uma das m localidades origem para n localidades destino nas quantidades b1, b2, ..., bn.
O custo/unidade de produto transportado da localidade i para a localidade j cij. Deseja-se

Prof. Joo Antnio de Vasconcelos 27


Programao Linear

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.

Formulao do Problema : Seja xij a quantidade do produto a ser transportado da cidade


origem i para a cidade destino j. Assim, os dados do problema do transporte pode ser
resumidamente escritos na Tabela III.

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

Prof. Joo Antnio de Vasconcelos 28


Programao Linear

m Xm1 Xm1 ... Xmn am


Soma b1 b2 ... bn

Assim, a formulao do problema pode ser escrita como:

Prof. Joo Antnio de Vasconcelos 29


Programao Linear

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.

Prof. Joo Antnio de Vasconcelos 30


Programao Linear

Exemplo III: Problema da Fbrica


Uma empresa pode fabricar dois produtos (1 e 2). Na fabricao do produto 1, a empresa
gasta 9 horas-homem e 3 horas-mquina. Na fabricao do produto 2, a empresa gasta 1
hora-homem e 1 hora-mquina. Sendo x1 e x2 as quantidades fabricadas dos produtos 1 e 2 e
sabendo-se que a empresa dispe de 18 horas-homem e 12 horas-mquina e ainda que os
lucros por unidade do produto x1 e x2 so R$4,00 e R$1,00, respectivamente, quanto deve a
empresa fabricar de cada produto para obter o maior lucro possvel?

Formulao do Problema : As variveis de deciso j foram dadas, x1 e x2. Os dados deste


problema podem ser esquematicamente escritos na Tabela IV.

Prof. Joo Antnio de Vasconcelos 31


Programao Linear

Tabela IV : Dados do problema de produo para maximizao dos lucros.

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.

Prof. Joo Antnio de Vasconcelos 32


Programao Linear

Exemplo IV: Problema da Refinaria de Petrleo


Uma refinaria de petrleo destila leo cru, proveniente de duas fontes: Arbia Saudita e
Venezuela, e produz trs produtos: gasolina, querosene e lubrificantes. Os leos tm
diferentes composies qumicas e fornecem diferentes quantidades de destilados por barril
processado. Cada barril da Arbia d 0,3 barril de gasolina, 0,4 de querosene e 0,2 de
lubrificante. Para o barril proveniente da Venezuela estas quantidades so respectivamente:
0,4, 0,2 e 0,3. Em ambos os casos h 10% de resduos. Os leos diferem em custo e
disponibilidade. A refinaria pode comprar at 9000 barris da Arbia a $ 20,00 o barril e at
6000 barris da Venezuela a $ 15,00 o barril. Contratos da refinaria com distribuidores exigem
que ela produza 2000 barris por dia de gasolina, 1500 de querosene e 500 de lubrificantes.
Como cumprir os contratos gastando o mnimo?

Formulao do Problema : As variveis de deciso so obviamente as quantidades de leo


cru a serem adquiridas da Arbia Saudita e Venezuela. Sejam estas variveis x1 e x2 em
nmero de mil-barris/dia, respectivamente. Os dados deste problema podem ser
esquematicamente escritos na Tabela V.

Prof. Joo Antnio de Vasconcelos 33


Programao Linear

Tabela V : Dados do problema de produo para maximizao dos lucros.

Quantidade de leo Cru


Quantidade a ser
Arbia Saudita (X1) Venezuela (x2)
produzida
Gasolina 0,3 0,4 2000
Querosene 0,4 0,2 1500
Lubrificantes 0,2 0,3 500
Compra
9000 6000
Possvel
Custo 20 15

Prof. Joo Antnio de Vasconcelos 34


Programao Linear

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.

Prof. Joo Antnio de Vasconcelos 35


Programao Linear

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.

Para apresentarmos este tema, considere o problema abaixo.

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 .

Prof. Joo Antnio de Vasconcelos 36


Programao Linear

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

vez que desejamos minimizar z, ento o plano (linha em espao 2D) c x


j =1
j j = z deve ser

deslocado paralelamente a ele prprio na direo que minimiza a funo objetivo. Esta
r
direo c . Veja a representao na figura abaixo.

Prof. Joo Antnio de Vasconcelos 37


Programao Linear

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

Fig. 2 Soluo geomtrica do PPL.

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.

Prof. Joo Antnio de Vasconcelos 38


Programao Linear

Mostraremos mais adiante que se um problema de programao linear na forma padro ou


cannica tem uma soluo tima finita, ento ele possui um ponto timo no vrtice ou ponto
extremo timo.

Exemplo 2: Considere o problema seguinte:

Minimize z = - x1 - 3 x2
sujeito a : x1 + x2 6
-x1 + 2x2 8
(24)
x1 , x2 0

Prof. Joo Antnio de Vasconcelos 39


Programao Linear

[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

Fig. 3 Soluo geomtrica do PPL do Exemplo 2.

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

Prof. Joo Antnio de Vasconcelos 40


Programao Linear

funo [-1 2]T. Logo, a funo - x1 + 2x2 aumenta nesta direo e diminui na direo

contrria, isto , na direo [1 -2]T. Consequentemente, a regio vivel a - x1 + 2x2 8

relativa equao - x1 + 2x2 = 8 mostrada na Fig. 2 e compreende pontos na regio de

diminuio de - x1 + 2x2 . As restries de no-negatividade de x1 e x2 restringem a busca ao

primeiro quadrante do sistema de coordenadas. As equaes - x1 - 3 x2 = z = cte so


denominadas de equipotenciais da funo objetivo e so representadas pelas linhas
tracejadas. A soluo tima deste problema naturalmente o vrtice definido pelo ponto [4/3
14/3]T para o qual z* = -46/3.

Classificao das Solues


O objetivo da PL determinar entre as solues viveis uma que seja a melhor medida pelo
valor da funo objetivo do modelo. Por "melhor" entende-se o maior ou menor valor da
funo objetivo, dependendo se o modelo de maximizar ou de minimizar.

Prof. Joo Antnio de Vasconcelos 41


Programao Linear

Ao solucionar um problema de PL, podemos ter vrias situaes possveis. No exemplo


anterior tivemos uma nica soluo tima. Outros casos possveis so resumidos a seguir
para problemas de minimizao.

nica soluo tima finita: se a soluo tima finita e nica ento ela ocorre em um ponto
extremo.

Prof. Joo Antnio de Vasconcelos 42


Programao Linear

x1 0 Soluo tima finita

Diminuio da
funo objetivo

Regio
Vivel
2
x2 0
r
c 1

Fig. 4.a - Soluo tima nica e finita (regio limitada).

Prof. Joo Antnio de Vasconcelos 43


Programao Linear

x1 0 Soluo tima finita

Regio Diminuio da
Vivel funo objetivo
2
x2 0

r
c

Fig. 4.b - Soluo tima nica e finita (regio ilimitada).

Prof. Joo Antnio de Vasconcelos 44


Programao Linear

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

3 Soluo tima finita


Regio x2*
Vivel
2
Diminuio da
funo objetivo
r x2 0
c

Fig. 5.a Infinitas solues timas (regio limitada).

Prof. Joo Antnio de Vasconcelos 45


Programao Linear

x1 0 Soluo tima
finita Fronteira tima

Regio Diminuio da
Vivel funo objetivo
2
x2 0
r
c

Fig. 5.b Infinitas solues timas (regio ilimitada).

Em 5.b, a regio vivel ilimitada. O vrtice indicado ponto timo, bem como qualquer outro
sobre a fronteira tima.

Prof. Joo Antnio de Vasconcelos 46


Programao Linear

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.

Prof. Joo Antnio de Vasconcelos 47


Programao Linear

x1 0

Regio
Vivel
2 Diminuio da
funo objetivo
x2 0
r
c

Fig. 6 Valor da funo objetivo no timo ilimitado (regio ilimitada).

Prof. Joo Antnio de Vasconcelos 48


Programao Linear

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

Observando a Fig. 7, percebemos claramente que no h nenhum ponto vivel, isto ,


nenhum ponto (x1, x2) satisfaz ao conjunto de desigualdades. O problema dito ser invivel,
inconsistente, ou com uma regio vivel vazia.

Prof. Joo Antnio de Vasconcelos 49


Programao Linear

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

Fig. 7 Regio vivel vazia.

Prof. Joo Antnio de Vasconcelos 50


Programao Linear

Interpretao Espacial 4. Aula


O problema de programao linear pode ser geometricamente resolvido em outro espao,
como veremos a seguir.

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:

Prof. Joo Antnio de Vasconcelos 51


Programao Linear

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.

Prof. Joo Antnio de Vasconcelos 52


Programao Linear

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.

Prof. Joo Antnio de Vasconcelos 53


Programao Linear

Exemplo: Considere os dois sistemas dados a seguir:


S1 S2

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

Prof. Joo Antnio de Vasconcelos 54


Programao Linear

r
b r
r b r
r a2 r a2
a4 a4

r r
a3 a3

r r
a1 a1

Fig. 9 (a) Consistente ou regio vivel no-vazia,


9 (b) Inconsistente ou regio vivel vazia.

Prof. Joo Antnio de Vasconcelos 55


Programao Linear

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.

Dado um problema de Programao Linear na forma padro:


n
Minimize c x
j =1
j j

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.

Supomos ainda que os termos independentes sejam no negativos: bi 0 (i = 1,2,m), caso


contrrio pode-se sempre multiplicar por (-1) toda a equao.

Prof. Joo Antnio de Vasconcelos 56


Programao Linear

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.

Prof. Joo Antnio de Vasconcelos 57


Programao Linear

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)

designa-se por soluo.

Definio 2. Se, alm disso, a soluo x = (x1, x2,, xn) verificar as restries de no-

negatividade, x j 0 para j = 1 ,..., n , designa-se por soluo vivel.

O sistema (30) constitudo por m equaes e n incgnitas, onde m n. Suponha-se que a


caracterstica1 da matriz A do sistema seja igual a m. Isto significa que existe uma sub-matriz
quadrada de ordem m (Bmxm) com determinante no-nulo. Esta sub-matriz permite efetuar

1
Chama-se caracterstica de uma matriz Amxn ao nmero mximo de colunas que so linearmente independentes.

Prof. Joo Antnio de Vasconcelos 58


Programao Linear

uma classificao das variveis em bsicas (as correspondentes s colunas da sub-matriz B)


e no-bsicas (as restantes n m variveis). Veja Eq. (31).

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).

Prof. Joo Antnio de Vasconcelos 59


Programao Linear

Suponha-se ento que x = (x1, x2,, xm, xm+1, xm+2,, xn ) seja uma soluo do sistema de
equaes (31).

Definio 3. Se uma sub-matriz Bmxm da matriz A do sistema (31) no-singular, i.e., o

seu determinante no nulo, ento designa-se por base a sub-matriz Bmxm.

Para simplificar a notao suponha que a base B composta pelas m primeiras colunas, i.e.,
B = {a1 , a2 ,..., am}.

Definio 4. As m variveis x1 , x2,, xm correspondentes s colunas de Bmxm

designam-se por variveis bsicas. Seja o vetor de variveis bsicas o vetor xB

Definio 5. As restantes n-m variveis xm+1 ,xm+2,,xn designam-se por variveis no

bsicas. Seja o vetor de variveis no bsicas o vetor xN.

Prof. Joo Antnio de Vasconcelos 60


Programao Linear

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 7. Se todas as variveis bsicas x1 , x2 ,, xm so no-nulas, a soluo

bsica designa-se por soluo bsica no degenerada.

Definio 8. Se alguma varivel bsica for igual a zero a soluo bsica designa-se

por soluo bsica degenerada.

Prof. Joo Antnio de Vasconcelos 61


Programao Linear

Definio 9. Se uma soluo bsica x verifica ainda as condies de no-negatividade

x j 0 para j = 1 ,..., n - todas as variveis da soluo so no negativas - ento esta


soluo uma soluo bsica vivel.

Definio 10. Se uma soluo bsica vivel tambm uma soluo bsica degenerada,
ela dita ser uma soluo bsica vivel degenerada.

Teorema fundamental da Programao Linear

Atravs do teorema fundamental da programao linear estabelece-se a importncia das


solues viveis bsicas na resoluo de problemas de programao linear. Este teorema
estabelece que:

Prof. Joo Antnio de Vasconcelos 62


Programao Linear

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.

Do teorema fundamental da PL podemos concluir que no necessrio procurar a soluo


tima entre todas as solues viveis, mas apenas entre as solues bsicas viveis.

O nmero mximo de solues bsicas num problema com m restries e n variveis,


n

corresponde ao nmero mximo de bases distintas do sistema a


j =1
j x j = b que podem ser

determinadas e esse nmero dado pelo nmero de possveis combinaes de m nmeros


que podem ser obtidas usando n nmeros:

Prof. Joo Antnio de Vasconcelos 63


Programao Linear

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

O mtodo Simplex um algoritmo que permite resolver problemas de Programao Linear. A


idia bsica do mtodo Simplex consiste em resolver repetidas vezes um sistema de
equaes lineares para obter uma sucesso de solues bsicas viveis (que um ponto
extremo), cada uma melhor que a anterior, at se chegar a uma soluo bsica vivel tima
(ou seja, at que o mnimo/mximo na funo objetivo seja alcanado).

Prof. Joo Antnio de Vasconcelos 64


Programao Linear

Algumas descries necessrias ao 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:

Considere o conjunto de equaes lineares abaixo:

a11 x1 + a12 x2 + + a1n xn = b1


a 21 x1 + a 22 x2 + + a 2n xn = b2
L
(33)
a m1 x1 + a m2 x2 + + a m n xn = bm

Prof. Joo Antnio de Vasconcelos 65


Programao Linear

onde m n. Na forma matricial escreve-se como:

Ax = b (34)

No espao En pode-se interpretar as equaes acima como um conjunto de m relaes


lineares que devem ser satisfeitas por um vetor x. Denotando por ai , a i-sima linha da matriz
A, temos:

a1x = b1
a2x = b2
.
.
.
m
a x = bm (35)

Prof. Joo Antnio de Vasconcelos 66


Programao Linear

Se m < n e as equaes so linearmente independentes, ento h uma variedade de


solues lineares. Uma nica soluo resulta se n m equaes lineares e independentes
adicionais forem acrescentadas.

Se as equaes (35) so linearmente independentes (LI), pode-se substituir uma dada


equao multiplicando-a por um nmero diferente de zero e somando equao obtida
alguma combinao linear de outras equaes do sistema. Essa transformao, dita
Gaussiana, utilizada pra transformar um conjunto de equaes para a forma triangular. Se
as m primeiras colunas de A so LI, o sistema (5), pode, atravs de uma seqncia de
multiplicaes e subtraes ser reduzido forma seguinte:

x1 0 ... 0 + y1, m + 1xm + 1 + y1, m + 2xm + 2 + ... + y1, nxn = y10


0 x2 ... 0 + y2, m + 1xm + 1 + y2, m + 2xm + 2 + ... + y2, nxn = y20
.... .... ....
0 0 ... xm + ym, m + 1xm + 1 + ym, m + 2xm + 2 + ... + ym, nxn = ym0 (36)

Prof. Joo Antnio de Vasconcelos 67


Programao Linear

Para o sistema (36), as variveis x1, x2, ..., xm so chamadas de bsicas e as outras variveis
so no-bsicas. A soluo bsica correspondente :

x1 = y10, x2 = y20, ..., xm = ym0, xm + 1 = 0, ..., xn = 0 (37)

Ou, na forma vetorial

x = (y0, 0) (38)

O sistema (36) pode ser representado por uma matriz ou tabela (quadro Simplex):

1 0 .... 0 y1, m + 1 y1, m + 2 y1n y10


0 1 .... 0 y2, m + 1 y2, m + 2 y2n y20
...
0 0 .... 1 ym, m + 1 ym, m + 2 ymn ym0
(39)

Prof. Joo Antnio de Vasconcelos 68


Programao Linear

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

B(2,:)=B(2,:)-B(1,:)*B(2,1 { Zerando o elemento B(2,1) abaixo do elemento piv}


1.0000 0.3333 0.3333 0.3333 0.3333
0 1.3333 -3.6667 0.3333 2.3333
1.0000 1.0000 2.0000 -1.0000 2.0000

Prof. Joo Antnio de Vasconcelos 69


Programao Linear

B(3,:)=B(3,:)-B(1,:)*B(3,1) { Zerando o elemento B(3,1) abaixo do elemento piv}


1.0000 0.3333 0.3333 0.3333 0.3333
0 1.3333 -3.6667 0.3333 2.3333
0 0.6667 1.6667 -1.3333 1.6667

B(2,:)=B(2,:)/B(2,2) { B(2,2) elemento piv}


1.0000 0.3333 0.3333 0.3333 0.3333
0 1.0000 -2.7500 0.2500 1.7500
0 0.6667 1.6667 -1.3333 1.6667

B(1,:)=B(1,:)- B(2,:)*B(1,2 { Zerando o elemento B(1,2) acima do elemento piv}


1.0000 0 1.2499 0.2500 -0.2500
0 1.0000 -2.7500 0.2500 1.7500
0 0.6667 1.6667 -1.3333 1.6667

B(3,:)=B(3,:)- B(2,:)*B(3,2) { Zerando o elemento B(3,2) abaixo do elemento piv}


1.0000 0 1.2499 0.2500 -0.2500
0 1.0000 -2.7500 0.2500 1.7500
0 0 3.5001 -1.5000 0.5000

B(3,:)=B(3,:)/B(3,3) { B(3,3) elemento piv}


1.0000 0 1.2499 0.2500 -0.2500
0 1.0000 -2.7500 0.2500 1.7500

Prof. Joo Antnio de Vasconcelos 70


Programao Linear

0 0 1.0000 -0.4285 0.1428

B(1,:)=B(1,:)- B(3,:)*B(1,3) { Zerando o elemento B(1,3) acima do elemento piv}


1.0000 0 0 0.7856 -0.4285
0 1.0000 -2.7500 0.2500 1.7500
0 0 1.0000 -0.4285 0.1428

B(2,:)=B(2,:)- B(3,:)*B(2,3) { Zerando o elemento B(2,3) acima do elemento piv}


1.0000 0 0 0.7856 -0.4285
0 1.0000 0 -0.9285 2.1428
0 0 1.0000 -0.4285 0.1428

Exemplo 2:
Dado o problema abaixo, determine uma soluo bsica atravs de pivotagem e coloque o
problema na forma de tabela.

Prof. Joo Antnio de Vasconcelos 71


Programao Linear

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:

Prof. Joo Antnio de Vasconcelos 72


Programao Linear

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).

2) Faa as operaes necessrias para zerar todos os outros elementos relacionados


coluna da varivel no-bsica. Para isso, multiplique a nova linha da varivel no-bsica
que deve entrar na base por um nmero de forma que ao som-lo linha cujo elemento
se deseja zerar, esse se anule.

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.

Prof. Joo Antnio de Vasconcelos 73


Programao Linear

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:

Prof. Joo Antnio de Vasconcelos 74


Programao Linear

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:

x1a1 + x2a2 + ... + xnan = b (40)

Nessa interpretao, se expressa b como uma combinao linear de colunas ais.


Se m < n e os vetores ai geram Em ento encontramos uma famlia de solues. A soluo
relacionada com o conjunto de n m variveis xi iguais a zero a soluo bsica para (35).

Suponha agora que ns iniciemos com o sistema na forma de tabela:

1 0 .... 0 y1, m + 1 y1, m + 2 y1n y10

Prof. Joo Antnio de Vasconcelos 75


Programao Linear

0 1 .... 0 y2, m + 1 y2, m + 2 y2n y20


...
0 0 .... 1 ym, m + 1 ym, m + 2 ymn ym0
(41)

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:

aj = y1ja1 + y2ja2 + ... + ymjam (42)

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

Prof. Joo Antnio de Vasconcelos 76


Programao Linear

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.

Pontos extremos adjacentes


Discutiu-se anteriormente que necessrio apenas considerar as variveis bsicas viveis na
soluo de problemas de programao linear da forma

Ax = b
x0 (43)

Embora as operaes de pivotagem transformem uma soluo bsica em outra, em geral, as


condies de no negatividade das solues no so preservadas. possvel, especificar
ento, qual varivel no-bsica se tornar bsica e dessa forma determinar qual varivel
bsica dever se tornar no-bsica?

Prof. Joo Antnio de Vasconcelos 77


Programao Linear

Suposio de No-degeneraridade: Toda soluo vivel bsica de (43) uma soluo


vivel bsica no-degenerada.

Determinao do vetor que deixa a base

Suponha que ns tenhamos a soluo vivel bsica x = (x1, x2, ..., xm, 0, 0, ..., 0), ou,
equivalentemente a representao

x1a1 + x2a2 + ..... + xmam = b (44)

Utilizando a suposio de no-degeneraridade, isto , xi > 0 para todo i = 1, 2, ..., m.


Considere tambm a representao do vetor ak, k > m em termos da base:

ak = y1ka1+ y2ka2 + + ymkam (45)

Prof. Joo Antnio de Vasconcelos 78


Programao Linear

Multiplicando (45) pela varivel e subtraindo o resultado de (44) , isto :

x1 a1 + x2 a2 + ... + xmam =b
y1ka1 + y2ka2 + ... + ymkam - ak = 0
--------------------------------------------------------------------------
(x1 - y1k)a1 + (x2 - y2k)a2 + ... + (xm - ymk)am + ak = b (46)

Para 0, obtemos b como uma combinao linear de no mximo m + 1 vetores. Para = 0,


temos a tradicional soluo bsica vivel. Se o valor de aumentado, o coeficiente de ak
cresce e, para pequenos valores de , (46) fornece uma soluo vivel, mas no-bsica. Os
coeficientes dos outros vetores podem aumentar ou diminuir linearmente quando cresce. Se
algum deles decresce, ns podemos escolher o menor valor para o qual tal coeficiente
assume o valor nulo, ou seja:

= min {xi / yik : yik > 0} , i = 1, 2, , m. (47)

Prof. Joo Antnio de Vasconcelos 79


Programao Linear

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:

Prof. Joo Antnio de Vasconcelos 80


Programao Linear

- A coluna pertencente varivel no-bsica que entra na base chamada de coluna


piv. Dividem-se todos os termos independentes (yi0) pelos correspondentes elementos
pertencentes a essa coluna (desde que esses valores sejam positivos).
- Escolhe-se o menor desses quocientes. A linha que atende a essa especificao,
chamada de linha piv, associada varivel bsica que deixar a base.

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:

Prof. Joo Antnio de Vasconcelos 81


Programao Linear

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:

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

Prof. Joo Antnio de Vasconcelos 82


Programao Linear

A soluo bsica x = [1 4.5 0 0.5] T.

Determinao da soluo tima

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

Prof. Joo Antnio de Vasconcelos 83


Programao Linear

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

Prof. Joo Antnio de Vasconcelos 84


Programao Linear

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

Prof. Joo Antnio de Vasconcelos 85


Programao Linear

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

Prof. Joo Antnio de Vasconcelos 86


Programao Linear

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:

1 0 .... 0 y1, m + 1 y1, m + 2 y1n y10


0 1 .... 0 y2, m + 1 y2, m + 2 y2n y20
...
0 0 .... 1 ym, m + 1 ym, m + 2 ymn ym0
0 0 .... 0 rm+1 rm, + 2 rn -z0
(53)

em que:

Prof. Joo Antnio de Vasconcelos 87


Programao Linear

rm+1 = cm+1 zm+1 (54)

y1,m +1

y
zm +1 = [c1 c2 . cm ]
2,m +1
M . (55)

ym,m +1

Teorema (melhoramento da soluo bsica vivel):

Prof. Joo Antnio de Vasconcelos 88


Programao Linear

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.

Teorema da Condio de Otimalidade:

Se para alguma soluo bsica vivel cj zj , j, ento essa soluo tima.

Exerccio:
Resolva via Simplex o problema abaixo:

Prof. Joo Antnio de Vasconcelos 89


Programao Linear

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

Prof. Joo Antnio de Vasconcelos 90


Programao Linear

Observem que o problema j se encontra na forma adequada utilizao do Mtodo Simplex.


A soluo bsica vivel x = [0 0 0 2 5 6]T e a z = 0. Seja A a matriz dada em (57).

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.

Prof. Joo Antnio de Vasconcelos 91


Programao Linear

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

Prof. Joo Antnio de Vasconcelos 92


Programao Linear

0 1.0000 0 -1.0000 0 1.0000 4.0000


0 0.5000 -1.5000 1.5000 0 0 3.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

Prof. Joo Antnio de Vasconcelos 93


Programao Linear

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.

Variveis Artificiais 21/03

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.

Prof. Joo Antnio de Vasconcelos 94


Programao Linear

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.

Considere o problema da forma

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

Prof. Joo Antnio de Vasconcelos 95


Programao Linear

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.

Mtodo das duas fases

Nesse mtodo o problema de Programao Linear resolvido em duas fases:


1 Fase: Constri-se um novo problema auxiliar (introduzindo variveis artificiais) com o
objetivo de obter uma SBV inicial para o problema original (se isto possvel).

Prof. Joo Antnio de Vasconcelos 96


Programao Linear

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.

Par esse mtodo tem-se:


- Qualquer SBV do problema auxiliar uma SBV do problema original se as variveis
artificiais da soluo so nulas.
- Obtm-se uma SBV com as variveis artificiais iguais a zero se e s se o valor da f.o.
artificial igual a zero (z' = 0).
- A aplicao do algoritmo Simplex eliminar da base os vetores artificiais (caso o
problema no seja impossvel), pois as variveis iniciais (no artificiais) tm coeficientes
nulos na f.o. que se pretende minimizar.

No fim da 1 fase, em que se atingiu a soluo tima do problema auxiliar, est-se perante
uma das seguintes situaes:

Prof. Joo Antnio de Vasconcelos 97


Programao Linear

1. Todos os vetores artificiais foram eliminados da base (z' = 0).


Neste caso, obtm-se uma SBV do problema original. Passa-se diretamente 2 fase do
mtodo Simplex.

2. Ainda subsistem vetores artificiais na base.


Existem duas alternativas:
z' > 0: existe pelo menos uma varivel artificial bsica com valor estritamente positivo o
conjunto K vazio, o problema impossvel.
z' = 0: todas as variveis artificiais so nulas Obtm-se ou uma SBV inicial degenerada ou
uma restrio redundante. Veja o fluxograma a seguir.

Prof. Joo Antnio de Vasconcelos 98


Programao Linear

2. Ainda subsistem vetores artificiais na base e z' = 0

Existe pelo menos um vetor no No existe nenhum vetor no


artificial fora da base que pode artificial fora da base que pode
substituir um vetor artificial substituir um vetor artificial

procede-se sua substituio existem restries redundantes

Eliminam-se do quadro simplex as


obtm-se uma SBV inicial degenerada linhas correspondentes s variveis
para o problema original artificiais bsicas e obtm-se uma
SBV inicial para o problema original

Figura 01: Aspectos de resoluo do Mtodo das 2 Fases

Prof. Joo Antnio de Vasconcelos 99


Programao Linear

PS: Geralmente, num problema que apresenta inequaes cujas restries so do tipo
torna-se necessria a incluso de variveis artificiais.

Exerccios: Resolva os seguintes problemas via mtodo Simplex:

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:

Prof. Joo Antnio de Vasconcelos 100


Programao Linear

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:

Prof. Joo Antnio de Vasconcelos 101


Programao Linear

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:

Prof. Joo Antnio de Vasconcelos 102


Programao Linear

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

Exerccios: Resolva os seguintes problemas via mtodo Simplex: (AULA 28/03/2005)


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
x1 , x2 , x3 0

Prof. Joo Antnio de Vasconcelos 103


Programao Linear

Soluo: Para se aplicar o mtodo Simplex, devemos: i) transformar o problema de


maximizao em minimizao; ii) para cada equao de restrio com sinal de menor ou
igual, acrescentar uma varivel de folga. Isto nos permite escrever a seguinte tabela
SIMPLEX:

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(1,:)=b(1,:)/b(1,3) Escolha do elemento piv (6/3; 5/2; 6/1) elemento b(1,3)


0.3333 0.3333 1.0000 0.3333 0.0000 0.0000 2.0000
3.0000 2.0000 2.0000 0.0000 1.0000 0.0000 5.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

Prof. Joo Antnio de Vasconcelos 104


Programao Linear

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

Prof. Joo Antnio de Vasconcelos 105


Programao Linear

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(2,:)=b(2,:)/b(2,2) Escolha do elemento piv (2/0.3333; 1/1.333) elemento b(2,2)


0.3333 0.3333 1.0000 0.3333 0.0000 0.0000 2.0000
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(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)

Prof. Joo Antnio de Vasconcelos 106


Programao Linear

-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
0.3333 -0.6667 0.0000 1.3333 0.0000 0.0000 8.0000

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

Logo, a soluo x = [0.0000, 0.7500, 1.7500]T com z* = 8.5000.

Prof. Joo Antnio de Vasconcelos 107


Programao Linear

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

Prof. Joo Antnio de Vasconcelos 108


Programao Linear

b(4,:) = b(4,:)-b(1,:)-b(2,:) - b(3,:)


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
-5 -5 -5 -1 1 0 0 0 -13

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

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

Prof. Joo Antnio de Vasconcelos 109


Programao Linear

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

Prof. Joo Antnio de Vasconcelos 110


Programao Linear

1.0000 0.8000 0.0000 0.0000 -0.6000 0.0000 -0.2000 0.6000 0.2000


0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000

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.

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
-3.0000 -1.0000 -3.0000 0.0000 0.0000 0.0000

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

Prof. Joo Antnio de Vasconcelos 111


Programao Linear

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(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.

Prof. Joo Antnio de Vasconcelos 112


Programao Linear

O algoritmo do Mtodo Simplex


Como dito anteriormente, o mtodo Simplex um algoritmo que possibilita a resoluo de
problemas de programao linear. Est basicamente fundamentado na idia de resolver
repetidas vezes um sistema de equaes lineares para obter uma sucesso de solues
bsicas viveis, cada uma melhor que a anterior, at chegar numa soluo vivel bsica
tima.

Incio

Passo Iterativo

No

Verifica o critrio de parada?


Sim

Figura 02: Fluxograma do algoritmo Simplex

Prof. Joo Antnio de Vasconcelos 113


Programao Linear

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

Existe uma No FIM !!


soluo bsica A soluo tima.
vivel melhor ?

Sim
Move-se para a soluo
bsica melhor

Figura 03: Fluxograma: Algoritmo Simplex

Prof. Joo Antnio de Vasconcelos 114


Programao Linear

INCIO
Forma Padro

Identificar uma Soluo Bsica Vivel inicial


Construir o quadro Simplex correspondente

Calcular os custos reduzidos

A soluo Sim FIM !!


tima? A soluo tima.
Critrio de Otimalidade
No
Identificar a varivel no-bsica que entra na base
Critrio de Entrada

FIM !!
timo no finito? Sim O problema no tem
Critrio de timo no finito timo finito.

No

Identificar a varivel bsica


que sai da base
Critrio de Sada

Calcular nova Soluo Bsica Vivel


atualizando o quadro Simplex

Figura 04: Fluxograma Iterativo do Mtodo Simplex

Prof. Joo Antnio de Vasconcelos 115

Você também pode gostar