Você está na página 1de 167

Pesquisa Operacional

Engenharia de Produo
DEPROT / UFRGS
Profs. Flavio Fogliatto, Ph.D.

1. INTRODUO PESQUISA OPERACIONAL


A Pesquisa Operacional (PO) trata da modelagem matemtica de fenmenos
estticos ou dinmicos. Os problemas estticos so denominados por
determinsticos. Nestes problemas, todos os componentes so conhecidos a
priori e nenhuma aleatoriedade em sua ocorrncia admitida. Os problemas
dinmicos so denominados estocsticos, e seus elementos apresentam uma
probabilidade de ocorrncia em uma determinada forma. Este material aborda
problemas determinsticos de Pesquisa Operacional.
Os problemas de PO existem desde longa data. Somente a partir da 2a Grande
Guerra, todavia, passaram a ser tratados a partir de uma abordagem organizada,
sendo organizados na forma de uma disciplina ou rea do conhecimento
(Ravindran et al., 1987). Os primeiros casos reportados de aplicao da PO
foram, em virtude de sua origem, de carter militar. Somente aps o final da
Segunda Grande Guerra, problemas civis passaram a ser estudados pela PO. Os
primrdios da PO encontram-se descritos no trabalho de Trefethen (1954).
Ravindran, A., Phillips, D.T. & Solberg, J.J. (1987). Operations Research,
Principles and Practice, 2nd Ed.. New York: John Wiley.
Trefethen, F.N. (1954). A History of Operations Research, in Operations
Research for Management, J.F. McCloskey & F.N. Trefethen (Eds.). Baltimore:
Johns Hopkins Press.

Ementa
INTRODUO
1. Programao Matemtica
2. Reviso de lgebra Linear
3. Uso de pacotes computacionais na soluo de problemas
PROGRAMAO LINEAR
1. Introduo Programao Linear
2. O algoritmo Simplex

Prof. Fogliatto

Pesquisa Operacional

Dois eventos motivaram o rpido desenvolvimento da PO. O primeiro foi o


desenvolvimento de um algoritmo simples para solucionar problemas de
programao linear (isto , problemas determinsticos de PO), denominado
algoritmo simplex e proposto por George Dantzig em 1947. Tal algoritmo
permitiu a resoluo manual de diversos problemas de PO, especialmente aqueles
de baixa complexidade. O segundo foi a proliferao dos microcomputadores e o
rpido aumento em sua velocidade de processamento.
Problemas de PO so usualmente modelados na forma de uma funo objetivo
(por exemplo, maximizar o lucro da empresa) e diversas restries (associadas,
por exemplo, disponibilidade de matrias-primas, mo-de-obra, etc.). A chave
do algoritmo simplex est no formato da regio limitada pelas restries, comum
a todos os problemas de PO, conforme verificado por Dantzig; tal regio
denominada simplex. Quaisquer dois pontos selecionados no contorno de um
simplex, quando unidos por uma linha, resultam em uma linha interiamente
contida dentro do simplex. A partir dessa constatao, a busca pela soluo tima
em problemas de PO passou a ser limitada a pontos extremos da regio simplex, o
que permitiu o desenvolvimento de um algoritmo de baixa complexidade
computacional por Dantzig.

Ementa
MODELOS DE REDES
1. O problema do transporte
2. O problema da designao
3. O problema do transbordo
4. Modelos de Redes
TPICOS AVANADOS
1. Programao Inteira

Prof. Fogliatto

Pesquisa Operacional

Os problemas determinsticos de PO podem ser classificados em duas categorias


genricas: problemas de programao (i) linear e (ii) no-linear. Somente os
problemas de programao linear podem ser resolvidos pelo algoritmo simplex.
Um problema qualquer de programao linear um problema de otimizao (isto
, busca pela melhor dentre vrias situaes, utilizando um critrio prestabelecido de otimalidade), com as seguintes caractersticas (Bronson &
Naadimuthu, 1997):
o problema possui um conjunto de variveis manipulveis no
procedimento de busca pelo timo; essas so as variveis de deciso do
problema.
uma funo objetivo compe o critrio de otimalidade, sendo escrita em
termos das variveis de deciso do problema. A funo objetivo uma
funo linear das variveis de deciso, devendo ser maximizada ou
minimizada.
os valores assumidos pelas variveis de deciso devem satisfazer um
conjunto de restries, que compem a regio de solues viveis do
problema.
as variveis de deciso podem assumir valores pr-estabelcidos no
domnio dos nmeros reais (isto , valores positivos, negativos ou ambos).

Referncias Bibliogrficas
LIVRO-TEXTO: Operations Research, Applications and
Algorithms, de Wayne L. Winston, 3a. Ed., Duxburry Press.
Adicionais (no mesmo nvel):
1. Pesquisa Operacional, de Harvey Wagner, 2a. Ed., Prentice-Hall
do Brasil.
2. Pesquisa Operacional, de Pierre J. Ehrlich, Ed. Atlas.

Prof. Fogliatto

Pesquisa Operacional

A soluo de problemas atravs da Pesquisa Operacional pode ser implementada


atravs de um procedimento em sete etapas, conforme apresentado na Figura 1.1.
As etapas so auto-explicativas para uma descrio completa das etapas, ver
Winston, 1994.

Figura 1.1.
A metodologia de
Pesquisa Operacional
(Winston, 1994).

Bronson, R. & Naadimuthu, G. (1997). Operations Research, 2nd Ed.. New York:
McGraw-Hill.
Winston, W.L. (1994). Operations Research, Applications and Algorithm, 3rd Ed..
Belmont (CA): Duxburry Press.

INTRODUO PROGRAMAO LINEAR


Programao Linear uma ferramenta para soluo de problemas
de otimizao.
Em 1947, George Dantzig desenvolveu o algoritmo SIMPLEX,
extremamente eficiente na soluo de problemas de PL.
A partir de ento, PL passou a ser utilizada em diversos
segmentos da atividade produtiva:
Bancos
Instituies Financeiras
Empresas de Transportes, etc.
Vamos introduzir a PL a partir de um exemplo.
Prof. Fogliatto

Pesquisa Operacional

2. PROGRAMAO LINEAR
Problemas de programao so modelados tal que o melhor uso de recursos
escassos possa ser determinado, conhecidos os objetivos e necessidades do
analista. Problemas de programao linear compem uma sub-classe de
problemas nos quais a modelagem interiamente expressa em termos de
equaes lineares. Parece intuitivo que para ser possvel a soluo de um dado
problema atravs da programao linear, o problema deve ser, incialmente,
formulado em termos matemticos.
A construo de um modelo de programao linear seguetrs passos bsicos
(Ravindran et al., 1987):
Passo I. Identifique as variveis desconhecidas a serem determinadas
(elas so denominadas variveis de deciso) e represente-as atravs de
smbolos algbricos (por exemplo, x e y ou x1 e x2).
Passo II. Liste todas as restries do problema e expresse-as como
equaes (=) ou inequaes (, ) lineares em termos das variveis de
deciso definidas no passo anterior.
Passo III. Identifique o objetivo ou critrio de otimizao do problema,
representando-o como uma funo linear das variveis de deciso. O
objetivo pode ser do tipo maximizar ou minimizar.

EXEMPLO: O caso Politoy


A Politoy S/A fabrica soldados e trens de madeira.
Cada soldado vendido por $27 e utiliza $10 de matria-prima e $14
de mo-de-obra. Duas horas de acabamento e 1 hora de carpintaria
so demandadas para produo de um soldado.
Cada trem vendido por $21 e utiliza $9 de matria-prima e $10 de
mo-de-obra. Uma hora de acabamento e 1 h de carpintaria so
demandadas para produo de um trem.

Prof. Fogliatto

Pesquisa Operacional

Na sequncia, os passos acima so ilustrados atravs de dois exemplos. Os


exemplos foram adaptados de Ravindran et al. (1987).
Exemplo 1 - O problema do mix de produo
A empresa Dalai-Lama deseja planejar a produo de incensos. Os incensos
requerem dois tipos de recursos: mo-de-obra e materiais. A empresa fabrica trs
tipos de incenso, cada qual com diferentes necessidades de mo-de-obra e
materiais, conforme tabela abaixo:

Mo-de-obra (horas por unidade)


Materiais (g / unidade produzida)
Lucro ($ / unidade)

A
7
4
4

Modelo
B
3
4
2

C
6
5
3

A disponibilidade de materiais de 200 g/dia. A mo-de-obra disponvel por dia


de 150 horas. Formule um problema de programao linear para determinar
quanto deve ser produzido de cada tipo de incenso, tal que o lucro total seja
maximizado.
Para resolver o problema acima, aplicam-se os passos para a construo de um
modelo de programao linear.
Passo I - Identifique as variveis de deciso. As atividades a serem determinadas
dizem respeito s quantidades de produo dos trs tipos de incenso.
Representando essas quantidades em termos algbricos, tem-se:

EXEMPLO: O caso Politoy


A Politoy no tem problemas no fornecimento de matria-primas,
mas s pode contar com 100 h de acabamento e 80 h de carpintaria.
A demanda semanal de trens ilimitada, mas no mximo 40 soldados
so comprados a cada semana.
A Politoy deseja maximizar seus ganhos semanais.
Formule um modelo matemtico a ser utilizado nessa otimizao.

Prof. Fogliatto

Pesquisa Operacional

xA = produo diria do incenso tipo A


xB = produo diria do incenso tipo B
xC = produo diria do incenso tipo C
Passo II - Identifique as restries. Neste problema, as restries dizem respeito
disponibilidade limitada dos recursos de mo-de-obra e materiais. O tipo A
requer 7 horas de mo-de-obra por unidade, e sua quantidade produzida xA.
Assim, a demanda por mo-de-obra para o incenso tipo A ser 7xA horas (se
considerarmos uma relao linear). Analogamente, os tipos B e C vo requerer
3xB e 6xC horas, respectivamente. Assim, a quantidade total de horas de trabalho
demandadas na produo dos trs tipos de incenso ser 7xA + 3xB + 6xC. Sabese que esta quantidade no deve axceder o total de horas disponveis na empresa,
isto , 150 horas. Assim, a restrio relacionada a mo-de-obra ser:
7xA + 3xB + 6xC 150
Para obter a restrio relacionada aos materiais, utiliza-se raciocnio similar. A
restrio resultante ser:
4xA + 4xB + 5xC 200
Para finalizar, deseja-se restringir as variveis de deciso no domnio dos reais
no-negativos (isto , x 0). Essas restries, uma para cada varivel de deciso,
so denominadas restries de no-negatividade. Apesar de serem comuns em
muitas aplicaes de programao linear, no so necessrias para a utilizao da
metodologia.

Ao desenvolver um modelo para a Politoy, investigaremos


caractersticas comuns a todos os problemas de PL
VARIVEIS DE DECISO
O primeiro passo na formulao de um problema de PL a definio
das variveis de deciso relevantes.
Estas variveis devem descrever completamente as decises a serem
tomadas.
A Politoy deve decidir sobre:
x1 = nm. de soldados produzidos a cada semana
x2 = nm. de trens produzidos a cada semana
Prof. Fogliatto

Pesquisa Operacional

Passo III - Identifique o objetivo. O objetivo maximizar o lucro total oriundo


das vendas dos produtos. Supondo que tudo o que for produzido encontre
mercado consumidor, o lucro total resultante das vendas ser:
z = 4xA + 2xB + 3xC
Assim, o problema de mix de produo apresentado acima pode ser escrito como
um modelo de programao matemtica atravs das seguintes expresses:
Determine os valores de xA, xB e xC que maximizem:
z = 4xA + 2xB + 3xC
sujeito s restries:
7xA + 3xB + 6xC 150
4xA + 4xB + 5xC 200
xA 0
xB 0
xC 0.

FUNO OBJETIVO
Em qualquer problema de PL, o analista sempre vai desejar maximizar
(ex., lucro) ou minimizar (ex., custo) alguma funo das variveis de
deciso.
A funo a ser maximizada (ou minimizada) a funo objetivo.
A Politoy deseja maximizar seus ganhos semanais. Ou seja:
ganho semanal = ganho semanal oriundo da venda de soldados +
ganho semanal oriundo da venda de trens.
= ($/soldado).(soldados/sem) + ($/trem).(trem/sem)
= 27x1 + 21x2
Tambm devemos considerar:
custo semanal com matria-prima: 10x1 + 9x2
custo semanal com mo-de-obra: 14x1 + 10x2

Prof. Fogliatto

Pesquisa Operacional

Exemplo 2 - O problema do treinamento


Uma empresa de componentes automotivos conduz um programa de treinamentos
para seus operadores. Operadores treinados so utilizados como instrutores no
programa, na proporo de um para cada dez trainees. O programa de
treinamento conduzido durante um ms. Sabe-se que de cada dez trainees
contratados, somente sete completam o programa (aqueles que no completam o
programa de treinamento so dispensados).
Os operadores treinados tambm devem cumprir suas funes usuais de operador.
O nmero de operadores treinados necessrios para atender produo nos
prximos trs meses vem apresentado abaixo:
Janeiro: 100
Fevereiro: 150
Maro: 200
Alm disso, a empresa necessita de 250 operadores treinados para Abril. Existem
130 operadores treinados no incio do ano. As despesas mensais com salrios so
as seguintes:
Cada trainee: $400
Cada operador treinado (trabalhando nas mquinas ou realizando treinamento):
$700
Cada operador treinado ocioso (por fora de acordo sindical, maquinistas ociosos
recebem uma frao do seu salrio normal, no podendo, entretanto, ser
demitidos): $500

FUNO OBJETIVO
O que a Politoy deseja maximizar :
(27x1 + 21x2) - (10x1 + 9x2) - (14x1 + 10x2) = 3x1 + 2x2
Usaremos a varivel z para designar o valor assumido pela funo
objetivo.
Assim:
Max z = 3x1 + 2x2
Os nmeros 3 e 2 so chamados coeficientes da funo objetivo. Eles
indicam a contribuio de cada varivel nos ganhos da empresa.

Prof. Fogliatto

Pesquisa Operacional

10

Deseja-se modelar o problema acima. O objetivo minimizar os custos com


pessoal, atendendo demanda de pessoal da empresa.
Formulao:
Observe, inicialmente, que operadores treinados podem executar, em
umdeterminado ms, um das seguinte atividades: (1) trabalhar nas mquinas, (2)
realizar treinamento, ou (3) permanecer ocioso.
J que o nmero de operadores trabalhando nas mquinas em cada ms fixo, as
nicas variveis de deciso desconhecidas so o nmero de operadores realizando
treinamento e o nmero de operadores ociosos em cada ms. Assim, as variveis
de deciso do problema so:
x1 = operadores treinados realizando treinamento em Janeiro
x2 = operadores treinados ociosos em Janeiro
x3 = operadores treinados realizando treinamento em Fevereiro
x4 = operadores treinados ociosos em Fevereiro
x5 = operadores treinados realizando treinamento em Maro
x6 = operadores treinados ociosos em Maro
Segundo as restries de demanda, um nmero suficiente de operadores treinados
deve estar disponvel em cada ms para trabalhar nas mquinas. Para garantir
esses operadores, deve-se escrever a seguinte equao para cada ms:
Nmero nas mquinas + Nmero treinando + Nmero ocioso =
Total de operadores disponveis no incio do ms

10

RESTRIES
A medida que x1 e x2 crescem, o valor da funo objetivo aumenta.
Mas x1 e x2 no podem crescer indefinidamente. Trs restries
limitam seu crescimento:
Restrio 1 - 100 h de acabamento / semana.
Restrio 2 - 80 h de carpintaria / semana
Restrio 3 - no mais que 40 soldados / semana, devido a limitaes
na prpria demanda.
Restries 1 3 devem ser expressas em termos das variveis de
deciso x1 e x2.

Prof. Fogliatto

Pesquisa Operacional

11

A restrio para o ms de Janeiro, por exemplo, ser:


100 + x1 + x2 = 130
Em Fevereiro, o nmero total de operadores treinados disponvel ser dado pela
soma dos operadores treinados disponveis em Janeiro e aqueles que
completaram seu treinamento em Janeiro. Em Janeiro, 10x1 trainees esto em
treinamento, mas somente 7x1 deles completam o programa, passando a ser
considerados operadores treinados. Assim, a restrio para Fevereiro :
150 + x3 + x4 = 130 + 7x1
Analogamente, para o ms de Maro:
200 + x5 + x6 = 130 + 7x1 + 7x3
Como a empresa necessita de 250 operadores treinados para Abril, mais uma
restrio necessria:
130 + 7x1 + 7x3 + 7x5 = 250
Todas as variveis de deciso so no-negativas.
Na composio da funo objetivo, os nicos custos relevantes a serem
considerados dizem respeito ao programa de treinamento (custo dos trainees e
dos operadores realizando o treinamento) e o custo dos operadores ociosos. A
funo objetivo :
Min z = 400(10x1 + 10x3 + 10x5) + 700(x1 + x3 + x5)
+ 500(x2 + x4 + x6)

11

RESTRIES
Restrio 1:
(total hs acabamento/sem.) = (hs.acab./sold.).(sold. produzidos/sem.)
+ (hs.acab./trem).(trens produzidos/sem.)
(total hs acabamento/sem.) = 2(x1) + 1(x2) = 2x1 + x2
A restrio 1 ser dada por:
2x1 + x2

100

Observe que todos os termos de uma restrio devem ter a mesma


unidade de medida.
Os valores 2 e 1 na restrio so denominados coeficientes tecnolgicos.
Prof. Fogliatto

Pesquisa Operacional

12

Reunindo funo objetivo e restries (as quais so reorganizadas tal que


variveis de deciso so posicionadas esquerda da igualdade), chega-se ao
seguinte modelo de programao linear:
Min z = 400(10x1 + 10x3 + 10x5) + 700(x1 + x3 + x5)
+ 500(x2 + x4 + x6)
sujeito a:
x1 + x2 = 30
7x1 - x3 - x4 = 20
7x1 + 7x3 - x5 - x6 = 70
7x1 + 7x3 + 7x5 = 120
Todas as variveis so no-negativas.

12

Restrio 2 (determinada de maneira similar):


(total hs carpintaria/sem.) = (hs.carp./sold.).(sold. produzidos/sem.)
+ (hs.carp./trem).(trens produzidos/sem.)
(total hs carpintaria/sem.) = 1(x1) + 1(x2) = x1 + x2
A restrio 2 ser dada por: x1 + x2

80

Restrio 3:
A restrio 3 definida pela limitao do nmero de soldados produzidos por semana (devido a limitaes na demanda):
x1
Prof. Fogliatto

40

Pesquisa Operacional

13

2.1. Modelos de Programao Linear em Formato Padro


O formato padro de um problema de programao linear com m restries e n
variveis dado por (Bazaraa et al., 1990):
Maximizar (ou minimizar):
z = c1x1 + c2x2 + ... + cnxn
sujeito a:
a11x1 + a12x2 + ... + a1nxn = b1
a21x1 + a22x2 + ... + a2nxn = b2

M
M
am1x1 + am2x2 + ... + amnxn = bm
x1 0, x2 0, , xn 0
b1 0, b2 0, , bm 0

Bazaraa, M.S., Jarvis, J.J. & Sherali, H.D. (1990). Linear Programming and
Network Flows, 2nd Ed.. New York: John Wiley.

13

RESTRIES DE SINAL
Identificam os tipos de valores que as variveis podem assumir.
Podem ser de trs tipos: 0

irrestrita

Combinando a funo objetivo e as restries, chega-se a formulao


matemtica do problema da Politoy:
max z = 3x1 + 2x2
Sujeito a:

100
80
x1
40
x1, x2 0

Restrio de horas de acabamento

2x1 + x2
x1 + x2

Prof. Fogliatto

Restrio de horas de carpintaria


Restrio de demanda
Pesquisa Operacional

14

Algumas caractersticas importantes do formato padro so: (i) a funo objetivo


do tipo maximizar ou minimizar; (ii) todas as restries so expressas como
equaes; (iii) todas as variveis so no-negativas; e (iv) a constante no lado
direito das restries no-negativa.
O formato padro de um problema de programao linear pode ser escrito,
tambm, em formato matricial, resultando em uma apresentao mais compacta:
Maximizar (ou minimizar):

z = cx

sujeito a:
Ax = b
x 0
b 0
onde A uma matriz de dimenso (m n), x um vetor (n 1), b um vetor (m
1) e c um vetor transposto (1 n). A matriz A normalmente denominada
matriz das restries ou matriz de coeficientes; ela contm os coeficientes
tecnolgicos que compem as restries. O vetor x o vetor de deciso, j que
contm a lista das variveis de deciso consideradas no problema. O vetor b
conhecido como lado direito das restries ou vetor das necessidades; ele indica
a disponibilidade de recursos associados cada restrio. Por fim, o vetor c
conhecido como vetor de custos do problema; ele contm os coeficientes de custo
que compem a funo objetivo.

14

PRTICA 1:
Um fazendeiro deseja determinar quantos acres de milho e trigo ele
deve plantar esse ano.
Um acre de trigo rende 25 sacas e requer 10 horas de trabalho/semana.
A saca vale $4 no mercado.
Um acre de milho rende 10 sacas e requer 4 horas de trabalho/semana.
A saca vale $3 no mercado. O governo garante a compra de pelo
menos 30 sacas de milho/ano.
O fazendeiro dispe de 7 acres de terra e pode trabalhar 40
horas/semana.
Formule o problema tal que os ganhos do fazendeiro sejam
maximizados.

Prof. Fogliatto

Pesquisa Operacional

15

Um problema qualquer de programao linear pode ser facilmente reescrito em


formato matricial, facilitando, posteriormente, a operacionalizao do algoritmo
simplex. Considere o exemplo ilustrativo abaixo:
Maximizar (ou minimizar):
z = 5x1 + 2x2 + 3x3 - x4 + x5
sujeito a:
x1 + 2x2 + 2x3 + x4
3x1 + 4x2 + x3

= 8

+ x5 = 7

x1 0, , x5 0
Em notao matricial, tem-se:

8
b =
( 21)
7

1 2 2 1 0
A =

( 25 )
3 4 1 0 1

x1
x
2
x = x3
( 51)

x4
x5

c = (5 2 3 1 1)

(15 )

15

Soluo - Prtica 1
Variveis de Deciso:
Deciso
x1 = no de acres de milho a serem plantados
x2 = no de acres de trigo a serem plantados

Prof. Fogliatto

Pesquisa Operacional

16

Nem todos os problemas de programao linear so formulados em formato


padro. No geral, as restries tendem a aparecer no formato de inequaes (,
). O algoritmo simplex, utilizado na soluo dos problemas de programao
linear s pode ser rodado se o problema estiver escrito em formato padro.
Assim, na maioria das aplicaes, ser necessrio converter inequaes em
equaes.
Para converter uma inequao em equao, dois tipos de variveis podero ser
utilizadas: as variveis de folga e as variveis de excesso. Variveis de folga so
utilizadas para converter inequaes do tipo em =; variveis de excesso so
utilizadas para converter inequaes do tipo em =. A denominao folga e
excesso pode ser facilmente compreendida atravs de exemplos.
Considere a restrio
x1 10
que indica o nmero mximo de operadores disponveis para executar tarefas no
ms 1. Se x1 assumir o valor 10 no ponto timo (ou seja, no alor de x1 que
melhor satisfaz funo objetivo do problema), a inequao assume o formato de
uma igualdade. Se x1 assumir valores inferiores a 10, o nmero de operadores
utilizados ser menor que o nmero disponvel; neste contexto, tem-se uma folga
entre o nmero de operadores efetivamente utilizados no ms 1 e o nmero de
operadores disponveis. Assim, para transformar a inequao x1 10 em
equao, insere-se uma varivel de folga, f1, que poder assumir qualquer valor
no-negativo.

16

ESPAO DE SOLUES E SOLUO


TIMA
O espao de solues formado por todos os pontos que
satisfazem as restries do problema.
A soluo tima em um problema de maximizao
corresponde ao ponto no espao de solues onde o valor da
funo objetivo mximo.

Prof. Fogliatto

Pesquisa Operacional

17

Para reescrever o problema em formato padro, as seguintes modificaes so


necessrias:
(a) A varivel x3 deve ser substituda por x4 x5, sendo x4 0 e x5 0.
(b) Os dois lados da ltima restrio devem ser multiplicados por 1; lembre que
as restries no formato padro no admitem constantes negativas no lado direito.
(c) Introduza uma varivel de folga f1 na primeira restrio e uma varivel de
excesso e2 na segunda restrio. Os ndices nessas variveis indicam a restrio
onde cada varivel foi introduzida.
(d) Aloque coeficientes de custo iguais a 0 nas variveis de folga e excesso. Elas
no fazem parte do problema em sua forma original e no devem, assim, alterar a
funo objetivo.
Seguindo os passos acima, chega-se ao seguinte problema em formato padro:
Minimizar:
z = 5x1 2x2 + 3x4 3x5
sujeito a:
= 7
x1 + x2 + x4 x5 + f1
e2 = 2
x1 x2 + x4 x5
= 5
3x1 + x2 + 2x4 2x5
x1 0, x2 0, x4 0, x5 0, f1 0, e2 0

17

Representao grfica
Representao da restrio 2x1 + 3x2 = 6:
x2
4
3
2

2x1 + 3x2 6

(0,0)

x1
2

2x1 + 3x2 6
Prof. Fogliatto

2x1 + 3x2 = 6

Pesquisa Operacional

18

Na sequncia, alguns conceitos bsicos de programao linear so introduzidos a


partir da representao matricial de um problema genrico de programao, em
formato padro. Considere o problema:
Maximizar (ou minimizar):

z = cx

sujeito a:
Ax = b
x 0
1. Uma soluo vivel para o problema acima dada por um vetor no-negativo
x que satisfaa as restries Ax = b.
2. O espao de solues viveis do problema acima composto pelo conjunto S
de todas as suas solues viveis. Em termos matemticos,

S = {x Ax = b, x 0}
3. Uma soluo tima dada por um vetor xo correspondente a uma soluo
vivel que resulta num valor de funo objetivo zo = cxo maior do que os valores
de z obtidos para as demais solues viveis do problema. Em tremos
matemticos, xo timo se e somente se xo S e cxo cx para todo x S (nesta
definio, o smbolo denota pertinncia).

18

Representao grfica do problema Politoy


x2

O espao de solues encontra-se


hachurado.

100
(2)

