Você está na página 1de 18

Pesquisa Operacional

Prof. José Luiz


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: Introduzir as variáveis de folga, uma para cada desigualdade.

Passo 2: 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.
Passo 3: Estabelecer uma solução básica inicial, usualmente
atribuindo zero às variáveis originais e achando valores
positivos para as variáveis de folga.
Passo 4: 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: 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.

Passo 6: 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.

Passo 7: 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
Entra

Z X1 X2 XF1 XF2 XF3 b


1 -3 -5 0 0 0 0
0 2 4 1 0 0 10 Sai

0 6 1 0 1 0 20
0 1 -1 0 0 1 30
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 Escolher a linha em que o resultado foi o menor positivo.
20 / 1 = 20 Observamos que o menor positivo é 2,5, e a linha é a segunda.
30 / -1 = -30
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 é 4

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.
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.
NOVA 1ª LINHA
0 0,5 1 0,25 0 0 2,5 NLP

X (5) 0 2,5 5 1,25 0 0 12,5 Resultado Mult.

+ 1 -3 -5 0 0 0 0 1ª Linha da Tab.

1 -0,5 0 1,25 0 0 12,5 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.
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
0 0,5 1 0,25 0 0 2,5
X (-1) 0 -0,5 -1 -0,25 0 0 -2,5 Resultado Mult.

+ 0 6 1 0 1 0 20 3ª Linha da Tab.

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


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.

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

0 0,5 0,25 0 0 2,5 Resultado Mult.


X (+1) 1
+ 0 1 -1 0 0 1 30 4ª Linha da Tab.

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


Método Simplex
9º Passo: Reescrever a tabela com as novas linhas calculadas.

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

10º Passo: Apresentar a solução:


Z X1 X2 XF1 XF2 XF3 b
Matriz Solução
1 -0,5 0 1,25 0 0 12,5
1 0 0
0 0,5 1 0,25 0 0 2,5
0 1 0
0 5,5 0 -0,25 1 0 17,5
0 0 1
0 1,5 0 0,25 0 1 32,5

VARIÁVEIS BÁSICAS VARIÁVEIS NÃO BÁSICAS VALOR DE Z


X2 = 2,5 X1 = 0
XF2 = 17,5 XF1 = 0 Z = 12,5
XF3 = 32,5

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


OBJETIVO (X1 = -0,5), NESTE CASO, TEMOS QUE RECALCULAR.
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 Escolher a linha em que o resultado foi o menor positivo.
17,5 / 5,5 = 3,18 Observamos que o menor positivo é 3,18 e a linha é a terceira.
32,5 / 1,5 = 21,67
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 é 5,5

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.
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.
NOVA 1ª LINHA
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.

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

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


Método Simplex
17º Passo: Calcular as novas linhas.
NOVA 2ª LINHA

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.

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

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.
Método Simplex
18º Passo: Calcular as novas linhas.
NOVA 4ª LINHA

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.

: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

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.
Método Simplex
19º Passo: Rescrever a nova tabela
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

20º Passo: Apresentar a solução: VARIÁVEIS DE SOLUÇÃO


Z X1 X2 XF1 XF2 XF3 b
Matriz Solução 1 0 0 1,2273 0,0909 0 14,091 Nova 1ª Linha
1 0 0 0 0 1,0 0,2727 -0,091 0 0,9091 Nova 2ª Linha
0 1 0 0 1,0 0 -0,045 0,182 0 3,182 NLP
0 0 1 0 0 0 0,318 -0,273 1,0 27,73 Nova 4ª Linha

VARIÁVEIS BÁSICAS VARIÁVEIS NÃO BÁSICAS VALOR DE Z


X1 = 3,18 XF1 = 0
X2 = 0,91 XF2 = 0 Z = 14,09
XF3 = 27,73

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


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 + 2x2  4
x1 + 2x2  6
x1 + 3x2  9
x1  0; x2  0
x1  0; x2  0;

3)

Você também pode gostar