Você está na página 1de 26

MÉTODO SIMPLEX TABULAR

Através de um exemplo, se fará, passo a passo, o uso do Método Simplex


Tabular para encontrar a solução de um Problema de Programação Linear
(PPL). Este modelo é usado para modelo de PPL, a principio, com mais de
duas variáveis de decisão.
Apesar de ser creditada à Inglaterra a origem da Pesquisa Operacional, sua
propagação deve-se principalmente à equipe de cientistas liderada por
George B. Dantzig, dos Estados Unidos, convocada durante a Segunda
Guerra Mundial. O resultado deste esforço de pesquisa, concluído em 1947,
deu-se o nome de Método Simplex.
O Método Simplex utiliza o Método de Gauss-Jordan (um método de
resolução de sistemas de equações lineares) iterativamente até encontrar a
solução. O método Simplex é um algoritmo (seqüência finita de operações
elementares que termina em um número finito de operações) e baseado em
álgebra linear para determinar, por um método iterativo, a solução ótima de
um PPL.
Existem pacotes de computação que resolvem PPL, entre eles, o SOLVER um
complemento do Excel, What'sBest! no Excel, e LINDO (LINGO).
MÉTODO SIMPLEX TABULAR
Primeiro, se desenvolverá o modelo de
programação linear do problema dado.
Um alfaiate tem, disponíveis, os seguintes tecidos:
16 metros de algodão, 11 metros de seda e 15
metros de lã. Para um terno são necessários 2
metros de algodão, 1 metro de seda e 1 metro de
lã. Para um vestido, são necessários 1 metro de
algodão, 2 metros de seda e 3 metros de lã. Se um
terno é vendido por $300,00 e um vestido por
$500,00, quantas peças de cada tipo o alfaiate
deve fazer, de modo a maximizar o seu lucro?
Encontre a solução ótima do problema, e
interprete sua resposta.
PRIMEIRO PASSO:
DEFINIR AS VARIÁVEIS DE DECISÃO

XV: Quantidade de peças de vestidos a serem


feitos pelo alfaiate
XT: Quantidade de peças de ternos a serem feitos
pelo alfaiate
SEGUNDO PASSO:
ESCREVER AS RESTRIÇÕES
RESTRIÇÃO DE DISPONIBILIDADE DE ALGODÃO(16m)
1XV + 2XT <= 16
RESTRIÇÃO DE DISPONIBILIDADE DE SEDA (11m)
2XV + 1XT <= 11
RESTRIÇÃO DE DISPONIBILIDADE DE LÃ (15m)
3XV + 1XT <= 15
RESTRIÇÃO CONDIÇÃO DE NÃO NEGATIVIDADE
XV, XT >= 0
TERCEIRO PASSO:
ESCREVER FUNÇÃO OBJETIVO
MAXIMIZAR LUCRO = LUCRO VESTIDO + LUCRO TERNO
MAX Z = 500 XV + 300 XT
FINALMENTE O MODELO DE PL:
MAX Z = 500 XV + 300 XT
s.a.
XV + 2XT <= 16
2XV + XT <= 11
3XV + XT <= 15
XV , XT >= 0
MÉTODO SIMPLEX TABULAR
MODELO PADRÃO MODELO CANÔNICO
MAX Z = 500 XV + 300 XT MAX Z = 500XV+300XT +
0XF1 + 0XF2 + 0XF3
s.a. s.a.
XV + 2XT <= 16 XV + 2XT + XF1 = 16
2XV + XT <= 11 2XV + XT +XF2 = 11
3XV + XT <= 15 3XV + XT +XF3 = 15
------------------ XV,XT,XF1,XF2,XF3 >= 0
XF1,XF2,XF3: VARIÁVEIS DE
MAX Z; Todas as FOLGA-VF(SLACK)
restrições <= Adicionam-se VF´s para
MIN Z; Todas as trabalhar com equações (=)
restrições >= SIMPLEX TRANSFORMA A F.O EM:
MAX Z - 500XV - 300XT - 0XF1- 0XF2 - 0XF3 = 0
SIMPLEX TABULAR
TABELA I
BASE XV XT XF1 XF2 XF3 bi