Ponto timo: (20,60)

80

(2) - (4) denotam as restries.


As restries de sinal restringem o problema
ao primeiro quadrante do espao bi-dimens.

(4)
60

Soluo tima:
(1) Desenhe o vetor z.
(2) Desenhe linhas ortogonais ao vetor z.
Essas so as linhas de isocusto.

40

(3) Calcule o valor de z no ponto timo.

20

Prof. Fogliatto

20

z = 3(20) + 2(60) = 180

(3)

40

60

80

Pesquisa Operacional

100

x1
19

4. Quando um problema de programao linear apresentar mais de uma soluo


tima, diz-se que tal problema possui solues timas alternativas. Neste
contexto, existe mais de uma soluo vivel para o problema apresentando o
mesmo valor timo zo.
5. A soluo tima em um problema de programao linear dita nica quando
no existir nenhuma outra soluo tima alternativa.
6. Quando um problema de programao linear no possuir um soluo finita (ou
seja, zo + ou zo ), diz-se que o problema apresenta uma soluo
ilimitada.

19

Restries crticas (binding) e no-crticas


Uma restrio crtica (binding) se, substituindo os valores
correspondentes ao ponto timo na restrio,
a igualdade de verifica.
Ex.: restries (2) e (3) no grfico anterior.

Todas as demais restries so consideradas no-crticas.


Ex.: restrio (4) e restries de sinal no grfico anterior.

Prof. Fogliatto

Pesquisa Operacional

20

2.2. Problemas tpicos de programao linear


Alguns modelos de programao linear so adaptveis a uma gama de situaes
prticas. Esses modelos so considerados como tpicos, por serem aplicados
em diversos setores produtivos. Nesta seo, cinco famlias de problemas tpicos
sero consideradas:
A. Escolha do mix de produo
B. Escolha da mistura para raes
C. Planejamento dinmico da produo
D. Distribuio de produtos atravs de uma rede de transportes
Outras famlias de problemas tpicos podem ser encontradas nos slides 31 a 60
desta apostila. Os exemplos que se seguem foram adaptados de Wagner (1985).

Wagner, H.M. (1985). Pesquisa Operacional, 2a Ed.. So Paulo: Prentice-Hall do


Brasil.

20

Outro exemplo:
exemplo
Solucione graficamente o problema e identifique o tipo de conjunto
de solues resultante.
Um empresa de eletrodomsticos planeja veicular seus produtos em
comerciais de TV durante a novela das 8 e os jogos da seleo na Copa.
Comerciais na novela so vistos por 7 milhes de mulheres e 2 milhes
de homens e custam $50000.
Comerciais nos jogos so vistos por 2 milhes de mulheres e 12 milhes
de homens, e custam $100000.
Qual a distribuio ideal de comerciais se a empresa deseja que eles sejam
vistos por 28 milhes de mulheres e 24 milhes de homens a um menor
custo possvel?

Prof. Fogliatto

Pesquisa Operacional

21

A. Escolha do Mix de Produo


Neste tipo de problema, o analista deseja determinar nveis para atividades de
produo. Os problemas consideram um horizonte de programao finito. Os
nveis (ou intensidade de produo) de cada atividade sofrem restries de carter
tecnolgico e prtico. As restries so expressas em termos matemticos, a
partir das variveis de deciso selecionadas para o problema.
Suponha uma empresa com quatro tipos distintos de processos e dois produtos,
manufaturados a partir destes processos. Os insumos considerados para cada
processo/produto so as horas disponveis de produo e as quantidades
disponveis das matrias-primas. A empresa deseja uma programao da
produo para a semana seguinte. Os dados do problema vm resumidos na
tabela abaixo.

21

Variveis de deciso:
x1 = num. de comerciais veiculados durante a novela.
x2 = num. de comerciais veiculados durante os jogos
Funo objetivo:
Min z = 50x1 + 100x2
A soluo grfica ...
Restries:
Pblico feminino: 7x1 + 2x2 28
Pblico masculino: 2x1 + 12x2 24
x1, x2 0
Soluo tima: (3.6, 1.4) com z = $320. A soluo nica.
Prof. Fogliatto

Pesquisa Operacional

22

A formulao do problema do mix de produo, utilizando as variveis de


deciso identificadas na tabela, dada por:
Max z = 4xA1 + 5xB1 + 9xA2 + 11xB2
sujeito :
1xA1 + 1xB1 + 1xA2 + 1xB2

15 (mo-de-obra)

7xA1 + 5xB1 + 3xA2 + 2xB2

120 (material Y)

3xA1 + 5xB1 + 10xA2 + 15xB2 100 (material Z)


xA1, xB1, xA2, xB2 0 (no-negatividade)
A funo objetivo busca maximizar os lucros oriundos da produo (e
conseqente venda) de cada produto. As restries dizerm respeito aos insumos,
tendo sido formuladas diretamente da Tabela na pgina anterior. Uma vez tendo
suas informaes organizadas em uma tabela, a maioria dos problemas de
programao linear so de fcil formulao.

22

x2

Ponto timo no inteiro:


Testar pontos (4,1), (3,2),
(4,2), checando restries e z.
Usar programao inteira.

10

Ponto timo: (3.6, 1.4)

z
Prof. Fogliatto

Pesquisa Operacional

10

x1
23

B. Escolha da mistura para raes


Neste tipo de problema, o analista deseja determinar nveis de utilizao de
matrias-primas na composio de uma rao alimentar. As restries
normalmente dizem respeito a caractersticas nutircionais desejadas para o
produto acabado, quantidades de matrias-primas e insumos disponveis e
demanda a ser atendida.
Suponha um problema no qual uma rao deva ser elaborada a partir da mistura
de quatro tipos de gros. Quatro nutrientes so considerados no produto final.
As informaes que compem as restries e funo objetivo do problema vm
apresentadas na tabela abaixo.

23

CASOS ESPECIAIS:
(1) Problemas com solues alternativas (vrias solues so
simultaneamente timas).
Nestes casos, a linha de isocusto, ao abandonar o espao de
solues viveis, intersecciona com uma linha inteira
(e no somente um ponto) desse conjunto.

Prof. Fogliatto

Pesquisa Operacional

24

A formulao do problema da mistura para raes, utilizando as variveis de


deciso identificadas na tabela, dada por:
Min z = 41x1 + 35x2 + 96x3
sujeito :
2x1 + 3x2

+ 7x3

1250 (nutriente A)

1x1 + 1x2

250 (nutriente B)

5x1 + 3x2

900 (nutriente C)

0,6x1 + 0,25x2 + 1x3 232,5 (nutriente D)


Todas as variveis de deciso na formulao acima so restritas a valores nonegativos. Um segundo conjunto de restries poderia ser acrescentado
formulao acima: restries relacionadas s quantidades disponveis de cada
tipo de gro. Da mesma forma que as restries acima foram escritas diretamente
das linhas da tabela na pgina anterior, as restries de disponibilidade de gros
seriam obtidas das colunas da Tabela.

24

CASOS ESPECIAIS:
(2) Problemas com soluo tendendo ao infinito.

Nestes casos, as restries formam um espao aberto de solues


viveis.
Se a funo objetivo for do tipo
max, z e a formulao
do problema pode estar incorreta.
Se for do tipo Min, uma ou mais
solues sero encontradas.

Prof. Fogliatto

Pesquisa Operacional

25

C. Planejamento dinmico da produo


Os exempos vistos anteriormente contemplavam formulaes em um nico
perodo de tempo. Em situaes reais, pode-se desejar formular o problema para
gerar solues especficas para diferentes perodos de tempo. Neste caso, sero
necessrias as formulaes do tipo multiperodo.
Considere um problema onde as disponibilidades de matria-prima, mo de obra,
alm dos lucros unitrios com a venda de produtos variem com o tempo. A
estocagem de produtos de um perodo at perodos futuros admitida, apesar de
um custo de estocagem ser praticado. Esse um exemplo de programao
dinmica. A diviso deste tipo de problema em sub-problemas que contemplem
um nico perodo no oferece bons resultados, j que aspectos como a estocagem
de produtos acabados para atender demanda futura no so considerados.

25

CASOS ESPECIAIS:
(3) Problemas sem soluo

Nestes casos, as restries no formam nenhum espao de


solues viveis.

Prof. Fogliatto

Pesquisa Operacional

26

Suponha uma empresa fabricante de dois tipos de eletrodomsticos, mquinas de


lavar loua e mquinas de lavar roupas. A demanda esperada (em unidades) para
os prximos quatro trimestres vem dada no quadro abaixo.

Produto
Lava-louas
Lava-roupas

Designao
Et
Mt

Vendas esperadas (unidd/trimestre)


1
2
3
4
2000
1300
3000
1000
1200
1500
1000
1400

Durante este horizonte de planejamento, deseja-se utilizar a mo-de-obra


disponvel da melhor maneira possvel e produzir as quantidades necessrias de
cada tipo de mquina. Estoques so admitidos (ou seja, pode-se estocar
mquinas montadas em um trimestre para atender a demanda em trimestres
subsequentes). Alm disso, a fora-de-trabalho malevel, sendo admitidas
demisses e contrataes.
Os custos de produo (matrias-primas), mo-de-obra e estocagem de mquinas
vem apresentados na tabela abaixo.

26

Resolva graficamente o problema


formulado na Prtica 1

Prof. Fogliatto

Pesquisa Operacional

Soluo grfica do problema:

Tipo de custo
Designao
ct
Lava-louas (matrias-primas)
vt
Lava-roupas (matrias-primas)
jt
Estocagem lava-louas
kt
Estocagem lava-roupas
pt
Hora de trabalho

27

Custos unitrios por trimestre


1
2
3
4
125
130
125
126
90
100
95
95
5
4,5
4,5
4
4,3
3,8
3,8
3,3
6
6
6,8
6,8

Observe que todas as variveis de deciso so dependentes do tempo. Em outras


palavras, a medida que os trimestres passam, os custos de manufatura e
estocagem mudam.
Cada lava-louas demanda 1,5 horas de trabalho e cada lava-roupas demanda 2
horas de trabalho. No incio do 1o trimestre, 5000 horas de trabalho esto
disponveis. Por fora de acordo sindical, a variao mxima permitida na forade-trabalho em um determinado trimestre no deve ultrapassar 10% (ou seja, de
um trimestre para o outro, no permitido demitir ou contratar mais de 10% dos
funcionrios em atividade no trimestre de origem).
As variveis de deciso do problema so:
dt = no de lava-louas produzidas durante o trimestre t.
wt = no de lava-roupas produzidas durante o trimestre t.
rt = estoque de lava-louas disponvel no final do trimestre t, descontadas as
mquinas utilizadas para suprir a demanda naquele trimestre.

27

Outro exerccio
Um fabricante deseja maximizar a receita. A tabela mostra
as composies das ligas, seus preos e as limitaes na
disponibilidade de matria-prima:
Itens / Atividades Liga tipo A Liga tipo B Disponibilidade
2
1
16
Cobre
1
2
11
Zinco
1
3
15
Chumbo
$30
$50
Preo de Venda

Formule o problema e encontre a soluo tima


graficamente.

Prof. Fogliatto

Pesquisa Operacional

28

Soluo do exerccio:

28

Problemas Tpicos de
Formulao

Escolha da dieta

Scheduling de pessoal
Deciso Financeira
Problema da Mistura
Programao da Produo

Prof. Fogliatto

Pesquisa Operacional

29

Para garantir que a variao no nvel da fora-de-trabalho no exceda 10% no


primeiro trimestre, so escritas as restries:
h1 0,9 (5000)

h1 1,1(5000)

h1 4500

h1 5500

o que resulta em
As restries para o primeiro trimestre podem ser reescritas para os trimestres t =
2,,4 conforme apresentado abaixo:
dt + rt-1 - rt = Et
wt + st-1 - st = Mt
1,5dt + 2wt - ht 0
ht 0,9ht-1

ht 1,1ht-1

A funo objetivo deve considerar a minimizao de todos os custos incidentes


da fabricao, mo-de-obra e estocagem das mquinas nos quatro trimestres.
Matematicamente, ela dada por:
Minimizar [(c1d1 + v1w1 + j1r1 + k1s1 + p1h1)
+ (c2d2 + v2w2 + j2r2 + k2s2 + p2h2)
+ (c3d3 + v3w3 + j3r3 + k3s3 + p3h3)
+ (c4d4 + v4w4 + j4r4 + k4s4 + p4h4)].

29

FORMULAO 1: Escolha de dieta


Quatro tipos de alimentos esto disponveis na elaborao da merenda
de um grupo de crianas: biscoito de chocolate, sorvete, refrigerante
e torta de queijo. A composio desses alimentos e seus preos so:
Alimento
(poro)

Calorias

Chocolate
(g)

Aucar
(g)

Gordura
(g)

Preo
(poro)

Biscoito

400

0.5

Sorvete

200

0.2

Refrig.

150

0.3

Torta
queijo

500

0.8

As crianas devem ingerir pelo menos 500 calorias, 6 g de


chocolate, 10 g de acar, e 8 g de gordura.
Formule o problema tal que o custo seja minimizado.
Prof. Fogliatto

Pesquisa Operacional

30

D. Distribuio de produtos atravs de uma rede de transportes


Os modelos de rede possuem, na maioria dos casos, uma estrutura com m pontos
de fornecimento e n pontos de destino. O problema de programao linear
consiste na definio do melhor caminho (ou rota) a ser utilizada para fazer com
que uma determinada quantidade de produtos de um ponto de fornecimento
chegue um ponto de destino.
Problemas de planejamento dinmico da produo tambm podem ser tratados
atravs de modelos de redes. Neste caso, a deciso passa a ser quanto produzir
num determinado ms para consumo naquele ms e quanto deve ser produzido
para estoque, para consumo nos meses subseqentes.
Suponha uma empresa com m plantas distribudas em um determinado pas. A
produo mxima de cada planta designada por Si, onde o ndice i designa a
planta em questo (i = 1,, m).
Existem n pontos de demanda a serem abastecidos pela empresa. Cada ponto de
demanda requer Dj unidades do produto em questo. O ndice j denota os pontos
de demanda, tal que j = 1,, n.
Associado a cada par (i, j) existe um custo cij, que o custo de fornecer o produto
ao ponto de demanda j a partir da planta i.
O problema acima pode ser organizado em uma tabela, conhecida como tableau
dos transportes. Essa tabela vem apresentada a seguir.

30

Variveis de deciso:
x1 = pores de biscoitos;
x2 = pores de sorvete;
x3 = pores de refrigerante;
x4 = pores de torta de queijo;

Funo objetivo:
(custo total) = (custo dos biscoitos) + (custo do sorvete) + (custo do
refrigerante) + (custo da torta de queijo)
Min z = 50 x1 + 20 x2 + 30 x3 + 80 x4

Prof. Fogliatto

Pesquisa Operacional

31

Figura 2.2.1. Tableau dos transportes (Fonte: Wagner, 1986).


A formulao de um problema de transportes pode ser obtida diretamente das
linhas e colunas do table na Figura 2.2.1. As restries de fornecimento
(capacidade) so obtidas das linhas da tabela; as restries de demanda, das
colunas da tabela.

31

Restries:
(1) Ingesto mnima de 500 calorias;
(2) Ingesto mnima de 6 g de chocolate;
(3) Ingesto mnima de 10 g de acar;
(4) Ingesto mnima de 8 g de gordura.
(1) 400 x1 + 200 x2 + 150 x3 + 500 x4 500
(2) 3 x1 + 2 x2 3
(3) 2 x1 + 2 x2 + 4 x3 + 4 x4 10
(4) 2 x1 + 4 x2 + x3 + 5 x4 8
Variveis 0.

Prof. Fogliatto

Pesquisa Operacional

32

Seja xij o nmero de unidades remetidas da planta i ao ponto de fornecimento j.


O custo associado remessa de uma unidade do produto de i para j cij. O
modelo matemtico do problema descrito acima dado por:
m

Minimizar

c x
i =1 j =1

ij ij

sujeito a:
n

ij

j =1

x
i =1

ij

Si , para i = 1,, m (capacidade)

Dj

, para j = 1,, n (demanda)

xij 0
Observe que uma soluo tima para o problema pode indicar uma mesma planta
fornecendo para vrios pontos de demanda, ou um ponto de demanda recebendo
os produtos demandados de diversas plantas.

32

FORMULAO 2: Otimizao da Fora de Trabalho


Uma agncia de correios necessita de um nmero diferente de funcionrios, de acordo com o dia da semana:
Dia Empr. Dia Empr.
Seg.
17
Quarta
15
Tera
13
Quinta
19

Dia
Sexta
Sb.

Empr.
14
16

Dia
Dom.

Empr.
11

Por exigncia sindical, cada trabalhador trabalha cinco dias consecutivos e descansa dois.
Formule o problema tal que o nmero de empregados contratados
seja o mnimo necessrio para atender s necessidades de mo-deobra.

Prof. Fogliatto

Pesquisa Operacional

33

3. ALGORITMO SIMPLEX
Um simplex uma forma geomtrica com uma propriedade especial, a saber.
Uma linha que passe por quaisquer dois pontos pertencentes um simplex deve
estar contida inteiramente dentro do simplex. Por exemplo, A Figura 3.1(a) traz
um exemplo de uma figura geomtrica que no apresenta a propriedade acima.
Em contrapartida, a Figura 3.1(b) apresenta a propriedade que caracteriza uma
simplex. De forma geral, a rea formada pela interseco das restries de um
problema de programao linear (PL) uma forma geomtrica do tipo simplex.
Conforme visto anteriormente, a regio formada pela interseco das restries
de um problema de PL denominada espao de solues viveis.

33

Variveis de deciso:
xi = nm. de empregados trabalhando no dia i;
Funo objetivo:
Min z = x1 + x2 + x3 + x4 + x5 + x6 + x7
Restries:
x1
x2
x3
x4
x5
x6
Prof. Fogliatto

17
13
15
19
14
16
x7 11
xi 0

Pesquisa Operacional

Qual o problema
com essa
formulao?

34

Num espao bi-dimensional, a regio formada pelo espao de solues viveis


um plano. A equao que representa a funo-objetivo pode ser representada na
forma de um vetor, digamos c. Desta forma, seguindo a direo de melhoria da
funo objetivo determinada pelo vetor c dentro do espao de solues viveis,
possvel encontrar o ponto timo. A busca garante que (a) o ponto timo
maximiza ou minimiza a funo objetivo, sendo seu valor mximo ou mnimo,
respectivamente; e (b) o ponto timo satisfaz o conjunto das restries que
compem o problema de programao linear, j que a busca pelo timo se
restringiu ao espao de solues viveis do problema em estudo. O mesmo
raciocnio pode ser estendido a problemas de maior dimensionalidade.
Considere o conjunto formado por todos os problemas de programao linear
para os quais existe um espao de solues viveis. Pode-se demonstrar que tais
espaos so formas geomtricas do tipo simplex (ver Bazaraa et al., 1990; p. 94).
Ao rastrear-se o espao de solues viveis de um problema de PL em busca do
ponto timo, este dever corresponder a um dos pontos extremos do simplex, o
que, na prtica, poder corresponder a um ponto, uma reta, um plano ou outra
forma de maior dimenso.
O algoritmo simplex pode ser descrito de maneira bastante simplificada,
conforme apresentado a seguir. Considere um espao de solues viveis bidimensional e um vetor c formado pelos coeficientes de custo da funo objetivo
e posicionado na origem do plano bidimensional. Considere um ponto extremo p
qualquer do espao de solues viveis e um vetor que passe

34

PROBLEMAS
(1) A funo-objetivo no o nmero de funcionrios, como se
imagina. Cada funcionrio est sendo computado 5 vezes.
Por ex.: um funcionrio que comea a trabalhar na segunda,
trabalha de segunda a sexta e est includo nas variveis
x1, x2, x3, x4, x5.
(2) A inter-relao entre as variveis x1, x2, ..., x5 no est capturada
na formulao.
Por ex.: alguns funcionrios que trabalham na segunda estaro
trabalhando na tera. Ou seja x1 e x2 esto inter-relacionadas
mas isso no aparece na formulao.
Prof. Fogliatto

Pesquisa Operacional

35

pela origem e pelo referido ponto, digamos p. Se a busca pelo timo iniciar, por
exemplo, no ponto de origem do espao bidimensional, a funo objetivo tender
a apresentar melhoria sempre que o ngulo formado pelos vetores c e p for
inferior a 90. Quando esse no for o caso, o avano ir na direo contrria do
vetor c (que indica a direo de melhoria da funo objetivo) e qualquer
movimento naquela direo ser desinteressante.
Por analogia, considere o conjunto de todos os pontos extremos do espao de
solues viveis e os vetores que partem da origem at estes pontos. A partir de
um ponto inicial qualquer no espao de solues viveis (por exemplo, o ponto
correspondente origem do espao bi-dimensional), possvel determinar a
direo de maior melhoria investigando os ngulos formados entre o vetor c e os
demais vetores, formados a partir da unio da origem aos pontos extremos do
simplex; o menor ngulo cp corresponde melhor direo para movimento.
O mesmo mecanismo de busca pode ser descrito em termos algbricos. Para
tanto, algumas definies prvias so necessrias. A primeira delas diz respeito a
variveis bsicas e no-bsicas. Um exemplo deve auxiliar a introduzir esses
conceitos.
Considere o seguinte exemplo:
Max x1 + 3x2
s.a

x1 + 2x2 4
x2 1
x1 ,

x2 0

35

FORMULAO CORRETA
Variveis de deciso:
xi = nm. de empregados comeando a trabalhar no dia i;
Cada empregado comea a trabalhar em um nico dia, no sendo assim
contados mais de uma vez.

Funo objetivo:
Min z = x1 + x2 + x3 + x4 + x5 + x6 + x7

Prof. Fogliatto

Pesquisa Operacional

36

Aps introduzir as variveis de folga f1 e f2, o problema passa a ser escrito como:
Max x1 + 3x2
s.a

x1 + 2x2 + f1
x2
x1 ,

= 4
+ f2 = 1

x2 0

Geometricamente, o problema pode ser representado da seguinte forma:

Figura 3.2. Representao de um problema de PL em um espao bidimensional.

36

17 funcionrios devem estar trabalhando na segunda.


Quem estar trabalhando segunda?
xi = trabalham nos dias i, i+1, i+2, i+3, i+4;
i = 1 (segunda). Assim, estaro trabalhando na segunda os
empregados x1 + x4 + x5 + x6 + x7.
Assim, a restrio referente ao nmero de empregados trabalhando na
segunda ser:
x1 + x4 + x5 + x6 + x7 17
Os demais dias sero formulados de maneira similar.

Prof. Fogliatto

Pesquisa Operacional

37

Observe que para traar as retas correspondentes s restries, basta equacionlas para determinar os pontos de interseco com os eixos x1 e x2. Por exemplo, a
primeira restrio intercepta o eixo x1 quando x2 = 0. Ignorando a varivel de
folga associada primeira restrio (f1) e transformando a inequao em equao,
tem-se:
x1 + 2x2 = 4
x1 + 2(0) = 4
x1 = 4
Repetindo o procedimento, para o caso em que x1 = 0, determina-se o ponto onde
a primeira restrio intersecciona o eixo x2; isto :
x1 + 2x2 = 4
0 + 2x2 = 4
x2 = 2
Sendo assim, para representar a primeira restrio no espao bidimensional (x1,
x2), basta identificar os pontos (x1, x2) = (4, 0) e (x1, x2) = (0, 2) e traar uma reta
que passe pelos dois pontos. Na Figura 3.2, a reta correspondente primeira
restrio vem identificada como f1 = 0. Tal identificao procedente, j que
exatamente sobre a reta, a varivel de folga assume um valor igual a 0 e a
inequao correspondente restrio assume o formato de uma equao.

37

Restries:
x1
x1
x1
x1
x1
x2
x3

+
+
+
+
+
+
+

x4
x2
x2
x2
x2
x3
x4

+
+
+
+
+
+
+

x5
x5
x3
x3
x3
x4
x5

+
+
+
+
+
+
+

x6
x6
x6
x4
x4
x5
x6

+
+
+
+
+
+
+

x7
x7
x7
x7
x5
x6
x7
xi

17
13
15
19
14
16
11
0

A soluo tima x1 = 4/3; x2 = 10/3; x3 = 2; x4 = 22/3


x5 = 0; x6 = 10/3; x7 = 5.
xi fracionrio no faz sentido.
Arredondando-se chegamos a uma soluo que, quando checada via
otimizao inteira, resulta completamente sub-tima.
Para esses problemas precisamos de programao inteira.
Prof. Fogliatto

Pesquisa Operacional

38

Para representar-se graficamente a segunda restrio, adota-se procedimento


idntico aquele descrito nos pargrafos anteriores. A segunda restrio vem
representada na Figura 3.2 como f2 = 0.
Considere o ponto A, correspondente origem do espao (x1, x2). Para
representar-se o ponto A em termos das coordenadas (x1, x2), escreve-se (x1, x2) =
(0, 0). Todavia, o nmero total de variveis do problema exemplo quatro: x1,
x2, f1 e f2. J que (x1, x2) = (0, 0), pode-se perguntar quais os valores assumidos
por f1 e f2. Como na origem est-se distante das retas correspondentes s
restries, natural imaginar-se que alguma folga exista nas restries. Sendo
assim, alm de saber-se com certeza que (x1, x2) = (0, 0), sabe-se tambm que
f1 > 0 e f2 > 0.
Num espao bidimensional a representao de qualquer ponto dever ser feita
atravs de dois valores 0. Tais valores podem ser atribudos s variveis x1, x2,
f1 e f2. Na prtica, em qualquer ponto do espao representado na Figura 3.2, todas
as variveis assumiro um valor. Todavia, como a dimenso do problema igual
a 2 (j que temos somente duas restries), sabe-se que apenas duas das quatro
variveis podero assumir valores >0. Na origem, essas variveis sero f1 e f2.
Assim, diz-se que as variveis f1 e f2 formam (ou compem) a base no ponto A.
As variveis x1 e x2 so variveis no-bsicas, j que no dispe-se de espao
para mais do que duas variveis na base. Variveis bsicas podem assumir
valores 0. Variveis no-bsicas s podem assumir valor = 0.

38

FORMULAO: Deciso Financeira


