Você está na página 1de 41

Algoritmo Simplex para

Programao Linear I
EA 044 Planejamento e Anlise
de Sistemas de Produo
DCA-FEEC-Unicamp ProfFernandoGomide
2
0 x
b Ax . .
cx max

a s
Modelo de Programao Linear
) 1 ( c ), 1 ( b ), ( A
) 1 ( x
n m n m
n

} 0 x b, Ax | R x ( P =
n
Poliedro
1-poliedros so conjuntos convexos
2- poliedros podem ser limitados ou ilimitados
ProfFernandoGomide
3
DCA-FEEC-Unicamp ProfFernandoGomide
0 ,
4800 2 4
1750
1500
1000 . .
9 12 max
2 1
2 1
2 1
2
1
2 1

+
+

+
x x
x x
x x
x
x a s
x x
Exemplo
4
DCA-FEEC-Unicamp ProfFernandoGomide
x
1
x
2
1000
1000
2000
2000
x
1
+

x
2

1
7
5
0

(
x
5

0
)
4
x
1
+

2
x
2

4
8
0
0

(
x
6

0
)
x
2
1500 (x
4
0)
x
1
1000 (x
3
0)
x*
soluo tima: x* = (650, 1100)
mximo local = mximo global
5
DCA-FEEC-Unicamp ProfFernandoGomide
Solues factveis
fronteira
interiores
extremos
Soluo tima
ponto da fronteira
nica ponto extremo
x
1
x
2
1000
1000
2000
2000
x
3
x
0
x
1
x
2
x
4
x
9
x
5
x
6
x
7
x
8
Fronteira
Extremo
Interior
No factveis
6
DCA-FEEC-Unicamp ProfFernandoGomide
Forma Padro Modelos de PL
0 , , , , ,
4800 2 4
1750
1500
1000 s.a.
9 12 max
6 5 4 3 2 1
6 2 1
5 2 1
4 2
3 1
2 1

= + +
= + +
= +
= +
+
x x x x x x
x x x
x x x
x x
x x
x x
OBS: para restries subtrai-se x
i
s variveis de excesso
x
3
, x
4
, x
5,
x
6
: variveis de folga
n
m
n
R x 0 x
R b b Ax s.a
R c cx (max) min

=

Forma padro
7
} 0 x b, Ax | R x ( P = =
n
Poliedro forma padro
n
m
n
R x 0 x
R b b Ax s.a
R c cx (max) min

=

Forma padro
P x significa que x uma soluo factvel
OBS: poliedros so conjuntos convexos e podem ser limitados ou ilimitados
ProfFernandoGomide
8
DCA-FEEC-Unicamp ProfFernandoGomide
pontos extremos: definidos pelas restries que esto
simultneamente ativas nos pontos
pontos extremos adjacentes: restries ativas diferem de um elemento
aresta: segmento de reta que conecta dois pontos
extremos
H
B
A
C
G
I
J
D
E
F
L
K
x
1
x
2
x
3
x
0
x
1
x
2
x
3
x
4
x
5
x
6
Aresta
9
DCA-FEEC-Unicamp ProfFernandoGomide
0 , , , , ,
4800 2 4
1750
1500
1000 s.a.
9 12 max
6 5 4 3 2 1
6 2 1
5 2 1
4 2
3 1
2 1

= + +
= + +
= +
= +
+
x x x x x x
x x x
x x x
x x
x x
x x
Solues Bsicas
400 , 350 , 1100 , 650
4800 0 2 4
1750 0
1500
1000
4 3 2 1
2 1
2 1
4 2
3 1
= = = =
= + +
= + +
= +
= +
x x x x
x x
x x
x x
x x
Bsicas
No bsicas
10
DCA-FEEC-Unicamp ProfFernandoGomide
x
1
x
2
1000
1000
2000
2000
x
1
+

x
2

1
7
5
0

(
x
5

0
)
4
x
1
+

2
x
2

4
8
0
0

(
x
6

0
)
x
2
1500 (x
4
0)
x
1
1000 (x
3
0)
x*
11
DCA-FEEC-Unicamp ProfFernandoGomide
Existncia de Solues Bsicas
4800 0 2 4
1750 0
1500
1000
2 1
2 1
4 2
3 1
= + +
= + +
= +
= +
x x
x x
x x
x x
4800 0 4
1750 0
1500 0 0
1000
6 1
5 1
3 1
= + +
= + +
= +
= +
x x
x x
x x
Soluo bsica existe se e somente se as colunas das restries de
de igualdade correspondentes s m variveis bsicas so linearmente
independentes (formam uma base)(soluo no degenerada).
0 2
0 0 2 4
0 0 1 1
1 0 1 0
0 1 0 1
det =
|
|
|
|
|

\
|
0
1 0 0 4
0 1 0 1
0 0 0 0
0 0 1 1
det =
|
|
|
|
|

\
|
12
DCA-FEEC-Unicamp ProfFernandoGomide
Soluo bsica factvel: soluo bsica no negativa
Solues bsicas factveis: pontos extremos de D
x
1
x
2
1000
1000
2000
2000
x
3
x
0
x
1
x
2
x
4
x
7
x
5
x
6
x
9
x
10
x
11
x
12
x
8
x
4
0
x
3
0
x
5
0
x
6
0
x
2
0
x
1

0 D
) 0 , 550 , 1500 , 200 , 0 , 1200 ( x
11
=
) 2200 , 750 , 0 , 0 , 1500 , 1000 ( x
9
=
) 0 , 350 , 1100 , 0 , 400 , 1000 ( x
2
=
13
Um ponto x de um conjunto convexo C um ponto extremo se no
existem dois pontos distintos, x
1
e x
2
em C tal que, para algum ,
0 < < 1
x = x
1
+ (1 ) x
2
Ponto extremo: definio
C
C
14
Considere um poliedro no vazio P = {x R
n
| Ax = b e x 0} . Um
vetor x um ponto extremo de P se e somente se x uma soluo
bsica factvel de Ax = b, x 0.
Teorema 1: equivalncia de pontos extremos e solues bsicas
Considere um modelo de PL na forma padro e sejamx
1
,..,x
k
solues
bsicas factveis do modelo. Ento, qualquer ponto x P pode ser
escrito como
onde ou d = 0 ou uma direo ilimitada e
Teorema 2: representao de solues bsicas factveis
Resumo dos Resultados Importantes

=
+ =
k
i
i
1 i
x d x
0 , 1
1 i
=

=
i
k
i
ProfFernandoGomide
15
Dado um modelo de programao linear na forma padro, ento:
3.1 se existe uma soluo factvel, ento existe uma soluo bsica
factvel
3.2 se existe uma soluo factvel tima, ento existe uma soluo
bsica factvel tima.
Teorema 3: resultado fundamental da programao linear
(resultado fundamental da PL sob o ponto de vista algbrico)
ProfFernandoGomide
16
Se um poliedro P = {x R
n
| Ax = b e x 0} no vazio, ento P
possui no mnimo um ponto extremo.
Colorrio 1: existncia de pontos extremos
Se existe uma soluo tima finita para um modelo de PL, ento
existe uma soluo tima finita que um ponto extremo de P.
Colorrio 2: soluo tima finita um ponto extremo
ProfFernandoGomide
17
O poliedro P possui no mximo um nmero finito de pontos extremos.
Colorrio 3: nmero de pontos extremos
Se o poliedro P limitado e no vazio, ento P o conjunto dos pontos
que so combinaes convexas de seus pontos pontos extremos.
Colorrio 4: representao de poliedros limitados
ProfFernandoGomide
18
Uma funo objetivo linear cx atinge seu mnimo sobre um poliedro
limitado P em um ponto extremo de P.
Teorema 4: resultado fundamental da programao linear
(resultado fundamental da PL sob o ponto de vista geomtrico)
Prova (Luenberger, 1973):
Sejam x
1
, x
2
, ..., x
k
pontos extremos de P. Como P finito e convexo,
todo ponto x P pode ser expresso como
x =
1
x
1
+
2
x
2
+ ... +
k
x
k
,
i
0, i = 1,....,k;
1
+
2
+ ...+
k
= 1
Logo cx =
1
(cx
1
) +
2
(cx
2
) + ... +
k
(cx
k
)
Seja z = min {cxi, i = 1,....,k}. Ento cx (
1
+
2
+ ...+
k
)z = z
Logo, o mnimo de cx sobre P z.
ProfFernandoGomide
19
Algoritmo Simplex
x
1
x
2
x
3
x
4
x
5
x
6
max c 12 9 0 0 0 0
1 0 1 0 0 0 1000
A 0 1 0 1 0 0 1500
1 1 0 0 1 0 1750
4 2 0 0 0 1 4800
N N B B B B
x
0
0 0 1000 1500 1750 4800
1-soluo bsica factvel inicial: ponto extremo
ProfFernandoGomide
20
DCA-FEEC-Unicamp ProfFernandoGomide
2-Direes de busca (direes simplex)
Direes simplex: so construdas aumentando-se uma nica varivel
no bsica de tal forma que as variveis no bsicas
restantes no sejam modificadas e determinando as
correes correspondentes para as variveis bsicas
necessrias para preservar as restries de igualdade
0 x A =
0
0
1
1 0 0 0 2 4
0 1 0 0 1 1
0 0 1 0 1 0
0 0 0 1 0 1
6
5
4
3
2
1
=
(
(
(
(
(
(
(
(

=
=
(
(
(
(

x
x
x
x
x
x
0
1
0
1 0 0 0 2 4
0 1 0 0 1 1
0 0 1 0 1 0
0 0 0 1 0 1
6
5
4
3
2
1
=
(
(
(
(
(
(
(
(

=
=
(
(
(
(

x
x
x
x
x
x
[ ] 4 1 0 1 0 1 x =
[ ] 2 1 1 0 1 0 x =
aumentando x
1
aumentando x
2
21
DCA-FEEC-Unicamp ProfFernandoGomide
3-Direes que melhoram objetivo e custo reduzido
0 9
2
1
1
0
1
0
] 0 , 0 , 0 , 0 , 9 , 12 [ ; 0 12
4
1
0
1
0
1
] 0 , 0 , 0 , 0 , 9 , 12 [
o minimiza de problemas para melhora, simplex direo 0
o maximiza de problemas para melhora, simplex direo 0
aumenta que simplex direo x , x c
x ], , , [ c f(x) cx ) x ( f
2 1
j
j
j j
2 1
1
j j
> =
(
(
(
(
(
(
(
(

= > =
(
(
(
(
(
(
(
(

=
<
>
= =
= = = =

=
c c
c
c
x c
c c c x c
n
n
j
L
custo reduzido
22
DCA-FEEC-Unicamp ProfFernandoGomide
4-Passo na direo de busca

<

= 0 : min
j
j
j
x
x
x
t
nenhuma componente de x
para a soluo bsica corrente
x
t
negativo problema ilimitado
x
1
x
2
x
3
x
4
x
5
x
6
max c 12 9 0 0 0 0
1 0 1 0 0 0 1000
A 0 1 0 1 0 0 1500
1 1 0 0 1 0 1750
4 2 0 0 0 1 4800
N N B B B B
x
0
0 0 1000 1500 1750 4800

x 1 0 -1 0 -1 -4
1000/-(-1) 1750/-(-1) 4800/-(-4)
{ } 1000 1200 , 1750 , 1000 min = =
23
x
1
x
2
1000
1000
2000
2000
x
1
+

x
2

1
7
5
0

(
x
5

0
)
4
x
1
+

2
x
2

4
8
0
0

(
x
6

0
)
x
2
1500 (x
4
0)
x
1
1000 (x
3
0)
x*
x
0
x
1
(
(
(
(
(
(
(
(

=
(
(
(
(
(
(
(
(

+
(
(
(
(
(
(
(
(

= + =
800
750
1500
0
0
1000
4
1
0
1
0
1
1000
4800
1750
1500
1000
0
0
x x x
0 1
varivel x
1
entra na base
varivel x
3
sai da base
5-Atualizao da base
24
Algoritmo Simplex: Resumo
Passo 0 Inicializao: com soluo bsica factvel x
0
, t 0;
Passo 1 Direes simplex: construir x associada com no bsica x
j
calcular custo reduzido c
j
= c x;
Passo 2 Otimalidade: se nenhuma direo melhora ( c
j
> 0 para max
c
j
< 0 para min), ento parar, x
t
tima; seno escolher nova
direo x que melhora valor funo objetivo; seja x
p
a varivel
que entra na base;
Passo 3 Passo: se todos componentes de x forem no negativas, ento
parar, o modelo ilimitado; seno determinar e escolher varivel
que deixa a base, x
r
: ( x
r
/ - x
r
);
Passo 4 Novo ponto e base: determinar nova soluo x
t+1
= x
t
+ x
t+1
e
trocar x
r
por x
p
; t = t + 1; ir para o Passo 1;
ProfFernandoGomide
25
x
1
x
2
1000
1000
2000
2000
x
1
+

x
2

1
7
5
0

(
x
5

0
)
4
x
1
+

2
x
2

4
8
0
0

(
x
6

0
)
x
2
1500 (x
4
0)
x
1
1000 (x
3
0)
x
0
x
1
x
2
x
3
ProfFernandoGomide
26
Tableau Simplex
Mtodo de eliminao de Gauss e o algoritmo simplex
1- Se c
j
> 0 (c
j
< 0, min) ento coluna q = max
j
{c
j
, j N }
linha p = min
i
{b
i
/a
iq
, a
iq
> 0, i =1,,m}
Se c
j
< 0, j (c
j
> 0, min) ento soluo tima
Se a
iq
> 0 ento o modelo ilimitado
2- Atualizar elementos do tableau
x
1
x
2
x
3
x
4
x
5
x
6
a
11
a
12
1 0 0 0
b
1
a
21
a
22
0 1 0 0 b
2
a
31
a
32
0 0 1 0 b
3
a
41
a
42 0 0 0 1
b
4
c
1
c
2
0 0 0 0
-z
ProfFernandoGomide
27
Atualizao do Tableau Simplex
q
x
1
x
2
x
3
.
x
q
.
x
n
y11 y12 y13 . . y1
n
y1,
n
+1
y
21
y
22
y
23
. .
y1
n y2
,n
+1
. . . . . . . .
p
yp1 .
ypq .
. . . . . . . .
y
m
1 y
m
2 y
m
3 . .
y1
n
y
m
,
n
+1
y
m+
1,1 y
m
+1,2 y
m
+1,3 . . y
m
+1,
n
y
m
+1,
n
+1
p i
y
y
y
p i y
y
y
y y
pq
pj
'
pj
iq
pq
pj
ij
'
ij
= =
=
y
pq
= piv
ProfFernandoGomide
28
x
1
x
2
x
3
x
4
x
5
x
6
1 0 1 0 0 0 1000
0 1 0 1 0 0 1500
1 1 0 0 1 0 1750
4 2 0 0 0 1 4800
12 9 0 0 0 0 0
q = 1
p = 1
{ } { }
{ } 1 1200 , 1750 , , 1000
i
min
a
b
,
a
b
,
a
b
,
a
b
i
min p
1 9 , 12 max c , c max q
41
4
31
3
21
2
11
1
j
2 1
j
= =
)
`

=
= = =
t = 0
ProfFernandoGomide
29
x
1
x
2
x
3
x
4
x
5
x
6
1 0 1 0 0 0 1000
0 1 0 1 0 0 1500
0 1 -1 0 1 0 750
0 2 -4 0 0 1 800
0 9 -12 0 0 0 -12000
q = 2
p = 4
t = 1
{ } { }
{ } 4 400 , 750 , 1500 ,
i
min
a
b
,
a
b
,
a
b
,
a
b
i
min p
2 12 , 9 max c , c max q
42
4
32
3
22
2
12
1
j
3 2
j
= =
)
`

=
= = =
ProfFernandoGomide
30
x
1
x
2
x
3
x
4
x
5
x
6
1 0 1 0 0 0 1000
0 0 2 1 0 -0.5 1100
0 0 1 0 1 -0.5 350
0 1 -2 0 0 0.5 400
0 0 6 0 0 -4.5 -15600
t = 2
q = 3
p = 3
{ } { }
{ } 3 , 350 , 550 , 1000
i
min
a
b
,
a
b
,
a
b
,
a
b
i
min p
3 5 . 4 , 6 max c , c max q
43
4
33
3
23
2
13
1
j
6 3
j
= =
)
`

=
= = =
ProfFernandoGomide
31
t = 3
x
1
x
2
x
3
x
4
x
5
x
6
1 0 0 0 -1 0.5 650
0 0 0 1 -2 0.5 400
0 0 1 0 1 -0.5 350
0 1 0 0 2 -0.5 1100
0 0 0 0 -6 -1.5 -17700
x* = ( 650 1100 350 400 0 0 )
ProfFernandoGomide
32
Algoritmo Simplex com Duas Fases
Passo 0 Modelo Artificial: se soluo bsica factvel x
0
, ento ir para 3;
seno criar modelo artificial somando (subtraindo) variveis arti-
ficiais;
Passo 1 Fase I: inicializar modelo artificial com soluo bsica artifical
factvel e minimizar soma das variveis artificiais;
Passo 2 Factibilidade: se Fase I termina com soma > 0, ento parar (modelo
original infactvel); seno utilizar soluo final como soluo bsica
factvel inicial para o modelo original;
Passo 3 Fase II: aplicar algoritmo simplex inicializando-o com a soluo
bsica factvel obtida no Passo 2 para obter ou a soluo tima,
ou detetar que o problema ilimitado.
ProfFernandoGomide
33
0 , ,
3 3 3
4 2 2 s.a.
4 min
3 2 1
3 2 1
3 2 1
3 2 1

= + +
= + +
+ +
x x x
x x x
x x x
x x x
Fase I
0 , , , ,
3 3 3
4 2 2 s.a.
min
5 4 3 2 1
5 3 2 1
4 3 2 1
5 4

= + + + +
= + + +
+
x x x x x
x x x x
x x x x
x x
Modelo
Artificial
ProfFernandoGomide
34
x
1
x
2
x
3
x
4
x
5
2 1 2 1 0 4
3 3 1 0 1 3
0 0 0 -1 -1
0
x
1
x
2
x
3
x
4
x
5
2 1 2 1 0 4
3 3 1 0 1 3
5 4 3 0 0
7
Tableau inicial
Primeiro tableau
ProfFernandoGomide
35
x
1
x
2
x
3
x
4
x
5
0 -1 4/3 1 -2/3 2
1 1 1/3 0 1/3 1
0 -1 4/3 0 -5/3
2
x
1
x
2
x
3
x
4
x
5
0 -3/4 1 3/4 -1/2 3/2
1 5/4 0 -1/4 1/2 1/2
0 0 0 -1 -1
0
Terceiro tableau
Segundo tableau
ProfFernandoGomide
36
0 , ,
3 3 3
4 2 2 s.a.
4 min
3 2 1
3 2 1
3 2 1
3 2 1

= + +
= + +
+ +
x x x
x x x
x x x
x x x
Fase II: tableau inicial
x
1
x
2
x
3
0 -3/4 1 3/2
1 5/4 0 1/2
-4 -1 -1 0
ProfFernandoGomide
37
x
1
x
2
x
3
0 -3/4 1 3/2
1 5/4 0 1/2
0 13/4 0 7/2
Primeiro tableau
x
1
x
2
x
3
3/5 0 1 9/5
4/5 1 0 2/5
-13/5 0 0 11/5
Segundo tableau
ProfFernandoGomide
38
0
5
10
15
20
25
30
35
40
0 5 10 15 20
iteraes
v
a
l
o
r

(
m
a
x
)
Solues degeneradas
Soluo bsica factvel degenerada se restries de no negatividade
para algumas variveis bsicas esto ativas ( algumas variveis bsicas
so nulas ) vrias bases produzem a mesma soluo bsica
ProfFernandoGomide
39
H
B
A
C
G
I
J
D
E
F
L
K
x
1
x
2
x
3
x
3
x
1
x
2
ProfFernandoGomide
40
Convergncia e Ciclagem
se a cada iterao existe um valor > 0, ento o algoritmo simplex
pra aps um nmero finito de iteraes, indicando ou a soluo
tima ou concluindo que o modelo ilimitado.
com o algoritmo de duas fases, pode-se tambm detetar infactibilidade.
existncia de solues degeneradas pode provocar que = 0.
sequncia de solues pode se repetir ciclagem
)! ( !
!
bases de mximo n
o
m n m
n

=
ProfFernandoGomide
41
Este material refere-se s notas de aula do curso EA 044
Planejamento e Anlise de Sistemas de Produo da Faculdade de
Engenharia Eltrica e de Computao da Unicamp. No substitui o
livro texto, as referncias recomendadas e nem as aulas expositivas.
Este material no pode ser reproduzido sem autorizao prvia dos
autores. Quando autorizado, seu uso exclusivo para atividades de
ensino e pesquisa em instituies sem fins lucrativos.
Observao
DCA-FEEC-Unicamp ProfFernandoGomide

Você também pode gostar