Z -500 -300 0 0 0 0
XF1 1 2 1 0 0 16
XF2 2 1 0 1 0 11
XF3
3 1 0 0 1 15
Nesta primeira tabela, se parte com uma solução básica viável trivial, isto é, uma solução trivial
(PARTE-SE DO PONTO ORIGEM, Po(0,0), isto é, XV = 0 e XT = 0) e o sistema de equações (I)
se reduz a considerar a matriz Identidade como o sistema de equações (II) a ser resolvida. Do
sistema inicial
XV + 2XT + XF1 = 16 1 0 0 XF1 16
(I) 2XV + XT + XF2 = 11 (II) 0 1 0 XF2 = 11
3XV + XT +XF3 = 15 0 0 1 XF3 15
Se terá o sistema reduzido (II), onde, XF1 = 16 XF2 = 11 XF3 = 15
VB: Variáveis Básicas: Variáveis que estão na solução.
VB:{XF1,XF2,XF3}XF1=16;XF2=11;XF3=15
VNB: Variáveis Não Básicas:Variáveis que Não Estão na solução.
VNB {XV, XT}  XV = 0; XT = 0  Valor da Função Objetivo (FO) é Z = 0
ANÁLISE DA TABELA I
BASE XV XT XF1 XF2 XF3 bi
Z Z -500 -300 0 0 0 0
XF1 1 0 0
L1 1 2 16
L2 XF2 2 1 0 1 0 11
L3 XF3 3 1 0 0 1 15
Resumindo: SE INICIA COM UMA SOLUÇÃO TRIVIAL, ISTO É, PARTE-SE DO PONTO
DE ORIGEM, Po(0,0)  XV = 0; XT = 0
DEFINEM-SE:
VARIAVEIS BÁSICAS – VB : são variáveis que estão na Base (estão na solução).
VB= {XF1, XF2, XF3} XF1 = 16; XF2 = 11; XF3 = 15
VARIÁVEIS NÃO-BÁSICA – VNB: são variáveis que não estão na Base (não estão na
solução) VNB = { XV, XT} XV = 0 , XT = 0; Valor da função Objetivo Z = 0
VERIFICANDO: Z = 500*0 + 300*0 + 0*16 + 0*11+ 0*15  Z = 0
ESTA TABELA É ÓTIMA? NÃO, PORQUE EXISTEM VALORES NEGATIVOS NA LINHA
DA FUNÇÃO OBJETIVO
Para melhorar a solução criamos uma coluna na tabela com Z, L1, L2, L3 que irão
mudando de acordo a cada mudança feita nestas linhas da tabela
CRITÉRIOS PARA MELHORAR UMA TABELA DO MÉTODO
SIMPLEX TABULAR (MELHORAR O VALOR DA FUNÇÃO
OBJETIVO – SOLUÇÃO)
BASE XV XT XF1 XF2 XF3 bi
Z Z -500 -300 0 0 0 0
L1
XF1
1 2 1 0 0 16
L2 XF2 2 1 0 1 0 11
L3 XF3 3 1 0 0 1 15
• CRITÉRIO DE ENTRADA DE UMA VNB A BASE
• NO CASO DE MAXIMIZAÇÃO, ESCOLHE-SE O MENOR VALOR
NEGATIVO DO COEFICIENTE ASSOCIADO A UMA VNB DA
FUNÇÃO OBJETIVO (NA LINHA DA FO: Z)
• MENOR VALOR {-500; -300} = -500 (pelo modelo Simplex)
• - 500 ESTÁ ASSOCIADO À VNB XV NA FUNÇÃO OBJETIVO
•  ENTRA À BASE A VNB XV
• COM QUE VALOR ENTRA XV À BASE?
CRITÉRIO DE SAÍDA DE UMA VB DA BASE
BASE XV XT XF1 XF2 XF3 bi TETA
Z Z -500 -300 0 0 0 0
L1
XF1
11 2 1 0 0 16
16 16/1 = 16
L2 XF2 22 1 0 1 0 11
11 11/2 = 5,5
15
L3 XF3 333 1 0 0 1 15 15/3 = 5
ESCOLHE-SE O MENOR
PIVOT VALOR DE TETA
TETA: DIVIDE-SE A COLUNA Bi PELA COLUNA DA VARIÁVEL QUE ENTRA
MIN TETA = {bi/aij; i=1,2,3; j=1; aij >0}
MIN TETA = {16/1; 11/2; 15/3}  MIN TETA = {16; 5,5; 5,0} = 5,0
5,0 ESTÁ ASSSOCIADO À VB XF3
 SAÍ DA BASE A VB XF3
