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.

1
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 2

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.

2
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 3

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 pr-
estabelecido 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).

3
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 4

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.

4
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 5

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.

5
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 6

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:

Modelo
A B C
Mo-de-obra (horas por unidade) 7 3 6
Materiais (g / unidade produzida) 4 4 5
Lucro ($ / unidade) 4 2 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:

6
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 7

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. Sabe-
se 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.

7
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 8

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.

8
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 9

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

9
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 produ-


zidos por semana (devido a limitaes na demanda):

x1 40

Prof. Fogliatto 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 0 irrestrita

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


matemtica do problema da Politoy:

max z = 3x1 + 2x2


Sujeito a:
2x1 + x2 100 Restrio de horas de acabamento
x1 + x2 80 Restrio de horas de carpintaria
x1 40
x1, x2 0 Restrio de demanda

Prof. Fogliatto 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 = 8
3x1 + 4x2 + x3 + x5 = 7

x1 0, , x5 0

Em notao matricial, tem-se:

1 2 2 1 0 8
A = b =
( 25 )
3 4 1 0 1 ( 21)
7

x1
x
2 c = (5 2 3 1 1)
x = x3 (15 )
( 51)

x4
x5

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:
x1 + x2 + x4 x5 + f1 = 7
x1 x2 + x4 x5 e2 = 2
3x1 + x2 + 2x4 2x5 = 5
x1 0, x2 0, x4 0, x5 0, f1 0, e2 0

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

2
2x1 + 3x2 6

x1
(0,0) 2 3 4

2x1 + 3x2 6 2x1 + 3x2 = 6

Prof. Fogliatto 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) - (4) denotam as restries.
(2) Ponto timo: (20,60)
80 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.
40 Essas so as linhas de isocusto.
(3) Calcule o valor de z no ponto timo.

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


(3)

x1
20 40 60 80 100
Prof. Fogliatto Pesquisa Operacional 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:
10 Testar pontos (4,1), (3,2),
(4,2), checando restries e z.
Usar programao inteira.
8

6
Ponto timo: (3.6, 1.4)

z
2 4 6 8 10 x1

Prof. Fogliatto Pesquisa Operacional 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 no-


negativos. 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.

Vendas esperadas (unidd/trimestre)


Produto Designao 1 2 3 4
Lava-louas Et 2000 1300 3000 1000
Lava-roupas Mt 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 27

Custos unitrios por trimestre


Soluo grfica do problema:
Tipo de custo Designao 1 2 3 4
Lava-louas (matrias-primas) ct 125 130 125 126
Lava-roupas (matrias-primas) vt 90 100 95 95
Estocagem lava-louas jt 5 4,5 4,5 4
Estocagem lava-roupas kt 4,3 3,8 3,8 3,3
Hora de trabalho pt 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 fora-
de-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
Cobre 2 1 16
Zinco 1 2 11
Chumbo 1 3 15
Preo de Venda $30 $50

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) e h1 1,1(5000)
o que resulta em
h1 4500 e h1 5500
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 e 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 Calorias Chocolate Aucar Gordura Preo
(poro) (g) (g) (g) (poro)

Biscoito 400 3 2 2 0.5


Sorvete 200 2 2 4 0.2
Refrig. 150 0 4 1 0.3
Torta 500 0 4 5 0.8
queijo

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 n
Minimizar c x
i =1 j =1
ij ij

sujeito a:

x
j =1
ij Si , para i = 1,, m (capacidade)

m
, para j = 1,, n (demanda)
x
i =1
ij Dj

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 fun-


cionrios, de acordo com o dia da semana:

Dia Empr. Dia Empr. Dia Empr. Dia Empr.


Seg. 17 Quarta 15 Sexta 14 Dom. 11
Tera 13 Quinta 19 Sb. 16

Por exigncia sindical, cada trabalhador trabalha cinco dias con-


secutivos e descansa dois.

Formule o problema tal que o nmero de empregados contratados


seja o mnimo necessrio para atender s necessidades de mo-de-
obra.

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 17 Qual o problema
x2 13 com essa
x3 15 formulao?
x4 19
x5 14
x6 16
x7 11
xi 0
Prof. Fogliatto Pesquisa Operacional 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 bi-
dimensional 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 = 4
x2 + f2 = 1
x1 , 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 equacion-


las 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 + x4 + x5 + x6 + x7 17
x1 + x2 + x5 + x6 + x7 13
x1 + x2 + x3 + x6 + x7 15
x1 + x2 + x3 + x4 + x7 19
x1 + x2 + x3 + x4 + x5 14
x2 + x3 + x4 + x5 + x6 16
x3 + x4 + x5 + x6 + x7 11
xi 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 x1 x2 f1 f 2
c = [1, 3, 0, 0]
t
x t = [x1 , x2 , f1 , f 2 ]
1 2 1 0
A=
0 1 0 1 f1 0
b=
f 2 0
a1 a2 a3 a4

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) = -10,000 + (24,000/1+0.2) - [14,000/(1+0.2)2]


= $277.78
VLP (Inv. 2) = -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 B NB
A = [ f1 f 2 x1 x2 ] c = [ f1 ,
t
f2 x1 , x2 ]

f B NB
b = 1
f2 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:
Inv. 1 Inv. 2 Inv. 3 Inv. 4 Inv. 5
Gasto t =0 $11 $53 $5 $5 $29
Gasto t =1 $3 $6 $5 $1 $34
VLP $13 $16 $16 $14 $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 Pesquisa Operacional 41

ct = [c B c N ] A = [B N ] b t = [b1 , b2 , K , bn ] 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
B

N
x

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 Pesquisa Operacional 43

N = [a1 a2 L aP ]

x tN = [x1 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 no-
bsicas, 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 =
t
x2 =
1 2 7 x 1x1 + 2 x2 + 7 x3
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
j j = a1 x1 + a 2 x2 + a 3 x3 =

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

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
j 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 Disponi-


Venda 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 B
jR
1
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
j 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.

Oleo 1 Oleo 2 Oleo 3 Gas 1 Gas 2 Gas 3


Ocatanagem 12 6 8 10 8 6
Enxofre (%) 0.5 2.0 3.0 1.0 2.0 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 no-


bsicas, 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. x11 +x21 + x31 = bar.gas.1 prod./dia.
x12 +x22 + x32 = bar.gas.2 prod./dia.
x13 +x23 + x33 = bar.gas.3 prod./dia.

Prof. Fogliatto 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
j j

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 cjR
t
B B 1a j x j + c x
jR
j j

pode ser reescrita como:

z = z0 c
jR
t
B B 1a j x j + c x
jR
j j

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
j 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
N barris na mistura x11 + x 21 + x 31
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 = 4
x2 + f2 = 1
x1 , 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 Pesquisa Operacional 53

1 0 1 0
B= B 1 =
0 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 ]
4
b=
c t = [c B c N ] = [0, 0 1, 3] 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 Trim. 2 Trim. 3 Trim. 4


Demanda 40 60 75 25

Prof. Fogliatto 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
1
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:

b
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:

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 2 2
f = 1 1 = 1
2
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 ] = ctB = [0, 3] N = [x1 , f 2 ]
0 1

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

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 i2 = i1 + x2 + y2 - 60
i3 = i2 + x3 + y3 - 75 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:
0 1 2 3
A -1 0.5 1 0
B 0 -1 0.5 1
C -1 1.2 0 0
D -1 0 0 1.9
E 0 0 -1 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 =
1x = 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, identifica-
se 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 ] = c tB = [1, 3] N = [ f1 , f 2 ]
0 1

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

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 zj cj c tB B 1b

xB y j = B 1a j B 1b

O algoritmo simplexFigura 3.3regra,


, via de - Tableau do simplex.
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 = 4
x2 + f2 = 1
x1 , 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 x2 f1 f2 RHS
z -1 -3 0 0 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 x2 f1 f2 RHS
z -1 -3 0 0 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 = 4
x2 + f2 = 1
x1 , x2 0

x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0
f2 0 1 0 1

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:

no lado direito do tableau. Mais uma = B quando


b vez, 1
b 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 = 4
x2 + f2 = 1
x1 , x2 0

x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0 4
f2 0 1 0 1 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 no-
negativo.
Prof. Fogliatto Pesquisa Operacional 67

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

b
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 o Na opo WB! do
escritos os zeros. menu, selecione
adjustable.
Prof. Fogliatto Pesquisa Operacional 68

x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0 4
f2 0 1 0 1 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

x1 x2 f1 f2 RHS
z -1 -3 0 0 0
xk f1 1 2 1 0 4 4/2 = 2
f2 0 1 0 1 1 1/1 = 1

