You are on page 1of 167

Pesquisa Operacional

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

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

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

Prof. Fogliatto

Pesquisa Operacional

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

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

Prof. Fogliatto

Pesquisa Operacional

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

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

Prof. Fogliatto

Pesquisa Operacional

A soluo de problemas atravs da Pesquisa Operacional pode ser implementada atravs de um procedimento em sete etapas, conforme apresentado na Figura 1.1. As etapas so auto-explicativas para uma descrio completa das etapas, ver Winston, 1994.

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

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

INTRODUO PROGRAMAO LINEAR


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

EXEMPLO: O caso Politoy


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

Prof. Fogliatto

Pesquisa Operacional

Na sequncia, os passos acima so ilustrados atravs de dois exemplos. Os exemplos foram adaptados de Ravindran et al. (1987). Exemplo 1 - O problema do mix de produo A empresa Dalai-Lama deseja planejar a produo de incensos. Os incensos requerem dois tipos de recursos: mo-de-obra e materiais. A empresa fabrica trs tipos de incenso, cada qual com diferentes necessidades de mo-de-obra e materiais, conforme tabela abaixo:
Modelo B 3 4 2

Mo-de-obra (horas por unidade) Materiais (g / unidade produzida) Lucro ($ / unidade)

A 7 4 4

C 6 5 3

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

EXEMPLO: O caso Politoy


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

Prof. Fogliatto

Pesquisa Operacional

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

Ao desenvolver um modelo para a Politoy, investigaremos caractersticas comuns a todos os problemas de PL


VARIVEIS DE DECISO O primeiro passo na formulao de um problema de PL a definio das variveis de deciso relevantes. Estas variveis devem descrever completamente as decises a serem tomadas. A Politoy deve decidir sobre: x1 = nm. de soldados produzidos a cada semana x2 = nm. de trens produzidos a cada semana
Prof. Fogliatto Pesquisa Operacional 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.

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

Prof. Fogliatto

Pesquisa Operacional

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

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

Prof. Fogliatto

Pesquisa Operacional

10

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

10

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

Prof. Fogliatto

Pesquisa Operacional

11

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

11

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

100

Observe que todos os termos de uma restrio devem ter a mesma unidade de medida. Os valores 2 e 1 na restrio so denominados coeficientes tecnolgicos.
Prof. Fogliatto Pesquisa Operacional 12

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

12

Restrio 2 (determinada de maneira similar): (total hs carpintaria/sem.) = (hs.carp./sold.).(sold. produzidos/sem.) + (hs.carp./trem).(trens produzidos/sem.) (total hs carpintaria/sem.) = 1(x1) + 1(x2) = x1 + x2 A restrio 2 ser dada por: x1 + x2 Restrio 3: A restrio 3 definida pela limitao do nmero de soldados produzidos por semana (devido a limitaes na demanda): x1
Prof. Fogliatto

80

40
13

Pesquisa Operacional

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 x1 + x2

100 80 x1 40 x1, x2 0

Restrio de horas de acabamento Restrio de horas de carpintaria Restrio de demanda


Pesquisa Operacional 14

Prof. Fogliatto

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): 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. z = cx

14

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

Prof. Fogliatto

Pesquisa Operacional

15

Um problema qualquer de programao linear pode ser facilmente reescrito em formato matricial, facilitando, posteriormente, a operacionalizao do algoritmo simplex. Considere o exemplo ilustrativo abaixo: Maximizar (ou minimizar): z = 5x1 + 2x2 + 3x3 - x4 + x5 sujeito a: x1 + 2x2 + 2x3 + x4 3x1 + 4x2 + x3 x1 0, , x5 0 Em notao matricial, tem-se: = 8 + x5 = 7

1 2 2 1 0 A = ( 25 ) 3 4 1 0 1

8 b = ( 21) 7

x1 x 2 x = x3 ( 51) x4 x5

(15 )

c = (5 2 3 1 1)

15

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

Prof. Fogliatto

Pesquisa Operacional

16

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

16

ESPAO DE SOLUES E SOLUO TIMA


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

Prof. Fogliatto

Pesquisa Operacional

17

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

17

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

2x1 + 3x2 6 x1
2 3 4

(0,0)

2x1 + 3x2 6
Prof. Fogliatto Pesquisa Operacional

2x1 + 3x2 = 6
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): 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, z = cx

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
100 (2) 80 (4) 60 Ponto timo: (20,60) O espao de solues encontra-se hachurado. (2) - (4) denotam as restries. As restries de sinal restringem o problema ao primeiro quadrante do espao bi-dimens.

Soluo tima: (1) Desenhe o vetor z. (2) Desenhe linhas ortogonais ao vetor z. Essas so as linhas de isocusto. (3) Calcule o valor de z no ponto timo.

40

20

(3)

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

Prof. Fogliatto

20

40

Pesquisa Operacional

60

80

100

x1
19

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

19

Restries crticas (binding) e no-crticas


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

Todas as demais restries so consideradas no-crticas. Ex.: restrio (4) e restries de sinal no grfico anterior.

Prof. Fogliatto

Pesquisa Operacional

20

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

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

20

Outro exemplo: exemplo


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

Prof. Fogliatto

Pesquisa Operacional

21

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

21

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

A formulao do problema do mix de produo, utilizando as variveis de deciso identificadas na tabela, dada por: Max z = 4xA1 + 5xB1 + 9xA2 + 11xB2 sujeito : 1xA1 + 1xB1 + 1xA2 + 1xB2 7xA1 + 5xB1 + 3xA2 + 2xB2 15 (mo-de-obra) 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 10

Ponto timo no inteiro: Testar pontos (4,1), (3,2), (4,2), checando restries e z. Usar programao inteira.

Ponto timo: (3.6, 1.4)

z
Prof. Fogliatto

10

x1
23

Pesquisa Operacional

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 1x1 + 1x2 5x1 + 3x2 + 7x3 1250 (nutriente A) 250 (nutriente B) 900 (nutriente C)

0,6x1 + 0,25x2 + 1x3 232,5 (nutriente D) Todas as variveis de deciso na formulao acima so restritas a valores nonegativos. Um segundo conjunto de restries poderia ser acrescentado formulao acima: restries relacionadas s quantidades disponveis de cada tipo de gro. Da mesma forma que as restries acima foram escritas diretamente das linhas da tabela na pgina anterior, as restries de disponibilidade de gros seriam obtidas das colunas da Tabela.

24

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

Nestes casos, as restries formam um espao aberto de solues viveis. Se a funo objetivo for do tipo max, z e a formulao do problema pode estar incorreta. Se for do tipo Min, uma ou mais solues sero encontradas.

Prof. Fogliatto

Pesquisa Operacional

25

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

25

CASOS ESPECIAIS:
(3) Problemas sem soluo

Nestes casos, as restries no formam nenhum espao de solues viveis.

Prof. Fogliatto

Pesquisa Operacional

26

Suponha uma empresa fabricante de dois tipos de eletrodomsticos, mquinas de lavar loua e mquinas de lavar roupas. A demanda esperada (em unidades) para os prximos quatro trimestres vem dada no quadro abaixo.

Produto Lava-louas Lava-roupas

Designao Et Mt

Vendas esperadas (unidd/trimestre) 1 2 3 4 2000 1300 3000 1000 1200 1500 1000 1400

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

26

Resolva graficamente o problema formulado na Prtica 1

Prof. Fogliatto

Pesquisa Operacional

27

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

Soluo grfica do problema:

Custos unitrios por trimestre 1 2 3 4 125 130 125 126 90 100 95 95 5 4,5 4,5 4 4,3 3,8 3,8 3,3 6 6 6,8 6,8

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

27

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

Formule o problema e encontre a soluo tima graficamente.

Prof. Fogliatto

Pesquisa Operacional

28

Soluo do exerccio:

28

Problemas Tpicos de Formulao

Escolha da dieta

Scheduling de pessoal Deciso Financeira Problema da Mistura Programao da Produo

Prof. Fogliatto

Pesquisa Operacional

29

Para garantir que a variao no nvel da fora-de-trabalho no exceda 10% no primeiro trimestre, so escritas as restries: h1 0,9 (5000) 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)]. e h1 1,1(5000)

29

FORMULAO 1: Escolha de dieta


Quatro tipos de alimentos esto disponveis na elaborao da merenda de um grupo de crianas: biscoito de chocolate, sorvete, refrigerante e torta de queijo. A composio desses alimentos e seus preos so:
Alimento (poro) Biscoito Sorvete Refrig. Torta queijo Calorias Chocolate (g) 3 2 0 0 Aucar (g) 2 2 4 4 Gordura (g) 2 4 1 5 Preo (poro) 0.5 0.2 0.3 0.8

400 200 150 500

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: Minimizar sujeito a:

c x
i =1 j =1

ij ij

x
j =1

ij

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

x
i =1

ij

Dj

, para j = 1,, n (demanda)

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

32

FORMULAO 2: Otimizao da Fora de Trabalho


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

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

Prof. Fogliatto

Pesquisa Operacional

33

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

33

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

Pesquisa Operacional

17 13 15 19 14 16 x7 11 xi 0

Qual o problema com essa formulao?

34

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

34

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

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

35

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

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

Prof. Fogliatto

Pesquisa Operacional

36

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

Geometricamente, o problema pode ser representado da seguinte forma:

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

36

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

Prof. Fogliatto

Pesquisa Operacional

37

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

37

Restries: x1 x1 x1 x1 x1 x2 x3 + + + + + + + x4 x2 x2 x2 x2 x3 x4 + + + + + + + x5 x5 x3 x3 x3 x4 x5 + + + + + + + x6 x6 x6 x4 x4 x5 x6 + + + + + + + x7 x7 x7 x7 x5 x6 x7 xi 17 13 15 19 14 16 11 0

A soluo tima x1 = 4/3; x2 = 10/3; x3 = 2; x4 = 22/3 x5 = 0; x6 = 10/3; x7 = 5. xi fracionrio no faz sentido. Arredondando-se chegamos a uma soluo que, quando checada via otimizao inteira, resulta completamente sub-tima. Para esses problemas precisamos de programao inteira.
Prof. Fogliatto Pesquisa Operacional 38

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

38

FORMULAO: Deciso Financeira


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

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

x1 x2 f1 f 2