O VALOR DE XV QUE ENTRA À BASE? É O VALOR CORRESPONDENTE DO TETA
ESCOLHIDO  XV = 5
DEFINE-SE UM ELEMENTO CHAMADO PIVOT (VALOR DA INTERSEÇÃO DA
COLUNA QUE ENTRA COM A LINHA QUE SAI, ESTE VALOR SEMPRE DEVERÁ
SER UM. SENÃO FOR, FAZER AS OPERAÇÕES ELEMENTARES PARA CONVERTÍ-
LA EM UM (multiplica-se a linha toda pelo inverso, neste caso, de 3  1/3
SIMPLEX TABULAR
BASE XV XT XF1 XF2 XF3 bi TETA
Z
Z -500 -300 0 0 0 0
L1 XF1 1 2 1 0 0 16 16/1 = 16
L2 XF2 2 1 0 1 0 11 11/2 = 5,5
L3 XF3 3 PIVOT 1 0 0 1 15 15/3 = 5
A LINHA 3 (L3) DEVERÁ SER TRANSFORMADA PARA L3´, PIVOT 3 TRANSFOR 1
L3´:(1/3)*L3: 1 1/3 0 0 1/3 15/3 = 5 (LinhaPivot
Também deverá ser modificada L2  L2´ : -2L3´ + L2 Para converter 2 em zero
-2L3´ : -2 -2/3 0 0 -2/3 -10
+ L2 : 2 1 0 1 0 11__
L2´:-2L3´+L2 0 1/3 0 1 -2/3 1
Também deverá ser modificada L1  L1´: -L3´+L1 Para converter 1 em zero
-L3´: -1 -1/3 0 0 -1/3 -5
+ L1: 1 2 1 0 0 16__
L1´: -L3´+L1 0 5/3 1 0 -1/3 11
Também deverá ser modificada Z  Z´: 500L3´ + Z Para converte -500 em zero
500L3´: 500 500/3 0 0 500/3 2500 Os valores nas
+ Z : -500 -300 0 0 0 0__ linhas em vermelho
Z´:500L3´+Z: 0 -400/3 0 0 500/3 2500 gera a tabela II
TABELA II VB: XF1=11; XF2=1, XV=5; VNB: XT=0, XF3=0; Z=2500

BASE XV XT XF1 XF2 XF3 Bi MENOR TETA

Z´ Z 0 -400/3 0 0 500/3 2500


11/(5/3)=33/5=6,6
L1´ XF1 0 5/3 1 0 -1/3 11
L2´ XF2 0 1/3
1/3 0 1 -2/3 1 1/(1/3)=3/1=3

L3´ XV 1 1/3 0 0 1/3 5 5/(1/3)=15/1=15


Esta tabela é ótima? Não, porque existe um valor negativo na linha de Z´ {-400/3}
Aplicar o critério de entrada de um VNB à base:menor valor negativo na
linha de Z. ESCOLHE-SE ESTE VALOR JÁ QUE O ÚNICO VALOR NEGATIVO.
-400/3 está associado a VNB XT  XT entra a BASE.
Aplicar o critério de saída de uma VB da base: sai da base o menor TETA.
MENOR TETA {11/(5/3)=33/5=6,6; 1/(1/3)=3; 5/(1/3)=15} = 3. 3 está associado a
VB XF2  XF2 SAI DA BASE. Entra XT com o valor de 3.Elemento PIVOT: 1/3
A LINHA L2´ DEVERÁ SER TRANSFORMADA em L2 (1/3  1)´´  1/3*3 = 1
L2´´ : 3L2´ : 0 11 0 3 -2 3
L3´´: -1/3L2´ + L3´ Para converter 1/3 de L3 em zero
-1/3L2´ : 0 -1/3 0 -1 2/3 -1
+L3´ : 1 1/3 0 0 1/3 5
L3´´: -1/3L2´+L3´: 1 0 0 -1 1 4
L2´´ : 3L2´ : 0 1 0 3 -2 3 PIVOT

L1´´: -5/3L2´´ + L1´ Para converter 5/3 de L1 em zero


-5/3L2´´: 0 -5/3 0 -5 10/3 -5
L1´ : 0 5/3 1 0 -1/3 11
L1´´:-5/3L2´´+ L1´ 0 0 1 -5 3 6

Z´´: 400/3 L2´´ + Z´ Para converter 400/3 de Z em zero


400/3 L2´´ : 0 400/3 0 400 -800/3 400
Z´ : 0 -400/3 0 0 500/3 2500
Z´´:400/3 L2´´+Z´ 0 0 0 400 -100 2900
Resultado destas operações gera-se a Tabela III.
O processo repete-se até encontrar a LINHA da função
objetivo Z todas positivas ou zero.
TABELA III VB:XF1=6, XT=3, XV=4 VNB:XF2=XF3=0 Z=29000
BASE XV XT XF1 XF2 XF3 bi TETA
Z´´ Z 0 0 0 400 -100 2900
L1´´ XF1 0 0 1 -5 3 6 6/3 = 2
L2´´ XT 0 1 0 3 -2 3 3/-2 NÃO
L3´´ XV 1 0 0 -1 1 4 4/1 = 4
A LINHA L1´´ DEVERÁ SER MODIFICADA PARA L1´´´ Deve-se aplicar os
L1´´´: 1/3L1´´ 0 0 1/3 -5/3 11 2 critérios de:
L2´´´: 2L1´´´+L2´´ (1) Entrada de uma
2L1´´´ 0 0 2/3 -10/3 2 4 VNB à base: Menor
+ L2´´ 0 1 0 3 -2 3__ Valor negativo na
L2´´´: 2L1´´´+L2´´ 0 1 2/3 -1/3 00 7 linha de Z -100 
L3´´´: -L1´´´ + L3´´ XF3 entra à base
-L1´´´ 0 0 -1/3 5/3 -1 -2 XF3 =?
+ L3´´ 1 0 0 -1 1 4___ (2) Saída de uma
L3´´´: -L1´´´ + L3´´ 1 0 -1/3 2/3 0 0 2 VB da base menor
Z´´´: 100L1´´´ + Z´´ TETA
100L1´´´ : 0 0 100/3 -500/3 100 200 TETA={2,4}=2 
Z´´ : 0 0 0 400 -100 2900 XF1 sai da base
Z´´´: 0 0 100/3 700/3 00 3100 PIVOT (3)
TABELA IV
BASE XV XT XF1 XF2 XF3 Bi TETA
Z´´´
Z 0 0 100/3 700/3 0 3100
L´´´1
XF3 0 0 1/3 -5/3 1 2
L´´´2 XT 0 1 2/3 -1/3 0 7
L´´´3 XV 1 0 -1/3 2/3 0 2
NA LINHA Z´´´ TODOS OS VALORES SÃO POSITIVOS OU
ZERO´S ENTÃO ESTA TABELA É ÓTIMA.
(1) SOLUÇÃO MATEMÁTICA
SOLUÇÃO ÓTIMA ÚNICA COM Z*= 3100 NO PONTO
EXTREMO ÓTIMO P*(XV, XT) ´; P*(2,7).
(2) INTERPRETAÇÃO DA SOLUÇÃO
O ALFAITE TERÁ O MAIOR LUCRO DE $3100 QUANDO
COSTURAR 2 UNIDADES DE VESTIDO CUJO LUCRO
SERÁ DE $2*500 = $1000 E 7 UNIDADES DE TERNO
CUJO LUCRO SERÁ DE $7*300 = $2100.
(3) ANÁLISE DAS VARIÁVEIS DE FOLGA NAS RESTRIÇÕES
RESTRIÇÃO DE DISPONIBILIDADE DE ALGODÃO(16m)
1XV + 2XT <= 16 Foi adicionado a VF XF1. Na Solução XF1= 0, então:
TODO O RECURSO DE 16 METROS DE MATERIA PRIMA DE ALGODÃO SERÁ
UTILIZADO na confecção de:
2 vestidos SE UTILIZARÁ 1*2 = 2 METROS DE ALGODÃO e
7 ternos SE UTILIZARÁ 2*7 = 14 METROS DE ALGODÃO
RESTRIÇÃO DE DISPONIBILIDADE DE SEDA (11m)
2XV + 1XT <= 11 Foi adicionado a VF XF2. Na Solução XF2= 0, então:
TODO O RECURSO DE 11 metros DE MATERIA PRIMA DE SEDA SERÃO
UTILIZADOS na confecção de:
2 vestidos SE UTILIZARÁ 2*2 = 4 METROS DE SEDA e
7 ternos SE UTILIZARÁ 1*7 = 7 METROS DE SEDA
RESTRIÇÃO DE DISPONIBILIDADE DE LÃ (15m)
3XV + 1XT <= 15 Foi adicionado a VF XF3. Na Solução XF3= 2, então:
SE DEIXARÁ DE USAR 2 METROS DE LÃ DOS 15 M DISPONÍVEIS DE LÃ.
Se utilizará 13 metros na confecção de 2 vestidos e 7 ternos. SE UTLIZARÁ
3*2= 6 metro para 2 vestidos e se utilizará 1*7 = 7 metros para 7 ternos.
LINDO 6.1
• DESKTOP  ICON LINDO6.1  VERSÃO DEMO
• (1) FILE – COPIAR O MODELO PADRÃO DA AULA DE
HOJE SEM (Z =) NA FUNÇÃO OBJETIVO. COLOCAR s.t.
no lugar de s.a. e RETIRAR A CONDIÇÃO DE NÃO
NEGATIVIDADE
• (2) FILE SAVE AS  *.ltx SUBSTITUIR * POR UM
NOME (SALVAR NO PEN-DRIVE)
• (3) SOLVE  COMPILE MODEL 
• SENÃO TIVER ERRO APARECERÁ RAPIDAMENTE UMA
CAIXA COM UM BLOCO EM VERMEHO
• SE TIVER ERRO CORREGIR O ERRO E REPETIR (3)
• (4) REPORTS  TABLEAU
• (5) SOLVE  PIVOT 
• TELA
• LINDO
• MARCAR (USE MINE) NAS DUAS OPÇÕES
• MY VARIAVEL SELECTION MY ROW SELECTION
• (VARIÁVEL QUE ENTRA XV) VARIÁVEL QUE SAI
SLK4 (XF3)
LINDO 6.1
LINDO 6.1
LINDO 6.1
LINDO 6.1
Após SOLVE  PIVOT Aparecerá a seguinte tela , onde escolhe-se a
opção Use Mine (Pivot Variable e Pivot Row), onde deverá se colocar, no My
Variable Selection) a VNB que entra à base (XV) e no My Row Selection a VB
que sai da base (SLK4 – LINHA 4) .
Após dar Ok, deverão fechar as duas janelas.
LINDO
• ENCONTRAR A SOLUÇÃO DO MODELO
ANTERIOR, TABELA POR TABELA, NO LINDO.
• www.lindo.com
• Downloads
• Baixar o
Download Classic LINDO™

• ARQUIVO ZIPADO

Você também pode gostar