CAP. 5 - INTRODUÇÃO A PROGRAMAÇÃO
LINEAR
1. GENERALIDADES
Sem dúvida nenhuma a Programação Linear é uma das técnicas da Pesquisa Operacional das mais
utilizadas em se tratando de problemas de otimização.
Os problemas de Programação Linear (PL) buscam a distribuição eficiente de recursos limitados
para atender um determinado objetivo, em geral, maximizar lucros ou minimizar custos. Em se
tratando de PL, esse objetivo é expresso através de uma função linear, denominada de "Função
Objetivo".
É necessário também que se defina quais as atividades que consomem recursos e em que
proporções os mesmos são consumidos. Essas informações são apresentadas em forma de
equações as inequações lineares, uma para cada recurso. Ao conjunto dessas equações e/ou
inequações, denomina-se "Restrições do Modelo".
Normalmente se tem inúmeras maneiras de distribuir os recursos escassos entre as diversas
atividades em estudo, bastando para com isso que essas distribuições estejam coerentes com as
restrições do modelo. No entanto, o que se busca, num problema PL é a função objetivo, isto é, a
maximização do lucro ou a minimização dos custos. A essa solução dá-se o nome de solução ótima.
Assim, a Programação linear se incube de achar a solução ótima de um problema, uma vez definida
o modelo linear, ou seja, a função objetivo e as restrições lineares.
2. PROBLEMAS DE PROGRAMAÇÃO LINEAR
Como foi dito anteriormente, está-se diante de um problema de PL quando os problemas práticos
que se pretende resolver pode ser escrito de forma de maximização (ou minimização) de uma função
objetivo linear, sujeita a um conjunto de restrições que podem ser expressos sob a forma de
inequações ou equações lineares.
Capítulo 5 - Introdução a Pesquisa Operacional
5. 2
Exemplos de problemas que podem ser resolvidos por
programação linear:
a) Um fabricante está iniciando a última semana de produção de quatro diferentes modelos de
consoles em madeira para aparelhos de televisão, designados respectivamente, I, II, III e IV. Cada
um deles deve ser montado e em seguida decorado. Os modelos necessitam, respectivamente de 4,
5, 3 e 5 horas para montagem e de 2, 1, 5, 3 e 3 horas para decoração. Os lucros sobre as vendas
dos modelos são respectivamente 7, 7, 6 e 9 reais. O fabricante dispõe de 30.000 horas para a
montagem destes produtos (750 montadores trabalhando 40 horas por semana) e de 20.000 horas
para decoração (500 decoradores trabalhando 40 horas por semana). Quanto de cada um dos
modelos deve ser produzido durante esta última semana a fim de maximizar o lucro? Admita que
todas as unidades possam ser vendidas.
b) Seja o caso de um investidor que, dispondo de $6000 esteja contemplando a possibilidade de
compra de dois seguintes tipos de ações:
?
Tipo 1 - preço unitário de compra de $ 5,00 e rentabilidade anual esperada de 30%.
?
Tipo 2 - preço unitário de compra de $ 3,00 e rentabilidade anual estimada em 35%.
Supondo que o investidor não deseje adquirir mais do que 1750 ações, e que seu corretor só possa
conseguir 1000 ações do tipo 1 e 1500 ações do tipo 2, que quantidades deve comprar de cada
tipo de ação, na hipótese de que seja seu objetivo maximizar o total de capital no fim de um ano?
c) Uma empresa esta analisando um conjunto de alternativas de projetos de investimentos
disponíveis e apresentados na tabela seguir.
Projeto
Investimento no Investimento no
ano 1
ano 2
1
2
3
4
5
6
7
8
9
12
54
6
6
30
6
48
36
18
3
7
6
2
35
6
4
3
2
Vida útil
5 anos
5 anos
5 anos
5 anos
5 anos
5 anos
5 anos
5 anos
5 anos
Economia anual
nos próximos 3
anos
9.29
26.85
9.88
7.92
35.33
8.14
22.78
16.91
11.04
Capítulo 5 - Introdução a Pesquisa Operacional
5. 3
O orçamento para investimento é de 50 para o primeiro ano e 20 para o segundo. Sabendo-se que
a TMA da empresa é de 10% a.a., qual a combinação ótima desses projetos.
3. OBTENDO FUNÇÃO OBJETIVO E AS RESTRIÇÕES
Antes de discutir as técnicas possíveis para obtenção de resultados, através de um problema será
discutido como obter a função objetivo e as restrições.
Exemplo para discutir a obtenção da função objetivo e as
restrições:
Giapetto fabrica dois tipos de brinquedos de madeira: soldados e trens. Um soldado é vendido por
$27 e usa $10 de matéria prima. Cada soldado que é fabricado tem um custo adicional de $14
relativo a mão de obra. Um trem é vendido por $21 e gasta $9 de matéria prima. O custo de mão
de obra adicional para cada trem é de $10. A fabricação destes brinquedos requer dois tipos de
mão de obra: carpintaria e acabamento. Um soldado necessita de 2 horas para acabamento e 1 de
carpintaria. Um trem necessita de 1 hora para acabamento e 1 hora de carpintaria. Cada semana,
Giapetto pode obter qualquer quantidade de matéria prima, mas tem a disposição até 100 horas de
acabamento e 80 de carpintaria. A demanda por trens é ilimitada, mas a venda de soldados é de no
máximo 40 por semana. Giapetto quer maximizar seu lucro diário (receitas-custos). Formular o
modelo matemático que poderá ser usado por Giapetto para maximizar seu lucro semanal.
Solução:
Sabendo que a matéria prima
necessária é obtida sem problemas,
Giapetto tem como objetivo
maximizar o lucro semanal (receitas custos).
Vamos então formular
matematicamente a situação de
Giapetto com o objetivo de maximizar
o lucro semanal.
Capítulo 5 - Introdução a Pesquisa Operacional
Primeiro ponto importante:
Variáveis de decisão
Em qualquer modelo de PL, as variáveis
de decisão devem descrever
completamente as decisões a serem
feitas.
Caso de Giapetto: quantos soldados e trens
devem ser feitos na semana.
Variáveis de decisão
• X1 = número de soldados produzidos
cada semana;
• X2 = número de trens produzidos a cada
semana.
Segundo ponto importante:
Função objetivo
Em qualquer modelo de PL, o decisor
quer maximizar ou minimizar alguma
função das variáveis de decisão.
Caso de Giapetto: custos fixos (aluguel,
seguro) não depende dos valores de X1
e X2, assim ele pode se concentrar em
maximizar a venda da semana.
5. 4
Capítulo 5 - Introdução a Pesquisa Operacional
Receitas e custos: podem ser expressos em
termos das variáveis X1 e X2. Seria tolice
Giapetto produzir mais soldados que ele possa
vender, assim assumimos que todos
brinquedos produzidos podem ser vendidos.
Assim:
Receita da semana = receita dos soldados +
receita dos trens
Receita da semana = $/soldado * soldado/semana + $/trem * trem/semana
Receita por semana = 27*X1 + 21*X2
Também podemos escrever:
• Custos de M.P. = 10*X1 + 9*X2
• Custos de M.O. = 14*X1 + 10*X2
Então Giapetto quer maximizar:
(27X1 + 21X2) - (10X1 + 9X2) - (14X1 + 10 X2) = 3X1 + 2X2
Assim o objetivo de Giapetto é escolher X1 e X2 para
maximizar 3X1 + 2X2
Objetivo:
maximizar Z = 3X1 + 2X2
ou
max Z = 3X1 + 2X2
Variável
usualmente
utilizada
5. 5
Capítulo 5 - Introdução a Pesquisa Operacional
Terceiro ponto importante:
restrições
Se X1 e X2 aumentam, a função objetivo de
Giapetto será sempre maior. Mas infelizmente X1
e X2 são limitados pelas seguintes restrições:
• 1 - cada semana, não mais que 100 horas de
acabamento;
• 2 - cada semana, não mais de 80 horas de
carpintaria;
• 3 - limitação de demanda, não mais de 40
soldados por semana.
M.P. ilimitada, portanto não há
restrições. Como, próximo
passo, é necessário expressar as
restrições 1, 2 e 3, em termo das
variáveis de decisão: X1 eX2.
Restrição 1:
não mais de 100 h de acabamento
Total de h de acab./semana = horas de aca./sold. * sold. feitos/semana +
horas de acab./trem * trens feitos/semana
Total de h de acab./semana = 2*X1 + 1*X2
Restrição 1 - 2X1 + X2 <= 100
5. 6
Capítulo 5 - Introdução a Pesquisa Operacional
Restrição 2:
não mais de 80 h de carpintaria
Total de h de carp./semana = horas de carp./sold. * sold. feitos/semana +
horas de carp./trem * trens feitos/semana
Total de h de carp./semana = 1*X1 + 1*X2
Restrição 2 - 1X1 + X2 <= 80
Restrição 3:
venda máxima de soldados: 40
Restrição 3 - X1 <= 40
Restrições:
• 1 - 2X1 + X2 <= 100
• 2 - X1 + X2 <= 80
• 3 - X1 <= 40
Coeficientes
tecnológicos:
refletem a quantia
usada para
diferentes produtos.
Restrições para o
problema de PL
de Giapetto
Usualmente
representam a
quantidade de
recursos
disponíveis.
5. 7
Capítulo 5 - Introdução a Pesquisa Operacional
5. 8
Quarto ponto importante:
Restrições adicionais
Para completar a formulação do problema:
• X1 >= 0
• X2 >= 0
Significa que
X1 e X2
precisam satisfazer
todas as restrições
Resumindo
• max Z = 3X1 + 2X2
sujeito a:
• 2X1 + X2 <= 100
• X1 + X2 <= 80
• X1<= 40
• X1 >= 0
• X2 >= 0
(1)
(2)
(3)
(4)
(5)
(6)
P.L. - todos os
termos X são de
expoente 1 e as
restrições são
inequações
lineares
O problema de Giapetto
é tipico de muitos outros,
onde precisa-se
maximizar lucros
sujeitos a recursos
limitados
4. SOLUÇÃO DE UM PROBLEMA DE P.L. - MÉTODO
GRÁFICO
Um problema de P.L. só pode ser resolvido graficamente desde que o modelo, em estudo,
apresentar duas variáveis.
Capítulo 5 - Introdução a Pesquisa Operacional
O fato de que a função objetivo
para um PL precisar ser uma
função linear de variáveis tem
2 implicações:
• 1 - A contribuição para a função objetivo
de cada variável de decisão é proporcinal
ao valor da variável de decisão;
• 2 - A contribuição para a função objetivo
para cada variável é independente dos
valores de outras variáveis de decisão.
Definição: região de solução
- para um problema de PL é
o conjunto de todos os
pontos que satisfazem todas
as restrições do problema.
Giapetto: X1 = 40 X2 = 20
Restrições:
• 2X1 + X2 <= 100
• X1 + X2 <= 80
• X1<= 40
• X1 >= 0
• X2 >= 0
região de solução
(2), ok 2*40+20<=100
(3), ok 40+20<=80
(4), ok 40<=40
(5), ok 40>=0
(6), ok 20>=0
5. 9
Capítulo 5 - Introdução a Pesquisa Operacional
Giapetto: X1 = 15 X2 = 70
Restrições:
• 2X1 + X2 <= 100
• X1 + X2 <= 80
• X1<= 40
• X1 >= 0
• X2 >= 0
não é região de solução
(2), ok 2*15+70<=100
(3), não ok 15+70> 80
(4), ok 15<=40
(5), ok 15>=0
(6), ok 70>=0
região de solução
Pontos que atendem e onde será procurada
a solução ótima
Solução ótima
Ponto da região de solução, que leva ao maior
valor da função objetivo.
• A maioria dos problemas de PL, tem
somente uma solução ótima;
• Alguns não tem solução ótima;
• Alguns tem infinitas soluções.
Para o problema de Giapetto, solução ótima:
X1=20 e X2 = 60
Z = 3*20 +2*60 = 180
lucro = 180 - 100 = 80/semana
5. 10
Capítulo 5 - Introdução a Pesquisa Operacional
Solução gráfica para o
problema de 2 variáveis
Um PL com 2 variáveis
pode ser resolvido
graficamente. Nós sempre
nomeamos as variáveis X1
e X2 e os eixos
coordenados por X1 e X2.
Se nós queremos delimitar em
um gráfico o conjunto de
pontos que satisfaça a:
2X1+3X2 <= 6 (1)
3X2 <= 6 - 2X1
X2<=1/3*(6 - 2X1) = 2 - 2/3X1 (2)
O conjunto de pontos que satisfaz (1) e
(2) cai sobre a reta ou abaixo dela
X2
X2 = 2 - 2/3X1
6
5
4
Região onde:
2X1+3X2>=6
3
2
1
Região onde:
2X1+3X2<=6
X1
1
2
3
4
5
6
5. 11
Capítulo 5 - Introdução a Pesquisa Operacional
A solução gráfica para o problema de Giapetto é a seguinte:
Encontrando a região de solução
do problema de Giapetto:
•
•
•
•
•
2X1 + X2 <= 100
X1 + X2 <= 80
X1<= 40
X1 >= 0
X2 >= 0
(2)
(3)
(4)
(5)
(6)
Para um
ponto (X1, X2)
pertencer a região de
solução é preciso
satisfazer todas
estas inequações.
(5) e (6) indicam o primeiro quadrante
X2
(2)
(4)
120
D
Poligono DGFEH - região de solução
B
100
80
G
60
40
F
20
E
H
20
(3)
A
40
X1
C
60
80
100 120
Encontrando a solução ótima
Após a identificação da região de
solução, nós devemos procurar a
solução ótima, que será o ponto da
região que levar ao maior valor de
Z = 3X1+2X2
5. 12
Capítulo 5 - Introdução a Pesquisa Operacional
Para encontrar a solução ótima, nós
precisamos desenhar uma linha sobra
a qual todos os pontos levem ao mesmo
valor de Z.
Escolhe-se qualquer ponto da região de
solução:
(20, 0) - Z = 3X1+2X2 = 60
Assim (20, 0) cai sobre a reta:
Z = 3X1 + 2X2 = 60
X2 = 30 - 3/2X1
3X1 + 2X2 = 60
tem coeficiente angular = -3/2
Assim todas as retas 3X1+2X2 =
constante terão o mesmo coeficiente
angular.
Importante: uma vez desenhada a reta,
podemos encontrar
todas as outras pelo movimento paralelo da reta
que desenhamos.
X2
(2)
(4)
120
100
D
80
B
G
Indica o ponto ótimo - G (20, 60)
60
40
F
20
A
E
20
H
X2 = 30 - 3/2 X1
(3)
40
X1
C
60
80
100 120
5. 13
Capítulo 5 - Introdução a Pesquisa Operacional
5. 14
Ponto ótimo:
Z = 3*20 + 2*60 = 180
5. PROBLEMAS INTERESSANTES QUE PODEM SER
FORMULADOS PARA SEREM RESOLVIDOS POR
PROGRAMAÇÃO LINEAR
O que será visto a seguir é a formulação de vários problemas complicados da Programação Linear.
O passo mais importante na formulação de um modelo é a escolha apropriada das variáveis de
decisão. Se as variáveis de decisão forem selecionadas adequadamente, a função objetivo e as
restrições devem ser obtidas sem muita dificuldade. Problemas na determinação da função objetivo
e restrições normalmente são devido a uma escolha incorreta das variáveis de decisão.
5.1 Exemplo 1: Problema de orçamento de capital
Uma empresa de petróleo esta considerando 5 diferentes oportunidades de investimento. O fluxo de
caixa e valor presente (em milhões de reais) é dado na tabela a seguir.
A empresa tem no momento $ 40 milhões para investir; e estima-se que no primeiro ano estarão
disponíveis $ 20 milhões para investimento. A empresa pode comprar qualquer fração de cada
investimento. Neste caso, o fluxo de caixa e valor presente são ajustados de acordo com a
proporção do investimento realizado. Por exemplo, se a empresa comprar 1/5 do investimento 3,
então o pagamento necessário será de 1/5 ($5) = $1 nos tempos 0 e 1. O valor presente do
investimento 3 será de 1/5 (16) = $3.2 milhões. A empresa quer maximizar o valor presente que
pode ser obtido pelos investimentos realizados entre as opções 1 a 5. Formular o problema para
Capítulo 5 - Introdução a Pesquisa Operacional
5. 15
atingir este objetivo. Assumir que qualquer fundo não usado no instante 0 não poderá ser usado no
primeiro ano (instante 1).
Desembolso
instante 0
Desembolso
instante 1
Valor presente
Inv. 1
11
Inv. 2
53
Inv. 3
5
Inv. 4
5
Inv. 5
29
3
6
5
1
34
13
16
16
14
39
5.2 Exemplo 2: planejamento financeiro de curto prazo
Uma empresa eletrônica que fabrica gravadores e rádios têm seus custos de mão de obra, matéria
prima e preço de venda de cada produto discriminados na tabela a seguir.
Gravador
100
50
30
Preço de venda
Mão de obra
Custo matéria prima
Rádio
90
35
40
Em primeiro de dezembro de 98, a empresa terá matéria prima que é suficiente para fabricar 100
gravadores e 100 rádios. Na mesma data, o balancete previsto da empresa é o mostrado a seguir, e
a razão entre ativo circulante e as suas obrigações (dívida com banco) será 2 (20000/10000).
Ativo circulante
Caixa
Contas a receber
Estoques
Dívidas em bancos
Obrigações
10000
3000
7000
10000
A empresa precisa determinar quantos gravadores e rádios deverão produzidos em Dezembro. A
demanda é alta o suficiente para garantir que todos os produtos fabricados serão vendidos. Todas
as vendas são feitas a crédito, pagamentos por produtos fabricados em Dezembro não serão
recebidos até primeiro de Fevereiro de 99. Durante Dezembro, a empresa irá receber $2000 e
precisará pagar $1000 devido ao empréstimo bancário e $1000 referente ao seu aluguel. Em
primeiro de janeiro de 99, a empresa receberá um carregamento de matéria prima no valor de
$2000, que será pago em Fevereiro de 99. A gerência decidiu que em primeiro de janeiro de 99
Capítulo 5 - Introdução a Pesquisa Operacional
5. 16
precisa ter pelo menos $4000 em caixa. Também o banco exige que a razão entre dinheiro
disponível e financiamento seja de pelo menos 2. Para maximizar o lucro da produção em
Dezembro, o que deveria empresa produzir durante este mês?
5.3 Exemplo 3: Modelos de financiamento multi período
O exemplo a seguir ilustra como a programação linear pode ser usada para problemas de
gerenciamento de fluxo de caixa. A chave é determinar as relações de dinheiro nas mãos durante
diferentes períodos.
Uma empresa de investimentos precisa determinar a estratégia de investimento para os próximos 3
anos. Atualmente a empresa tem $100.000 disponível para investir. Os investimentos A, B, C, D e
E estão disponíveis. O fluxo de caixa associado com investir $1 em cada opção é dado na tabela a
seguir.
A
B
C
D
E
0
-$1
$0
-$1
-$1
$0
1
$0.50
-$1
$1.2
$0
$0
2
$1
$0.50
$0
$0
-$1
3
$0
$1
$0
$1.9
$1.5
Por exemplo, 1$ investido na opção B requer um pagamento de $1 no ano 1 e retorna $0.50 no
ano 2 e $1 no ano 3. Para assegurar que o portifólio da empresa seja diversificado, a política da
empresa é a de aplicar até $ 75.000 em um único investimento. Adicionalmente aos investimentos
A-E, a empresa pode obter taxas de 8% ao ano mantendo o dinheiro não investido em fundos do
mercado. Ganhos dos investimentos podem ser imediatamente reinvestidos. Por exemplo, o dinheiro
recebido no ano 1 do investimento C pode ser imediatamente reinvestido na opção B. A empresa
tem como diretriz não emprestar dinheiro de fundos, assim o dinheiro disponível para investimento a
qualquer tempo é limitado ao disponível. Formular a programação linear que maximiza o dinheiro em
mãos no ano 3.
Capítulo 5 - Introdução a Pesquisa Operacional
5. 17
6. SOLUÇÃO DE PROBLEMAS DE P.L. - MÉTODO SIMPLEX
Nas formulações anteriores, problemas com mais de 2 variáveis não poderiam ser solucionados com
o método gráfico. Desta forma é necessário o estudo de outro procedimento para a busca de
soluções.
Agora, será apresentado mais um procedimento geral para resolução de problemas de programação
linear, denominado "Método Simplex" e que foi desenvolvido em1947 por George B. Dantzig.
O método simplex é um método interativo (algoritmo) utilizado para achar, algebricamente, a
solução ótima de um problema de P.L..
6.1 Teoremas Básicos
Teorema 1 - O conjunto de todas as soluções compatíveis do modelo de programação linear é um
conjunto convexo cujos vértices (pontos extremos) correspondem a soluções básicas viáveis.
Teorema 2 - Se a função objetiva possui um máximo (mínimo) finito, então pelo menos uma solução
ótima é um ponto extremo do conjunto convexo do teorema1.
6.2 Procedimentos do Método Simplex
Supondo o seguinte problema para maximização:
Max z = 5X1 + 2X2
Sujeito a:
X1 ? 3
X2 ? 4
X1 + 2X2 ? 9
X1, X2 ? 0
A solução gráfica do problema é a seguinte:
Capítulo 5 - Introdução a Pesquisa Operacional
X2
E(0, 4)
5. 18
Z
ZB = 15
D(1, 4)
ZB = 15
ZD = 13
C(3, 3)
ZE = 8
X1
A(0, 0)
B(3, 0)
A
B
C
D
E
Pontos extremos
Sabe-se que a solução ótima do modelo é uma solução compatível básica do sistema, ou seja, um
ponto extremo do polígono A,B,C,D,E.
O método simplex, para ser iniciado, necessita conhecer uma solução compatível básica (solução
inicial) do sistema, isto é, um dos pontos A,B,C,D,E do trapézio. Suponha-se que essa solução seja
o ponto A.
O método simplex verifica se a presente solução é ótima. Se for o processo está encerrado. Se não
for ótima, é porque um dos pontos adjacentes fornece um valor maior que o ponto A.
Neste caso, o método simplex faz então a mudança do ponto A para o ponto extremo adjacente
que mais aumente o valor da função objetivo. No caso o ponto B.
Agora, tudo que foi feito para o ponto extremo A é feito para o ponto extremo B. O processo
finaliza quando se obtém um ponto extremo onde todos os pontos extremos a ele adjacentes,
fornecem valores menores que a função objetivo.
Como fazer, algebricamente, a mudança de um ponto extremo para outro, a ele adjacente?
Achar, portanto, a próxima solução básica (ponto extremo adjacente) exige a escolha de uma
variável básica para deixar a base atual, tornando-se não básica, e a escolha de uma variável não
básica para entrar na base em sua substituição.
O método simplex compreenderá, portanto, os seguintes passos:
1. Achar uma solução compatível básica inicial.
2. Verificar se a solução atual é ótima. Se for, pare. Caso contrário siga para o passo III.
Capítulo 5 - Introdução a Pesquisa Operacional
3. Determinar a variável não-básica que deve entrar na base.
4. Determinar a variável básica que deve sair da base.
5. Achar a nova solução compatível básica, e voltar ao passo II
6.3 O Método Simplex
A seguir será mostrado passo a passo o método simplex.
Definição Geral de Programação Linear:
Maximizar ou Minimizar Z = C 1X 1 + C2 X2 + .... + Cn Xn
sujeito a:
a11X1 + a12X1 + ..........+ a1nXn
(? ou = ou ? ) b1
a21X1 + a22X1 + ..........+ a2nXn
(? ou = ou ? ) b2
a31X1 + a32X1 + ..........+ a3nXn
(? ou = ou ? ) b3
am1X1 + am2X1 + ..........+ amnXn
(? ou = ou ? ) bm
?0
X1, X2, X3, Xn
O Método Simplex é aplicado diretamente quando:
1. todas as restrições são ? bi
2. todos os bi ? 0
3. se quer maximizar Z
Quando uma dessas condições não é atendida estamos em presença de um caso particular.
O Método Simplex será estudado, acompanhando a seguinte formulação:
Maximizar Z = 3x1 + 2x2 + 5x3
Sujeito a
x1+ 2x2 + x3 ? 430
3x1 + 2x3 ? 460
5. 19
Capítulo 5 - Introdução a Pesquisa Operacional
5. 20
xl + 4x2 ? 420
x1, x2, x3 ? 0
Primeiro passo: Transformar o sistema de M desigualdades lineares restritivas em um sistema de M
equações lineares.
Para isso adiciona-se a cada uma das desigualdades uma variável não-negativa chamada “Variável
de Folga".
Obs: Tem-se tantas variáveis de folga quantos forem as restrições.
Representação das Folgas = xn+1 , xn+2 , ... , xn+m.
Assim temos:
x1+ 2x2 + x3 + x4 = 430
3x1 + 2x3 + x5 = 460
xl + 4x2 + x6 = 420
Segundo passo: Colocar as equações em forma de tabela
Z - 3x1 - 2x2 - 5x3
=0
x1+ 2x2 + x3 + x4
3x1
xl + 4x2
+2x3
= 430
+ x5
= 460
+ x6 = 420
Terceiro passo: Determinar uma solução inicial viável.
Pode ser demonstrado que a solução ótima de um problema de programação linear é uma solução
básica. Una solução básica para um sistema de M equações e N incógnitas.
Possui M variáveis diferentes de O (zero) e (N - M) variáveis iguais a 0 (zero). As variáveis
diferentes de 0 (zero) são chamadas "Variáveis Básicas" e aquelas iguais a 0 (zero) são as "Variáveis
Não Básicas".
No Método Simplex escolhe-se como variáveis básicas aquelas em cuja coluna aparece um valor
igual a 1 e os demais iguais a 0 (zero).
Quarto passo: verificar se a solução é ótima.
Capítulo 5 - Introdução a Pesquisa Operacional
5. 21
Examinar os valores dos coeficientes das Variáveis não básicas na la linha (no exemplo, linha de Z) e
concluir:
a. Se todos os valores forem positivos a solução é ótima e única.
b. Se aparecerem valores positivos e alguns nulos a solução é ótima mas não única.
c. Se aparecer algum valor negativo a solução não é ótima. Deve-se, então executar o 5o passo.
Como pode se verificar na tabela a seguir, existem números negativos na primeira linha, assim a
solução não é ótima, e precisa-se continuar os passos do método.
Base
Z
X4
X5
X6
z
1
0
0
0
X1
-3
1
3
1
X2
-2
2
0
4
X3
-5
1
2
0
X4
0
1
0
0
X5
0
0
1
0
X6
0
0
0
1
b
0
430
460
420
bi/aie
430
230
ind.
equac.
0
1
2
3
Quinto passo: Determinar a variável que entra (xe )
A variável que entra deve satisfazer as seguintes condições:
- ser igual a 0 (zero) na solução atual (ou seja deve ser não básica)
- ter coeficiente menor ou igual a 0 (zero) na linha de Z (na la linha)
- possuir em sua coluna, pelo menos um coeficiente positivo. Escolher para entrar na base aquela
que apresentar, na linha de Z, o coeficiente negativo de maior valor absoluto. Marcar a coluna na
tabela.
Sexto passo: Determinar a variável que sai (xs).
Calcula-se o valor de bi/aie para cada linha da tabela e escolhe-se para sair a variável para a qual o
quociente tiver o menor valor não negativo.
Marcar na matriz a linha de xs. O quinto e sexto passos podem ser vistos nesta tabela:
entra
Base
Z
X4
z
1
0
X1
-3
1
X2
-2
2
X3
-5
1
X4
0
1
X5
0
0
X6
0
0
b
0
430
bi/aie
430
equac.
0
1
Capítulo 5 - Introdução a Pesquisa Operacional
X5
X6
0
0
3
1
0
4
2
0
sai
0
0
1
0
0
1
460
420
230
ind.
5. 22
2
3
Pivô
Sétimo passo: Calcular a nova matriz de coeficientes, executando as operações convenientes nas
linhas da matriz.
Os coeficientes da nova matriz podem ser calculados da seguinte maneira:
10 - Dividir todos os elementos da linha marcada pelo pivô (esta linha não muda mais).
20 - Multiplicar a linha marcada pelo fator Fi= aie / ase
Subtrair a linha i da matriz, da linha marcada e multiplicada pelo fator Fi.
30 - Substituir na coluna base a variável que sai pela variável que entra.
O resultado destas operações na tabela anterior resulta em:
Base
Z
X4
X3
X6
z
1
0
0
0
X1
4.5
-0.5
1.5
1
X2
-2
2
0
4
X3
0
0
1
0
X4
0
1
0
0
X5
2.5
-0.5
0.5
0
X6
0
0
0
1
b
1150
200
230
420
bi/aie
100
ind.
105
equac.
0
1
2
3
Como na primeira linha da coluna de X2 aparece um número negativo, a solução ainda não é a
ótima.
Oitavo passo: Repetir todos os passos, do 40 ao 70, tantas vezes quanto forem necessárias, até que
a solução ótima seja encontrada. O resultado final da tabela anterior aparece na próxima iteração, e
como não existem mais números negativos na primeira ilnha a solução é ótima. O resultado é
mostrado a seguir.
Base
Z
X2
X3
X6
z
1
0
0
0
X1
4
-0.25
1.5
2
X2
0
1
0
0
X3
0
0
1
0
X4
1
0.5
0
-2
X5
2
-0.25
0.5
1
O máximo Z é 1350, para X2 = 100, X3 = 230 e X6 = 20.
X6
0
0
0
1
b
1350
100
230
20
bi/aie
equac.
0
1
2
3
Capítulo 5 - Introdução a Pesquisa Operacional
6.4 EXEMPLO - Resolver o problema do GIAPETTO pelo
simplex.
Resolvendo o problema de
Giapetto pelo simplex
• max Z = 3X1 + 2X2
sujeito a:
• 2X1 + X2 <= 100
• X1 + X2 <= 80
• X1<= 40
• X1 >= 0
• X2 >= 0
(1)
(2)
(3)
(4)
(5)
(6)
Primeiro passo importante:
converter o problema de PL na
forma canônica
• max Z = 3X1 + 2X2 (1)
sujeito a:
• 2X1 + X2 + X3
= 100
• X1 + X2
+ X4
= 80
• X1
+ X5 = 40
• X1, X2, X3, X4 e X5 >=0
(2)
(3)
(4)
5. 23
Capítulo 5 - Introdução a Pesquisa Operacional
• max Z = 3X1 + 2X2 (1)
•
•
•
•
sujeito a:
2X1 + X2 + X3
= 100
X1 + X2
+ X4
= 80
X1
+ X5 = 40
X1, X2, X3, X4 e X5 >=0
(2)
(3)
(4)
Variáveis não básicas: X1 = X2 = 0
Variáveis básicas: X3 = 100 X4 = 80 X5 = 40
O problema pode ser representado assim:
Pivo
Base
X3
X4
X5
Z
1
0
0
0
X1
-3
2
1
1
X2
-2
1
1
0
X3
0
1
0
0
X4
0
0
1
0
X5
0
0
0
1
b
0
100
80
40
Razão
(1)
(2)
(3)
(4)
100/2=50
80/1=80
40/1=40
Indica que
X1 entra no
lugar de X5
Solução parcial: (0, 0, 100, 80, 40)
Próximo quadro - Base: X3, X4 e X1
Devem se colocadas na forma canônica
Ainda não é a
solução ótima
Pivo
Base
X3
X4
X1
Z
1
0
0
0
X1
0
0
0
1
X2
-2
1
1
0
X3
0
1
0
0
X4
0
0
1
0
X5
3
-2
-1
1
Solução parcial: (40, 0, 20, 40, 0)
Próximo quadro - Base: X2, X4 e X1
Devem se colocadas na forma canônica
b
120
20
40
40
Razão
20/1=20
40/1=40
40/0
(1)+3(4) (1)
(2)-2(4) (2)
(3)-(4) (3)
(4)
(4)
Indica que
X2 entra no
lugar de X3
5. 24
Capítulo 5 - Introdução a Pesquisa Operacional
Ainda não é a
solução ótima
Z
1
0
0
0
Base
X2
X4
X1
X1
0
0
0
1
X2
0
1
0
0
Pivo
X3
2
1
-1
0
X4
0
0
1
0
X5
-1
-2
1
1
b
160
20
20
40
Razão
(1)+2(2) (1)
(2)
(3)-(2)
(4)
-10
20
40
(2)
(3)
(4)
Indica que
X5 entra no
lugar de X4
Solução parcial: (40, 20, 0, 20, 0)
Próximo quadro - Base: X2, X5 e X1
Devem se colocadas na forma canônica
Valor máximo possível
para a função objetivo
solução é ótima
Base
X2
X5
X1
Z
1
0
0
0
X1
0
0
0
1
X2
0
1
0
0
X3
1
-1
-1
1
X4
1
2
1
-1
X5
0
0
1
0
b
180
60
20
20
Razão
(1)+(3) (1)
(2)+2(3) (2)
(3)
(3)
(4)-(3) (4)
Solução ótima: (20, 60, 0, 0, 20)
A restrição 4 tem um folga de 20
Solução do problema de
Giapetto pelo simplex
• max Z = 3X1 + 2X2 (1)
sujeito a:
• 2X1 + X2 + X3
= 100
• X1 + X2
+ X4
= 80
• X1
+ X5 = 40
• X1, X2, X3, X4 e X5 >=0
Solução ótima: (20, 60, 0, 0, 20)
Z = 3*20 + 2*60 = 180
A restrição 4 tem um folga de 20
Resolver pelo Simplex a seguinte formulação:
(2)
(3)
(4)
5. 25
Capítulo 5 - Introdução a Pesquisa Operacional
5. 26
Max Z = 5X1 +2X2
Sujeito a:
X1 ? 3
X2 ? 4
X1 + 2X2 ? 9
X1 ? 0
X2 ? 0
7. SOFTWARES COMPUTACIONAIS
A utilização de programação linear é recomendada para problemas de maior porte, em que muitas
variáveis e restrições devem ser consideradas. Por isso, o desenvolvimento de algoritmos
computacionais eficientes e precisos têm sido a maior preocupação entre os pesquisadores.
Programas adequados existem, virtualmente, para cada sistema computacional comercial
desenvolvido nos últimos 20 anos.
Problemas de grande porte requerem sistemas computacionais potentes e, portanto, sistemas
paralelos têm sido utilizados nos últimos anos. Entretanto, problemas menores podem ser resolvidos
em um computador pessoal utilizando um dos softwares desenvolvidos para resolução de problemas
de programação linear, como por exemplo XPress-MP LINDO e MINOS.
Para problemas considerados médios, é recomendável a utilização de planilhas eletrônicas com
recursos para resolução de problemas. Exemplos destas planilhas são o "What's Best?" (LINDO
Systems) para Lotus 1-2-3, o Microsoft Excel e Borland Quattro e ainda o solver para microsoft
Excel. Todos eles são ferramentas poderosas, apesar de sua aparência simples. O Solver do Excel
será utilizado em alguns exemplos apresentados. Outro programa que também será visto é o
LINDO.
O instituto de pesquisa operacional e ciências administrativas (INFOR-MS) publica, eventualmente,
pesquisas sobre os softwares de programação matemática em seu periódico OR/MS Today. O
relatório de 1995 apresenta softwares que rodam em computadores pessoais e destaca softwares
capazes de atacar problemas maiores tanto quanto extensões de planilhas eletrônicas.
Capítulo 5 - Introdução a Pesquisa Operacional
5. 27
7.1 Uma introdução ao uso do LINDO
LINDO (Linear Interactive and Discrete Optimizer) foi desenvolvido por Linus Schrage (1986). Ele
é um programa de computador que pode ser usado para resolver problemas de programação linear,
inteira e quadrática. Para ilustrar seu uso, vamos usar o exemplo de Giapetto, discutido
anteriormente, e que foi sintetizado na seguinte formulação:
•
•
•
•
•
•
max Z = 3X1 + 2X2
sujeito a:
2X1 + X2 <= 100
X1 + X2 <= 80
X1<= 40
X1 >= 0
X2 >= 0
(1)
(2)
(3)
(4)
(5)
(6)
O programa executável tem o nome LINDO.EXE, apesar dele ser originalmente desenvolvido para
o ambiente DOS, pode-se executá-lo pelo WINDOWS. O LINDO assume que todas as variáveis
são não negativas, e as restrições adicionais não precisam ser fornecidas.
7.1.1 Comandos do LINDO
São os seguintes os comandos do LINDO:
MAX – entrada inicial para o problema de maximização;
MIN – entrada inicial para o problema de minimização;
END – finalização da formulação, deixando o LINDO pronto para aceitar outros comandos;
GO – resolve a formulação corrente e apresenta a solução;
LOOK – mostra seleção estabelecida da atual formulação;
ALTER – altera um elemento da formulação corrente;
EXT – soma uma ou mais restrições ao modelo;
DEL – retira uma ou mais restrições do modelo;
Capítulo 5 - Introdução a Pesquisa Operacional
5. 28
DIVERT – saída para um arquivo, de tal forma que possa ser impresso;
RVRT – finaliza o comando DIVERT;
SAVE – salva uma formulação, de tal forma que possa ser recuperada para uso futuro;
RETRIEVE – recupera um arquivo anteriormente salvo;
EDIT – chama o editor do programa;
SOLU – mostra a solução da formulação (usar o comando GO antes do SOLU);
TABLEAU – mostra a tabela da formulação pelo simplex;
TAKE – habilita o LINDO a trabalhar com arquivos gerados por outros editores.
Uma lista completa dos comandos pode ser obtida através do comando COMMAND.
7.1.2 Usando o LINDO
O programa assume que todas as variáveis precisam ser não negativas. Assim, usando o programa
não é necessário digitar as variáveis de não negatividade. Para entrar com ? ou ? , basta digitar > ou
<. O problema de Giapetto no programa fica da maneira ilustrada na figura abaixo.
Depois de inserida a formulação no programa, pode-se usar qualquer dos comandos mostrados
anteriormente. Para problemas com muitas variáveis, a função objetivo ou as restrições podem se
estender por mais de uma linha. Se algum equivoco é cometido durante o processo de entrada da
formulação, o LINDO acusará o erro e instruções de correção.
Uma vez a formulação tenha sido programada, é sempre útil verificar se houve algum erro de
digitação. Para o programa mostrar a formulação, o comando LOOK, pode ser usado. Ele irá
perguntar qual a linha que se deseja verificar. Responda com um número de uma determinada linha,
Capítulo 5 - Introdução a Pesquisa Operacional
5. 29
por exemplo, 3; ou por uma faica de linhas, 1-3; ou todas (ALL). Lembre que o LINDO considera
a função objetivo como a linha 1.
Para alterar algum aspecto da formulação, usar o comando ALTER. O programa irá perguntar qual
o número da linha, nome da variável, e o novo coeficiente, nesta seqüência. Para trocar o lado
direito de uma restrição, digitar RHS quando o programa perguntar pela variável. Para trocar o sinal
da restrição (por exemplo ? para ? ), digitar DIR quando o programa perguntar pela variável.
Mudanças adicionais podem ser feitas usando EXT (para adicionar novas linhas), DEL (apagar
uma linha) e APPC (para somar uma variável a uma ou mais linhas).
Uma vez que o programa esta digitado, para salvar basta digitar SAVE e dar um nome para o
problema. Para recuperar o arquivo basta usar RETRIEVE.
Para verificar o resultado do problema, basta digitar GO. Para obter uma impressão é preciso criar
um arquivo e imprimir este arquivo. Isto é realizado com o comando DIVERT.
Para resolver o problema, basta usar GO. Apenas a solução ótima é mostrada na tela, mas a
solução inteira pode ser vista no arquivo de saída para impressão. Em seguida o programa pergunta
se é desejo fazer uma análise de sensibilidade. Digitar NO ou YES. Para sair do programa é
necessário digitar QUIT.
Qualquer problema no uso do programa, o comando HELP fornece algumas informações.
Finalmente, o LINDO não aceita parênteses e virgulas. Assim 400(X1+X2) precisa ser digitado
como 400X1+400X2.
7.1.3 O editor do LINDO
Em versões mais novas do LINDO usando o comando EDIT, um editor para corrigir e verificar a
formulação inteira é uma ferramenta bastante interessante. Neste editor as teclas tem as seguintes
funções:
Home – manda o cursor para o inicio da formulação;
End – manda o cursor para o fim da formulação;
PgUp – movimenta uma página a frente;
PgDn– movimenta uma página a trás;
Setas – movimenta o cursor de uma posição;
Esc – sai do editor;
Capítulo 5 - Introdução a Pesquisa Operacional
5. 30
Del – apaga caracter;
Backspace – apaga o caracter a esquerda do cursor;
Enter – muda o texto a direita para a próxima linha;
Crtl – seta direita – manda o cursor para o fim da próxima palavra;
Crtl – seta esquerda – manda o cursor para o fim da palavra anterior;
Crtl-S – move o cursor para o início da linha;
Crtl-E – move o cursor para o fim da linha;
7.2 UTILIZANDO O SOLVER DO EXCEL
Como foi dito anteriormente, a aplicação de programação linear não é mais limitada pela
necessidade de um software especialista. Planilhas eletrônicas geralmente possuem ferramentas que
podem ser utilizados para atacar problemas de programação linear de tamanho considerável. Talvez
as duas planilhas mais utilizadas sejam o Excel, que contém um opcional conhecido como solver, e o
Lotus 1-2-3, que possui o módulo What's best?. Ambos os sistemas são muito simples de serem
utilizados e, embora sejam um pouco mais lentos que os softwares especialistas, podem resolver
problemas de tamanho razoável. Existem, é claro, alguns perigos na sua facilidade de uso, assim
como existem armadilhas que devem ser evitadas quando modelos de programação linear são
construídos e rodados, as quais podem ser encobertas neste software amigável. Entretanto, a
disponibilidade deste software é algo passível de ser elogiada.
A discussão apresentada a seguir é baseada no Microsoft Excel v7. Versões mais recentes ou mais
antigas deste software poderão apresentar pequenas diferenças na estrutura, mas as idéias básicas
são as mesmas.
7.2.1 Formulação para o Solver
Na base de qualquer modelo de programação linear existe um conjunto de restrições às quais uma
função objetivo a ser otimizada está submetida. O exemplo simples de Giapetto foi formulado
anteriormente, neste capítulo, através das equações algébricas representadas a seguir:
Max Z = 3X1+ 2X2
Função objetivo
Sujeita a:
2X1 + X2 ? 100
Restrição quanto a tempo de acabamento
X1 + X2 ? 80
Restrição quanto a tempo de carpintaria
Capítulo 5 - Introdução a Pesquisa Operacional
X1 ? 40
5. 31
Restrição de venda máxima de soldados
Estas equações podem ser representadas de maneira diferente, através da utilização de matrizes.
Esta representação está exposta a seguir:
maximizar
Sujeito as restrições
Solução
X1 = número
de soldados
3
X2 = número de
trens
2
2
1
1
1
1
0
0
0
?
?
?
limite
100
80
40
Lucro bruto
0
Com exceção da última linha, denominada solução, as demais restrições expostas nas matrizes já
eram conhecidas. A linha de solução representa os valores atribuídos a X1 e X2 antes de qualquer
otimização. No estado atual, ambos X1 e X2 são definidos como zero, o que resulta em um lucro
bruto de zero unidades.
O primeiro estágio de uso Solver é escrever esta matriz na planilha, como apresentado na Figura 1.
Como em qualquer planilha, é muito importante observar que algumas células contêm valores
constantes, mas outras contêm fórmulas as quais assumem os valores que são exibidos nas mesmas.
Neste exemplo, as células D4, D5, D6 e E8 contêm fórmulas. As demais contêm textos, que são
utilizados para deixar o exemplo mais claro, ou contêm valores.
Capítulo 5 - Introdução a Pesquisa Operacional
5. 32
Figura 1 - formulação básica do problema.
Uma rápida explicação da Figura 1 é dada abaixo:
1. Neste exemplo, as colunas B e C possuem os valores dos coeficientes das expressões utilizadas
na formulação algébrica e na tabela anteriormente.
2. A linha 2 contém os valores dos coeficientes da função objetivo (2 e 1).
3. As linhas 4 a 6 apresentam os valores dos coeficientes das restrições descritas anteriormente.
4. A linha 8 contém os valores dados inicialmente para X1 e X2 antes de qualquer otimização.
5. A coluna D possui suas linhas com valor zero, porém suas células representam a utilização das
três restrições. Assim, a célula D4 contém a fórmula:
= $B$8*$B4 + $C$8*$C4
Observe que as referências às células B10 e C10 são ambas absolutas. Assim, esta fórmula
estendida da célula D4 a à D6 é dada por:
D4 = $B$8*$B4 + $C$8*$C4
D5 = $B$8*$B5 + $C$8*$C5
D6 = $B$8*$B6 + $C$8*$C6
A coluna E foi utilizada para que os limites máximos e mínimos das restrições fossem observados, a
qual é freqüentemente conhecida como right-hand-sides (abreviada como RHS por muitas pessoas).
Capítulo 5 - Introdução a Pesquisa Operacional
5. 33
Assim, existe um limite de 100 horas para acabamento, de 80 horas para carpintaria e venda
máxima de 40 soldados. A coluna D, como mencionado anteriormente, é usada para armazenar a
utilização atual dos recursos. Assim, a célula D4 representa a quantidade da restrição horas de
acabamento que foi utilizada e seu valor é zero, uma vez que as células B8 e C8 contêm valor zero
antes de qualquer otimização.
Finalmente, uma célula da planilha deve ser utilizada para armazenar o resultado da otimização
(neste caso, o valor do lucro semanal obtido); nesta planilha, este valor está contido na célula E8.
7.2.2 Janela de Parâmetros do Solver
Utilizando os botões do mouse ou o teclado, devemos selecionar o Solver a partir do menu de
ferramentas do Microsoft Excel. A Figura 2 apresenta a janela que irá aparecer na tela. Esta janela
de parâmetros do Solver é utilizada quando o usuário fornece ao Solver as informações necessárias
para que o mesmo busque a solução otimizada.
Figura 2 - Janela de parâmetros do Solver.
Para chegarmos à solução ótima do exemplo, o Solver precisa das seguintes informações:
1. Onde o valor da função objetivo será armazenado? Este valor representa o resultado da
otimização dado pela combinação de valores de X1 e X2 determinada. Neste caso, o resultado
será armazenada na célula E8. Isto significa que a célula E8 deve conter a fórmula apropriada
para a otimização, a qual, neste caso, é dada por: = $B$2*$B$8 + $C$2*$C$8. Observe que
as células de referência são absolutas - o que é recomendável, porém não é necessário.
Capítulo 5 - Introdução a Pesquisa Operacional
5. 34
2. Quais são as restrições e que forma as mesmas possuem? Para fornecer estas informações para
o Solver, clique no botão adicionar da subjanela de restrições da janela dos parâmetros do
Solver. Uma caixa de diálogo, como a apresentada na Figura 3, irá aparecer. Neste caso, a
caixa de diálogo corresponde à primeira restrição, a restrição das horas de acabamento, a qual
possui seus coeficientes nas células B4 e C4 e sua expressão está contida na célula D4. Assim, a
célula $D$4 deve ser digitada na caixa referência de célula, uma vez que a mesma contém a
expressão da restrição. Esta restrição é do tipo menor ou igual a, assim devemos selecionar este
símbolo da caixa central da janela. Finalmente, o valor máximo para esta restrição encontra-se
na célula $E$4 e esta célula deve ser indicada na caixa à esquerda da janela. Aperte o botão
OK e a caixa de diálogo irá fechar-se retornando à janela de parâmetros do Solver. Cada uma
das restrições deve ser descrita do mesmo modo como a anterior.
Figura 3 - janela para entrada das restrições.
3. Quais células irão conter os valores de X1 e X2, os quais serão modificados até que se otimize
a função objetivo, e qual tipo de otimização deve-se procurar? Esta informação deve ser
fornecida pelo usuário através da janela de parâmetros do Solver. As células cujos valores serão
variados são a B8 e a C8 e, como mostra a Figura 4, devem ser descritas como células de
referência na caixa células variáveis. Como se busca a maximização destas variáveis, a opção
Máx deve ser selecionada.
Capítulo 5 - Introdução a Pesquisa Operacional
5. 35
Figura 4 - entrada das células que irão variar para que a solução ótima seja encontrada (células
variáveis).
Antes de executar a otimização, é interessante informar ao Solver que todas as restrições são
expressões lineares, assim como a função objetivo. Estas informações devem ser fornecidas, pois
estamos tratando de um problema de programação linear. Para entrar com esta informação, clique o
botão opções da janela dos parâmetros do Solver. Uma nova janela irá aparecer onde a opção
presume modelo linear deve ser selecionada. Isto irá aumentar a velocidade da otimização e,
também, fará com que os relatórios fornecidos sejam adaptados para o formato de problemas de
programação linear (veja a seguir).
Para executar a otimização, retorne à janela de parâmetros do Solver e aperte o botão resolver. A
Figura 5 apresenta o resultado da otimização.
Figura 5 - solução do problema
É importante observar que muitas outras informações, além do valor ótimo das variáveis estudadas,
podem ser obtidas a partir da solução fornecida para um problema de programação linear. Um bom
pacote computacional como o Solver fornece relatórios que ajudam o usuário a entender muito mais
sobre a solução apresentada. O Solver fornece três relatórios padrão e permite que sua solução seja
exportada para outro pacote se uma análise mais detalhada for necessária.
Capítulo 5 - Introdução a Pesquisa Operacional
5. 36
7.2.3 O Relatório de Resultados do Solver
O relatório resume os resultados da pasta de trabalho e também fornece algumas informações a
mais. Estas informações extras podem ser calculadas pelo usuário, mas é importante guardá-las em
algum lugar. O relatório da otimização para o problema apresentado é mostrado na Figura 6 e
possui três partes, como descrito abaixo:
?
1.Célula de destino (Máximo): apresenta o máximo lucro obtido pelo Solver. Se este fosse um
problema de minimização, esta seção iria conter o valor mínimo.
?
Células ajustáveis: mostram as variáveis de entrada, seus valores após a solução ótima e seus
valores iniciais (zero, neste caso).
Restrições: indicam a utilização de cada um dos recursos ao final da otimização. A coluna de status
classifica as restrições como obrigatória (restrição com utilização máxima) ou não-obrigatória, estas
últimas são as que apresentam algum recurso que não foi utilizado - indicado pelo valor diferente de
zero na coluna diferencial (slacks - folgas).
Os outros dois relatórios fornecem mais informações sobre a sensibilidade da solução ótima,
informações que podem ser importantes por várias razões. Primeiro, porque são raros os casos de
programação matemática em ciências administrativas nos quais todos os coeficientes ou valores do
modelo são conhecidos com precisão. Geralmente, alguns coeficientes são conhecidos e vários
serão aproximações, estimativas ou até mesmo hipóteses. O que fazer, se os valores tomados forem
errados? Qual será o efeito destes erros na solução? Assim, uma solução alternativa não tão ótima
pode ser, algumas vezes, melhor que uma solução ótima que se toma sensível aos valores atribuídos
aos coeficientes. A segunda razão que torna importante a análise de sensibilidade está relacionada à
idéia de que o mundo é dinâmico e, por isso, as coisas estão mudando constantemente. Por
exemplo, pode ser verdade que esta semana a matéria-prima tenha um certo custo, porém, se o
período observado for um mês, este custo pode ser diferente. Assim, é importante conhecer quais
são os efeitos que as mudanças nos coeficientes podem gerar na solução ótima.
Capítulo 5 - Introdução a Pesquisa Operacional
Figura 7 - relatório de resposta para o problema
5. 37
Download

CAP. 5 - INTRODUÇÃO A PROGRAMAÇÃO LINEAR