pesquisa operacionalexpertisetreinamento.com.br/wp-content/uploads/2017/02/5-método... · método...

18
Prof. José Luiz Pesquisa Operacional

Upload: lamkhuong

Post on 12-Dec-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Prof. José Luiz

Pesquisa Operacional

Método Simplex

Resolver um problema de Programação Linear significa basicamente resolver sistemas de equações lineares;

Esse procedimento, apesar de correto, é bastante trabalhoso, podendo ficar impraticável;

Para resolver um problema real de Programação Linear precisamos de uma sistemática que nos diga:

Qual o sistema de equações que deve ser resolvido;

Que o próximo sistema a ser resolvido fornecerá uma solução melhor que os anteriores;

Como identificar a solução ótima, uma vez que a tenhamos encontrado;

Essa sistemática é dada pelo Método Simplex

Método Simplex – Procedimentos:

Passo 1:

Passo 2:

Passo 3:

Passo 4:

Introduzir as variáveis de folga, uma para cada desigualdade.

Montar um quadro para os cálculos, colocando os coeficientes de todas as variáveis com os respectivos sinais e, na última linha, incluir os coeficientes da função-objetivo transformada.

Estabelecer uma solução básica inicial, usualmente atribuindo zero às variáveis originais e achando valores positivos para as variáveis de folga.

Como próxima variável a entrar na base, escolher a variável não-básica que fornece, na última linha, a maior contribuição para o aumento da função objetivo (ou seja, tem o maior valor negativo).

Se todas as variáveis que estão fora da base tiverem coeficientes nulos ou positivos nessa linha, a solução atual é ótima.

Se alguma dessas variáveis tiver valor nulo, temos outra solução ótima, com o mesmo valor da função-objetivo.

Método Simplex

Passo 5:

Passo 6:

Passo 7:

Para escolher a variável que deve deixar a base, deve-se realizar o seguinte procedimento:

a) Dividir os elementos da última coluna pelos correspondentes elementos positivos da coluna da variável que vai entrar na base. Se não houver elemento nenhum positivo nessa coluna, o processo deve parar, já que a solução é ilimitada.

b)O menor coeficiente indica a equação cuja respectiva variável básica deverá ser anulada, tornando-se variável não-básica.

Usando operações com as linhas da matriz, transformar a coluna da nova variável básica num vetor identidade, onde o elemento 1 aparece na linha correspondente à variável que está sendo anulada.

Retornar ao PASSO 4 para iniciar nova iteração.

Método Simplex – Exemplo Prático

MAX Z = 3X1 + 5X2; Sujeito a (S.A.)

2x1 + 4x2 10

6x1 + x2 20

x1 – x2 30

x1 0; x2 0

1º Passo: Igualar a Função Objetivo à Zero

Z – 3x1 – 5x2 = 0

2º Passo: Inserir as variáveis de folga

1) 2x1 + 4x2 + xF1 = 10

2) 6x1 + x2 + xF2 = 20

3) X1 – x2 + xF3 = 30

Método Simplex – Exemplo Prático

3º Passo: Construir a tabela com o objetivo de Maximizar Z

Z X1 X2 XF1 XF2 XF3 b

1 -3 -5 0 0 0 0

0 2 4 1 0 0 10

0 6 1 0 1 0 20

0 1 -1 0 0 1 30

Entra

Sai

Objetivo: Desaparecer os nºs negativos em Z

4º Passo: Identificar a variável que entra. O método é procurar o número

negativo de maior valor absoluto na equação da função objetivo.

Observamos (-5) em X2.

5º Passo: Identificar a linha que sai (LINHA PIVÔ). O Método é dividir os

valores base pelos números da coluna que entra (Coluna X2).

10 / 4 = 2,5

20 / 1 = 20

30 / -1 = -30

Escolher a linha em que o resultado foi o menor positivo.

Observamos que o menor positivo é 2,5, e a linha é a segunda.

Método Simplex

6º Passo: Identificar o elemento PIVÔ.

Este elemento está localizado no cruzamento da coluna que entra com a

linha que sai. Neste caso, o número é

7º Passo: Calcular a nova linha PIVÔ.

O cálculo é feito dividindo cada elemento da linha PIVÔ pelo número

encontrado no cruzamento, ou seja, 4.

4

0 2 4 1 0 0 10

: 4 0 0,5 1 0,25 0 0 2,5 NLP

8º Passo: Calcular as novas linhas.

O método é multiplicar a NLP pelo número oposto do nº na função

objetivo existente na coluna que entra. Observemos que o nº é (-5), então

o oposto é (+5). O resultado da multiplicação é então somado a 1ª linha

da tabela e então é calculada a nova 1ª Linha.

Método Simplex

8º Passo: Calcular as novas linhas.

O método é multiplicar a NLP pelo número oposto do nº na função