O conceito de valor lquido presente:
Considere que $1 investido hoje valer mais de $1 daqui h um ano.
O novo valor depender da taxa anual de juros, r.
Assim:
$1 hoje = $(1 + r)k em k anos
ou
$ 1 recebidos em k anos = $ (1 + r)-k hoje
$ x recebidos em k anos = $x / (1 + r)k hoje
O valor lquido presente (VLP) de um investimento determinado
descontando o fluxo de caixa de um investimento at o tempo
atual, ou tempo 0.
Prof. Fogliatto

Pesquisa Operacional

39

Considere o ponto B na Figura 3.2, correspondente interseco da segunda


restrio (f2 = 0) e do eixo x2. Neste ponto, as variveis bsicas so x2 e f1. Se x2
fosse uma varivel no-bsica, por exemplo, jamais seria possvel representar o
ponto B, j que naquele ponto x2 = 1. O mesmo raciocnio se aplica varivel de
folga f1. Se essa varivel estivesse for a da base, o ponto B deveria localizar-se,
necessariamente, sobre a primeira restrio (onde f1 = 0, como a prrpia
identificao da restrio indica). No ponto B, as variveis no-bsicas so x1 e
f2.
Continuando, no ponto C (interseco das duas restries), as variveis bsicas
so x1 e x2. As variveis de folga so no-bsicas. Finalmente, no ponto D
(interseco da primeira restrio com o eixo x1), as variveis bsicas so x1 e f2 e
as variveis no bsicas so x2 e f1.
Considere a representao matricial de um problema de PL introduzida na seo
2.1. Os vetores c, x e b e a matriz A devem ser expressos em termos das
variveis bsicas e no-bsicas que compem o problema. A representao do
problema na Figura 3.2, no ponto A, por exemplo, ser:

x1 x2 f1 f 2

1 2 1 0
A=

0 1 0 1
a1 a2 a3 a4

x1 x2 f1 f 2
c = [1, 3, 0, 0]
t

b=

x t = [x1 , x2 , f1 , f 2 ]

f1 0
f 2 0

39

EXEMPLO:
Investim. 1 = requer um investimento de $10,000 no tempo 0
e de $14,000 em 2 anos e tem um retorno de $24,000 em 1 ano.
Investim. 2 = requer um investimento de $6,000 no tempo 0 e
de $1,000 em 2 anos e tem um retorno de $8,000 em 1 ano.
Qual o melhor investimento (r = 0.2)?
VLP (Inv. 1) =
=
VLP (Inv. 2) =
=

-10,000 + (24,000/1+0.2) - [14,000/(1+0.2)2]


$277.78
-6,000 + (8,000/1+0.2) - [1,000/(1+0.2)2]
- $27.78
O investimento 1 bem melhor!

Prof. Fogliatto

Pesquisa Operacional

40

Como no ponto A as variveis f1 e f2 compem a base, as matrizes e vetores


apresentados acima podem ser divididos simplesmente em termos de seus
componentes bsicos e no-bsicos. Para padronizar a apresentao, as variveis
bsicas sempre vm apresentadas antes das no-bsicas. No exemplo anterior, os
vetores e matrizes seriam reescritos como:

B
NB
A = [ f1 f 2 x1 x2 ]
f
b = 1
f2

c = [ f1 ,

NB

f2

x1 , x2 ]

NB

x t = [ f1 , f 2 x1 , x2 ]

As colunas na matriz A so numeradas de a1 at an (no exemplo, n = 4), conforme


apresentado no exemplo.
De uma maneira genrica, qualquer problema de PL poder ser representada em
termos dos vetores c, x e b e da matriz A particionados em suas pores bsicas e
no-bsicas. Cada poro dever compor as variveis de deciso atualmente na
base e fora-da-base, respectivamente.
Por exemplo:

40

EXEMPLO DE FORMULAO:
FORMULAO:
Formulao 3
Uma empresa est considerando 5 oportunidades de investimento,
com caractersticas dadas a seguir:
Gasto t =0
Gasto t =1
VLP

Inv. 1
$11
$3
$13

Inv. 2
$53
$6
$16

Inv. 3
$5
$5
$16

Inv. 4
$5
$1
$14

Inv. 5
$29
$34
$39

A empresa tem $40 disponveis para investimento no tempo t = 0


e estima dispor de $20 no tempo t = 1. Capital no investido em
t=0 no estar disponvel em t = 1. Fraes de cada investimento
podem ser compradas.
Formule o problema tal que o VLP da companhia seja
maximizado.

Prof. Fogliatto

ct = [c B c N ]

Pesquisa Operacional

A = [B N ]

b t = [b1 , b2 , K , bn ]

41

x t = [x B x N ]

O algoritmo simplex pode ser derivado atravs da seguinte equao, que compe
o sistema de restries de um problema de PL:
Ax = b
A soluo do sistema de equaes acima pode ser obtida resolvendo o sistema
para x. Para tanto, basta multiplicar os dois lados da igualdade por A-1 (lembre
que A A-1 = I, onde I designa uma matriz identidade; ver reviso de lgebra
Linear a partir do slide 90):
A-1 Ax = A-1b
Ix = A-1b
x = A-1b
Reescrevendo a primeira equao utilizando matrizes e vetores particionados em
variveis bsicas e no-bsicas resulta em:

[B N] x

=b
x
N
B

41

Varivel de deciso:
A empresa deseja determinar qual frao de cada investimento deve ser
comprada:
xi = frao do investimento i comprada pela empresa.

Funo objetivo:
Consiste em maximizar os VLP dados na tabela:
Max z = 13x1 + 16x2 + 16x3 + 14x4 + 39x5

Prof. Fogliatto

Pesquisa Operacional

42

Procedendo com a multiplicao entre os vetores no lado esquerdo da igualdade,


obtemos:

Bx B + Nx N = b
e ento:

Bx B = b Nx N
resolvendo a equao acima para xB, isto , multiplicando-se ambos os lados da
equao por B-1, obtm-se:

x B = B 1b B 1Nx N
A matriz N, derivada de A e correspondendo s colunas no-bsicas de A, pode
ser escrita em termos de suas colunas no-bsicas aj. O mesmo pode ser feito
para o vetor xN, que contm as variveis de deciso no-bsicas; o vetor xN pode
ser escrito em termos de suas variveis de deciso no-bsicas xj.
Para reescrever N e xN conforme sugerido acima, necessrio observar a
equivalncia de duas representaes algbricas, descritas a seguir.
Sejam N e xN dados por:

42

Restries:
(1) A empresa no pode investir mais de $40 no tempo 0:
11x1 + 53x2 + 5x3 + 5x4 + 29x5 40
(2) A empresa no pode investir mais de $20 no tempo 1:
3x1 + 6x2 + 5x3 + x4 + 34x5 20
Falta alguma restrio?
(3) A empresa no pode comprar mais que 100% de nenhum
investimento:
xi 1
(4) Todas as variveis devem ser positivas.
Prof. Fogliatto

N = [a1
x tN = [x1

Pesquisa Operacional

43

a2 L aP ]
x2 L x P ]

Observe que N uma matriz; assim, suas partes componentes so vetores,


designados por aj. Tal designao pertinente, j que a matriz N uma partio
da matriz de restries A. Consequentemente, as colunas de N devem constituir
um subconjunto das colunas de A. Tal subconjunto de variveis no-bsicas ser
designado, doravante, por R.
Existe um total de N colunas em A, uma associada a cada varivel de deciso do
problema. Das N colunas de A, P correspondem a variveis no-bsicas. Assim,
os ndices em N e xN variam de j = 1,, P. Note que as variveis xj no-bsicas
compem o conjunto R.
Deseja-se reescrever N e xN tornando explicitas as suas colunas e variveis nobsicas, respectivamente. Para tanto, utiliza-se a seguinte equivalncia:

Nx N = a j x j
jR

A validade da equivalncia acima demonstrada a seguir atravs de um exemplo.

43

PRTICA 2:
A empresa X deseja determinar quanto dinheiro investir e quanto
dinheiro tomar emprestado no prximo ano. Cada real investido pela
empresa reduz o VLP em 10 centavos e cada real tomado em
emprstimo aumenta o VLP em 50 centavos (vale mais a pena tomar
emprestado do que investir).
X pode investir no mximo $1000000. O dbito pode somar at 40% do
que for investido.
X dispe de $800000 em caixa.
Todo o investimento deve ser pago com o dinheiro em caixa ou com
dinheiro emprestado.
Formule o problema tal que o VLP de X seja maximizado.
Resolva o problema graficamente.

Prof. Fogliatto

Pesquisa Operacional

44

Seja N uma matriz (2 3) constituda dos seguintes elementos:

3 6 8
N=

1 2 7
a1 a 2 a 3
Por convenincia e para manter a consistncia notacional, as trs colunas da
matriz N acima so denominadas aj, j = 1,2,3.
Associada a cada coluna de N existe uma varivel de deciso xj. Essas variveis
vm apresentadas no vetor xN, abaixo:

x tN = [x1

x2

x3 ]

O produto NxN, utilizando a matriz e vetor acima, resulta em:

x1
3 6 8 3x1 + 6 x2 + 8 x3
Nx =

x2 =
1 2 7 x 1x1 + 2 x2 + 7 x3
3
t
N

44

FORMULAO: Problema da Mistura


Situaes onde vrias matrias-primas devem ser misturadas em
propores ideais so modelveis via programao linear.
Alguns exemplos:
(1) Mistura de vrios tipos de leos para produzir diferentes
tipos de gasolina.
(2) Mistura de compostos qumicos para gerar outros
compostos.
(3) Mistura de ingredientes para produo de raes.
(4) Mistura de diferentes tipos de papis para produzir um papel
reciclado.

Prof. Fogliatto

Pesquisa Operacional

45

A representao alternativa desse produto utiliza o somatrio:

Nx N = a j x j
jR

No exemplo, j = 1, 2, 3. Ento:

a x
jR

= a1 x1 + a 2 x2 + a 3 x3 =

3
6
8
1 x1 + 2 x2 + 7 x3 =


3x1 + 6 x2 + 8 x3
1x + 2 x + 7 x
2
3
1

Comparando o resultado acima com aquele obtido a partir do produto NxN,


possvel verificar a validade da equivalncia proposta.
De maneira anloga, possvel demonstrar que o produto entre dois vetores, por
exemplo,

ctN x N
pode ser representado, alternativamente, como:

c
jR

xj

45

EXEMPLO (Formulao 4): O caso Texaco


A Texaco produz at 14000 barris/dia de 3 tipos de gasolina misturando 3
tipos de leos. Dados a respeito das gasolinas e leos so:
Preo Deman Preo
Preo DisponiVenda da/dia produo
compra bilidade
Gas 1 $70
3000
$4
leo 1
$45
5000
Gas 2 $60
2000
$4
leo 2
$35
5000
Gas 3 $50
1000
$4
leo 3
$25
5000

Prof. Fogliatto

Pesquisa Operacional

46

Agora possvel representar as matrizes e vetores da equao:

x B = B 1b B 1Nx N
utilizando somatrios. Assim, explicitam-se as variveis no-bsicas na equao.
A representao dada por:

x B = B 1b

jR

a jxj

(1)

lembrando que j o ndice que designa as variveis no-bsicas e R denota o


conjunto de todas as variveis no-bsicas.
Por convenincia, algumas pores da equao (1) acima so assim renomeadas:

B 1b = b
B 1a j = y j
Reescrevendo a equao (1) em termos das substituies, tem-se:

xB = b

y
jR

xj

46

EXEMPLO (Formulao 4): O caso Texaco


As gasolinas tm especificaes de octanagem e contedo de enxofre
dadas abaixo. A mistura de leos para produo de gasolina deve
satisfazer essas especificaes.

Ocatanagem
Enxofre (%)

Oleo 1 Oleo 2 Oleo 3


12
6
8
0.5
2.0
3.0

Gas 1
10
1.0

Gas 2
8
2.0

Gas 3
6
1.0

Cada $/dia gasto em publicidade c/ qualquer tipo de gasolina, aumenta


em 10 barris a venda daquele tipo de gasolina. Formule este problema tal
que a Texaco maximize seus lucros dirios (= receita-despesa).

Prof. Fogliatto

Pesquisa Operacional

47

A funo objetivo de um problema genrico de PL pode ser escrita em termos


dos vetores de custos e das variveis de deciso do problema. Em termos
matemticos:

z = ct x
Mais uma vez particionando os vetores em termos de variveis bsicas e nobsicas, obtm-se:

x
z = [c B c N ] B = c tB x B + c tN x N
xN
O vetor xB acima pode ser reescrito conforme apresentado na equao (1). Aps
substituio, obtm-se:

z = c tB B 1b B 1a j x j + c tN x N
jR

Efetuando-se a primeira multiplicao no somatrio acima, obtm-se:


z = c tB B 1b

c
jR

t
B

B 1a j x j + c tN x N

47

Variveis de deciso:
A Texaco deve decidir sobre (i) quanto dinheiro gastar na publicidade de
cada tipo de gasolina e (ii) qual a mistura apropriada de leos.
ai = $/dia gasto na publicidade da gasolina i.
xij = barris de leo i gastos/dia para produzir gasolina j.

Funo objetivo:
Primeiro, note que:
x11 +x12 + x13 = bar.leo 1 consum./dia.
x21 +x22 + x23 = bar.leo 2 consum./dia.
x31 +x32 + x33 = bar.leo 3 consum./dia.

Prof. Fogliatto

x11 +x21 + x31 = bar.gas.1 prod./dia.


x12 +x22 + x32 = bar.gas.2 prod./dia.
x13 +x23 + x33 = bar.gas.3 prod./dia.

Pesquisa Operacional

48

O ltimo termo na expresso acima deve ser explicitado em funo das variveis
no-bsicas; ou seja,

z = c tB B 1b

c
jR

t
B

B 1a j x j +

c x
jR

Por convenincia, renomeia-se o primeiro termo da equao acima:

z 0 = c tB B 1b
Observe que o valor z0 na equao acima corresponde ao valor atual da funo
objetivo. Como as variveis no-bsicas assumem valor igual a 0 por definio
(ou seja, xN = 0), o segundo termo direita da expresso

x B = B 1b B 1Nx N
desaparece. Logo,

z 0 = c tB B 1b = c tB x B
o que efetivamente corresponde ao valor atual da funo objetivo, considerando a
base atual representada por xB.

48

Funo objetivo:
(1) Ganhos/dia com vendas de gasolina:
70(x11 +x21 + x31) + 60(x12 +x22 + x32) + 50(x13 +x23 + x33)
(2) Custo/dia da compra de leo:
45(x11 +x12 + x13) + 35(x21 +x22 + x23) + 25(x31 +x32 + x33)
(3) Custo/dia com propaganda:
a1 + a2 + a3
(4) Custo/dia produo:
4(x11 +x12 + x13 + x21 +x22 + x23+ x31 +x32 + x33)
Lucro dirio: (1) - (2) - (3) - (4)
Prof. Fogliatto

Pesquisa Operacional

49

Assim, a expresso:

z = c tB B 1b

c
jR

t
B

c x

B 1a j x j +

jR

pode ser reescrita como:

z = z0

c
jR

t
B

B 1a j x j +

c x
jR

Como os dois somatrios consideram o mesmo domnio (ou seja, as variveis


no-bsicas pertencentes ao conjunto R), pode-se agrupar os dois termos de
somatrio num nico termo:

z = z0

