Você está na página 1de 38

Pesquisa Operacional:

Método Simplex – Duas Fases

1
Exemplo 1: Minimização da função objetivo

Minimizar Z = 3x1 + 2x2

Restrições:
2x1 + x2 ≥ 10
x1 + 5x2 ≥ 15
x1 ≥ 0
x2 ≥ 0

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.
Minimizar Z = 3x1 + 2x2 Max(-z) = Min(z)
Max (-z) = -3x1 - 2x2
Restrições:
2x1 + x2 ≥ 10 Restrições:
x1 + 5x2 ≥ 15 2x1 + x2 ≥ 10
x1 ≥ 0 x1 + 5x2 ≥ 15
x2 ≥ 0 x1 ≥ 0 e
x2 ≥ 0
Passo 1: inserir as variáveis de folga.

Max(-z) = Min(z) 2x1 + x2 + f1 = 10


Max (-z) = -3x1 - 2x2 x1 + 5x2 + f2 = 15
Restrições:
2x1 + x2 ≥ 10
x1 + 5x2 ≥ 15 2x1 + x2 + 1f1 + 0f2 = 10
x1 ≥ 0 e x 2 ≥ 0 x1 + 5x2 + 0f1 + 1f2 = 15

Função objetivo:
-z + 3x1 + 2x2 + 0f1 + 0f2 = 0
Passo 2: Montagem do quadro de cálculos.

Função objetivo:
-z + 3x1 + 2x2 + 0f1 + 0f2 = 0

2x1 + x2 + 1f1 + 0f2 = 10


x1 + 5x2 + 0f1 + 1f2 = 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
Passo 3: Escolha da solução básica viável inicial.
– Variáveis não-básicas: x1 x 2  0

f1  10
– Variáveis básicas:
f 2  15

– Função objetivo:  z  0
1ª Iteração
Passo 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

Maior valor positivo X1


Passo 5: Variável que deve sair da base.
Divisões:
1ª linha:10 / 2  5
2ª linha:15 / 1  15
O menor quociente ocorreu na 1ª linha.
Logo, a variável que deve sair é : f1

BASE x1 x2 f1 f2 b
f1 2 1 1 0 10 Pivô (cruzamento) = 2

f2 1 5 0 1 15
-z 3 2 0 0 0
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
Passo 6: Transformação da matriz.

BASE x1 x2 f1 f2 b
L1  L1 / 2 x1 1 1/2 1/2 0 5
L2  L2 – L1 f2 0 -9/2 1/2 -1 -10
L3  L3 - 3L3
-z 0 1/2 -3/2 0 -15

BASE x1 x2 f1 f2 b
Matriz de cálculo f1 2 1 1 0 10
anterior
f2 1 5 0 1 15
-z 3 2 0 0 0
Nova solução:
– Variáveis não-básicas: f 1 x2  0

x1  5
– Variáveis básicas:
f 2  10

– Função objetivo:  z  15


2ª Iteração
Passo 4: Variável que deve entrar na base.
Qual é o produto que mais contribui para o lucro?
(maior valor positivo (-z) = x2)

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

Maior valor positivo X2


Passo 5: Variável que deve sair da base.
Divisões:
5 /(1 / 2)  10
1ª linha:
 10 /( 9 / 2)  20 / 9  2,22
2ª linha:
O menor quociente ocorreu na 2ª linha.
Logo, a variável que deve sair é : f2

BASE x1 x2 f1 f2 b
x1 1 1/2 1/2 0 5
f2 Pivô (cruzamento) = -9/2
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
Passo 6: Transformação da matriz.

BASE x1 x2 f1 f2 b
L1  L1 - L2/2 x1 1 0 5/9 -1/9 3,88
L2 – 2L2/9 x2 0 1 -1/9 2/9 2,22
L3  L3 – L2/2
-z 0 0 -1,44 -0,11 -16,11

BASE x1 x2 f1 f2 b
Matriz de cálculo x1 1 1/2 1/2 0 5
anterior
f2 0 -9/2 1/2 -1 -10
-z 0 1/2 -3/2 0 -15
Assim, obtemos a solução ótima para:

x1 = 3,89f1 = 0

x2 = 2,22f2 = 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 Minimizar Z = 3x1 + 2x2

Restrições: Restrições:
3x1 + 4x2 ≤ 24 2x1 + x2 ≥ 10
5x1 + 2x2 ≤ 20 x1 + 5x2 ≥ 15
x1 ≥ 0 x1 ≥ 0
x2 ≥ 0 x2 ≥ 0

≤ delimita o maior valor ≥ delimita o menor


possível para as valor possível para as
restrições restrições
O método Simples Duas Fases resolve problemas das
restrições conforme demonstrado abaixo:
Maximizar L = x1 + 2x2 Minimizar Z = 3x1 + 2x2

Restrições: Restrições:
3x1 + 4x2 ≥ 24 2x1 + x2 = 10
5x1 + 2x2 = 20 x1 + 5x2 ≤ 15
x1 ≥ 0 x1 ≥ 0
x2 ≥ 0 x2 ≥ 0

