Investigação Operacional
Métodos de Programação Linear: Big M, 2 Fases, S Dual
(Licenciatura)
Tecnologias e Sistemas de Informação
http://dps.uminho.pt/pessoais/zan
Universidade do Minho - Escola de Engenharia
Departamento de Produção e Sistemas
Universidade do Minho
2007
Investigação Operacional
1
José António Oliveira – [email protected]
Simplex
•Como obter um quadro simplex válido para um problema
que tenha restrições de igualdade e/ou de maior ou
igual?
– Note-se que, se o problema só tiver restrições de "menor
ou igual", temos sempre uma base "à mão": a constituída
pelas variáveis de folga, i.e.
– O ponto de solução nula pertence ao espaço de soluções
válidas, e forma-se a base com as variáveis de folga.
Universidade do Minho
2007
Investigação Operacional
2
José António Oliveira – [email protected]
1
Simplex
•Modelos (a) e (b) são equivalentes.
– O modelo (b) está na forma estandardizada e inclui uma variável de
excesso (primeira restrição) e uma variável de folga (segunda restrição).
– Para a segunda linha é fácil encontrar uma variável básica inicial (tem
coeficiente 1 na própria linha e 0 nas restantes).
– Qual a variável básica a associar à primeira linha? Não é claro. Não há
nenhuma variável que tenha coeficiente 1 na própria linha e 0 nas
restantes.
•Modifica-se o modelo por inclusão de variáveis
artificiais
Investigação Operacional
Universidade do Minho
2007
3
José António Oliveira – [email protected]
Grande M / 2 fases
Max z = 2 x1 + 3 x2
Max z = 2 x1 + 3 x2 + 0 S1
s.a :
x1 + 2 x2 ≤ 3
s.a :
x1 + 2 x2 + S1 = 3
x1 , x2 ≥ 0
x1 , x2 , S1 ≥ 0
Universidade do Minho
2007
Qual é a solução óptima?
Investigação Operacional
4
José António Oliveira – [email protected]
2
Grande M / 2 fases
Min z = S1
Minimizar a folga
s.a :
x1 + 2 x2 + S1 = 3
Qual é a solução óptima?
x1 , x2 , S1 ≥ 0
O quadro
não é válido
Investigação Operacional
Universidade do Minho
2007
5
José António Oliveira – [email protected]
Grande M / 2 fases
Min z = S1
s.a :
x1 + 2 x2 + S1 = 3
Qual é a solução óptima?
x1 , x2 , S1 ≥ 0
O quadro
não é válido
Validação do
Quadro Simplex
Universidade do Minho
2007
Investigação Operacional
6
José António Oliveira – [email protected]
3
Grande M «» 2 Fases
Min z = 2 x1 + 3 x2 Min z = 2 x1 + 3 x2 + Ma1
s.a :
s.a :
Variáveis artificiais permitem
do ponto de solução
x1 + 2 x2 ≥ 3
x1 + 2 x2 − F1 + a1 = 3 começar
nula.
x1 , x2 , S1 ≥ 0
x1 , x2 , F1 , a1 ≥ 0
As variáveis artificiais medem
o desvio (distância) do espaço
de soluções válidas.
O objectivo é anular essa
distância / desvio da zona de
soluções válidas
x1 + 2 x2 ≥ 3
x1 , x2 ≥ 0
O quadro não é válido
Universidade do Minho
2007
Investigação Operacional
7
José António Oliveira – [email protected]
Grande M «» 2 Fases
Min z = 2 x1 + 3 x2 Min z = 2 x1 + 3 x2 + Ma1
s.a :
s.a :
x1 + 2 x2 ≥ 3
x1 + 2 x2 − F1 + a1 = 3
x1 , x2 , S1 ≥ 0
x1 , x2 , F1 , a1 ≥ 0
O quadro
não é válido
x1 + 2 x2 ≥ 3
x1 , x2 ≥ 0
Universidade do Minho
2007
Investigação Operacional
8
José António Oliveira – [email protected]
4
Grande M «» 2 Fases
Síntese:
Incluem-se no modelo variáveis artificiais com coeficientes na
função objectivo de tal forma que, numa solução óptima do
modelo modificado, as variáveis artificiais tenham valor nulo.
Dessa forma a solução óptima do modelo modificado é também
óptima do modelo original.
O coeficiente das variáveis artificiais representa-se por M.
Universidade do Minho
2007
Investigação Operacional
9
José António Oliveira – [email protected]
Grande M «» 2 Fases
Síntese:
No exemplo, o valor de M pode ser 100.
O modelo (c) obtido não é equivalente ao modelo original.
Uma solução admissível de (c) só é uma solução admissível de (a)
se o valor de a for zero.
Se, na solução óptima de (c) a variável artificial a tiver um valor
positivo, então o problema (a) é impossível.
Universidade do Minho
2007
Investigação Operacional
10
José António Oliveira – [email protected]
5
Grande M «» 2 Fases
Exemplo:
Validação do Quadro Simplex
Universidade do Minho
2007
Investigação Operacional
11
José António Oliveira – [email protected]
Grande M «» 2 Fases
Exemplo:
mais pequeno
sai da base
mais negativa, entra na base
Não há artificiais na base,
podem ser removidas do quadro
e prossegue-se com o Simplex...
Universidade do Minho
2007
Investigação Operacional
12
José António Oliveira – [email protected]
6
Grande M «» 2 Fases
Exemplo:
sai
Ponto actual
entra
Solução óptima
Universidade do Minho
2007
Investigação Operacional
13
José António Oliveira – [email protected]
Grande M «» 2 Fases
O método das 2 fases resulta do Grande M
dividindo a Função Objectivo por M ???
2 x1 x2 Ma
+
−
M M M
Max z = 0 + 0 − a
Max z =
Min w = a
Universidade do Minho
2007
Investigação Operacional
14
José António Oliveira – [email protected]
7
Grande M «» 2 Fases
1ª FASE
Para obter uma base inicial, utiliza-se
um problema auxiliar que consiste em
minimizar a soma das variáveis
artificiais.
– Elimina-se a distância à zona de
soluções válidas.
Universidade do Minho
2007
Investigação Operacional
15
José António Oliveira – [email protected]
Grande M «» 2 Fases
2ª FASE
Se não houver variáveis artificias na
base, procede-se com a função
objectivo original
Senão, o problema é impossível !
– É necessário validar o quadro
Universidade do Minho
2007
Investigação Operacional
16
José António Oliveira – [email protected]
8
Grande M «» 2 Fases
Exemplo:
1ª Fase
Validação do Quadro Simplex
Universidade do Minho
2007
Investigação Operacional
17
José António Oliveira – [email protected]
Grande M «» 2 Fases
Exemplo:
1ª Fase
mais pequeno
sai da base
negativa (empate), entra na base
Não há artificiais na base,
podem ser removidas do quadro
e passa-se à 2ª fase...
Ponto actual
Universidade do Minho
2007
Investigação Operacional
18
José António Oliveira – [email protected]
9
Grande M «» 2 Fases
Exemplo:
2ª Fase
Validação do Quadro Simplex
Universidade do Minho
2007
Investigação Operacional
19
José António Oliveira – [email protected]
Grande M «» 2 Fases
Exemplo:
2ª Fase
sai da base
negativa, entra na base
Solução óptima
Universidade do Minho
2007
Investigação Operacional
20
José António Oliveira – [email protected]
10
Simplex DUAL
Vamos ver uma curiosidade…
Coluna pivot
VAMOS
ERRAR !
Sai x4
Investigação Operacional
Universidade do Minho
2007
21
José António Oliveira – [email protected]
Simplex DUAL
Há valores negativos nos termos independentes !!!
0
−7
1
3
2
1
− 5
0
1
4
0
2
−2
0
4
− 1
0
24
0
5
O que fazer?
Universidade do Minho
2007
2
2
Investigação Operacional
0
− 175
0
115
1
−45
0
575
2
2
22
José António Oliveira – [email protected]
11
Simplex DUAL
Reiniciar a partir do quadro original?
Desfazer o erro?
-sair x1 e entrar x4
E se fosse possível continuar, apesar da asneira !?!?
0
−7
1
3
2
0
2
−2
0
24
1
− 5
0
1
4
4
1
0
−
2
5
0
2
0
− 175
0
115
1
−45
0
2
2
575
Investigação Operacional
Universidade do Minho
2007
23
José António Oliveira – [email protected]
Simplex DUAL
O que é necessário fazer para reparar o erro ?
transformar termos independentes em valores positivos
manter a matriz identidade
iterar, escolhendo pivots negativos
0
−7
1
3
2
0
2
−2
0
24
Universidade do Minho
2007
1
−5
0
1
4
4
0 − 1
2
5
0
2
0
− 175
0
115
1
−45
0
2
sai a mais negativa
2
575
Investigação Operacional
Pivots
negativos
Qual é a que
entra?
24
José António Oliveira – [email protected]
12
Simplex DUAL
O que é necessário fazer para reparar o erro ?
transformar os negativos em positivos
Iterar, optimizando,
escolhe-se a menor
razão em módulo!
manter a matriz identidade
iterar, escolhendo pivots negativos
0
−7
1
3
2
0
2
−2
0
24
1
−5
0
1
4
4
1
0 −
2
5
0
2
0
− 175
0
115
1
−45
0
2
sai a mais negativa
2
575
Pivots
negativos
Investigação Operacional
Universidade do Minho
2007
Qual é a que
entra?
Entra x4
25
José António Oliveira – [email protected]
Simplex DUAL
Ainda há valores negativos nos termos independentes !!!
0
14
1
4
0
0
Universidade do Minho
2007
5
5
− 3
5
− 1
− 4
5
1
5
− 2
2
5
1
0
0
0
40
1
−10
0
0
0
Investigação Operacional
70
400
26
José António Oliveira – [email protected]
13
Simplex DUAL
Quadro válido !!!
Falta Optimizar, resolução pelo Simplex PRIMAL
0
0
− 8
1
0
− 1
1
+ 2
0
+ 8
0
0
14
1
3
3
3
5
−
3
− 5
3
0
5
80
4
0
0
3
70
3
50
3
3
3
1250
Investigação Operacional
Universidade do Minho
2007
3
27
José António Oliveira – [email protected]
Simplex DUAL
Solução Óptima
0
0
−4
1
0
3
0
1
0
Universidade do Minho
2007
0
7
− 2
12
7
7
7
3
14
− 2
5
5
7
14
14
Investigação Operacional
1
5
0
20
0
25
0
425
28
José António Oliveira – [email protected]
14
Simplex DUAL
Só mudou a
ordem das
linhas
0
− 4
1
0
3
0
1
0
0
Universidade do Minho
2007
0
7
7
− 2
12
7
7
3
14
− 2
5
5
7
14
14
1
5
0
20
0
25
0
425
Investigação Operacional
29
José António Oliveira – [email protected]
Simplex DUAL
Exemplo
Min z = 2 x1 + x3
Max -z = −2 x1 − x3
Max -z = −2 x1 − x3
s.a :
x1 + x2 − x3 ≥ 5
s.a :
− x1 − x2 + x3 ≤ −5
s.a :
− x1 − x2 + x3 + s1 = −5
x1 − 2 x2 + 4 x3 ≥ 8
− x1 + 2 x2 − 4 x3 ≤ −8
− x1 + 2 x2 − 4 x3 + s2 = −8
x j ≥ 0, j = 1, 2,3
x j ≥ 0, j = 1, 2,3
x j ≥ 0, j = 1, 2,3
solução
básica
não admissível
Universidade do Minho
2007
Investigação Operacional
30
José António Oliveira – [email protected]
15
Simplex DUAL
sai
Síntese:
entra
Sai da base a variável com o valor mais negativo (que é
“menos admissível”).
Entra na base a variável que tem menor razão em módulo
entre o coeficiente da linha da função objectivo e o
coeficiente da linha pivot, considerando apenas as que têm
coeficientes negativos na linha pivot.
Investigação Operacional
Universidade do Minho
2007
31
José António Oliveira – [email protected]
Simplex DUAL
−
5
,
4
−
,
−
1
4
7
4
,
1
, 0, 1,
2
1
2
1
2
,
1 ,
,
0 ,
0 ,
1
,
4
−
0 ,
1
,
4
1
4
,
− 7
sai
2
− 2
entra
Solução
Óptima
Universidade do Minho
2007
Investigação Operacional
32
José António Oliveira – [email protected]
16
Simplex DUAL
Resumo da Iteração do algoritmo simplex dual:
1. Teste de optimalidade (a solução básica actual é óptima se todos
os termos independentes são não negativos e todos os
coeficientes da linha da função objectivo são não negativos). Se
a solução é óptima, parar. Se não, prosseguir com o passo 2.
2. Decidir qual a variável que sai da base (é aquela que tem o valor
mais negativo - em caso de empate decidir arbitrariamente).
Prosseguir com o passo 3.
3. Decidir qual a variável não básica que entra na base (é aquela que
tem a menor razão em módulo do critério de entrada - excluindo
as variáveis que têm coeficiente positivo ou nulo na linha pivot;
em caso de empate, escolher maior pivot em módulo). Se não
houver nenhuma variável com coeficiente negativo na linha pivot,
o problema é impossível, parar. Se não, prosseguir para 4.
4. Actualizar o quadro simplex para a base actual e passar à
iteração seguinte (passo 1).
Universidade do Minho
2007
Investigação Operacional
33
José António Oliveira – [email protected]
Simplex Matricial «» Revisto
Quadro Inicial
Quadro numa
qualquer iteração
Universidade do Minho
2007
Investigação Operacional
34
José António Oliveira – [email protected]
17
Simplex Matricial «» Revisto
Quadro Inicial
Matriz tecnológica (coeficientes das restrições)
Matriz Identidade
Termos independentes
Coeficientes na Função Objectivo
Variáveis de decisão
Variáveis de folga
Investigação Operacional
Universidade do Minho
2007
35
José António Oliveira – [email protected]
Simplex Matricial «» Revisto
Max z = 2 x1 + 5 x2 + 3 x3
4
s.a :
+ x2
+2 x3
≤7
2 x1
+ x2
≤6
3 x1
+ x2
,
xj ≥ 0
+6 x3
≤9
j = 1, 2,3
2 1 2
A =  3 1 0 
 0 1 6 