(c
jR

t
B

B 1a j c j x j

Como B-1aj = yj, tem-se:

z = z0

(c
jR

t
B

y j cj xj

Para finalizar esta primeira etapa do desenvolvimento do algoritmo simplex e


obter-se o primeiro resultado, uma ltima substituio necessria; a saber:

z j = c tB y j

49

Funo objetivo:
Max z = 21x11 +11x12 + x13 + 31x21 + 21x22 + 11x23 + 41x31 +
31x32 + 21x33 - a1 - a2 - a3
Restries:
(1-3) Gas 1-3 produzida diariamente deve ser igual a demanda (no
queremos estocar gasolina).
Demanda diria gas 1: 3000 + demanda gas 1 gerada por publicidade
= 3000 + 10a1
Demanda gas 2: 2000 + 10a2
Demanda gas 3: 1000 + 10a3
Assim:
x11 + x21 + x31 - 10a1 = 3000
x12 + x22 + x32 - 10a2 = 2000
x13 + x23 + x33 - 10a3 = 1000
Prof. Fogliatto

Pesquisa Operacional

50

Assim, a expresso para z passa a ser escrita como:

z = z0

(z
jR

c j )x j

1o resultado:
z0 representa o valor atual (ou presente) da funo objetivo. Num problema de
maximizao, o valor de z pode ser melhorado se zj cj < 0, para qualquer j R.
Num problema de minimizao, o valor de z pode ser melhorado sempre que zj
cj > 0, para qualquer j R.
Parece claro que o resultado apresentado acima estabelece o critrio utilizado
pelo algoritmo simplex para mudana de base. Assim, num problema de
maximizao, a base atual (que gera o valor atual z0 da funo objetivo) s ser
substituda por uma outra base se, para alguma varivel no-bsica
j R, o
valor zj cj < 0. Quando este for o caso, o segundo termo direita da igualdade
na expresso para z acima ser positivo e o valor de z sofrer um incremento,
exatamente o que se deseja em um problema de maximizao.

50

Restries:
(4-6) Compra diria de leo 1-3 no deve exceder 5000 barris.
x11 + x12 + x13 5000
x21 + x22 + x23 5000
x31 + x32 + x33 5000
(7) Produo/dia de gas no deve exceder 14000 barris.
x11 +x12 + x13 + x21 +x22 + x23+ x31 +x32 + x33 14000
(8) Mistura de leos p/produzir gas 1 deve ter uma octanagem mdia
de pelo menos 10 graus.
Oc tan. total gas. 1
12 x11 + 6x 21 + 8x 31
=
10
o
x11 + x 21 + x 31
N barris na mistura

Para linealizar essa inequao, multiplica-se os dois lados pelo denominador:


2x11 - 4x21 - 2x31 0
Prof. Fogliatto

Pesquisa Operacional

51

Num problema de PL, o nmero de variveis que compem a base limitado.


Assim, sempre que na busca pelo ponto timo a base atual for substituda por
outra, uma das variveis bsicas que compem a base atual dever dar lugar
varivel no-bsica para a qual zj cj < 0. Se mais de uma varivel no-bsica
atender ao requisito zj cj < 0, seleciona-se aquela para a qual o mdulo de zj cj
seja maior.
Como a cada mudana de base uma varivel no-bsica assume o lugar de uma
varivel bsica na base, necessrio adotar-se um critrio para retirada de
variveis da base. Tal critrio compe o 2o resultado do algoritmo simplex, sendo
ilustrado utilizando o exemplo na pgina 38.
Relembrando a descrio do problema:
Max x1 + 3x2
s.a

x1 + 2x2 + f1
x2
x1 ,

= 4
+ f2 = 1

x2 0

As bases possveis para este problema so (x1, x2), (x1, f1), (x1, f2), (x2, f1), (x2, f2) e
(f1, f2). Tente identificar os pontos correspondentes a essas bases na Figura 3.2.
Quatro bases j haviam sido identificadas previamente, correspondendo aos
pontos A D da figura; essas so as bases viveis do problema. Outras duas
bases no-viveis podem ser identificadas. Bases no-viveis no so
consideradas no algoritmo simplex, j que no satisfazem o conjunto de restries
que compem o problema.

51

(9) Mistura de leos p/produzir gas 2 deve ter uma octanagem mdia
de pelo menos 8 graus.
4x12 - 2x22 0
(10) Mistura de leos p/produzir gas 3 deve ter uma octanagem
mdia de pelo menos 6 graus.
6x13 + 2x33 0
A restrio (10) redundante e no precisa ser includa no modelo.
Por qu?
Porque x13 e x33 0 por definio. Verifique a octanagem dos leos
crus para entender o porqu desta redundncia.
Prof. Fogliatto

Pesquisa Operacional

52

Suponha que uma primeira base selecionada para dar incio ao algoritmo.
Independente das variveis selecionadas para compor a primeira base, para
determinar o seu valor e verificar a viabilidade da base selecionada, deve-se
resolver o seguinte sistema de equaes:

Bx B = b

x B = B 1b

Uma escolha razovel para a primeira base dada por (f1, f2), o ponto de origem
no espao bidimensional (x1, x2). Particionando a matriz A do exemplo entre
variveis bsicas e no-bsicas e rearranjando, tal que variveis bsicas passam a
ser as primeiras colunas de A, obtm-se:

a3 a4 a1 a2
1 0 1 2
A = [B N ] =

0 1 0 1
f1 f 2 x1 x2
Escolhendo as variveis de folga como primeira base para o problema, a matriz B
assume a conformao de uma matriz identidade. Como para resolver o sistema
xB = B-1b ser necessrio obter a matriz inversa B-1, a base selecionada bastante
conveniente, j que se B = I, B-1 = B. Assim,

52

(11) Mistura de leos p/produzir gas 1 deve ter um teor de enxofre


menor ou igual a 1%.
-0.005x11 + 0.01x21 + 0.02x13 0
(12) Mistura de leos p/produzir gas 2 deve ter um teor de enxofre
menor ou igual a 2%.
-0.015x12 + 0.01x32 0
(13) Mistura de leos p/produzir gas 3 deve ter um teor de enxofre
menor ou igual a 1%.
-0.005x13 + 0.01x23 + 0.02x33 0
Prof. Fogliatto

1 0
B=

0 1

Pesquisa Operacional

53

1 0
B 1 =

0 1

Os vetores x, c e b obtidos do exemplo vm dados abaixo:

x t = [x B x N ] = [ f1 , f 2

x1 , x2 ]

c t = [c B c N ] = [0, 0 1, 3]

4
b=
1

Conforme descrito anteriormente, o vetor c contm os coeficientes associados a


cada varivel de deciso na funo objetivo; estes foram rearranjados em
coeficientes associados s variveis bsicas e no-bsicas, respectivamente. O
vetor b corresponde ao lado direito das restries do problema.
Deseja-se testar se algumas das variveis no-bsicas deve entrar na base, de
forma a melhorar o valor z da funo objetivo. O problema exemplo de
Maximizao, logo somente variveis no-bsicas para as quais zj cj < 0 sero
candidatas a entrar na base. O conjunto R de variveis no bsicas contm duas
variveis, j = 1 (x1) e j = 2 (x2). O teste realizado utilizando o formulrio que
precede o 1o resultado:

53

FORMULAES MULTIPERODO (Formulao 5)


O problema do estoque - O caso da empresa Regata
A Regata S/A quer decidir quantos barcos produzir nos prximos 4
trimestres, de modo a satisfazer sua demanda a um menor custo:

Trim. 1
40

Demanda

Prof. Fogliatto

Trim. 2
60

Trim. 3
75

Trim. 4
25

Pesquisa Operacional

54

Para j = 1:

1 0 1
( z1 c1 ) = ctB B 1a1 c1 = [0, 0]
1 = 1
0 1 0
Para j = 2:

1 0 2
( z 2 c2 ) = c tB B 1a 2 c2 = [0, 0]
3 = 3
0 1 1
Introduzindo qualquer das duas variveis no-bsicas na base, observaria-se uma
melhoria no valor z da funo objetivo. Todavia, x2 deve entrar na base, j que
apresenta o maior valor absoluto de zj - cj.
Uma das variveis atualmente na base deve sair, para dar lugar a x2. Para
determinar qual varivel sai da base, utiliza-se a equao (1); isto :

x B = B 1b

B
jR

a jxj

A varivel entrante x2 (j = 2). Assim, a equao (1) pode ser reescrita para
conter as variveis bsicas e a varivel entrante x2:

x B = B 1b B 1a j x j

54

FORMULAES MULTIPERODO (Formulao 5)


O problema do estoque - O caso da empresa Regata
A Regata deve atender seus pedidos em dia. No incio do 1o trimestre, 10
barcos esto em estoque. No incio de cada trimestre, a Regata deve
decidir quantos barcos sero produzidos naquele trimestre. Barcos
produzidos num trimestre podem ser usados para atender pedidos
naquele mesmo trimestre (pedidos so atendidos no final do trimestre).
A Regata por produzir at 40 barcos/trim, a um custo de $400/barco. Para
aumentar a produo, pode usar horas-extra, a um custo de $450/barco.
Estocar um barco de um trim. para outro custa $20/barco.
Formule o problema tal que a demanda seja atendida um mnimo custo.
Prof. Fogliatto

Pesquisa Operacional

55

Fazendo as devidas substituies, obtm-se:

1 0 4 1 0 2
xB =

x2
0 1 1 0 1 1
As variveis que compem a base atual so (f1, f2). Explicitando o vetor xB e
executando as multiplicaes entre matrizes e vetores na expresso acima,
obtm-se:

f1 4 2
f = 1 1 x2
2
Todas as variveis do problema exemplo esto condicionadas a assumirem
valores no-negativos. Analisando a equao acima, fcil observar que x2 no
pode assumir valores maiores que 1 ou a varivel bsica f2 assumiria valores
negativos. Assim, o valor mximo de x2 1 e, neste caso, f2 assume o valor 0,
saindo da base. Logo, x2 entra na base e f2 sai da base para dar lugar a x2, j que
no permitido mais do que 2 variveis na base. Alm disso, sabe-se que x2
entra na base com valor 1 e que f1 permanece na base, mas com valor 2 (e no 4,
como na base inicial).

55

Variveis de deciso:
A Regata deve determinar quantos barcos produzir usando mo-de-obra
normal e horas-extra a cada trimestre:
xt = barcos produzidos por m.o. normal durante trim. t.
yt = barcos produzidos por horas-extra durante trim. t.
Variveis de estoque tambm devem ser definidas:
it = barcos em estoque no final do trimestre t.
Assim:
Custo total = custo produo normal + custo produo hora-extra +
custo estocagem
= 400 (x1 + x2 + x3 + x4) + 450(y1 + y2 + y3 + y4) +
20 (i1 + i2 + i3 + i4)
Prof. Fogliatto

Pesquisa Operacional

56

A partir do exemplo, estabeleceu-se o critrio de sada de variveis da base. Tal


critrio est fundamentado no princpio de no-negatividade das variveis de
deciso de um problema de PL. O 2o resultado formaliza esse critrio.
2o resultado:
A varivel bsica xk que sai da base dando lugar a xj determinada pela seguinte
expresso:

xk = Min i , onde yij > 0.


i y

ij
Os vetores e yj foram definidos na pgina 48. Os elementos que compem
esses vetoresbso identificados por e y, sendo utilizados no resultado acima.
A operacionalizao da expresso nob2o resultado bastante simples. Considere
o exemplo anterior, com os vetores e y2 devidamente identificados:

b
f1 4 2
f = 1 1 x2
2
b

y2

56

Funo objetivo:
Min z = 400x1 + 400x2 + 400x3 + 400x4 + 450y1 + 450y2 + 450y3 +
450y4 + 20i1 + 20i2 + 20i3 + 20i4
Estoque no final de cada trimestre:
it = it-1 + (xt + yt) - dt , t = 1,,4
onde dt = demanda no trimestre t.
Para satisfazer a demanda ao final de cada trimestre:
it-1 + (xt + yt) dt
ou it = it-1 + (xt + yt) dt 0
Prof. Fogliatto

Pesquisa Operacional

57

A razo bi yij obtida dividindo os vetores:

f1 4
f = 1
2

2 2
1 = 1

Deseja-se determinar a menor razo; no caso, este valor 1, correspondendo a f2.


Logo, f2 deve sair da base dando lugar a x2, a varivel entrante. A mnima razo
tambm aponta para o valor de entrada de x2 na base: x2 = 1.
No momento em que determina-se uma nova base para o problema de PL,
completa-se uma iterao (ou pivot) do algoritmo simplex. Na sequncia,
atualiza-se a base e repete-se o procedimento apresentado acima. A nova base
para o problema exemplo dada abaixo, junto com os vetores necessrios para
realizar mais uma iterao do simplex:

1 2
B = [ f1 , x2 ] =

0 1

ctB = [0, 3]

1 2
B 1 =

0 1

1 2 4 2
x B = B 1b =
=
0 1 1 1

N = [x1 , f 2 ]

A base inversa B-1 foi obtida atravs do mtodo de Gauss-Jordan, no slide 96.

57

Restries:
(1-4) Produo normal em cada trimestre no deve exceder 40
barcos:
x1 40
x2 40
x3 40
x4 40
(5-8) Demanda deve ser satisfeita a cada trimestre:
i1 = 10 + x1 + y1 - 40
i3 = i2 + x3 + y3 - 75

i2 = i1 + x2 + y2 - 60
i4 = i3 + x4 + y4 - 25

Todas as variveis so do tipo 0.


Prof. Fogliatto

Pesquisa Operacional

58

Antes de dar prosseguimento ao algoritmo, interessante interpretar


geometricamente os resultados obtidos at agora. A base inicial selecionada para
o problema exemplo continha as variveis de folga (f1, f2). Na figura 3.2, esta
base corresponde ao ponto A. A partir daquele ponto, existem dois caminhos
possveis de movimento: na direo de B ou na direo de D. No ponto B, a base
constituda das variveis (f1, x2); no ponto D, a base constituda das variveis
(x1, f2). Analisando o ngulo formado entre o vetor c e os vetores OB e OD [onde
O denota o ponto de origem (x1, x2) = (0,0)], fcil constatar que o ngulo mais
agudo (< 90o) aquele entre c e OB. Essa a direo de maior melhoria no valor
z da funo objetivo. Observe, todavia, que o ngulo entre c e OD tambm
agudo, caracterizando uma direo de melhoria no valor z. O algoritmo
selecionou a melhor direo de movimento, introduzindo, assim, a varivel x2 na
base e removendo f2 para fora da base. A nova base contendo as variveis (f1, x2)
corresponde ao ponto B na Figura 3.2.
Dando sequncia ao algoritmo simplex, testam-se as variveis no-bsicas em
busca de uma direo de melhoria no valor z da funo objetivo:
Para j = 1:

1 2 1
( z1 c1 ) = c tB B 1a1 c1 = [0, 3]
1 = 1
0 1 0

58

PRTICA 3: Modelos Financeiros com mltiplos perodos.


Uma empresa precisa definir sua estratgia financeira para os prximos
trs anos. No tempo t = 0, $100000 esto disponveis para
investimento. Planos A, B, C, D e E esto disponveis. Investir $1 em
cada um desses planos gera o fluxo de caixa abaixo:
A
B
C
D
E

0
-1
0
-1
-1
0

1
0.5
-1
1.2
0
0

2
1
0.5
0
0
-1

3
0
1
0
1.9
1.5

No mximo $75000 podem ser investidos num mesmo plano. A


empresa pode ganhar 8% de juros se investir no mercado financeiro ao
invs dos planos. Lucros gerados em qualquer perodo podem ser
imediatamente reinvestidos (no mesmo perodo). A empresa no pode
tomar dinheiro emprestado.
Formule o problema tal que $ no ltimo priodo seja mximo.
Prof. Fogliatto

Pesquisa Operacional

59

Para j = 4:

1 2 0
( z 4 c4 ) = ctB B 1a 4 c4 = [0, 3]
0 = 3
0 1 1
A nica varivel candidata a entrar na base x1. Para verificar qual varivel deve
sair da base, utiliza-se a equao 1:

x B = B 1b B 1a1 x1

1 2 4 1 2 1
2 1

=
xB =
x

1
1 0 x1 x1 = 2
0 1 1 0 1 0

A varivel de folga f1 deve sair da base. A varivel x1 entra na base com valor 2.
A nova base formada por (x1, x2). O mesmo resultado pode ser obtido
utilizando-se a expresso no 2o Resultado. Analisando-se a Figura 3.2, identificase o movimento do ponto B para o ponto C no grfico.
Atualizando-se a base, obtm-se as seguintes matrizes e vetores:

1 2
B = [x1 , x2 ] =

0 1

c tB = [1, 3]

1 2
B 1 =

0 1

1 2 4 2
x B = B 1b =
=
0 1 1 1

N = [ f1 , f 2 ]

59

Utilizao do Whats Best na


soluo de problemas de PL
Whats Best um programa da famlia Lindo para
otimizao linear, no-linear e inteira.
Vantagens:
implementado na planilha Excel; vrias funes
algbricas do Excel so aceitas na formulao do
problema:
ABS, ACOS, AND, ASIN, ATAN, ATAN2, AVERAGE,
COS, EXP, FALSE, IF, INT, LN, LOG, MAX, MIN, MOD,
NOT, NPV, OR, PI, SIN, SQRT, SUM, SUMPRODUCT,
TAN, TRUE, TRUNC, NORMINV, TRIAINV, EXPOINV,
UNIFINV, MULTINV.
Prof. Fogliatto

Pesquisa Operacional

60

Na sequncia, testam-se as variveis no-bsicas em busca de uma direo de


melhoria no valor z da funo objetivo.
Para j = 3:

1 2 1
( z3 c3 ) = c tB B 1a 3 c3 = [1, 3]
0 = 1
0 1 0
Para j = 4:

1 2 1
( z 4 c4 ) = ctB B 1a 4 c4 = [1, 3]
0 = 1
0 1 0
Nenhuma varivel no-bsica apresenta valor de zj - cj < 0. Assim, a base atual
(x1, x2) tima e o algoritmo simplex terminado. Geometricamente, possvel
identificar o ponto C como ponto tima na Figura 3.2. Avanando na direo do
vetor c, o ponto C o ponto de mximo avano antes de abandonar-se o espao
de solues viveis. O algoritmo simplex pode ser compreendido como uma
alternativa algbrica para o procedimento de soluo grfica. Tal recurso
algbrico torna-se particularmente til em problemas de maior dimenso
(tridimensionais, quadridimensionais, etc.).

60

Outras vantagens do Whats Best


Programa permite alterar coeficientes da
formulao facilmente: formulao fica explicita
na planilha.
Facilidade de uso:
uso princpio de programao o
mesmo do Excel.
Gratuito para download da rede:
www.lindo.com
Opo: Whats Best
Prof. Fogliatto

Pesquisa Operacional

61

3.1. O tableau do simplex


Problemas de PL podem ser arranjados em uma tabela, conhecida como o tableau
do simplex. O tableau contm todas as frmulas utilizadas no algoritmo,
apresentadas na seo anterior. A grande vantagem da utilizao do tableau est
na operacionalizao do algoritmo simplex: o tableau facilita a lgebra necessria
para completar as iteraes do algoritmo, levando mais rapidamente a uma
soluo tima.
O formato padro do tableau do simplex vem apresentado abaixo:

z
xB

zj cj

y j = B 1a j

c tB B 1b
B 1b

3.3regra,
- Tableau
do simplex.
O algoritmo simplexFigura
, via de
inicializado
utilizando variveis de folga
como base inicial. Quando variveis de folga no encontram-se disponveis,
variveis de folga artificiais so utilizadas, conforme apresentado mais adiante.

61

Como utilizar o programa


Abra o Excel. O Whats Best deve carregar-se
como uma Macro daquela planilha.
Abra o arquivo XYZPort, que contm o exemplo.

Este o arquivo.

Prof. Fogliatto

Pesquisa Operacional

62

Sempre que as variveis de folga formarem a primeira base em um problema de


PL, a montagem do tableau do simplex extremamente facilitada. Considere o
exemplo na pgina 38.
Max x1 + 3x2
s.a

x1 + 2x2 + f1
x2
x1 ,

= 4
+ f2 = 1

x2 0

As variveis de folga (f1, f2) formam a primeira base. Como as variveis de folga
no participam orginalmente da funo objetico, seus coeficientes de custo cj
sero sempre 0 e o primeiro vetor cB utilizado no algoritmo simplex ser um vetor
de zeros. Desta forma, a quantidade zj - cj dada pela expresso:

( z j c j ) = c tB B 1a j c j
se reduzir a:

(z j c j ) = c j
Para compor o primeiro tableau do simplex, quando variveis de folga constituem
a primeira base, basta escrever o negativo dos coeficientes de custo das variveis
no-bsicas na primeira linha do tableau. As variveis bsicas recebem valor 0,
por definio. Como zj - cj representa a potencial

62

Os comandos do programa esto na


barra de ferramentas e no menu

Prof. Fogliatto

Pesquisa Operacional

63

melhoria no valor z da funo objetivo representada pela jsima varivel, variveis


atualmente bsicas devem receber valor igual a 0 simplesmente por j se
encontrarem na base. Assim, para os dados do exemplo, a primeira linha do
tableau dada por:

x1
-1

x2
-3

f1
0

f2
0

RHS
z0

Observe que, por convenincia, as variveis que compem o problema de PL


vm devidamente identificadas no tableau. A sigla RHS direita das variveis
denota right hand side e contm o valor atual de z (denominado z0) e o valor
assumido pelas variveis atualmente na base.
O valor atual de z, z0, dado pela equao:

z 0 = c tB B 1b
Como cB um vetor de zeros, z0 = 0 sempre que as variveis de folga formarem a
primeira base. Atualizando o tableau, tem-se:

x1
-1

x2
-3

f1
0

f2
0

RHS
0

63

O Problema do Mix de Produo


A XYZ Corporation monta dois modelos de
computador.
O modelo Padro gera um lucro por unidade
produzida de $300, enquanto o modelo
Luxo gera um lucro por unidade de $500.
Os dois modelos utilizam trs componentes
para sua montagem: o chassis Padro (60),
o chassis de Luxo (50) e o drive de disquete
(120).
Disponveis em estoque
Prof. Fogliatto

Pesquisa Operacional

64

Na sequncia, deseja-se escrever as linhas que compem as restries no tableau.


Elas vm dadas por:

y j = B 1a j
Para cada varivel do problema, determina-se uma coluna yj. Sempre que as
variveis de folga formarem a primeira base, B = I e B-1 = B = I. Assim, a
expresso acima reduz-se a:

y j = Ia j = a j
e as linhas que compem as restries no tableau so copiadas diretamente do
problema de PL em estudo. Utilizando os dados do exemplo:
Max x1 + 3x2
s.a

x1 + 2x2 + f1
x2
x1 ,

= 4
+ f2 = 1

x2 0

z
f1
f2

x1
-1
1
0

x2
-3
2
1

f1
0
1
0

f2
0
0
1

RHS
0

64

Necessidades de componentes em cada


modelo
O modelo Padro utiliza um chassis Padro
e um drive de disquete.
O modelo Luxo utiliza um chassis Luxo e
dois drives de disquete.
Problema:
Problema qual combinao de modelos
Padro e Luxo maximiza os lucros da XYZ,
considerando os componentes atualmente
em estoque?
Prof. Fogliatto

Pesquisa Operacional

65

As variveis atualmente na base so identificadas esquerda do tableau (f1 e f2).


O nico elemento faltante no tableau do exemplo corresponde frmula:
1
b vez,
= B quando
b
no lado direito do tableau. Mais uma
as variveis de folga formam a
-1
primeira base, B = I e a expresso acima reduz-se a:

b = Ib = b
Desta forma, para completar o tableau, basta escrever os valores do lado direito
das restries do problema para o lado direito do tableau. Isto :
Max x1 + 3x2
s.a

x1 + 2x2 + f1
x2
x1 ,

= 4
+ f2 = 1

x2 0

z
f1
f2

x1
-1
1
0

x2
-3
2
1

f1
0
1
0

f2
0
0
1

RHS
0
4
1

65

n Determinar as variveis de deciso


(adjustable cells)
Variveis de deciso:
Padro = quantidd de computadores padro a
serem produzidos.
Luxo = quantidd de computadores luxo a serem
produzidos.

Prof. Fogliatto

Pesquisa Operacional

66

Uma vez preenchido o tableau inicial do simplex, as iteraes seguem a seguinte


sequncia de passos (equivalente utilizao das expresses matemticas
apresentadas na seo anterior):
a. Identifique as variveis candidatas a entrar na base na primeira linha
(linha z ou linha zero) do tableau. Se o problema for de maximizao, a
varivel mais negativa entra na base; se o problema for de maximizao, a
varivel mais positiva entra na base. Sempre que houver empate (duas
variveis candidatas com o mesmo valor de zj - cj, escolha aleatoriamente
a varivel a ser introduzida na base). A varivel entrante na base ser
designada por xj. No caso em que nenhuma varivel satisfizer o critrio
de entrada na base, uma soluo tima foi encontrada para o problema.
b. Inspecione a coluna yj correspondente varivel xj em busca de
valores positivos. Se no houver nenhum valor positivo na coluna, a
soluo para o problema de PL tende ao infinito e uma soluo tima foi
encontrada. Caso contrrio, o teste da mnima razo identificar a varivel
bsica que deve dar lugar a xj na base.

66

n Determinar as variveis de deciso


(adjustable cells)

Identificao das variveis


de deciso

Valor inicial das variveis de deciso (pode ser


qualquer valor).
Na busca pelo timo, o programa permitir que
essas clulas assumam qualquer valor nonegativo.
Prof. Fogliatto

Pesquisa Operacional

67

c. Para realizar o teste da mnima razo, utilize a frmula:

xk = Min i , onde yij > 0.


i y

ij
ou seja, divida o lado direito do tableau pelos valores positivos em yj: a
menor razo identifica a varivel xk a sair da base. O valor positivo em yj
correspondente mnima razo o elemento de pivot da iterao.
d. Atravs de operaes elementares com a linha que contm o elemento
pivot, faa com que a coluna correspondente a xj assuma os valores na
coluna correspondente a xk. As operaes elementares com a linha pivot
sero apresentadas atravs do exemplo a seguir.
e. Volte para o passo a e execute mais uma iterao do algoritmo.
Os passos acima so agora aplicados ao exemplo na pgina 38. O tableau inicial
para o problema exemplo foi obtido anteriormente, sendo reproduzido a seguir.

67

Identifique as clulas como variveis


de deciso (adjustable cells)

Tela resultante
n Selecione as
clulas onde foram
escritos os zeros.

o Na opo WB! do
menu, selecione
adjustable.

Prof. Fogliatto

Pesquisa Operacional

x1
-1
1
0

z
f1
f2

x2
-3
2
1

68

f1
0
1
0

f2
0
0
1

RHS
0
4
1

a. O problema exemplo de maximizao. Assim, variveis com valores de zj cj na linha z do tableau so candidatas a entrar na base. Duas variveis, x1 e x2
satisfazem o critrio de entrada na base. A mais negativa delas, x2, entra na base.
Assim, xj = x2 e ytj = yt2 = [2, 1].
b. O vetor y2 apresenta dois valores positivos (2 e 1), com os quais ser feito o
teste da mnima razo.
c. O teste da mnima razo vem apresentado no tableau abaixo.

xj

xk

z
f1
f2

x1
-1
1
0

x2
-3
2
1

f1
0
1
0

elemento de pivot

f2
0
0
1

RHS
0
4
1

4/2 = 2
1/1 = 1

mnima razo

68

p Caso as variveis de deciso


sejam no-negativas, clique OK.
OK
o Opo caso as variveis de deciso
sejam irrestritas no sinal.
sinal

n Identificao das clulas


selecionadas como ajustveis.

q Caso as variveis sejam irrestritas


no sinal, siga os passos abaixo.

r Nomeie as variveis irrestritas


no sinal (qualquer nome serve).

t Clique em
OK.
OK

s Clique em
Add.
Add

Prof. Fogliatto

WBFree identifica
variveis irrestritas

Pesquisa Operacional

69

d. Para completar a iterao do simplex, necessrio proceder com operaes


elementares que utilizam a linha que contm o elemento de pivot. As operaes
tm por objetivo fazer com que a coluna x2 (da varivel entrante) assuma a
configurao da coluna f2 (varivel que sai da base). A sequncia de operaes
vem descrita a seguir.

z
f1
f2

x1
-1
1
0

x2
-3
2
1

f1
0
1
0

f2
0
0
1

RHS
0
4
1

Identificao
das linhas do
tableau

Os dois valores coincidem, logo


nenhuma operao necessria.
(0)
(1)
(2)

z
f1
f2

x1
-1
1
0

x2
-3
2
1

f1
0
1
0

f2
0
0
1

RHS
0
4
1

Valores no coincidem: executa-se uma


operao elementar. Seja (1) a linha (1) aps a
operao. A operao que transformar 2 em 0
:
(1) = (1) 2 (2)
69

Variveis de deciso
so identificadas em
azul pelo WB.
WB

Existe um cone de atalho


p/
identificao de variveis de deciso
no-negativas, conforme apresentado
abaixo.
n Selecione as variveis
de deciso.
o Clique no cone

Prof. Fogliatto

Clulas passam a ser


apresentadas em azul.

Pesquisa Operacional

70

Explicitando a operao:

z
f1
f2

x1
-1
1
0

x2
-3
2
1

f1
0
1
0

f2
0
0
1

RHS
0
4
1

z
f1
x2

x1
-1
1
0

x2
-3
0
1

f1
0
1
0

f2
0
-2
1

RHS
0
2
1

(1)' = (1) - 2 x (2)

Na sequncia, trabalham-se os valores na linha z:

(0)
(1)
(2)

z
f1
x2

x1
-1
1
0

x2
-3
0
1

f1
0
1
0

f2
0
-2
1

RHS
0
2
1

Valores no coincidem. Seja (0) a linha (0)


aps a operao elementar. A operao que
transformar -3 em 0 :
(0) = (0) + 3 (2)
70

o Escreva a funo objetivo (best)


Funo objetivo:
Lucro Total =
(Lucro por unidade do Modelo Padro)
(Qtdd de Modelos Padro produzidos)
+
(Lucro por unidade do Modelo Luxo)
(Qtdd de Modelos Luxo produzidos)
Lucro Total = 300 Padro + 500 Luxo
Prof. Fogliatto

Pesquisa Operacional

71

Explicitando a operao:

z
f1
x2

x1
-1
1
0

x2
-3
0
1

f1
0
1
0

f2
0
-2
1

RHS
0
2
1

z
f1
x2

x1
-1
1
0

x2
0
0
1

f1
0
1
0

f2
3
-2
1

RHS
3
2
1

(0)' = (0) + 3 x (2)

Observe que a coluna x2 assumiu a configurao anterior da coluna f2. Isso foi
obtido atravs de operaes elementares com a linha que contm o elemento
pivot. As operaes elementares sempre devem utilizar a linha pivot, ocorrendo
da forma exemplificada acima e generalizada a seguir (na expresso abaixo, w
um nmero real qualquer, positivo ou negativo):
(linha nova) = (linha antiga) + [w (linha pivot)]
e. Concluda a iterao, retorna-se ao passo a. As demais iteraes sero
apresentadas diretamente no tableau.

71

Coeficientes de custo da
funo objetivo.

Frmula da funo
objetivo.

Prof. Fogliatto

Pesquisa Operacional

72

2a Iterao:

xj

xk

z
f1
x2

x1
-1
1
0

x2
0
0
1

f1
0
1
0

f2
3
-2
1

RHS
3
2
1

2/1 = 2

mnima razo
elemento de pivot

z
f1
x2

x1
-1
1
0

x2
0
0
1

f1
0
1
0

f2
3
-2
1

RHS
3
2
1

z
f1
x2

x1
-1
1
0

x2
0
0
1

f1
0
1
0

f2
3
-2
1

RHS
3
2
1

Nenhuma operao necessria

Nenhuma operao necessria

72

o Identifique a clula que contm a


frmula como funo objetivo (best)
n Clique na clula onde a
frmula da funo objetivo foi
escrita.

o Selecione WB! no menu e a opo Best.


Best
Este a tela correspondente
opo Best.
Best
Prof. Fogliatto

Pesquisa Operacional

73

Finalizando a iterao:

z
f1
x2

x1
-1
1
0

x2
0
0
1

f1
0
1
0

f2
3
-2
1

RHS
3
2
1

z
f1
x2

x1
0
1
0

x2
0
0
1

f1
1
1
0

f2
1
-2
1

RHS
5
2
1

(0)' = (0) + (1)

Observe que nenhuma varivel no-bsica apresenta valor negativo na linha z.


Esse o critrio de finalizao do algoritmo simplex.

73

o Identifique se o problema de
Minimizao ou Maximizao (default
Minimizao).

n Identificao das clulas


selecionadas como ajustveis.

p Confirme clicando OK.


OK

Clula contendo funo


objetivo passar a ser
identificada como clula a
ser maximizada
(WBMAX
WBMAX).

Prof. Fogliatto

Pesquisa Operacional

74

3.1.1. Casos Especiais


Dois casos especiais merecem nota: (i) problemas com solues timas
alternativas e (ii) problemas com soluo ilimitada (tendendo ao infinito). Esses
dois casos especiais podem ser identificados no tableau do simplex, conforme
apresentado a seguir.
(i) Problemas com solues timas alternativas
Considere um problema de minimizao que, aps um certo nmero de iteraes,
apresenta o seguinte tableau:

z
x1
x2

x1
0
1
0

x2
0
0
1

f1
-2
1/3
1/3

f2
0
-2/3
1/3

RHS
-8
2/3
5/3

Como todas as variveis no-bsicas so no-positivas (critrio para entrada de


variveis na base em problemas de minimizao), nenhuma varivel deve entrar
na base. Observe, todavia, que uma varivel no-bsica, f2, apresenta valor 0 na
linha z. Como os valores na linha z representam a melhoria na funo objetivo
decorrente da entrada de cada varivel no-bsica na base, isso significa que
introduzindo f2 na base no alteraria o valor z da funo objetivo. Desta forma,
pode-se acrescentar f2 na base, obtendo-se uma base tima alternativa, com o
mesmo valor z de funo objetivo (neste caso, x2 daria lugar a f2 na base).

74

n Selecione a clula
contendo a frmula da
funo objetivo.

Confira se clula passou a


ser identificada por
WBMAX.
WBMAX
o Clique no cone

Prof. Fogliatto

Pesquisa Operacional

75

Ao introduzir-se f2 na base, x2 passaria a apresentar um valor 0 na linha z. Assim,


poderia-se indefinidamente substituir uma base por outra, sem com isso alterar o
valor da funo objetivo.
Geometricamente (em duas dimenses), a situao acima corresponderia ao caso
em que o ponto timo no espao de solues viveis no um ponto, e sim uma
reta. Assim, qualquer ponto sobre a reta resulta no mesmo valor z de funo
objetivo e inmeras solues timas alternativas so possveis. O algoritmo
simplex captura os pontos extremos da reta, apresentado-os como solues timas
alternativas para o problema.
(ii) Problemas com soluo ilimitada (tendendo ao infinito).
Considere um problema de minimizao que, aps um certo nmero de iteraes,
apresenta o seguinte tableau:

z
f1
x2

x1
4
-1
-1

x2
0
0
1

f1
0
1
0

f2
-3
2
1

RHS
-9
10
3

A varivel no-bsica x1 deve entrar na base, j que z1 - c1 > 0 (trata-se de um


problema de minimizao). Porm, ao inspecionar-se a coluna y1 em busca de um
elemento pivot, no possvel encontrar nenhum elemento no-negativo. Neste
caso, uma soluo tima foi encontrada para o problema: esta soluo

75

p Especifique as restries
(constraints)
Restries informam que total de componentes
utilizados deve ser quantidade disponvel em
estoque.
Restrio p/ componente chassis padro:
(Qtdd de Modelos Padro produzidos) (No de chassis padro
por modelo) +
(Qtdd de Modelos Luxo produzidos) (No de chassis padro por
modelo)
Qtdd de chassis padro em estoque
Padro 1 + Luxo 0 60
Prof. Fogliatto

Pesquisa Operacional

76

tende ao infinito (z ). Esse resultado pode ser melhor compreendido


aplicando-se a equao (1) aos dados do exemplo:

f1 10 1
x = 3 1 x1
2
Quando x1 entra na base, seu valor aumenta at o ponto em que uma das variveis
bsicas tem seu valor reduzido a 0, saindo da base e dando lugar a x1. No caso
acima, nenhum valor no-negativa causa a sada de uma varivel da base. Assim,
x1 pode aumentar de valor indefinidamente; o mesmo ocorre com o valor z da
funo objetivo. Nessas circunstncias, parece evidente que a soluo do
problema tende ao infinito.

76

Demais restries (constraints)


Restrio p/ componente chassis luxo:
Padro 0 + Luxo 1 50

Restrio p/ componente drive de disquete:


Padro 1 + Luxo 2 120

Restrio de no-negatividade: o default do


WB.

Prof. Fogliatto

Pesquisa Operacional

77

3.1.2. Ausncia de uma base inicial


Alguns problemas no possuem variveis de folga em nmero suficiente para
compor uma base inicial para o problema. Na prtica, quaisquer variveis podem
compor a base inicial, mas impossvel saber se a base resultante ser vivel ou
no, a menos que se resolva o sistema de equaes que formam as restries do
problema. Na maioria das aplicaes, testar combinaes de variveis em busca
de uma primeira base vivel pode tomar muito tempo. Assim, o procedimento
padro adotado nesses casos utiliza variveis de folga artificiais (ou
simplesmente variveis artificiais) na busca de uma primeira base vivel.
s variveis artificiais, como o prprio nome indica, no pertencem ao problema.
Tais variveis somente so acrescidas para facilitar a determinao de uma
primeira base vivel, que d partida ao algoritmo simplex. Assim, a partir do
momento em que variveis artificiais so utilizadas na composio da base
inicial, deseja-se retir-las da base, chegando, assim, a uma base vivel legtima
(isto , pertencente ao problema). O procedimento para remoo das variveis
aritificiais da base inicial conhecido como Mtodo do M-Grande, sendo
descrito a seguir atravs de um exemplo.

77

Organizao das restries na


planilha do WB
Frmula da 1a restrio.
Coeficientes tecnolgicos
das restries.

Lado direito das restries.

Prof. Fogliatto

Pesquisa Operacional

Clulas c/ as frmulas
das restries.
78

Considere o seguinte exemplo:


Min z =
s.a:

x1 - 2x2
- x1 +

x2 1
x2 4
x2 0

x1 ,

Aps acrescentar variveis de excesso e folga, obtm-se o seguinte resultado:


Min z = x1 - 2x2
s.a:

x1 + x2 - e1
x2
x1, x2, e1, f1

= 1
+ f1 = 4
0

Observe que somente uma varivel de folga pode ser utilizada na composio da
base inicial (variveis de excesso no resultam em bases iniciais viveis, no
podendo ser utilizadas). Assim, para que seja possvel uma base inicial formada
exclusivamente por variveis de folga, utiliza-se uma varivel de folga artificial,
acrescida primeira restrio do problema. O resultado vem apresentado abaixo:

78

Restries devem ser identificadas no


WB
Restries podem ser de trs tipos: , , =.
Ao escrever-se o sentido da restrio numa clula
da planilha:
a clula adjacente esquerda passa a ser identificada
como aquela que contm a frmula da restrio;
a clula adjacente direita passa a ser identificada
como aquela que contm a disponibilidade do recurso.

Prof. Fogliatto

Pesquisa Operacional

Min z = x1 - 2x2

+ Ma1

s.a:

+ a1 = 1

x1 + x2 - e1
x2

+ f1

79

= 4

x1, x2, e1, f1, a1 0


No mtodo do M-Grande, cada vez que uma varivel artificial adicionada ao
problema, ela tambm adicionada na funo objetivo, multiplicada por um
coeficiente de custo M, onde M representa um nmero positivo maior do que
qualquer outro que venha a ocorrer no problema. No caso de problemas de
maximizao, a varivel artificial tambm acrescida funo objetivo, mas
multiplicada por um coeficiente de custo -M.
A lgica por trs do mtodo do M-Grande simples. Se num problema de
Minimizao uma das variveis apresenta um coeficiente de custo positivo e
muito grande, certamente ser interessante manter tal varivel fora da base, a
nvel zero. O mesmo ocorre em um problema de Maximizao. Se uma das
variveis apresenta um coeficiente de custo negativo e muito grande, certamente
ser interessante manter tal varivel fora da base, a nvel zero. Assim, o mtodo
do M-Grande induz o algoritmo simplex a remover variveis artificiais da base, j
que elas no melhoram a funo objetivo em quaisquer circunstncias. No
momento em que todas as variveis artificiais so removidas da base, chega-se a
uma base vivel e legtima para o problema. A partir desse ponto, as variveis
artificiais podem passar a ser

79

Identifique
restries

Tela resultante

o Na opo WB! do
menu, selecione
constraints.

n Selecione a
clula onde ser
escrito o sentido
da 1a restrio.
Prof. Fogliatto

Pesquisa Operacional

80

desconsideradas do tableau.
O mtodo do M-Grande ser ilustrado atravs do exemplo acima.
x1
-1
1
0

z
a1
f1

x2
2
1
1

e1
0
-1
0

f1
0
0
1

a1
-M
1
0

RHS
0
1
4

Observe que no tableau acima, a1 e f1 compem a base inicial (a varivel de folga


artificial vem designada por a1). Como a1 bsica, o valor z5 - c5 correspondente
a esta varivel na linha z do tableau deve ser zerado (atualmente, este valor
igual a M). A primeira operao elementar realizada no tableau visa zerar o
valor de z5 - c5.

(0)
(1)
(2)

(0)
(1)
(2)

z
a1
f1

x1
-1
1
0

x2
2
1
1

e1
0
-1
0

f1
0
0
1

a1
-M
1
0

RHS
0
1
4

z
a1
f1

x1
-1 + M
1
0

x2
2+M
1
1

e1
-M
-1
0

f1
0
0
1

a1
0
1
0

RHS
M
1
4

(0)' = (0) + M x (1)

80

Confirme clicando OK.


OK

n Identificao da clula
que deve conter a frmula da
restrio.

p Identificao da clula que deve


conter o lado direito da restrio.

o Identificao do tipo de restrio


(default ).

Prof. Fogliatto

Pesquisa Operacional

81

Uma vez corrigida a linha z do tableau, executam-se os passos do algoritmo


simplex normalmente. Os passos vm apresentados a seguir.

xj

z
a1
f1

xk

x1
-1 + M
1
0

x2
2+M
1
1

mnima razo
e1
-M
-1
0

f1
0
0
1

a1
0
1
0

RHS
M
1
4

1/1=1
4/1=4

elemento de pivot

(0)
(1)
(2)

z
a1
f1

x1
-1 + M
1
0

x2
2+M
1
1

e1
-M
-1
0

f1
0
0
1

a1
0
1
0

RHS
M
1
4

Nenhuma operao

81

Identificao do tipo da
restrio e clulas
consideradas.

Identificao do tipo da restrio.

Repita o procedimento para as demais restries.


Prof. Fogliatto

(0)
(1)
(2)

(0)
(1)
(2)

(0)
(1)
(2)

(0)
(1)
(2)

Pesquisa Operacional

82

z
a1
f1

x1
-1 + M
1
0

x2
2+M
1
1

e1
-M
-1
0

f1
0
0
1

a1
0
1
0

RHS
M
1
4

z
a1
f1

x1
-3
1
0

x2
0
1
1

e1
2
-1
0

f1
0
0
1

a1
-M-2
1
0

RHS
-2
1
4

z
a1
f1

x1
-3
1
0

x2
0
1
1

e1
2
-1
0

f1
0
0
1

a1
-M-2
1
0

RHS
-2
1
4

z
a1
f1

x1
-3
1
-1

x2
0
1
0

e1
2
-1
1

f1
0
0
1

a1
-M-2
1
-1

RHS
-2
1
3

(0)' = (0) + (-M-2) x (1)

(2)' = (2) - (1)

82

n Selecione a clula onde


o tipo da restrio deve ser
escrito.

Confira se clula passou a


ser identificada como
restrio.

o Clique no cone
apropriado.

Prof. Fogliatto

Pesquisa Operacional

83

Na primeira iterao, a varivel artificial removida da base. Para verificar se as


operaes elementares com as linhas do tableau foram executadas corretamente,
verifique quais colunas contm Ms aps o pivot. Uma vez removidas as variveis
artificiais da base, somente as colunas correspondentes a estas variveis devem
conter Ms.
Nas demais iteraes do simplex, a coluna a1 pode ser eliminada do tableau. A
prxima iterao resulta em:

xj
(0)
(1)
(2)

xk

z
a1
f1

x1
-3
1
-1

x2
0
1
0

e1
2
-1
1

f1
0
0
1

RHS
-2
1
3

elemento de pivot

83

Clique em

para rodar a otimizao

Valor das variveis de


deciso no ponto timo.

Valor da funo objetivo


no ponto timo.

Situao das restries no


ponto timo.
Prof. Fogliatto

Pesquisa Operacional

84

Aps iterao:

(0)
(1)
(2)

(0)
(1)
(2)

z
a1
f1

x1
-3
1
-1

x2
0
1
0

e1
2
-1
1

f1
0
0
1

RHS
-2
1
3

z
a1
f1

x1
-1
0
-1

x2
0
1
0

e1
0
0
1

f1
-2
1
1

RHS
-8
4
3

(0)' = (0) - 2 x (2)


(1)' = (1) + (2)
Nenhuma operao

Este o tableau timo. Observe que nas iteraes finais do mtodo, aps
remoo da varivel artificial da base, a coluna correspondente varivel
artificial deixou de ser utilizada no tableau do simplex.

84

Situao especial:
Variveis de deciso devem ser inteiras

Tela resultante

n Selecione as
clulas onde foram
escritos os zeros.

o Na opo WB! do
menu, selecione
integer.

Prof. Fogliatto

Pesquisa Operacional

85

3.1.3. O algoritmo simplex em pacotes computacionais


Diversos pacotes computacionais executam o algoritmo simplex. Os mais
conhecidos so da famlia Lindo (www.lindo.com). Alm do prprio Lindo,
disponvel na maioria dos livros-texto de Pesquisa Operacional, o programa
Whats Best, implementado na planilha MSExcel, bastante popular. A prpria
planilha Excel possui uma rotina de otimizao linear, designada por Solver e
disponvel como add-in do programa. Todavia, o Solver no to amigvel
como o Whats Best.
Na sequncia, so apresentados dois tutorais para utilizao dos pacotes Whats
Best e Lindo na soluo de problemas de Programao Linear. Esses dois pacotes
computacionais podem ser obtidos da Internet gratuitamente atravs do site
www.lindo.com.
A. Tutorial do Whats Best
O objetivo deste tutorial introduzir o usurio ao Whats Best (WB) atravs da
soluo de um problema usando a planinha Excel. O nome do problema em
questo XYZ; ele encontra-se descrito a seguir:

85

o Escolha um nome para as variveis


inteiras (qualquer nome serve).

q Clique em OK p/ confirmar.
n Identificao das clulas
selecionadas como ajustveis e
inteiras.
p Identifique se variveis de deciso so inteiras binrias
(0 ou 1) ou qualquer nmero inteiro no-negativo (opo General).
Ateno: default do programa binrio

Prof. Fogliatto

Pesquisa Operacional

86

O problema de Produo XYZ


A XYZ Corporation monta dois modelos de computador. O modelo Padro gera
um lucro por unidade produzida de $300, enquanto o modelo Luxo gera um lucro
por unidade de $500. Os dois modelos utilizam trs componentes para sua
montagem: o chassis Padro, o chassis de Luxo e o drive de disquete. O modelo
Padro utiliza um chassis Padro e um drive de disquete. O modelo Luxo utiliza
um chassis Luxo e dois drives de disquete.
Problema: qual combinao de modelos Padro e Luxo maximiza os lucros da
XYZ, considerando os componentes atualmente em estoque?
O problema XYZ encontra-se no arquivo XYZ.xls. Vamos na sequncia
examinar suas caractersticas.

86

Outros programas de otimizao


Solver do Excel
Vantagem: suporta todas as funes matemticas do
Excel.
Desvantagem: esconde a formulao.

Lindo
Vantagem: executa anlise de sensibilidade e pode ser
baixado gratuitamente da rede.
Desvantagem: formulao deve ser escrita como texto.
Tutorial do Lindo disponvel na apostila
Prof. Fogliatto

Pesquisa Operacional

87

Examine o layout e a lgica do modelo. Teste vrias projees do tipo What If?.
Por exemplo, tente ajustar a Quantidade a ser Produzida em ambas as clulas
(C5 e D5) de modo a maximizar o Lucro (G6) sem que o Total de Componentes
(E15:E17) exceda o nmero de componentes em estoque (G15:G17).
Por exemplo, um possvel plano de produo consistiria em produzir o maior
nmero possvel de modelos Luxo (j que eles apresentam o maior retorno por
unidade produzida). Ento, com o que sobrar de componentes, produzir tantos
modelos Padro quantos forem possveis. Este plano de produo usaria 50
chassis Luxo (E16), 20 chassis Padro (E15), e todos os 120 drives de disquete
(E17) em estoque. Este plano resultaria num lucro total de $31000 (G6). Esta
soluo, no entanto, pode ser melhorada utilizando o WB.

87

I. REVISO DE LGEBRA LINEAR


I.1. MATRIZES E VETORES
Uma matriz qualquer arranjo retangular de nmeros.
Uma matriz A com m linhas e n colunas uma matriz m x n.
m x n a ordem de A.
Forma geral:

a11 a12
a
a
A = 21 22
M
M
a
m1 am2

Prof. Fogliatto

L a1n
L a2n

O M
L amn

O nmero na isima linha e jsima


coluna da matriz denominado
aij.

Pesquisa Operacional

88

Passos para utilizao do Whats Best


A. Determinar as Adjustable Cells (se voc estiver lidando com um problema de
programao inteira, v direto para o item B).
Neste exemplo, desejamos determinar as quantidades a serem produzidas de
ambos os modelos de computador (C5:D5). Para que o WB identifique essas
clulas como numricas, voc deve digitar algum nmero nelas (zero, por
exemplo). Na sequncia, especifique que as clulas C5 e D5 so ajustveis
(adjustable) selecionando ambas as clulas e escolhendo a opo Adjustable no
menu do WB (clique OK no dialog box). O WB vai apresentar as clulas
ajustveis em azul. O default do WB restringe as clulas ajustveis a serem 0.
Caso voc deseje permitir que uma clula ajustvel (correspondendo uma
varivel de deciso do problema) assuma valores negativos, selecione a clula,
escolha Adjustable no menu WB! e, em seguida, a opo Free. Verifique no
Refers to: se a clula selecionada est correta e escreva um nome para aquela
clula em Free names in Workbook (por exemplo, livre). Para concluir a
operao, clique Add e OK. A partir deste ponto, o WB vai admitir valores
negativos para a clula selecionada.

88

I.1 Matrizes e Vetores


Uma matriz com uma nica coluna um vetor de coluna.
Uma matriz com uma nica linha um vetor de linha.
Vetores, por definio, so de coluna; um vetor de linha um
vetor de coluna transposto.
Um vetor de zeros designado por 0.
Produto Escalar de Vetores:
Sejam u = [ u1,,un ] um vetor (transposto) de linha e v = [
v1,,vn ] um vetor de coluna de igual dimenso. Seu produto
escalar ser o nmero:
u . v = u1v1 + u2v2 ++ unvn
Prof. Fogliatto

Pesquisa Operacional

89

B. Programao Inteira (se o problema no for de programao inteira, v direto


para para o item C).
Algumas solues para problemas de otimizao s podem ser interpretadas se
forem expressas em termos de nmeros inteiros. Para que o WB! limite as
solues de um problema quelas que resultarem em valores inteiros para as
variveis de deciso, voc ter que programar as clulas ajustveis para este fim.
No exemplo XYZ, as clulas C5:D5 devem ser programadas para aceitar somente
nmeros inteiros. Marque essas clulas e selecione a opo Integer no menu
WB! No box de dilogo, confira se as clulas marcadas so as desejadas (elas
esto apresentadas abaixo do Refers to:). A seguir, escolha um nome para as
clulas (por exemplo, modelos) e escreva em Integer names in workbook,
clicando Add e OK para finalizar a operao.

89

I.1 Matrizes e Vetores


O produto escalar:

v1
v.u = M [u1 L un ]

vn
no definido.

Prof. Fogliatto

Pesquisa Operacional

90

C. Determine o Objetivo (Best)


O objetivo da XYZ maximizar o lucro, o que pode ser expresso em termos
matemticos pela expresso:
Lucro Total = (Qtdd de Modelos Padro produzidos) (Lucro por
unidade do Modelo Padro) + (Qtdd de Modelos Luxo produzidos)
(Lucro por unidade do Modelo Luxo)
Esta frmula aparece na clula G6 como =C5*C8+D5*D8. Para fazer com que a
frmula em G6 seja tratada como funo objetivo pelo WB, mova o cursor para
aquela clula escolha Best no menu WB!. A seguir, seleciona Maximize e
clique OK.

90

OPERAES COM MATRIZES


a11
a
Seja uma matriz qualquer de ordem (m x n) : A = 21
M
a
m1
Transposto de uma Matriz:

O transposto de A, designado por A,


ser uma matriz de ordem (n x m):

Prof. Fogliatto

Pesquisa Operacional

a11
a
A = 12
M

a1n

a22
M
am 2

L a1n
L a2 n

O M
L amn

a21
a22
M
a2 n

L am1
L am 2

O M
L amn

a12

91

D. Especifique as restries (constraints)


As restries do problema nos informam que o total de componentes utilizados
(E15:E17) deve ser menor ou igual ao nmero em estoque (G15:G17).
A frmula para o total de chassis Padro utilizados =C5*C15+D5*D15. As
clulas E16 e E17 apresentam frmulas similares para os componentes Chassis
Luxo e Drives de Disquete.
Para especificar as restries, marque com o cursor as clulas F15:F17, escolha
Constrain no menu do WB! E clique OK. Observe que o dialog box da opo
Contrain apresenta E15:E17 como lado esquerdo da equao (left hand side of
the equation), =G15:G17 como lado direito (right hand side of the equation),
$F$15:$F$17 como a localizao onde as restries esto armazenadas na
planilha, e <= less than (menor ou igual a) como tipo de restrio default.

91

MATRIZES E SISTEMAS DE EQUAES


LINEARES
a11x1 + a12x2 + . + a1nxn = b1
a21x1 + a22x2 + . + a2nxn = b2
M
M
am1x1 + am2x2 + . + amnxn = bm
x1, x2,, xn = variveis desconhecidas (incgnitas).
aij , bi = constantes
Soluo para um sistema de equaes lineares com m equaes e n
incgnitas = conjunto de valores para x1, x2,, xn que satisfaa as
m equaes do sistema.
Prof. Fogliatto

Pesquisa Operacional

92

Aps estas trs operaes, o WB est pronto para resolver o problema XYZ. No
menu do WB!, selecione a opo Report e marque os relatrios Status Report e
Solution Report. Assim, aps resolver o problema, o WB ir apresentar um
relatrio de soluo, com todas as informaes sobre a otimizao. Para resolver
o problema, escolha a opo Solve do menu do WB!. A janela de status do solver
aparecer. Logo a seguir, a planilha reaparecer, com o maior valor possvel de
lucro indicado na clula indicada anteriormente. A soluo dada pelo WB fornece
o melhor lucro possvel, considerando os recursos e restries do problema. A
soluo tambm informa o nmero de quantidades de cada modelo a serem
produzidas e o quanto de cada componente foi utilizado. O relatrio de soluo
do problema encontra-se disponvel numa worksheet auxiliar denominada WB!
Solution.

92

SISTEMAS DE EQUAES LINEARES


Representao Matricial
a11 a12
a
a22
A = 21
M
M
a
m1 a m2

a1n
L a2 n

O M
L a mn

x1
x
x = 2
M
x
n

(m x n)

(n x 1)

b1
b
b= 2
M
b
m

(m x 1)

Ax = b

Prof. Fogliatto

Pesquisa Operacional

93

93

INVERSO DE UMA MATRIZ


Definies:

n A uma matriz (m x n). Se m = n, ento A uma matriz quadrada.


o A = [aij]. Os elementos diagonais de A so aqueles aij para os
quais i = j.

1
0
A=

Prof. Fogliatto

0 0 L 0
1 0 L 0
= matriz identidade (I )
m
M
O M

0 0 L 1

Pesquisa Operacional

94

94

MTODO DE GAUSS-JORDAN DE
INVERSO DE MATRIZES
Idia Central:
Determine A-1 tal que A.A-1 = I.

Procedimento:
Transformar A em I atravs de operaes elementares com linhas.
As mesmas operaes transformaro I em A-1.

Prof. Fogliatto

Pesquisa Operacional

95

95

2 5

EXEMPLO 1: A =

1 3
(1) =

2 5 1 0
1 3 0 1
1

3
5

1
0

( 2) = ( 2) (1)

0
1

(2) = (2) (2)

1 0

0 1 1
Prof. Fogliatto

(1) = (1) 5 2 ( 2 )

0
1 1 2
2

2 (1)

2
1
2

1
0

5
2
Pesquisa Operacional

96

96

EXEMPLO 2:
1 2 1 0
2 4 0 1
1 2 1
1 2 0
1 2 1
0 0 1

( 2) =

1 2
B=

2 4

2 (2)

0
1

( 2 ) = ( 2 ) (1)

0
1

B-1 no existe! Note que a segunda


linha uma combinao linear
da primeira.

Prof. Fogliatto

Pesquisa Operacional

97

97

Prtica 4
Resolva o seguinte sistema de equaes lineares usando a
matriz inversa de A:

x1 + x3 = 4
4x1 + x2 2x3 = 0
3x1 + x2 x3 = 2
A soluo do sistema ser dada por x = A-1.b
Prticas adicionais: inverta as matrizes abaixo (utilize a funo
matriz.inv do Excel para checar o resultado)
2 1 1
A = 4 6 0
2 7 2
Prof. Fogliatto

2 1 0
B = 1 2 1
0 1 2
Pesquisa Operacional

4 2 0
C = 0 2 3
1 1 2

98

1.9. Salve o problema no formato Lindo


Lindo usa o seu prprio formato para salvar o problema. Para salvar um
problema neste tipo de formato, digite:
: save a:\mydata\giapetto.lnd
1.10. Salve o problema no formato texto
Voc tambm pode salvar o problema como texto. Para tanto, digite:
: dive a:\mydata\giapetto.lp
: look all
: rvrt

98

Considere o seguinte problema:


Um fabricante de mveis deseja determinar o mix ideal de produo,
levando em conta preos-de-venda dos produtos e quantidade
disponvel de insumos.
A situao atual vem dada na tabela abaixo:
Insumo
Escrivaninha
Tbua
8
Acabamto
4
Carpintaria
2
Lucro Venda
$60

Prof. Fogliatto

Produto
Mesa
6
2
1.5
$30

Cadeira
1
1.5
0.5
$20

Qtidd de
Insumo
48
20
8

Pesquisa Operacional

99

1.11. Saindo do programa Lindo


Para encerrar a sesso do Lindo e retornar ao prompt do DOS, digite:
: quit
1.12. Imprimindo a soluo
Para imprimir uma soluo salva em arquivo, digite:
Print a:\mydata\giapetto.sol
Isso feito fora do Lindo.

99

A formulao matemtica deste


problema
Max z = 60x1 + 30x2
s.a:
8x1 + 6x2
4x1 + 2x2
2x1 + 1.5x2
x1,
x2,

+ 20x3
+
x3 48
+ 1.5 x3 20
+ 0.5 x3 8
x3 0

Restrio das Tbuas


Restrio de Acabamento
Restrio de Carpintaria

No escrivaninhas produzidas
No mesas produzidas
No cadeiras produzidas
Prof. Fogliatto

Pesquisa Operacional

100

Parte 2
Objetivo: apresentar alguns comandos adicionais do software LINDO.
2.1. Inicialize o programa Lindo
c:\> lindo
2.2. Abra um problema salvo em arquivo
No Tutorial 1, o problema foi gravado nos formatos Lindo e texto. Existem dois
comandos diferentes para carregar o problema, conforme o formato usado para
salv-lo. Escolha um deles:
2.2.1. Carregue um problema gravado no formato Lindo
: retr a:\mydata\giapetto.lnd
2.2.2. Carregue um problema gravado no formato texto
: take a:\mydata\giapetto.lp
Com esses comandos, voc carregou o problema na memria do Lindo.

100

Para resolver o problema pelo Simplex,


temos que adicionar variveis de folga
Max z = 60x1 + 30x2 + 20x3
s.a:

8x1 + 6x2 +
x3 + f1
4x1 + 2x2 + 1.5 x3
+ f2
2x1 + 1.5x2 + 0.5 x3
+ f3
x1,
x2,
x3, f1,
f2,
f3

=
=
=

48
20
8
0

Uma vez adicionadas variveis de folga e excesso, o problema dito


no formato padro, pronto para ser resolvido atravs do mtodo
Simplex!
Prof. Fogliatto

Pesquisa Operacional

101

2.3. Revisualize o problema


Revisualize o problema que voc carregou usando o comando look:
: look all
2.4. Execute somente uma iterao (pivot)
O comando go executa mltiplas iteraes at chegar numa soluo tima
(nica, infinita ou invivel). Para executar um nico pivot, use o comando piv:
: piv

101

Conceitos-chave no mtodo Simplex


Variveis de folga e excesso.
Folgas introduzidas em restries do tipo .
Excessos introduzidos em restries do tipo .

Variveis bsicas e no-bsicas.


Bsicas = var. p/ as quais o sistema de equaes
resolvido.
No-bsicas = var. zeradas para que o sistema de
equaes apresente uma soluo (equaes=variveis).
Prof. Fogliatto

Pesquisa Operacional

102

Anotaes:

102

Solucionando problemas de otimizao


linear no tableau do simplex
O tableau inicial tem a seguinte estrutura:

Prof. Fogliatto

Pesquisa Operacional

103

2.5. Apresente o tableau atual


Para visualizar o tableau aps o pivot em 2.4, use o comando tabl:
: tabl
2.6. Salvando o tableau atual
Para salvar o tableau atual, use os comandos dive e rvrt:
: dive a:\mydata\giapetto.tab
: tabl
: rvrt

103

Montagem do tableau passo


a passo
A montagem do tableau sempre pressupe
variveis de folga formando a base inicial
O no de variveis na base igual ao no de
restries no problema
Se no houver variveis de folga em quantidade
suficiente para formar a base inicial, utilizaremos
variveis de folga artificiais (vistas mais adiante)
Prof. Fogliatto

Pesquisa Operacional

104

2.7. Visualizando a soluo atual


A soluo atual ainda no tima, mas voc deseja visualiz-la (valor da funo
objetivo, valores das variveis de deciso, folga e excesso). Para tanto, use o
comando solu:
: solu
Lindo avisar o usurio de que a soluo atual pode no ser a tima. Neste
caso, a soluo tima pode aparecer nos prximos pivots.
2.8. Saindo do programa Lindo
: quit

104

Montagem do tableau passo a passo

Lista das variveis no


cabealho das colunas
Para um problema com n variveis, o
tableau ter n + 2 colunas
Cada varivel ser posicionada em uma
coluna do tableau:
Inicie pelas variveis estruturais (x1, x2, ...)
Depois lista folgas, excessos e artificiais na
ordem em que aparecerem nas restries
Prof. Fogliatto

Pesquisa Operacional

105

2.9. Imprimindo o tableau atual


Para imprimir o tableau que voc salvou no passo 2.6, digite:
Print a:\mydata\giapetto.tab

105

Primeira coluna do tableau


A primeira coluna a coluna z:
Ali so listadas as variveis bsicas do tableau
Exemplo:

Base inicial
formada por
f1, f2 e f3

Prof. Fogliatto

Pesquisa Operacional

106

4. PROGRAMAO INTEIRA
Existemtrs tipos de problemas de Programao Inteira (PI):
A) Puros - todas as variveis de deciso so inteiras.
B) Mistos - algumas variveis de deciso so inteiras.
C) Booleanos - variveis de deciso s apresentam valores inteiros no intervalo
[0, 1].
A todo o problema de PI existe um problema de problema de programao linear
correspondente no qual as restries de no-fracionariedade so removidas (ou
relaxadas).
Alguns resultados se seguem:
(i) Espao de solues viveis do PI Espao de solues viveis do PI
relaxado.
(ii) Valor timo de z do PI Valor timo do PI relaxado.

