© UNESP 6 Agosto 2008
Autor: Anibal Tavares de Azevedo
Limeira, 17 de Abril 2013
TÓPICOS EM PESQUISA OPERACIONAL
AULA 6 – Programação Linear
2
FORMULAÇÃO MATEMÁTICA
EXERCÍCIO 1:Em uma fábrica deve ser decidido a quantidade de produção x1 e x2 de dois produtos P1 e P2. O lucro com o produto P1 é de R$ 5,00 por unidade e do produto P2 é de R$ 2,00 por unidade. Existe uma máquina para processar apenas o produto P1 cuja capacidade máxima é de 3 unidades de tempo e para o produto P2, 4 unidades. Nestas duas máquinas gasta-se 1 unidade de tempo para processar 1 produto. Existe uma máquina capaz de processar tanto o produto P1 como o produto P2 cuja capacidade máxima de tempo é de 9 unidades de tempo. Assumindo que nesta máquina o tempo para processar o produto P2 é o dobro do gasto para processar o produto P1 e P1 gasta-se 1 unidade de tempo, pede-se:
© UNESP 6 Agosto 2008
x
1x
2Máquina 1
3 unidades
de tempo
Máquina 2
4 unidades
de tempo
x
1x
2Máquina 3
9 unidades
de tempo
x
2x
1Tempo
1x
Tempo
2x
Tempo
1x
Tempo
1x
4
© UNESP 6 Agosto 2008
Max Z=5x
1+ 2x
2S.a.: x
1≤ 3
x
2≤ 4
x
1+ 2x
2≤ 9
x
1, x
2≥ 0
Max Z=5x
1+ 2x
2S.a.: x
1+ x
3= 3
x
2+ x
4= 4
x
1+ 2x
2+ x
5= 9
x
1, x
2, x
3, x
4, x
5≥ 0
MÉTODO SIMPLEX TABULAR
© UNESP 6 Agosto 2008
variáveis, as constantes das restrições e quais variáveis são básicas e não-básicas.
Z -5x
1–2x
2= 0
x
1+x
3= 3
x
2+x
4= 4
x
1+ 2x
2+x
5= 9
Z = 5x
1+ 2x
2x
1+ x
3= 3
x
2+ x
4= 4
x
1+ 2x
2+ x
5= 9
Z x1 x2 x3 x4 x5 rhs VB
Z X3
X4
X5
Exercício
1:
Completar
o “tableau” inicial !!
6
O método simplex anteriormente empregado é chamado de Simplex analítico. Uma alternativa é empregar a forma tabular (“tableau”) que armazena apenas os coeficientes das variáveis, as constantes das restrições e quais variáveis são básicas e não-básicas.
Z -5x
1–2x
2= 0
x
1+x
3= 3
x
2+x
4= 4
x
1+ 2x
2+x
5= 9
Z = 5x
1+ 2x
2x
1+ x
3= 3
x
2+ x
4= 4
x
1+ 2x
2+ x
5= 9
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X
© UNESP 6 Agosto 2008
Início
Determine uma solução inicial
Z tem coef. positivos?
Encontrou a solução ótima
Fim
1. Escolha uma variável
não-básica xi com
coeficiente positivo.
2. Determine a variável básica xj que limita xi
e vira não-básica.
3. Modifique as equações
das restrições e a
função objetivo.
Sim
Não
Algoritmo para resolução analítica
8
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X3
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5
1
Fornecer solução básica factível inicial:(x1, x2, x3, x4, x5) = (0, 0, 3, 4, 9)
Determinar qual variável não-básica (x1, x2) deverá se tornar
básica (“sair do nível zero”).
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X3
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5
Coluna pivô
Usando o critério do maior aumento ou do primeiro aumento, escolhe-se a variável x1 para ser básica (ou entrar na base).
10
Z x1 x2 x3 x4 x5 rhs VB Raio
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X3 3
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5 9
3
Determinar variável que sai da base: x3Linha pivô
Deve-se determinar qual variável sairá da base. Verificando-se qual o maior incremento possível, obtém-se que
•••• x3 limita o aumento de x1 em até 3.
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X3
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5
4
Obter nova base: (x1, x4, x5).Linha pivô
Para indicar que x3 passou a ser variável não-básica, deve-se
atualizar o quadro de modo que todas as variáveis básicas sejam escritas em função de x3 e não mais em função de x1 (que
agora é básica). O procedimento computacional equivale à subtrair a linha de x3 das demais de modo a “zerar” os valores
contidos na coluna x1. Na antiga linha de x3 deixar apenas o
coeficiente 1 na coluna correspondente à variável x1.
12
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5 Manter!
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5
××××
(-1)
4
Obter nova base: (x1, x4, x5).© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X5
××××
(5)
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X5
14
4
Obter nova solução básica factível:(x1, x2, x3, x4, x5) = (3, 0, 0, 4, 6).
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X5
Ao final da primeira iteração é possível perceber que ainda é possível obter uma solução melhor (uma das variáveis não-básicas, x2, ainda possível coeficiente negativo).
1
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X5
2
Determinar variável não-básica que entrana base: x2
Coluna pivô
Usando o critério do maior aumento ou do primeiro aumento, escolhe-se a variável x2 para ser básica (ou entrar na base).
16
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB Raio
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4 4
0 0 2 -1 0 1 6 X5 3
3
Determinar variável que sai da base: x5Linha pivô
Deve-se determinar qual variável sairá da base. Verificando-se qual o maior incremento possível, obtém-se que:
•••• x4 limita o aumento de x2 em até 4.
• x5 limita o aumento de x2 em até 3.
Logo, x5 deve deixar de ser básica (sair da base).
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X5
Linha pivô
Para indicar que x5 passou a ser variável não-básica, deve-se
atualizar o quadro de modo que todas as variáveis básicas sejam escritas em função de x5 e não mais em função de x2 (que
agora é básica). O procedimento computacional equivale à subtrair a linha de x5 das demais de modo a “zerar” os valores
contidos na coluna x2. Na antiga linha de x5 deixar apenas o
coeficiente 1 na coluna correspondente à variável x2.
18
Z x1 x2 x3 x4 x5 rhs VB
Dividir por 2 !
4
Obter nova base: (x1, x2, x4).Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X2
Exercício 2: Atualizar o quadro
com a operação anterior!!
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 1 -1/2 0 1/2 3 X2
Dividir por 2 !
4
Obter nova base: (x1, x2, x4).Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X2
20
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 1 -1/2 0 1/2 3 X2
××××
(-1)
4
Obter nova base: (x1, x2, x4).Z x1 x2 x3 x4 x5 rhs VB
Exercício 3: Atualizar o quadro
com a operação anterior!!
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 1 -1/2 0 1/2 3 X2
××××
(-1)
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 0 1/2 1 -1/2 1 X4
0 0 1 -1/2 0 1/2 3 X2
22
Z x1 x2 x3 x4 x5 rhs VB
4
Obter nova base: (x1, x2, x4).Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 0 1/2 1 -1/2 1 X4
0 0 1 -1/2 0 1/2 3 X2
××××
(2)
Exercício 4: Atualizar o quadro
com a operação anterior!!
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 0 0 4 0 1 21 Z
0 1 0 1 0 0 3 X1
0 0 0 1/2 1 -1/2 1 X4
0 0 1 -1/2 0 1/2 3 X2
4
Obter nova base: (x1, x2, x4).Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 0 1/2 1 -1/2 1 X4
0 0 1 -1/2 0 1/2 3 X2
××××
(2)
24
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 0 0 4 0 1 21 Z
0 1 0 1 0 0 3 X1
0 0 0 1/2 1 -1/2 1 X4
0 0 1 -1/2 0 1/2 3 X2
4
Obter nova solução básica factível:(x1, x2, x3, x4, x5) = (3, 3, 0, 1, 0).
Ao final da segunda iteração é possível perceber a solução ótima foi obtida, pois nenhuma das variáveis não-básicas, x3 ou
x5, tem coeficiente negativo. A função objetivo nesta solução
é, de acordo com o “Tableau”, Z = 21. De fato, para (x1, x2,
x3, x4, x5) = (3, 3, 0, 1, 0), têm-se:
Z = 5x1 + 2x2 = 5*3 + 2*3 = 15 + 6 = 21.
© UNESP 6 Agosto 2008
4
0
3
3
1
(3,3)
x
1+ 2x
2+ x
5=9
x
15
x
2+ x
4= 4
RESUMO RESOLUÇÃO
26
4
x
23
(1,4)
(3,3)
x
1+ 2x
2+ x
5=9
Solução: z = 0 ( x1, x2, x3, x4, x5 )
=
(0, 0, 3, 4, 9)
x
1+ x
3= 3
© UNESP 6 Agosto 2008
4
x
20
3
3
1
(1,4)
(3,3)
x
1+ 2x
2+ x
5=9
x
15
x
1+ x
3= 3
x
2+ x
4= 4
A variável não-básica x1(valor zero) vira básica e
passa a valer 3.
28
© UNESP 6 Agosto 2008
4
x
20
3
3
1
(1,4)
(3,3)
x
1+ 2x
2+ x
5=9
x
15
x
1+ x
3= 3
x
2+ x
4= 4
Solução: z = 15 ( x1, x2, x3, x4, x5 )
=
( 3, 0, 0, 4, 6 )
© UNESP 6 Agosto 2008
4
0
3
3
1
(3,3)
x
1+ 2x
2+ x
5=9
x
15
x
2+ x
4= 4
A variável não-básica x2(valor zero) vira básica e
passa a valer 3.
30
4
x
23
(1,4)
(3,3)
x
1+ 2x
2+ x
5=9
x
1+ x
3= 3
x
2+ x
4= 4
Solução: z = 21 ( x1, x2, x3, x4, x5 )
=
( 3, 3, 0 , 1 , 0 )
© UNESP 6 Agosto 2008
4
x
20
3
3
1
(1,4)
(3,3)
x
15
Max Z =
21 – 4x
3- x
5Solução ótima
32
© UNESP 6 Agosto 2008
4
x
20
3
3
1
(1,4)
(3,3)
x
15
© UNESP 6 Agosto 2008
S.a.: x
1+ x
3= 3
x
2+ x
4= 4
x
1+ 2x
2+ x
5= 9
x
1, x
2, x
3, x
4, x
5≥ 0
1
0
0
2
1
0
1
0
1
0
0
0
1
0
1
5 4 3 2 1 x x x x x
3 2 1b
b
b
=
A
x
b
34
ÁLGEBRA DO MÉTODO SIMPLEX
1
0
0
2
1
0
1
0
1
0
0
0
1
0
1
5 4 3 2 1 x x x x x
9
4
3
=
A
x
b
[ x
Nx
B]
© UNESP 6 Agosto 2008
1
0
0
2
1
0
1
0
1
0
0
0
1
0
1
5 4 3 2 1 x x x x x
9
4
3
=
A
x
b
N
B
[ x
Nx
B]
Variáveis básicas Variáveis não-básicas Colunas das variáveis não-básicas Colunas das variáveis básicas 36
© UNESP 6 Agosto 2008
ÁLGEBRA DO MÉTODO SIMPLEX
Seja o P.P.L.:
0 x >
b A x =
ctx
z = (MAX)
s.a.
Onde: A (m x n) , n > m . Para calcular uma solução básica a partir de um conjunto de variáveis básicas e não-básicas, basta empregar:
x
B
= B
-1
b - B
-1
N x
N
Bx
B
+ Nx
N
= b
© UNESP 6 Agosto 2008
x
B
= B
-1
b - B
-1
N x
N
1
0
0
2
1
0
1
0
1
0
0
0
1
0
1
x
N
= 0
5 4 3 2 1 x x x x x
9
4
3
=
b
B
Logo: = = − 9 4 3 9 4 3 1 0 0 0 1 0 0 0 1 1 5 4 3 x x x0
38ÁLGEBRA DO MÉTODO SIMPLEX
Exemplo 2: Seja o ponto no qual as variáveis básicas são (x1, x2, x4)e as variáveis não-básicas são (x3, x5) = (0, 0). Então:
1
0
0
2
1
0
1
0
1
0
0
0
1
0
1
x
N
= 0
5 4 3 2 1 x x x x x
9
4
3
=
b
B
Logo: x 1 0 0 −1 3 3
© UNESP 6 Agosto 2008
Seja o P.P.L.:
0 x >
b A x =
ctx
z = (MAX)
s.a.
Seja uma base qualquer factível:
FORMA PADRÃO
cBBBBtxB B B B + cNNNNt xN N N N = z (MAX) B xB B B B + N xN N N N = b
xB B B B > 0, xN N N N > 0
cB cNNNN
B N
xBBBB
xNNNN
m
n - m
z
b
=
A (m ××××
n), n > m
40
© UNESP 6 Agosto 2008
ÁLGEBRA DO MÉTODO SIMPLEX
Seja:
x
B
= B
-1
b - B
-1
N x
N
c
B
t
(B
-1
b - B
-1
N x
N
) + c
N
t
x
N
= z (MAX)
Substituindo na função objetivo:
c
B
t
B
-1
b + (c
N
t
- c
B
t
B
-1
N )x
N
= z (MAX)
ππππ
z
0
0 x
BBBB+ (c
Nt-
ππππ
N) x
N N N N= z (MAX) - z
0I x
B B B B+ B
-1N x
N N N N= B
-1b
x
B B B B> 0 , x
N N N N> 0
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X3
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5
0 x
BBBB+ (c
Nt-
ππππ
N) x
N N N N= z (MAX) - z
0I x
B B B B+ B
-1N x
N N N N= B
-1b
x
B B B B> 0 , x
N N N N> 0
42
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X3
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5
MÉTODO SIMPLEX TABULAR
Exemplo 3: Seja o ponto no qual as variáveis básicas são (x3, x4, x5)e as variáveis não-básicas são (x1, x2) = (0, 0). Então:
0 x
BBBB+ (c
Nt-
ππππ
N) x
N N N N= z (MAX) - z
0I x
+ B
-1N x
= B
-1b
A
B
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X3
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5
Exemplo 3: Seja o ponto no qual as variáveis básicas são (x3, x4, x5)e as variáveis não-básicas são (x1, x2) = (0, 0). Então:
0 x
BBBB+ (c
Nt-
ππππ
N) x
N N N N= z (MAX) - z
0I x
B B B B+ B
-1N x
N N N N= B
-1b
x
B B B B> 0 , x
N N N N> 0
C
C
D
D
44
© UNESP 6 Agosto 2008
Z x1 x2 x3 x4 x5 rhs VB
1 -5 -2 0 0 0 0 Z
0 1 0 1 0 0 3 X3
0 0 1 0 1 0 4 X4
0 1 2 0 0 1 9 X5
MÉTODO SIMPLEX TABULAR
Exemplo 3: Seja o ponto no qual as variáveis básicas são (x3, x4, x5)e as variáveis não-básicas são (x1, x2) = (0, 0). Então:
0 x
BBBB+ (c
Nt-
ππππ
N) x
N N N N= z (MAX) - z
0I x
B B B B+ B
-1N x
N N N N= B
-1b
x
B B B B> 0 , x
N N N N> 0
E
E
F
© UNESP 6 Agosto 2008
0 x
BBBB+ (c
Nt-
ππππ
N) x
N N N N= z (MAX) - z
0I x
B B B B+ B
-1N x
N N N N= B
-1b
x
B B B B> 0 , x
N N N N> 0
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X5
A
A
B
B
46
MÉTODO SIMPLEX TABULAR
0 x
BBBB+ (c
Nt-
ππππ
N) x
N N N N= z (MAX) - z
0I x
+ B
-1N x
= B
-1b
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X5
C
C
D
© UNESP 6 Agosto 2008
0 x
BBBB+ (c
Nt-
ππππ
N) x
N N N N= z (MAX) - z
0I x
B B B B+ B
-1N x
N N N N= B
-1b
x
B B B B> 0 , x
N N N N> 0
Z x1 x2 x3 x4 x5 rhs VB
1 0 -2 5 0 0 15 Z
0 1 0 1 0 0 3 X1
0 0 1 0 1 0 4 X4
0 0 2 -1 0 1 6 X5
E
F
E
F
Exemplo 4: Seja o ponto no qual as variáveis básicas são (x1, x4, x5)e as variáveis não-básicas são (x2, x3) = (0, 0). Então:
48
© UNESP 6 Agosto 2008