elemento de pivot 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 q Caso as variveis sejam irrestritas


selecionadas como ajustveis. 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 WBFree identifica
variveis irrestritas

Prof. Fogliatto 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.

x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0 4
f2 0 1 0 1 1

Os dois valores coincidem, logo


nenhuma operao necessria.
Identificao
das linhas do

x1 x2 f1 f2 RHS
tableau

(0) z -1 -3 0 0 0
(1) f1 1 2 1 0 4
(2) f2 0 1 0 1 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.

Clulas passam a ser


o Clique no cone .
apresentadas em azul.

Prof. Fogliatto Pesquisa Operacional 70

Explicitando a operao:

x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 2 1 0 4 (1)' = (1) - 2 x (2)
f2 0 1 0 1 1

x1 x2 f1 f2 RHS
z -1 -3 0 0 0
f1 1 0 1 -2 2
x2 0 1 0 1 1

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

x1 x2 f1 f2 RHS
(0) z -1 -3 0 0 0
(1) f1 1 0 1 -2 2
(2) x2 0 1 0 1 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:

x1 x2 f1 f2 RHS
z -1 -3 0 0 0 (0)' = (0) + 3 x (2)
f1 1 0 1 -2 2
x2 0 1 0 1 1

x1 x2 f1 f2 RHS
z -1 0 0 3 3
f1 1 0 1 -2 2
x2 0 1 0 1 1

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

x1 x2 f1 f2 RHS
xk z -1 0 0 3 3
f1 1 0 1 -2 2 2/1 = 2
x2 0 1 0 1 1
mnima razo
elemento de pivot

x1 x2 f1 f2 RHS
z -1 0 0 3 3
f1 1 0 1 -2 2 Nenhuma operao necessria
x2 0 1 0 1 1

x1 x2 f1 f2 RHS
z -1 0 0 3 3
f1 1 0 1 -2 2
x2 0 1 0 1 1 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:

x1 x2 f1 f2 RHS
z -1 0 0 3 3 (0)' = (0) + (1)
f1 1 0 1 -2 2
x2 0 1 0 1 1

x1 x2 f1 f2 RHS
z 0 0 1 1 5
f1 1 0 1 -2 2
x2 0 1 0 1 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 p Confirme clicando OK.


OK
selecionadas como ajustveis.

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:

x1 x2 f1 f2 RHS
z 0 0 -2 0 -8
x1 1 0 1/3 -2/3 2/3
x2 0 1 1/3 1/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:

x1 x2 f1 f2 RHS
z 4 0 0 -3 -9
f1 -1 0 1 2 10
x2 -1 1 0 1 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.

Clulas c/ as frmulas
Prof. Fogliatto Pesquisa Operacional das restries. 78

Considere o seguinte exemplo:


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

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


Min z = x1 - 2x2
s.a: x1 + x2 - e1 = 1
x2 + f1 = 4
x1, x2, e1, f1 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 79

Min z = x1 - 2x2 + Ma1


s.a: x1 + x2 - e1 + a1 = 1
x2 + f1 = 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
n Selecione a menu, selecione
clula onde ser constraints.
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 x2 e1 f1 a1 RHS
z -1 2 0 0 -M 0
a1 1 1 -1 0 1 1
f1 0 1 0 1 0 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.

x1 x2 e1 f1 a1 RHS
(0) z -1 2 0 0 -M 0 (0)' = (0) + M x (1)
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4

x1 x2 e1 f1 a1 RHS
(0) z -1 + M 2+M -M 0 0 M
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4

80
Confirme clicando OK.
OK

n Identificao da clula p Identificao da clula que deve


que deve conter a frmula da conter o lado direito da restrio.
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
mnima razo
x1 x2 e1 f1 a1 RHS
xk z -1 + M 2+M -M 0 0 M
a1 1 1 -1 0 1 1 1/1=1
f1 0 1 0 1 0 4 4/1=4

elemento de pivot

x1 x2 e1 f1 a1 RHS
(0) z -1 + M 2+M -M 0 0 M
(1) a1 1 1 -1 0 1 1 Nenhuma operao
(2) f1 0 1 0 1 0 4

81
Identificao do tipo da
restrio e clulas
consideradas.

Identificao do tipo da restrio.

Repita o procedimento para as demais restries.


Prof. Fogliatto Pesquisa Operacional 82

x1 x2 e1 f1 a1 RHS
(0) z -1 + M 2+M -M 0 0 M (0)' = (0) + (-M-2) x (1)
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4

x1 x2 e1 f1 a1 RHS
(0) z -3 0 2 0 -M-2 -2
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4

x1 x2 e1 f1 a1 RHS
(0) z -3 0 2 0 -M-2 -2
(1) a1 1 1 -1 0 1 1
(2) f1 0 1 0 1 0 4 (2)' = (2) - (1)

x1 x2 e1 f1 a1 RHS
(0) z -3 0 2 0 -M-2 -2
(1) a1 1 1 -1 0 1 1
(2) f1 -1 0 1 1 -1 3

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

x1 x2 e1 f1 RHS
(0) z -3 0 2 0 -2
(1) a1 1 1 -1 0 1
(2) f1 -1 0 1 1 3

xk
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:

x1 x2 e1 f1 RHS
(0) z -3 0 2 0 -2 (0)' = (0) - 2 x (2)
(1) a1 1 1 -1 0 1 (1)' = (1) + (2)
(2) f1 -1 0 1 1 3 Nenhuma operao

x1 x2 e1 f1 RHS
(0) z -1 0 0 -2 -8
(1) a1 0 1 0 1 4
(2) f1 -1 0 1 1 3

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 o Na opo WB! do
escritos os zeros. 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 L a1n
a a L a2n
O nmero na isima linha e jsima
A = 21 22 coluna da matriz denominado
M M O M aij.
a L amn
m1 am2

Prof. Fogliatto 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

Transposto de uma Matriz: a11 a12 L a1n


a a22 L a2 n
Seja uma matriz qualquer de ordem (m x n) : A = 21
M M O M
a L amn
m1 am 2

O transposto de A, designado por A,


a11 a21 L am1
ser uma matriz de ordem (n x m):
a a22 L am 2
A = 12
M M O M
L amn
a1n a2 n

Prof. Fogliatto Pesquisa Operacional 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 L a1n x1 b1


a a22 L a2 n x b
A = 21 x = 2 b= 2
M M O M M M
a x b
m1 a m2 L a mn n m

