1 Pesquisa Operacional: Método Simplex – Duas Fases.

Post on 18-Apr-2015

323 views 33 download

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.