106

ltima coluna do tableau


a coluna RHS (right hand side):
Ali aparecem o valor atual da funo objetivo
(no cruzamento entre coluna RHS e linha z) e o
valor das variveis que esto na base
No primeiro tableau (se as var. de folga forem a
base inicial), o valor atual da funo objetivo
zero e o valor das variveis na base
correspondem ao lado direito das restries
Prof. Fogliatto

Pesquisa Operacional

107

Uma possvel abordagem para soluo de problemas de PI resolver seus


problemas correspondentes relaxados e arredondar as variveis de deciso para
o maior ou menor inteiro mais prximo. Todavia, dois problemas podem resultar
desta abordagem:
(a) os valores arredondados podem resultar pontos inviveis no PI;
(b) as solues resultantes so altamente sub-timas.
3.1. Mtodo Branch-and-Bound para soluo de problemas PIs puros
Considere o problema de PI:
Max z = 8x1 + 5x2
s.a
x1 + x2 6
9x1 + 5x2 45
x1 , x2 0
x1 , x2 inteiros.
O mtodo de soluo de problemas de PI utilizando o branch-and-bound
operacionalizado em cinco passos, descritos a seguir (Winston, 1994).

107

ltima coluna do tableau


Exemplo
Valor da f.o. para
a base atual