objetivo existente na coluna que entra. Observemos que o nº é (-5), então

o oposto é (+5). O resultado da multiplicação é então somado a 1ª linha

da tabela e então é calculada a nova 1ª Linha.

NLP

Resultado Mult.

1ª Linha da Tab.

Nova 1ª Linha.

A segunda linha da nova tabela é a própria linha PIVÔ, implica que a próxima

linha a ser calculada será a nova 3ª Linha.

0 0,5 1 0,25 0 0 2,5

X (5) 0 2,5 5 1,25 0 0 12,5

+ 1 -3 -5 0 0 0 0

1 -0,5 0 1,25 0 0 12,5

NOVA 1ª LINHA

Método Simplex

NOVA 3ª LINHA

Seguindo o mesmo padrão de cálculo da 1ª linha, a 3ª linha é encontrada

multiplicando a Nova Linha Pivô (NLP) pelo oposto existente na 3ª Linha, na

coluna que entra. O nº é 1 e o oposto é -1. O resultado é somado com a antiga 3ª

linha. Após esta soma, encontra-se a nova 3ª Linha.

NLP

Resultado Mult.

3ª Linha da Tab.

Nova 3ª Linha.

0 0,5 1 0,25 0 0 2,5

X (-1) 0 -0,5 -1 -0,25 0 0 -2,5

+ 0 6 1 0 1 0 20

0 5,5 0 -0,25 1 0 17,5

Método Simplex

NOVA 4ª LINHA

Seguindo o mesmo padrão de cálculo da 3ª linha, a 4ª linha é encontrada

multiplicando a Nova Linha Pivô (NLP) pelo oposto existente na 4ª Linha, na

coluna que entra. O nº é -1 e o oposto é +1. O resultado é somado com a antiga 4ª

linha. Após esta soma, encontra-se a nova 4ª Linha.

NLP

Resultado Mult.

4ª Linha da Tab.

Nova 4ª Linha.

0 0,5 1 0,25 0 0 2,5

X (+1) 0 0,5 1 0,25 0 0 2,5

+ 0 1 -1 0 0 1 30

0 1,5 0 0,25 0 1 32,5

Método Simplex

10º Passo: Apresentar a solução:

Z X1 X2 XF1 XF2 XF3 b

1 -0,5 0 1,25 0 0 12,5 1ª Linha

0 0,5 1 0,25 0 0 2,5 2ª Linha

0 5,5 0 -0,25 1 0 17,5 3ª Linha

0 1,5 0 0,25 0 1 32,5 4ª Linha

Z X1 X2 XF1 XF2 XF3 b

1 -0,5 0 1,25 0 0 12,5

0 0,5 1 0,25 0 0 2,5

0 5,5 0 -0,25 1 0 17,5

0 1,5 0 0,25 0 1 32,5

1 0 0

0 1 0

0 0 1

Matriz Solução

VARIÁVEIS BÁSICAS

X2 = 2,5

XF2 = 17,5

XF3 = 32,5

VARIÁVEIS NÃO BÁSICAS

X1 = 0

XF1 = 0

VALOR DE Z

Z = 12,5

A SOLUÇÃO NÃO É ÓTIMA PORQUE AINDA APARECE Nº NEGATIVO NA FUNÇÃO

OBJETIVO (X1 = -0,5), NESTE CASO, TEMOS QUE RECALCULAR.

9º Passo: Reescrever a tabela com as novas linhas calculadas.

Método Simplex

NOVA ETAPA – RECÁLCULO DA TABELA

Entra

Z X1 X2 XF1 XF2 XF3 b

1 -0,5 0 1,25 0 0 12,5

0 0,5 1 0,25 0 0 2,5

0 5,5 0 -0,25 1 0 17,5 Sai

0 1,5 0 0,25 0 1 32,5

Objetivo: Desaparecer os nºs negativos em Z

11º Passo: Identificar a variável que entra. O método é procurar o número

negativo de maior valor absoluto na equação da função objetivo.

Observamos (-0,5) em X1.

12º Passo: Identificar a linha que sai (LINHA PIVÔ). O Método é dividir os

valores base pelo número da coluna que entra (Coluna X1).

2,5 / 0,5 = 5

17,5 / 5,5 = 3,18

32,5 / 1,5 = 21,67

Escolher a linha em que o resultado foi o menor positivo.

Observamos que o menor positivo é 3,18 e a linha é a terceira.

Método Simplex

13º Passo: Identificar o elemento PIVÔ.

Este elemento está localizado no cruzamento da coluna que entra com a

linha que sai. Neste caso, o número é

14º Passo: Calcular a nova linha PIVÔ.

O cálculo é feito dividindo cada elemento da linha PIVÔ pelo número

encontrado no cruzamento, ou seja, 5,5.

5,5