Solução não existe Solução não existe


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.

19
Seja o exemplo abaixo:

minimizar z = 10 x1 + 4 x2 + 5 x3

sujeito a: 8 x1 + 3 x2 + 4 x3 10
4 x1 + 3 x 2   8
x1, 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 x 2 + f 2 = 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 x 2 + f 2 + z 2 = 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 = 10
4 x 1 + 3 x 2 + 0 x3 + f 2 + z 2 = 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 x 2 + f 2 + z2 = 8
x1, x2, x3, f1, f2 0
Função objetivo:

z’ = -z = 10 x1 + 4 x2 + 5 x3 - 0f1 + 0f2+ 0z1 + 0z2


Função objetivo auxiliar:

zaux = - z1 - z2 = 12 x1 + 6 x2 + 4 x3 - f1 + f2 - 18
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' = - 10 4 5 0 0 0 0 0
z
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)
Pivô = 8

Base x1 x2 x3 f1 f2 z1 z2 b x1
z1 8 3 4 -1 0 1 0 10 1
z2 4 3 0 0 1 0 1 8 0
z' = -z 10 4 5 0 0 0 0 0 0
zaux -12 -6 -4 1 -1 0 0 -18 0

Montagem da matriz identidade


Base x1 x2 x3 f1 f2 z1 z2 b
L1  L1 / 8 x1 1 3/8 1/2 -1/8 0 1/8 0 5/4
L2  L2 - 4 L1 z2 0 3/6 -2 1/2 1 -1/2 1 3
L3  L3 - 10 L1 z' = - 0 1/4 0 5/4 0 -5/4 0 -12,5
L4  L4 + 12 L1 z
zaux 0 -3/6 2 -1/2 -1 3/2 0 -3

Base x1 x2 x3 f1 f2 z1 z2 b
z1 8 3 4 -1 0 1 0 10
Matriz de cálculo
anterior z2 4 3 0 0 1 0 1 8
z' = - 10 4 5 0 0 0 0 0
z
zaux -12 -6 -4 1 -1 0 0 -18
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

Base x1 x2 x3 f1 f2 z1 z2 b X2
x1 1 3/8 1/2 -1/8 0 1/8 0 5/4 0
z2 0 3/6 -2 1/2 1 -1/2 1 3 1
z' = - 0 1/4 0 5/4 0 -5/4 0 -12,5 0
z 0
zaux 0 -3/6 2 -1/2 -1 3/2 0 -3
Montagem da matriz identidade
Base x1 x2 x3 f1 f2 z1 z2 b
L1  L1 - 3 L2 / 8 x1 1 0 1 -1/4 -1/4 1/4 -1/4 1/2
L2  2 L2 / 3 x2 0 1 -4/3 1/3 2/3 -1/3 2/3 2
L3  L3 - L2 / 4 z' = -z 0 0 1/3 7/6 -1/6 -7/6 1/6 -13
L4  L4 + 3 L2 / 2 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
Matriz de cálculo
anterior z2 0 3/6 -2 1/2 1 -1/2 1 3
z' = - 0 1/4 0 5/4 0 -5/4 0 -12,5
z
zaux 0 -3/6 2 -1/2 -1 3/2 0 -3

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 b

Matriz para x1 1 0 1 -1/4 -1/4 1/2


2ª fase 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 z1 z2 b
x1 1 0 1 -1/4 -1/4 1/4 -1/4 1/2
Retirar x2 0 1 -4/3 1/3 2/3 -1/3 2/3 2
zaux, z1 e z2
z' = -z 0 0 1/3 7/6 -1/6 -7/6 1/6 -13
zaux 0 0 0 0 1 1 1 0
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

Base x1 x2 x3 f1 f2 b f2
x1 1 0 1 -1/4 -1/4 1/2 0
x2 0 1 -4/3 1/3 2/3 2 1
z' = -z 0 0 1/3 7/6 -1/6 -13 0

Montagem da matriz identidade


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
L1  L1 + L2 / 4
L2  3 L2 / 2 z' = - 0 1/4 0 5/4 0 -12,5
L3  L3 + L2 / 6 z

Base x1 x2 x3 f1 f2 b

Matriz de cálculo x1 1 0 1 -1/4 -1/4 1/2


anterior x2 0 1 -4/3 1/3 2/3 2
z' = - 0 0 1/3 7/6 -1/6 -13
z
Todos os valores da última linha (função z-transformada) são positivos ou nulos,
concluímos que a solução encontrada é ótima.
Resposta ao problema:

minimizar z = 10 x1 + 4 x2 + 5 x3

sujeito a: 8 x1 + 3 x2 + 4 x3 ≥ 10
4 x1 + 3 x 2 ≤ 8
x1, x2, x3, f1, f2 0

Base x1 x2 x3 f1 f2 b
x1 = 1,25
x1 1 3/8 1/2 -1/8 0 5/4
x2 = 0
f2 0 3/6 -2 1/2 1 3
z = -z' = 12,5
z' = -z 0 1/4 0 5/4 0 -12,5
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.

37
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.

38

Você também pode gostar