You are on page 1of 9

Método Simplex.

Simplex.
OO método
método Simplex
Simplex éé um
um algoritmo
algoritmo que
que permite
permite resolver
resolver problemas
problemas
de Programação Linear.
de Programação Linear.

AAideia
ideiabásica
básicadodométodo
métodoSimplex
Simplexconsiste
consisteem
emresolver
resolverrepetidas
repetidasvezes
vezesum
umsistema
sistema
de
deequações
equaçõeslineares
linearespara
paraobter
obteruma
umasucessão
sucessãodedeSBA,
SBA,cada
cadauma
uma"melhor"
"melhor"do
doque
que
aaanterior, até se chegar a uma SBA óptima.
anterior, até se chegar a uma SBA óptima.

Cada
Cada nova
nova SBA
SBA éé obtida
obtida aa partir
partir da
da anterior,
anterior, substituindo
substituindo
uma
uma variável
variável básica
básica por
por uma
uma variável
variável não
não básica:
básica:
aa variável
variável não
não básica
básica que
que entra
entra éé substituída
substituída pela
pela variável
variável
básica
básica que sai..
que sai

©2000-2001 Prof.ª Gladys Castillo

Algoritmo Primal Simplex:


Simplex: Fluxograma

Identificar uma SBA inicial Duas soluções básicas que


apenas diferem numa
variável básica designam-
se por soluções básicas
adjacentes.

Existe alguma
SBA adjacente Não
que seja
melhor? FIM !!!
a solução é
Sim óptima
Mover-
Mover-se para uma SBA
Uma SBA é óptima quando
"melhor" nenhuma das SBA
adjacentes é “melhor”,

©2000-2001 Prof.ª Gladys Castillo

1
INÍCIO
Forma Padrão

Identificar uma SBA inicial.


Construir o quadro Simplex correspondente

Calcular os custos reduzidos

A solução é FIM
óptima ? Sim Solução óptima !!!
critério de optimalidade
Não
Identificar a variável não básica que
entra
critério de entrada

Óptimo não FIM


O problema não tem
finito? óptimo finito
critério de óptimo não finito Sim
Não
Identificar a variável básica que sai
critério de saída

Calcular nova SBA


Actualizar o quadro Simplex
©2000-2001 Prof.ª Gladys Castillo

Inicialização:
Inicialização: Redução à Forma Padrão.
Forma Canónica Forma Padrão
Maximizar
Maximizar Z=
Z=33xx11++55xx22 Maximizar
Maximizar Z=
Z=33xx11++55xx22
sujeito
sujeitoaa sujeito
sujeitoaa
xx1 ≤≤ 44 xx1 ++xx3 == 44
1
22xx2 ≤≤ 12
12
1
22xx2
3
++xx4 ==12
2 12
33xx1 ++ 22xx2 ≤≤18
18 33xx1 ++ 22xx2
2 4
++xx5 ==18
1 2 1 2 5 18
xx1 , ,xx2 ≥0 xx1 , ,xx2 , ,xx3 , ,xx4 , ,xx5 ≥0
1 2 ≥0 1 2 3 4 5 ≥0

A solução do sistema corresponde à SBA inicial X0=(0,0,4,12,18)

variáveis
variáveisbásicas
básicas xx3 , ,xx4 , , xx5
3 4 5

variáveis
variáveisnão
nãobásicas
básicas xx1 , ,xx2
1 2

©2000-2001 Prof.ª Gladys Castillo

2
Algoritmo Primal Simplex.
Simplex.
Exemplo: 1º quadro, passo 1.
Início: Construção do 1º QUADRO.

coeficientes das variáveis na f.o. valores das


cj 3 5 0 0 0
variáveis
básicas
coeficientes das
variáveis básicas na CB XB x1 x2 x3 x4 x5 b
f.o.

0 x3 1 0 1 0 0 4
0 x4 0 2 0 1 0 12
0 x5 3 2 0 0 1 18 valor da
f.o.
-zj 3 5 0 0 0 0
os custos reduzidos
das variáveis básicas
são sempre nulos