0 5,5 0 -0,25 1 0 17,5 Sai

5,5 0,000 1,000 0,000 -0,045 0,182 0,000 3,182 NLP

15º Passo: Calcular as novas linhas.

O método é multiplicar a linha PIVÔ pelo número oposto do nº na função

objetivo existente na coluna que entra. Observemos que o nº é (-0,5),

então o oposto é (+0,5). O resultado da multiplicação é então somado a 1ª

linha da tabela e então é calculada a nova 1ª Linha.

Método Simplex

16º Passo: Calcular as novas linhas.

O método é multiplicar a NLP pelo número oposto do nº na função

objetivo existente na coluna que entra. Observemos que o nº é (-0,5),

então o oposto é (+0,5). O resultado da multiplicação é então somado à 1ª

linha da tabela e então é calculada a nova 1ª Linha.

A próxima linha a ser calculada será a nova 2ª Linha.

5,5 0,000 1,000 0,000 -0,045 0,182 0,000 3,182 NLP

0,5 0 0,5 0 -0,023 0,0909 0 1,5909 Resultado Mult.

+ 1 -0,5 0 1,25 0 0 12,5 Soma com a 1ª Linha

1 0 0 1,2273 0,0909 0 14,091 Nova 1ª Linha

NOVA 1ª LINHA

Método Simplex

17º Passo: Calcular as novas linhas.

O método é multiplicar a NLP pelo número oposto do nº na função

objetivo existente na coluna que entra. Observemos que o nº é (+0,5),

então o oposto é (-0,5). O resultado da multiplicação é então somado à 2ª

linha da tabela e então é calculada a nova 2ª Linha.

A próxima linha a ser calculada será a nova 4ª Linha. É a quarta porque a terceira

e a NOVA LINHA PIVÔ e ela não é recalculada.

NOVA 2ª LINHA

5,5 0,000 1,000 0,000 -0,045 0,182 0,000 3,182 NLP

-0,5 0 -0,5 0 0,0227 -0,091 0 -1,591 Resultado Mult.

+ 0 0,5 1 0,25 0 0 2,5 Soma com a 2ª Linha

0 0 1 0,2727 -0,091 0 0,9091 Nova 2ª Linha

Método Simplex

18º Passo: Calcular as novas linhas.

O método é multiplicar a NLP pelo número oposto do nº na função

objetivo existente na coluna que entra. Observemos que o nº é (+1,5),

então o oposto é (-1,5). O resultado da multiplicação é então somado à 4ª

linha da tabela e então é calculada a nova 4ª Linha.

Após calculada a última linha da tabela, reescrevemos a nova tabela e

observamos se ainda tem algum número negativo na linha da função objetivo.

Se não tiver, identificamos a solução ótima para o problema de programação

linear.

NOVA 4ª LINHA

:5,5 0,000 1,000 0,000 -0,045 0,182 0,000 3,182 NLP

-1,5 0 -1,5 0 0,0682 -0,273 0 -4,773 Resultado Mult.

+ 0 1,5 0 0,25 0 1 32,5 Soma com a 4ª Linha

0 0 0 0,318 -0,273 1 27,73 Nova 4ª Linha

Método Simplex

19º Passo: Rescrever a nova tabela

20º Passo: Apresentar a solução:

1 0 0

0 1 0

0 0 1

Matriz Solução

VARIÁVEIS BÁSICAS

X1 = 3,18

X2 = 0,91

XF3 = 27,73

VARIÁVEIS NÃO BÁSICAS

XF1 = 0

XF2 = 0

VALOR DE Z

Z = 14,09

A solução é ótima, pois não temos mais valores negativos em Z

Z X1 X2 XF1 XF2 XF3 b

1 0 0 1,2273 0,0909 0 14,091 Nova 1ª Linha

0 0 1 0,2727 -0,091 0 0,9091 Nova 2ª Linha

0 1,0 0 -0,045 0,182 0 3,182 NLP

0 0 0 0,318 -0,273 1 27,73 Nova 4ª Linha

Z X1 X2 XF1 XF2 XF3 b

1 0 0 1,2273 0,0909 0 14,091 Nova 1ª Linha

0 0 1,0 0,2727 -0,091 0 0,9091 Nova 2ª Linha

0 1,0 0 -0,045 0,182 0 3,182 NLP

0 0 0 0,318 -0,273 1,0 27,73 Nova 4ª Linha

VARIÁVEIS DE SOLUÇÃO

Exercícios:

1) Max L = 2x1 + 3x2 + 4x3

S.a. x1 + x2 + x3 100

2x1 + x2 210

x1 80

x1 0; x2 0; x3 0

2) Max L = 2x1 + 3x2

x1 0; x2 0;

-x1 + 2x2 4

x1 + 2x2 6

x1 + 3x2 9

x1 0; x2 0

3)