1 2 1 0 A= 0 1 0 1 a1 a2 a3 a4

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

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

b=

f1 0 f 2 0

39

EXEMPLO:
Investim. 1 = requer um investimento de $10,000 no tempo 0 e de $14,000 em 2 anos e tem um retorno de $24,000 em 1 ano. Investim. 2 = requer um investimento de $6,000 no tempo 0 e de $1,000 em 2 anos e tem um retorno de $8,000 em 1 ano. Qual o melhor investimento (r = 0.2)? VLP (Inv. 1) = = VLP (Inv. 2) = = -10,000 + (24,000/1+0.2) - [14,000/(1+0.2)2] $277.78 -6,000 + (8,000/1+0.2) - [1,000/(1+0.2)2] - $27.78 O investimento 1 bem melhor!
Prof. Fogliatto Pesquisa Operacional 40

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

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

c = [ f1 ,
t

B
f2

x1 , x2 ]

NB

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

NB

As colunas na matriz A so numeradas de a1 at an (no exemplo, n = 4), conforme apresentado no exemplo. De uma maneira genrica, qualquer problema de PL poder ser representada em termos dos vetores c, x e b e da matriz A particionados em suas pores bsicas e no-bsicas. Cada poro dever compor as variveis de deciso atualmente na base e fora-da-base, respectivamente. Por exemplo:

40

EXEMPLO DE FORMULAO: FORMULAO: Formulao 3 Uma empresa est considerando 5 oportunidades de investimento, com caractersticas dadas a seguir:
Gasto t =0 Gasto t =1 VLP Inv. 1 $11 $3 $13 Inv. 2 $53 $6 $16 Inv. 3 $5 $5 $16 Inv. 4 $5 $1 $14 Inv. 5 $29 $34 $39

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

Prof. Fogliatto

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 xN
B

41

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

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

Prof. Fogliatto

Pesquisa Operacional

42

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

Bx B + Nx N = b
e ento:

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

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

42

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

N = [a1
x tN = [x1

a2 L aP ]
x2 L x P ]

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

Nx N = a j x j
jR

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

43

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

Prof. Fogliatto

Pesquisa Operacional

44

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

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

x tN = [x1

x2

x3 ]

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

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

44

FORMULAO: Problema da Mistura


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

Prof. Fogliatto

Pesquisa Operacional

45

A representao alternativa desse produto utiliza o somatrio:

Nx N = a j x j
jR

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

a x
jR j

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

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

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

Comparando o resultado acima com aquele obtido a partir do produto NxN, possvel verificar a validade da equivalncia proposta. De maneira anloga, possvel demonstrar que o produto entre dois vetores, por exemplo,

ctN x N
pode ser representado, alternativamente, como:

c
jR

xj

45

EXEMPLO (Formulao 4): O caso Texaco


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

Prof. Fogliatto

Pesquisa Operacional

46

Agora possvel representar as matrizes e vetores da equao:

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

x B = B 1b

B
jR

a jxj

(1)

lembrando que j o ndice que designa as variveis no-bsicas e R denota o conjunto de todas as variveis no-bsicas. Por convenincia, algumas pores da equao (1) acima so assim renomeadas:

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

xB = b

y
jR

xj

46

EXEMPLO (Formulao 4): O caso Texaco


As gasolinas tm especificaes de octanagem e contedo de enxofre dadas abaixo. A mistura de leos para produo de gasolina deve satisfazer essas especificaes.
Oleo 1 Oleo 2 Oleo 3 12 6 8 0.5 2.0 3.0 Gas 1 10 1.0 Gas 2 8 2.0 Gas 3 6 1.0

Ocatanagem Enxofre (%)

Cada $/dia gasto em publicidade c/ qualquer tipo de gasolina, aumenta em 10 barris a venda daquele tipo de gasolina. Formule este problema tal que a Texaco maximize seus lucros dirios (= receita-despesa).

Prof. Fogliatto

Pesquisa Operacional

47

A funo objetivo de um problema genrico de PL pode ser escrita em termos dos vetores de custos e das variveis de deciso do problema. Em termos matemticos:

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

x z = [c B c N ] B = c tB x B + c tN x N xN O vetor xB acima pode ser reescrito conforme apresentado na equao (1). Aps substituio, obtm-se:
z = c tB B 1b B 1a j x j + c tN x N jR Efetuando-se a primeira multiplicao no somatrio acima, obtm-se:
z = c tB B 1b

c
jR

t B

B 1a j x j + c tN x N

47

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

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

x11 +x21 + x31 = bar.gas.1 prod./dia. x12 +x22 + x32 = bar.gas.2 prod./dia. x13 +x23 + x33 = bar.gas.3 prod./dia.
48

Prof. Fogliatto

Pesquisa Operacional

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

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
pode ser reescrita como:

c
jR
t B

t B

B 1a j x j +

c x
jR j

z = z0

c
jR

B 1a j x j +

c x
jR 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
Como B-1aj = yj, tem-se:

(c
jR

t B

B 1a j c j x j

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
1o resultado:

(z
jR

c j )x j

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

50

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

Para linealizar essa inequao, multiplica-se os dois lados pelo denominador: 2x11 - 4x21 - 2x31 0
Prof. Fogliatto Pesquisa Operacional 51

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

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 B= 0 1

1 0 B 1 = 0 1

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

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

x1 , x2 ]

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

4 b= 1

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

53

FORMULAES MULTIPERODO (Formulao 5) O problema do estoque - O caso da empresa Regata


A Regata S/A quer decidir quantos barcos produzir nos prximos 4 trimestres, de modo a satisfazer sua demanda a um menor custo:

Demanda

Trim. 1 40

Trim. 2 60

Trim. 3 75

Trim. 4 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

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 vetores so identificados por e y, sendo utilizados no resultado acima. b
A operacionalizao da expresso nob o resultado bastante simples. Considere 2 o exemplo anterior, com os vetores e y2 devidamente identificados:

b
f1 4 2 f = 1 1 x2 2
b

y2

56

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

A razo bi yij obtida dividindo os vetores:

f1 4 f = 1 2

2 2 1 = 1

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

1 2 B = [ f1 , x2 ] = 0 1

ctB = [0, 3]

N = [x1 , f 2 ]

1 2 B 1 = 0 1

1 2 4 2 x B = B 1b = = 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 i3 = i2 + x3 + y3 - 75 i2 = i1 + x2 + y2 - 60 i4 = i3 + x4 + y4 - 25

Todas as variveis so do tipo 0.


Prof. Fogliatto Pesquisa Operacional 58

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

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

58

PRTICA 3: Modelos Financeiros com mltiplos perodos.


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

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

Para j = 4:

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

x B = B 1b B 1a1 x1

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

1 2 B = [x1 , x2 ] = 0 1
1 2 B 1 = 0 1

c tB = [1, 3]

N = [ f1 , f 2 ]

1 2 4 2 x B = B 1b = = 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: princpio de programao o uso mesmo do Excel. Gratuito para download da rede:
www.lindo.com Opo: Whats Best
Prof. Fogliatto Pesquisa Operacional 61

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

z
xB

zj cj

c tB B 1b
B 1b

y j = B 1a j

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

61

Como utilizar o programa


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

Este o arquivo.

Prof. Fogliatto

Pesquisa Operacional

62

Sempre que as variveis de folga formarem a primeira base em um problema de PL, a montagem do tableau do simplex extremamente facilitada. Considere o exemplo na pgina 38. Max x1 + 3x2 s.a x1 + 2x2 + f1 x2 x1 , x2 0 = 4 + f2 = 1

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

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

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

62

Os comandos do programa esto na barra de ferramentas e no menu

Prof. Fogliatto

Pesquisa Operacional

63

melhoria no valor z da funo objetivo representada pela jsima varivel, variveis atualmente bsicas devem receber valor igual a 0 simplesmente por j se encontrarem na base. Assim, para os dados do exemplo, a primeira linha do tableau dada por:
x1 -1 x2 -3 f1 0 f2 0 RHS z0

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

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

RHS 0

63

O Problema do Mix de Produo


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

Na sequncia, deseja-se escrever as linhas que compem as restries no tableau. Elas vm dadas por:

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

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

z f1 f2

x1 -1 1 0

x2 -3 2 1

f1 0 1 0

f2 0 0 1

RHS 0

64

Necessidades de componentes em cada modelo


O modelo Padro utiliza um chassis Padro e um drive de disquete. O modelo Luxo utiliza um chassis Luxo e dois drives de disquete. Problema: qual combinao de modelos Problema 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:

b = B 1b no lado direito do tableau. Mais uma vez, quando as variveis de folga formam a primeira base, B-1 = I e a expresso acima reduz-se a: b = Ib = b Desta forma, para completar o tableau, basta escrever os valores do lado direito das restries do problema para o lado direito do tableau. Isto :
Max x1 + 3x2 s.a x1 + 2x2 + f1 x2 x1 , x2 0 = 4 + f2 = 1

z f1 f2

x1 -1 1 0

x2 -3 2 1

f1 0 1 0

f2 0 0 1

RHS 0 4 1

65

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

Determinar as variveis de deciso (adjustable cells)

Identificao das variveis de deciso

Valor inicial das variveis de deciso (pode ser qualquer valor). Na busca pelo timo, o programa permitir que essas clulas assumam qualquer valor nonegativo.
Prof. Fogliatto Pesquisa Operacional 67

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

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 Selecione as clulas onde foram escritos os zeros.


Prof. Fogliatto

Na opo WB! do menu, selecione adjustable.


Pesquisa Operacional 68

z f1 f2

x1 -1 1 0

x2 -3 2 1

f1 0 1 0

f2 0 0 1

RHS 0 4 1

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

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

xk

z f1 f2

4/2 = 2 1/1 = 1

elemento de pivot

mnima razo

68

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

Identificao das clulas selecionadas como ajustveis. Nomeie as variveis irrestritas no sinal (qualquer nome serve).

Caso as variveis sejam irrestritas no sinal, siga os passos abaixo.

Clique em OK. OK

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

z f1 f2

Os dois valores coincidem, logo nenhuma operao necessria. Identificao das linhas do tableau (0) (1) (2)
x1 -1 1 0 x2 -3 2 1 f1 0 1 0 f2 0 0 1 RHS 0 4 1