©2000-2001 Prof.ª Gladys Castillo

Algoritmo Primal Simplex.


Simplex.
Exemplo: 1º quadro, passo 2
Passo 2: Critério de optimalidade:
Existe algum custo reduzido positivo?

--zzj j 33 55 00 00 00
Existe
algum
-zj >0 ?
Não FIM 3 >0,
a solução é 5 >0 ?
óptima
Sim Sim

Passar ao passo seguinte Passar ao passo seguinte

©2000-2001 Prof.ª Gladys Castillo

3
Algoritmo Primal Simplex.
Simplex.

Passo 3: Determinar a variável não básica que entra.

Critério de entrada:
max {- zj j | -- zzj j>0
max { - z | >0 }} ==-- zzrr r coluna
jj pivotal

Existe FIM
Não o problema
algum não tem
xir >0 ? óptimo finito

Sim

Passar ao passo seguinte


©2000-2001 Prof.ª Gladys Castillo

Algoritmo Primal Simplex.


Simplex.
Exemplo: 1º quadro, passo 3
Passo 3: Determinar a variável não básica que entra.

a variável que coluna


entra: x2 cj 3 5 0 0 0 pivotal

CB XB x1 x2 x3 x4 x5 b
0 x3 1 0 1 0 0 4
0 x4 0 2 0 1 0 12
0 x5 3 2 0 0 1 18
-zj 3 5 0 0 0 0
max {-- zj | - zj >0 } =5

©2000-2001 Prof.ª Gladys Castillo

4
Algoritmo Primal Simplex.
Simplex.

Passo 4: Determinar a variável básica que sai.


1º. Seleccionar os coeficientes xi r >0
2º. Dividir cada coeficiente xi0 da coluna dos termos
independentes pelo coeficiente xi r >0 da coluna pivotal r.
3º. Seleccionar a linha s onde se alcance o menor dos
quocientes (regra do menor quociente):

 xi  x
ϑ = min 0
xir >0= s 0

 xir  xsr
0
i

©2000-2001 Prof.ª Gladys Castillo

Algoritmo Primal Simplex:


Simplex:
Exemplo: 1º quadro, passo 4
Passo 4: Determinar a variável básica que sai.

coluna pivotal: j
cj 3 5 0 0 0 =2
CB XB x1 x2 x3 x4 x5 b mínimo
a variável
que sai: 0 x3 1 0 1 0 0 4 12/2= 6
x4 0 x4 0 2 0 1 0 12
0 18/2= 9
x5 3 2 0 0 1 18
pivot
-zj 3 5 0 0 0 0
máximo

©2000-2001 Prof.ª Gladys Castillo

5
Algoritmo Primal Simplex.
Simplex.

Passo 5:
2º. Construir um novo quadro simplex aplicando o Método de
redução Gauss-Jordan.
 Reduzir a 1 o número pivot.
para isto é preciso dividir toda a linha pivotal pelo pivot.

linha pivotal
Nova linha pivotal =
pivot

 Reduzir a 0 as outras componentes da coluna pivotal.


para isto, é preciso calcular todas a linhas (excepto a linha pivotal),
pela seguinte fórmula:

nova linha = linha – (componente da coluna pivotal x nova linha pivotal )

©2000-2001 Prof.ª Gladys Castillo

Algoritmo Primal Simplex.


Simplex.
Passo 5: construir o 2º quadro.
Linha 1: NÃO MUDA cj
o coeficiente na coluna 3 5 0 0 0
pivot é igual a 0. x1 x2 x3 x4 x5
CB XB b
Linha Pivotal: 0 x3 1 0 1 0 0 4
Nova linha 2= Linha 2 / 0 x4 0 2 0 1 0 12
pivot 0 x5 3 2 0 0 1 18
-zj 3 5 0 0 0 0
Nova linha 3= linha 3 - (2
x nova linha pivotal) 0 x3 1 0 1 0 0 4
3 2 0 0 1 18 5 x2 1
0 1 0 2 0 6
-(2) 0 1 0 1/2 0 6 0 x5 3 0 0 -1 1 6
3 0 0 -1 1 6
-zj 3 0 0 - 52 0 - 30
Nova linha –Z= linha (-z) -
( 5 x nova linha pivotal) A SBA X1=( 0, 6, 4, 0, 6 )
©2000-2001 Prof.ª Gladys Castillo