Valor de
f1, f2 e f3 na base
Prof. Fogliatto

Pesquisa Operacional

108

1. Comece resolvendo o PI relaxado. Se a soluo tima for inteira, esta a


soluo do PI. Quando este no for o caso, a soluo tima do IPR (problema de
programao inteira relaxado) o limite superior da soluo tima do PI. A
soluo tima do IPR exemplificado na pgina anterior dada por:
z* = 165/4
x1 = 15/4
x2 = 9/4
2. Escolha uma varivel de deciso fracionria em z* do PIR, por exemplo, x1 =
15/4. O PI admite valores de x1 3 ou x1 4, mas no em 3 < x1 < 4. Crie dois
subproblemas a partir de x1:
SP2: SP1 + restrio x1 4.
SP3: SP1 + Restrio x1 3.
A sigla SP designa subproblema. O problema designado por SP1 o prprio
problema de PI em estudo, relaxado das restries de no-fracionariedade.

108

Linhas do tableau
O tableau do simplex constitudo de m + 1
linhas (m = no de restries do problema):
A primeira linha denominada linha z:
Analisando a linha z se verifica se o tableau timo
ou se h melhorias possveis na funo obj.

As demais linhas esto associadas s variveis


que esto na base, uma por varivel
Prof. Fogliatto

Pesquisa Operacional

109

3. Escolha qualquer SP listado no passo anterior e resolva como se fosse um


problema de Programao Linear. Digamos SP2, com soluo tima z* = 41, x1 =
4 e x2 = 9/5. Os resultados obtidos at agora podem ser apresentados na forma de
uma rvore hierrquica.

SP1: z* = 165/4, x1 = 15/4, x2 = 9/4


x1 4

x1 3
arco

SP2: z* = 41, x1 = 4,

SP3: z* = ?

x2 = 9/5

nodo

109

Linha z
No tabelau inicial, a linha z dada pelos
coeficientes de cada varivel na funo
objetivo, com o sinal invertido:
Variveis de folga e de escesso tm coeficientes
zero, pois nunca esto na f.o. original
Embaixo das variveis bsicas, na linha z do
tableau, s pode-se ter o valor 0!
Prof. Fogliatto

Pesquisa Operacional

110

4. Repita o procedimento em (3) usando o SP2 e a varivel de deciso


fracionria x2 = 9/5. Os subproblemas resultantes so:
SP4: SP1 + x1 4 + x2 2 ou SP2 + x2 2.
SP5: SP1 + x1 4 + x2 1 ou SP2 + x2 1.
Tem-se trs problemas que podem ser resolvidos: SP3, SP4 e SP5. Escolhe-se
dentre eles um para resoluo; por exemplo, SP4. SP4 no apresenta solues
viveis, no podendo, assim, gerar uma soluo tima para o problema de PI.
Assim, diz-se que este nodo da rvore foi terminado.
Dentre os SPs no resolvidos, escolhe-se o mais recente, SP5. A soluo vm
apresentada na rvore do problema, a seguir.

110

Exemplo de montagem da linha z


Max z = 60x1 + 30x2 + 20x3
s.a:

8x1 + 6x2 +
x3 + f1
4x1 + 2x2 + 1.5 x3
+ f2
2x1 + 1.5x2 + 0.5 x3
+ f3
x2,
x3, f1,
f2,
f3
x1,

Prof. Fogliatto

=
=
=

48
20
8
0

Pesquisa Operacional

111

SP1: z* = 165/4, x1 = 15/4, x2 = 9/4


x1 4

x1 3

SP2: z* = 41, x1 = 4,

SP3: z* = ?

x2 = 9/5
x2 2
SP4: Invivel.

x2 1
SP5: z* = 365/9,

x1 = 40/9, x2 = 1

111

Demais linhas do tableau


Copia-se literalmente o sistema de
restries do problema:

Prof. Fogliatto

Pesquisa Operacional

112

5. Repita o procedimento em (3) usando SP5 e a varivel de deciso fracionria


x1. Os subproblemas resultantes so:
SP6: SP5 + x1 5.
SP7: SP5 + x1 4.
Trs SPs podem ser resolvidos: SP3, SP6 e SP7. Escolhe-se, aleatoriamente, um
dos mais recentes; SP7, por exemplo. A soluo tima para o problema SP7 vem
dada na rvore a seguir. A soluo s possui valores inteiros para a varivel de
deciso, podendo ser interpretada como uma soluo candidata ou um limite
inferior no valor timo do problema de PI.

112

Prtica 5
Considere o problema abaixo:
Min z = 3x1 - x2 + 5x3

x1 + x 3 4

s.a

4 x1 + x 2 2 x 3 0
3 x1 x 3 2
x1 , x 2 , x 3 0

Transforme as inequaes em equaes introduzindo var. de


folga. Monte o tableau inicial do problema.
Prof. Fogliatto

Pesquisa Operacional

113

Soluo da Prtica 5:

SP1: z* = 165/4, x1 = 15/4, x2 = 9/4


x1 4

x1 3

SP2: z* = 41, x1 = 4,

SP3: z* = ?

x2 = 9/5
x2 2

x2 1

SP4: Invivel.

SP5: z* = 365/9,

x1 = 40/9, x2 = 1
x1 5

x1 4

SP6: z* = 40, x1 = 5,

SP7: z* = 37, x1 = 4,

x2 = 0.
Limite Inferior = 37
Soluo candidata

x2 = 1.
Soluo excluda.

113

ALGORITMO SIMPLEX NO
TABLEAU
Passo 1 Verifique se a base atual a base
tima do problema:
Um problema de Minimizao est na base
tima se todos os valores abaixo das variveis
na linha z do tableau so negativos ou zero
Ex.:

O algoritmo encerra aqui!


Prof. Fogliatto

Pesquisa Operacional

114

Os problemas SP3 e SP6 ainda no foram resolvidos. Seguindo a regra de


resolver o mais recente, escolhe-se SP6, com soluo dada na rvore da pgina
anterior. A soluo de SP6 inteira e melhor do que aquela obtida para SP7.
Assim, termina-se o nodo da rvore em SP7 (identifica-se o nodo terminado por
um ou escrevendo soluo excluda no nodo) e atualiza-se o limite inferior da
rvore; o novo limite LI 40.
O ltimo SP a ser resolvido SP3, com soluo dada por z* = 39, x1 = x2 = 3.
Esta uma soluo candidata com z* < LI. Assim, o nodo SP3 terminado e SP6
identificado como a soluo tima para o problema de PI.

114

ALGORITMO SIMPLEX NO
TABLEAU
Passo 1 Verifique se a base atual a base
tima do problema:
Um problema de Maximizao est na base
tima se todos os valores abaixo das variveis
na linha z do tableau so positivos ou zero
Ex.:

O algoritmo encerra aqui!


Prof. Fogliatto

Pesquisa Operacional

115

Alguns aspectos importantes do mtodo B & B para a soluo de PIs puros


devem ser salientados:
a) Sempre que no for necessrio desdobrar um subproblema, ele deve ser
terminado. Os critrios utilizados para terminao so:
i. o SP no possui solues viveis.
ii. O SP gera uma soluo tima contendo somente valores
inteiros.
iii. O SP apresenta um valor de z* menor (em problemas de PI
do tipo Maximizao) que o limite inferior atual.

115

ALGORITMO SIMPLEX NO TABLEAU

Passo 2
Identifique a varivel a entrar na base:
Em problema de Minimizao, o valor mais
positivo abaixo das variveis na linha z do
tableau denota a varivel entrante
Em problema de Maximizao, o valor mais
negativo na linha z denota a varivel entrante

Prof. Fogliatto

Pesquisa Operacional

116

b) Um SP eliminado (passa a ser desconsiderado do problema) sempre que:


i. o SP no possui solues viveis.
ii. O LI (limite inferior) atual pelo menos to grande quanto
o valor z* do SP em questo.

c) A regra ltimo a entrar, primeiro a sair, que indica qual SP deve ser
trabalhado dentre vrios candidatos fora o analista a trabalhar um mesmo da
ramo da rvore de solues at o final. Existem outras regras possveis(ver
Schrage, 1997, entre outros).
d) Quando um SP apresenta soluo tima com duas ou mais variveis de
deciso fracionrias, trabalhe com aquela que representar maior ganho na funo
objetivo (ou seja, aquela que possuir maior coeficiente de custo associado).

Schrage, L. (1997). Optimization Modeling with LINDO, 5th Ed., Pacific Grove
(CA): Duxbury Press.

116

ALGORITMO SIMPLEX NO TABLEAU

Passo 3
Identifique a varivel que sai da base
atravs do teste da mnima razo:
Divida os nos (abaixo da linha z) no lado direito
do tableau pelos nos positivos em posies
correspondentes na coluna da varivel entrante
(abaixo da linha z)
A menor razo indica a varivel que sai da base
Prof. Fogliatto

Pesquisa Operacional

117

3.2. Mtodo Branch-and-Bound para soluo de problemas PIs mistos


Modifique o algoritmo anterior da seguinte maneira:
i. desdobre somente variveis de deciso restritas a no-fracionrias.
ii. Considere a soluo tima de um SO como sendo uma soluo candidata
soluo tima do problema de PI quando esta atender s restries de nofracionariedade.

117

ALGORITMO SIMPLEX NO TABLEAU

Passo 3 Exemplo (Minimizao)


varivel entrante

Elemento de pivot
Razes:
4/2=2
8/1=8

Prof. Fogliatto

Menor razo!
Varivel x1 sai da base para que x2 possa entrar
No 2 na coluna do x2 o elemento de pivot!
Pesquisa Operacional

118

3.3. Mtodo Branch-and-Bound em problemas de sequenciamento de trabalhos


em mquinas
O mtodo B&B aplicado a problemas de sequenciamento pode ser melhor
introduzido atravs de um exemplo. Suponha quatro trabalhos a serem
processados numa mesma mquina. O tempo necessrio para processamento de
cada trabalho e as datas de entrega vm dados abaixo:

Trabalho 1
Trebalho 2
Trabalho 3
Trabalho 4

Tempo necessrio (dias) Data da entrega


6
Final do dia 8
4
Final do dia 4
5
Final do dia 12
8
Final do dia 16

O atraso do trabalho medido pelo nmero de dias aps a data de entrega em que
o trabalho completado. Trabalhos finalizados na data de entrega ou antes, tm
atraso zero.
Determine a ordem de processamento dos trabalhos que minimize o atraso total.

118

ALGORITMO SIMPLEX NO TABLEAU

Passo 3 Exemplo (Maximizao)


varivel entrante

Elemento de pivot

Razes:
4 / -2 = No vale!
8/2=4

Prof. Fogliatto

nica razo (menor por definio!)


Varivel f2 sai da base para que f1 possa entrar
No 2 na coluna do f1 o elemento de pivot!
Pesquisa Operacional

119

Defina as seguintes variveis de deciso:

1, quando o trabalho i for processado na posio j.


xij =
0, caso contrrio.
Considere o ltimo trabalho a ser processado. Qualquer que seja a sequncia, ela
ter x14 = 1, x24 = 1, x34 = 1 ou x44 = 1. Assim, cria-se uma rvore com quatro
nodos e calcula-se o limite inferior no atraso total associado a cada nodo. O
clculo do atraso para o quarto trabalho :
x44 = 1, ou seja, o trabalho 4 seria completado com atraso total de 23 - 16 dias.
Os 23 dias foram obtidos somando (6 + 4 + 5 + 8); ver tabela na pgina anterior.
Aplica-se o mesmo racioccio para os demais trabalhos processados na posio 4.
Os resultados vm mostrado na rvore na pgina seguinte. O limite inferior no
atraso total D 7. Ou seja, posicionando-se o trabalho 4 na quarta posio,
obtem-se o menor atraso total.

119

ALGORITMO SIMPLEX NO TABLEAU

Passo 3 Nota importante


O critrio de entrada na base depende da
funo objetivo do problema (maximizao
ou minimizao)
O teste da mnima razo, entretanto, o
mesmo, independente do tipo de funo
objetivo!

Prof. Fogliatto

Pesquisa Operacional

120

Melhor sequenciamento
x14 = 1
NODO 1:
D 15

x24 = 1
NODO 2:
D 19

x44 = 1

x34 = 1
NODO 3:
D 11

NODO 4:
D7

120

ALGORITMO SIMPLEX NO TABLEAU

Passo 4
Realize o pivot para a troca de base:
Atravs de operaes elementares com linhas
do tableau, faa com que a coluna da varivel
entrante fique igual a coluna da varivel que
est saindo da base
Inicie as operaes pelo elemento de pivot

Prof. Fogliatto

Pesquisa Operacional

121

Escolhe-se o nodo com menor valor de atraso D (no caso, o nodo 4) para
continuar o mtodo. Qualquer sequncia associada ao nodo 4 deve ter x13 = 1, x23
= 1 ou x33 = 1. O clculo do limite inferior LI de atraso similar quele visto
anteriormente:
x33 = 1, ou seja, o trabalho 3 seria completado com atraso total de 15 - 12 dias.
Os 15 dias foram obtidos somando (6 + 4 + 5). O atraso total ser de pelo menos
3 + 7 dias (D 10).
Escolhe-se o nodo 7 (menor valor de D) para desdobrar. Qualquer sequncia
associada a este nodo deve ter x12 = 1 ou x22 = 1. Os atrasos totais so:
Nodo 9 - sequncia 1-2-3-4. Atraso total: 7(tr. 4) + 3(tr. 3) + (6+4-4)(tr. 2) +
0(tr. 1) = 16 dias.
Nodo 8 - sequncia 2-1-3-4. Atraso total: 7(tr. 4) + 3(tr. 3) + (4+6-8)(tr. 1) +
0(tr. 2) = 12 dias.
Qualquer soluo com D > 12 pode ser eliminada de considerao (nodos 1, 2, 5,
6, 9). Desdobra-se o nodo 3. Qualquer sequncia deve ter x13 = 1, x23 = 1 ou x43
= 1. O clculo do limite inferior de atraso :

121

ALGORITMO SIMPLEX NO TABLEAU

Passo 4 Exemplo
varivel entrante

Elemento de pivot
Coluna da varivel f1 deve ficar igual coluna da varivel f2

Prof. Fogliatto

Pesquisa Operacional

122

x13 = trabalho 1 completo no final do dia (8+4+6) = 18 - 8 = 10 + 11 = 21


x23 = trabalho 2 completo no final do dia (8+4+6) = 18 - 4 = 14 + 11 = 25
x43 = trabalho 4 completo no final do dia (8+4+6) = 18 - 16 = 2 + 11 = 13
A sequncia tima 2 - 1 - 3 - 4. O atraso total de 12 dias.

122

ALGORITMO SIMPLEX NO TABLEAU

ALGORITMO SIMPLEX NO TABLEAU

Passo 4 Exemplo

Passo 4 Exemplo

Inicie pelo elemento de pivot: ele deve virar 1

A linha de trabalho ser usada nas operaes que transformaro os


demais nos da coluna da varivel entrante em zero
123

Como o problema de minimizao e no h mais valores negativos


na linha z do tableau abaixo das variveis, esta a base tima do
problema!
Prof. Fogliatto
Pesquisa
Operacional
124

ALGORITMO SIMPLEX NO TABLEAU

ALGORITMO SIMPLEX NO TABLEAU

Passo 5

Alguns comentrios

Prof. Fogliatto

Pesquisa Operacional

Volte ao passo 1

Cada tableau do simplex corresponde a uma


base diferente do problema. Assim:
O valor da funo objetivo nunca deve piorar a
medida que a troca de bases ocorre
As variveis bsicas no podem assumir valores
negativos (ou houve erro no teste da mnima
razo!)

Prof. Fogliatto

Pesquisa Operacional

125

Prof. Fogliatto

Pesquisa Operacional

126

ALGORITMO SIMPLEX NO TABLEAU

ALGORITMO SIMPLEX NO TABLEAU

Alguns comentrios

Alguns comentrios

Problemas de maximizao podem


apresentar valores negativos de funo
objetivo (depende da funo) e vice-versa

As colunas das variveis bsicas no tableau


abaixo da linha z devem sempre
corresponder a colunas de uma matriz
identidade

Atualize as variveis na base: aps cada


pivot, certifique-se de que o cabealho das
linhas est correto

Prof. Fogliatto

Pesquisa Operacional

127

Prof. Fogliatto

Pesquisa Operacional

128

Exemplo c/ solues timas


alternativas

Situaes especiais:

Min z = -2x1 - 4x2


s.a:
x1 + 2x2 4
-x1 +
x2 1
x1,
x2 0

1. Solues timas alternativas;


2. Soluo infinita (tendendo ao infinito).

3. Base inicial no disponvel (problema c/


variveis de excesso ou restries do tipo =).

B3

Reta de solues timas


alternativas

2
B2

z
Prof. Fogliatto

Pesquisa Operacional

129

Prof. Fogliatto

B1

Pesquisa Operacional

6
130

Exemplo c/ soluo tendendo ao


infinito

Tableau

Min z = - x1 - 3x2
s.a:
x1 - 2x2 4
-x1 +
x2 3
x1,
x2 0

Soluo tima

4
B2
2

B1

z
Prof. Fogliatto

Pesquisa Operacional

131

Tableau

Prof. Fogliatto

132

Ex. c/ base inicial no disponvel


6
B3 (Base tima)

Adicionando excesso e folga


4

Min z = x1 - 2x2
s.a:
x1 + x2 - e1
= 1
x2
+ f1 = 4
x1, x2, e1, f1
0

2
B2

Adicionando artificial

Min z = x1 - 2x2
+ Ma1
s.a:
x1 + x2 - e1
+ a1 = 1
x2
+ f1
= 4
x1, x2, e1, f1, a1 0
Pesquisa Operacional

Pesquisa Operacional

Min z = x1 - 2x2
s.a:
- x1 + x2 1
x2 4
x1,
x2 0

Prof. Fogliatto

133

Prof. Fogliatto

B1

Pesquisa Operacional

134

Tableau

Prtica 6A
Soluo tima nica
Max z = 60x1 + 30x2
s.a:
8x1 + 6x2
4x1 + 2x2
2x1 + 1.5x2
x1,
x2,

Prof. Fogliatto

Pesquisa Operacional

135

Prof. Fogliatto

Max z = 36x1 + 30x2 - 3x3 - 4x4


s.a:
x1 +
x2 - x3
5
6x1 + 5x2
- x4 10
x1,
x2,
x3,
x4 0

Pesquisa Operacional

Pesquisa Operacional

136

Prtica 6C
Solues timas alternativas

Prtica 6B
Soluo

Prof. Fogliatto

+ 20x3
+
x3 48
+ 1.5 x3 20
+ 0.5 x3 8
x3 0

Max z = -3x1 + 6x2


s.a
5x1 + 7x2 35
-x1 + 2x2 2
x 1 , x2 0

137

Prof. Fogliatto

Pesquisa Operacional

138

Prtica 6D
Base Inicial no-disponvel

Prtica 6E
Base Inicial no-disponvel

Max z = -x1 - 2x2


s.a
3x1 + 4x2 12
2x1 - x2 2
x1 , x 2 0

Min z = -x1 s.a


x1 -x1 +
x1 ,

x2
x2 1
x2 1
x2 0

Este problema no possui solues viveis (confira graficamente).


Verifique como o mtodo do M-Grande vai sinalizar a ausncia de
solues viveis.
Prof. Fogliatto

Pesquisa Operacional

139

Prof. Fogliatto

Prticas Adicionais

140

O PROBLEMA DUAL
Todo o problema de programao linear possui um problema
dual correspondente.

c Max z = 2x1 + x2 - x3
s.a
x 1 + x2 + 2 x 3 6
x1 + 4x2 - x3 4
x1, x2, x3 0

Chamaremos o problema original de primal e o problema


dual de dual.
d Min z = 3x1 - 3x2 +
s.a
x1 + 2x2 -3x1 - x2 +
x1, x2,

x3
x3 5
x3 4
x3 0

Primal
Max
Min

e Max z = 2x1 - x2
s.a
x1 + x2 3
-x1 + x2 1
x1, x2, 0
Prof. Fogliatto

Pesquisa Operacional

Dual
Min
Max

Variveis do problema primal z, x1, x2,,xn.


Variveis do problema dual w, y1, y2,,ym.

Pesquisa Operacional

141

Prof. Fogliatto

Pesquisa Operacional

142

Escrevendo o dual de um problema de progr. linear

EXEMPLO
Max z = 60x1 + 30x2 + 20x3
s.a:
8x1 + 6x2 + 1x3 48
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1,
x2,
x3 0

P
r
i
m
a
l

Min w = 48y1 + 20y2 + 8y3


s.a:
8y1 + 4y2 + 2y3 60
6y1 + 2y2 + 1.5y3 30
1y1 + 1.5y2 + 0.5y3 20
y1,
y2,
y3 0

D
u
a
l

Max z = c1x1 + c2x2 + + cnxn


s.a:
a11x1 + a12x2 + + a1nxn b1
a21x1 + a22x2 + + a2nxn b2
M

am1x1 + am2x2 + + amnxn bm

Min w = b1y1 + b2y2 + + bmym


s.a:
a11y1 + a21y2 + + am1ym c1
a12y1 + a22x2 + + am2ym c2
M

a1ny1 + a2ny2 + + amnym cn

Prof. Fogliatto

Pesquisa Operacional

143

Prof. Fogliatto

A isima restrio do dual corresponde isima varivel


do primal

Variveis

Restries

Prof. Fogliatto

Max

0
0
Irrestr.

Restries

0
0
Irrestr.

Variveis

Pesquisa Operacional

145

144

OUTRO EXEMPLO

Usando a tabela abaixo, pode-se achar o dual de qualquer primal:


Min

Pesquisa Operacional

Prof. Fogliatto

Max z = 2x1 + x2
s.a:
2x1 + x2 = 2
2x1 - x2 3
x1 - x2 1
x1 0, x2 irrestr.

P
r
i
m
a
l

Min w = 2y1 + 3y2


s.a:
2y1 + 2y2
y1 - y2
y1 irrestr.,

D
u
a
l

+ 1y3
+ y3 2
- y3 = 1
y2 0, y3 0

Pesquisa Operacional

146

INTERPRETAO ECONMICA DO
PROBLEMA DUAL

O DUAL DESTE PROBLEMA :


Min w = 48y1 + 20y2 + 8y3
s.a:
8y1 + 4y2 + 2y3 60
6y1 + 2y2 + 1.5y3 30
1y1 + 1.5y2 + 0.5y3 20
y1,
y2,
y3 0

O exemplo visto anteriormente:


Max z = 60x1 + 30x2 + 20x3
s.a:
8x1 + 6x2 + 1x3 48
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1,
x2,
x3 0

Prof. Fogliatto

Mesa
Cadeira

Restries associadas com escrivaninhas, mesas e cadeiras, respectiv.


y1 associado com tbuas; y2 com acabamto; y3 com carpintaria.

Corresponde modelagem matemtica do seguinte problema:


Insumo
Escrivaninha
Tbua
8
Acabamto
4
Carpintaria
2
Lucro Venda
$60

Escrivaninha

Produto
Mesa
6
2
1.5
$30

Cadeira
1
1.5
0.5
$20

Qtidd de
Insumo
48
20
8

Pesquisa Operacional

Suponha uma situao onde exista escassez de insumos. Um outro


fabricante de mveis deseja comprar os insumos disponveis na fbrica de
escrivaninhas, mesas e cadeiras.
A pergunta-chave : qual o gio mximo a ser cobrado pelos insumos?
147

Definindo as variveis do problema dual

Prof. Fogliatto

Pesquisa Operacional

O comprador deseja o menor preo, mas o preo deve


ser atraente o suficiente para induzir o fabricante de
escrivaninhas a vender seus insumos

y1 = gio mximo cobrado por uma tbua de madeira;


y2 = gio mximo cobrado por 1 hora de acabamento;
y3 = gio mximo cobrado por 1 hora de carpintaria

Assim:
8y1 + 4y2 + 2y3 60

O gio total a ser cobrado por estes insumos corresponder


funo objetivo:

Note que a funo objetivo busca minimizar o custo de compra:


este o ponto de vista do comprador.

O mesmo ocorre com as outros produtos:


6y1 + 2y2 + 1.5y3 30
1y1 + 1.5y2 + 0.5y3 20

Pesquisa Operacional

Restrio das
escrivaninhas

Ou seja, se comprarmos todos os insumos nas quantidades necessrias


para produzir uma escrivaninha, o gio a ser pago deve ser, no
mnimo, o que o fabricante lucraria com a venda daquele produto.

Min w = 48y1 + 20y2 + 8y3

Prof. Fogliatto

148

149

Prof. Fogliatto

Pesquisa Operacional

Restr. das mesas

Restr. das cadeiras


150

Para determinarmos o menor gio de compra dos


insumos que mantenha a venda desses insumos
interessantes para o fabricante, devemos resolver o
problema dual

Exerccio
Determine o dual do seguinte problema de
programao linear:

As variveis y1, y2, y3 so normalmente denominadas preossombra dos insumos.

Max z = x1 +
s.t.:
3x1 +
2x1 +
x1,

isima

restrio corresponde
Por definio, o preo-sombra da
melhoria no valor z da funo objetivo ocasionada pelo
incremento de uma unidade no lado direito da restrio [ou
seja, de bi para (bi + 1)].

Prof. Fogliatto

Pesquisa Operacional

151

2x2
x2 6
x2 = 5
x2 0

Prof. Fogliatto

Pesquisa Operacional

Como ler a soluo tima do dual a partir da linha 0


(ou linha z) do tableau timo do primal
Caso 1 - Primal = Max

Tableau timo

Para resolver o problema abaixo:


Max z = 3x1 + 2x2 + 5x3
s.a:
1x1 + 3x2 + 2x3 15
2x2 - x3 5
2x1 + x2 - 5x3 = 10
x2,
x3 0
x1,

152

x1
z
Adicionar var. folga f1
Adicionar var. excesso e2 e art. a2
Adicionar var. artificial a3

x2
0

x3

f1

e2

51

/23

58

/23

x3

x2

/23

-9

x1

/23

17

a3

58

565

/23

-2

/23

15

/23

/23

-1

/23

65

/23

/23

120

/23 M- /23 M+ /23


-5

/23

/23
/23

RHS

a2

-17

/23

/23

/23

A base inicial ser formada por B = { f1, a2, a3}.


Usaremos o Mtodo do M-Grande para solucionar este problema.
O tableau timo vem dado a seguir...
Prof. Fogliatto

Pesquisa Operacional

153

Prof. Fogliatto

Pesquisa Operacional

154

Regras para identificao da soluo tima dual na


linha 0 (ou z) do tableau timo do primal (Max)

No tableau timo do exemplo anterior:


y1

Valor timo da var. dual yi


qdo restrio i do tipo

Coeficiente de fi na linha
0 do tableau timo

Valor timo da var. dual yi


qdo restrio i do tipo

-(Coeficiente de ei) na
linha 0 do tableau timo

(Coeficiente de ai na linha
0 do tableau timo) - M

Valor timo da var. dual yi


qdo restrio i do tipo =

x1

x2

x3

51

x3 0

x2 0

x1 0

Pesquisa Operacional

155

Conferindo o resultado na funo


objetivo do problema dual
Min w = 15y1 + 5y2 + 10y3
y1 =

51/ ;
23

y2 = -58/23; y3 = 9/23

e2

/23

58

/23

/23

-9

/23

17

y3-M
a2

a3

/23 M-58/23 M+9/23

/23
/23
/23

-5
9

RHS
565

/23

/23

-2

/23

15

/23

/23

-1

/23

65

/23

/23

120

-17

/23

/23

Ou seja, o problema dual possui a seguinte soluo tima:


y1 =

Prof. Fogliatto

f1

-y2

Prof. Fogliatto

51/ ;
23

y2 = -58/23; y3 = 9/23
Pesquisa Operacional

156

Regras para identificao da soluo tima dual na


linha 0 (ou z) do tableau timo do primal (Min)
Valor timo da var. dual yi
qdo restrio i do tipo

Coeficiente de fi na linha
0 do tableau timo

Valor timo da var. dual yi


qdo restrio i do tipo

-(Coeficiente de ei) na
linha 0 do tableau timo

Valor timo da var. dual yi


qdo restrio i do tipo =

(Coeficiente de ai na linha
0 do tableau timo) + M

w = 565/23

Prof. Fogliatto

Pesquisa Operacional

157

Prof. Fogliatto

Pesquisa Operacional

158

Exerccio

Prof. Fogliatto

Pesquisa Operacional

159

O Problema do Transporte

Pesquisa Operacional

Descrio Geral de um problema de transporte:

Parte 2

1. Um conjunto de m pontos de fornecimento a partir dos quais um


insumo embarcado ou remetido.
O ponto de fornecimento i pode fornecer no mximo si unidades.
2. Um conjunto de n pontos de demanda para os quais o insumo
remetido.

Graduao em Engenharia de
Produo
DEPROT / UFRGS
Prof. Flavio Fogliatto, Ph.D.

O ponto de demanda j deve receber pelo menos dj unidades do insumo.

Prof. Fogliatto

Descrio Geral de um problema de


transporte

PO - Graduao

Formulao do Problema
Seja xij = no de unidades despachadas do ponto de fornecimento i para
o ponto de demanda j.

3. Cada unidade produzida no ponto de fornecimento i e remetida ao


ponto de demanda j incorre num custo de cij.

A formulao genrica do problema do transporte ser:


m n

Min cij xij


i =1 j =1
n

s.t.

xij si

(i = 1,..., m)

Restries de fornecimento

( j = 1,..., n)

Restries de demanda

j =1
m

xij d j

i =1

xij 0
Prof. Fogliatto

PO - Graduao

Prof. Fogliatto

PO - Graduao

Como balancear um problema de transporte


quando a capacidade de fornecimento excede
a demanda

Problema Balanceado
Um problema de transporte considerado balanceado se:

i =1

j =1

Cria-se um ponto fictcio de demanda. A demanda nesse ponto ser igual


ao excedente da capacidade.

si = d j
Como balancear o problema quando a demanda maior que a capacidade
de fornecimento?

Ou seja, o fornecimento supre toda a demanda.


Neste caso, o problema no possui solues viveis.
Num problema balanceado, as restries so todas igualdades.
Como alternativa, pode-se adicionar um ponto fictcio de fornecimento.
O custo de fornecimento daquele ponto ser igual penalizao incorrida
pelo no fornecimento do insumo.
Prof. Fogliatto

PO - Graduao

Prof. Fogliatto

Fornecimento
c12

c21

c22

M
cm1

Demanda

Prof. Fogliatto

d1

d2

PO - Graduao

s1

s2

dn

Associado a cada milho de litros de gua no fornecido por dia existe


uma multa. A multa na cidade 1 de $20; na cidade 2 de $18; na
cidade 3 de $23.

M
cmn

L
L

Dois reservatrios de gua abastecem trs cidades. Cada reservatrio pode


abastecer at 50 milhes de litros de gua por dia. Cada cidade necessita
receber 40 milhes de litros de gua por dia.

c2n

O
cm2

c1n

Exemplo

O Tableau de Transporte
c11

PO - Graduao

sm
m

i =1

j =1

Os custos do transporte entre


reservatrios e cidades vem
dado ao lado...

si = d j
7

Prof. Fogliatto

Cid.1 Cid.2 Cid.3


Reserv. 1

$7

$8

$8

Reserv. 2

$9

$7

$8

PO - Graduao

Tableau do Simplex
Cid. 1

Cid. 2

Cid. 3

Res. 1

A Aosul produz trs tipos de ao em suas trs plantas. O tempo necessrio para fabricar 1
tonelada de ao (independente do tipo) e os custos de fabricao em cada planta vem dado
abaixo. Semanalmente, 100 toneladas de cada tipo de ao devem ser produzidas. Cada planta
opera 40 horas por semana. Escreva o problema (o objetivo minimizar o custo de fabricao
dos aos) e organize o problema no tableau do transporte.

50
20

Res. Artif.

Prof. Fogliatto

Capacidade

50

Res. 2

Demanda

Prtica:

18

23

20
40

40

40

PO - Graduao

Planta 1
Planta 2
Planta 3

Mtodo do Extremo Noroeste para


Determinao da Soluo Vivel Inicial de um
problema de Transporte
Inicie o mtodo considerando a clula (1,1) do tableau. Faa com que
x11 seja o maior valor possvel.

Se x11 = s1, desconsidere as demais clulas na primeira linha do tableau,


j que nenhuma outra varivel bsica vir desta linha. Atualize o valor
de d1 para d1 - s1.

Tempo (min)
20
16
15

PO - Graduao

10

Mtodo do Extremo Noroeste para


Determinao da Soluo Vivel Inicial de um
problema de Transporte

Repita o procedimento, sempre escolhendo a clula posicionada no


extremo noroeste do tableau (desde que ela no esteja em uma linha
ou coluna eliminada anteriormente).

Se x11 = d1, desconsidere as demais clulas na primeira coluna do tableau,


j que nenhuma outra varivel bsica vir desta coluna. Atualize o valor
de s1 para s1 - d1.
PO - Graduao

Ao 3
$28
$30
$20

Se x11 = s1 = d1, desconsidere as demais clulas na primeira linha ou


na primeira coluna do tableau (mas no ambas). Se voc escolher desconsiderar a linha 1, mude d1 para 0. Se voc escolher desconsiderar a
coluna 1, mude s1 para 0.

Obviamente, x11 = Min (d1, s1).

Prof. Fogliatto

Prof. Fogliatto

Ao 1
$60
$50
$43

Custo
Ao 2
$40
$30
$20

11

Ao cabo de (m + n - 1) iteraes chega-se a uma base vivel inicial


para o problema.
Prof. Fogliatto

PO - Graduao

12

Exemplo

Exemplo

O mtodo do extremo noroeste no utiliza os custos, omitidos nos tableaus


abaixo:
5

10 3

10
15
12

15

x11 = Min {12, 5} = 5


Prof. Fogliatto

x21 = Min {10, 7} = 7

PO - Graduao

13

Prof. Fogliatto

PO - Graduao

Exemplo

5
0

15
0

15 10

x22 = Min {8, 3} = 3


Prof. Fogliatto

14

Exemplo
0

5
7

PO - Graduao

x32 = Min {15, 5} = 5


15

Prof. Fogliatto

PO - Graduao

16

Exemplo
0

5
7

Base
Inicial
Vivel

10 6

3
5

Exemplo

6
0

x33 = Min {10, 4} = 4


Prof. Fogliatto

PO - Graduao

x34 = Min {6, 6} = 6


17

Prof. Fogliatto

PO - Graduao

18

O Mtodo Simplex para problemas de


transporte
Decidindo qual varivel no-bsica deve entrar na base
Precisamos calcular os valores correspondentes a linha z do
tableau do simplex.

Prtica:
Determine uma base inicial
para o problema anterior.
Prof. Fogliatto

PO - Graduao

19

O clculo desses valores envolve determinar um menor circuito ou loop


contendo algumas variveis bsicas e a varivel no-bsica em questo.
Existe um loop nico possvel para cada varivel no-bsica.

Prof. Fogliatto

PO - Graduao

20

Determine a varivel no-bsica a entrar


na base

Exemplo

Iniciando com x14:


Capacidd
2

2
14

12

30

10

20

10

10

12

15

40

0
40

10

20

-17
12

10

20

12

10

14

Demanda

1. Determine um loop
de var. bsicas que
contenha a var. nobsica.

20

10

10

Calcule os valores correspondentes


linha z para cada varivel no-bsica:

15

2. Alterne sinais pos.


e neg. nas var. bs.
extremas.

3. Some os cij de
acordo com os sinais.

40

50

4. Subtraia o coef. de
custo da var. no-bs.
em questo do resultado

Base inicial determinada pelo mtodo do extremo noroeste.


(+1-12+3) = -8
Prof. Fogliatto

PO - Graduao

21

10

12

15

14

10

+
9

-3
12

40

(+5-12+3) = -4

22

10

10

-17

20

PO - Graduao

-8

14

12

Prof. Fogliatto

Repetindo o clculo p/ as demais var.


no-bsicas

Clculo para x13


10

(-8) - 9 = -17

+1

-8
12

-1

10

20
15

-17

-2

40

(-4) - 4 = -8
Num problema de minimizao a varivel mais positiva entra na base.

Prof. Fogliatto

PO - Graduao

23

Prof. Fogliatto

PO - Graduao

24

Para verificar qual varivel deve sair da base,


determine um loop contendo a var. entrante e
algumas variveis bsicas
2

10

10
14

-3

-8
12

12

15

+1

-1

-2

14

10
+

-3

40

12

15

Prof. Fogliatto

PO - Graduao

10

20
15

-1

-2

40

26

Nenhuma var. no-bs. com zij - cij > 0 tableau timo!


2

Prof. Fogliatto

10
14

27

-17

Novo tableau

40

PO - Graduao

10

12

+
0

Prof. Fogliatto

10

-8

+1

20

10

12

A varivel entrante
assumir o valor
da varivel que sai
da base.

25

12

14

Atualize o valor das demais clulas do loop: clulas


com sinal + tm seu valor decrescido em ; clulas
com sinal -, tm seu valor acrescido de . A varivel
entrante entra na base com valor .
2

+
10

PO - Graduao

+
10

Dentre as clulas
positivas, selecione
aquela de menor
valor: esta a var.
que sair da base.

10

20

Prof. Fogliatto

-17

A primeira clula bsica do loop recebe um


sinal positivo, a segunda um sinal negativo, e
assim por diante...

12

-7

-16
5

-1

12

15

10

20

-4

-2

-2

PO - Graduao

40

28

O Problema do Transbordo

Prtica:

Ponto de fornecimento - pode remeter insumos para outros pontos


mas no pode receber.

Resolva o problema
proposto no Slide 9.
Resolva o problema
do ao.

Ponto de demanda - pode receber insumos de outros pontos


mas no pode remeter.

Ponto de transbordo - remete e recebe insumos de outros pontos.

Prof. Fogliatto

PO - Graduao

29

Prof. Fogliatto

Exemplo

PO - Graduao

30

Custos

A BITCO monta PCs em Manaus (150 PCs/dia) e Assuncin do Paraguai


(200 PCs/dia) e remete para suas lojas em So Paulo e Recife,
totalizando 130 PCs por loja.

Os PCs so remetidos via area. A BITCO suspeita que devido


promoes e uso de outras empresas areas, seja mais econmico usar
Braslia e Curitiba como pontos de transbordo.

De/Para Man
Manaus
$0
Assuncion
Brasilia
Curitiba
SPaulo
Recife
-

Ass
$0
-

Bra
$8
$15
$0
$6
-

Cur
$13
$12
$6
$0
-

SP
$25
$26
$16
$14
$0
-

Rec
$28
$25
$17
$16
$0

Os custos de transporte por PC vm dados a seguir.

Prof. Fogliatto

PO - Graduao

31

Prof. Fogliatto

PO - Graduao

32

O problema do transbordo resolvido como


um problema balanceado de transportes

Exemplo
Deseja-se minimizar o custo do frete:

PASSO 1 - Balanceie o problema, se necessrio.

Por exemplo:
Manaus

Braslia

SPaulo

Assuncin

Curitiba

Recife

Capacidade > Demanda


Capacidade = 0
Acrescente pto de demanda artificial
Demanda = excedente capacidd.
Cargas so remetidas p/ ponto artificial a custo zero.

Prof. Fogliatto

PO - Graduao

33

Prof. Fogliatto

Passo 2 - Construa o tableau do transporte

PO - Graduao

34

Passo 2 - Cont.

Uma linha p/ cada ponto de fornecimento e transbordo.

Seja s = capacidade total de fornecimento.

Uma coluna p/ cada ponto de demanda e transbordo.

Cada ponto de transbordo ter:

Cada ponto de fornecimento ter capacidade de fornecimento igual a


sua capacidade original de fornecimento.

; capacidade = (capacidade do ponto original) + s


; demanda = (demanda do ponto original) + s

Cada ponto de demanda ter demanda igual a sua demanda original.

Prof. Fogliatto

PO - Graduao

35

Prof. Fogliatto

PO - Graduao

36

Passo 3 - Resolva o problema resultante como


um problema de transporte
Ao interpretar a soluo tima:

No exemplo
Braslia

Curitiba

SPaulo

13

25

Recife

Artificial

28

Manaus

; ignore remessas aos pontos artificiais;

150
15

Assuncion

12

26

25

200
0

16

17

350

Braslia

; ignore remessas de um ponto para ele mesmo.

14

16

Curitiba
Demanda
Prof. Fogliatto

PO - Graduao

37

Capacidade

350
350

350

Prof. Fogliatto

130

130

90

PO - Graduao

38

Prtica

Resultado

A GM produz carros em SP e POA e tem um depsito (transbordo) em


Foz do Iguau; a companhia fornece carros para Assuncin e Buenos
Aires. O custo do frete de um carro entre os pontos de fabricao e
venda vem dado abaixo:
Manaus

Assuncin

130

Braslia

Curitiba

130

SPaulo

Recife

130

De/Para
SP
Spaulo
$0
POA
$145
Foz
$105
Assuncion $89
Buenos
$210

POA
$140
$0
$115
$109
$117

1100

2900

Foz
$100
$111
$0
$121
$82

Capacidade
Prof. Fogliatto

PO - Graduao

39

Prof. Fogliatto

Ass
$90
$110
$113
$0
-

Bue
$225
$119
$78
$0

2400

1500

Demanda

Minimize os custos de transporte.


PO - Graduao

40

Exemplo: Aloque trabalhos nas mquinas tal


que tempo de setup seja mnimo

O Problema da Alocao
So problemas balanceados de transporte nos quais todas as demandas
e todas as capacidades so iguais a 1.

Trab. 1

14 min

Maq. 1

5 min

As variveis do problema so booleanas:

Trab. 2

Maq. 2
8 min

xij = 1; se o ponto de abastecimento i for utilizado para suprir a demanda


no ponto de demanda j.

Trab. 3

Maq. 3

Mq.1
Mq.2
Mq.3
Mq.4

Tr.1
14
2
7
2

Tempo (min)
Tr.2
Tr.3
5
8
12
6
8
3
4
6

Tr.4
7
5
9
10

7 min

xij = 0; caso contrrio.

Trab. 4

Prof. Fogliatto

PO - Graduao

41

Variveis de deciso:
xij = mquina i executando trabalho j; i = 1,...,4 e j = 1,...,4.
Funo objetivo:
Min z = 14 x11 + 5 x12 + 8 x13 + 7 x14 + 2 x21 + 12 x22 + 6 x23 + 5 x24 +
7 x31 + 8 x32 + 3 x33 + 9 x34 + 2 x41 + 4 x42 + 6 x43 + 10 x44
Restries de trabalho:

x11+x12+x13+x14 = 1

x11+x21+x31+x41 = 1

x21+x22+x23+x24 = 1

x12+x22+x32+x42 = 1

x31+x32+x33+x34 = 1
x41+x42+x43+x44 = 1

x13+x23+x33+x43 = 1
x14+x24+x34+x44 = 1

Prof. Fogliatto

PO - Graduao

PO - Graduao

42

Para resolver problemas de alocao,


usaremos o Algoritmo Hngaro

Formulao

Restries de mquina:

Prof. Fogliatto

Maq. 4

xij = 1 ou 0

43

Passo 1 - determine o elemento de custo mnimo em cada linha do tableau


dos transportes. Construa um novo tableau subtraindo de cada custo o
custo mnimo da linha correspondente. Determine ento o custo mnimo
em cada coluna. Construa um novo tableau subtraindo de cada custo o
custo mnimo da coluna correspondente.
Passo 2 - determine o no mnimo de linhas (horizontais e/ou verticais)
necessrias para cobrir todos os zeros no tableau de custos reduzidos. Se
forem necessrias m linhas, a resposta tima dada pelos zeros cobertos
por linhas no tableau. Se menos de m linhas forem necessrias, siga para
o passo 3.
Prof. Fogliatto

PO - Graduao

44

Algoritmo Hngaro

Exemplo
Mnimo da linha

Passo 3 - determine o menor elemento 0 dentre os elementos no


cobertos por linhas no tableau; seja k o valor deste elemento. Subtraia k
de cada elemento no-coberto do tableau e adicione k a cada elemento
coberto por duas linhas no tableau. Volte ao passo 2.
Nota - somente problemas balanceados podem ser resolvidos pelo
algoritmo hngaro. Se um problema for no balanceado, adicione pontos
artificiais de demanda ou capacidade.

14

12

10

Exemplo...

Prof. Fogliatto

PO - Graduao

45

Novo tableau aps subtrao dos mnimos de


linha

Mn. da coluna
Prof. Fogliatto

Prof. Fogliatto

PO - Graduao

46

Novo tableau aps subtrao dos mn. das


colunas

10

10

PO - Graduao

47

Prof. Fogliatto

PO - Graduao

3 linhas.
m = 4, logo procedemos c/ passo 3.

k=1

48

Subtraindo e somando k nas devidas clulas...

10

Note que o mnimo


das linhas e colunas 0!

4 linhas. Como m = 4,
temos uma soluo tima.

Como identificar a soluo tima


10

O nico zero coberto na col. 3


x33. Logo, x33 = 1, e a col. 3
e linha 3 no podem mais ser
usadas.
O nico zero coberto na col. 2
x12. Logo, x12 = 1, e a col. 2
e linha 1 no podem mais ser
usadas.
Sendo assim, x24 = 1, e a
linha 2 no pode mais ser
usada. Logo, x41 = 1.

Prof. Fogliatto

PO - Graduao

49

Prof. Fogliatto

Todo o problema de programao linear possui um problema


dual correspondente.

Um treinador necessita formar um time de nadadoras para competir em


uma prova olmpica de 400 metros medley. As nadadoras apresentam
as seguintes mdias de tempo em cada estilo:

Livre
54
51
50
56

Tempo (s) /100 m


Peito
Golfinho
54
51
57
52
53
54
54
55

Chamaremos o problema original de primal e o problema


dual de dual.

Costas
53
52
56
53

Primal
Max
Min

PO - Graduao

Dual
Min
Max

Variveis do problema primal z, x1, x2,,xn.

Qual nadadora deve nadar qual estilo?

Prof. Fogliatto

50

O PROBLEMA DUAL

Prtica

Nadadora
1
2
3
4

PO - Graduao

Variveis do problema dual w, y1, y2,,ym.

51

Prof. Fogliatto

PO - Graduao

52

Escrevendo o dual de um problema de progr. linear

EXEMPLO
Max z = 60x1 + 30x2 + 20x3
s.a:
8x1 + 6x2 + 1x3 48
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1,
x2,
x3 0

P
r
i
m
a
l

Min w = 48y1 + 20y2 + 8y3


s.a:
8y1 + 4y2 + 2y3
6y1 + 2y2 + 1.5y3
1y1 + 1.5y2 + 0.5y3
y1,
y2,
y3

D
u
a
l

Max z = c1x1 + c2x2 + + cnxn


s.a:
a11x1 + a12x2 + + a1nxn b1
a21x1 + a22x2 + + a2nxn b2
M

am1x1 + am2x2 + + amnxn bm

Min w = b1y1 + b2y2 + + bmym


s.a:
a11y1 + a21y2 + + am1ym c1
a12y1 + a22x2 + + am2ym c2
M

a1ny1 + a2ny2 + + amnym cn

Prof. Fogliatto

PO - Graduao

53

Prof. Fogliatto

A isima restrio do dual corresponde isima varivel


do primal

Variveis

Restries

Prof. Fogliatto

Max

0
0
Irrestr.

Restries

0
0
Irrestr.

Variveis

PO - Graduao

PO - Graduao

54

OUTRO EXEMPLO

Usando a tabela abaixo, pode-se achar o dual de qualquer primal:


Min

60
30
20
0

55

Prof. Fogliatto

Max z = 2x1 + x2
s.a:
2x1 + x2 = 2
2x1 - x2 3
x1 - x2 1
x1 0, x2 irrestr.

P
r
i
m
a
l

Min w = 2y1 + 3y2


s.a:
2y1 + 2y2
y1 - y2
y1 irrestr.,

D
u
a
l

+ 1y3
+ y3 2
- y3 = 1
y2 0, y3 0

PO - Graduao

56

INTERPRETAO ECONMICA DO
PROBLEMA DUAL

O DUAL DESTE PROBLEMA :


Min w = 48y1 + 20y2 + 8y3
s.a:
8y1 + 4y2 + 2y3
6y1 + 2y2 + 1.5y3
1y1 + 1.5y2 + 0.5y3
y1,
y2,
y3

Considere o exemplo:
Max z = 60x1 + 30x2 + 20x3
s.a:
8x1 + 6x2 + 1x3 48
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1,
x2,
x3 0

Prof. Fogliatto

Escrivaninha
Mesa
Cadeira

Restries associadas com escrivaninhas, mesas e cadeiras, respectiv.


y1 associado com tbuas; y2 com acabamto; y3 com carpintaria.

Correspondente modelagem matemtica do seguinte problema:


Insumo
Escrivaninha
Tbua
8
Acabamto
4
Carpintaria
2
Lucro Venda
$60

60
30
20
0

Produto
Mesa
6
2
1.5
$30

Cadeira
1
1.5
0.5
$20

Qtidd de
Insumo
48
20
8

PO - Graduao

Suponha uma situao onde exista escassez de insumos. Um outro


fabricante de mveis deseja comprar os insumos disponveis na fbrica de
escrivaninhas, mesas e cadeiras.
A pergunta-chave : qual o gio mximo a ser cobrado pelos insumos?
57

Definindo as variveis do problema dual

Prof. Fogliatto

PO - Graduao

O comprador deseja o menor preo, mas o preo deve


ser atraente o suficiente para induzir o fabricante de
escrivaninhas a vender seus insumos

y1 = gio mximo cobrado por uma tbua de madeira;


y2 = gio mximo cobrado por 1 hora de acabamento;
y3 = gio mximo cobrado por 1 hora de carpintaria

Assim:
8y1 + 4y2 + 2y3 60

O gio total a ser cobrado por estes insumos corresponder


funo objetivo:

Note que a funo objetivo busca minimizar o custo de compra:


este o ponto de vista do comprador.

O mesmo ocorre com as outros produtos:


6y1 + 2y2 + 1.5y3 30
1y1 + 1.5y2 + 0.5y3 20

PO - Graduao

Restrio das
escrivaninhas

Ou seja, se comprarmos todos os insumos nas quantidades necessrias


para produzir uma escrivaninha, o gio a ser pago deve ser, no
mnimo, o que o fabricante lucraria com a venda daquele produto.

Min w = 48y1 + 20y2 + 8y3

Prof. Fogliatto

58

59

Prof. Fogliatto

PO - Graduao

Restr. das mesas

Restr. das cadeiras


60

Para determinarmos o menor gio de compra dos


insumos que mantenha a venda desses insumos
interessantes para o fabricante, devemos resolver o
problema dual

As variveis y1, y2, y3 so normalmente denominadas preossombra dos insumos.

PRTICA:

Por definio, o preo-sombra da isima restrio corresponde


melhoria no valor z da funo objetivo ocasionada pelo
incremento de uma unidade no lado direito da restrio [ou
seja, de bi para (bi + 1)].

Determine o dual do seguinte problema de programao linear:

Prof. Fogliatto

PO - Graduao

Max z = x1 +
s.t.:
3x1 +
2x1 +
x1,

61

2x2
x2 6
x2 = 5
x2 0

Prof. Fogliatto

PO - Graduao

Como ler a soluo tima do dual a partir da linha 0


(ou linha z) do tableau timo do primal
Caso 1 - Primal = Max

Tableau timo

Para resolver o problema abaixo:


Max z = 3x1 + 2x2 + 5x3
s.a:
1x1 + 3x2 + 2x3 15
2x2 - x3 5
2x1 + x2 - 5x3 = 10
x1,
x2,
x3 0

62

x1
z
Adicionar var. folga f1
Adicionar var. excesso e2 e art. a2
Adicionar var. artificial a3

x2
0

x3

f1

e2

51

/23

58

/23

x3

x2

/23

-9

x1

/23

17

a3

58

565

/23

-2

/23

15

/23

/23

-1

/23

65

/23

/23

120

/23 M- /23 M+ /23

/23
/23
/23

RHS

a2
-5
9

-17

/23

/23

/23

A base inicial ser formada por B = { f1, a2, a3}.


Usaremos o Mtodo do M-Grande para solucionar este problema.
O tableau timo vem dado a seguir...
Prof. Fogliatto

PO - Graduao

63

Prof. Fogliatto

PO - Graduao

64

Regras para identificao da soluo tima dual na


linha 0 (ou z) do tableau timo do primal (Max)

No tableau timo do exemplo anterior:


y1

Valor timo da var. dual yi


qdo restrio i do tipo

Coeficiente de fi na linha
0 do tableau timo

Valor timo da var. dual yi


qdo restrio i do tipo

x1

x2

x3

51

x3 0

x2 0

x1 0

-(Coeficiente de ei) na
linha 0 do tableau timo

(Coeficiente de ai na linha
0 do tableau timo) - M

Valor timo da var. dual yi


qdo restrio i do tipo =

PO - Graduao

65

Conferindo o resultado na funo


objetivo do problema dual
Min w = 15y1 + 5y2 + 10y3
y1 =

51/ ;
23

y2 = -58/23; y3 = 9/23

e2

/23

58

/23

/23

-9

/23

17

y3-M
a2

a3

/23 M-58/23 M+9/23

/23
/23
/23

-5
9

RHS
565

/23

/23

-2

/23

15

/23

/23

-1

/23

65

/23

/23

120

-17

/23

/23

Ou seja, o problema dual possui a seguinte soluo tima:


y1 =

Prof. Fogliatto

f1

-y2

51/ ;
23

Prof. Fogliatto

y2 = -58/23; y3 = 9/23
PO - Graduao

66

Regras para identificao da soluo tima dual na


linha 0 (ou z) do tableau timo do primal (Min)
Valor timo da var. dual yi
qdo restrio i do tipo

Coeficiente de fi na linha
0 do tableau timo

Valor timo da var. dual yi


qdo restrio i do tipo

-(Coeficiente de ei) na
linha 0 do tableau timo

Valor timo da var. dual yi


qdo restrio i do tipo =

(Coeficiente de ai na linha
0 do tableau timo) + M

w = 565/23

Prof. Fogliatto

PO - Graduao

67

Prof. Fogliatto

PO - Graduao

68

PRTICA:

Modelos de Redes

Considere o seguinte problema:


Max z = -2x1 - 1x2 +
x1 + x2 +
s.t.:
x2 +
x1 +
x1, x2,

x3
x3 3
x3 2
x3 = 1
x3 0

Definies bsicas:
Defnido por

(a) Determine o dual deste problema;


(b) O problema, acrescido de variveis de folga, excesso e variveis artificiais resolvido
via Simplex. O problema no formato padro e a linha 0 do tableau timo vm dados
abaixo. Determine a soluo tima para o dual deste problema.
Max z = -2x1 - 1x2 + x3
x1 + x2 + x3 + f1
s.t.:
x2 + x3
- e2 + a2
x1 +
x3
+ a3
x1, x2, x3, f1, e2, a2, a3
Linha 0 do tableau timo
x2
z
x1
1
4
0
Z

x3
0

Prof. Fogliatto

f1
0

e2
1

Grafos ou Redes
Arcos

= 3
=2
=1
0

a2
M-1

Arco - par ordenado de vrtices; representa uma possvel direo


de movimento entre vrtices
a3
M+2

(j, k) = arco representando o movimento do n j (n inicial) para o n


k (n final).

RHS
0

PO - Graduao

69

Exemplo de Rede
1

Ns (ou vrtices)

Prof. Fogliatto

PO - Graduao

70

Correntes, Trilhas e Circuitos


CORRENTE = sequncia de arcos tal que cada arco apresenta
exatamente um vrtice em comum com o arco anterior.

Ns = {1, 2, 3, 4}

Arcos = {(1,2), (2,3), (3,4)


(4,3), (4,1)}

TRILHA = sequncia de arcos tal que o n terminal de cada arco


idntico ao n inicial do arco seguinte.

CIRCUITO = trilha finita em que o n terminal coincide com o n


inicial.

Prof. Fogliatto

PO - Graduao

71

Prof. Fogliatto

PO - Graduao

72

Problemas de determinao da trilha mais


curta entre dois ns
Exemplo 1

No exemplo...
1

Desejamos remeter energia eltrica da planta 1 cidade 1.


A rede abaixo apresenta as distncias entre pares de pontos
conectados (incluindo subestaes).
Desejamos determinar a trilha mais curta entre a planta e a cidade.

Ex. de corrente = (1,2) - (2,3) - (4,3)

Ex. de trilha = (1,2) - (2,3) - (3,4)


2

Ex. de circuito = (1,2) - (2,3) - (3,4) - (4,1)


Planta 1

3
Prof. Fogliatto

PO - Graduao

73

Prof. Fogliatto

Problemas de determinao da trilha mais curta entre dois ns

Idade do Carro
(anos)
0
1
2
3
4

Prof. Fogliatto

Custo anual de
manuteno
2000
4000
5000
9000
12000

PO - Graduao

Idade do Carro
(anos)
1
2
3
4
5

Cidade 1

PO - Graduao

74

Exemplo 2

Exemplo 2
Eu comprei um carro novo por $12000. Os custos de manuteno e o
valor na troca do carro em um determinado ano dependem da idade do
carro no comeo daquele ano.

O preo do carro novo em qualquer instante no tempo ser $12000.

Meu objetivo minimizar o custo lquido:

Valor na troca

(custo de compra) + (custos manuteno) - (valor recebido na troca)

7000
6000
2000
1000
0

durante os prximos cinco anos.

Formule este problema como um problema de determinao da trilha


mais curta.
75

Prof. Fogliatto

PO - Graduao

76

Soluo

Soluo

O problema ter 6 ns (i = 1, 2, , 6).


c12
c13
c14
c15
c16

Arco (i, j) = comprar o carro novo no incio do ano i e mant-lo at o


incio do ano j.
Custo cij = (custo de manuteno incorrido durante os anos i, i+1,,j-1)
+
(custo de compra do carro no incio do ano i)
(valor do carro na troca no incio do ano j)

Prof. Fogliatto

PO - Graduao

77

=
=
=
=
=

2 + 12 - 7 = 7
2 + 4 + 12 - 6 = 12
2 + 4 + 5 + 12 - 2 = 21
2 + 4 + 5 + 9 + 12 - 1 = 31
2 + 4 + 5 + 9 + 12 + 12 - 0 = 44

e assim por diante...

Prof. Fogliatto

Rede

PO - Graduao

78

Algoritmo de Dijkstra

31

44
31

Todas as distncias diretas entre dois ns da rede so conhecidas e


no-negativas.

21

21

12

12

Todos os ns da rede recebem um rtulo permanente ou


temporrio.

Um rtulo temporrio representa o limite superior da menor


distncia entre o n 1 e aquele n.

12
21

12

Um rtulo permanente corresponde menor distncia entre o n 1


e aquele n.
Prof. Fogliatto

PO - Graduao

79

Prof. Fogliatto

PO - Graduao

80

Passos do Algoritmo

Passo 1

Passo Inicial:
O n inicial recebe um rtulo permanente com valor zero.

Seja k o n mais recente cujo rtulo foi transformado em


permanente. Considere os demais ns (com rtulos temporrios).

Todos os demais ns tm rtulos temporrios com valor igual


distncia direta entre o n inicial e o n em questo.
Ns com rtulos temporrios e no conectados diretamente com
o n inicial recebem valor .

Compare o valor de cada n temporrio com a soma (valor do n


+ distncia direta entre o n k e o n em questo). O mnimo entre
esses valores ser o novo valor do n em questo.

Selecione, dentre os ns c/ rtulo temporrio, aquele que


apresentar o menor valor; esse n passar a ter rtulo permanente.
Em caso de empate, escolha aleatoriamente um dos ns de menor
valor.
Prof. Fogliatto

PO - Graduao

81

Prof. Fogliatto

PO - Graduao

82

Exemplo

Passo 2
9

2
3

Selecione o n com menor valor dentre aqueles com rtulo temporrio;


transforme seu rtulo em permanente.

2
7

Todos os arcos so

3
1
4

Prof. Fogliatto

PO - Graduao

Se o n escolhido acima for o n final, pare. Caso contrrio, retorne


ao passo 1.

Deseja-se encontrar a trilha


mais curta entre os ns 1 e 6.

83

Prof. Fogliatto

PO - Graduao

84

Comece fazendo com que o n 1


tenha um rtulo permanente = 0

O menor dos rtulos temporrios


vira permanente (n 2).
A menor distncia entre ns 1 e 2 = 3.

Todos os demais ns recebem rtulos provisrios iguais a distncia


direta entre o n em questo e o n 1.

Os novos rtulos so:


Assim:
* indica rtulo permanente.

L (0) = [0*, 3, 7, 4, , ]

Prof. Fogliatto

L (0) = [0*, 3*, 7, 4, , ]

PO - Graduao

85

Para todos os demais ns (j = 3,4,5,6), calcule o


nmero dado pela soma do valor no n 2 (=3) e a
distncia direta entre o n 2 e o n j em questo

Prof. Fogliatto

PO - Graduao

O menor dos rtulos temporrios


vira permanente (n 4).

Compare o nmero obtido com o rtulo temporrio do n j; o menor


dentre esses valores passa a ser o novo rtulo temporrio de j.

A menor distncia entre ns 1 e 4 = 4.

Para j = 3 min (3+2, 7) = 5

Os novos rtulos so:

Os novos rtulos so:

Para j = 4 min (3+, 4) = 4


Para j = 5 min (3+, ) =

86

L (2) = [0*, 3*, 5, 4*, , 12]

L (2) = [0*, 3*, 5, 4, , 12]

Para j = 6 min (3+9, ) = 12

Prof. Fogliatto

PO - Graduao

87

Prof. Fogliatto

PO - Graduao

88

O menor dos rtulos temporrios


vira permanente (n 3).

Para todos os demais ns (j = 3,5,6), calcule o


nmero dado pela soma do valor no n 4 (=4) e a
distncia direta entre o n 4 e o n j em questo
Compare o nmero obtido com o rtulo temporrio do n j; o menor
dentre esses valores passa a ser o novo rtulo temporrio de j.

A menor distncia entre ns 1 e 3 = 5.

Para j = 3 min (4+1, 5) = 5

Os novos rtulos so:

Os novos rtulos so:

Para j = 5 min (4+3, ) = 7


Para j = 6 min (4+, 12) = 12

Prof. Fogliatto

PO - Graduao

89

Para todos os demais ns (j = 5,6), calcule o nmero


dado pela soma do valor no n 3 (=5) e a distncia
direta entre o n 3 e o n j em questo
Compare o nmero obtido com o rtulo temporrio do n j; o menor
dentre esses valores passa a ser o novo rtulo temporrio de j.

Para j = 5 min (5+3, 7) = 7


Para j = 6 min (5+6, 12) = 11

Prof. Fogliatto

PO - Graduao

L (3) = [0*, 3*, 5*, 4*, 7, 12]

L (3) = [0*, 3*, 5, 4*, 7, 12]

Os novos rtulos so:

Prof. Fogliatto

90

O menor dos rtulos temporrios


vira permanente (n 5).
A menor distncia entre ns 1 e 5 = 7.

Os novos rtulos so:

L (4) = [0*, 3*, 5*, 4*, 7*, 11]

L (4) = [0*, 3*, 5*, 4*, 7, 11]

91

PO - Graduao

Prof. Fogliatto

PO - Graduao

92

Para todos os demais ns (j =6), calcule o nmero


dado pela soma do valor no n 5 (=7) e a distncia
direta entre o n 5 e o n j em questo

O menor dos rtulos temporrios


vira permanente (n 6).

Compare o nmero obtido com o rtulo temporrio do n j; o menor


dentre esses valores passa a ser o novo rtulo temporrio de j.

A menor distncia entre ns 1 e 6 = 10.

Os novos rtulos so:

Os novos rtulos so:


Para j = 6 min (7+3, 11) = 10

L (5) = [0*, 3*, 5*, 4*, 7*, 10*]


L (4) = [0*, 3*, 5*, 4*, 7*, 10]
O algoritmo termina e a menor trilha entre 1 e 6 pode ser determinada.

Prof. Fogliatto

PO - Graduao

93

Determinando a trilha mais curta


Comece do n de destino (6). Calcule a diferena entre o rtulo
permanente do n 6 e os demais ns diretamente ligados a ele.
9

2
3
2
7

Prof. Fogliatto

2
2

Ns 2,3 e 5 esto diretamente ligados a 6.

(62) = 7 / (2,6) = 9

1
4

(65): 10 - 7 = 3

(65) = 3 / (5,6) = 3
(63) = 4 / (3,6) = 6

Assim:

Diferenas / Arcos:

94

Se a diferena (6j) for igual ao comprimento


real do arco (j, 6), escolha j como ponto
intermedirio

L (5) = [0*, 3*, 5*, 4*, 7*, 10*]

PO - Graduao

4
3

(63): 10 - 5 = 4

Assim, o primeiro n intermedirio


no caminho entre 6 e 1 o n 5.

(62): 10 - 3 = 7
Prof. Fogliatto

PO - Graduao

95

Prof. Fogliatto

PO - Graduao

96

Se a diferena (5j) for igual ao comprimento


real do arco (j, 5), escolha j como ponto
intermedirio

Repita o procedimento para o n 5


Ns 3 e 4 esto diretamente ligados a 5.
9

2
3
2
7

L (5) = [0*, 3*, 5*, 4*, 7*, 10*]

3
2

Diferenas:

(54) = 3 / (4,5) = 3

(53) = 2 / (3,5) = 3
3

Assim, o segundo n intermedirio


no caminho entre 6 e 1 o n 4.

1
4

(53): 7 - 5 = 3

(54): 7 - 4 = 3

Diferenas / Arcos:

4
3

Prof. Fogliatto

PO - Graduao

97

Caminho parcial: 6 5 4

Prof. Fogliatto

PO - Graduao

98

Se a diferena (4j) for igual ao


comprimento real do arco (j, 4), escolha j
como ponto intermedirio

Repita o procedimento para o n 4


Ns 3 e 1 esto diretamente ligados a 4.
9

2
3
2
7

L (5) = [0*, 3*, 5*, 4*, 7*, 10*]

3
2

Diferenas:

(43) = -1 / (3,4) = 1

(41) = 4 / (1,4) = 4
3

3
1
4

(41): 4 - 0 = 4

(43): 4 - 5 = -1

Diferenas / Arcos:

Como o n 1 o n de destino,
determinamos a trilha mais curta
entre os ns 1 e 6.

Trilha Mais Curta: 6 5 4 1


Prof. Fogliatto

PO - Graduao

99

Prof. Fogliatto

PO - Graduao

100

Prtica

Use o algoritmo de Dijkstra para resolver os problemas nos


slides 79 e 84.

Prof. Fogliatto

PO - Graduao

101

Tipos de problemas de
programao inteira (PI)
Puros - todas as variveis de deciso so
inteiras

Programao Inteira

Mistos - algumas variveis de deciso


so inteiras

Pesquisa Operacional I Parte III

Booleanos - variveis de deciso s


apresentam valores inteiros no intervalo
[0, 1]

Flvio Fogliatto

Abordagem para soluo de


problemas de PI

Programao inteira
A todo o problema de PI existe um problema de
problema de PL correspondente no qual as
restries de no-fracionariedade so
removidas (ou relaxadas)

Resolver seus problemas correspondentes


relaxados e arredondar as variveis de
deciso p/ o maior ou menor inteiro mais
prximo

Alguns resultados se seguem:

Dois problemas podem resultar:

Espao de solues viveis do PI Espao de


solues viveis do PI relaxado

Valores arredondados podem resultar inviveis no PI


Solues resultantes so altamente sub-timas

Valor timo de z do PI no mximo to bom quanto o


valor timo do PI relaxado
3

Mtodo Branch-and-Bound para


soluo de problemas PIs puros

Branch-and-bound
operacionalizado em 5 passos

Considere o problema de PI:

Passo 1: Comece resolvendo o PI relaxado.


Se a soluo tima for inteira, esta a soluo do PI

Max z = 8x1 + 5x2

Caso contrrio, soluo tima do IPR (problema de programao inteira


relaxado) o limite superior da soluo tima do PI

s.a
x1 + x2 6

9x1 + 5x2 45

Soluo tima do IPR dado anteriormente :


z* = 165/4

x1 , x2 0

x1 = 15/4

x1 , x2 inteiros

x2 = 9/4
5

Crie dois subproblemas a


partir de x1

Passo 2

SP2: SP1 + restrio x1 4

Escolha uma varivel de deciso


fracionria em z* do PIR:

SP3: SP1 + Restrio x1 3

por exemplo, x1 = 15/4.

SP = subproblema

PI admite valores de x1 3 ou x1 4, mas


no em 3 < x1 < 4

Problema designado por SP1 o prprio


problema de PI em estudo, relaxado das
restries de no-fracionariedade
7

Arvore hierrquica de
soluo do problema

Passo 3
Escolha qualquer SP listado no passo
anterior e resolva como se fosse um
problema de PL:
Por ex., SP2, com soluo tima z* = 41, x1 =
4 e x2 = 9/5

Resultados obtidos at agora podem ser


apresentados na forma de uma rvore
hierrquica
9

10

Escolha um para resoluo

Passo 4

Por exemplo: SP4

Repita o procedimento no Passo 3 usando o


SP2 e a varivel de deciso fracionria x2 = 9/5

SP4 no apresenta solues viveis, no


podendo, assim, gerar uma soluo tima para
o problema de PI:

Subproblemas resultantes:

Assim, diz-se que este nodo da rvore foi terminado

SP4: SP1 + x1 4 + x2 2 ou SP2 + x2 2


SP5: SP1 + x1 4 + x2 1 ou SP2 + x2 1

Dentre os SPs no resolvidos, escolhe-se o


mais recente, SP5:

Tem-se trs problemas que podem ser


resolvidos: SP3, SP4 e SP5

Soluo vm apresentada na rvore do problema, a


seguir
11

12

Arvore hierrquica de
soluo do problema

Repita procedimento em (3)


usando SP5 e var. fracionria x1
Subproblemas resultantes so:
SP6: SP5 + x1 5
SP7: SP5 + x1 4

Trs SPs podem ser resolvidos: SP3, SP6 e SP7.


Escolhe-se, aleatoriamente, um dos mais recentes:
SP7, por exemplo

Soluo tima p/ SP7 vem dada na rvore a seguir

13

SP7 gera a primeira soluo


candidata para PI

14

Problemas SP3 e SP6 ainda


no foram resolvidos
Escolhe-se SP6 (+ recente), com soluo dada
na rvore a seguir:

Soluo s possui
valores inteiros p/ a
varivel de deciso:

Soluo de SP6 inteira e melhor do que aquela


obtida para SP7

Pode ser interpretada


como soluo
candidata ou um limite
inferior no valor timo
do problema de PI

Assim, termina-se nodo da rvore em SP7 (identificase o nodo terminado por um ou escrevendo soluo
excluda) e atualiza-se o limite inferior da rvore;
novo LI = 40
15

16

Arvore hierrquica de
soluo do problema

ltimo SP a ser resolvido


SP3
Soluo de SP3 z* = 39, x1 = x2 = 3:
Trata-se de uma soluo candidata com z* <
LI

Assim, nodo SP3 terminado e SP6


identificado como a soluo tima para o
problema de PI
17

Aspectos importantes do
Branch-and-bound p/ PIs puros

18

Mais aspectos

Sempre que no for necessrio desdobrar um


subproblema, ele deve ser terminado

Um SP eliminado (passa a ser


desconsiderado do problema) sempre
que:

Critrios utilizados para terminao so:


SP no possui solues viveis

SP no possui solues viveis

SP gera uma soluo tima contendo somente


valores inteiros

LI (limite inferior) atual pelo menos to


grande quanto o valor z* do SP em questo

SP apresenta um valor de z* menor (em problemas


de PI do tipo Maximizao) que o limite inferior atual
19

20

Mtodo Branch-and-Bound
para soluo de PIs mistos

Mais aspectos
A regra ltimo a entrar, primeiro a sair, que indica qual
SP deve ser trabalhado dentre vrios candidatos fora o
analista a trabalhar um mesmo da ramo da rvore de
solues at o final:
Existem outras regras possveis (ver Schrage, 1997, entre
outros)

Modifique o algoritmo anterior da seguinte


maneira:
Desdobre somente variveis de deciso restritas a
no-fracionrias
Considere a soluo tima de um SP como sendo
uma soluo candidata soluo tima do problema
de PI quando esta atender s restries de nofracionariedade

Quando um SP apresenta soluo tima com duas ou


mais variveis de deciso fracionrias, trabalhe com
aquela que representar maior ganho na funo objetivo
21

22

Exerccio 1
PI puro

Exerccio 2
PI misto

Min z = 4x1 + 5x2

Max z = 2x1 + x2

s.a:

s.a:
x1 + 4x2 5

5x1 + 2x2 8

3x1 + 2x2 7

x1 + x2 3

x1, x2 0 e inteiros

x1, x2 0; x1 inteiro

23

24

Branch-and-Bound em problemas de
sequenciamento de trabalhos em
mquinas

Apresentao do problema

Suponha 4 trabalhos a serem processados


numa mesma mquina.

Atraso do trabalho medido pelo nmero de


dias aps a data de entrega em que o trabalho

Tempo necessrio p/ processamento de cada


trabalho e datas de entrega:

completado:
Trabalhos finalizados na data de entrega ou antes
tm atraso zero

Determine a ordem de processamento dos


trabalhos que minimize o atraso total
25

26

Aplicar mesmo racioccio p/


demais trabalhos na posio 4

Variveis de deciso

Resultados na rvore de soluo a seguir:

Considere o ltimo trabalho a ser processado:


Qualquer que seja a sequncia, ela ter x14 = 1, x24 = 1, x34 = 1
ou x44 = 1. Assim, cria-se uma rvore com quatro nodos e
calcula-se o limite inferior no atraso total associado a cada nodo
Clculo do atraso para o quarto trabalho : x44 = 1, ou seja, o
trabalho 4 seria completado com atraso total de 23 - 16 dias. Os
23 dias foram obtidos somando (6 + 4 + 5 + 8)
27

Limite inferior no atraso total D 7:


ou seja, posicionando-se o trabalho 4 na quarta posio, obtemse o menor atraso total

28

Escolhe-se nodo c/ menor atraso


D (nodo 4) p/ continuar o mtodo

Continuando a desdobrar
pelo mesmo ramo
Escolhe-se nodo 7 (menor valor de D) para
desdobrar

Qualquer sequncia associada ao nodo 4 deve


ter x13 = 1, x23 = 1 ou x33 = 1

Qualquer sequncia associada a este nodo


deve ter x12 = 1 ou x22 = 1. Os atrasos totais
so:

Clculo do limite inferior LI de atraso similar


quele visto anteriormente:
x33 = 1, ou seja, trabalho 3 seria completado com
atraso total de 15 - 12 dias. Os 15 dias foram obtidos
somando (6 + 4 + 5). O atraso total ser de pelo
menos 3 + 7 dias (D 10)

Nodo 9: sequncia 1-2-3-4. Atraso total: 7(tr.4) +


3(tr.3) + (6+4-4)(tr.2) + 0(tr.1) = 16 dias
Nodo 8: sequncia 2-1-3-4. Atraso total: 7(tr.4) +
3(tr.3) + (4+6-8)(tr.1) + 0(tr.2) = 12 dias

29

Qualquer soluo com D > 12


pode desconsiderada

30

rvore parcial de resultados

Com isto, termina-se os nodos 1, 2, 5, 6, e


9.
Arvore de resultados parciais dada na
sequncia

31

32

Desdobra-se o nodo 3

Arvore final de resultados

Qualquer sequncia deve ter x13 = 1, x23 = 1 ou x43 = 1.


Clculo do limite inferior de atraso :
x13 = trabalho 1 completo no final do dia (8+4+6) = 18 - 8 = 10 +
11 = 21
x23 = trabalho 2 completo no final do dia (8+4+6) = 18 - 4 = 14 +
11 = 25
x43 = trabalho 4 completo no final do dia (8+4+6) = 18 - 16 = 2 +
11 = 13

Sequncia tima 2 - 1 - 3 - 4. Atraso total de 12 dias


33

34

Você também pode gostar