z f1 f2

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. Selecione as variveis de deciso. Clique no cone . Clulas passam a ser apresentadas em azul.

Prof. Fogliatto

Pesquisa Operacional

70

Explicitando a operao:
x1 -1 1 0 x2 -3 2 1 f1 0 1 0 f2 0 0 1 RHS 0 4 1

z f1 f2

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

z f1 x2

x1 -1 1 0

x2 -3 0 1

f1 0 1 0

f2 0 -2 1

RHS 0 2 1

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


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

(0) (1) (2)

z f1 x2

Valores no coincidem. Seja (0) a linha (0) aps a operao elementar. A operao que transformar -3 em 0 : (0) = (0) + 3 (2)
70

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

z f1 x2

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

z f1 x2

x1 -1 1 0

x2 0 0 1

f1 0 1 0

f2 3 -2 1

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

xk

z f1 x2

2/1 = 2

mnima razo elemento de pivot


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

z f1 x2

RHS 3 2 1

Nenhuma operao necessria

z f1 x2

x1 -1 1 0

x2 0 0 1

f1 0 1 0

f2 3 -2 1

RHS 3 2 1

Nenhuma operao necessria

72

Identifique a clula que contm a frmula como funo objetivo (best)


Clique na clula onde a frmula da funo objetivo foi escrita.

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

z f1 x2

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

z f1 x2

x1 0 1 0

x2 0 0 1

f1 1 1 0

f2 1 -2 1

RHS 5 2 1

Observe que nenhuma varivel no-bsica apresenta valor negativo na linha z. Esse o critrio de finalizao do algoritmo simplex.

73

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

Identificao das clulas selecionadas como ajustveis.

Confirme clicando OK. OK

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

Prof. Fogliatto

Pesquisa Operacional

74

3.1.1. Casos Especiais Dois casos especiais merecem nota: (i) problemas com solues timas alternativas e (ii) problemas com soluo ilimitada (tendendo ao infinito). Esses dois casos especiais podem ser identificados no tableau do simplex, conforme apresentado a seguir. (i) Problemas com solues timas alternativas Considere um problema de minimizao que, aps um certo nmero de iteraes, apresenta o seguinte tableau:
x1 0 1 0 x2 0 0 1 f1 -2 1/3 1/3 f2 0 -2/3 1/3 RHS -8 2/3 5/3

z x1 x2

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

Selecione a clula contendo a frmula da funo objetivo.

Confira se clula passou a ser identificada por WBMAX. WBMAX

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

z f1 x2

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

Especifique as restries (constraints)


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

tende ao infinito (z ). Esse resultado pode ser melhor compreendido aplicando-se a equao (1) aos dados do exemplo:

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

76

Demais restries (constraints)


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

Restrio p/ componente drive de disquete:


Padro 1 + Luxo 2 120

Restrio de no-negatividade: o default do WB.

Prof. Fogliatto

Pesquisa Operacional

77

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

77

Organizao das restries na planilha do WB


Frmula da 1a restrio. Coeficientes tecnolgicos das restries.

Lado direito das restries.

Prof. Fogliatto

Pesquisa Operacional

Clulas c/ as frmulas das restries. 78

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

Aps acrescentar variveis de excesso e folga, obtm-se o seguinte resultado: Min z = x1 - 2x2 s.a: x1 + x2 - e1 x2 x1, x2, e1, f1 = 1 + f1 = 4 0

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

78

Restries devem ser identificadas no WB


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

Prof. Fogliatto

Pesquisa Operacional

79

Min z = x1 - 2x2 s.a: x1 + x2 - e1 x2 + f1

+ Ma1 + a1 = 1 = 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

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


Prof. Fogliatto

Na opo WB! do menu, selecione constraints.

Tela resultante

Pesquisa Operacional

80

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


x1 -1 1 0 x2 2 1 1 e1 0 -1 0 f1 0 0 1 a1 -M 1 0 RHS 0 1 4

z a1 f1

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 -1 1 0 x2 2 1 1 e1 0 -1 0 f1 0 0 1 a1 -M 1 0 RHS 0 1 4

(0) (1) (2)

z a1 f1

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

(0) (1) (2)

z a1 f1

x1 -1 + M 1 0

x2 2+M 1 1

e1 -M -1 0

f1 0 0 1

a1 0 1 0

RHS M 1 4

80

Confirme clicando OK. OK

Identificao da clula que deve conter a frmula da restrio.

Identificao da clula que deve conter o lado direito da restrio.

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
x1 -1 + M 1 0 x2 2+M 1 1 e1 -M -1 0 f1 0 0 1 a1 0 1 0 RHS M 1 4

mnima razo

xk

z a1 f1

1/1=1 4/1=4

elemento de pivot
x1 -1 + M 1 0 x2 2+M 1 1 e1 -M -1 0 f1 0 0 1 a1 0 1 0 RHS M 1 4

(0) (1) (2)

z a1 f1

Nenhuma operao

81

Identificao do tipo da restrio e clulas consideradas.

Identificao do tipo da restrio.

Repita o procedimento para as demais restries.


Prof. Fogliatto Pesquisa Operacional 82

(0) (1) (2)

z a1 f1

x1 -1 + M 1 0

x2 2+M 1 1

e1 -M -1 0

f1 0 0 1

a1 0 1 0

RHS M 1 4

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

(0) (1) (2)

z a1 f1

x1 -3 1 0

x2 0 1 1

e1 2 -1 0

f1 0 0 1

a1 -M-2 1 0

RHS -2 1 4

(0) (1) (2)

z a1 f1

x1 -3 1 0

x2 0 1 1

e1 2 -1 0

f1 0 0 1

a1 -M-2 1 0

RHS -2 1 4

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

(0) (1) (2)

z a1 f1

x1 -3 1 -1

x2 0 1 0

e1 2 -1 1

f1 0 0 1

a1 -M-2 1 -1

RHS -2 1 3

82

Selecione a clula onde o tipo da restrio deve ser escrito.

Confira se clula passou a ser identificada como restrio.

Clique no cone apropriado.

Prof. Fogliatto

Pesquisa Operacional

83

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

xj
(0) (1) (2) z a1 f1 x1 -3 1 -1 x2 0 1 0 e1 2 -1 1 f1 0 0 1 RHS -2 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 -3 1 -1 x2 0 1 0 e1 2 -1 1 f1 0 0 1 RHS -2 1 3

(0) (1) (2)

z a1 f1

(0)' = (0) - 2 x (2) (1)' = (1) + (2) Nenhuma operao

(0) (1) (2)

z a1 f1

x1 -1 0 -1

x2 0 1 0

e1 0 0 1

f1 -2 1 1

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

Selecione as clulas onde foram escritos os zeros.


Prof. Fogliatto

Na opo WB! do menu, selecione integer.


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

Escolha um nome para as variveis inteiras (qualquer nome serve).

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

Prof. Fogliatto

Pesquisa Operacional

86

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

86

Outros programas de otimizao


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

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

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

87

I. REVISO DE LGEBRA LINEAR


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

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

L a1n L a2n O M L amn

O nmero na isima linha e jsima coluna da matriz denominado aij.

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


a11 a Seja uma matriz qualquer de ordem (m x n) : A = 21 M a m1
Transposto de uma Matriz: O transposto de A, designado por A, ser uma matriz de ordem (n x m):

a12 a22 M am 2
a21 a22 M a2 n

L a1n L a2 n O M L amn
L am1 L am 2 O M L amn
91

a11 a A = 12 M a1n

Prof. Fogliatto

Pesquisa Operacional

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

91

MATRIZES E SISTEMAS DE EQUAES LINEARES


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

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

92

SISTEMAS DE EQUAES LINEARES


Representao Matricial
a11 a12 a a22 A = 21 M M a m1 a m2 a1n L a2 n O M L a mn L
x1 x x = 2 M x n
b1 b b= 2 M b m

(m x n)

(n x 1)

(m x 1)

Ax = b

Prof. Fogliatto

Pesquisa Operacional

93

93

INVERSO DE UMA MATRIZ


Definies: A uma matriz (m x n). Se m = n, ento A uma matriz quadrada. A = [aij]. Os elementos diagonais de A so aqueles aij para os quais i = j.
1 0 A= 0 0 0 L 0 1 0 L 0 = matriz identidade (I ) m M O M 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

EXEMPLO 1: A = 1 3
2 5 1 0 1 3 0 1
1 1
1 0
1 0
5 2 1 2

2 5

(1) =
0 1
0 1

2 (1)

3
5 1 2 2
2

0
2 1 2
1 2

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

0 1 1 2
3 5 2

1 0

0 1 1
Prof. Fogliatto

Pesquisa Operacional

96

96

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

1 2 B= 2 4

( 2) =

2 (2)

0
1 2

( 2 ) = ( 2 ) (1)
0

B-1 no existe! Note que a segunda linha uma combinao linear da primeira.

Prof. Fogliatto

Pesquisa Operacional

97

97

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

x1 + x3 = 4 4x1 + x2 2x3 = 0 3x1 + x2 x3 = 2


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

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

4 2 0 C = 0 2 3 1 1 2

98

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

98

Considere o seguinte problema:


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

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

No escrivaninhas produzidas No mesas produzidas No cadeiras produzidas


Prof. Fogliatto Pesquisa Operacional 100

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

100

Para resolver o problema pelo Simplex, temos que adicionar variveis de folga
Max z = 60x1 + 30x2 + 20x3 s.a: 8x1 + 6x2 + x3 + f1 4x1 + 2x2 + 1.5 x3 + f2 2x1 + 1.5x2 + 0.5 x3 + f3 x1, x2, x3, f1, f2, f3 = = = 48 20 8 0

Uma vez adicionadas variveis de folga e excesso, o problema dito no formato padro, pronto para ser resolvido atravs do mtodo Simplex!
Prof. Fogliatto Pesquisa Operacional 101

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

101

Conceitos-chave no mtodo Simplex


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

Variveis bsicas e no-bsicas.


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

Anotaes:

102

Solucionando problemas de otimizao linear no tableau do simplex


O tableau inicial tem a seguinte estrutura:

Prof. Fogliatto

Pesquisa Operacional

103

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

103

Montagem do tableau passo a passo


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

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

104

Montagem do tableau passo a passo