6
Algoritmo Primal Simplex.
Simplex.
Exemplo: 2º quadro, passo 2.
Passo 2: Critério de optimalidade:
Existe algum custo reduzido positivo?

3 0 0 - 52 0
Existe
algum
-zj >0 ?

33>>00
Sim

Passar ao passo seguinte

©2000-2001 Prof.ª Gladys Castillo

Algoritmo Primal Simplex.


Simplex.
Exemplo: 2º quadro, passo 3.
Passo 3: Determinar a variável não básica que entra.

a variável que
entra: x1 3 5 0 0 0
coluna
pivotal
0 x3 1 0 1 0 0 4
1
5 x2 0 1 0 2 0 6
0 x5 3 0 0 -1 1 6

-zj 3 0 0 - 52 0 -30
0

max { - zj | - zj >0 } =3

©2000-2001 Prof.ª Gladys Castillo

7
Algoritmo Primal Simplex.
Simplex.
Exemplo: 2º quadro, passo 4.
Passo 4: Determinar a variável básica que sai.
coluna pivotal: j =1

cj 3 5 0 0 0
CB XB x1 x2 x3 x4 x5 b 4/1= 4
a variável
que sai: x5
0 x3 1 0 1 0 0 4
1
5 x2 0 1 0 2 0 6 6/3= 2

linha pivotal: 0 x5 3 0 0 -1 1 6 mínimo


(menor
i =3
-zj 3 0 0 - 52 0 -30
0
quociente)

pivot
máximo

©2000-2001 Prof.ª Gladys Castillo

Algoritmo Primal Simplex.


Simplex.
Passo 5: construir o 3º quadro.

Linha Pivotal:
cj 3 5 0 0 0
Nova linha 3= Linha 3 / pivot
CB XB x1 x2 x3 x4 x5 b
0 x3 1 0 1 0 0 4
1
linha 2: NÃO MUDA
o coeficiente na coluna pivotal é
0 x2 0 1 0 2 0 6
igual a 0. 0 x5 3 0 0 -1 1 6
-zj 3 0 0 - 5
2
0 30
0
Nova linha 1= linha 1 - (1
x nova linha pivotal) 0 x3 1 1
0 0 1 3 - 3 2
1 0 1 0 0 4
5 x2 0 1 0 1
0 6
-(1) 1 0 0 -1/3 1/3 2 2
0 0 1 1/3 -1/3 2 3 x1 1 0 0 1
- 3
1
3 2
-zj 0 0 0 - 32 -1 -36
6
©2000-2001 Prof.ª Gladys Castillo

8
Algoritmo Primal Simplex.
Simplex.
Exemplo: 3º quadro.

3 5 0 0 0

0 x3 0 0 1 1 1
- 3 2
3
5 x2 0 1 0 1
2 0 6
x1 1 1
3 1 0 0 - 3 3 2

todos os custos são -zj 0 0 0 - 32 -1 -36


6
não positivos, logo
a solução é óptima

SBAXX2==(2,
AASBA 2
(2,6,
6,2,
2,0,
0,00))ééaasolução
soluçãoóptima
óptima

©2000-2001 Prof.ª Gladys Castillo

Algoritmo Primal Simplex.


Simplex.
Exemplo: 3º quadro, passo 2.
Passo 2: Critério de optimalidade:
Existe algum custo reduzido positivo?

-zj 0 0 0 - 32 -1

FIM
FIM!!!
!!!
Existe Não 2
algum aaSBA
SBAXX2==((22,6,
,6,2,
2,0,
0,00))
-zj >0 ?
ééóptima
óptima!!!
!!!

©2000-2001 Prof.ª Gladys Castillo

You might also like