(m x n) (n x 1) (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.

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

0
0 0 L 1

Prof. Fogliatto 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

2 5 1 0 (1) = 1
2 (1)
1 3 0 1
1 5 1 0
2 2
1 3 0 1 ( 2) = ( 2) (1)
1 5 1 0
2 2
0 1
2
1
2 1 (2) = (2) (2)
1 5
2
1
0 2 (1) = (1) 5 2 ( 2 )
0 1 1 2
1 0 3 5
0 1 1 2

Prof. Fogliatto Pesquisa Operacional 96

96
1 2
EXEMPLO 2: B=
2 4
1 2 1 0
2 4 0 1 ( 2) = 1
2 (2)
1 2 1 0
1 2 0 1
2 ( 2 ) = ( 2 ) (1)
1 2 1 0
0 0 1 1
2

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 2 1 0 4 2 0
A = 4 6 0 B = 1 2 1 C = 0 2 3
2 7 2 0 1 2
1 1 2
Prof. Fogliatto Pesquisa Operacional 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:


Produto Qtidd de
Insumo Escrivaninha Mesa Cadeira Insumo
Tbua 8 6 1 48
Acabamto 4 2 1.5 20
Carpintaria 2 1.5 0.5 8
Lucro Venda $60 $30 $20

Prof. Fogliatto 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 + 20x3 Restrio das Tbuas


s.a: 8x1 + 6x2 + x3 48
4x1 + 2x2 + 1.5 x3 20 Restrio de Acabamento
2x1 + 1.5x2 + 0.5 x3 8
x1, x2, x3 0 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 = 48


4x1 + 2x2 + 1.5 x3 + f2 = 20
2x1 + 1.5x2 + 0.5 x3 + f3 = 8
x1, x2, x3, f1, f2, f3 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 = 48


4x1 + 2x2 + 1.5 x3 + f2 = 20
2x1 + 1.5x2 + 0.5 x3 + f3 = 8
x1, x2, x3, f1, f2, f3 0

Prof. Fogliatto 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 x2 1

SP4: Invivel. 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


s.a x1 + x 3 4
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. x2 = 1.
Limite Inferior = 37 Soluo excluda.
Soluo candidata

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 no-
fracionariedade.

117
ALGORITMO SIMPLEX NO TABLEAU
Passo 3 Exemplo (Minimizao)
varivel entrante

Elemento de pivot
Razes:
4/2=2 Menor razo!
8/1=8 Varivel x1 sai da base para que x2 possa entrar
No 2 na coluna do x2 o elemento de pivot!

Prof. Fogliatto 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:

Tempo necessrio (dias) Data da entrega


Trabalho 1 6 Final do dia 8
Trebalho 2 4 Final do dia 4
Trabalho 3 5 Final do dia 12
Trabalho 4 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 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!
Prof. Fogliatto 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 x44 = 1
x24 = 1 x34 = 1

NODO 1: NODO 2: NODO 3: NODO 4:


D 15 D 19 D 11 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 Como o problema de minimizao e no h mais valores negativos
demais nos da coluna da varivel entrante em zero na linha z do tableau abaixo das variveis, esta a base tima do
Prof. Fogliatto Pesquisa Operacional 123 Prof. Fogliatto problema!
Pesquisa Operacional 124

ALGORITMO SIMPLEX NO TABLEAU ALGORITMO SIMPLEX NO TABLEAU


Passo 5 Alguns comentrios

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 As colunas das variveis bsicas no tableau


apresentar valores negativos de funo abaixo da linha z devem sempre
objetivo (depende da funo) e vice-versa 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


Situaes especiais: alternativas

Min z = -2x1 - 4x2 6


1. Solues timas alternativas; s.a: x1 + 2x2 4
-x1 + x2 1
2. Soluo infinita (tendendo ao infinito). x1, x2 0 4

3. Base inicial no disponvel (problema c/ B3


variveis de excesso ou restries do tipo =). Reta de solues timas
2
alternativas
B2

B1 2 4 6
z
Prof. Fogliatto Pesquisa Operacional 129 Prof. Fogliatto Pesquisa Operacional 130
Tableau Exemplo c/ soluo tendendo ao
infinito

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

z B1 2 4 6

Prof. Fogliatto Pesquisa Operacional 131 Prof. Fogliatto Pesquisa Operacional 132

Tableau Ex. c/ base inicial no disponvel


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

Adicionando excesso e folga B3 (Base tima)

Min z = x1 - 2x2 4
s.a: x1 + x2 - e1 = 1
x2 + f1 = 4
x1, x2, e1, f1 0 2
B2
Adicionando artificial
Min z = x1 - 2x2 + Ma1 B1
2 4 6
s.a: x1 + x2 - e1 + a1 = 1
x2 + f1 = 4 z
x1, x2, e1, f1, a1 0
Prof. Fogliatto Pesquisa Operacional 133 Prof. Fogliatto Pesquisa Operacional 134
Tableau Prtica 6A
Soluo tima nica

Max z = 60x1 + 30x2 + 20x3


s.a: 8x1 + 6x2 + x3 48
4x1 + 2x2 + 1.5 x3 20
2x1 + 1.5x2 + 0.5 x3 8
x1, x2, x3 0

Prof. Fogliatto Pesquisa Operacional 135 Prof. Fogliatto Pesquisa Operacional 136

Prtica 6B Prtica 6C
Soluo Solues timas alternativas

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


s.a: x1 + x2 - x3 5 s.a
6x1 + 5x2 - x4 10 5x1 + 7x2 35
x1, x2, x3, x4 0 -x1 + 2x2 2
x 1 , x2 0

Prof. Fogliatto Pesquisa Operacional 137 Prof. Fogliatto Pesquisa Operacional 138
Prtica 6D Prtica 6E
Base Inicial no-disponvel Base Inicial no-disponvel

Max z = -x1 - 2x2 Min z = -x1 - x2


s.a s.a
3x1 + 4x2 12 x1 - x2 1
2x1 - x2 2 -x1 + x2 1
x1 , x 2 0 x1 , 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 Pesquisa Operacional 140

Prticas Adicionais O PROBLEMA DUAL

c Max z = 2x1 + x2 - x3 Todo o problema de programao linear possui um problema


s.a x 1 + x2 + 2 x 3 6 dual correspondente.
x1 + 4x2 - x3 4 Chamaremos o problema original de primal e o problema
x1, x2, x3 0 dual de dual.

d Min z = 3x1 - 3x2 + x3 Primal Dual


s.a x1 + 2x2 - x3 5
-3x1 - x2 + x3 4 Max Min
x1, x2, x3 0 Min Max
e Max z = 2x1 - x2
s.a x1 + x2 3 Variveis do problema primal z, x1, x2,,xn.
-x1 + x2 1 Variveis do problema dual w, y1, y2,,ym.
x1, x2, 0

Prof. Fogliatto Pesquisa Operacional 141 Prof. Fogliatto Pesquisa Operacional 142
Escrevendo o dual de um problema de progr. linear EXEMPLO

P
Max z = c1x1 + c2x2 + + cnxn Max z = 60x1 + 30x2 + 20x3
r
s.a: a11x1 + a12x2 + + a1nxn b1 s.a: 8x1 + 6x2 + 1x3 48
i
a21x1 + a22x2 + + a2nxn b2 4x1 + 2x2 + 1.5x3 20
m
M M M M
2x1 + 1.5x2 + 0.5x3 8
a
am1x1 + am2x2 + + amnxn bm x1, x2, x3 0
l

Min w = b1y1 + b2y2 + + bmym Min w = 48y1 + 20y2 + 8y3


D
s.a: a11y1 + a21y2 + + am1ym c1 s.a: 8y1 + 4y2 + 2y3 60
u
a12y1 + a22x2 + + am2ym c2 6y1 + 2y2 + 1.5y3 30
a
M M M M 1y1 + 1.5y2 + 0.5y3 20
l
a1ny1 + a2ny2 + + amnym cn y1, y2, y3 0

Prof. Fogliatto Pesquisa Operacional 143 Prof. Fogliatto Pesquisa Operacional 144

A isima restrio do dual corresponde isima varivel OUTRO EXEMPLO


do primal
P
Max z = 2x1 + x2
Usando a tabela abaixo, pode-se achar o dual de qualquer primal: r
s.a: 2x1 + x2 = 2
i
2x1 - x2 3
m
Min Max x1 - x2 1
a
x1 0, x2 irrestr. l
0
Variveis 0 Restries
Irrestr. = Min w = 2y1 + 3y2 + 1y3 D
s.a: 2y1 + 2y2 + y3 2 u
y1 - y2 - y3 = 1
0 a
y1 irrestr., y2 0, y3 0 l
Restries 0 Variveis
= Irrestr.

Prof. Fogliatto Pesquisa Operacional 145 Prof. Fogliatto Pesquisa Operacional 146
INTERPRETAO ECONMICA DO O DUAL DESTE PROBLEMA :
PROBLEMA DUAL
Min w = 48y1 + 20y2 + 8y3
O exemplo visto anteriormente: Escrivaninha
s.a: 8y1 + 4y2 + 2y3 60
6y1 + 2y2 + 1.5y3 30 Mesa
Max z = 60x1 + 30x2 + 20x3
1y1 + 1.5y2 + 0.5y3 20
s.a: 8x1 + 6x2 + 1x3 48 Cadeira
y1, y2, y3 0
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1, x2, x3 0
Restries associadas com escrivaninhas, mesas e cadeiras, respectiv.
Corresponde modelagem matemtica do seguinte problema: y1 associado com tbuas; y2 com acabamto; y3 com carpintaria.
Produto Qtidd de
Insumo Escrivaninha Mesa Cadeira Insumo Suponha uma situao onde exista escassez de insumos. Um outro
Tbua 8 6 1 48 fabricante de mveis deseja comprar os insumos disponveis na fbrica de
Acabamto 4 2 1.5 20 escrivaninhas, mesas e cadeiras.
Carpintaria 2 1.5 0.5 8
Lucro Venda $60 $30 $20 A pergunta-chave : qual o gio mximo a ser cobrado pelos insumos?

Prof. Fogliatto Pesquisa Operacional 147 Prof. Fogliatto Pesquisa Operacional 148

Definindo as variveis do problema dual O comprador deseja o menor preo, mas o preo deve
ser atraente o suficiente para induzir o fabricante de
y1 = gio mximo cobrado por uma tbua de madeira; escrivaninhas a vender seus insumos
y2 = gio mximo cobrado por 1 hora de acabamento;
y3 = gio mximo cobrado por 1 hora de carpintaria Assim:
Restrio das
8y1 + 4y2 + 2y3 60 escrivaninhas
O gio total a ser cobrado por estes insumos corresponder
funo objetivo:
Ou seja, se comprarmos todos os insumos nas quantidades necessrias
Min w = 48y1 + 20y2 + 8y3 para produzir uma escrivaninha, o gio a ser pago deve ser, no
mnimo, o que o fabricante lucraria com a venda daquele produto.

Note que a funo objetivo busca minimizar o custo de compra: O mesmo ocorre com as outros produtos: Restr. das mesas
este o ponto de vista do comprador.
6y1 + 2y2 + 1.5y3 30
Restr. das cadeiras
1y1 + 1.5y2 + 0.5y3 20
Prof. Fogliatto Pesquisa Operacional 149 Prof. Fogliatto Pesquisa Operacional 150
Para determinarmos o menor gio de compra dos
insumos que mantenha a venda desses insumos Exerccio
interessantes para o fabricante, devemos resolver o
problema dual
Determine o dual do seguinte problema de
programao linear:
As variveis y1, y2, y3 so normalmente denominadas preos-
sombra dos insumos.

Max z = x1 + 2x2
Por definio, o preo-sombra da isima
restrio corresponde
melhoria no valor z da funo objetivo ocasionada pelo s.t.: 3x1 + x2 6
incremento de uma unidade no lado direito da restrio [ou
seja, de bi para (bi + 1)].
2x1 + x2 = 5
x1, x2 0
Prof. Fogliatto Pesquisa Operacional 151 Prof. Fogliatto Pesquisa Operacional 152

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


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

Para resolver o problema abaixo:


x1 x2 x3 f1 e2 a2 a3 RHS
51 58 58 9 565
Max z = 3x1 + 2x2 + 5x3 z 0 0 0 /23 /23 M- /23 M+ /23 /23
s.a: 1x1 + 3x2 + 2x3 15 Adicionar var. folga f1 4 5 -5 -2 15
x3 0 0 1 /23 /23 /23 /23 /23
2x2 - x3 5 Adicionar var. excesso e2 e art. a2
2x1 + x2 - 5x3 = 10 Adicionar var. artificial a3 x2 0 1 0 2
/23 -9
/23 9
/23 -1
/23 65
/23
x1, x2, x3 0 9 17 -17 7 120
x1 1 0 0 /23 /23 /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 No tableau timo do exemplo anterior:
linha 0 (ou z) do tableau timo do primal (Max)
y1 -y2 y3-M

Valor timo da var. dual yi Coeficiente de fi na linha z x1 x2 x3 f1 e2 a2 a3 RHS


qdo restrio i do tipo 0 do tableau timo 51 58
z 1 0 0 0 /23 /23 M-58/23 M+9/23 565
/23
4 5 -5 -2 15
x3 0 0 0 1 /23 /23 /23 /23 /23
Valor timo da var. dual yi -(Coeficiente de ei) na x2 0 0 1 0 2
/23 -9
/23 9
/23 -1
/23 65
/23
qdo restrio i do tipo linha 0 do tableau timo
9 17 -17 7 120
x1 0 1 0 0 /23 /23 /23 /23 /23

Valor timo da var. dual yi (Coeficiente de ai na linha Ou seja, o problema dual possui a seguinte soluo tima:
qdo restrio i do tipo = 0 do tableau timo) - M
y1 = 51/ ; y2 = -58/23; y3 = 9/23
23

Prof. Fogliatto Pesquisa Operacional 155 Prof. Fogliatto Pesquisa Operacional 156

Conferindo o resultado na funo Regras para identificao da soluo tima dual na


linha 0 (ou z) do tableau timo do primal (Min)
objetivo do problema dual
Valor timo da var. dual yi Coeficiente de fi na linha
Min w = 15y1 + 5y2 + 10y3 qdo restrio i do tipo 0 do tableau timo

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


23
Valor timo da var. dual yi -(Coeficiente de ei) na
qdo restrio i do tipo linha 0 do tableau timo

w = 565/23
Valor timo da var. dual yi (Coeficiente de ai na linha
qdo restrio i do tipo = 0 do tableau timo) + M

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


Graduao em Engenharia de remetido.
Produo O ponto de demanda j deve receber pelo menos dj unidades do insumo.

DEPROT / UFRGS
Prof. Flavio Fogliatto, Ph.D.
Prof. Fogliatto PO - Graduao 2

Descrio Geral de um problema de


Formulao do Problema
transporte
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


A formulao genrica do problema do transporte ser:
ponto de demanda j incorre num custo de cij.
m n
Min cij xij
i =1 j =1
n Restries de fornecimento
s.t. xij si (i = 1,..., m)
j =1
m
xij d j ( j = 1,..., n) Restries de demanda
i =1
xij 0
Prof. Fogliatto PO - Graduao 3 Prof. Fogliatto PO - Graduao 4
Como balancear um problema de transporte
Problema Balanceado quando a capacidade de fornecimento excede
a demanda
Um problema de transporte considerado balanceado se:
Cria-se um ponto fictcio de demanda. A demanda nesse ponto ser igual
ao excedente da capacidade.
m n
si = d j
i =1 j =1 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 5 Prof. Fogliatto PO - Graduao 6

O Tableau de Transporte Exemplo


Fornecimento Dois reservatrios de gua abastecem trs cidades. Cada reservatrio pode
c11 c12 c1n abastecer at 50 milhes de litros de gua por dia. Cada cidade necessita
L s1 receber 40 milhes de litros de gua por dia.

c21 c22 c2n


L s2 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
M M O M M cidade 3 de $23.

cm1 cm2 cmn Cid.1 Cid.2 Cid.3


L sm Os custos do transporte entre
reservatrios e cidades vem Reserv. 1 $7 $8 $8
m n dado ao lado...
Demanda d1 d2 L dn
si = d j Reserv. 2 $9 $7 $8
i =1 j =1
Prof. Fogliatto PO - Graduao 7 Prof. Fogliatto PO - Graduao 8
Tableau do Simplex Prtica:
Cid. 1 Cid. 2 Cid. 3 Capacidade

7 8 8
Res. 1 50 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
9 7 8 abaixo. Semanalmente, 100 toneladas de cada tipo de ao devem ser produzidas. Cada planta
Res. 2 50 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.
20 18 23
Res. Artif.
20 Custo
Ao 1 Ao 2 Ao 3 Tempo (min)
Demanda 40 40 40 Planta 1 $60 $40 $28 20
Planta 2 $50 $30 $30 16
Planta 3 $43 $20 $20 15

Prof. Fogliatto PO - Graduao 9 Prof. Fogliatto PO - Graduao 10

Mtodo do Extremo Noroeste para Mtodo do Extremo Noroeste para


Determinao da Soluo Vivel Inicial de um Determinao da Soluo Vivel Inicial de um
problema de Transporte problema de Transporte
Inicie o mtodo considerando a clula (1,1) do tableau. Faa com que Se x11 = s1 = d1, desconsidere as demais clulas na primeira linha ou
x11 seja o maior valor possvel. na primeira coluna do tableau (mas no ambas). Se voc escolher descon-
Obviamente, x11 = Min (d1, s1). siderar a linha 1, mude d1 para 0. Se voc escolher desconsiderar a
coluna 1, mude s1 para 0.

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


Repita o procedimento, sempre escolhendo a clula posicionada no
j que nenhuma outra varivel bsica vir desta linha. Atualize o valor
extremo noroeste do tableau (desde que ela no esteja em uma linha
de d1 para d1 - s1.
ou coluna eliminada anteriormente).

Se x11 = d1, desconsidere as demais clulas na primeira coluna do tableau, Ao cabo de (m + n - 1) iteraes chega-se a uma base vivel inicial
j que nenhuma outra varivel bsica vir desta coluna. Atualize o valor para o problema.
de s1 para s1 - d1.
Prof. Fogliatto PO - Graduao 11 Prof. Fogliatto PO - Graduao 12
Exemplo Exemplo
O mtodo do extremo noroeste no utiliza os custos, omitidos nos tableaus
abaixo:

5 5 0 5 0

10 7 10 3

15 15

12 8 4 6 7 8 4 6
7 0
x11 = Min {12, 5} = 5 x21 = Min {10, 7} = 7

Prof. Fogliatto PO - Graduao 13 Prof. Fogliatto PO - Graduao 14

Exemplo Exemplo

5 0 5 0

7 3 3 0 7 3 0

15 5 15 10

0 8 4 6 0 5 4 6
5 0
x22 = Min {8, 3} = 3 x32 = Min {15, 5} = 5

Prof. Fogliatto PO - Graduao 15 Prof. Fogliatto PO - Graduao 16


Exemplo Exemplo

5 0 5 0

Base
7 3 0 Inicial 7 3 0
Vivel

5 4 10 6 5 4 6 6 0

0 0 4 6 0 0 4 6
0 0
x33 = Min {10, 4} = 4 x34 = Min {6, 6} = 6

Prof. Fogliatto PO - Graduao 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: O clculo desses valores envolve determinar um menor circuito ou loop
Determine uma base inicial contendo algumas variveis bsicas e a varivel no-bsica em questo.

para o problema anterior. Existe um loop nico possvel para cada varivel no-bsica.

Prof. Fogliatto PO - Graduao 19 Prof. Fogliatto PO - Graduao 20


Determine a varivel no-bsica a entrar
Exemplo na base
Iniciando com x14:
Capacidd Calcule os valores correspondentes
1. Determine um loop
2 3 4 9
linha z para cada varivel no-bsica: de var. bsicas que
10 10 20 contenha a var. no-
2 3 4 9 bsica.
14 12 5 1 10 10
10 30 + -17 2. Alterne sinais pos.
0 20
14 12 5 1 e neg. nas var. bs.
12 15 9 3 0 20 10 extremas.
40 - +
40
12 15 9 3 3. Some os cij de
Demanda 10 10 20 50 40 acordo com os sinais.
4. Subtraia o coef. de
custo da var. no-bs.
Base inicial determinada pelo mtodo do extremo noroeste. em questo do resultado
(+1-12+3) = -8 (-8) - 9 = -17

Prof. Fogliatto PO - Graduao 21 Prof. Fogliatto PO - Graduao 22

Repetindo o clculo p/ as demais var.


Clculo para x13
no-bsicas
2 3 4 9 2 3 4 9
10 10 10 10
+ -8 -17 -8 -17
14 12 5 1 14 12 5 1
0 20 10 0 20 10
- + -3
12 15 9 3 12 15 9 3
40 40
+1 -1 -2

(+5-12+3) = -4 (-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, A primeira clula bsica do loop recebe um
determine um loop contendo a var. entrante e sinal positivo, a segunda um sinal negativo, e
algumas variveis bsicas assim por diante...
Dentre as clulas
positivas, selecione
aquela de menor
2 3 4 9 valor: esta a var.
10 10 + 2 - 3 4 9
-8 -17 que sair da base.
10 10
-8 -17
14 12 5 1
0 20 10 14 + 12 5 1
-3 0 20 10
-3 -
12 15 9 3
40 A varivel entrante 12 15 9 3
+1 -1 -2 40
assumir o valor +1 -1 -2 +
da varivel que sai
da base.

Prof. Fogliatto PO - Graduao 25 Prof. Fogliatto PO - Graduao 26

Atualize o valor das demais clulas do loop: clulas


com sinal + tm seu valor decrescido em ; clulas Novo tableau
com sinal -, tm seu valor acrescido de . A varivel
entrante entra na base com valor . Nenhuma var. no-bs. com zij - cij > 0 tableau timo!

+ 2 - 3 4 9 2 3 4 9
10 10 10 10
-7 -16
14 + 12 5 1 14 12 5 1
20 10 20 10
- -4 -1
12 15 9 3 12 15 9 3
0 40 0 40
+ -2 -2

Prof. Fogliatto PO - Graduao 27 Prof. Fogliatto PO - Graduao 28


O Problema do Transbordo
Prtica:
Ponto de fornecimento - pode remeter insumos para outros pontos
Resolva o problema mas no pode receber.

proposto no Slide 9.
Ponto de demanda - pode receber insumos de outros pontos
Resolva o problema mas no pode remeter.

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

Prof. Fogliatto PO - Graduao 29 Prof. Fogliatto PO - Graduao 30

Exemplo Custos
A BITCO monta PCs em Manaus (150 PCs/dia) e Assuncin do Paraguai De/Para Man Ass Bra Cur SP Rec
(200 PCs/dia) e remete para suas lojas em So Paulo e Recife, Manaus $0 - $8 $13 $25 $28
totalizando 130 PCs por loja. Assuncion - $0 $15 $12 $26 $25
Brasilia - - $0 $6 $16 $17
Curitiba - - $6 $0 $14 $16
Os PCs so remetidos via area. A BITCO suspeita que devido SPaulo - - - - $0 -
promoes e uso de outras empresas areas, seja mais econmico usar Recife - - - - - $0
Braslia e Curitiba como pontos de transbordo.

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
Exemplo um problema balanceado de transportes
Deseja-se minimizar o custo do frete:
PASSO 1 - Balanceie o problema, se necessrio.

Por exemplo:
Manaus Braslia SPaulo

Capacidade > Demanda


Assuncin Curitiba Recife
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 PO - Graduao 34

Passo 2 - Construa o tableau do transporte 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 ; capacidade = (capacidade do ponto original) + s
sua capacidade original de fornecimento.

; 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
No exemplo
Braslia Curitiba SPaulo Recife Artificial Capacidade

Ao interpretar a soluo tima: 8 13 25 28 0


Manaus 150

15 12 26 25 0
; ignore remessas aos pontos artificiais; Assuncion 200

0 6 16 17 0
Braslia 350
; ignore remessas de um ponto para ele mesmo.
6 0 14 16 0
Curitiba 350

Demanda 350 350 130 130 90

Prof. Fogliatto PO - Graduao 37 Prof. Fogliatto PO - Graduao 38

Resultado Prtica
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:
130 130
Manaus Braslia SPaulo
De/Para SP POA Foz Ass Bue
Spaulo $0 $140 $100 $90 $225
Assuncin Curitiba Recife POA $145 $0 $111 $110 $119
Foz $105 $115 $0 $113 $78
Assuncion $89 $109 $121 $0 - Demanda
130 Buenos $210 $117 $82 - $0
1100 2900 2400 1500
Capacidade
Minimize os custos de transporte.
Prof. Fogliatto PO - Graduao 39 Prof. Fogliatto PO - Graduao 40
Exemplo: Aloque trabalhos nas mquinas tal
O Problema da Alocao que tempo de setup seja mnimo
So problemas balanceados de transporte nos quais todas as demandas
e todas as capacidades so iguais a 1. 14 min
Trab. 1 Maq. 1
5 min Tempo (min)
As variveis do problema so booleanas: Tr.1 Tr.2 Tr.3 Tr.4
Trab. 2 Maq. 2 Mq.1 14 5 8 7
8 min Mq.2 2 12 6 5
xij = 1; se o ponto de abastecimento i for utilizado para suprir a demanda Mq.3 7 8 3 9
no ponto de demanda j. Trab. 3 Maq. 3 Mq.4 2 4 6 10
7 min
xij = 0; caso contrrio.
Trab. 4 Maq. 4

Prof. Fogliatto PO - Graduao 41 Prof. Fogliatto PO - Graduao 42

Formulao Para resolver problemas de alocao,


usaremos o Algoritmo Hngaro
Variveis de deciso:
xij = mquina i executando trabalho j; i = 1,...,4 e j = 1,...,4. Passo 1 - determine o elemento de custo mnimo em cada linha do tableau
dos transportes. Construa um novo tableau subtraindo de cada custo o
Funo objetivo: custo mnimo da linha correspondente. Determine ento o custo mnimo
Min z = 14 x11 + 5 x12 + 8 x13 + 7 x14 + 2 x21 + 12 x22 + 6 x23 + 5 x24 + em cada coluna. Construa um novo tableau subtraindo de cada custo o
7 x31 + 8 x32 + 3 x33 + 9 x34 + 2 x41 + 4 x42 + 6 x43 + 10 x44 custo mnimo da coluna correspondente.

Restries de mquina: Restries de trabalho: Passo 2 - determine o no mnimo de linhas (horizontais e/ou verticais)
x11+x12+x13+x14 = 1 x11+x21+x31+x41 = 1 necessrias para cobrir todos os zeros no tableau de custos reduzidos. Se
forem necessrias m linhas, a resposta tima dada pelos zeros cobertos
x21+x22+x23+x24 = 1 x12+x22+x32+x42 = 1 xij = 1 ou 0 por linhas no tableau. Se menos de m linhas forem necessrias, siga para
x31+x32+x33+x34 = 1 x13+x23+x33+x43 = 1 o passo 3.
x41+x42+x43+x44 = 1 x14+x24+x34+x44 = 1
Prof. Fogliatto PO - Graduao 43 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 14 5 8 7 5
de cada elemento no-coberto do tableau e adicione k a cada elemento
coberto por duas linhas no tableau. Volte ao passo 2.
2 12 6 5 2

Nota - somente problemas balanceados podem ser resolvidos pelo 8 3


7 3 9
algoritmo hngaro. Se um problema for no balanceado, adicione pontos
artificiais de demanda ou capacidade.
2 4 6 10 2

Exemplo...

Prof. Fogliatto PO - Graduao 45 Prof. Fogliatto PO - Graduao 46

Novo tableau aps subtrao dos mnimos de Novo tableau aps subtrao dos mn. das
linha colunas

9 0 3 2 9 0 3 0
3 linhas.
0 10 4 3 0 10 4 1 m = 4, logo proce-
demos c/ passo 3.
4 5 0 6 4 5 0 4

0 2 4 8 0 2 4 6 k=1

Mn. da coluna 0 0 0 2
Prof. Fogliatto PO - Graduao 47 Prof. Fogliatto PO - Graduao 48
Subtraindo e somando k nas devidas clulas... Como identificar a soluo tima
Note que o mnimo O nico zero coberto na col. 3
10 0 3 0 das linhas e colunas 0! 10 0 3 0 x33. Logo, x33 = 1, e a col. 3
e linha 3 no podem mais ser
usadas.
0 9 3 0 0 9 3 0
O nico zero coberto na col. 2
5 5 0 4 5 5 0 4 x12. Logo, x12 = 1, e a col. 2
4 linhas. Como m = 4, e linha 1 no podem mais ser
temos uma soluo tima. usadas.
0 1 3 5 0 1 3 5

Sendo assim, x24 = 1, e a


linha 2 no pode mais ser
usada. Logo, x41 = 1.
Prof. Fogliatto PO - Graduao 49 Prof. Fogliatto PO - Graduao 50

O PROBLEMA DUAL
Prtica
Um treinador necessita formar um time de nadadoras para competir em Todo o problema de programao linear possui um problema
uma prova olmpica de 400 metros medley. As nadadoras apresentam dual correspondente.
as seguintes mdias de tempo em cada estilo: Chamaremos o problema original de primal e o problema
dual de dual.
Tempo (s) /100 m
Nadadora Livre Peito Golfinho Costas
1 54 54 51 53 Primal Dual
2 51 57 52 52 Max Min
3 50 53 54 56
4 56 54 55 53 Min Max

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


Qual nadadora deve nadar qual estilo?
Variveis do problema dual w, y1, y2,,ym.

Prof. Fogliatto PO - Graduao 51 Prof. Fogliatto PO - Graduao 52


Escrevendo o dual de um problema de progr. linear EXEMPLO

P
Max z = c1x1 + c2x2 + + cnxn Max z = 60x1 + 30x2 + 20x3
r
s.a: a11x1 + a12x2 + + a1nxn b1 s.a: 8x1 + 6x2 + 1x3 48
i
a21x1 + a22x2 + + a2nxn b2 4x1 + 2x2 + 1.5x3 20
m
M M M M
2x1 + 1.5x2 + 0.5x3 8
a
am1x1 + am2x2 + + amnxn bm x1, x2, x3 0
l

Min w = b1y1 + b2y2 + + bmym Min w = 48y1 + 20y2 + 8y3


D
s.a: a11y1 + a21y2 + + am1ym c1 s.a: 8y1 + 4y2 + 2y3 60
u
a12y1 + a22x2 + + am2ym c2 6y1 + 2y2 + 1.5y3 30
a
M M M M 1y1 + 1.5y2 + 0.5y3 20
l
a1ny1 + a2ny2 + + amnym cn y1, y2, y3 0

Prof. Fogliatto PO - Graduao 53 Prof. Fogliatto PO - Graduao 54

A isima restrio do dual corresponde isima varivel OUTRO EXEMPLO


do primal
P
Max z = 2x1 + x2
Usando a tabela abaixo, pode-se achar o dual de qualquer primal: r
s.a: 2x1 + x2 = 2
i
2x1 - x2 3
m
Min Max x1 - x2 1
a
x1 0, x2 irrestr. l
0
Variveis 0 Restries
Irrestr. = Min w = 2y1 + 3y2 + 1y3 D
s.a: 2y1 + 2y2 + y3 2 u
y1 - y2 - y3 = 1
0 a
y1 irrestr., y2 0, y3 0 l
Restries 0 Variveis
= Irrestr.

Prof. Fogliatto PO - Graduao 55 Prof. Fogliatto PO - Graduao 56


INTERPRETAO ECONMICA DO O DUAL DESTE PROBLEMA :
PROBLEMA DUAL
Min w = 48y1 + 20y2 + 8y3
Considere o exemplo: Escrivaninha
s.a: 8y1 + 4y2 + 2y3 60
6y1 + 2y2 + 1.5y3 30 Mesa
Max z = 60x1 + 30x2 + 20x3
1y1 + 1.5y2 + 0.5y3 20
s.a: 8x1 + 6x2 + 1x3 48 Cadeira
y1, y2, y3 0
4x1 + 2x2 + 1.5x3 20
2x1 + 1.5x2 + 0.5x3 8
x1, x2, x3 0
Restries associadas com escrivaninhas, mesas e cadeiras, respectiv.
Correspondente modelagem matemtica do seguinte problema: y1 associado com tbuas; y2 com acabamto; y3 com carpintaria.
Produto Qtidd de
Insumo Escrivaninha Mesa Cadeira Insumo Suponha uma situao onde exista escassez de insumos. Um outro
Tbua 8 6 1 48 fabricante de mveis deseja comprar os insumos disponveis na fbrica de
Acabamto 4 2 1.5 20 escrivaninhas, mesas e cadeiras.
Carpintaria 2 1.5 0.5 8
Lucro Venda $60 $30 $20 A pergunta-chave : qual o gio mximo a ser cobrado pelos insumos?

Prof. Fogliatto PO - Graduao 57 Prof. Fogliatto PO - Graduao 58

Definindo as variveis do problema dual O comprador deseja o menor preo, mas o preo deve
ser atraente o suficiente para induzir o fabricante de
y1 = gio mximo cobrado por uma tbua de madeira; escrivaninhas a vender seus insumos
y2 = gio mximo cobrado por 1 hora de acabamento;
y3 = gio mximo cobrado por 1 hora de carpintaria Assim:
Restrio das
8y1 + 4y2 + 2y3 60 escrivaninhas
O gio total a ser cobrado por estes insumos corresponder
funo objetivo:
Ou seja, se comprarmos todos os insumos nas quantidades necessrias
Min w = 48y1 + 20y2 + 8y3 para produzir uma escrivaninha, o gio a ser pago deve ser, no
mnimo, o que o fabricante lucraria com a venda daquele produto.

Note que a funo objetivo busca minimizar o custo de compra: O mesmo ocorre com as outros produtos: Restr. das mesas
este o ponto de vista do comprador.
6y1 + 2y2 + 1.5y3 30
Restr. das cadeiras
1y1 + 1.5y2 + 0.5y3 20
Prof. Fogliatto PO - Graduao 59 Prof. Fogliatto PO - Graduao 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 preos-


sombra dos insumos. PRTICA:

Por definio, o preo-sombra da isima restrio corresponde Determine o dual do seguinte problema de programao linear:
melhoria no valor z da funo objetivo ocasionada pelo Max z = x1 + 2x2
incremento de uma unidade no lado direito da restrio [ou s.t.: 3x1 + x2 6
seja, de bi para (bi + 1)]. 2x1 + x2 = 5
x1, x2 0

Prof. Fogliatto PO - Graduao 61 Prof. Fogliatto PO - Graduao 62

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


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

Para resolver o problema abaixo:


x1 x2 x3 f1 e2 a2 a3 RHS
51 58 58 9 565
Max z = 3x1 + 2x2 + 5x3 z 0 0 0 /23 /23 M- /23 M+ /23 /23
s.a: 1x1 + 3x2 + 2x3 15 Adicionar var. folga f1 4 5 -5 -2 15
x3 0 0 1 /23 /23 /23 /23 /23
2x2 - x3 5 Adicionar var. excesso e2 e art. a2
2x1 + x2 - 5x3 = 10 Adicionar var. artificial a3 x2 0 1 0 2
/23 -9
/23 9
/23 -1
/23 65
/23
x1, x2, x3 0 9 17 -17 7 120
x1 1 0 0 /23 /23 /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 No tableau timo do exemplo anterior:
linha 0 (ou z) do tableau timo do primal (Max)
y1 -y2 y3-M

Valor timo da var. dual yi Coeficiente de fi na linha z x1 x2 x3 f1 e2 a2 a3 RHS


qdo restrio i do tipo 0 do tableau timo 51 58
z 1 0 0 0 /23 /23 M-58/23 M+9/23 565
/23
4 5 -5 -2 15
x3 0 0 0 1 /23 /23 /23 /23 /23
Valor timo da var. dual yi -(Coeficiente de ei) na x2 0 0 1 0 2
/23 -9
/23 9
/23 -1
/23 65
/23
qdo restrio i do tipo linha 0 do tableau timo
9 17 -17 7 120
x1 0 1 0 0 /23 /23 /23 /23 /23

Valor timo da var. dual yi (Coeficiente de ai na linha Ou seja, o problema dual possui a seguinte soluo tima:
qdo restrio i do tipo = 0 do tableau timo) - M
y1 = 51/ ; y2 = -58/23; y3 = 9/23
23

Prof. Fogliatto PO - Graduao 65 Prof. Fogliatto PO - Graduao 66

Conferindo o resultado na funo Regras para identificao da soluo tima dual na


linha 0 (ou z) do tableau timo do primal (Min)
objetivo do problema dual
Valor timo da var. dual yi Coeficiente de fi na linha
Min w = 15y1 + 5y2 + 10y3 qdo restrio i do tipo 0 do tableau timo

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


23
Valor timo da var. dual yi -(Coeficiente de ei) na
qdo restrio i do tipo linha 0 do tableau timo

w = 565/23
Valor timo da var. dual yi (Coeficiente de ai na linha
qdo restrio i do tipo = 0 do tableau timo) + M

Prof. Fogliatto PO - Graduao 67 Prof. Fogliatto PO - Graduao 68


PRTICA:
Considere o seguinte problema:
Modelos de Redes
Max z = -2x1 - 1x2 + x3
s.t.: x1 + x2 + x3 3
x2 + x3 2 Definies bsicas:
x1 + x3 = 1
x1, x2, x3 0
Ns (ou vrtices)
Defnido por
(a) Determine o dual deste problema;
(b) O problema, acrescido de variveis de folga, excesso e variveis artificiais resolvido
Grafos ou Redes
via Simplex. O problema no formato padro e a linha 0 do tableau timo vm dados Arcos
abaixo. Determine a soluo tima para o dual deste problema.

Max z = -2x1 - 1x2 + x3


s.t.: x1 + x2 + x3 + f1 = 3
x2 + x3 - e2 + a2 =2 Arco - par ordenado de vrtices; representa uma possvel direo
x1 + x3 + a3 =1 de movimento entre vrtices
x1, x2, x3, f1, e2, a2, a3 0

Linha 0 do tableau timo


z x1 x2 x3 f1 e2 a2 a3 RHS
(j, k) = arco representando o movimento do n j (n inicial) para o n
Z 1 4 0 0 0 1 M-1 M+2 0 k (n final).

Prof. Fogliatto PO - Graduao 69 Prof. Fogliatto PO - Graduao 70

Exemplo de Rede Correntes, Trilhas e Circuitos


CORRENTE = sequncia de arcos tal que cada arco apresenta
1 4 exatamente um vrtice em comum com o arco anterior.
Ns = {1, 2, 3, 4}

2 3 Arcos = {(1,2), (2,3), (3,4) TRILHA = sequncia de arcos tal que o n terminal de cada arco
(4,3), (4,1)} 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
No exemplo... curta entre dois ns
Exemplo 1
Desejamos remeter energia eltrica da planta 1 cidade 1.
1 4
Ex. de corrente = (1,2) - (2,3) - (4,3) 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.
2 3 Ex. de trilha = (1,2) - (2,3) - (3,4)
3
2 4
4 2
Ex. de circuito = (1,2) - (2,3) - (3,4) - (4,1)
2 Cidade 1
Planta 1 1 6

3 3 2
3 5
Prof. Fogliatto PO - Graduao 73 Prof. Fogliatto PO - Graduao 74

Problemas de determinao da trilha mais curta entre dois ns


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

Meu objetivo minimizar o custo lquido:


Idade do Carro Custo anual de Idade do Carro Valor na troca
(anos) manuteno (anos)
0 2000 1 7000
(custo de compra) + (custos manuteno) - (valor recebido na troca)
1 4000 2 6000
durante os prximos cinco anos.
2 5000 3 2000
3 9000 4 1000
4 12000 5 0 Formule este problema como um problema de determinao da trilha
mais curta.

Prof. Fogliatto PO - Graduao 75 Prof. Fogliatto PO - Graduao 76


Soluo Soluo
O problema ter 6 ns (i = 1, 2, , 6).
c12 = 2 + 12 - 7 = 7
c13 = 2 + 4 + 12 - 6 = 12
Arco (i, j) = comprar o carro novo no incio do ano i e mant-lo at o
c14 = 2 + 4 + 5 + 12 - 2 = 21
incio do ano j.
c15 = 2 + 4 + 5 + 9 + 12 - 1 = 31
c16 = 2 + 4 + 5 + 9 + 12 + 12 - 0 = 44
Custo cij = (custo de manuteno incorrido durante os anos i, i+1,,j-1)
+ e assim por diante...
(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 Prof. Fogliatto PO - Graduao 78

Rede Algoritmo de Dijkstra


44 31
31 Todas as distncias diretas entre dois ns da rede so conhecidas e
21
21 no-negativas.
12
12

7 7 7 7 7 Todos os ns da rede recebem um rtulo permanente ou


1 2 3 4 5 6
temporrio.

12 Um rtulo temporrio representa o limite superior da menor


21 12
distncia entre o n 1 e aquele n.

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
Todos os demais ns tm rtulos temporrios com valor igual permanente. Considere os demais ns (com rtulos temporrios).
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
Selecione, dentre os ns c/ rtulo temporrio, aquele que
+ distncia direta entre o n k e o n em questo). O mnimo entre
apresentar o menor valor; esse n passar a ter rtulo permanente.
esses valores ser o novo valor do n em questo.
Em caso de empate, escolha aleatoriamente um dos ns de menor
valor.

Prof. Fogliatto PO - Graduao 81 Prof. Fogliatto PO - Graduao 82

Passo 2 Exemplo
9
2 6
3 Todos os arcos so
Selecione o n com menor valor dentre aqueles com rtulo temporrio; 2 6
transforme seu rtulo em permanente. 7
1 3
3
3
1
4 Deseja-se encontrar a trilha
Se o n escolhido acima for o n final, pare. Caso contrrio, retorne 4 5 mais curta entre os ns 1 e 6.
ao passo 1. 3

Prof. Fogliatto PO - Graduao 83 Prof. Fogliatto PO - Graduao 84


Comece fazendo com que o n 1 O menor dos rtulos temporrios
tenha um rtulo permanente = 0 vira permanente (n 2).

Todos os demais ns recebem rtulos provisrios iguais a distncia A menor distncia entre ns 1 e 2 = 3.
direta entre o n em questo e o n 1.

Os novos rtulos so:


Assim:
* indica rtulo permanente.

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

Prof. Fogliatto PO - Graduao 85 Prof. Fogliatto PO - Graduao 86

Para todos os demais ns (j = 3,4,5,6), calcule o O menor dos rtulos temporrios


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

Os novos rtulos so:


Para j = 3 min (3+2, 7) = 5 Os novos rtulos so:

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


L (2) = [0*, 3*, 5, 4*, , 12]
L (2) = [0*, 3*, 5, 4, , 12]
Para j = 5 min (3+, ) =

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

Prof. Fogliatto PO - Graduao 87 Prof. Fogliatto PO - Graduao 88


Para todos os demais ns (j = 3,5,6), calcule o O menor dos rtulos temporrios
nmero dado pela soma do valor no n 4 (=4) e a
distncia direta entre o n 4 e o n j em questo vira permanente (n 3).
Compare o nmero obtido com o rtulo temporrio do n j; o menor A menor distncia entre ns 1 e 3 = 5.
dentre esses valores passa a ser o novo rtulo temporrio de j.

Os novos rtulos so:


Para j = 3 min (4+1, 5) = 5 Os novos rtulos so:

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


L (3) = [0*, 3*, 5*, 4*, 7, 12]
L (3) = [0*, 3*, 5, 4*, 7, 12]
Para j = 6 min (4+, 12) = 12

Prof. Fogliatto PO - Graduao 89 Prof. Fogliatto PO - Graduao 90

Para todos os demais ns (j = 5,6), calcule o nmero O menor dos rtulos temporrios
dado pela soma do valor no n 3 (=5) e a distncia
direta entre o n 3 e o n j em questo vira permanente (n 5).
Compare o nmero obtido com o rtulo temporrio do n j; o menor A menor distncia entre ns 1 e 5 = 7.
dentre esses valores passa a ser o novo rtulo temporrio de j.

Os novos rtulos so:


Os novos rtulos so:
Para j = 5 min (5+3, 7) = 7

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


Para j = 6 min (5+6, 12) = 11 L (4) = [0*, 3*, 5*, 4*, 7, 11]

Prof. Fogliatto PO - Graduao 91 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
O menor dos rtulos temporrios
direta entre o n 5 e o n j em questo vira permanente (n 6).
Compare o nmero obtido com o rtulo temporrio do n j; o menor A menor distncia entre ns 1 e 6 = 10.
dentre esses valores passa a ser o novo rtulo temporrio de j.

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 Prof. Fogliatto PO - Graduao 94

Se a diferena (6j) for igual ao comprimento


Determinando a trilha mais curta real do arco (j, 6), escolha j como ponto
intermedirio
Comece do n de destino (6). Calcule a diferena entre o rtulo
permanente do n 6 e os demais ns diretamente ligados a ele.
Diferenas / Arcos:
9
9 2 6 (65) = 3 / (5,6) = 3
2 6 L (5) = [0*, 3*, 5*, 4*, 7*, 10*]
3
3 2 6 (63) = 4 / (3,6) = 6
2 6
Ns 2,3 e 5 esto diretamente ligados a 6. 7
7 1 3
3
(62) = 7 / (2,6) = 9
1 3 3
3
3 Assim: 1
1 4 Assim, o primeiro n intermedirio
4 (65): 10 - 7 = 3 4 5 no caminho entre 6 e 1 o n 5.
4 5 3
3
(63): 10 - 5 = 4
(62): 10 - 3 = 7
Prof. Fogliatto PO - Graduao 95 Prof. Fogliatto PO - Graduao 96
Se a diferena (5j) for igual ao comprimento
Repita o procedimento para o n 5 real do arco (j, 5), escolha j como ponto
intermedirio
Ns 3 e 4 esto diretamente ligados a 5.
9 Diferenas / Arcos:
2 6 9
L (5) = [0*, 3*, 5*, 4*, 7*, 10*] 2 6
3
6
(54) = 3 / (4,5) = 3
2 3
2 6 (53) = 2 / (3,5) = 3
7
1 3 7
3 1 3
3 Diferenas: 3
1 3
(54): 7 - 4 = 3 Assim, o segundo n intermedirio
4 1
4 no caminho entre 6 e 1 o n 4.
4 5 (53): 7 - 5 = 3
3 4 5
3
Caminho parcial: 6 5 4

Prof. Fogliatto PO - Graduao 97 Prof. Fogliatto PO - Graduao 98

Se a diferena (4j) for igual ao


Repita o procedimento para o n 4 comprimento real do arco (j, 4), escolha j
como ponto intermedirio
Ns 3 e 1 esto diretamente ligados a 4.
9 Diferenas / Arcos:
2 6 9
L (5) = [0*, 3*, 5*, 4*, 7*, 10*] 2 6
3
6
(43) = -1 / (3,4) = 1
2 3
2 6 (41) = 4 / (1,4) = 4
7
1 3 7
3 1 3
3 Diferenas: 3
1 3 Como o n 1 o n de destino,
4 (43): 4 - 5 = -1 1 determinamos a trilha mais curta
4 5 4 entre os ns 1 e 6.
(41): 4 - 0 = 4
3 4 5
3
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
Flvio Fogliatto apresentam valores inteiros no intervalo
[0, 1]

1 2

Programao inteira Abordagem para soluo de


problemas de PI
A todo o problema de PI existe um problema de Resolver seus problemas correspondentes
problema de PL correspondente no qual as relaxados e arredondar as variveis de
restries de no-fracionariedade so deciso p/ o maior ou menor inteiro mais
removidas (ou relaxadas) prximo
Alguns resultados se seguem: Dois problemas podem resultar:
Espao de solues viveis do PI Espao de Valores arredondados podem resultar inviveis no PI
solues viveis do PI relaxado
Solues resultantes so altamente sub-timas
Valor timo de z do PI no mximo to bom quanto o
valor timo do PI relaxado
3 4
Mtodo Branch-and-Bound para Branch-and-bound
soluo de problemas PIs puros 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
s.a relaxado) o limite superior da soluo tima do PI

x1 + x2 6
Soluo tima do IPR dado anteriormente :
9x1 + 5x2 45
z* = 165/4
x1 , x2 0 x1 = 15/4
x1 , x2 inteiros x2 = 9/4

5 6

Passo 2 Crie dois subproblemas a


partir de x1
Escolha uma varivel de deciso SP2: SP1 + restrio x1 4
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 8
Passo 3 Arvore hierrquica de
soluo do problema
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

Passo 4 Escolha um para resoluo


Por exemplo: SP4
Repita o procedimento no Passo 3 usando o SP4 no apresenta solues viveis, no
SP2 e a varivel de deciso fracionria x2 = 9/5 podendo, assim, gerar uma soluo tima para
Subproblemas resultantes: o problema de PI:
SP4: SP1 + x1 4 + x2 2 ou SP2 + x2 2 Assim, diz-se que este nodo da rvore foi terminado

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 Repita procedimento em (3)
soluo do problema 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 14

SP7 gera a primeira soluo Problemas SP3 e SP6 ainda


candidata para PI no foram resolvidos
Soluo s possui Escolhe-se SP6 (+ recente), com soluo dada
valores inteiros p/ a na rvore a seguir:
varivel de deciso:
Soluo de SP6 inteira e melhor do que aquela
Pode ser interpretada obtida para SP7
como soluo
candidata ou um limite Assim, termina-se nodo da rvore em SP7 (identifica-
inferior no valor timo se o nodo terminado por um ou escrevendo soluo
do problema de PI excluda) e atualiza-se o limite inferior da rvore;
novo LI = 40

15 16
Arvore hierrquica de ltimo SP a ser resolvido
soluo do problema 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 18

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

Sempre que no for necessrio desdobrar um Um SP eliminado (passa a ser


subproblema, ele deve ser terminado desconsiderado do problema) sempre
Critrios utilizados para terminao so: que:
SP no possui solues viveis SP no possui solues viveis
SP gera uma soluo tima contendo somente
LI (limite inferior) atual pelo menos to
valores inteiros
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
Mais aspectos Mtodo Branch-and-Bound
para soluo de PIs mistos
A regra ltimo a entrar, primeiro a sair, que indica qual Modifique o algoritmo anterior da seguinte
SP deve ser trabalhado dentre vrios candidatos fora o maneira:
analista a trabalhar um mesmo da ramo da rvore de
solues at o final: Desdobre somente variveis de deciso restritas a
no-fracionrias
Existem outras regras possveis (ver Schrage, 1997, entre
outros) Considere a soluo tima de um SP como sendo
Quando um SP apresenta soluo tima com duas ou uma soluo candidata soluo tima do problema
mais variveis de deciso fracionrias, trabalhe com de PI quando esta atender s restries de no-
aquela que representar maior ganho na funo objetivo fracionariedade

21 22

Exerccio 1 Exerccio 2
PI puro 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 Apresentao do problema
mquinas
Suponha 4 trabalhos a serem processados Atraso do trabalho medido pelo nmero de
numa mesma mquina.
dias aps a data de entrega em que o trabalho
Tempo necessrio p/ processamento de cada completado:
trabalho e datas de entrega:
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/


Variveis de deciso demais trabalhos na posio 4
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 Limite inferior no atraso total D 7:
Clculo do atraso para o quarto trabalho : x44 = 1, ou seja, o ou seja, posicionando-se o trabalho 4 na quarta posio, obtem-
trabalho 4 seria completado com atraso total de 23 - 16 dias. Os se o menor atraso total
23 dias foram obtidos somando (6 + 4 + 5 + 8)

27 28
Escolhe-se nodo c/ menor atraso Continuando a desdobrar
D (nodo 4) p/ continuar o mtodo pelo mesmo ramo
Qualquer sequncia associada ao nodo 4 deve Escolhe-se nodo 7 (menor valor de D) para
desdobrar
ter x13 = 1, x23 = 1 ou x33 = 1
Qualquer sequncia associada a este nodo
Clculo do limite inferior LI de atraso similar deve ter x12 = 1 ou x22 = 1. Os atrasos totais
quele visto anteriormente: so:

x33 = 1, ou seja, trabalho 3 seria completado com Nodo 9: sequncia 1-2-3-4. Atraso total: 7(tr.4) +
atraso total de 15 - 12 dias. Os 15 dias foram obtidos 3(tr.3) + (6+4-4)(tr.2) + 0(tr.1) = 16 dias
somando (6 + 4 + 5). O atraso total ser de pelo Nodo 8: sequncia 2-1-3-4. Atraso total: 7(tr.4) +
menos 3 + 7 dias (D 10) 3(tr.3) + (4+6-8)(tr.1) + 0(tr.2) = 12 dias
29 30

Qualquer soluo com D > 12 rvore parcial de resultados


pode desconsiderada
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