Lista das variveis no cabealho das colunas


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

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

105

Primeira coluna do tableau


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

Base inicial formada por f1, f2 e f3

Prof. Fogliatto

Pesquisa Operacional

106

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

106

ltima coluna do tableau


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

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

107

ltima coluna do tableau


Exemplo
Valor da f.o. para a base atual

Valor de f1, f2 e f3 na base


Prof. Fogliatto Pesquisa Operacional 108

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

108

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

As demais linhas esto associadas s variveis que esto na base, uma por varivel
Prof. Fogliatto Pesquisa Operacional 109

3. Escolha qualquer SP listado no passo anterior e resolva como se fosse um problema de Programao Linear. Digamos SP2, com soluo tima z* = 41, x1 = 4 e x2 = 9/5. Os resultados obtidos at agora podem ser apresentados na forma de uma rvore hierrquica.

SP1: z* = 165/4, x1 = 15/4, x2 = 9/4 x1 4 SP2: z* = 41, x1 = 4, x1 3 arco SP3: z* = ?

x2 = 9/5

nodo

109

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

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

110

Exemplo de montagem da linha z


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

Prof. Fogliatto

Pesquisa Operacional

111

SP1: z* = 165/4, x1 = 15/4, x2 = 9/4 x1 4 SP2: z* = 41, x1 = 4, x1 3 SP3: z* = ?

x2 = 9/5
x2 2 SP4: Invivel. x2 1 SP5: z* = 365/9,

x1 = 40/9, x2 = 1

111

Demais linhas do tableau


Copia-se literalmente o sistema de restries do problema:

Prof. Fogliatto

Pesquisa Operacional

112

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

112

Prtica 5
Considere o problema abaixo: Min z = 3x1 - x2 + 5x3 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 SP2: z* = 41, x1 = 4, x1 3 SP3: z* = ?

x2 = 9/5
x2 2 SP4: Invivel. x2 1 SP5: z* = 365/9,

x1 = 40/9, x2 = 1
x1 5 SP6: z* = 40, x1 = 5, x1 4 SP7: z* = 37, x1 = 4,

x2 = 0. Limite Inferior = 37 Soluo candidata

x2 = 1. Soluo excluda.

113

ALGORITMO SIMPLEX NO TABLEAU


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

O algoritmo encerra aqui!


Prof. Fogliatto Pesquisa Operacional 114

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

114

ALGORITMO SIMPLEX NO TABLEAU


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

O algoritmo encerra aqui!


Prof. Fogliatto Pesquisa Operacional 115

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

115

ALGORITMO SIMPLEX NO TABLEAU

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

Prof. Fogliatto

Pesquisa Operacional

116

b) Um SP eliminado (passa a ser desconsiderado do problema) sempre que: i. o SP no possui solues viveis. ii. O LI (limite inferior) atual pelo menos to grande quanto o valor z* do SP em questo.

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

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

116

ALGORITMO SIMPLEX NO TABLEAU

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

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

117

ALGORITMO SIMPLEX NO TABLEAU

Passo 3 Exemplo (Minimizao)


varivel entrante

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

Prof. Fogliatto

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

Trabalho 1 Trebalho 2 Trabalho 3 Trabalho 4

Tempo necessrio (dias) Data da entrega 6 Final do dia 8 4 Final do dia 4 5 Final do dia 12 8 Final do dia 16

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

118

ALGORITMO SIMPLEX NO TABLEAU

Passo 3 Exemplo (Maximizao)


varivel entrante

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

Elemento de pivot

nica razo (menor por definio!) Varivel f2 sai da base para que f1 possa entrar No 2 na coluna do f1 o elemento de pivot!
Pesquisa Operacional 119

Prof. Fogliatto

Defina as seguintes variveis de deciso:

1, quando o trabalho i for processado na posio j. xij = 0, caso contrrio.


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

119

ALGORITMO SIMPLEX NO TABLEAU

Passo 3 Nota importante


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

Prof. Fogliatto

Pesquisa Operacional

120

Melhor sequenciamento x14 = 1 NODO 1: D 15

x24 = 1 NODO 2: D 19

x34 = 1 NODO 3: D 11

x44 = 1 NODO 4: D7

120

ALGORITMO SIMPLEX NO TABLEAU

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

Prof. Fogliatto

Pesquisa Operacional

121

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

121

ALGORITMO SIMPLEX NO TABLEAU

Passo 4 Exemplo
varivel entrante

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

Prof. Fogliatto

Pesquisa Operacional

122

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

122

ALGORITMO SIMPLEX NO TABLEAU

ALGORITMO SIMPLEX NO TABLEAU

Passo 4 Exemplo
Inicie pelo elemento de pivot: ele deve virar 1

Passo 4 Exemplo

A linha de trabalho ser usada nas operaes que transformaro os demais nos da coluna da varivel entrante em zero
Prof. Fogliatto Pesquisa Operacional 123

Como o problema de minimizao e no h mais valores negativos na linha z do tableau abaixo das variveis, esta a base tima do problema! Prof. Fogliatto Pesquisa Operacional 124

ALGORITMO SIMPLEX NO TABLEAU

ALGORITMO SIMPLEX NO TABLEAU

Passo 5
Volte ao passo 1

Alguns comentrios
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
Problemas de maximizao podem apresentar valores negativos de funo objetivo (depende da funo) e vice-versa Atualize as variveis na base: aps cada pivot, certifique-se de que o cabealho das linhas est correto

Alguns comentrios
As colunas das variveis bsicas no tableau abaixo da linha z devem sempre corresponder a colunas de uma matriz identidade

Prof. Fogliatto

Pesquisa Operacional

127

Prof. Fogliatto

Pesquisa Operacional

128

Situaes especiais:

Exemplo c/ solues timas alternativas


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

1. Solues timas alternativas; 2. Soluo infinita (tendendo ao infinito). 3. Base inicial no disponvel (problema c/ variveis de excesso ou restries do tipo =).

4 B3 2 B2 B1

Reta de solues timas alternativas

z
Prof. Fogliatto Pesquisa Operacional 129 Prof. Fogliatto

6
130

Pesquisa Operacional

Tableau

Exemplo c/ soluo tendendo ao infinito


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

Soluo tima

z
Prof. Fogliatto Pesquisa Operacional 131 Prof. Fogliatto

B1

6
132

Pesquisa Operacional

Tableau

Ex. c/ base inicial no disponvel


Min z = x1 - 2x2 s.a: - x1 + x2 1 x2 4 x1, x2 0
Adicionando excesso e folga
6 B3 (Base tima) 4

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


Adicionando artificial

2 B2 B1

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


Prof. Fogliatto Pesquisa Operacional 133 Prof. Fogliatto

z
134

Pesquisa Operacional

Tableau

Prtica 6A Soluo tima nica


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

Prof. Fogliatto

Pesquisa Operacional

135

Prof. Fogliatto

Pesquisa Operacional

136

Prtica 6B Soluo
Max z = 36x1 + 30x2 - 3x3 - 4x4 s.a: x1 + x2 - x3 5 6x1 + 5x2 - x4 10 x1, x2, x3, x4 0

Prtica 6C Solues timas alternativas

Max z = -3x1 + 6x2 s.a 5x1 + 7x2 35 -x1 + 2x2 2 x 1 , x2 0

Prof. Fogliatto

Pesquisa Operacional

137

Prof. Fogliatto

Pesquisa Operacional

138

Prtica 6D Base Inicial no-disponvel

Prtica 6E Base Inicial no-disponvel

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

Min z = -x1 s.a x1 -x1 + x1 ,

x2 x2 1 x2 1 x2 0

Este problema no possui solues viveis (confira graficamente). Verifique como o mtodo do M-Grande vai sinalizar a ausncia de solues viveis.
Prof. Fogliatto Pesquisa Operacional 139 Prof. Fogliatto Pesquisa Operacional 140

Prticas Adicionais
Max z = 2x1 + x2 - x3 s.a x 1 + x2 + 2 x 3 6 x1 + 4x2 - x3 4 x1, x2, x3 0 Min z = 3x1 - 3x2 + x1 + 2x2 -3x1 - x2 + x1, x2, x3 x3 5 x3 4 x3 0

O PROBLEMA DUAL
Todo o problema de programao linear possui um problema dual correspondente. Chamaremos o problema original de primal e o problema dual de dual.

s.a

Primal Max Min

Dual Min Max

s.a

Max z = 2x1 - x2 x1 + x2 3 -x1 + x2 1 x1, x2, 0


Pesquisa Operacional 141

Variveis do problema primal z, x1, x2,,xn. Variveis do problema dual w, y1, y2,,ym.

Prof. Fogliatto

Prof. Fogliatto

Pesquisa Operacional

142

Escrevendo o dual de um problema de progr. linear


Max z = c1x1 + c2x2 + + cnxn s.a: a11x1 + a12x2 + + a1nxn b1 a21x1 + a22x2 + + a2nxn b2
M M M M

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

am1x1 + am2x2 + + amnxn bm

Min w = b1y1 + b2y2 + + bmym s.a: a11y1 + a21y2 + + am1ym c1 a12y1 + a22x2 + + am2ym c2
M M M M

a1ny1 + a2ny2 + + amnym cn

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

D u a l

Prof. Fogliatto

Pesquisa Operacional

143

Prof. Fogliatto

Pesquisa Operacional

144

A isima restrio do dual corresponde isima varivel do primal


Usando a tabela abaixo, pode-se achar o dual de qualquer primal:
Min 0 0 Irrestr. = Max = 0 0 Irrestr.

OUTRO EXEMPLO
Max z = 2x1 + x2 s.a: 2x1 + x2 = 2 2x1 - x2 3 x1 - x2 1 x1 0, x2 irrestr. P r i m a l

Variveis

Restries

Restries

Variveis

Min w = 2y1 + 3y2 s.a: 2y1 + 2y2 y1 - y2 y1 irrestr.,

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

D u a l

Prof. Fogliatto

Pesquisa Operacional

145

Prof. Fogliatto

Pesquisa Operacional

146

INTERPRETAO ECONMICA DO PROBLEMA DUAL