Max z = 2 x1 + 5 x2 + 3 x3 + 0 x4 + 0 x5 + 0 x6
4
s.a :
2 x1 + x2
3 x1
+ x2
+ x2
+2 x3
+ x4
=7
+ x5
+6 x3
+ x6
=6
=9
x j ≥ 0 , j = 1, 2,3, 4,5, 6
7 
b =  6 
9 
c = 2 5
3
4 

Universidade do Minho
2007
Investigação Operacional
36
José António Oliveira – [email protected]
18
Simplex Matricial «» Revisto
Matriz formada pelas colunas da Matriz
das variáveis básicas
Matriz Inversa da Matriz
Matriz dos coeficientes na Função Objectivo das variáveis básicas
Vector das variáveis básicas
Na Análise de Sensibilidade é esta forma matricial que se usa.
Quase Sempre a Matriz
é dada.
Quadro numa
qualquer iteração
Universidade do Minho
2007
Investigação Operacional
37
José António Oliveira – [email protected]
Simplex Matricial «» Revisto
A Revisão do Simplex teve como objectivo a definição de
uma metodologia mais eficiente para uso do cálculo
automático.
Dantzig e Orchard-Hays desenvolveram para a RAND
Corporation uma metodologia que visava tratar a informação
estritamente necessária para o cálculo automático.
O Simplex revisto permite reduzir o número de operações a
efectuar em cada iteração, o espaço de memória, e o tempo de
computação.
Universidade do Minho
2007
Investigação Operacional
38
José António Oliveira – [email protected]
19
Simplex Matricial «» Revisto
No percurso para a solução óptima só importa conhecer
os vectores (colunas) fora da base, em termos da base
actual (colunas das variáveis básicas):
– calculo dos custos reduzidos;
– determinação do vector a sair da base
– obtenção da nova solução por mudança de base.
Não se actualiza todo o quadro simplex, somente
interessa identificar o novo elemento pivot.
A forma revista explora o facto de se poder obter todo o
quadro simplex respeitante a qualquer SBA a partir do
conhecimento da matriz inversa da base B-1 dessa solução.
Universidade do Minho
2007
Investigação Operacional
39
José António Oliveira – [email protected]
Simplex Matricial «» Revisto
Atendendo ao conceito de base de um espaço vectorial,
qualquer vector Pj é dado por:
Pj = BX j , j = 1, 2,… , n
em que Xj é a representação do vector Pj em termos de
base B. Donde
X j = B −1 Pj
em que B-1 designa a matriz inversa da base actual.
Qualquer solução básica resulta de igualar a zero as
variáveis não básicas.
BX B = b
X B = B −1b
Universidade do Minho
2007
Investigação Operacional
40
José António Oliveira – [email protected]
20
Download

Investigação Operacional Simplex