1 Pesquisa Operacional: Método Simplex – Duas Fases.
Click here to load reader
Transcript of 1 Pesquisa Operacional: Método Simplex – Duas Fases.
1
Pesquisa Operacional:
Método Simplex – Duas Fases
Minimizar Z = 3x1 + 2x2
Restrições:2x1 + x2 ≥ 10x1 + 5x2 ≥ 15x1 ≥ 0x2 ≥ 0
Exemplo 1: Minimização da função objetivo
Pode-se transformar em um problema de maximização da seguinte forma:
Passo 1: Transformar para maximização e introduzir as variáveis de folga.Multiplicar a função objetivo por (-1) para utilizar o método Simplex como foi efetuado anteriormente na maximização.
Max(-z) = Min(z)Max (-z) = -3x1 - 2x2
Restrições:2x1 + x2 ≥ 10x1 + 5x2 ≥ 15x1 ≥ 0 e
x2 ≥ 0
Minimizar Z = 3x1 + 2x2
Restrições:2x1 + x2 ≥ 10x1 + 5x2 ≥ 15x1 ≥ 0x2 ≥ 0
Passo 1: inserir as variáveis de folga.
Max(-z) = Min(z)Max (-z) = -3x1 - 2x2
Restrições:2x1 + x2 ≥ 10x1 + 5x2 ≥ 15x1 ≥ 0 e x2 ≥ 0
2x1 + x2 + f1 = 10x1 + 5x2 + f2 = 15
2x1 + x2 + 1f1 + 0f2 = 10x1 + 5x2 + 0f1 + 1f2 = 15
Função objetivo:-z + 3x1 + 2x2 + 0f1 + 0f2 =
0
Passo 2: Montagem do quadro de cálculos.
BASE x1 x2 f1 f2 b
f1 2 1 1 0 10
f2 1 5 0 1 15
-z 3 2 0 0 0
2x1 + x2 + 1f1 + 0f2 = 10x1 + 5x2 + 0f1 + 1f2 = 15
Função objetivo:-z + 3x1 + 2x2 + 0f1 + 0f2 =
0
Passo 3: Escolha da solução básica viável
inicial.
– Variáveis não-básicas:
– Variáveis básicas:
– Função objetivo:
0xx 21
15
10
2
1
f
f
0 z
1ª IteraçãoPasso 4: Variável que deve entrar na base.
Qual é o produto que mais contribui para o lucro?
(maior valor positivo (-z) = x1
BASE x1 x2 f1 f2 b
f1 2 1 1 0 10
f2 1 5 0 1 15
-z 3 2 0 0 0
X1Maior valor positivo
Passo 5: Variável que deve sair da base.
Divisões:1ª linha:2ª linha:
O menor quociente ocorreu na 1ª linha. Logo, a variável que deve sair é : f1
52/10 151/15
BASE x1 x2 f1 f2 b
f1 2 1 1 0 10
f2 1 5 0 1 15
-z 3 2 0 0 0
Pivô (cruzamento) = 2
Passo 6: Transformação da matriz.
Deverão ser realizadas as operações com as linhas da matriz, de forma que a coluna de X1 venha a se tornar um vetor identidade, com o elemento 1 na 1ª linha.
Entra X1
no lugar de f1
BASE x1 x2 f1 f2 b
f1 2 1 1 0 10
f2 1 5 0 1 15
-z 3 2 0 0 0
Passo 6: Transformação da matriz.
BASE x1 x2 f1 f2 b
x1 1 1/2 1/2 0 5
f2 0 -9/2 1/2 -1 -10
-z 0 1/2 -3/2 0 -15
Matriz de cálculoanterior
L2 L2 – L1
L1 L1 / 2
L3 L3 - 3L3
Nova solução:
– Variáveis não-básicas:
– Variáveis básicas:
– Função objetivo:
021 xf
10
5
2
1
f
x
15 z
2ª IteraçãoPasso 4: Variável que deve entrar na base.
Qual é o produto que mais contribui para o lucro?
(maior valor positivo (-z) = x2)
X2Maior valor positivo
BASE x1 x2 f1 f2 b
x1 1 1/2 1/2 0 5
f2 0 -9/2 1/2 -1 -10
-z 0 1/2 -3/2 0 -15
Passo 5: Variável que deve sair da base.
Divisões:1ª linha:2ª linha:
O menor quociente ocorreu na 2ª linha. Logo, a variável que deve sair é : f2
10)2/1/(5 22,29/20)2/9/(10
Pivô (cruzamento) = -9/2
BASE x1 x2 f1 f2 b
x1 1 1/2 1/2 0 5
f2 0 -9/2 1/2 -1 -10
-z 0 1/2 -3/2 0 -15
Passo 6: Transformação da matriz.
Deverão ser realizadas as operações com as linhas da matriz, de forma que a coluna de X2 venha a se tornar um vetor identidade, com o elemento 1 na 2ª linha.
Entra X2
no lugar de f2
BASE x1 x2 f1 f2 b
x1 1 1/2 1/2 0 5
f2 0 -9/2 1/2 -1 -10
-z 0 1/2 -3/2 0 -15
Passo 6: Transformação da matriz.
BASE x1 x2 f1 f2 b
x1 1 0 5/9 -1/9 3,88
x2 0 1 -1/9 2/9 2,22
-z 0 0 -1,44 -0,11
-16,11
Matriz de cálculoanterior
L2 – 2L2/9
L1 L1 - L2/2
L3 L3 – L2/2
Assim, obtemos a solução ótima para:
x1 = 3,89 f1 = 0
x2 = 2,22 f2 = 0
-z = -16,11 z = 16,11
BASE x1 x2 f1 f2 b
x1 1 0 5/9 -1/9 3,88
x2 0 1 -1/9 2/9 2,22
-z 0 0 -1,44 -0,11
-16,11
Quando maximizamos ou minimizamos uma função objetivo temos:
Maximizar L = x1 + 2x2
Restrições:3x1 + 4x2 ≤ 245x1 + 2x2 ≤ 20x1 ≥ 0x2 ≥ 0
Minimizar Z = 3x1 + 2x2
Restrições:2x1 + x2 ≥ 10x1 + 5x2 ≥ 15x1 ≥ 0x2 ≥ 0
≤ delimita o maior valor possível para
as restrições
≥ delimita o menor valor possível para
as restrições
O método Simples Duas Fases resolve problemas das restrições conforme demonstrado abaixo:
Maximizar L = x1 + 2x2
Restrições:3x1 + 4x2 ≥ 245x1 + 2x2 = 20x1 ≥ 0x2 ≥ 0
Minimizar Z = 3x1 + 2x2
Restrições:2x1 + x2 = 10x1 + 5x2 ≤ 15x1 ≥ 0x2 ≥ 0
Solução não existe Solução não existe
19
Método Simplex – Duas Fases
O Método Simplex utiliza uma solução inicial viável para começar o processo iterativo, trabalhando sempre dentro da região viável.
Nos casos apresentados de maximização até o presente momento, a solução para xi = 0, para i = 1, ..., n era uma solução viável, já que todas as restrições apresentadas foram do tipo (≤).
Quando as restrições são do tipo (=) ou (≥), esta solução não existe.
Seja o exemplo abaixo:
minimizar z = 10 x1 + 4 x2 + 5 x3
sujeito a: 8 x1 + 3 x2 + 4 x3 104 x1 + 3 x2 8x1, x2, x3 0
Como temos uma restrição do tipo (), a variável de folga deve ter coeficiente negativo, tendo o significado de uma variável de excesso.
O problema transformado é:
minimizar z = 10 x1 + 4 x2 + 5 x3
sujeito a: 8 x1 + 3 x2 + 4 x3 - f1 = 10
4 x1 + 3 x2 + f2 = 8
x1, x2, x3, f1, f2 0
onde f1 é uma variável de excesso e f2 é uma variável de folga.
Pelo processo de solução anterior, a variável de excesso (f1) passaria a ter valor negativo na solução inicial (-10), o que não é permitido. Assim, a solução x1 = x2 = x3 = 0 é inviável.
É necessário então encontrar uma solução viável para que o método Simplex possa ser iniciado.
A forma de se resolver isto é inventando novas variáveis, também chamadas de variáveis artificiais, e representadas por zi.
Uma variável artificial será colocada em cada restrição do modelo, ou seja:
8 x1 + 3 x2 + 4 x3 - f1 + z1 = 10
4 x1 + 3 x2 + f2 + z2 = 8
x1, x2, x3, f1, f2, z1, z2 0
Percebe-se que o problema com as restrições acima não é o mesmo problema, a não ser que todas as variáveis zi sejam iguais
a zero.
Desta forma, podemos resolver o problema em duas fases:
Na primeira fase, substituímos a função objetivo original por uma função objetivo auxiliar da seguinte forma:
Soma-se as variáveis das duas restrições:
8 x1 + 3 x2 + 4 x3 - f1 + z1 = 104 x1 + 3 x2 + 0 x3 + f2 + z2 = 8
12 x1 + 6 x2 + 4 x3 - f1 + f2 + z1 + z2 = 18
Representa-se as restrições em função de z1 e z2
12 x1 + 6 x2 + 4 x3 - f1 + f2 - 18 = - z1 - z2
portanto, a função objetivo auxiliar será:
zaux = - z1 - z2 = 12 x1 + 6 x2 + 4 x3 - f1 + f2 - 18
Nesse momento, aplicamos o método Simplex de forma a maximizar a função objetivo auxiliar, com as restrições contendo as variáveis auxiliares. A função objetivo auxiliar será maximizada quando todas as variáveis zi forem iguais a zero, já que não podem conter valores negativos.
A primeira fase do problema então consiste na maximização da função objetivo auxiliar, que fornecerá uma solução viável para o problema original.
A segunda fase consiste em resolver o problema original tomando como solução inicial os valores obtidos pela primeira fase para as variáveis xi e fi.
Resolvendo o problema:
minimizar z = 10 x1 + 4 x2 + 5 x3
sujeito a: 8 x1 + 3 x2 + 4 x3 - f1 + z1 = 10
4 x1 + 3 x2 + f2 + z2 = 8
x1, x2, x3, f1, f2 0
zaux = - z1 - z2 = 12 x1 + 6 x2 + 4 x3 - f1 + f2 - 18
z’ = -z = 10 x1 + 4 x2 + 5 x3 - 0f1 + 0f2+ 0z1 + 0z2
Função objetivo:
Função objetivo auxiliar:
Para resolver o problema, monta-se o quadro de forma semelhante à sistemática anterior, colocando-se a função objetivo artificial na última linha.
Base x1 x2 x3 f1 f2 z1 z2 b
z1 8 3 4 -1 0 1 0 10
z2 4 3 0 0 1 0 1 8
z' = -z
10 4 5 0 0 0 0 0
zaux -12 -6 -4 1 -1 0 0 -18
Como o problema é de minimização e vamos maximizar, é necessário multiplicar a função objetivo auxiliar por (-1).
Aplica-se Simplex usando como função objetivo a última linha.
Quando a solução ótima for atingida, dois casos podem ocorrer:
zaux = 0: neste caso foi obtida uma solução básica do problema original e o processo de solução deve continuar, desprezando-se as variáveis artificiais e os elementos da última linha. É o início da segunda fase do processo.
zaux 0: neste caso o problema original não tem solução viável, o que significa que as restrições devem ser inconsistentes.
Fase 1 - Primeira iteração
Variável a entrar na base: x1 (coluna com maior valor negativo na última linha)
Variável a sair da base: z1 (o quociente 10/8 é o menor quociente entre a última coluna e a coluna da variável x1, que vai entrar na base)
Base x1 x2 x3 f1 f2 z1 z2 b
z1 8 3 4 -1 0 1 0 10
z2 4 3 0 0 1 0 1 8
z' = -z 10 4 5 0 0 0 0 0
zaux -12 -6 -4 1 -1 0 0 -18
Pivô = 8
x1
1
0
0
0
Montagem da matriz identidade
Base x1 x2 x3 f1 f2 z1 z2 b
x1 1 3/8 1/2 -1/8 0 1/8 0 5/4
z2 0 3/6 -2 1/2 1 -1/2 1 3
z' = -z
0 1/4 0 5/4 0 -5/4 0 -12,5
zaux 0 -3/6 2 -1/2 -1 3/2 0 -3
L1 L1 / 8
L4 L4 + 12 L1
L2 L2 - 4 L1
L3 L3 - 10 L1
Base x1 x2 x3 f1 f2 z1 z2 b
z1 8 3 4 -1 0 1 0 10
z2 4 3 0 0 1 0 1 8
z' = -z
10 4 5 0 0 0 0 0
zaux -12 -6 -4 1 -1 0 0 -18
Matriz de cálculoanterior
Fase 1 – Segunda iteração
Variável a entrar na base: x2 (coluna com maior valor negativo na última linha)
Variável a sair da base: z2 (o quociente 3/(3/2) é o menor quociente entre a última coluna e a coluna da variável x2, que vai entrar na base) Pivô = 3/6
X2
0
1
0
0
Montagem da matriz identidade
Base x1 x2 x3 f1 f2 z1 z2 b
x1 1 3/8 1/2 -1/8 0 1/8 0 5/4
z2 0 3/6 -2 1/2 1 -1/2 1 3
z' = -z
0 1/4 0 5/4 0 -5/4 0 -12,5
zaux 0 -3/6 2 -1/2 -1 3/2 0 -3
Base x1 x2 x3 f1 f2 z1 z2 b
x1 1 0 1 -1/4 -1/4 1/4 -1/4 1/2
x2 0 1 -4/3 1/3 2/3 -1/3 2/3 2
z' = -z 0 0 1/3 7/6 -1/6 -7/6 1/6 -13
zaux 0 0 0 0 1 1 1 0
Base x1 x2 x3 f1 f2 z1 z2 b
x1 1 3/8 1/2 -1/8 0 1/8 0 5/4
z2 0 3/6 -2 1/2 1 -1/2 1 3
z' = -z
0 1/4 0 5/4 0 -5/4 0 -12,5
zaux 0 -3/6 2 -1/2 -1 3/2 0 -3
Matriz de cálculoanterior
L2 2 L2 / 3
L1 L1 - 3 L2 / 8
L3 L3 - L2 / 4
L4 L4 + 3 L2 / 2
Como na última linha o valor da função objetivo artificial é zero, a primeira fase terminou e a solução encontrada é a solução básica inicial para a segunda fase.
Removendo a última linha e as colunas referentes às variáveis artificiais, o quadro se torna:
Base x1 x2 x3 f1 f2 z1 z2 b
x1 1 0 1 -1/4 -1/4 1/4 -1/4 1/2
x2 0 1 -4/3 1/3 2/3 -1/3 2/3 2
z' = -z 0 0 1/3 7/6 -1/6 -7/6 1/6 -13
zaux 0 0 0 0 1 1 1 0
Base x1 x2 x3 f1 f2 b
x1 1 0 1 -1/4 -1/4 1/2
x2 0 1 -4/3 1/3 2/3 2
z' = -z 0 0 1/3 7/6 -1/6 -13
Retirarzaux, z1 e z2
Matriz para 2ª fase
Fase 2 - Primeira iteração
Variável a entrar na base: f2 (coluna com maior valor negativo na última linha)
Variável a sair da base: x2 (o quociente 2/(2/3) é o menor quociente entre a última coluna e a coluna da variável f2, que vai entrar na base)
Pivô = 2/3
f2
0
1
0
Montagem da matriz identidade
Base x1 x2 x3 f1 f2 b
x1 1 0 1 -1/4 -1/4 1/2
x2 0 1 -4/3 1/3 2/3 2
z' = -z 0 0 1/3 7/6 -1/6 -13
Base x1 x2 x3 f1 f2 b
x1 1 0 1 -1/4 -1/4 1/2
x2 0 1 -4/3 1/3 2/3 2
z' = -z
0 0 1/3 7/6 -1/6 -13
Matriz de cálculoanterior
Base x1 x2 x3 f1 f2 b
x1 1 3/8 1/2 -1/8 0 5/4
f2 0 3/6 -2 1/2 1 3
z' = -z
0 1/4 0 5/4 0 -12,5L1 L1 + L2 / 4L2 3 L2 / 2L3 L3 + L2 / 6
Todos os valores da última linha (função z-transformada) são positivos ou nulos, concluímos que a solução encontrada é ótima.
x1 = 1,25x2 = 0z = -z' = 12,5
Base x1 x2 x3 f1 f2 b
x1 1 3/8 1/2 -1/8 0 5/4
f2 0 3/6 -2 1/2 1 3
z' = -z 0 1/4 0 5/4 0 -12,5
Resposta ao problema:
minimizar z = 10 x1 + 4 x2 + 5 x3
sujeito a: 8 x1 + 3 x2 + 4 x3 ≥ 10
4 x1 + 3 x2 ≤ 8
x1, x2, x3, f1, f2 0
37
Memória de aula
1. Formulação de um problema utilizando modelos matemáticos.
2. Funcionamento do método simplex.3. Maximizar uma função usando o método simplex.4. Minimizar uma função usando o método simplex.5. Funcionamento do método simplex duas Fases.6. Resolver lista de exercícios (lista 4) disponível no
site.
38
Bibliografia indicada
LISBOA, Erico Fagundes Anicet. Rio de Janeiro, 2002. versão digital disponível na Internet (http://www.ericolisboa.eng.br).
ANDRADE, Eduardo Leopoldino de. Introdução à Pesquisa Operacional: métodos e modelos para a análise de decisão. Rio de Janeiro: Editora LTC, 2005.
LACHTERMACHER, Gerson. Pesquisa Operacional na Tomada de Decisões: modelagem em Excel. Rio de Janeiro: Editora Elsevier, 2004.