O exemplo visto anteriormente: Max z = 60x1 + 30x2 + 20x3 s.a: 8x1 + 6x2 + 1x3 48 4x1 + 2x2 + 1.5x3 20 2x1 + 1.5x2 + 0.5x3 8 x1, x2, x3 0 Corresponde modelagem matemtica do seguinte problema:
Insumo Escrivaninha Tbua 8 Acabamto 4 Carpintaria 2 Lucro Venda $60
Prof. Fogliatto

O DUAL DESTE PROBLEMA :


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

Restries associadas com escrivaninhas, mesas e cadeiras, respectiv. y1 associado com tbuas; y2 com acabamto; y3 com carpintaria. Suponha uma situao onde exista escassez de insumos. Um outro fabricante de mveis deseja comprar os insumos disponveis na fbrica de escrivaninhas, mesas e cadeiras. A pergunta-chave : qual o gio mximo a ser cobrado pelos insumos?
147 Prof. Fogliatto Pesquisa Operacional 148

Produto Mesa 6 2 1.5 $30

Cadeira 1 1.5 0.5 $20

Qtidd de Insumo 48 20 8

Pesquisa Operacional

Definindo as variveis do problema dual


y1 = gio mximo cobrado por uma tbua de madeira; y2 = gio mximo cobrado por 1 hora de acabamento; y3 = gio mximo cobrado por 1 hora de carpintaria O gio total a ser cobrado por estes insumos corresponder funo objetivo: Min w = 48y1 + 20y2 + 8y3

O comprador deseja o menor preo, mas o preo deve ser atraente o suficiente para induzir o fabricante de escrivaninhas a vender seus insumos
Assim: 8y1 + 4y2 + 2y3 60
Restrio das escrivaninhas

Ou seja, se comprarmos todos os insumos nas quantidades necessrias para produzir uma escrivaninha, o gio a ser pago deve ser, no mnimo, o que o fabricante lucraria com a venda daquele produto. O mesmo ocorre com as outros produtos: 6y1 + 2y2 + 1.5y3 30 1y1 + 1.5y2 + 0.5y3 20
Restr. das mesas

Note que a funo objetivo busca minimizar o custo de compra: este o ponto de vista do comprador.

Restr. das cadeiras


150

Prof. Fogliatto

Pesquisa Operacional

149

Prof. Fogliatto

Pesquisa Operacional

Para determinarmos o menor gio de compra dos insumos que mantenha a venda desses insumos interessantes para o fabricante, devemos resolver o problema dual

Exerccio
Determine o dual do seguinte problema de programao linear: Max z = x1 + s.t.: 3x1 + 2x1 + x1,
151 Prof. Fogliatto

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

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

isima

2x2 x2 6 x2 = 5 x2 0
Pesquisa Operacional 152

Prof. Fogliatto

Pesquisa Operacional

Como ler a soluo tima do dual a partir da linha 0 (ou linha z) do tableau timo do primal Caso 1 - Primal = Max
Para resolver o problema abaixo: Max z = 3x1 + 2x2 + 5x3 s.a: 1x1 + 3x2 + 2x3 15 2x2 - x3 5 2x1 + x2 - 5x3 = 10 x2, x3 0 x1,

Tableau timo

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

x2 0 0 1 0

x3 0 1 0 0

f1
51 4 2 9

e2
58 5

a2
58 -5 9

a3
9 -2 -1 7

RHS
565 15 65

0 0 0 1

/23

/23 M- /23 M+ /23 /23 /23 /23

/23

x3 x2 x1

/23 /23 /23

/23 /23 /23

/23 /23 /23

-9

/23 /23

17

-17

/23

120

A base inicial ser formada por B = { f1, a2, a3}. Usaremos o Mtodo do M-Grande para solucionar este problema. O tableau timo vem dado a seguir...
Prof. Fogliatto Pesquisa Operacional 153 Prof. Fogliatto Pesquisa Operacional 154

Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Max)
Valor timo da var. dual yi qdo restrio i do tipo

No tableau timo do exemplo anterior:


y1 -y2
e2
58 5

y3-M
a2 a3 RHS
565 15 65

Coeficiente de fi na linha 0 do tableau timo

z z 1

x1 0 0 0 1

x2 0 0 1 0

x3 0 1 0 0

f1
51 4 2 9

/23

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


-5 9

/23

x3 0

/23 /23 /23

/23 /23 /23

/23

-2 -1 7

/23 /23

/23 /23 /23

Valor timo da var. dual yi qdo restrio i do tipo

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

x2 0 x1 0

-9

/23 /23

17

-17

/23

120

Valor timo da var. dual yi qdo restrio i do tipo =

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

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


51/ ; 23

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

Prof. Fogliatto

Pesquisa Operacional

155

Prof. Fogliatto

Conferindo o resultado na funo objetivo do problema dual


Min w = 15y1 + 5y2 + 10y3 y1 =
51/ ; 23

Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Min)
Valor timo da var. dual yi qdo restrio i do tipo

Coeficiente de fi na linha 0 do tableau timo

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

Valor timo da var. dual yi qdo restrio i do tipo

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

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

Prof. Fogliatto

Pesquisa Operacional

157

Prof. Fogliatto

Pesquisa Operacional

158

Exerccio

Prof. Fogliatto

Pesquisa Operacional

159

Pesquisa Operacional
Parte 2

O Problema do Transporte
Descrio Geral de um problema de transporte: 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.

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

2. Um conjunto de n pontos de demanda para os quais o insumo remetido. O ponto de demanda j deve receber pelo menos dj unidades do insumo.

Prof. Fogliatto

PO - Graduao

Descrio Geral de um problema de transporte


3. Cada unidade produzida no ponto de fornecimento i e remetida ao ponto de demanda j incorre num custo de cij.

Formulao do Problema
Seja xij = no de unidades despachadas do ponto de fornecimento i para o ponto de demanda j. A formulao genrica do problema do transporte ser:

Min cij xij


i =1 j =1 n

m n

s.t.

xij si
j =1 m i =1

(i = 1,..., m) ( j = 1,..., n)

Restries de fornecimento

xij d j
xij 0

Restries de demanda

Prof. Fogliatto

PO - Graduao

Prof. Fogliatto

PO - Graduao

Problema Balanceado
Um problema de transporte considerado balanceado se:

Como balancear um problema de transporte quando a capacidade de fornecimento excede a demanda


Cria-se um ponto fictcio de demanda. A demanda nesse ponto ser igual ao excedente da capacidade.

i =1

si = d j
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
Fornecimento c11 c12

Exemplo
Dois reservatrios de gua abastecem trs cidades. Cada reservatrio pode abastecer at 50 milhes de litros de gua por dia. Cada cidade necessita receber 40 milhes de litros de gua por dia. Associado a cada milho de litros de gua no fornecido por dia existe uma multa. A multa na cidade 1 de $20; na cidade 2 de $18; na cidade 3 de $23. Os custos do transporte entre reservatrios e cidades vem dado ao lado... Cid.1 Cid.2 Cid.3 Reserv. 1 Reserv. 2
7 Prof. Fogliatto PO - Graduao

L L

c1n

s1

c21

c22

c2n

s2

M
cm1

M
cm2

O
L L
PO - Graduao

M
cmn

M
sm

$7 $9

$8 $7

$8 $8
8

Demanda

d1

d2

dn

i =1
Prof. Fogliatto

si = d j
j =1

Tableau do Simplex
Cid. 1 Res. 1 Res. 2 Res. Artif.
Demanda 7

Prtica:
50 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 abaixo. Semanalmente, 100 toneladas de cada tipo de ao devem ser produzidas. Cada planta opera 40 horas por semana. Escreva o problema (o objetivo minimizar o custo de fabricao dos aos) e organize o problema no tableau do transporte. Custo Ao 2 $40 $30 $20

Cid. 2
8

Cid. 3
8

Capacidade

20

18

23

20 40 40 40
Planta 1 Planta 2 Planta 3 Ao 1 $60 $50 $43

Ao 3 $28 $30 $20

Tempo (min) 20 16 15

Prof. Fogliatto

PO - Graduao

Prof. Fogliatto

PO - Graduao

10

Mtodo do Extremo Noroeste para Determinao da Soluo Vivel Inicial de um problema de Transporte
Inicie o mtodo considerando a clula (1,1) do tableau. Faa com que x11 seja o maior valor possvel. Obviamente, x11 = Min (d1, s1). Se x11 = s1, desconsidere as demais clulas na primeira linha do tableau, j que nenhuma outra varivel bsica vir desta linha. Atualize o valor de d1 para d1 - s1. Se x11 = d1, desconsidere as demais clulas na primeira coluna do tableau, j que nenhuma outra varivel bsica vir desta coluna. Atualize o valor de s1 para s1 - d1.
Prof. Fogliatto PO - Graduao 11

Mtodo do Extremo Noroeste para Determinao da Soluo Vivel Inicial de um problema de Transporte
Se x11 = s1 = d1, desconsidere as demais clulas na primeira linha ou na primeira coluna do tableau (mas no ambas). Se voc escolher desconsiderar a linha 1, mude d1 para 0. Se voc escolher desconsiderar a coluna 1, mude s1 para 0. Repita o procedimento, sempre escolhendo a clula posicionada no extremo noroeste do tableau (desde que ela no esteja em uma linha ou coluna eliminada anteriormente). Ao cabo de (m + n - 1) iteraes chega-se a uma base vivel inicial para o problema.
Prof. Fogliatto PO - Graduao 12

Exemplo
O mtodo do extremo noroeste no utiliza os custos, omitidos nos tableaus abaixo: 5
5 0

Exemplo
5
7 0

10 15 12 7 8 4 6

10 3 15

7 0

x11 = Min {12, 5} = 5


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

x21 = Min {10, 7} = 7


14

Exemplo
5
7 3 0

Exemplo
5
0 7 3 0

3 15

0 15 10 4 6

5 0 5 0

8 5

x22 = Min {8, 3} = 3


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

x32 = Min {15, 5} = 5


16

Exemplo
5
7 3 5 0 0 4 4 0 6 0

Exemplo
5
0

0 10 6

Base Inicial Vivel

3 5 4 4 6 6 0

0 6 0

x33 = Min {10, 4} = 4


Prof. Fogliatto PO - Graduao 17 Prof. Fogliatto PO - Graduao

x34 = Min {6, 6} = 6


18

O Mtodo Simplex para problemas de transporte


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

Prtica: Determine uma base inicial para o problema anterior.


Prof. Fogliatto PO - Graduao 19

O clculo desses valores envolve determinar um menor circuito ou loop contendo algumas variveis bsicas e a varivel no-bsica em questo. Existe um loop nico possvel para cada varivel no-bsica.

Prof. Fogliatto

PO - Graduao

20

Exemplo
Capacidd 2 3 4 9

Determine a varivel no-bsica a entrar na base


Iniciando com x14: Calcule os valores correspondentes linha z para cada varivel no-bsica:
2 3 4 9

10
14

10
12 5 1

20

1. Determine um loop de var. bsicas que contenha a var. nobsica. 2. Alterne sinais pos. e neg. nas var. bs. extremas. 3. Some os cij de acordo com os sinais. 4. Subtraia o coef. de custo da var. no-bs. em questo do resultado

0
12 15

20
9

10
3

30

10
14

10 0

+
12 5

-17
1

40
Demanda

40
12

15

20
9

10 40

+
3

10

10

20

50

Base inicial determinada pelo mtodo do extremo noroeste. (+1-12+3) = -8


Prof. Fogliatto PO - Graduao 21 Prof. Fogliatto

(-8) - 9 = -17
PO - Graduao

22

Clculo para x13


2 3 4 9

Repetindo o clculo p/ as demais var. no-bsicas


2 3 4 9

10
14

10 0
12

+
12

-8
5

-17
1

10
14

10
12

-8
5

-17
1

15

20

+
9

10
3

-3
12

0
15

20
9

10
3

40

+1

-1

-2

40

(+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, determine um loop contendo a var. entrante e algumas variveis bsicas
2 3 4 9

A primeira clula bsica do loop recebe um sinal positivo, a segunda um sinal negativo, e assim por diante...
Dentre as clulas positivas, selecione aquela de menor valor: esta a var. que sair da base.
2

10
14

10
12

-8
5

-17
1

+ 10

10 + 0

-8
12 5

-17
1

-3
12

0
15

20
9

10
3

14

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


12

20
15 9

10 40

+1

-1

-2

40

+1

-1

-2

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 com sinal -, tm seu valor acrescido de . A varivel entrante entra na base com valor .
+ 10
2

Novo tableau
Nenhuma var. no-bs. com zij - cij > 0 tableau timo!
2 3 4 9

10 +

10
12 5 1 14

10
12

-7
5

-16
1

14

20
12 15 9

10 40

-4
12

-1
15

20
9

10
3

-2

-2

40

Prof. Fogliatto

PO - Graduao

27

Prof. Fogliatto

PO - Graduao

28

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

O Problema do Transbordo
Ponto de fornecimento - pode remeter insumos para outros pontos mas no pode receber.

Ponto de demanda - pode receber insumos de outros pontos mas no pode remeter.

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

Prof. Fogliatto

PO - Graduao

29

Prof. Fogliatto

PO - Graduao

30

Exemplo
A BITCO monta PCs em Manaus (150 PCs/dia) e Assuncin do Paraguai (200 PCs/dia) e remete para suas lojas em So Paulo e Recife, totalizando 130 PCs por loja.

Custos
De/Para Man Manaus $0 Assuncion Brasilia Curitiba SPaulo Recife Ass $0 Bra $8 $15 $0 $6 Cur $13 $12 $6 $0 SP $25 $26 $16 $14 $0 Rec $28 $25 $17 $16 $0

Os PCs so remetidos via area. A BITCO suspeita que devido promoes e uso de outras empresas areas, seja mais econmico usar Braslia e Curitiba como pontos de transbordo.

Os custos de transporte por PC vm dados a seguir.

Prof. Fogliatto

PO - Graduao

31

Prof. Fogliatto

PO - Graduao

32

Exemplo
Deseja-se minimizar o custo do frete:

O problema do transbordo resolvido como um problema balanceado de transportes


PASSO 1 - Balanceie o problema, se necessrio.

Por exemplo:
Manaus Braslia SPaulo

Assuncin

Curitiba

Recife

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

Prof. Fogliatto

PO - Graduao

33

Prof. Fogliatto

PO - Graduao

34

Passo 2 - Construa o tableau do transporte


Uma linha p/ cada ponto de fornecimento e transbordo.

Passo 2 - Cont.
Seja s = capacidade total de fornecimento.

Uma coluna p/ cada ponto de demanda e transbordo.

Cada ponto de transbordo ter: capacidade = (capacidade do ponto original) + s demanda = (demanda do ponto original) + s

Cada ponto de fornecimento ter capacidade de fornecimento igual a sua capacidade original de fornecimento.

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


Braslia

No exemplo
Curitiba
13

SPaulo
25

Recife
28

Artificial
0

Capacidade 150

Ao interpretar a soluo tima:

Manaus Assuncion
15 12 26 25 0

ignore remessas aos pontos artificiais;

200
0 6 16 17 0

ignore remessas de um ponto para ele mesmo.

Braslia
6 0 14 16 0

350 350 350 350 130


PO - Graduao

Curitiba Demanda
Prof. Fogliatto PO - Graduao 37 Prof. Fogliatto

130

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

Manaus

130

Braslia

130

SPaulo

Assuncin

Curitiba

Recife

130

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

POA $140 $0 $115 $109 $117


2900

Foz $100 $111 $0 $121 $82

Ass $90 $110 $113 $0 2400

Bue $225 $119 $78 $0


1500

Demanda

Minimize os custos de transporte.


PO - Graduao 40

Prof. Fogliatto

PO - Graduao

39

Prof. Fogliatto

O Problema da Alocao
So problemas balanceados de transporte nos quais todas as demandas e todas as capacidades so iguais a 1. As variveis do problema so booleanas:

Exemplo: Aloque trabalhos nas mquinas tal que tempo de setup seja mnimo
Trab. 1 Trab. 2
8 min 14 min 5 min

Maq. 1 Maq. 2 Maq. 3


7 min

xij = 1; se o ponto de abastecimento i for utilizado para suprir a demanda no ponto de demanda j. xij = 0; caso contrrio.

Trab. 3 Trab. 4

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

Tr.1 14 2 7 2

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

Tr.4 7 5 9 10

Maq. 4

Prof. Fogliatto

PO - Graduao

41

Prof. Fogliatto

PO - Graduao

42

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

Para resolver problemas de alocao, usaremos o Algoritmo Hngaro


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

x11+x12+x13+x14 = 1 x21+x22+x23+x24 = 1 x31+x32+x33+x34 = 1 x41+x42+x43+x44 = 1


Prof. Fogliatto

x11+x21+x31+x41 = 1 x12+x22+x32+x42 = 1 x13+x23+x33+x43 = 1 x14+x24+x34+x44 = 1


PO - Graduao 43

xij = 1 ou 0

Algoritmo Hngaro
Passo 3 - determine o menor elemento 0 dentre os elementos no cobertos por linhas no tableau; seja k o valor deste elemento. Subtraia k de cada elemento no-coberto do tableau e adicione k a cada elemento coberto por duas linhas no tableau. Volte ao passo 2. Nota - somente problemas balanceados podem ser resolvidos pelo algoritmo hngaro. Se um problema for no balanceado, adicione pontos artificiais de demanda ou capacidade.
14 2 7 2 5

Exemplo
Mnimo da linha
8 6 3 6 7 5 9 10 5 2 3 2

12 8 4

Exemplo...

Prof. Fogliatto

PO - Graduao

45

Prof. Fogliatto

PO - Graduao

46

Novo tableau aps subtrao dos mnimos de linha

Novo tableau aps subtrao dos mn. das colunas

9 0 4 0

0 10 5 2

3 4 0 4

2 3 6 8

9 0 4 0

0 10 5 2

3 4 0 4

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

k=1

Mn. da coluna
Prof. Fogliatto

0
PO - Graduao

2
47 Prof. Fogliatto PO - Graduao 48

Subtraindo e somando k nas devidas clulas...


Note que o mnimo das linhas e colunas 0!

Como identificar a soluo tima


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

10 0 5 0

0 9 5 1

3 3 0 3

0 0 4 5

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

Prof. Fogliatto

PO - Graduao

49

Prof. Fogliatto

PO - Graduao

50

Prtica
Um treinador necessita formar um time de nadadoras para competir em uma prova olmpica de 400 metros medley. As nadadoras apresentam as seguintes mdias de tempo em cada estilo:

O PROBLEMA DUAL
Todo o problema de programao linear possui um problema dual correspondente. Chamaremos o problema original de primal e o problema dual de dual.

Nadadora 1 2 3 4

Livre 54 51 50 56

Tempo (s) /100 m Peito Golfinho 54 51 57 52 53 54 54 55

Costas 53 52 56 53

Primal Max Min

Dual Min Max

Qual nadadora deve nadar qual estilo?

Variveis do problema primal z, x1, x2,,xn. 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


Max z = c1x1 + c2x2 + + cnxn s.a: a11x1 + a12x2 + + a1nxn b1 a21x1 + a22x2 + + a2nxn b2
M M M M

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

am1x1 + am2x2 + + amnxn bm

P r i m a l

Min w = b1y1 + b2y2 + + bmym s.a: a11y1 + a21y2 + + am1ym c1 a12y1 + a22x2 + + am2ym c2
M M M M

a1ny1 + a2ny2 + + amnym cn

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

60 30 20 0

D u a l

Prof. Fogliatto

PO - Graduao

53

Prof. Fogliatto

PO - Graduao

54

A isima restrio do dual corresponde isima varivel do primal


Usando a tabela abaixo, pode-se achar o dual de qualquer primal:
Min 0 0 Irrestr. = Max = 0 0 Irrestr.

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

P r i m a l

Variveis

Restries

Restries

Variveis

Min w = 2y1 + 3y2 s.a: 2y1 + 2y2 y1 - y2 y1 irrestr.,

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

D u a l

Prof. Fogliatto

PO - Graduao

55

Prof. Fogliatto

PO - Graduao

56

INTERPRETAO ECONMICA DO PROBLEMA DUAL


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

O DUAL DESTE PROBLEMA :


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

Escrivaninha Mesa Cadeira

Restries associadas com escrivaninhas, mesas e cadeiras, respectiv. y1 associado com tbuas; y2 com acabamto; y3 com carpintaria. Suponha uma situao onde exista escassez de insumos. Um outro fabricante de mveis deseja comprar os insumos disponveis na fbrica de escrivaninhas, mesas e cadeiras. A pergunta-chave : qual o gio mximo a ser cobrado pelos insumos?
57 Prof. Fogliatto PO - Graduao 58

Correspondente modelagem matemtica do seguinte problema:


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

Produto Mesa 6 2 1.5 $30

Cadeira 1 1.5 0.5 $20

Qtidd de Insumo 48 20 8

PO - Graduao

Definindo as variveis do problema dual


y1 = gio mximo cobrado por uma tbua de madeira; y2 = gio mximo cobrado por 1 hora de acabamento; y3 = gio mximo cobrado por 1 hora de carpintaria O gio total a ser cobrado por estes insumos corresponder funo objetivo: Min w = 48y1 + 20y2 + 8y3

O comprador deseja o menor preo, mas o preo deve ser atraente o suficiente para induzir o fabricante de escrivaninhas a vender seus insumos
Assim: 8y1 + 4y2 + 2y3 60
Restrio das escrivaninhas

Ou seja, se comprarmos todos os insumos nas quantidades necessrias para produzir uma escrivaninha, o gio a ser pago deve ser, no mnimo, o que o fabricante lucraria com a venda daquele produto. O mesmo ocorre com as outros produtos: 6y1 + 2y2 + 1.5y3 30 1y1 + 1.5y2 + 0.5y3 20
Restr. das mesas

Note que a funo objetivo busca minimizar o custo de compra: este o ponto de vista do comprador.

Restr. das cadeiras


60

Prof. Fogliatto

PO - Graduao

59

Prof. Fogliatto

PO - Graduao

Para determinarmos o menor gio de compra dos insumos que mantenha a venda desses insumos interessantes para o fabricante, devemos resolver o problema dual

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

PRTICA:
Determine o dual do seguinte problema de programao linear: Max z = x1 + s.t.: 3x1 + 2x1 + x1, 2x2 x2 6 x2 = 5 x2 0

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

Prof. Fogliatto

PO - Graduao

61

Prof. Fogliatto

PO - Graduao

62

Como ler a soluo tima do dual a partir da linha 0 (ou linha z) do tableau timo do primal Caso 1 - Primal = Max
Para resolver o problema abaixo:
Max z = 3x1 + 2x2 + 5x3 s.a: 1x1 + 3x2 + 2x3 15 2x2 - x3 5 2x1 + x2 - 5x3 = 10 x1, x2, x3 0

Tableau timo

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

x2 0 0 1 0

x3 0 1 0 0

f1
51 4 2 9

e2
58 5

a2
58 -5 9

a3
9 -2 -1 7

RHS
565 15 65

0 0 0 1

/23

/23 M- /23 M+ /23 /23 /23 /23

/23

x3 x2 x1

/23 /23 /23

/23 /23 /23

/23 /23 /23

-9

/23 /23

17

-17

/23

120

A base inicial ser formada por B = { f1, a2, a3}. Usaremos o Mtodo do M-Grande para solucionar este problema. O tableau timo vem dado a seguir...
Prof. Fogliatto PO - Graduao 63 Prof. Fogliatto PO - Graduao 64

Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Max)
Valor timo da var. dual yi qdo restrio i do tipo

No tableau timo do exemplo anterior:


y1 -y2
e2
58 5

y3-M
a2 a3 RHS
565 15 65

Coeficiente de fi na linha 0 do tableau timo

z z 1

x1 0 0 0 1

x2 0 0 1 0

x3 0 1 0 0

f1
51 4 2 9

/23

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


-5 9

/23

x3 0

/23 /23 /23

/23 /23 /23

/23

-2 -1 7

/23 /23

/23 /23 /23

Valor timo da var. dual yi qdo restrio i do tipo

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

x2 0 x1 0

-9

/23 /23

17

-17

/23

120

Valor timo da var. dual yi qdo restrio i do tipo =

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

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


51/ ; 23

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

Prof. Fogliatto

PO - Graduao

65

Prof. Fogliatto

Conferindo o resultado na funo objetivo do problema dual


Min w = 15y1 + 5y2 + 10y3 y1 =
51/ ; 23

Regras para identificao da soluo tima dual na linha 0 (ou z) do tableau timo do primal (Min)
Valor timo da var. dual yi qdo restrio i do tipo

Coeficiente de fi na linha 0 do tableau timo

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

Valor timo da var. dual yi qdo restrio i do tipo

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

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

Prof. Fogliatto

PO - Graduao

67

Prof. Fogliatto

PO - Graduao

68

PRTICA:
Considere o seguinte problema: Max z = -2x1 - 1x2 + x1 + x2 + s.t.: x2 + x1 + x1, x2, x3 x3 3 x3 2 x3 = 1 x3 0

Modelos de Redes
Definies bsicas:
Defnido por

Ns (ou vrtices) Arcos

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

Grafos ou Redes

= 3 =2 =1 0

Arco - par ordenado de vrtices; representa uma possvel direo de movimento entre vrtices
a3 M+2 RHS 0

x3 0

f1 0

e2 1

a2 M-1

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


69 Prof. Fogliatto PO - Graduao 70

Prof. Fogliatto

PO - Graduao

Exemplo de Rede
1 4 Ns = {1, 2, 3, 4}

Correntes, Trilhas e Circuitos


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

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

TRILHA = sequncia de arcos tal que o n terminal de cada arco idntico ao n inicial do arco seguinte.

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

Prof. Fogliatto

PO - Graduao

71

Prof. Fogliatto

PO - Graduao

72

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

Problemas de determinao da trilha mais curta entre dois ns Exemplo 1


Desejamos remeter energia eltrica da planta 1 cidade 1. A rede abaixo apresenta as distncias entre pares de pontos conectados (incluindo subestaes). Desejamos determinar a trilha mais curta entre a planta e a cidade. 2
4 3

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


2 2

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

3
Prof. Fogliatto PO - Graduao 73 Prof. Fogliatto

3
PO - Graduao

5
74

Problemas de determinao da trilha mais curta entre dois ns

Exemplo 2
Eu comprei um carro novo por $12000. Os custos de manuteno e o valor na troca do carro em um determinado ano dependem da idade do carro no comeo daquele ano.
Idade do Carro (anos) 0 1 2 3 4 Custo anual de manuteno 2000 4000 5000 9000 12000
Idade do Carro (anos) 1 2 3 4 5 Valor na troca 7000 6000 2000 1000 0

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

Meu objetivo minimizar o custo lquido: (custo de compra) + (custos manuteno) - (valor recebido na troca) durante os prximos cinco anos.

Formule este problema como um problema de determinao da trilha mais curta.


75 Prof. Fogliatto PO - Graduao 76

Prof. Fogliatto

PO - Graduao

Soluo
O problema ter 6 ns (i = 1, 2, , 6). c12 c13 c14 c15 c16 = = = = =

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

Arco (i, j) = comprar o carro novo no incio do ano i e mant-lo at o incio do ano j. Custo cij = (custo de manuteno incorrido durante os anos i, i+1,,j-1) + (custo de compra do carro no incio do ano i) (valor do carro na troca no incio do ano j)

e assim por diante...

Prof. Fogliatto

PO - Graduao

77

Prof. Fogliatto

PO - Graduao

78

Rede
44 31 21 12 31 21 12 7 7 7 7

Algoritmo de Dijkstra
Todas as distncias diretas entre dois ns da rede so conhecidas e no-negativas.

Todos os ns da rede recebem um rtulo permanente ou temporrio. Um rtulo temporrio representa o limite superior da menor distncia entre o n 1 e aquele n. Um rtulo permanente corresponde menor distncia entre o n 1 e aquele n.

12 21 12

Prof. Fogliatto

PO - Graduao

79

Prof. Fogliatto

PO - Graduao

80

Passos do Algoritmo
Passo Inicial: O n inicial recebe um rtulo permanente com valor zero. Todos os demais ns tm rtulos temporrios com valor igual distncia direta entre o n inicial e o n em questo. Ns com rtulos temporrios e no conectados diretamente com o n inicial recebem valor . Selecione, dentre os ns c/ rtulo temporrio, aquele que apresentar o menor valor; esse n passar a ter rtulo permanente. Em caso de empate, escolha aleatoriamente um dos ns de menor valor.
Prof. Fogliatto PO - Graduao 81 Prof. Fogliatto

Passo 1
Seja k o n mais recente cujo rtulo foi transformado em permanente. Considere os demais ns (com rtulos temporrios).

Compare o valor de cada n temporrio com a soma (valor do n + distncia direta entre o n k e o n em questo). O mnimo entre esses valores ser o novo valor do n em questo.

PO - Graduao

82

Passo 2
2
3 9 2 6

Exemplo
6 Todos os arcos so

Selecione o n com menor valor dentre aqueles com rtulo temporrio; transforme seu rtulo em permanente.

1
4

3
3 1

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

4
3

Deseja-se encontrar a trilha mais curta entre os ns 1 e 6.

Prof. Fogliatto

PO - Graduao

83

Prof. Fogliatto

PO - Graduao

84

Comece fazendo com que o n 1 tenha um rtulo permanente = 0


Todos os demais ns recebem rtulos provisrios iguais a distncia direta entre o n em questo e o n 1.

O menor dos rtulos temporrios vira permanente (n 2).


A menor distncia entre ns 1 e 2 = 3.

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 nmero dado pela soma do valor no n 2 (=3) e a distncia direta entre o n 2 e o n j em questo
Compare o nmero obtido com o rtulo temporrio do n j; o menor dentre esses valores passa a ser o novo rtulo temporrio de j. Para j = 3 min (3+2, 7) = 5 Para j = 4 min (3+, 4) = 4 Para j = 5 min (3+, ) = Para j = 6 min (3+9, ) = 12 L (2) = [0*, 3*, 5, 4, , 12]

O menor dos rtulos temporrios vira permanente (n 4).


A menor distncia entre ns 1 e 4 = 4.

Os novos rtulos so:

Os novos rtulos so:

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

Prof. Fogliatto

PO - Graduao

87

Prof. Fogliatto

PO - Graduao

88

Para todos os demais ns (j = 3,5,6), calcule o nmero dado pela soma do valor no n 4 (=4) e a distncia direta entre o n 4 e o n j em questo
Compare o nmero obtido com o rtulo temporrio do n j; o menor dentre esses valores passa a ser o novo rtulo temporrio de j. Para j = 3 min (4+1, 5) = 5 Para j = 5 min (4+3, ) = 7 Para j = 6 min (4+, 12) = 12 L (3) = [0*, 3*, 5, 4*, 7, 12]

O menor dos rtulos temporrios vira permanente (n 3).


A menor distncia entre ns 1 e 3 = 5.

Os novos rtulos so:

Os novos rtulos so:

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

Prof. Fogliatto

PO - Graduao

89

Prof. Fogliatto

PO - Graduao

90

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

O menor dos rtulos temporrios vira permanente (n 5).


A menor distncia entre ns 1 e 5 = 7.

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

Os novos rtulos so:

Os novos rtulos so:

L (4) = [0*, 3*, 5*, 4*, 7, 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 direta entre o n 5 e o n j em questo
Compare o nmero obtido com o rtulo temporrio do n j; o menor dentre esses valores passa a ser o novo rtulo temporrio de j.

O menor dos rtulos temporrios vira permanente (n 6).


A menor distncia entre ns 1 e 6 = 10.

Os novos rtulos so: Para j = 6 min (7+3, 11) = 10 L (4) = [0*, 3*, 5*, 4*, 7*, 10]

Os novos rtulos so: L (5) = [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

Determinando a trilha mais curta


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

Se a diferena (6j) for igual ao comprimento real do arco (j, 6), escolha j como ponto intermedirio
2
3 2 7 9 6 3

Diferenas / Arcos: 6 (65) = 3 / (5,6) = 3 (63) = 4 / (3,6) = 6 (62) = 7 / (2,6) = 9


3

2
3 7

L (5) = [0*, 3*, 5*, 4*, 7*, 10*] Ns 2,3 e 5 esto diretamente ligados a 6. 1

1
4

3
3 1

3
1

Assim: (65): 10 - 7 = 3 5 (63): 10 - 5 = 4 (62): 10 - 3 = 7

4
3

4
3

Assim, o primeiro n intermedirio no caminho entre 6 e 1 o n 5.

Prof. Fogliatto

PO - Graduao

95

Prof. Fogliatto

PO - Graduao

96

Repita o procedimento para o n 5


Ns 3 e 4 esto diretamente ligados a 5. 2
3 2 7 9 6 3

Se a diferena (5j) for igual ao comprimento real do arco (j, 5), escolha j como ponto intermedirio
2
3 2 7 9 6 3

Diferenas / Arcos: 6 (54) = 3 / (4,5) = 3 (53) = 2 / (3,5) = 3


3

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

1
4

3
3 1

Diferenas: (54): 7 - 4 = 3 (53): 7 - 5 = 3

1
4

3
1

4
3

Assim, o segundo n intermedirio no caminho entre 6 e 1 o n 4. 5 Caminho parcial: 6 5 4


PO - Graduao 98

4
3

Prof. Fogliatto

PO - Graduao

97

Prof. Fogliatto

Repita o procedimento para o n 4


Ns 3 e 1 esto diretamente ligados a 4. 2
3 2 7 9 6 3

Se a diferena (4j) for igual ao comprimento real do arco (j, 4), escolha j como ponto intermedirio
2
3 2 7 9 6 3

Diferenas / Arcos: 6 (43) = -1 / (3,4) = 1 (41) = 4 / (1,4) = 4


3

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

1
4

3
3 1

Diferenas: (43): 4 - 5 = -1 (41): 4 - 0 = 4

1
4

3
1

4
3

4
3

Como o n 1 o n de destino, determinamos a trilha mais curta entre os ns 1 e 6. Trilha Mais Curta: 6 5 4 1

Prof. Fogliatto

PO - Graduao

99

Prof. Fogliatto

PO - Graduao

100

Prtica

Use o algoritmo de Dijkstra para resolver os problemas nos slides 79 e 84.

Prof. Fogliatto

PO - Graduao

101

Tipos de problemas de programao inteira (PI) Programao Inteira


Pesquisa Operacional I Parte III Flvio Fogliatto Puros - todas as variveis de deciso so inteiras Mistos - algumas variveis de deciso so inteiras Booleanos - variveis de deciso s apresentam valores inteiros no intervalo [0, 1]
1 2

Programao inteira
A todo o problema de PI existe um problema de problema de PL correspondente no qual as restries de no-fracionariedade so removidas (ou relaxadas) Alguns resultados se seguem:
Espao de solues viveis do PI Espao de solues viveis do PI relaxado Valor timo de z do PI no mximo to bom quanto o valor timo do PI relaxado
3

Abordagem para soluo de problemas de PI


Resolver seus problemas correspondentes relaxados e arredondar as variveis de deciso p/ o maior ou menor inteiro mais prximo Dois problemas podem resultar:
Valores arredondados podem resultar inviveis no PI Solues resultantes so altamente sub-timas

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
5

Branch-and-bound operacionalizado em 5 passos


Passo 1: Comece resolvendo o PI relaxado.
Se a soluo tima for inteira, esta a soluo do PI Caso contrrio, soluo tima do IPR (problema de programao inteira relaxado) o limite superior da soluo tima do PI

Soluo tima do IPR dado anteriormente : z* = 165/4 x1 = 15/4 x2 = 9/4


6

Passo 2
Escolha uma varivel de deciso fracionria em z* do PIR:
por exemplo, x1 = 15/4.

Crie dois subproblemas a partir de x1


SP2: SP1 + restrio x1 4 SP3: SP1 + Restrio x1 3 SP = subproblema Problema designado por SP1 o prprio problema de PI em estudo, relaxado das restries de no-fracionariedade
7 8

PI admite valores de x1 3 ou x1 4, mas no em 3 < x1 < 4

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

Arvore hierrquica de soluo do problema

Resultados obtidos at agora podem ser apresentados na forma de uma rvore hierrquica
9 10

Passo 4
Repita o procedimento no Passo 3 usando o SP2 e a varivel de deciso fracionria x2 = 9/5 Subproblemas resultantes:
SP4: SP1 + x1 4 + x2 2 ou SP2 + x2 2 SP5: SP1 + x1 4 + x2 1 ou SP2 + x2 1

Escolha 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

Tem-se trs problemas que podem ser resolvidos: SP3, SP4 e SP5
11

Dentre os SPs no resolvidos, escolhe-se o mais recente, SP5:


Soluo vm apresentada na rvore do problema, a seguir
12

Arvore hierrquica de soluo do problema

Repita procedimento em (3) usando SP5 e var. fracionria x1


Subproblemas resultantes so:
SP6: SP5 + x1 5 SP7: SP5 + x1 4

Trs SPs podem ser resolvidos: SP3, SP6 e SP7. Escolhe-se, aleatoriamente, um dos mais recentes:
SP7, por exemplo

Soluo tima p/ SP7 vem dada na rvore a seguir

13

14

SP7 gera a primeira soluo candidata para PI


Soluo s possui valores inteiros p/ a varivel de deciso:
Pode ser interpretada como soluo candidata ou um limite inferior no valor timo do problema de PI

Problemas SP3 e SP6 ainda no foram resolvidos


Escolhe-se SP6 (+ recente), com soluo dada na rvore a seguir:
Soluo de SP6 inteira e melhor do que aquela obtida para SP7 Assim, termina-se nodo da rvore em SP7 (identificase o nodo terminado por um ou escrevendo soluo excluda) e atualiza-se o limite inferior da rvore; novo LI = 40
15 16

Arvore hierrquica de soluo do problema

ltimo SP a ser resolvido SP3


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

Assim, nodo SP3 terminado e SP6 identificado como a soluo tima para o problema de PI
17 18

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


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

Mais aspectos
Um SP eliminado (passa a ser desconsiderado do problema) sempre que:
SP no possui solues viveis LI (limite inferior) atual pelo menos to grande quanto o valor z* do SP em questo
20

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

Mtodo Branch-and-Bound para soluo de PIs mistos


Modifique o algoritmo anterior da seguinte maneira:
Desdobre somente variveis de deciso restritas a no-fracionrias Considere a soluo tima de um SP como sendo uma soluo candidata soluo tima do problema de PI quando esta atender s restries de nofracionariedade
21 22

Quando um SP apresenta soluo tima com duas ou mais variveis de deciso fracionrias, trabalhe com aquela que representar maior ganho na funo objetivo

Exerccio 1 PI puro
Min z = 4x1 + 5x2 s.a: x1 + 4x2 5 3x1 + 2x2 7 x1, x2 0 e inteiros s.a:

Exerccio 2 PI misto
Max z = 2x1 + x2 5x1 + 2x2 8 x1 + x2 3 x1, x2 0; x1 inteiro

23

24

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


Suponha 4 trabalhos a serem processados numa mesma mquina. Tempo necessrio p/ processamento de cada trabalho e datas de entrega:

Apresentao do problema
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


25 26

Variveis de deciso

Aplicar mesmo racioccio p/ 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 Clculo do atraso para o quarto trabalho : x44 = 1, ou seja, o trabalho 4 seria completado com atraso total de 23 - 16 dias. Os 23 dias foram obtidos somando (6 + 4 + 5 + 8)
27

Limite inferior no atraso total D 7:


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

28

Escolhe-se nodo c/ menor atraso D (nodo 4) p/ continuar o mtodo


Qualquer sequncia associada ao nodo 4 deve ter x13 = 1, x23 = 1 ou x33 = 1 Clculo do limite inferior LI de atraso similar quele visto anteriormente:
x33 = 1, ou seja, trabalho 3 seria completado com atraso total de 15 - 12 dias. Os 15 dias foram obtidos somando (6 + 4 + 5). O atraso total ser de pelo menos 3 + 7 dias (D 10)
29

Continuando a desdobrar pelo mesmo ramo


Escolhe-se 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
30

Qualquer soluo com D > 12 pode desconsiderada


Com isto, termina-se os nodos 1, 2, 5, 6, e 9. Arvore de resultados parciais dada na sequncia

rvore parcial de resultados

31

32

Desdobra-se o nodo 3
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

Arvore final de resultados

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


33 34

You might also like