Você está na página 1de 542

Cadastre-se em www.elsevier.com.

br
para conhecer nosso catlogo completo,
ter acesso a servios exclusivos no site
e receber informaes sobre nossos
lanamentos e promoes.
MARCOS VINCIUS REINALDO HORACIO
ARENALES A R M E N TA N O MORABITO YA N A S S E

Pesquisa Operacional

COLEO

CAMPUS - ABEPRO
Engenharia de Produo
2007, Elsevier Editora Ltda.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998.
Nenhuma parte deste livro, sem autorizao prvia por escrito da editora,
poder ser reproduzida ou transmitida sejam quais forem os meios empregados:
eletrnicos, mecnicos, fotogrficos, gravao ou quaisquer outros.

Copidesque: Cludia Mello Belhassof


Editorao Eletrnica: Rosane Guedes
Reviso Grfica: Marlia Pinto de Oliveira e Marco Antonio Correa

Projeto Grfico
Elsevier Editora Ltda.
A Qualidade da Informao.
Rua Sete de Setembro, 111 16 andar
20050-006 Rio de Janeiro RJ Brasil
Telefone: (21) 3970-9300 FAX: (21) 2507-1991
E-mail: info@elsevier.com.br
Escritrio So Paulo:
Rua Quintana, 753/8 andar
04569-011 Brooklin So Paulo SP
Tel.: (11) 5105-8555

ISBN 13: 978-85-352-

Nota: Muito zelo e tcnica foram empregados na edio desta obra. No entanto, podem ocorrer erros de
digitao, impresso ou dvida conceitual. Em qualquer das hipteses, solicitamos a comunicao nossa
Central de Atendimento, para que possamos esclarecer ou encaminhar a questo.
Nem a editora nem o autor assumem qualquer responsabilidade por eventuais danos ou perdas a
pessoas ou bens, originados do uso desta publicao.

Central de atendimento
Tel.: 0800-265340
Rua Sete de Setembro, 111, 16 andar Centro Rio de Janeiro
e-mail: info@elsevier.com.br
site: www.campus.com.br

CIP-Brasil. Catalogao-na-fonte.
Sindicato Nacional dos Editores de Livros, RJ

P564

Pesquisa operacional [recurso eletrnico] / Marcos Arenales...


[et al.]. - Rio de Janeiro : Elsevier : ABEPRO, 2011.
recurso digital (ABEPRO-Campus)

Formato: FLASH
Requisitos do sistema: Adobe Flash Player
Modo de acesso: World Wide Web
Inclui ndice
Anexos
ISBN 978-85-352-5193-7 (recurso eletrnico)

1. Pesquisa operacional. 2. Pesquisa operacional -


Modelos matemticos. 3. Livros eletrnicos. I. Arenales, Marcos
II. Associao Brasileira de Engenharia da Produo. III. Srie

11-5920. CDD: 658.4034


CDU: 005.31

IV
Os Autores
Marcos Arenales professor do Departamento de Matemtica Aplicada e Estatstica (SME) da Uni-
versidade de So Paulo (USP) campus de So Carlos. graduado em Matemtica pela Universida-
de Estadual Paulista (UNESP) e obteve os ttulos de mestre em Otimizao e Pesquisa Operacional pela
Universidade Estadual de Campinas (IMECC-UNICAMP), de doutor em Engenharia de Sistemas e
Automao (FEEC-UNICAMP) e de livre-docente em Matemtica Aplicada pela USP. Seus principais
interesses de pesquisa situam-se no desenvolvimento de mtodos e aplicaes na rea de otimizao
e pesquisa operacional. Tem publicado artigos em diversos peridicos cientficos, incluindo Canadian
Journal of Operational Research and Information Processing, Computers and Operations Research, European
Journal of Operational Research, Gesto & Produo, International Journal of Production Research,
International Transactions in Operations Research e Pesquisa Operacional.

Vincius Amaral Armentano professor titular da Faculdade de Engenharia Eltrica e de Com-


putao (FEEC) da Universidade Estadual de Campinas (UNICAMP). graduado em Engenharia El-
trica pela Universidade Mackenzie, obteve os ttulos de mestre em Engenharia Eltrica pela
FEEC-UNICAMP, e de Ph.D em Engenharia Eltrica pelo Imperial College, University of London.
Foi professor visitante da Leeds School of Business da University of Colorado, nos Estados Unidos.
Seus principais interesses de pesquisa situam-se na rea de otimizao combinatria, com a modela-
gem de problemas prticos em produo e logstica, e desenvolvimento de mtodos exatos e heursticos
em programao inteira. Tem publicado artigos em diversos peridicos cientficos, incluindo Computers
and Operations Research, European Journal of Operational Research, Journal of Heuristics, Gesto e Produo,
Journal of the Operational Research Society, Pesquisa Operacional, Production and Operations Management e
SIAM Journal on Control and Optimization.

Reinaldo Morabito professor do Departamento de Engenharia de Produo (DEP) da Univer-


sidade Federal de So Carlos (UFSCar). graduado em Engenharia Civil pela Universidade Estadual
de Campinas (UNICAMP), obteve os ttulos de mestre em Cincias da Computao e Matemtica
Computacional, de doutor em Engenharia de Transportes e de livre-docente em Engenharia Mec-
nica, todos pela Universidade de So Paulo (USP). Fez ps-doutorado no Massachusetts Institute of
Technology (MIT) em Cambridge, nos Estados Unidos. Seus principais interesses de pesquisa situam-
se na rea de pesquisa operacional aplicada a sistemas de produo e logstica, com a modelagem
matemtica de problemas prticos e desenvolvimento de mtodos de soluo exatos e heursticos. Tem
publicado artigos em diversos peridicos cientficos, incluindo Canadian Journal of Operational Research
and Information Processing, Computers and Operations Research, Gesto & Produo, European Journal of
Operational Research, International Journal of Production Research, International Transactions in Operations
Research, Journal of the Operational Research Society, Pesquisa Operacional, Production and Operations
Management e Transportation Research.

Horacio Hideki Yanasse pesquisador do Laboratrio Associado de Computao e Matemtica


Aplicada (LAC) do Instituto Nacional de Pesquisas Espaciais (INPE). graduado em Engenharia Ele-
trnica pelo Instituto Tecnolgico de Aeronutica (ITA), obteve o ttulo de mestre em Anlise de Sis-
temas e Aplicaes pelo Inpe, e de PhD em Pesquisa Operacional pelo Massachusetts Institute of
Technology (MIT) em Cambridge, nos Estados Unidos. Foi pesquisador visitante da Universidade de
Sheffield, na Inglaterra. Seus principais interesses de pesquisa situam-se na rea de otimizao combi-
natria, com a da modelagem de problemas prticos oriundos de ambientes produtivos, e desenvol-
vimento de mtodos exatos e heursticos em programao inteira. Tem publicado artigos em diversos
peridicos cientficos, incluindo Computers and Operations Research, Discrete Applied Mathematics, European
Journal of Operational Research, IEEE Transaction on Computer Aided Design of Integrated Circuits and
Systems, International Transactions in Operations Research, Journal of the Operational Research Society,
Management Science, Operations Research, Parallel Computing e Pesquisa Operacional.

V
Pgina deixada intencionalmente em branco
Dedicatrias
minha esposa Selma, aos meus pais Dom Mariano e Dona Isabel
e minha enorme famlia de muitos amigos.

minha esposa Ana Luiza, aos meus amigos


Artur, Bottura, Giampietro e Hermano,
e aos meus pais Emlia e Augusto.

s minhas filhas Julia e Paula,


e aos meus pais Pedro e Myriam.

minha esposa Rita, aos meus filhos Ricardo, Denise e Eduardo,


e aos meus pais Tomossaburo e Hatsumi.

VII
Pgina deixada intencionalmente em branco
Prefcio
Pesquisa operacional a aplicao de mtodos cientficos a problemas complexos para au-
xiliar no processo de tomada de decises, tais como projetar, planejar e operar sistemas em situa-
es que requerem alocaes eficientes de recursos escassos. Neste livro, introduzimos modelos
matemticos determinsticos e probabilsticos e vrios dos principais mtodos de soluo e
algoritmos utilizados na pesquisa operacional para melhor entendimento, anlise e soluo de
problemas de deciso.
Esta obra direcionada, principalmente, a cursos de graduao em engenharia de produo,
mas tambm pode ser utilizada em outros cursos de engenharia (civil, eltrica, mecnica, siste-
mas), cincias de administrao, cincias de computao, economia, estatstica e matemtica.
Tambm pode ser usada em cursos introdutrios de graduao e ps-graduao (stricto sensu e
lato sensu) em tpicos como: otimizao linear (programao linear), otimizao discreta (progra-
mao linear inteira), otimizao (fluxos) em redes, programao dinmica (determinstica e
estocstica) e teoria de filas. Os requisitos para a leitura deste livro so cursos introdutrios de
clculo integral e diferencial, lgebra linear e teoria de probabilidade.
A habilidade de elaborar modelos matemticos fundamental e, por esse motivo, o livro apre-
senta uma grande variedade de modelos de problemas nas reas de engenharias e administrao,
entre outras, com o intuito de mostrar aos estudantes a versatilidade e a aplicabilidade de mo-
delos de pesquisa operacional. Procuramos destacar a importncia da pesquisa operacional na
engenharia de produo, em particular no gerenciamento de sistemas de produo e logstica,
envolvendo problemas de planejamento, programao e controle da produo, problemas de dis-
tribuio de produtos, problemas de localizao de facilidades e instalaes, entre outros.
O livro est organizado em duas partes: na Parte I abordam-se modelos determinsticos de pro-
gramao matemtica, tais como: otimizao linear, otimizao discreta, otimizao em redes e
programao dinmica determinstica, juntamente com mtodos de soluo e algoritmos. Na Parte II
trata-se de modelos probabilsticos que consideram incertezas, como modelos de programao di-
nmica estocstica e teoria de filas. Devido limitao de espao, alguns tpicos importantes em
pesquisa operacional no esto includos neste volume, tais como: otimizao no-linear (progra-
mao no-linear), otimizao multiobjetivo (exceto programao de metas em otimizao linear),
programao estocstica e otimizao robusta, mtodos de controle de estoques e de previso de
demanda, teoria de jogos e simulao discreta, que podero ser objeto de um futuro volume.
Procuramos escrever o livro de forma a minimizar a dependncia entre as sees de cada ca-
ptulo, para que o professor possa explorar o material de interesse para a disciplina que minis-
tra. O asterisco em algumas sees indicativo de material mais avanado, ou material
apresentado de forma mais detalhada, e que pode ser omitido em cursos introdutrios. Acredi-
tamos que o contedo deste livro seja suficiente para dois cursos semestrais ou um curso anual
de introduo s tcnicas de pesquisa operacional e suas aplicaes em diversas reas. Tambm
pode ser utilizado em um curso semestral, selecionando alguns captulos ou partes de cada ca-
ptulo, e como bibliografia complementar em outros cursos de engenharia de produo, como
planejamento e controle da produo e logstica.
Este material resultado da nossa experincia em ministrar cursos de graduao e ps-gra-
duao em pesquisa operacional na Universidade de So Paulo em So Carlos USP (engenha-
ria civil, engenharia de computao, cincias de computao e informtica, matemtica),
Universidade Estadual de Campinas UNICAMP (engenharia eltrica, engenharia de compu-

IX
Prefcio

tao, cincia da computao), Universidade Federal de So Carlos UFSCar (engenharias de


produo materiais, produo qumica e produo agroindustrial, estatstica) e no Instituto Na-
cional de Pesquisas Espaciais INPE (computao aplicada).
Gostaramos de agradecer diversos colegas e alunos de graduao e ps-graduao que con-
triburam com comentrios crticos, sugestes e reviso do material de alguns dos captulos. So-
mos gratos aos professores: Maristela Santos e Franklina Toledo, da USP; Vitria Pureza, da
UFSCar; Rita de Cssia Meneses Rodrigues, do INPE; Maria do Socorro Rangel, Jos Gilberto
S. Rinaldi e Silvio A. Araujo, da Universidade Estadual Paulista UNESP; Lana Santos, da Uni-
versidade Federal de Viosa; e Gisele F. Pileggi, da Universidade Mackenzie. Agradecemos tam-
bm aos alunos de ps-graduao: Adriana C. Cherri, Kelly C. Poldi e Carla Lucke Silva, da USP;
Sara L. A. Fonseca, Lus H. Sacchi, Andr L. Shiguemoto e, em especial, Olinto C.B. Arajo, da
UNICAMP; e Deisemara Ferreira, Ana Paula Iannoni e Cristiane A. Parreira, da UFSCar. Tambm
agradecemos ao editor convidado, Mrio O. Batalha (UFSCar), da Coleo Abepro de Engenharia
de Produo, pelo apoio e incentivo durante a elaborao deste trabalho. Este livro contou com
apoio financeiro parcial do CNPq.

Marcos Nereu Arenales, ICMC-USP (arenales@icmc.usp.br)


Vincius Amaral Armentano, FEEC-UNICAMP (vinicius@densis.fee.unicamp.br)
Reinaldo Morabito, DEP-UFSCar (morabito@power.ufscar.br)
Horacio Hideki Yanasse, LAC-INPE (horacio@lac.inpe.br)

X
Apresentao
Pesquisa operacional envolve o desenvolvimento de mtodos cientficos para analisar sistemas
complexos e tomar decises. O papel desta disciplina tem se tornado cada vez mais importante
com a crescente complexidade e incerteza no sculo XXI: a economia eletrnica requer decises
operacionais e tticas mais rpidas e melhores; globalizao, telecomunicaes e Internet definem
novas relaes entre clientes, fornecedores, parceiros e competidores. Tradicionalmente, pesqui-
sa operacional tem desempenhado papel importante nas reas de projeto, planejamento, e ope-
rao de cadeias ou redes de suprimento. No entanto, sua aplicao tem se estendido rapidamente
para uma grande variedade de reas, tais como agricultura, finanas, medicina, marketing, recursos
naturais, energticos e ambientais, e polticas no setor pblico, envolvendo servios de sade,
educao, sade pblica, justia criminal, servios urbanos e segurana pblica.
Trs requisitos so necessrios para a utilizao da pesquisa operacional. O primeiro envolve
a compreenso de caractersticas e atributos de um sistema complexo e a habilidade de abstrair
e traduzir os pontos mais importantes em um modelo matemtico ou de simulao. O segundo
consiste da habilidade para desenvolver mtodos de resoluo para os modelos e utilizar paco-
tes comerciais com conhecimento sobre os mtodos utilizados nestes. O terceiro envolve a comu-
nicao com clientes para compreender o problema e explicar resultados no intuitivos, mas
importantes, gerados pela aplicao de pesquisa operacional.
Este livro direcionado, principalmente, para cursos de graduao, com destaque para a apli-
cao da pesquisa operacional na engenharia de produo, em particular no gerenciamento de
sistemas de produo e logstica, envolvendo problemas de planejamento, programao e controle
da produo, problemas de distribuio de produtos, problemas de localizao de facilidades e
instalaes, entre outros. O livro apresenta uma grande variedade de modelos com o intuito de
mostrar aos estudantes a versatilidade e a aplicabilidade de modelos de pesquisa operacional, alm
de tratar da abordagem de mtodos de resoluo de classes importantes de modelos
determinsticos de otimizao e de modelos probabilsticos.

Gabriel R. Bitran
Professor da Sloan School of Management,
Massachusetts Institute of Technology,
e ex-presidente da Production and Operations
Management Society dos Estados Unidos.

XI
Pgina deixada intencionalmente em branco
Apresentando a Coleo ABEPRO
de Engenharia de Produo
O cenrio competitivo no qual o Brasil est inserido demanda s instituies nacionais apri-
moramento na utilizao de instrumentos e conceitos modernos de gerenciamento. A importa-
o pura e simples de modelos de gesto que obtiveram sucesso no exterior no garante igual
sucesso no Brasil. Esta constatao o resultado direto das peculiaridades dos sistemas produ-
tivos do Pas.
Existe consenso no mundo acadmico, empresarial e governamental de que tecnologias de
produto e processo, quando dissociadas de sistemas de gesto adequados, no so suficientes para
o aumento da competitividade. Este entendimento explica, em grande parte, o sucesso que os
cursos de Engenharia de Produo vm encontrando na comunidade acadmica, seus emprega-
dores e em relao sociedade em geral. No raro encontrar outros cursos de Engenharia
redirecionando seus currculos de maneira a enfatizar disciplinas ligadas gesto empresarial.
Uma boa maneira de avaliar este sucesso o aumento de novos cursos de Engenharia de Pro-
duo no Brasil. Este fato, que tem como ponto positivo o reconhecimento da importncia da
Engenharia de Produo para o desenvolvimento nacional, revela, no entanto, alguns perigos.
Dentre eles, pode-se destacar a possibilidade do surgimento de cursos de graduao em Enge-
nharia de Produo incapazes de transmitir o conhecimento mnimo exigido para a formao de
um bom profissional. A criao de novos cursos de Engenharia de Produo fora dos centros mais
tradicionais de ensino e pesquisa acentua este perigo. Muitas vezes o corpo docente respons-
vel pelas disciplinas desses cursos tem dificuldades em acessar referncias bibliogrficas adequadas
que assegurem a qualidade para os cursos. Desta forma, a possibilidade de encontrar em uma
nica obra de referncia o contedo mnimo necessrio para uma disciplina ou conjunto de dis-
ciplinas do curso de Engenharia de Produo relevante.
Consciente deste novo contexto e tambm da responsabilidade para com a qualidade do en-
sino e da pesquisa em Engenharia de Produo, a ABEPRO (Associao Brasileira de Engenha-
ria de Produo) desenvolve, em parceria com a Editora Campus, a Coleo ABEPRO-CAMPUS
de Livros Didticos em Engenharia de Produo. Esta Coleo rene uma srie de livros-texto que
pretende cobrir as reas essenciais da Engenharia de Produo. O contedo presente no conjunto
de livros da Coleo ABEPRO-CAMPUS contribuir para garantir os conhecimentos mnimos
necessrios formao de um Engenheiro de Produo competente e sintonizado com os anseios
nacionais de desenvolvimento.
Os conhecimentos que estes livros renem, em suas respectivas reas de conhecimento, repre-
sentam o contedo mnimo recomendvel que a ABEPRO julga necessrio para este campo de
conhecimento. Embora os livros tenham sido organizados e escritos com a ateno voltada pri-
oritariamente para o ensino de graduao, eles tambm podem ser utilizados na ps-graduao,
sobretudo nos cursos de especializao.
Os livros da Coleo ABEPRO-CAMPUS de Engenharia de Produo - como o caso desta
segunda obra - so escritos por professores e pesquisadores com experincia nas suas reas e atu-
ando em algumas das mais renomadas instituies de ensino e pesquisa do Brasil. Desta forma,
eles refletem anos de experincia destes profissionais no ensino, na pesquisa e na extenso em suas
reas de atuao. O resultado mais imediato desta situao que os livros so ilustrados por exem-
plos nacionais, seja no caso dos exerccios e casos resolvidos, seja no caso dos exerccios propos-

XIII
Apresentando a Coleo ABEPRO de Engenharia de Produo

tos. A capacidade de elaborao destas obras, com a qualidade que a ABEPRO julga desejvel,
um dos resultados mais imediatos da maturidade da Engenharia de Produo brasileira.
Alm de ser examinado e aprovado pelos Editores da Coleo ABEPRO-CAMPUS de Enge-
nharia de Produo, o contedo do livro que est agora em suas mos foi tambm analisado por
dois importantes professores e pesquisadores da rea. A aprovao do projeto por estes dois as-
sessores ad hoc, alm da aprovao tambm pelo corpo tcnico da Editora Campus, indica a
qualidade do trabalho concretizado neste livro de Pesquisa Operacional.
Este o segundo de uma srie de livros que devem cobrir os aspectos principais do ensino e
da pesquisa em Engenharia de Produo. Trs outros livros, igualmente em reas centrais da
Engenharia de Produo, j foram contratados e esto sendo elaborados, devendo ser lanados
em breve. Disponibilizando este livro comunidade da Engenharia de Produo do pas, a
ABEPRO acredita que est contribuindo para o aumento da competitividade da economia bra-
sileira, para a ampliao da base de conhecimentos relativos s especificidades dos problemas da
Engenharia de Produo nacional e, sobretudo, para a ampliao e capacitao dos recursos hu-
manos atuantes na Engenharia de Produo do pas.
Finalmente, a Coleo de Livros Didticos em Engenharia de Produo ABEPRO-CAMPUS
faz agradecimento especial aos autores. Eles souberam reconhecer a importncia deste projeto
para a Engenharia de Produo nacional. Assoberbados por agendas carregadas, souberam en-
contrar o tempo necessrio para escrever este livro. Em um tempo onde prioridades profissionais
e pessoais se acumulam, escrever um livro sempre um exerccio de dedicao ao qual nem to-
dos esto dispostos.
Obrigado e parabns aos autores. A ABEPRO espera que este pioneirismo seja seguido por
outros autores e que, em breve, ns sejamos capazes de disponibilizar a Coleo completa de li-
vros comunidade de Engenharia de Produo. Aos leitores agradecemos a confiana deposita-
da na ABEPRO, na Editora Campus e nos autores, ao mesmo tempo em que desejamos que esta
obra seja um instrumento do sucesso profissional de cada um.

Prof. Dr. Mrio Otvio Batalha


Prof. Dr. Osvaldo L. G. Quelhas
Editores da Coleo de Livros Didticos ABEPRO-CAMPUS de EP

XIV
Sumrio

Prefcio IX

Captulo 1. Introduo pesquisa operacional 1


1.1 Origens e definio de pesquisa operacional 1
1.2 Resoluo de problemas com modelos matemticos 3
1.3 Exemplo ilustrativo de modelagem matemtica 5
1.4 Organizao do livro 12

Captulo 2 Otimizao linear 15


2.1 Introduo 15
2.2 Algumas aplicaes e modelagens matemticas 15
2.2.1 Problemas de mistura 15
2.2.2 Problemas de transporte, transbordo e designao 21
2.2.3 Problemas de planejamento da produo 26
2.2.4 Problemas de programao de projetos 34
2.2.5 Problemas de gesto financeira (fluxo de caixa) 35
2.2.6 Problemas de meio ambiente 37
2.2.7 Problemas de corte e empacotamento 39
2.2.8 Ajuste de curvas 44
2.2.9 Controle timo de sistemas lineares 46
2.2.10 Problemas lineares por partes 47
2.3 Hipteses de linearidade 49
2.4 Conceitos bsicos 50
2.4.1 Um problema de otimizao linear 50
2.4.2 Transformao de problemas na forma padro 52
2.5 Resoluo grfica 54
2.6 Teoria bsica e o mtodo simplex 66
2.6.1 Solues bsicas 67
2.6.2* O mtodo simplex 74
2.6.3* O algoritmo simplex 84
2.6.4* Exemplos numricos e interpretaes geomtricas 85
2.6.5* Consideraes sobre implementaes do mtodo simplex 92
2.7 Mtodo simplex em tabelas 93
2.8 Determinao de uma soluo bsica factvel inicial 99
2.9 Programao de metas 103
2.10 Dualidade 109
2.10.1 Relaxao lagrangiana e o problema dual 110
2.10.2 Relaes primais-duais 120
2.10.3 Anlise de sensibilidade (ps-otimizao) 124
2.10.4* O mtodo dual simplex 129
2.10.5* O algoritmo dual simplex 137
2.10.6* Reotimizao aps a incluso de novas restries 142
2.11 Otimizao linear em teoria de jogos 146
2.12 Exerccios 150

Captulo 3. Otimizao discreta 163


3.1 Introduo 163
3.2 Relaxao linear 165
3.3 Modelagem com variveis binrias 167
3.3.1 Implicaes se ento 167
3.3.2 Restrio ativada ou desativada 169

XV
Sumrio

3.3.3 Restries disjuntivas 169


3.3.4 Representao de funo linear por partes 170
3.3.5 Relaes lgicas 170
3.3.6 Representao de valores discretos 171
3.4 Formulaes de problemas clssicos 172
3.4.1 Problemas da mochila 172
3.4.2 Problemas de corte 174
3.4.3 Problemas de designao 178
3.4.4 Problemas de cobertura, partio e empacotamento de conjuntos 181
3.4.5 Problemas de caixeiro-viajante 186
3.4.6 Problemas de carteiro chins 192
3.5 Problemas de logstica 195
3.5.1 Roteamento de veculos 195
3.5.2 Localizao de facilidades 200
3.6 Problemas de produo 205
3.6.1 Planejamento da produo 206
3.6.2 Dimensionamento e programao de lotes 213
3.6.3 Programao da produo 215
3.6.4 Outros problemas de programao 227
3.7* Complexidade computacional 232
3.8* Formulaes alternativas 234
3.9 Mtodos de enumerao implcita e de planos de corte 239
3.9.1 Mtodo branch-and-bound 239
3.9.2 Algoritmo de planos de cortes de Gomory 251
3.9.3 Mtodo branch-and-cut 256
3.10* Pr-processamento 260
3.11* Outros mtodos em otimizao discreta 263
3.12 Notas 273
3.13 Exerccios 275

Captulo 4. Otimizao em redes 289


4.1 Noes bsicas de redes e grafos 289
4.2 Algumas aplicaes e mtodos de resoluo 297
4.2.1 O problema de caminho mnimo 297
4.2.2 O problema de caminho mximo 327
4.2.3 O problema da rvore geradora mnima 331
4.2.4 Problemas de fluxo 335
4.3* O mtodo simplex para redes 350
4.4 Exerccios 368

Captulo 5. Programao dinmica determinstica 375


5.1 Um exemplo simples 375
5.1.1 Clculos do exemplo 377
5.1.2 Determinao do plano timo 380
5.2 Induo progressiva 381
5.2.1 Clculos da induo progressiva 382
5.2.2 Determinao do plano timo com a induo progressiva 385
5.3 Formalizao da programao dinmica 386
5.3.1 Conceitos bsicos 386
5.3.2 Princpio da otimalidade 387
5.3.3 Otimizao recursiva 388
5.3.4 Exemplo de aplicao de programao dinmica com custos no-lineares 389
5.4 Induo da decomposio na programao dinmica 391
5.5 O problema da dimensionalidade em programao dinmica 402
5.6 Exerccios 403

XVI
Sumrio

Captulo 6. Programao dinmica estocstica 407


6.1 A equao recursiva regressiva 407
6.2 Exemplos numricos 408
6.2.1 Controle de estoque 408
6.2.2 Jogo de soma zero 414
6.3* Processos markovianos de deciso 423
6.3.1 Probabilidade de transio 425
6.3.2 Exemplo de manuteno de equipamentos 426
6.4 Exerccios 428

Captulo 7. Sistemas de filas e otimizao 433


7.1 Definio e classificao de um sistema de filas 435
7.2 Medidas de desempenho de um sistema de filas 439
7.2.1 Anlise em equilbrio 441
7.2.2 Frmula de Little 442
7.3 Modelo de filas fundamental 445
7.3.1 A relao das distribuies exponencial e Poisson 445
7.3.2 Modelo de nascimento e morte 449
7.4 Modelos de filas com um servidor e distribuies exponenciais 454
7.4.1 Modelo de fila M/M/1/GD// um servidor 454
7.4.2 Modelo de fila M/M/1/GD/K/ um servidor e capacidade limitada 459
7.4.3 Modelo de fila M/M/1/GD//N um servidor e populao finita 461
7.4.4 Modelos de deciso de filas um servidor 462
7.5 Modelos de filas com mltiplos servidores e distribuies exponenciais 463
7.5.1 Modelo de fila M/M/m/GD// mltiplos servidores 463
7.5.2 Modelo de fila M/M//GD// infinitos servidores (auto-servio) 466
7.5.3 Modelo de fila M/M/m/GD/K/ (com m K) mltiplos servidores com capacidade
limitada 467
7.5.4 Modelo de fila M/M/m/GD/m/ mltiplos servidores sem fila de espera 470
7.5.5 Modelo de fila M/M/m/GD/K/K (com m K) mltiplos servidores com capacidade
limitada e populao finita (manuteno de mquinas) 470
7.5.6 Modelos de deciso de filas mltiplos servidores 473
7.6 Outros modelos de filas com distribuies exponenciais 474
7.6.1 Modelo com desistncia na chegada 474
7.6.2 Modelo com abandono na espera ou com acelerao do servidor 474
7.7 Modelos de filas com distribuies genricas 476
7.7.1 Modelo de fila M/G/1/GD// um servidor 476
7.7.2 Modelo de fila M/G/1/GD// um servidor e chegadas em lote 478
7.7.3 Modelo de fila M/G/m/GD/m/ mltiplos servidores sem fila de espera 478
7.7.4 Modelo de fila M/G//GD// infinitos servidores (auto-servio) 479
7.7.5 Modelos de fila G/G/1/GD// e G/G/m/GD// 480
7.8* Modelos de filas com mltiplas classes de usurios e prioridade 483
7.8.1 Modelo de fila Mi/Gi/1/NPRP// um servidor e prioridade sem interrupo 483
7.8.2 Modelo de fila Mi/M/1/PRP// um servidor e prioridade com interrupo 485
7.8.3 Modelo de fila Mi/M/m/NPRP// mltiplos servidores e prioridade sem interrupo 487
7.9* Modelos de redes de filas 488
7.9.1 Modelos de redes de filas com distribuies exponenciais 489
7.9.2 Modelos de deciso em rede de filas 493
7.10 Exerccios 494
7.11 Resumo dos resultados do captulo 497

Apndice Elementos de sistemas de equaes lineares 501

Referncias Bibliogrficas 509

ndice Remissivo 519

XVII
Pgina deixada intencionalmente em branco
Introduo pesquisa
operacional

1.1 ORIGENS E DEFINIO DE PESQUISA OPERACIONAL


O termo pesquisa operacional uma traduo (brasileira) direta do termo em ingls operational
research, que em Portugal foi traduzido por investigao operacional e nos pases de lngua hisp-
nica, por investigacin operativa. O surgimento deste termo est ligado inveno do radar na In-
glaterra em 1934. Dois anos depois, o ministrio britnico da Aviao criou a Estao de Pesquisa
Manor Bawdsey, em Suffolk, para estudar como a tecnologia do radar poderia ser utilizada para
interceptar avies inimigos. O termo pesquisa operacional atribudo ao superintendente da es-
tao A. P. Rowe,1 que, em 1938, coordenava equipes para examinar a eficincia de tcnicas de
operaes advindas de experimentos com interceptao de radar. Em 1941, foi inaugurada a Seo
de Pesquisa Operacional do Comando da Fora Area de Combate, com equipes envolvidas em
problemas de operaes de guerra, como manuteno e inspeo de avies, escolha do tipo de
avio para uma misso e melhoria na probabilidade de destruio de submarinos. Outros proble-
mas incluam controle de artilharia antiarea e dimensionamento de comboios de frota. A anlise
cientfica do uso operacional de recursos militares de maneira sistemtica foi iniciada na Segun-
da Guerra Mundial.
Aps o final da guerra, a pesquisa operacional evoluiu rapidamente na Inglaterra e nos Es-
tados Unidos. Em 1947, foi implantado o projeto SCOOP (Scientific Computation of Optimal
Programs) no Pentgono, com o objetivo de apoiar decises de operaes na fora area ameri-
cana. O projeto continha um grupo de pesquisa coordenado pelo economista Marshall Wood e
pelo matemtico George Dantzig. Durante esse projeto, Dantzig desenvolveu, formalizou e tes-
tou o mtodo simplex para resolver problemas de programao linear (otimizao linear). Esses
desenvolvimentos se basearam em trabalhos precursores, notadamente do matemtico russo
Leonid Kantorovich2, e o termo programao linear foi sugerido a Dantzig pelo economista T. C.
Koopmans (tanto Koopmans quanto Kantorovich ganharam posteriormente o prmio Nobel de
economia de 1975, pelas contribuies teoria de alocao tima de recursos).
Em 1952, foi fundada a sociedade cientfica americana de pesquisa operacional (ORSA
Operations Research Society of America) e, em 1953, a sociedade inglesa de pesquisa operacional
(ORS Operational Research Society) e a americana de cincias de administrao (TIMS The Institute
of Management Sciences). Em 1957, foi realizada a primeira conferncia internacional de pesqui-

1 Ver, por exemplo, Kirby (2003).


2 O trabalho de 1939 de Kantorovich (intitulado Mtodos matemticos na organizao e no planejamento de produo) con-
siderado um dos precursores da pesquisa operacional, ao apontar que uma das maneiras de se aumentar a eficincia em uma em-
presa seria por meio de melhorias na organizao e no planejamento da produo.

1
2 Pesquisa Operacional

sa operacional em Oxford, na Inglaterra. Nessa conferncia, foi possvel constatar claramente os


focos diferentes nos trabalhos apresentados pelos cientistas ingleses e pelos cientistas americanos.
Os trabalhos dos ingleses enfatizaram estudos de caso ou problemas especficos, enquanto os tra-
balhos dos americanos abordavam modelos e mtodos matemticos (metodologias) em diversos
temas, tais como teoria de estoques, substituio de equipamentos, teoria de filas, programao
(scheduling) de tarefas em mquinas, teoria de jogos, fluxos em redes e otimizao linear.
A partir do incio da dcada de 1950 at o final da dcada de 1960, a pesquisa operacional foi
aplicada em uma variedade de problemas oriundos dos setores pblico e privado. Em um levan-
tamento feito em 1953 com 160 organizaes da Gr-Bretanha, 45 responderam que possuam
um departamento de pesquisa operacional, ou pelo menos uma pessoa nessa atividade. Exemplos
de aplicaes envolviam diversos setores industriais e financeiros, como: minerao, metalrgico,
construo civil e militar, txtil, farmacutico, bancrio e transportes. Em 1967, foram identifi-
cados 766 grupos de pesquisa operacional, dos quais 553 estavam envolvidos no setor industrial
ou em servios financeiros. Exemplos de aplicaes no setor pblico envolviam coleta de lixo,
transporte e polcia, entre outros. Desde ento, a pesquisa operacional tem sido aplicada s mais
diversas reas de produo e logstica, incluindo indstrias de alimentao, automveis, aviao,
computadores, eletrnica, metalurgia, minerao, msseis, mveis, papel, petrleo, telecomuni-
caes, transportes; alm de organizaes de servio (pblicas e privadas), como: bancos e segu-
radoras, hospitais, bibliotecas, sistemas judiciais, agncias de viagens e turismo, energia, esportes,
trnsito, agncias de governo (federais, estaduais e municipais) etc.
Do ponto de vista educacional, na dcada de 1960, a pesquisa operacional era estudada apenas
em cursos de ps-graduao, mas, a partir da dcada de 1970, passou a ser objeto tambm de
cursos de graduao. Os primeiros livros influentes na rea de otimizao foram: Linear Program-
ming: Methods and Applications (Gass, 1958), Applied Dynamic Programming (Bellman e Dreyfus,
1962), Flows in Networks (Ford e Fulkerson, 1963) e Linear Programming and Extensions (Dantzig,
1963). Neste ltimo, no Captulo 1 apresentada uma classificao dos problemas de otimizao,
alm da seguinte definio do problema de programao: construir um enunciado de aes a se-
rem executadas, os instantes da execuo, suas quantidades (chamado programa ou schedule), que
permite que um sistema evolua de um dado estado a um objetivo definido. Na lngua inglesa,
schedule e program so sinnimos e, no contexto da poca, a meta era programar atividades de sis-
temas complexos. Isso gerou a rea de programao matemtica, em que a programao linear um
caso particular de otimizao de funes lineares sujeito a restries lineares.
Atualmente, existem vrias sociedades cientficas em diversos pases que agregam pessoas
e entidades interessadas na teoria e prtica da pesquisa operacional. Por exemplo, na Inglaterra
existe a anteriormente citada ORS; nos Estados Unidos, o INFORMS (Institute for Operations
Research and the Management Sciences), criado em 1995 agregando as sociedades anteriores
ORSA e TIMS; na Alemanha, a GOR (German Operations Research Society); no Canad, a CORS
(Canadian Operations Research Society); e, em Portugal, a APDIO (Associao Portuguesa de In-
vestigao Operacional). Existem tambm grupos regionais de associaes de sociedades
cientficas de pesquisa operacional, como a ALIO (Associacin Latino-Ibero-Americana de
Investigacin Operativa), que rene doze sociedades cientficas, a EURO (Associao das Socie-
dades de Pesquisa Operacional da Europa), que rene 29 sociedades cientficas, a APORS (As-
sociao das Sociedades de Pesquisa Operacional da sia e do Pacfico), que rene dez sociedades
cientficas, e a NORAM (Associao das Sociedades de Pesquisa Operacional da Amrica do
Norte). H tambm a Federao Internacional das Sociedades de Pesquisa Operacional (IFORS
International Federation of Operational Research Societies), com 52 membros de sociedades nacio-
nais e mais os grupos regionais.
A pesquisa operacional iniciou-se no Brasil basicamente na dcada de 1960. O primeiro
simpsio brasileiro de pesquisa operacional foi realizado em 1968 no ITA, em So Jos dos Campos,
Captulo 1: Introduo pesquisa operacional 3

SP. Em seguida, foi fundada a SOBRAPO (Sociedade Brasileira de Pesquisa Operacional), que pu-
blica o peridico cientfico Pesquisa Operacional h mais de 25 anos. O livro 25 Anos de Pesquisa
Operacional no Brasil, edio comemorativa do Jubileu de Prata da SOBRAPO, lanado em 1993,
contm relatos da histria da pesquisa operacional no Brasil e de pesquisadores pioneiros no pas.3
Uma definio de pesquisa operacional foi proposta na primeira pgina do peridico ingls
Operational Research Quarterly em 1967, que, de forma resumida, consiste no desenvolvimento de
mtodos cientficos de sistemas complexos, com a finalidade de prever e comparar estratgias ou
decises alternativas. O objetivo dar suporte definio de polticas e determinao de aes
de forma cientfica. Para alguns autores, pesquisa operacional significa abordagem cientfica para
tomada de decises, que procura determinar como melhor projetar e operar um sistema, usual-
mente sob condies que requerem a alocao de recursos escassos.4 A sociedade europia EURO
define pesquisa operacional como uma abordagem cientfica para a soluo de problemas no
gerenciamento de sistemas complexos. De forma sucinta, podemos dizer que pesquisa operacional
um enfoque cientfico sobre a tomada de decises. A denominao pesquisa operacional
comumente motivo de crticas e reflexes, pois no revela a abrangncia da rea e pode dar a falsa
impresso de estar limitada anlise de operaes. Alguns autores sugerem outras denominaes
preferveis, por exemplo, anlise de decises, mas o termo pesquisa operacional bastante difun-
dido no mbito das engenharias (em particular, da engenharia de produo), cincias de admi-
nistrao, cincias de computao, economia, estatstica e matemtica, entre outros, de modo que,
apesar das limitaes, preferimos usar este termo no presente livro.
Mais recentemente, a pesquisa operacional tambm tem sido chamada de cincia e tecnologia
de deciso.5 O componente cientfico est relacionado a idias e processos para articular e mo-
delar problemas de deciso, determinando os objetivos do tomador de deciso e as restries sob
as quais se deve operar. Tambm est relacionado a mtodos matemticos para otimizar sistemas
numricos que resultam quando se usam dados nos modelos. O componente tecnolgico est
relacionado a ferramentas de software e hardware para coletar e comunicar dados, e organizar
esses dados, usando-os para gerar e otimizar modelos e reportar resultados, ou seja, a pesquisa
operacional est se tornando um importante elemento nas metodologias de tecnologia da infor-
mao. A sociedade americana INFORMS atualmente define pesquisa operacional e cincias de
administrao como disciplinas profissionais que tratam da aplicao da tecnologia da informa-
o para a tomada de decises informada.

1.2 RESOLUO DE PROBLEMAS COM MODELOS MATEMTICOS


Se fazer cincia a capacidade de observar e descrever fenmenos naturais, sociais, econmicos,
entre outros, a matemtica tem uma importncia fundamental na descrio desses fenmenos.
A partir da observao de fenmenos, processos ou sistemas, que podem ser fsicos, qumicos,
biolgicos, econmicos, buscam-se leis que os regem. Essas leis, se passveis de serem descritas
por relaes matemticas, do origem aos modelos matemticos. O termo modelo neste texto usa-
do como objeto abstrato, que procura imitar as principais caractersticas de um objeto real para
fins de representar o objeto real.
Em geral, para formular um modelo matemtico, simplificaes razoveis do sistema ou pro-
blema real precisam ser consideradas (em diferentes nveis) e a validao do modelo depende de
a soluo do modelo matemtico ser coerente com o contexto original. Com isso, o modelo ma-
temtico uma representao simplificada (abstrao) do problema real. Ele deve ser suficiente-

3 Em Campello et al. (2003) e Bornstein et al. (2004), esto descritos os feitos de outros dois pesquisadores que deram uma con-
tribuio significativa para o crescimento e a consolidao da pesquisa operacional no pas.
4 Veja, por exemplo, Winston (2004).
5 Veja, por exemplo, Shapiro (2001).
4 Pesquisa Operacional

mente detalhado para captar os elementos essenciais do problema, mas suficientemente tratvel
por mtodos de resoluo. O diagrama da Figura 1.1 ilustra um processo simplificado da abor-
dagem de soluo de um problema usando a modelagem matemtica.6
A formulao (modelagem) define as variveis e as relaes matemticas para descrever o com-
portamento relevante do sistema ou problema real. A deduo (anlise) aplica tcnicas matemti-
cas e tecnologia para resolver o modelo matemtico e visualizar quais concluses ele sugere. A
interpretao (inferncia) argumenta que as concluses retiradas do modelo tm significado su-
ficiente para inferir concluses ou decises para o problema real. Freqentemente, uma avaliao
(julgamento) dessas concluses ou decises inferidas mostra que elas no so adequadas e que
a definio do problema e sua modelagem matemtica precisam de reviso e, ento, o ciclo re-
petido. Exemplos de modelos matemticos so os modelos de programao matemtica (otimi-
zao matemtica), como: programao linear (otimizao linear), programao linear inteira
(otimizao discreta), programao em redes (otimizao em redes) e programao no-linear (oti-
mizao no-linear). Outros exemplos so modelos de teoria de filas para estudar a congesto em
sistemas e determinar medidas de avaliao de desempenho e polticas timas de operao.
A pesquisa operacional e, em particular, a programao matemtica tratam de problemas de
deciso e faz uso de modelos matemticos que procuram representar (em certo sentido, imitar)
o problema real. Variveis (incgnitas) so definidas e relaes matemticas entre essas variveis so
estabelecidas de forma a descrever o comportamento do sistema. O modelo matemtico resol-
vido (isto , so determinados valores para as incgnitas, produzindo solues, que dependem
de dados do problema) e o passo seguinte consiste na validao do modelo, isto , verificar se as
solues obtidas pela resoluo do modelo matemtico, para diversas situaes alternativas (por
exemplo, alterando-se dados do problema como demandas, custos etc.) so compatveis com a
realidade, conforme evidenciado na Figura 1.1. A soluo do modelo apia o processo de toma-
da de decises, mas em geral diversos outros fatores pouco tangveis, no quantificveis, tambm
devem ser levados em considerao para a deciso final (por exemplo, solues que no levem
em conta o comportamento humano podem falhar). Convm salientar que modelos no substi-
tuem tomadores de deciso.

Figura 1.1 Processo de modelagem.

6 Embora se concentre em modelos matemticos, o diagrama da Figura 1.1 tambm pode ser interpretado para outros modelos
de pesquisa operacional, por exemplo, modelos de simulao discreta.
Captulo 1: Introduo pesquisa operacional 5

Alguns autores sugerem que pesquisa operacional tanto cincia quanto arte: cincia por
causa das tcnicas matemticas envolvidas (objetivo), arte porque o sucesso de todas as fases que
precedem e sucedem a soluo do modelo matemtico depende muito da criatividade e experincia
do pessoal de pesquisa operacional (subjetivo). A abordagem de resoluo de um problema por
meio de pesquisa operacional envolve vrias fases baseadas no diagrama da Figura 1.1: (i) defi-
nio do problema; (ii) construo do modelo; (iii) soluo do modelo; (iv) validao do mode-
lo; e (v) implementao da soluo.
A fase (i) define o escopo do problema em estudo. A fase (ii) traduz a fase (i) em relaes ma-
temticas ou lgicas de simulao, ou uma combinao delas. A fase (iii) utiliza mtodos de so-
luo e algoritmos7 conhecidos para resolver o modelo da fase (ii). A fase (iv) verifica se o modelo
proposto representa apropriadamente o problema, ou seja, se o modelo prediz adequadamente
o comportamento do sistema. A qualidade da soluo de um modelo depende da preciso com
que este modelo representa o problema. Um modelo mais preciso, mesmo que resolvido de for-
ma aproximada, pode ser bem mais til do que um modelo menos preciso resolvido de forma
exata. A qualidade da soluo do modelo tambm depende da qualidade dos dados de entrada
do modelo; a conhecida expresso inglesa garbage in, garbage out (entra lixo, sai lixo) sintetiza isso.
Finalmente, a fase (v) preocupa-se com a implementao da soluo na prtica, traduzindo os
resultados do modelo em decises.
Obviamente, um modelo matemtico nem sempre formulado de uma s vez e podemos ter
ciclos entre as fases (i)(v) para reviso do modelo. Equvocos no so incomuns, mesmo para os
mais experientes modeladores. Algumas vezes a anlise da soluo do modelo suficiente para evi-
denciar suas inconsistncias e, ento, reformulamos o modelo; outras vezes, somente aps a ope-
rao do modelo na prtica que somos capazes de detectar falhas e, ento, repetimos todo o ciclo.
Com o aprimoramento dos mtodos de soluo dos modelos e o desenvolvimento tecnolgico
dos computadores e da informtica (principalmente a partir dos anos 80, com a popularizao
dos microcomputadores), tem sido possvel resolver modelos de pesquisa operacional cada vez
mais complexos, outrora intratveis. O leitor poder se questionar sobre a necessidade do estu-
do desses mtodos diante das facilidades do uso direto dos diversos softwares comerciais j exis-
tentes, baseados nas tcnicas de pesquisa operacional. Entretanto, nem sempre nos deparamos
com problemas de aplicao direta nesses aplicativos computacionais, sendo necessrio um cer-
to domnio da teoria em que se baseia o mtodo. Mesmo com a facilidade do uso desses
aplicativos, o desconhecimento da abrangncia e das limitaes do aplicativo inibe seu uso ou
pode conduzir a um uso equivocado. Embora no seja necessrio entender a eletrnica de uma
mquina de calcular para se fazer bom uso dela, nem ser conhecedor da teoria dos nmeros, qual
seria a importncia de uma mquina de calcular para uma pessoa sem noo das operaes arit-
mticas e de como oper-la?

1.3 EXEMPLO ILUSTRATIVO DE MODELAGEM MATEMTICA


Sistema MRP: O sistema computacional MRP II (Manufacturing Resource Planning) amplamen-
te usado para o planejamento e controle de sistemas de manufatura. Este sistema uma verso ex-
pandida do sistema MRP (Material Requirements Planning) e inclui finanas, contabilidade e outros
aspectos comerciais. O MRP usado para determinar quanto e quando produzir ou comprar com-
ponentes e matrias-primas para produzir itens finais. Na Figura 1.2, mostra-se uma estrutura em
forma de rvore dos itens componentes 4, 5, 6, 7 e 8, usados para produzir os itens finais 1, 2 e 3.
Esta rvore possui quatro nveis: o nvel 1 corresponde aos itens finais 1, 2 e 3; o nvel 2 est asso-
ciado aos componentes 4 e 5; o nvel 3 ao componente 6; e o nvel 4 aos componentes 7 e 8.

7 Um algoritmo uma seqncia finita e no ambgua de instrues computveis para solucionar um problema.
6 Pesquisa Operacional

Figura 1.2 Estrutura de itens finais e componentes.

De modo geral, a lgica do sistema MRP composta de duas fases interativas, descritas a se-
guir a partir da Figura 1.2:
Fase I: Suponha que a demanda externa dos itens finais seja conhecida ao longo de um hori-
zonte de planejamento8 de T perodos, e que um lote de um item componente esteja disponvel
no mesmo perodo em que foi encomendado, para facilitar a explicao. Calcula-se, ento, o ta-
manho dos lotes dos itens finais em cada perodo do horizonte de planejamento que geram de-
mandas internas dos componentes 4 e 5 do nvel 2. Prosseguindo desta forma, calcula-se o
tamanho dos lotes dos componentes 6 no nvel 3 e o tamanho dos lotes dos componentes 7 e 8
no nvel 4 em cada perodo ao longo do horizonte de planejamento. O clculo dos tamanhos dos
lotes de todos os itens ignora restries de capacidade, tais como horas de trabalho e horas de
mquinas disponveis.
Fase II: Calcula-se a capacidade utilizada para a produo dos lotes de cada item em cada pe-
rodo. Se essa capacidade for maior que a capacidade disponvel em um ou mais perodos,
retorna-se fase I e alteram-se os planos de produo, isto , os tamanhos dos lotes dos itens fi-
nais e itens componentes ao longo do horizonte de planejamento. Esse procedimento interativo
entre as duas fases prossegue at que se ache uma soluo que respeite a capacidade disponvel.
Esse procedimento pode consumir muito tempo computacional ou, ainda, pode no encontrar
uma soluo que atenda as restries de capacidade.
Para ilustrar essas duas fases, considere um exemplo simples de produo de dois itens:9 um
item final, denotado por item 1, que possui um nico item componente, denotado por item 2. Uma
unidade do item 1 requer uma unidade do item 2. Considere que o estoque inicial dos dois itens
zero, o horizonte de planejamento consiste em 4 semanas, e que 80 horas de trabalho esto dis-

8 Horizonte de planejamento o tempo em que a empresa planeja sua produo.


9 Este exemplo foi inspirado em Drexl e Kimms (1997).
Captulo 1: Introduo pesquisa operacional 7

ponveis a cada semana. A demanda do item 1 em cada semana conhecida e deve ser atendida
pela produo ou estoque do item 1. O custo total de um plano de produo, ao longo do hori-
zonte de planejamento, compreende:
Custo fixo e custo varivel de produo de cada item em cada semana: o custo fixo in-
depende da quantidade produzida e est associado preparao de mquinas, enquanto
o custo varivel depende do tamanho do lote.
Custo de estoque: quando um lote de um item produzido em uma semana para atender
a demanda de uma semana futura.
O problema de deciso pode ser enunciado da seguinte forma: quanto deve ser produzido de
cada item em cada semana de forma a minimizar o custo total, respeitando a restrio de capa-
cidade? A soluo deste problema est longe de ser trivial, e envolve um balanceamento entre os
custos de produo e estoque. Ao se ignorar a restrio de capacidade, tem-se dois planos de pro-
duo extremos com relao a estes custos. O plano de produo que atende exatamente a de-
manda de cada semana leva a um custo zero de estoque, porm, em geral, a um alto custo de
produo. O outro plano corresponde a produzir na primeira semana a demanda total, isto , a
demanda das 4 semanas. Esse plano, em geral, corresponde a um baixo custo de produo, mas
resulta em um alto custo de estoque. Provavelmente, o melhor plano de produo consiste em
decises intermedirias, com produo em alguns perodos do horizonte de planejamento.
A seguinte notao utilizada para a descrio de um modelo matemtico. Itens so repre-
sentados por i, i = 1, 2, e perodos de tempo so denotados por t, t = 1, 2, 3, 4. Considere os
seguintes parmetros do problema:
d1t = demanda do item 1 no perodo t;
hi = custo unitrio de estoque por perodo do item i;
Si = custo fixo de produo do item i;
ci = custo unitrio de produo do item i;
ai = tempo de trabalho para produzir uma unidade do item i.
Os valores dos parmetros do exemplo so mostrados na Tabela 1.1.
A modelagem de um problema de pesquisa operacional e, em particular, de programao ma-
temtica envolve trs aspectos fundamentais.
Definio das decises a serem tomadas.
Restries que limitam as escolhas das decises.
Objetivos que determinam preferncias na escolha de decises.
Voltando ao nosso exemplo, quais as decises a serem tomadas? Como j ressaltado, as deci-
ses compreendem o tamanho dos lotes produzidos dos itens 1 e 2 em cada semana. A quanti-
dade em estoque dos itens 1 e 2 tambm envolve decises que dependem das decises acerca dos

Tabela 1.1
Dados do exemplo.

d1t hi Si ai ci

t =1 t=2 t =3 t=4
i =1 30 25 25 20 25 900 1 1

i=2 - - - - 10 850 1 1
8 Pesquisa Operacional

tamanhos dos lotes produzidos em cada semana. Quais so as restries que limitam o tamanho
dos lotes dos itens 1 e 2? A capacidade disponvel em horas de trabalho em cada perodo restringe
as decises. Alm disso, a demanda precisa ser atendida sem atraso. O que faz uma deciso ser
melhor que outra? No caso deste exemplo, o objetivo minimizar a soma dos custos de produ-
o e estoque. Portanto, a deciso que leve ao valor mnimo desse custo total a preferida.
Considere as variveis de deciso:
xit = quantidade do item i produzida no perodo t;
I it = estoque do item i no final do perodo t (igual ao estoque no incio do perodo t+1).
Defina o custo de produo do item i no perodo t como:

Si + ci xit se xit > 0


Kit ( xit ) =
0 se xit = 0.
O modelo matemtico de otimizao para este exemplo pode ser formulado da seguinte maneira:
minimizar a soma dos custos K11(x11) + h1I11 + K12(x12) + h1I12 + + K24(x24) + h2I24, ou seja:
2 4
Minimizar Kit ( xit ) + hi Iit (1.1)
i =1 t =1

sujeito s restries:
I1t = I1, t 1 + x1t d1t t = 1,2,3,4 (1.2)
I2t = I2, t 1 + x2t x1t t = 1,2,3,4 (1.3)
a1x1t + a2x2t 80 t = 1,2,3,4 (1.4)
xit 0, Iit 0, i = 1, 2 t = 1,2,3,4 (1.5)

com I10 = I20 = 0, isto , o estoque inicial dos itens no incio do perodo t = 1 nulo.
A expresso (1.1) chamada de funo objetivo e, neste modelo, expressa a minimizao dos
custos de produo e de estoque ao longo do horizonte de planejamento. As restries (1.2) e (1.3)
correspondem ao balanceamento de estoque dos itens 1 e 2 em cada perodo t, ou seja, o esto-
que de cada item no final do perodo t deve ser igual ao estoque desse item no final do perodo
anterior t1, mais a quantidade produzida desse item no perodo t, menos a quantidade deman-
dada desse item no perodo t. As restries (1.4) garantem que o consumo de capacidade em cada
perodo t limitado a 80 horas por semana, e as restries (1.5) indicam que as variveis so no-
negativas. Note que as variveis x1t e x2t so dependentes, pois competem pela capacidade dis-
ponvel em cada perodo.
Uma soluo factvel (ou vivel) para o modelo (1.1)(1.5) uma escolha para os valores das va-
riveis que satisfaz todas as restries. Uma soluo tima uma soluo factvel que minimiza a fun-
o objetivo (1.1). Pode-se ter uma ou mltiplas solues timas para um modelo, todas com o
mesmo valor da funo objetivo. Um mtodo timo (ou exato) para um modelo de otimizao aquele
que gera uma soluo tima. Em casos em que o modelo complexo, determinar uma soluo tima
em tempo computacional razovel (considerando as decises envolvidas) pode ser muito difcil ou
at impossvel com as ferramentas e tcnicas conhecidas na atualidade, ento, podemos utilizar um
mtodo heurstico (ou no-exato) para gerar uma boa soluo (soluo subtima) para o modelo.
As fases I e II descritas anteriormente constituem um procedimento para tentar obter uma
soluo factvel, no necessariamente tima. Para o exemplo anterior, a fase I pode ser descrita
mais detalhadamente pelos seguintes passos:
Captulo 1: Introduo pesquisa operacional 9

Passo 1: Aplique um mtodo para achar a soluo tima para o item 1 isoladamente, isto , re-
solva o subproblema:
4

Minimizar K (x ) + h I
t =1
1t 1t 1 1t

I1t = I1, t 1 + x1t d1t t = 1,2,3,4


xit 0, I1t 0 t = 1,2,3,4

e denote a soluo tima por x1*t , I1*t , t = 1, 2,3, 4 .


Passo 2: Aplique um mtodo para achar a soluo tima para o item 2 isoladamente, isto , re-
solva o subproblema:
4

Minimizar K (x ) + h I
t =1
2t 2t 2 2t

I2t = I2, t 1 + x2t x*1t t = 1,2,3,4


xit 0, Iit 0 t = 1,2,3,4

e denote a soluo tima por x2*t , I 2*t , t = 1, 2,3, 4 . Note que os valores x1*t , t = 1, 2,3, 4 , tornam-se
demandas para a equao de balanceamento de estoque do item 2 em cada perodo t. Essas de-
mandas so chamadas de demandas dependentes na literatura sobre MRP.
Passo 3: Verifique se a restrio de capacidade (1.4) satisfeita, isto , se:
a1 x1*t + a2 x2*t 80 t = 1,2,3,4.
Se estas restries de capacidade so satisfeitas, ento a soluo x1*t , I1*t , x2*t , I 2*t , t = 1, 2,3, 4 ,
uma soluo factvel, no necessariamente tima. Caso contrrio, o procedimento falha, pois no
gera uma soluo factvel para o problema.
Os passos 13 constituem um mtodo heurstico para resoluo do modelo (1.1)(1.5) que,
ao contrrio de um mtodo timo, no garante que a soluo encontrada seja factvel (mesmo
que o problema tenha pelo menos uma soluo factvel) ou tima. Existem heursticas propostas
na literatura que formalizam procedimentos adicionais de transferncia de quantidades de pro-
duo dos itens entre os perodos, em busca de uma soluo factvel e de baixo custo (fase II).
A heurstica descrita anteriormente razovel no sentido de que decompe um problema de
mltiplos itens interdependentes em subproblemas independentes, um para cada item. No
entanto, sua desvantagem no levar em considerao a restrio de capacidade (1.4). Mesmo
que essa restrio no exista no problema, este procedimento ainda heurstico, pois a so-
luo tima dos subproblemas independentes no corresponde, em geral, soluo tima do
problema original.
A seguir, aplicamos ao exemplo os passos de 1 a 3 da heurstica. O mtodo que gera a solu-
o de custo mnimo para cada item nos passos 1 e 2 apresentado em detalhes na seo 5.4 do
Captulo 5. A soluo obtida no passo 1 mostrada na Tabela 1.2. O plano de produo do item
1 a demanda dependente do item 2, e na Tabela 1.3 mostramos o plano de produo do item
2. Ao executarmos o passo 3, observamos que a capacidade consumida na produo dos itens 1
e 2 de 110 horas no perodo 1 e de 90 horas no perodo 3, excedendo a capacidade disponvel
de 80 horas em cada perodo. Este poderia ser o plano de produo gerado por um software co-
mercial MRP, alertando que o plano no factvel do ponto de vista da capacidade disponvel.
10 Pesquisa Operacional

Tabela 1.2
Plano de produo do item 1 obtido no passo 1.

Perodo 1 2 3 4

Demanda 30 25 25 20
Item 1
Plano de produo 55 0 45 0

Estoque 25 0 20 0

Tabela 1.3
Plano de produo do item 2 obtido no passo 2.

Perodo 1 2 3 4

Demanda 55 0 45 0
Item 2
Plano de produo 55 0 45 0

Estoque 25 0 20 0

Para gerar um plano factvel a partir do plano anterior, analisemos inicialmente a antecipao
da produo de 10 unidades do item 1 do perodo 3 para o perodo 2 (a antecipao para o pe-
rodo 1 violaria ainda mais a capacidade disponvel). Essa transferncia faz com que a restrio
de capacidade no perodo 3 seja atendida. No entanto, no existem 10 unidades do item 2 para
atender essa demanda de 10 unidades do item 1, a menos que a produo do item 2 no pero-
do 1 seja elevada de 10 unidades, o que aumentaria a violao de capacidade nesse perodo. Por-
tanto, essa antecipao gera uma soluo infactvel.
Analisemos agora o adiamento da produo do item 1. A quantidade mxima de produo do
item 1 que pode ser transferida do perodo 1 para o perodo 2 de 25 unidades, devido de-
manda do item 1 no perodo 1. Transferindo-se essa quantidade para o perodo 2, o novo plano
de produo do item 1 mostrado na Tabela 1.4. A capacidade necessria no perodo 1 para a
produo dos itens 1 e 2 de 85 unidades, 5 unidades a mais do que a disponvel. Para elimi-
nar esse excesso de capacidade de 5 unidades, transferem-se 5 unidades de produo do item 2
do perodo 1 para o perodo 2, como mostrado na Tabela 1.5.
Para eliminar o excesso de capacidade de 10 unidades do perodo 3, podemos transferir 45
unidades do item 2 para o perodo 2, eliminando assim o gasto de custo fixo desse item no pe-
rodo 3. A soluo mostrada nas Tabelas 1.4 e 1.610 factvel e tem custo 5.750. Note que 5 uni-
dades do item 2 esto desnecessariamente em estoque no fim do perodo 1, e a transferncia
dessas 5 unidades para o perodo 2 resulta em outra soluo factvel com custo 5.700, confor-
me mostrado na Tabela 1.7. Pode-se mostrar que a soluo das Tabelas 1.4 e 1.7 tima apli-
cando-se um dos mtodos timos descritos no Captulo 3 para resolver o modelo (1.1)(1.5).
Este exemplo ilustra a convenincia e a importncia de utilizar modelos de pesquisa
operacional. Uma anlise adicional importante verificar como essa soluo se altera em funo
de possveis perturbaes nos valores dos parmetros do problema (anlise de sensibilidade), por
exemplo, devido a incertezas nas demandas e capacidades dos perodos. Com o uso de mode-
los, essa anlise pode ser feita, por exemplo, resolvendo-se o modelo para diferentes cenrios (va-
lores de parmetros) e comparando-se as solues obtidas.
10 Soluo apresentada em Drexl e Kimms (1997).
Captulo 1: Introduo pesquisa operacional 11

Tabela 1.4
Plano de produo do item 1 factvel.

Perodo 1 2 3 4

Demanda 30 25 25 20
Item1
Plano de produo 30 25 45 0

Estoque 25 0 20 0

Tabela 1.5
Plano de produo do item 2 revisado.

Perodo 1 2 3 4

Demanda 30 25 45 0
Item 2
Plano de produo 50 5 45 0

Estoque 20 0 20 0

Tabela 1.6
Plano de produo do item 2 factvel.

Perodo 1 2 3 4

Demanda 30 25 45 0
Item 2
Plano de produo 50 50 0 0

Estoque 20 45 0 0

Tabela 1.7
Plano de produo do item 2 timo.

Perodo 1 2 3 4

Demanda 30 25 45 0
Item 2
Plano de produo 45 55 0 0

Estoque 15 45 0 0
12 Pesquisa Operacional

1.4 ORGANIZAO DO LIVRO


Este livro est organizado em duas partes: a Parte I estuda modelos determinsticos de progra-
mao matemtica, como: otimizao linear (programao linear), otimizao discreta (programa-
o linear inteira), otimizao em redes (fluxos em redes) e programao dinmica determinstica,
juntamente com mtodos de soluo e algoritmos. No Captulo 2, estudamos a otimizao linear,
que envolve modelos com funo objetivo e restries lineares. Apresentamos exemplos de apli-
caes de modelos lineares em problemas de mistura, problemas de transporte, transbordo e de-
signao, problemas de planejamento da produo (incluindo mix de produtos, seleo de
processos, dimensionamento de lotes), problemas de programao de projetos, problemas de ges-
to financeira, problemas de gesto do meio ambiente, problemas de corte e empacotamento de
materiais, problemas de ajuste de curvas, problemas de controle timo, entre outros. Para resol-
ver os modelos lineares, apresentamos em detalhes o mtodo simplex e o algoritmo primal
simplex. Apresentamos tambm uma verso mais resumida do mtodo simplex em tabelas, como
uma alternativa para disciplinas de menor nfase em algoritmos. Discutimos tambm em deta-
lhes a teoria de dualidade, a anlise de sensibilidade (ps-otimizao), o algoritmo dual simplex,
a programao de metas e uma introduo da otimizao linear na teoria dos jogos.
No Captulo 3, estudamos a otimizao discreta, que envolve modelos com funo objetivo e
restries lineares; porm, com variveis que s podem assumir valores inteiros (0, 1, 2, ...). Apre-
sentamos exemplos de aplicaes de modelos lineares inteiros em problemas da mochila, proble-
mas de corte e empacotamento de materiais, problemas de designao, problemas de cobertura,
partio e empacotamento de conjuntos, problemas logsticos de caixeiro-viajante e carteiro chi-
ns, problemas de roteamento11 e programao de veculos, problemas de localizao de facilida-
des12 e instalaes (incluindo p-medianas, p-centros), problemas de planejamento da produo
(incluindo dimensionamento de lotes e dimensionamento de lotes combinado com programao
da produo) e problemas de programao (scheduling) da produo (incluindo uma mquina,
mquinas paralelas, flow-shop e job-shop), entre outros. Para resolver os modelos lineares inteiros,
apresentamos em detalhes o algoritmo branch-and-bound, o algoritmo de planos de corte e o
algoritmo branch-and-cut. Apresentamos tambm uma introduo aos mtodos de Benders,
Dantzig-Wolfe, relaxao lagrangiana e mtodos heursticos.
No Captulo 4, estudamos a otimizao (fluxo) em redes, que trata de problemas que podem
ser modelados como uma rede (grafo). Introduzimos noes bsicas da teoria de grafos e fluxos
em redes e apresentamos alguns exemplos de aplicaes de modelos de redes em problemas de
caminho mnimo, problemas de caminho mximo, problemas de rvore geradora mnima, pro-
blemas de fluxo de custo mnimo, problemas de transporte, entre outros. Para resolver os modelos
em redes, apresentamos em detalhes os algoritmos de Dijkstra, Floyd, Ford e Fulkerson e o m-
todo simplex adaptado para redes.
No Captulo 5, estudamos a programao dinmica determinstica, em que o problema origi-
nal decomposto em subproblemas menores. Apresentamos exemplos de aplicao da tcnica de
programao dinmica em problemas de planejamento da produo, dimensionamento de lotes
de produo e problemas da mochila, ilustrando a utilizao de frmulas recursivas progressivas
e regressivas. Na seo de exerccios desse captulo, tambm propomos exemplos de aplicaes
em problemas de gesto financeira, gesto de mo-de-obra, programao da produo e proble-
mas de otimizao linear e no-linear.
11 O termo roteirizao de veculos, embora no encontrado nos dicionrios de lngua portuguesa, tem sido usado como equiva-
lente palavra inglesa routing (ou routeing). O termo roteamento de veculos tambm utilizado alternativamente por diversos au-
tores brasileiros.
12 A palavra facilities mais abrangente em ingls, com significado mais amplo que instalaes, que so prdios onde so gerados
produtos e/ou servios. Embora a palavra facilidade no tenha o mesmo significado de facilities, ela utilizada por diversos autores
brasileiros.
Captulo 1: Introduo pesquisa operacional 13

Na Parte II do livro tratamos de modelos probabilsticos que consideram incertezas, como mo-
delos de programao dinmica estocstica e teoria de filas. No Captulo 6, estudamos a programao
dinmica estocstica (ou probabilstica). Assim como o caso determinstico, a programao din-
mica estocstica decompe o problema original em subproblemas menores. Apresentamos exem-
plos de aplicao dessa tcnica em problemas de controle de estoques e no jogo da velha.
Discutimos tambm o processo markoviano de deciso com uma aplicao ao problema de ma-
nuteno de equipamentos. Na seo de exerccios desse captulo, outros exemplos de aplicaes
so propostos em problemas de distribuio, confiabilidade de sistemas, planejamento da produo
e gesto de recursos.
Finalmente, no Captulo 7, estudamos a teoria de filas, tambm chamada de teoria de conges-
to. Essa teoria estuda sistemas de filas de espera, determinando medidas de desempenho para
esses sistemas, tais como: nmero mdio de usurios na fila, tempo mdio de espera em fila, uti-
lizao dos dispositivos de servio etc. Tambm discutimos alguns modelos de otimizao usando
teoria de filas. Apresentamos modelos de filas com um e mltiplos servidores (em paralelo), uma
e mltiplas filas (em paralelo), um e mltiplos estgios em srie e combinao em srie e parale-
lo (redes de filas). Discutimos modelos com processos de chegada e servio dos usurios com dis-
tribuies de probabilidade exponenciais e modelos com distribuies de probabilidade genricas.
Tambm apresentamos modelos com mltiplas classes de usurios e prioridades de atendimen-
to diferentes para cada classe. Os modelos so ilustrados com exemplos de aplicaes em siste-
mas de manufatura e sistemas de servio.
Devido a limitaes de espao, alguns tpicos importantes em pesquisa operacional no es-
to includos neste volume, tais como: a otimizao no-linear (programao no-linear), em que
as funes do modelo so no-lineares; a otimizao multiobjetivo (alm de programao de metas
em otimizao linear), em que o modelo envolve vrios objetivos em conflito, a programao
estocstica e a otimizao robusta, os mtodos de controle de estoques e de previso de deman-
da, a teoria de jogos e a simulao discreta, que podero ser objeto de um futuro volume.
Pgina deixada intencionalmente em branco
Otimizao linear

2.1 INTRODUO
Este captulo dedicado ao estudo da otimizao linear e abrange aplicaes, teoria e desenvol-
vimento dos principais mtodos de soluo. Os modelos de otimizao linear tm sido ampla-
mente utilizados na prtica. Muitas situaes prticas podem ser representadas por modelos desse
tipo; tambm comum encontrarmos esses modelos representando subproblemas de casos mais
complexos. Embora tais modelos j tivessem sido propostos h mais tempo, o ano de 1947 foi um
marco na rea da otimizao, quando o mtodo simplex foi publicado, seguindo-se intensas pes-
quisas de novos mtodos e implementaes eficientes e aplicaes em diversas reas, tais como
agricultura, planejamento da produo industrial, logstica, telecomunicaes, finanas e muitas
outras. Outro marco importante em otimizao linear ocorreu em 1984, com a publicao de um
mtodo de pontos interiores, ao qual tambm seguiram-se intensas pesquisas. Os mtodos do tipo
simplex e do tipo pontos interiores so, atualmente, as principais ferramentas computacionais para
a resoluo de problemas de otimizao linear.

2.2 ALGUMAS APLICAES E MODELAGENS MATEMTICAS


Exemplos de problemas que podem ser formulados como um problema de otimizao linear apa-
recem nas mais variadas reas. Nesta seo, apresentamos alguns exemplos que, embora simpli-
ficados, fornecem uma idia concreta dos problemas tratados pela otimizao linear.

2.2.1 Problemas de mistura


Problemas deste tipo consistem em combinar materiais obtidos na natureza (ou restos de outros
j combinados anteriormente) para gerar novos materiais ou produtos com caractersticas con-
venientes. Esto entre os primeiros problemas de otimizao linear implementados com sucesso
na prtica. A seguir apresentamos alguns exemplos particulares desta classe de problemas.

Raes

Fbricas de raes produzem vrios tipos de raes para determinados animais, como bovinos,
eqinos, caninos de pequeno e grande portes, felinos, galinceos etc. Essas raes so produzi-
das pela mistura de alimentos ou farinhas de restos de alimentos: milho, farelo de arroz, farinha
de osso, soja, farinha de peixe, entre outros (na prtica, so dezenas de ingredientes utilizados),

15
16 Pesquisa Operacional

cujos preos de mercado so conhecidos. A composio nutricional desses ingredientes conhe-


cida, isto , a quantidade de protena, clcio, ferro, mangans, calorias etc.; na prtica, o nme-
ro de nutrientes de cerca de duas dezenas. A nutrio veterinria especifica as necessidades
mnimas e mximas desses nutrientes por quilo de rao para cada tipo de animal. Um proble-
ma de otimizao surge para determinar quais devem ser as quantidades ideais de cada ingre-
diente por quilo de cada rao de modo que as necessidades nutricionais sejam atendidas e o
custo total dos ingredientes seja o menor possvel. Note que as necessidades nutricionais impem
restries, de modo que nem toda mistura de ingredientes aceitvel, e o custo o critrio para
se caracterizar a melhor soluo.
Problemas de mistura surgem em vrios outros processos industriais, como na produo de
adubos, sucos concentrados de laranja, ligas metlicas etc. e geralmente so parte de um problema
mais geral de planejamento e controle da produo.1 Apresentamos a seguir mais alguns exem-
plos do problema da mistura.

Ligas metlicas

Fundies produzem diversos tipos de ao a partir de vrios insumos, como: lingotes de ferro,
grafite, sucatas industriais de diversos tipos de ao, entre outros. Esses insumos so colocados em
um forno de alta temperatura, no qual em estado lquido, se misturam para formar uma liga
metlica, isto , uma mistura. A composio da liga a ser produzida, em termos de carbono, sil-
cio, mangans etc., determinada por normas tcnicas da metalurgia (depende da aplicao da
liga), bem como a composio dos produtos a serem misturados. Os preos dos insumos podem
variar substancialmente e so conhecidos. Deve-se determinar as quantidades de cada insumo a
serem fundidas, de modo que a composio da liga obtida satisfaa as normas tcnicas da meta-
lurgia e que o preo final da liga seja o menor possvel.

Composio de areias para filtro


Devido grande permeabilidade, areias so usadas na constituio de filtros de Estaes de Tra-
tamento de guas de abastecimento (ETA) como meio filtrante por interceptar impurezas exis-
tentes na gua afluente. Para a construo das unidades de filtrao de uma ETA, dispe-se de
areias provenientes de alguns portos passveis de explorao com composies granulomtricas
distintas. Os custos de dragagem, transporte, seleo e preparo para a utilizao da areia variam
para cada porto. As areias devem ser dispostas em camadas que devem obedecer s composies
granulomtricas estabelecidas por norma, em quantidades predeterminadas. O problema consiste
em combinar os volumes de areia provenientes de cada porto, de modo a atender s especifica-
es da norma, com o menor custo possvel.

Formulao matemtica do problema da mistura


O problema da mistura, em geral, consiste na obteno ou fabricao de um produto, aqui chama-
do de mistura, combinando-se alguns materiais disponveis na natureza ou disponveis no merca-
do (no exemplo da rao, pode ser milho, farinha de osso etc.). A mistura produzida a partir de
ingredientes que possuem os componentes desejados no novo produto (na rao, os componentes
so protenas, vitaminas etc.) e que devem satisfazer determinadas especificaes (na rao, as
especificaes so resultados de pesquisa em nutrio animal). A composio de cada ingrediente
conhecida, isto , as propores dos componentes de cada ingrediente so dadas, como tambm
o seu custo unitrio. Deseja-se determinar as quantidades de cada ingrediente que devemos utili-
zar para obter uma mistura com a composio especificada e com o menor custo possvel.
1 Para uma aplicao em indstrias ctricas veja, por exemplo, Munhoz e Morabito (2001).
Captulo 2: Otimizao linear 17

Seja n o nmero de ingredientes que podem ser utilizados na produo da mistura e m o n-


mero de componentes relevantes para a mistura. Um dos passos fundamentais para se escrever
um modelo matemtico identificar as incgnitas (variveis do problema), ou seja, o que se de-
seja determinar. No problema da mistura, as variveis so as quantidades dos ingredientes. As-
sim, definimos a varivel:
xj: a quantidade do ingrediente j que deve ser utilizada em uma unidade de mistura, j=1, 2,, n.
Uma unidade de mistura pode ser, por exemplo, 1kg. Essas variveis devem ser no-negati-
vas, pois um valor negativo para xj no tem significado, isto : xj 0, j = 1, 2, ..., n so restries
do modelo. Para escrever as demais restries, relativas composio da mistura e seu custo, usa-
mos a seguinte notao:
aij a frao do componente i no ingrediente j, i = 1, ..., m e j = 1, ..., n,
bi a frao do componente i na mistura, i = 1, ..., m,
cj o custo de uma unidade do ingrediente j, j = 1, ..., n.
Como aij a frao do componente i no ingrediente j, isto , a quantidade do componente i
em uma unidade da mistura, ento aijxj a quantidade do componente i em xj unidades do in-
grediente j. Portanto, ai1x1 + ai2x2 + + ainxn a quantidade total do componente i em uma
unidade da mistura (ver as hipteses de linearidade na Seo 2.3). Como a quantidade do com-
ponente i em uma unidade da mistura deve ser bi, escrevemos
ai1 x1 + ai2 x2 + + ain xn = bi i = 1, 2, ..., m.
Nas m equaes anteriores, supe-se que no h alteraes na composio dos ingredientes
quando estes se misturam. Por exemplo, no caso da rao, a quantidade total de clcio na mis-
tura a soma das quantidades de clcio presentes nos ingredientes. Essas hipteses so funda-
mentais para se escrever um modelo linear e so discutidas na Seo 2.3.
Como xj, j = 1, ..., n, so as quantidades dos ingredientes a serem utilizadas em uma unidade
da mistura, ento a soma dessas quantidades deve resultar em uma unidade da mistura, ou seja,
x1 ++ xn = 1.
O custo de uma unidade da mistura a soma dos custos de todos os ingredientes utilizados
para sua obteno, ou seja, c1 x1 + c2 x2 + . . . + cn xn.
Desejamos minimizar esse custo, portanto, o problema da mistura escrito como:
Minimizar f(x1, x2, ..., xn) = c1 x1 + c2 x2 + . . . + cn xn
a11 x1 + a12 x2 + + a1n xn = b1
a21 x1 + a22 x2 + + a2n xn = b2

am1 x1 + am2 x2 + + amn xn = bm
x1+ x2 + + xn = 1
x1 0, x2 0, , xn 0.

Exemplo 2.1 Uma agroindstria deve produzir um tipo de rao para determinado animal. Essa
rao produzida pela mistura de farinhas de trs ingredientes bsicos: osso, soja e resto de pei-
xe. Cada um desses trs ingredientes contm diferentes quantidades de dois nutrientes necess-
rios a uma dieta nutricional balanceada: protena e clcio. O nutricionista especifica as
necessidades mnimas desses nutrientes em 1kg de rao. Cada ingrediente adquirido no mer-
cado com um certo custo unitrio ($/kg). Na Tabela 2.1, os dados do problema so apresentados.
Por exemplo, a farinha de osso constituda de 20% de protena e 60% de clcio; a rao deve
ser composta de pelo menos 30% de protena e 50% de clcio; 1kg da farinha de osso custa $0,56
18 Pesquisa Operacional

Tabela 2.1
Dados para o problema da rao.

Ingredientes
Nutrientes Osso Soja Peixe Rao

Protena 0,2 0,5 0,4 0,3

Clcio 0,6 0,4 0,4 0,5

Custos ($/kg) 0,56 0,81 0,46

(os ingredientes podem ser constitudos por outros elementos, mas que no so importantes para
o problema em questo).
Deve-se determinar em que quantidades os ingredientes devem ser misturados de modo a pro-
duzir uma rao que satisfaa s restries nutricionais com o mnimo custo. Defina a varivel
de deciso xj como a quantidade (em kg) do ingrediente j que deve ser utilizada em uma unida-
de (1kg) da rao, j = osso, soja, peixe. Com isso, o custo da mistura dado por:
f(xosso, xsoja, xpeixe) = 0,56 xosso + 0,81 xsoja + 0,46 xpeixe
e as restries de composio so dadas por:
0,2 xosso + 0,5 xsoja + 0,4 xpeixe 0,3
0,6 xosso + 0,4 xsoja + 0,4 xpeixe 0,5.
Observe a pequena diferena no enunciado, que resulta em restries de desigualdade (em vez
de igualdade), pois foram estabelecidos percentuais mnimos dos componentes na mistura.
Temos tambm que a soma dos ingredientes resulta em uma unidade da mistura, ou seja,
xosso + xsoja + xpeixe = 1
e que esses ingredientes podem ser utilizados ou no, isto ,
xosso 0, xsoja 0, xpeixe 0.
O modelo matemtico completo fica, ento:
Minimizar f(xosso, xsoja, xpeixe) = 0,56 xosso + 0,81 xsoja + 0,46 xpeixe
0,2 xosso + 0,5 xsoja + 0,4 xpeixe 0,3
0,6 xosso + 0,4 xsoja + 0,4 xpeixe 0,5
xosso + xsoja + xpeixe = 1
xosso 0, xsoja 0, xpeixe 0.
A melhor soluo, chamada soluo tima deste modelo, dada por: x*osso = 0,5, x*soja = 0 e
x peixe = 0,5, o que significa que a rao deve ser constituda de 50% de farinha de osso e 50%
*

de farinha de peixe. O leitor pode determinar o custo dessa soluo e procurar por solues al-
ternativas. Um dos principais objetivos deste captulo o de fornecer ferramentas para determinar
solues timas de modelos de otimizao linear.
O exemplo apresentado, bem como os demais que se seguem, tem como objetivo apenas ilus-
trar uma situao. Os dados utilizados no correspondem a valores reais, que podem ser obtidos
em tabelas nutricionais ou por anlise laboratorial. n

Para uma refeio humana, na qual a palatabilidade importante, alm das necessidades nu-
2

tricionais, deve-se considerar novas restries, como a proporcionalidade entre os alimentos. Por
2 Bornstein e Namen (2004) apresentam uma reviso dos modelos de dietas e desenvolvem uma ferramenta computacional para
avaliao dos modelos.
Captulo 2: Otimizao linear 19

exemplo, uma refeio pode incluir uma salada composta dos ingredientes: maionese, salsa, ma
e batata. Sejam x1, x2, x3 e x4 as quantidades em gramas desses ingredientes na salada (conse-
qentemente, na refeio). Tais ingredientes devem aparecer nas restries nutricionais, contri-
buindo para o valor nutricional da refeio. Entretanto, a quantidade total da salada deve estar
entre 100g e 200g e deve ser composta de 4% a 6% de maionese, 4% a 6% de salsa, 30% a 40%
de ma e 50% a 60% de batata. Note que a quantidade de salada dada por: x1 + x2 + x3 + x4.
Assim, deve-se adicionar ao modelo da mistura as seguintes restries:
0,04(x1 + x2 + x3 + x4) x1 0,06(x1 + x2 + x3 + x4)
0,04(x1 + x2 + x3 + x4) x2 0,06(x1 + x2 + x3 + x4)
0,30(x1 + x2 + x3 + x4) x3 0,40(x1 + x2 + x3 + x4)
0,50(x1 + x2 + x3 + x4) x4 0,60(x1 + x2 + x3 + x4)
100 x1 + x2 + x3 + x4 200.

Exemplo 2.2 Na implantao de uma barragem de grande consumo de concreto, decidiu-se uti-
lizar como fontes de agregados grados: (i) britas granticas obtidas pelo desmonte da rocha lo-
cal; (ii) seixos rolados disponveis nos vales prximos barragem; e (iii) pedra britada comercial,
ilustrados na Figura 2.1. Os custos baseados na explorao, britagem, transporte e preparo para
a utilizao desses agregados e composies granulomtricas esto nas Figuras 2.1 e 2.2.

Figura 2.1 Agregados grados.

Figura 2.2 Composies granulomtricas dos agregados grados.


20 Pesquisa Operacional

Com o objetivo de otimizar a qualidade do concreto, chegou-se, por meio de pesquisas basea-
das na compacidade (nmero de vazios intergranulares) e ensaios laboratoriais, a uma faixa de com-
posio granulomtrica ideal para a dosagem desses agregados, ilustrada na Figura 2.3.
O problema consiste em determinar as fraes de cada fonte para a constituio da composi-
o granulomtrica ideal, de forma a minimizar o custo da produo de concreto.
As variveis de deciso so:
x1 quantidade (m3) de britas granticas obtidas por desmonte de rochas
x2 quantidade (m3) de seixo rolado
x3 quantidade (m3) de brita comercial.
Com isso, o custo da mistura dado por f(x1, x2, x3) = 6x1 + 7x2 + 18 x3.
A restrio 0,05x2 + 0,20x3 0,10 impe que a mistura tenha uma proporo mnima de 10%
de agregado de faixa granulomtrica entre 2,4 e 19mm na mistura (veja Figuras 2.2 e 2.3).
Da mesma forma, considerando as demais granulometrias, obtemos:
0,10x1 + 0,35x2 + 0,78x3 0,20 (19-38mm)
0,20x1 + 0,60x2 + 0,02x3 0,35 (38-76mm)
0,70x1 0,35 (76-152mm).
Os ingredientes utilizados produzem uma unidade de mistura, ou seja, x1 + x2 + x3 = 1, e,
completando as restries, temos as condies de no-negatividade das variveis: x1 0, x2 0,
x3 0. O modelo matemtico completo dado por:
Minimizar f(x1, x2, x3) = 6x1 + 7x2 + 18x3
0,05x2 + 0,20x3 0,10
0,10x1+ 0,35x2 + 0,78x3 0,20
0,20x1+ 0,60x2 + 0,02x3 0,35
0,70x1 0,35
x1+ x2 + x3 = 1
x1 0, x2 0, x3 0. n
Observao: Nem sempre um problema de otimizao tem uma soluo possvel. No exem-
plo anterior novas fontes de agregadados grados, com caractersticas diversas, podem ser con-
sideradas, o que significa novas variveis que podem proporcionar solues alternativas.
Nos exerccios propostos no final deste captulo so apresentadas algumas extenses para o
problema da mistura, como a produo de vrias misturas a partir do mesmo conjunto de ingre-
dientes, os quais esto disponveis em estoque em quantidades limitadas ou, ainda, quando a
demanda pela mistura ocorre ao longo de um horizonte de planejamento de T perodos.

Figura 2.3 Faixas granulomtricas ideais.


Captulo 2: Otimizao linear 21

2.2.2 Problemas de transporte, transbordo e designao


Esses problemas referem-se, por exemplo, ao transporte ou distribuio de produtos dos centros
de produo aos mercados consumidores. Os produtos podem ser os mais variados possveis:
petrleo, equipamentos, mquinas, produo agrcola, energia eltrica etc. O problema consiste
em transportar o produto dos centros de produo aos mercados consumidores de modo que o
custo total de transporte seja o menor possvel. Admite-se, geralmente, que as quantidades pro-
duzidas ou ofertadas em cada centro e as quantidades demandadas em cada mercado consumi-
dor so conhecidas. O transporte deve ser efetuado respeitando-se as limitaes de oferta e
atendendo demanda.

Formulao matemtica do problema de transporte

Denominemos os centros de produo de origens e os mercados consumidores, de destinos. Su-


ponha que existam m origens e n destinos para um produto e que o custo de transportar uma
unidade desse produto da origem i para o destino j cij. Alm disso, a oferta do produto na origem
i ai e a demanda do produto no destino j bj. Um esquema grfico para representar as origens,
os destinos, as disponibilidades do produto e as demandas apresentado na Figura 2.4.
As variveis do problema so as quantidades transportadas das origens aos destinos:
xij quantidade transportada do produto da origem i para o destino j.
Essas quantidades no podem ser negativas, portanto, as restries xij 0, i = 1, , m e j = 1,
, n, fazem parte do modelo matemtico. Se xij a quantidade transportada do produto da ori-
gem i para o destino j, ento cijxij o custo incorrido para se realizar esse transporte. O custo to-
tal de transporte a soma dos custos de transporte de todas as quantidades transportadas de
m n
todas as origens i a todos os destinos j, ou seja, c x ij ij . Esse custo deve ser minimizado. Sa-
i =1 j =1
bemos que o que transportado de cada origem i a todos os destinos j, j = 1, 2, , n, no pode
ultrapassar a quantidade disponvel de produto na origem i, ou seja,
n

x
j =1
ij ai .

Desejamos tambm que as quantidades transportadas das diversas origens ao destino j satis-
faam a demanda requerida neste destino, ou seja,
m

x ij = bj .
i =1

Figura 2.4 Rede de transporte.


22 Pesquisa Operacional

O modelo completo do problema de transporte definido por:


m n
Minimizar f(x11, x12, ..., xmn) = c x ij ij
i =1 j =1
n

x ij ai i = 1, , m
j =1
m

x ij = bj j = 1, , n
i =1

xij 0 i = 1, , m e j = 1, , n.

Exemplo 2.3 Considere uma companhia distribuidora de bebidas que tem 2 centros de produo
(m = 2) Araraquara e So Jos dos Campos e 3 mercados consumidores principais (n = 3)
So Paulo, Belo Horizonte e Rio de Janeiro. O custo unitrio (cij) de se transportar uma unida-
de do produto de cada centro de produo a cada mercado consumidor dada na Tabela 2.2.
Nessa tabela, tambm so apresentadas as demandas (bj) de cada mercado e a quantidade mxi-
ma disponvel do produto em cada centro de produo (ai) no prximo perodo.
Definindo a varivel xij como a quantidade do produto a ser enviada do centro de produo i,
i = 1 (Araraquara), 2 (So Jos dos Campos), ao mercado j, j = 1 (So Paulo), 2 (Belo Horizon-
te), 3 (Rio de Janeiro), o modelo que representa o problema dado por:
Minimizar f(x11, ..., x23) = 4 x11 + 2 x12 + 5 x13 + 11 x21 + 7 x22 + 4 x23 (2.1)
x11 + x12 + x13 800 (2.2)
x21 + x22 + x23 1000 (2.3)
x11 + x21 = 500 (2.4)
x12 + x22 = 400 (2.5)
x13 + x23 = 900 (2.6)
x11 0, x12 0, x13 0, x21 0, x22 0, x23 0. (2.7)

A funo em (2.1) representa o custo total de se transportar o produto dos centros de produ-
o aos mercados. As restries (2.2) e (2.3) indicam que a quantidade que pode ser transportada
no pode ultrapassar a disponibilidade do produto no centro de produo. As restries (2.4),
(2.5) e (2.6) impem que as demandas dos mercados sejam atendidas, ou seja, os produtos de-
vem ser transportados dos diversos centros produtores em quantidade suficiente para suprir as

Tabela 2.2
Dados para o problema de transporte da companhia distribuidora de bebidas.

Centro de Mercado Suprimento


suprimento So Paulo (1) Belo Horizonte (2) Rio de Janeiro (3) disponvel(ai)

Araraquara (1) 4 2 5 800

S. J. Campos (2) 11 7 4 1000

Demanda dos 500 400 900


mercados (bj)
Captulo 2: Otimizao linear 23

demandas dos mercados. As restries (2.7) garantem que as quantidades a serem transportadas
no podem ser negativas.
n

Exemplo 2.4 Transporte de agregados para a construo de uma rodovia.


Suponha que, para a construo de uma rodovia, no estejam disponveis na regio jazidas de
rochas adequadas obteno de pedra britada. Faz-se necessrio, portanto, o transporte desse
material de jazidas mais prximas para alguns pontos convenientes preestabelecidos ao longo do
caminho onde ser implantada a estrada (ver Figura 2.5), ao menor custo. Na Figura 2.5, so
apresentados todos os caminhos possveis que ligam cada pedreira aos pontos de depsito.
Neste problema, temos m = 4 jazidas correspondentes s origens e n = 3 depsitos correspon-
dentes aos destinos, cujos dados esto na Tabela 2.3. As quantidades ofertadas (ai ltima colu-
na) e demandadas (bj ltima linha), em toneladas, bem como os custos de transportar 1 tonelada
de pedra da pedreira i para o depsito j (cij que funo de vrios fatores, como tempo de via-
gem, condies das estradas de acesso, condies dos veculos que servem a trajetria em ques-
to etc.), so dados na Tabela 2.3.
A unidade de referncia pode ser alterada para outra mais apropriada, como, em vez de to-
nelada, poderia ser a carga de um caminho, de modo que o custo de transportar uma unidade
seria o custo de uma viagem de caminho.
Se xij a varivel de deciso que representa a quantidade transportada de rochas da jazida i
para o ponto de depsito j, podemos formular este problema da seguinte maneira:
Minimizar f(x11, x12, ..., x43) = 30x11 + 13x12 + 21x13 + 12x21 + 40x22 + 26x23 + 27x31 +
15x32 + 35x33 + 37x41 + 25x42 + 19x43

x11 + x12 + x13 433


x21 + x22 + x23 215
x31 + x32 + x33 782
x41 + x42 + x43 300
x11 + x21 + x31 + x41 = 697
x12 + x22 + x32 + x42 = 421
x13 + x23 + x33 + x43 = 612
x11 0, x12 0, x13 0, x21 0, x22 0, x23 0, x31 0, x32 0, x33 0, x41 0, x42 0, x43 0.
n

Em alguns problemas de transporte, para se fazer o deslocamento, podem-se usar localidades


intermedirias (ou de transbordo), ou seja, localidades que no so nem centros produtores nem
mercados consumidores dos produtos.3 Essas localidades intermedirias podem representar, por
exemplo, depsitos ou centros de distribuio. Tais problemas so denominados de problemas de trans-
bordo. O que transportado de cada localidade intermediria aos mercados consumidores no pode
ultrapassar a quantidade de produto que chega dos centros produtores a esses locais. Alm disso,
transportar alm do necessrio mais caro (ou no mnimo igual) do que transportar apenas o
necessrio. Portanto, devemos observar que a quantidade transportada de cada localidade interme-
diria aos mercadores consumidores igual quantidade de produto que chega dos centros produ-
tores a esses locais de transbordo. Na Figura 2.6 est ilustrada uma situao em que um centro de
distribuio j recebe produtos de dois centros produtores e abastece trs mercados consumidores.
Assim, devemos adicionar ao modelo de transporte as restries xij = xjk para toda locali-
dade intermediria j que represente um centro de distribuio. i k

3 Veja, por exemplo, Ahuja et al. (1993) e Ghiani et al. (2004). Um exemplo de aplicao do problema de transbordo encontrado
em Yoshizaki et al. (1996).
24 Pesquisa Operacional

Figura 2.5 Pedreiras fornecedoras de pedra britada: P1, P2, P3, P4; pontos convenientes para depsito de material: D1, D2,
D3; trajeto da rodovia: R.

Tabela 2.3
Dados do problema de transporte de agregados.

Depsitos
Pedreiras 1 2 3 Oferta ai

1 30 13 21 433

2 12 40 26 215

3 27 15 35 782

4 37 25 19 300

demanda bj 697 421 612

Exemplo 2.5 Considere o problema da companhia distribuidora de bebidas do Exemplo 2.3 e su-
ponha que ela dispe de dois depsitos para abastecer os mercados consumidores. Para evitar
ambigidade, enumeramos cada localidade distintamente os centros de produo: Araraquara
(1), S. J. dos Campos (2); os depsitos: Campinas (3), Barra Mansa (4); e os mercados consumi-
dores: So Paulo (5), Belo Horizonte (6) e Rio de Janeiro (7). Suponha que os mercados sejam
abastecidos somente a partir dos depsitos. Os custos unitrios de se transportar uma unidade
do produto de cada centro de produo para cada depsito e de cada depsito para cada mer-
cado consumidor so dados nas Tabelas 2.4 e 2.5, respectivamente.
Se definirmos a varivel xij como a quantidade do produto enviada da localidade i localida-
de j, o modelo que representa o problema dado a seguir. Note que algumas variveis xij no es-
to definidas, por exemplo, a varivel x15 no definida, pois So Paulo (5) no abastecido por
Araraquara (1).
Captulo 2: Otimizao linear 25

Figura 2.6 Centro de distribuio j: x1j + x2j = xj3 + xj4 + xj5.

Tabela 2.4
Custos unitrios de transporte de centros de suprimento aos depsitos.

Centros de suprimento Depsitos


Campinas (3) Barra Mansa (4)

Araraquara (1) 1 3

S. J. Campos (2) 1 2

Tabela 2.5
Custos unitrios dos depsitos aos mercados consumidores.

Depsitos Mercados consumidores


So Paulo (5) Belo Horizonte (6) Rio de Janeiro (7)

Campinas (3) 1 3 3

Barra Mansa (4) 3 4 1

Minimizar f(x13, ..., x47) = 1x13 + 3x14 + 1x23 + 2x24 + 1x35 + 3x36 + 3x37 + 3x45 + 4x46 + 1x47
x13 + x14 800
x23 + x24 1000
x35 + x45 = 500
x36 + x46 = 400
x37 + x47 = 900
x13 + x23 = x35 + x36 + x37
x14 + x24 = x45 + x46 + x47
x13 0, x14 0, ... x46 0, x47 0. n
26 Pesquisa Operacional

Modelos de transporte tambm podem representar outras situaes. Por exemplo, suponha o
problema em que temos n tarefas que precisam ser atribudas a n pessoas e que pij mede o inte-
resse do indivduo i na realizao da tarefa j. Seja a varivel de deciso xij igual a 1 se o indiv-
duo i for designado para a realizao da tarefa j e 0, caso contrrio. A formulao deste problema
de designao (ou atribuio)
n n
Maximizar f(x11, ..., xnn) = p
i =1 j =1
x
ij ij (2.8)
n

x
j =1
ij =1 i = 1, 2, , n. (2.9)
n

x
i =1
ij =1 j = 1, 2, , n (2.10)

xij = 0 ou 1, i = 1, 2, , n, j = 1, 2, , n. (2.11)
A funo objetivo em (2.8) representa o interesse total a ser maximizado. O conjunto de res-
tries (2.9) impe que cada indivduo designado a uma e somente uma tarefa. O conjunto de
restries (2.10) impe que cada tarefa realizada por apenas um e somente um indivduo. As
restries (2.11) impem que as variveis de deciso tomem os valores inteiros 0 ou 1. Devido a
essas restries, este um modelo de otimizao linear inteira, a ser estudado no Captulo 3. No
entanto, devido a caractersticas particulares da estrutura deste modelo de designao, as restries
(2.11) podem ser substitudas por xij 0 e, mesmo assim, pode-se mostrar que o modelo tem so-
luo tima inteira (ver Propriedade 4.4, de integralidade, no Captulo 4).
Problemas de transporte e transbordo podem ser estendidos para tratar de situaes mais ge-
rais, por exemplo, envolvendo mltiplos perodos. Esses problemas tambm so discutidos no
Captulo 4, uma vez que podem ser vistos como problemas de otimizao em redes.

2.2.3 Problemas de planejamento da produo

A classe de problemas de planejamento e programao da produo bastante ampla, e vrios


desses problemas podem ser modelados por meio de otimizao linear. Neste captulo, introdu-
zimos alguns desses problemas; outros so estudados nos prximos captulos.

Mix de produo (planejamento esttico)

Problemas de mix de produo, isto , fabricao de diversos produtos, aparecem em diversas si-
tuaes reais e envolvem decidir quais produtos e quanto fabricar de cada produto em um pero-
do (mais adiante discutimos o planejamento da produo dinmico, que envolve vrios perodos
com decises interdependentes). Tendo em vista a capacidade limitada de produo (mquinas,
recursos humanos, capital, armazenagem etc.) e os diversos produtos que a empresa pode fabri-
car e vender, deseja-se determinar quais fabricar e quanto fabricar de cada produto, de modo a
maximizar a margem de contribuio ao lucro da empresa.

Formulao matemtica do problema de mix de produo

Seja xj a quantidade do produto j, j = 1, 2, , n, a ser produzida em um perodo do planejamen-


to (por exemplo, um ms). Seja Ci a capacidade do recurso i, i = 1, 2, , m, disponvel no pero-
do. Considere que, para a produo de uma unidade do produto j, so consumidas aij unidades do
recurso i. Uma produo mnima do produto j, digamos dj, precisa ser realizada no perodo, devi-
Captulo 2: Otimizao linear 27

do aos pedidos em carteira e a uma poltica de estoque mnimo para preservao do produto no
mercado. O departamento de vendas da empresa acredita que as vendas desse produto no exce-
dam vj unidades no perodo em estudo. Cada unidade do produto j resulta em uma contribuio
ao lucro de lj para a empresa. O problema de mix de produo pode ser formulado como:
n
Maximizar f(x1, ..., xn) = l j x j (2.12)
j =1

n
aij x j Ci i = 1, 2, , m (2.13)
j =1

dj xj vj j =1, 2, , n. (2.14)
A funo em (2.12) representa a contribuio ao lucro da empresa, a ser maximizada. As res-
tries (2.13) limitam a fabricao dos produtos devido disponibilidade dos diversos recursos
e as restries (2.14) impem que a quantidade fabricada de cada produto no pode ser inferior
mnima preestabelecida, nem exceder o que o mercado pode absorver.

Exemplo 2.6 Um fabricante de geladeiras precisa decidir quais modelos deve produzir em uma
nova fbrica recentemente instalada. O departamento de marketing e vendas realizou uma pes-
quisa de mercado que indicou que, no mximo, 1.500 unidades do modelo de luxo e 6.000 uni-
dades do modelo bsico podem ser vendidas no prximo ms. A empresa j contratou um certo
nmero de empregados e, com isso, dispe de uma fora de trabalho de 25.000 homens-hora por
ms. Cada modelo de luxo requer dez homens-hora e cada modelo bsico requer oito homens-
hora para ser montado. Alm disso, uma mesma linha de montagem compartilhada pelos dois
modelos e considere que a capacidade de produo desta linha seja de 4.500 geladeiras por ms.
O lucro unitrio do modelo de luxo de $100,00, e do modelo bsico de $50,00. Deseja-se de-
terminar quanto produzir de cada modelo de modo a maximizar o lucro da empresa.
Definimos a varivel xj como a quantidade de geladeiras do tipo j, j = luxo, bsico, a ser produ-
zida no ms, de modo que o lucro da empresa representado por: f(xluxo, xbsico) = 100xluxo + 50xbsico.
As restries de produo devido limitao de capacidade ficam: 10xluxo + 8xbsico 25.000, de-
vido limitao da fora de trabalho por ms e, xluxo + xbsico 4.500, devido limitao da linha
de montagem. As restries devido ao mercado e no-negatividade so: 0 xluxo 1.500 e 0
xbsico 6.000. O modelo completo para este problema dado por:
Maximizar f(xluxo, xbsico) = 100 xluxo + 50 xbsico
10 xluxo + 8 xbsico 25.000
xluxo + xbsico 4.500
0 xluxo 1.500 e 0 xbsico 6.000. n

Restries de chance

No Exemplo 2.6, o potencial mximo de vendas de geladeiras foi estimado pelo departa-
mento de marketing e vendas em 1.500 unidades do modelo de luxo e 6.000 unidades do mo-
delo bsico. Em geral, h incertezas com respeito a esses valores estimados da demanda, de
modo que h interesse em um balanceamento (em ingls, trade-off) entre o potencial de lucro
(produzir menos do que a demanda e deixar de lucrar mais) e o risco de superproduo (pro-
duzir mais do que a demanda e incorrer em mais custos). Para controlar melhor o risco de
superproduzir, podemos utilizar restries de chances baseadas na distribuio de probabilidade
da demanda do produto.
28 Pesquisa Operacional

Tomemos, por exemplo, o modelo de geladeira de luxo e a restrio do modelo anterior: xluxo
1.500. Em vez de usar essa restrio no modelo, podemos usar uma abordagem alternativa, basea-
da na varivel aleatria de demanda Dluxo e na sua distribuio de probabilidade com mdia E(Dluxo)
= 1.500. Seja luxo um limite superior para a probabilidade de superproduo de geladeiras de luxo
(fixado pelo gerente). Ou seja, a probabilidade de a demanda Dluxo ser menor do que a quantidade
produzida xluxo deve ser menor do que este limite luxo: P ( Dluxo xluxo ) luxo . Por exemplo, se esse
limite for fixado pelo gerente em luxo = 0,10, ento, a quantidade a ser produzida xluxo deve ser tal
que a probabilidade de superproduo P( Dluxo xluxo ) seja menor ou igual a 10%.
Admitindo-se que a demanda Dluxo tem distribuio normal com mdia E(Dluxo) e varincia
V(Dluxo) (ou desvio-padro ( Dluxo ) = V ( Dluxo ) ) conhecidas, segue-se que:4

D E ( Dluxo ) xluxo E ( Dluxo )


P ( Dluxo xluxo ) = P luxo luxo
( Dluxo ) ( Dluxo )

D E(D )
Seja z luxo o valor que satisfaz a igualdade: P luxo luxo
z = luxo , isto , a funo dis-
( Dluxo )
luxo

tribuio normal acumulada no ponto z luxo igual a luxo. Dado luxo, o valor z luxo facilmente
obtido, por exemplo, em tabelas de distribuio normal acumulada, e negativo para valores de
luxo menores que 0,50. Considerando a desigualdade anterior e o fato de que a distribuio nor-
xluxo E ( Dluxo )
mal acumulada uma funo crescente, segue-se que z luxo , ou seja,
( Dluxo )
xluxo E ( Dluxo ) + z luxo ( Dluxo )
que uma restrio (linear) de chance para substituir a restrio anterior xluxo E(Dluxo) = 1.500
no modelo de mix de produo. Por exemplo, se E(Dluxo) = 1.500, ( Dluxo ) = 100 e luxo = 0,10,
obtemos z0,10 = 1,282 (tabela de distribuio normal), o que resulta em: xluxo E ( Dluxo ) 1372 .5
Restries de chance tambm podem ser usadas para abordar incertezas de outros parmetros
alm de demanda; por exemplo, capacidade de produo.

Seleo de processos (planejamento esttico)

Uma empresa fabrica vrios produtos em um perodo e, para isso, dispe de processos alterna-
tivos. Esses processos podem representar tecnologias diferentes, opes de hora extra, turno adi-
cional, subcontratao etc. O problema consiste em determinar quanto produzir de cada produto
em cada processo no perodo, com o objetivo de minimizar os custos de produo, sujeito a li-
mitaes de recursos e requisitos de demanda. Considere os seguintes dados:
cij custo de fabricar uma unidade do produto i no processo j, j = 1, 2, ..., n,
di demanda do produto i, i = 1, 2, ..., m, no perodo,
bk quantidade disponvel do recurso k, k = 1, 2, ..., K, no perodo,
aijk quantidade do recurso k necessria para fabricar uma unidade do produto i no processo j,
Ji conjunto de processos alternativos que fabricam o produto i.
Definimos as variveis de deciso por:
xij nmero de produtos do tipo i fabricados no processo j.
O modelo completo para este problema dado por:6
4 Para detalhes de clculo de probabilidades com distribuies normais, veja, por exemplo, Meyer (1983) e Ross (1993).
5 Bitran e Yanasse (1984) analisam os erros incorridos devido a aproximaes feitas com modelos determinsticos de problemas
estocsticos de produo.
6 Para mas detalhes deste problema, veja Jonhson e Montgomery (1974); para um exemplo de aplicao deste problema, combi-
nado a um problema de dimensionamento de lotes, na produo de gros eletrofundidos, veja tambm Luche e Morabito (2005).
Captulo 2: Otimizao linear 29
n
Minimizar f ( x11 , x12 ,..) = cij xij
i =1 j J i

xij = d i i = 1, ..., n
jJ i

n
aijk xij bk k = 1, ..., K
i =1 j J i

xij0 i = 1, ..., n, jJi.

Dimensionamento de lotes (planejamento dinmico)

Empresas de manufatura, em geral, fabricam diversos tipos de produtos solicitados por diferen-
tes clientes, muitas vezes em grandes quantidades, os quais devem estar prontos para entrega em
diferentes datas previamente agendadas. Como as fbricas tm capacidades de produo limita-
das (mquinas, mo-de-obra etc.), necessrio planejar a produo, isto , decidir o qu e
quanto produzir (em outras palavras, dimensionar os lotes de produo) em cada perodo de um
horizonte de planejamento. A necessidade de antecipao da fabricao de produtos (estocados
de um perodo para o outro) acarreta custos de estocagem e algumas dificuldades operacionais.
No planejamento da produo, deseja-se determinar o tamanho dos lotes de produo, para
atender a demanda na data solicitada e de modo que a soma dos custos de produo e estocagem
seja mnima.

Formulao matemtica de um problema de dimensionamento de lotes monoestgio

Considere uma empresa que fabrica n produtos e deseja programar sua produo nos prxi-
mos T perodos de tempo. Este conjunto de perodos de tempo para a qual a empresa planeja
sua produo denominado horizonte de planejamento (conforme Captulo 1). Supomos que a
demanda de cada produto em cada perodo do horizonte de planejamento conhecida. Em
cada perodo, os recursos necessrios para a produo so limitados e renovveis, isto , em cada
perodo, uma quantidade de recursos est disponvel e no depende de como foram utilizados
nos perodos anteriores. Exemplos de recursos renovveis so mo-de-obra, energia eltrica e
horas de mquinas, enquanto recursos no renovveis so, por exemplo, matrias-primas que
sobram em um perodo e podem ser utilizadas nos perodos seguintes. H a possibilidade de
estocagem de produtos de um perodo para o outro. Considere os seguintes dados do pro-
blema:
dit demanda do item i no perodo t, i = 1, ..., n, t = 1, ..., T,
Rt disponibilidade de recursos (renovveis) no perodo t,
ri quantidade de recursos necessrios para a produo de uma unidade do item i,
cit custo de produzir uma unidade do item i no perodo t,
hit custo de estocar uma unidade do item i no perodo t.

As variveis de deciso so:


xit o nmero de itens do tipo i produzidos no perodo t,
Iit o nmero de itens do tipo i em estoque no final do perodo t.
Os estoques iniciais do horizonte de planejamento Ii0 so dados. A seguir, so detalhadas as
restries do problema.
30 Pesquisa Operacional

Equaes de conservao de estoque


Para cada item i, o nvel de estoque no final do perodo t igual ao que se tinha em estoque
no final do perodo anterior (t1), adicionado ao montante que foi produzido no perodo t, me-
nos o que foi demandado no perodo t, ou seja,
Iit = Ii, t-1 + xit dit i = 1, ..., n , t = l, ..., T.
Tais restries so tpicas em modelos dinmicos. Por exemplo, podem modelar a conserva-
o de gua em um reservatrio: o volume de gua em um reservatrio i no instante t igual ao
volume de gua que havia no instante tt, mais o volume de gua que entrou no reservatrio
no intervalo de tempo t, menos o volume de gua utilizada para abastecer uma populao no
intervalo de tempo t.

Restries de capacidade de produo


A capacidade requerida para a produo dos itens em cada perodo t no pode superar a ca-
pacidade disponvel da fbrica, ou seja,
r1x1t + r2x2t + . . . + rnxnt Rt t = l, ..., T.

Garantia de atendimento s demandas


A demanda de cada produto i em cada perodo t precisa ser atendida. Isso significa que a
quantidade total disponvel no perodo deve ser maior ou igual demanda, isto , a quantidade
produzida no perodo (xit), mais a quantidade em estoque no final do perodo anterior (Ii,t1),
deve ser maior ou igual a dit, ou seja, xit + Ii,t1 dit ou, ainda, xit + Ii,t1 dit 0. Essa quantida-
de foi definida anteriormente como Iit, de modo que podemos garantir o atendimento s
demandas impondo:
Iit 0 i = 1, ..., n, t = l, ..., T.
Alm disso, por definio das variveis de produo xij, temos que
xit 0 i = 1, ..., n, t = l, ..., T.
Os custos incorridos so os de produo e de estocagem dos produtos. Desta forma, a fun-
o custo a ser minimizada
n T n T
f(x11, I11, x12, I12, ...) = cit xit + hit I it .
i =1t =1 i =1 t =1

O modelo completo de otimizao linear dado por:


n T n T
Minimizar f(x11, I11, x12, I12,...) = cit xit + hit I it
i =1t =1 i =1 t =1

xit + Ii, t-1 Iit = dit i = 1, ..., n, t = l, ..., T


r1x1t + r2x2t + . . . + rnxnt Rt t = l, ..., T
xit , Iit 0 i = 1, ..., n, t = l, ..., T.
Modelos desse tipo tambm so utilizados para apoiar decises no planejamento agregado da
produo, em que os produtos so agregados em famlias de produtos, as demandas dos produ-
tos so agregadas por regio, e as mquinas so agregadas em centros de trabalho.7 Os problemas
de dimensionamento de lotes podem ser facilmente estendidos para incorporar casos de pedi-

7 Veja, por exemplo, Hax e Candea (1984) e Nahmias (1995); veja tambm Carvalho et al. (1998). Gonalves Filho e Marola (2001)
estudam o problema com banco de horas e Caixeta-Filho et al. (2002) abordam o problema de plantio e vendas de flores.
Captulo 2: Otimizao linear 31

dos pendentes (em ingls, backlogging) e vendas perdidas, por meio de uma simples substituio
de variveis: I it = I it+ I it , em que I it+ 0 o estoque em mos e I it 0 o estoque devido (n-
vel de pedidos pendentes) do produto i no final do perodo t (veja Seo 2.2.10 e discusso na
Seo 3.6.1 do Captulo 3). Nesta classe de problemas, tambm comum a necessidade de pre-
parar mquinas para a produo de um item e, nessa preparao, consomem-se recursos e incorre-
se em custos.8 Esses problemas so da classe de otimizao discreta discutida no Captulo 3, pois
surgem decises do tipo produzir ou no um item do tipo i no perodo t, as quais so modela-
das por variveis que assumem apenas dois valores: 0 ou 1.

Exemplo 2.7 Considere uma fbrica de pr-moldados que produz dois tipos de vigas, cujas de-
mandas para as prximas trs semanas so conhecidas, conforme a Tabela 2.6.
Os produtos utilizam os mesmos tipos de recursos, porm em quantidades diferentes. Supo-
nha, por simplicidade, que apenas um centro de trabalho esteja disponvel para a produo dos
dois itens, cuja disponibilidade de 40 horas por perodo e que a produo de uma unidade do
item 1 consuma 15 minutos e uma unidade do item 2 consuma 20 minutos. Os custos de pro-
duo por perodo so conhecidos e dados pela Tabela 2.7.
Admite-se que a produo possa ser antecipada e estocada para ser utilizada nos perodos se-
guintes. Os custos de estocagem so dados na Tabela 2.8 (por exemplo, uma unidade do item 1
pode ser produzida no perodo 2 e guardada em estoque para atender a demanda no perodo 3, por
$ 3,00/unidade).
Deseja-se definir um plano da produo de modo que os pedidos sejam atendidos ao me-
nor custo de produo e estocagem. Os estoques iniciais dos dois produtos so nulos e dese-
ja-se que seus estoques ao final do horizonte de planejamento tambm sejam nulos. Seja a
varivel de deciso xit a quantidade da viga tipo i produzida no perodo t, e Iit a quantidade da viga
tipo i estocada no final do perodo t. Ento podemos escrever as restries seguindo o mode-
lo genrico apresentado anteriormente, obtendo:

Tabela 2.6
Demanda de vigas.

Demanda de vigas Perodo 1 Perodo 2 Perodo 3

Item 1 100 90 120

Item 2 40 50 80

Tabela 2.7
Custos de produo.

Custos de produo Perodo 1 Perodo 2 Perodo 3

Item 1 20 20 30

Item 2 20 20 30

8 Bitran e Yanasse (1982) abordam algumas questes tericas de complexidade; Arajo et al. (2004), Santos-Meza et al. (2002) e
Rangel e Ferreira (2003) apresentam modelos e mtodos para planejamento da produo em fundies de pequeno e mdio porte
e fbricas de refrigerantes; Taube Netto (1996) apresenta um estudo de caso em uma agroindstria brasileira.
32 Pesquisa Operacional

Tabela 2.8
Custos de estocagem.

Custos de estocagem Perodo 1 Perodo 2

Item 1 2 3

Item 2 2,5 3,5

Restries de conservao de estoque


De Iit = Ii, t-1 + xit dit , i = 1, 2 e t = l, 2, 3, temos:
I11 = x11 100
I12 = I11 + x12 90
I13 = I12 + x13 120 = 0 (estoque final da viga tipo 1 foi fixado em zero)
I21 = x21 40
I22 = I21 + x22 70
I23 = I22 + x23 80 = 0 (estoque final da viga tipo 2 foi fixado em zero).

Restries de capacidade de produo


De r1x1t + r2x2t + . . . + rnxnt Rt, t = l, 2, 3, temos:
1/4x11 + 1/3x21 40
1/4x12 + 1/3x22 40
1/4x13 + 1/3x23 40
Garantia de atendimento s demandas
De Iit 0, i = 1, 2 e t = 1, 2 (note que para t = 3 o estoque dado), temos:
I11, I12, I21, I22 0
Alm disso, por definio das variveis xit , devemos ter
xit 0, i = 1, 2, t = l, 2, 3, ou seja,
x11, x12, x13, x21, x22, x23 0.
Custo
n T n T 1
De f(x11, I11, x12, I12, ...) = cit xit + hit I it (estoque final fixado), temos
i =1 t =1 i =1 t =1
f(x11, x12, ..., I22) = 20x11 + 20x12 + 30x13 + 20x21+ 20x22 + 30x23 + 2I11 + 3I12 + 2,5I21 + 3,5I22
O modelo completo de otimizao linear :
Minimizar f(x11, x12, ..., I22) = 20x11 + 20x12 + 30x13 + 20x21 + 20x22 + 30x23 + 2I11 + 3I12 + 2,5I21 + 3,5I22
x11 I11 = 100
x12 + I11 I12 = 90
x13 + I12 = 120
x21 I21 = 40
x22 + I21 I22 = 70
x23 + I22 = 80
Captulo 2: Otimizao linear 33

1/4x11 + 1/3x21 40
1/4x12 + 1/3x22 40
1/4x13 + 1/3x23 40
x11, x12, x13, x21, x22, x23, I11, I12, I21, I22 0. n

Formulao matemtica de um problema de dimensionamento de lotes multiestgios

De maneira anloga ao caso anterior, monoestgio, considere uma empresa que fabrica n pro-
dutos e deseja planejar sua produo em um horizonte de T perodos de tempo. Os pedidos
so feitos antecipadamente, de modo que a demanda de cada produto conhecida em cada pe-
rodo do horizonte de planejamento. Porm, a produo de uma unidade de um produto de-
mandado requer a produo prvia ou concomitante de seus componentes (por exemplo, para
produzir um computador necessrio produzir um gabinete, um teclado, uma placa-me etc.,
e para produzir um teclado necessrio produzir uma estrutura de teclado, 52 teclas, entre ou-
tros). Um componente tambm pode ter demanda externa (por exemplo, teclado). A fabrica-
o dos itens (que podem ser produtos ou componentes) usa diversos recursos renovveis
limitados por perodo (tempo de mquinas, mo-de-obra etc.). Considere os seguintes dados
do problema:
dit demanda externa do item i no perodo t, i = 1, ..., n, t = 1, ..., T
bji quantidade do item j para a produo de uma unidade do item i
Rkt disponibilidade do recurso (renovvel) do tipo k no perodo t
rki quantidade do recurso k necessria para a produo de uma unidade do item i
cit custo de produzir uma unidade do item i no perodo t
hit custo de estocar uma unidade do item i no final do perodo t

As variveis de deciso so:


xit nmero de itens do tipo i produzidos durante o perodo t
Iit nmero de itens do tipo i em estoque no final do perodo t
Para a produo de xit unidades do item i no perodo t, necessrio que a quantidade bjixit do
item j esteja disponvel no perodo t. Assim, a demanda do item j no perodo t deve ser acrescida
de: bj1x1t + bj2x2t + ... + bjnxnt, a qual chamada de demanda interna (ou demanda derivada) e depen-
de do plano de produo. Se o item j for um produto final, ento no h demanda interna, isto
, bji = 0 para i = 1, ..., n. A Figura 1.2 (Captulo 1) ilustra um exemplo de uma estrutura de pro-
duto em que cada item ligado ao seu item componente por um arco. O modelo (1.1) (1.5)
do Captulo 1 um exemplo simples de apenas um produto final que depende de apenas um
item componente. Note que a funo custo a ser minimizada no modelo (1.1) (1.5) no linear,
devido a um custo fixo da produo de um item.
O modelo matemtico para o dimensionamento de lotes em multiestgios :

n T n T
Minimizar f(x11, I11, ...) = cit xit + hit I it
i =1t =1 i =1 t =1
n
xjt + Ij, t-1 Ijt = djt + b ji xit j = 1, ..., n, t = l, ..., T
i =1
rk1x1t + rk2x2t + . . . + rknxnt Rkt k = 1, ..., K, t = l, ..., T
xit , Iit 0 i = 1, ..., n, t = l, ..., T
34 Pesquisa Operacional

2.2.4 Problemas de programao de projetos


Nesta classe de problemas, determinamos a ordem em que um conjunto de atividades reali-
zado e, por simplicidade de exposio, ilustramos com um exemplo. Considere o problema de
construir pilares de uma edificao, a qual constituda basicamente por oito atividades, que
esto relacionadas na Tabela 2.9, juntamente com a descrio dessas atividades, a durao e os
predecessores imediados de cada uma. Por exemplo, a atividade D s pode ser iniciada depois
da concluso das atividades B e C, enquanto as atividades A, B e E no tm predecessores, de
modo que podem ser iniciadas a qualquer instante a partir do incio do projeto. Uma questo
importante para a execuo de um projeto (isto , a realizao de todas as atividades) a de-
terminao do menor tempo necessrio para sua concluso. A simplicidade dos dados na Tabe-
la 2.9 permite que o problema de determinar o menor tempo para a concluso do projeto seja
resolvido por inspeo, diferentemente se houvesse milhares de atividades. Recomendamos ao
leitor que determine o menor tempo necessrio para que todas as oito atividades sejam con-
cludas e note que certas atividades tm seus instantes de incio bem definidos na soluo do
menor tempo, enquanto outras tm mais flexibilidade para serem iniciadas.
Uma formulao matemtica para este problema consiste em definir a varivel de deciso ti, i
= A, B, C, D, E, F, G, H, o instante mais cedo em que a atividade i pode ser iniciada. Definimos
o incio do projeto no instante t = 0. Note na Tabela 2.9 que o projeto no pode ser concludo
antes do instante tH + 3. Assim, o objetivo minimizar tH + 3. Os instantes mais cedo ti em que
as diversas atividades podem ser iniciadas, devem satisfazer as relaes de precedncia indicadas
na Tabela 2.9. Por exemplo, a atividade C no pode ser iniciada antes que a atividade A tenha sido
completada, ou seja, tC tA + 6; a atividade A pode ser iniciada a qualquer instante depois do in-
cio (por definio, o incio o instante t = 0); isto , tA 0; a atividade D no pode ser iniciada
antes que as atividades B e C tenham sido completadas, ou seja, tD tB + 5, tD tC + 4. De maneira
similar, determinamos as demais restries de precedncia do problema. O modelo matemtico
completo para este exemplo :
Minimizar f(tA, tB,..., tH) = tH + 3
tA 0
tB 0
tC tA + 6
tD tB + 5
tD tC + 4
tE 0
tF tE + 2
tF tD + 2
tG tF + 3
tH tG + 72.
Problemas de programao de projetos podem envolver outras restries, alm das relaes de
precedncia, conforme o exemplo anterior, tais como limitao de recursos. Por exemplo, cada
tarefa tem um oramento para ser realizada e os recursos financeiros so limitados ao longo da
execuo do projeto. Estes problemas tambm so discutidos nos Captulos 3 (Seo 3.6.4) e 4
(Seo 4.2.2).
Captulo 2: Otimizao linear 35

Tabela 2.9
Dados das atividades do projeto.

Atividades Descrio Predecessor imediato Durao (horas)

A Preparo da armadura 6

B Preparo da forma 5

C Lanamento da armadura A 4

D Lanamento da forma B, C 2

E Providncias para concretagem 2

F Aplicao do concreto E, D 3

G Cura do concreto F 72

H Desforma do pilar G 3

2.2.5 Problemas de gesto financeira (fluxo de caixa)9


Modelos lineares tambm podem ser utilizados para apoiar decises em problemas de gesto
financeira, por exemplo, no gerenciamento do fluxo de caixa. Considere uma empresa que gos-
taria de maximizar o retorno do seu fluxo de caixa ao final de um horizonte de planejamento de
n perodos (por exemplo, 6 meses). A empresa tem boas previses dos fluxos de entrada de cai-
xa (isto , contas a receber) e dos fluxos de sada de caixa (isto , contas a pagar) no incio de cada
perodo. Os seguintes dados so conhecidos:
et entrada de caixa no incio do perodo t, t = 1,...,n,
st sada de caixa no incio do perodo t, t = 1,...,n.
Apenas duas opes de investimento esto disponveis para o dinheiro do caixa, no incio de
cada perodo:
(i) Deixar parte ou todo dinheiro no prprio caixa durante o perodo, com taxa de juros
(por exemplo, rendimentos de aplicaes financeiras de curto prazo);
(ii) Utilizar parte ou todo dinheiro em uma aplicao financeira com menor liquidez do que
a opo 1 (isto , resgate restrito), porm com taxa de juros no perodo , > (por
exemplo, fundos de aes, poupana jurdica, ttulos pblicos etc.).
As converses (aplicaes e resgates) entre as opes 1 e 2 podem ser realizadas apenas no in-
cio de cada perodo t. H um custo unitrio de converso c1,2 da opo 1 para a opo 2 (por
exemplo, taxas de administrao) e um custo unitrio de converso c2,1 da opo 2 para a opo 1
(por exemplo, impostos). No incio do horizonte de planejamento, a empresa dispe de y0 uni-
dades monetrias investidas na opo 2 (decorrente de aplicaes anteriores).
Este problema representado em uma rede de fluxos de dinheiro10 na Figura 2.7. O n E sim-
boliza a entrada de caixa (origem das contas a receber de clientes) e o n S a sada de caixa (des-
tino das contas a pagar aos fornecedores). Os ns 1, 2, ..., n e os ns 1 , 2 ,L , n simbolizam os

9 Para outros problemas de otimizao em finanas, veja Zenios (1993).


10 Conceitos de redes introduzidos neste exemplo so mais bem formalizados no Captulo 4.
36 Pesquisa Operacional

Figura 2.7 Rede de fluxos entre as opes 1 e 2 nos perodos 1, 2, ..., n.

incios dos perodos para as opes de investimento 1 e 2, respectivamente, e o n Z o final do


planejamento. Como a empresa deseja maximizar o retorno do seu fluxo de caixa no final do
horizonte de planejamento, o objetivo maximizar a soma dos fluxos de dinheiro de n para Z e
de n para Z.
Definimos as variveis de deciso:
fij fluxo de dinheiro do n i para o n j.
Note na Figura 2.7 que o fluxo de dinheiro (aplicao ou resgate) ocorre entre ns especfi-
cos: de i para i+1 (dinheiro mantido em caixa no perodo i com de rendimentos); de i para
i (dinheiro aplicado no perodo i com taxas de administrao de c1,2); de i para i (dinheiro res-
gatado no perodo i com impostos de c2,1) etc. Por exemplo, se i = 1 e j = 2 ento f12 a quan-
tia de dinheiro mantida em caixa no perodo 1, que corresponde a uma entrada de caixa no
perodo 2 de (1+)f12; ou se i = 1 e j = 2 ento f 1 ,2 a quantia mantida na opo 2 no pero-
do 1, de modo que a quantia (1 + ) f 1 ,2 estar aplicada no perodo 2. Deve-se notar que o total
aplicado na opo 2 no perodo 2 , alm da quantia (1 + ) f 1 ,2 , tambm a quantia (1 c1,2 ) f 2 ,2
(em que f 2,2 a quantia de dinheiro que sai do caixa no perodo 2 para a opo 2 e c1,2 a taxa
de administrao), menos a quantia resgatada no perodo 2, dada por: f 2 ,2. Isto nos leva a escrever
a seguinte equao (balano de fluxo de dinheiro no perodo 2, para a opo 2: total de entrada
= total de sada):
(1 + ) f 1 ,2 + (1 c1,2 ) f 2 ,2 = f 2 ,2 + f 2 ,3
Note que a quantia f 2 ,3 vista como que saindo do n 2. Para cada um dos ns na rede de
fluxos da Figura 2.7 podemos escrever uma equao de balano de fluxo, similar equao aci-
ma. No final do planejamento, o fluxo entrando no n Z deve ser maximizado, o qual dado por:
(1+)fn,Z + (1 + )f n , Z . O modelo matemtico completo para o problema de fluxo de caixa dado por:
Captulo 2: Otimizao linear 37

Maximizar (1+)fn,Z + (1 + )f n , Z
e1 + (1 c 2 ,1 ) f 1 ,1 = f1,2 + f 1,1 + s1 (n 1)
y0 + (1 c1,2 ) f 1,1 = f 1 ,2 + f 1 ,1 (n 1 )
e2 + (1 + ) f1,2 + (1 c 2 ,1 ) f 2 ,2 = f2,3 + f 2,2 + s2 (n 2)
(1 + ) f 1 ,2 + (1 c1,2 ) f 2 ,2 = f 2 ,3 + f 2 ,2 (n 2 )

en + (1 + ) fn-1,n + (1 c 2 ,1 ) f n ,n = fn,Z + f n ,n + sn (n n)
(1 + ) f n 1,n + (1 c1,2 ) f n ,n = f n ,Z + f n ,n (n n )
fi,j 0, para todo i, j.
Este modelo de otimizao linear pode ser estendido para tratar mais de duas opes de in-
vestimento por perodo, considerar taxas de juros e custos unitrios de converso variando com
cada perodo e incorporar a possibilidade de emprstimos ao longo do horizonte de planejamento.

Exemplo 2.911 Considere um horizonte de planejamento de n= 3 perodos, com os seguintes flu-


xos de entrada e sada de caixa: e1 = $12, e2 = $8, e3 = $5 e s1 = $4, s2 = $10, s3 = $10 unida-
des monetrias. A empresa tem duas opes de investimento: (i) deixar dinheiro no caixa e
aplic-lo em fundos de investimento de curto prazo, com expectativa de rendimento de 5% do
valor investido por perodo, ou (ii) aplic-lo em ttulos pblicos com rendimento pr-fixado de
8% do valor investido por perodo. A transao de aplicao em ttulos tem um custo unitrio
de 2% do valor aplicado e seu resgate tem um custo unitrio de 2% do valor resgatado. As apli-
caes e resgates s podem ser feitos no incio de cada perodo. A empresa j dispe de um in-
vestimento inicial de $1 em ttulos pblicos, disponvel para resgate. Determine quanto aplicar
e resgatar no incio de cada perodo, de maneira a maximizar o retorno do caixa no final do ho-
rizonte de planejamento.
Note que = 0,05 , = 0,08 , c1,2 = c2,1 = 0,02 e y0 = $1 . Uma soluo tima deste exemplo,
ilustrada na Figura 2.8, consiste em: (i) aplicar $6,10 do caixa, mais o investimento inicial de $1,
em ttulos pblicos no perodo 1; (ii) no aplicar nada do caixa em ttulos, nem resgatar nada dos
ttulos para o caixa, deixando $7,53 aplicados em ttulos no perodo 2; (iii) resgatar $5,10 dos t-
tulos para o caixa no perodo 3, deixando $3,03 aplicados em ttulos no perodo 3. O retorno no
final do perodo 3 $3,27 (aplicados em ttulos).

2.2.6 Problemas de meio ambiente


A preocupao com a preservao do meio ambiente tem sido cada vez mais importante para
melhorar a qualidade de vida. Uma maneira de preservar nosso meio ambiente cuidar para que
a poluio dos recursos naturais esteja sob controle. Um desses problemas ilustrado a seguir.
Pense numa fbrica que desvia parte da gua de um rio para ser utilizada em seu processo pro-
dutivo. Durante a produo, componentes qumicos poluidores A e B so adicionados gua
desviada, que depois retorna ao rio. A gua desviada, se no tratada, polui o rio, deixando-o com
nveis intolerveis desses poluentes. O processo produtivo no acarreta mudanas no fluxo de
gua. A adio dos poluentes tambm no afeta esse volume.
As concentraes de poluentes consideradas aceitveis pela Companhia Estadual de Contro-
le Ambiental so de a0 e b0 gramas por ML (milhes de litros) de gua por dia para os compo-
nentes A e B, respectivamente. A vazo do rio de V ML por dia e a fbrica precisa de pelo menos
U ML de gua por dia para sua produo. Existem 3 tipos de tratamento que a empresa pode
utilizar para diminuir a concentrao dos poluentes resultantes de seu processo de produo.
11 Este exemplo baseado em Golden et al. (1979).
38 Pesquisa Operacional

Figura 2.8 Soluo tima do exemplo 2.8.

Esses tratamentos tm custos diferenciados ($/ML) e resultam, aps o tratamento, em nveis de


concentrao diferentes (gramas por ML) de cada um dos poluentes, como indicado na Tabela
2.10 (isto , a1 a quantidade do componente A aps o tratamento 1 de 1 ML de gua poluda).
O problema consiste em determinar a quantidade de gua a ser tratada em cada tipo de tra-
tamento, de modo que as exigncias ambientais regulamentadas em lei sejam atendidas e o custo
total de tratamento seja mnimo. Defina a varivel de deciso xi, i = 1, 2, 3, como a quantidade
de gua (em ML) por dia a ser tratada pelo tratamento 1, 2 e 3, respectivamente. Pela prpria
definio, essas variveis devem ser no-negativas. Nosso objetivo no problema minimizar o
custo de tratamento da gua, ou seja, minimizar (c1x1 + c2x2 + c3x3), que a soma dos custos de
cada um dos tratamentos a serem efetuados. A quantidade diria de gua (em ML) desviada para
a produo simplesmente (x1 + x2 + x3), e essa quantidade deve ser no mnimo U, a quantida-
de mnima necessria para a fbrica funcionar em cada dia. Temos, portanto, a restrio
x1 + x2 + x3 U

Tabela 2.10
Eficincia e custo dos tratamentos de gua.

Tratamento 1 2 3

A a1 a2 a3

B b1 b2 b3

Custo/ML c1 c2 c3
Captulo 2: Otimizao linear 39

Da mesma forma, a quantidade desviada no pode superar a vazo do rio. Assim, temos
x1 + x2 + x3 V
Aps o tratamento de xi milhes de litros de gua, retornam ao rio aixi e bixi gramas dos
poluentes A e B, respectivamente, por dia. O total de poluentes (em gramas) resultante dos tra-
tamentos :
a1x1 + a2x2 + a3x3 do poluente A
b1x1 + b2x2 + b3x3 do poluente B.
A concentrao de poluentes no rio deve ficar abaixo dos limites considerados aceitveis. As-
sim, devemos ter:
(a1x1 + a2x2 + a3x3)/V a0
(b1x1 + b2x2 + b3x3)/V b0.
O modelo completo fica, portanto,
Minimizar f(x1, x2, x3) = c1x1 + c2x2 + c3x3
x1 + x2 + x3 U
x1 + x2 + x3 V
(a1x1 + a2x2 + a3x3)/V a0
(b1x1 + b2x2 + b3x3)/V b0
x1 0, x2 0, x3 0.

2.2.7 Problemas de corte e empacotamento


Vrias indstrias, tais como as de papel, vidro, plstico, metalrgica, moveleira etc., usam a se-
guinte estratgia na manufatura de seus produtos: objetos (peas grandes) de tamanhos padroni-
zados so cortados em itens (peas menores) de tamanhos variados, que dependem de solicitaes
de clientes e que, em geral, no so padronizados. Esse processo de corte gera perdas de mate-
rial indesejveis. Surge, ento, um problema de otimizao que consiste em cortar os objetos para
a produo dos itens nas quantidades solicitadas, de modo que a perda de material dos objetos
seja mnima. De forma anloga, podemos definir o problema de empacotamento, em que itens
devem ser alocados em objetos (por exemplo, contineres) de modo que o espao vazio dos ob-
jetos seja minimizado. A seguir, apresentamos alguns exemplos.12

Corte de bobinas de papel

Indstrias de papel produzem bobinas-jumbo de vrios metros de largura (por exemplo, 5


metros). Essas bobinas-jumbo so cortadas em sub-bobinas menores, de tamanhos e quantidades
variadas (so dezenas de tamanhos diferentes das sub-bobinas: 21 cm, 29,7 cm etc.). Essas sub-
bobinas ainda podem ser cortadas na produo de retngulos (tamanho A4, por exemplo). O
desperdcio deve ser minimizado.

Corte de barras metlicas

Indstrias de estruturas metlicas produzem trelias tridimensionais (uma trelia tridimensional


uma estrutura formada essencialmente de barras lineares, muito usada na construo civil, cons-
truo de avies etc.), cortando-se tubos ou perfis de tamanhos grandes em pedaos menores de

12 Para outros estudos desta classe de problemas, veja, por exemplo, Birgin et al. (2005), Dyckholf e Finke (1992), Hoto et al. (2006),
Marques e Arenales (2002), Morabito e Arenales (2000), Morabito e Belluzzo (2006), Parada et al. (2000), Perin et al. (2003) e Yanasse
et al. (1991, 1994).
40 Pesquisa Operacional

diversos comprimentos. Deseja-se saber qual o nmero mnimo de tubos grandes que devem ser
cortados para obter os pedaos menores nos tamanhos e quantidades desejados.
O problema de corte pode ser unidimensional, isto , apenas uma dimenso relevante no pro-
cesso de corte, por exemplo, barras de ao, bobinas de papel, rolos de filme etc., ou bidi-
mensionais, isto , duas dimenses so relevantes, por exemplo, placas de madeira, tecido, chapas
de ao etc., ou tridimensionais, quando trs dimenses so relevantes, por exemplo, cortes de
blocos de espuma para a produo de colches e travesseiros ou o empacotamento de produ-
tos em paletes, contineres, caminhes, vages ferrovirios e navios, que tambm podem ser vistos
como problemas de corte.

Formulao matemtica de um problema de corte

Para a apresentao da formulao matemtica, focalizamos o problema unidimensional, embo-


ra essa modelagem possa ser estendida para problemas com mais dimenses.
Em um problema unidimensional, deseja-se cortar barras disponveis de um tamanho padro-
nizado L para a produo de m tipos de itens (barras de tamanhos menores) com tamanhos
l1 , l 2 , ..., l m em quantidades variadas, digamos b1, b2, ..., bm, respectivamente (isto , deve ser pro-
duzida a quantidade bi da pea de comprimento l i ).
Conforme os tamanhos e as quantidades dos itens encomendados, podemos ter vrias manei-
ras de cortar as barras em estoque. Uma maneira particular de se cortar uma barra define o que
chamamos de padro de corte e, a cada padro de corte j, j = 1, 2, ..., associamos um vetor m-
dimensional aj = (a1j a2j ..., amj),13 em que aij fornece o nmero de itens do tipo i no padro de corte
j. Para ilustrar esses conceitos de padres de corte e vetores associados, consideramos os seguintes
dados: L = 11, l1 = 2, l2 = 3, l3 =3,5, l4 = 4 (m = 4). Podemos ter, por exemplo, os seguintes pa-
dres de corte e seus vetores associados, ilustrados na Figura 2.9.

Figura 2.9 Alguns padres de corte unidimensionais.

13 Neste livro, vetores e matrizes so denotados em negrito.


Captulo 2: Otimizao linear 41

Os padres de corte na Figura 2.9 so apenas alguns possveis. Vrios outros padres distin-
tos podem ser determinados. Um vetor = (1 2 ... m)T representa um padro de corte se e
somente se o seguinte sistema satisfeito:
l11 + l22 + . . . + lmm L (2.15)
1 0, 2 0, ..., m 0 e inteiros.
Modelos que envolvem uma condio de integralidade como em (2.15) so tratados no Ca-
ptulo 3. Suponha que existam n solues possveis para esse sistema, isto , n padres de corte.
Embora esse nmero n seja muito grande para problemas prticos, em geral apenas um peque-
no nmero de padres de corte necessrio para a resoluo do problema de corte. Uma vez
definidos os padres de corte, o problema consiste em determinar quantas barras devem ser cor-
tadas de acordo com cada padro, de modo que a demanda de cada item seja atendida, utilizan-
do-se o menor nmero possvel de barras disponveis. Define-se a varivel xj como o nmero de
barras cortadas conforme o padro de corte j. O problema de corte pode ser formulado por:
Minimizar f (x1, x2, ..., xn) = x1 + x2 + ... + xn

a11 a12 a1n b1


a a a b
21 x + 22 x + . . . + 2n x = 2 (2.16)
M 1 M 2 M n M

am1 am 2 amn bm

xj 0, j = 1, , n.
em que cada coluna uma soluo do sistema (2.15).
As variveis deste modelo devem ser necessariamente inteiras, pois representam o nmero de
barras cortadas de acordo com um padro de corte. Essa condio dificulta substancialmente a
resoluo do modelo matemtico (2.16). Porm, em muitas situaes prticas, essa condio de
integralidade pode ser relaxada. Suponha que a demanda dada em toneladas, isto , bi a quan-
tidade em toneladas demandada para o item de largura li. O lado esquerdo da restrio de de-
manda do modelo (2.16) fornece o nmero de itens cortados e, portanto, precisa ser modificado.
Suponha, tambm, que cada bobina em estoque mede L cm de largura e seu peso T toneladas,
de modo que cada centmetro cortado pesa = TL tonelada/cm ( chamado peso especfico li-
near). Assim, um item de largura li cm cortado da bobina pesa li toneladas. Por exemplo, se
L = 400 cm e T = 1 tonelada, um item de largura l1 = 40cm pesa 0,1 tonelada (100kg). Como,
em um padro de corte j, o nmero de itens do tipo i aij, segue-se que a quantidade em tone-
ladas do item tipo i produzida pelo padro de corte j l iaij toneladas e o modelo (2.16) deve
ser alterado para:
Minimizar f (x1, x2, ..., xn) = x1 + x2 + ...+ xn

l 1a11 l 1a12 l 1a1n b1


l a l a l a
2 21 x + 2 22 x + ... + 2 2 n x = b2 (2.17)
M 1 M 2 M n M

l m am1 l m a m 2 l m amn bm
xj 0, j = 1,, n,
em que xj o nmero de bobinas cortadas segundo o padro de corte j, que deve ser um valor
inteiro. Porm, substituindo = TL e deixando T multiplicar cada coluna do modelo (2.17), ob-
tm-se
42 Pesquisa Operacional

Minimizar f (x1, x2, ..., xn) = x1 + x2 + ...+ xn

l 1 a11 l 1 a12 lL1 a1n b1


lL2 lL2 l2 b
L a21 (T x ) + L a22 (Tx ) + ... + L a2 n 2
M 1 M 2 M (Txn
) = (2.18)
l M
l l
Lm am1 Lm am 2 L amn
m
bm
xj 0, j = 1,, n
Podemos fazer em (2.18) a seguinte mudana de varivel:
yj = T xj toneladas cortadas conforme o padro de corte j,
e temos um modelo equivalente (sem perda de generalidade, eliminamos o termo comum 1/T das
variveis da funo objetivo):
Minimizar g(y1, y2, ..., yn) = y1 + y2 + ...+ yn

l 1 a11 l 1 a12 lL1 a1n b1


lL2 lL2 l2 b
L a21 y + L a22 y + ... + L a2 n y = 2 (2.19)
M 1 M 2 M n M
l l l
Lm am1 Lm am 2 L amn
m bm

yj 0, j = 1,, n.
Em (2.19), uma soluo com yj = 3,5 tem significado, pois indica que 3,5 toneladas de mate-
rial (em bobinas de comprimento L) devero ser cortadas segundo o padro j. Supondo que as
bobinas sejam produzidas pela indstria (caso da indstria de papel), essa soluo pode ser
traduzida na produo de, por exemplo, 3 bobinas de 1 tonelada e 1 bobina de 0,5 tonelada. Em
caso de bobinas adquiridas de terceiros em pesos padronizados, a soluo no-inteira ainda faz
sentido se as bobinas puderem ser parcialmente desenroladas e cortadas (esse o caso das inds-
trias metalrgicas que compram e cortam bobinas de ao).
Embora os modelos matemticos (2.16) e a modificao (2.19) tenham sido desenvolvidos para
o caso unidimensional (o sistema (2.15) define um padro de corte unidimensional), esses mo-
delos so tambm adequados para problemas de corte bidimensionais, como cortes em placas de
madeira, chapas de ao, placas de vidro etc. A dificuldade de tratar problemas com mais de uma
dimenso est na gerao dos padres de corte (lembre-se que o sistema (2.15) modela padres
de corte unidimensionais).

Exemplo 2.9 Uma indstria de papel produz bobinas-jumbo de L = 400cm de largura e cada uma
pesa T = 1 tonelada. Os jumbos devem ser cortados em bobinas menores nas larguras e quan-
tidades apresentadas na Tabela 2.11, conforme solicitaes de diversos clientes.
Na Figura 2.10, listamos 6 padres de corte que poderiam ser utilizados para cortar os jumbos
(outros padres de corte so deixados a cargo do leitor).
Utilizando os padres de corte na Figura 2.10 e lL1 = 0,1; lL2 = 0,1125; lL3 = 0,1375; lL4 = 0,15,
o modelo (2.19) dado por:
Captulo 2: Otimizao linear 43

Tabela 2.11
Dados para um problema de corte.

Dados da demanda
Larguras (li) Quantidades (bi)

40cm 5 ton

45cm 3,5 ton

55cm 4 ton

60cm 5 ton

Figura 2.10 Possveis padres de corte para uma bobina-jumbo.

Minimizar g(y1, y2, y3, y4, y5, y6, ) = y1 + y2 + y3 + y4 +y5 + y6 + ...

10 0 ,1 1 0 ,1 0 1 0 ,1 0 0 5
0 8 0 ,1125 3,5
y + y + 0 y + 0 y + 4 0 ,
1125 y + 0 y + ...=
0 1 0 2 7 0 ,1375 3 0 4 4 0 ,1375 5 4 0 ,1375 6 4

0 0 0 6 0 ,15 0 3 0 ,15 5
y1, y2, y3, y4, y5, y6, ... 0. n
44 Pesquisa Operacional

2.2.8 Ajuste de curvas


O problema de ajuste de curvas tem aplicao em diversas reas e consiste, em geral, em buscar
uma lei que rege um fenmeno observvel, o qual depende de um conjunto de fatores control-
veis. Por exemplo, um pesquisador da rea de sade mede a presso arterial de milhares de pa-
cientes (fenmeno observvel ou varivel dependente) que deseja relacionar idade, ao sexo, ao
peso etc. (variveis independentes). Denotando essas variveis independentes por a1, a2, ..., an,
supondo que haja n delas, e o fenmeno observvel por b, escrevemos:
b = a1x1 + a2x2 + ... + anxn + ,
supondo que o fenmeno observvel dependa linearmente das variveis independentes, em que
um rudo inevitvel e desconhecido que o pesquisador deve considerar em seu modelo de re-
gresso linear (como conhecida a equao anterior), e xj, j = 1, 2, ..., n so incgnitas a serem
determinadas. Para cada observao feita (por exemplo, a presso de cada paciente), o modelo
aplicado. Supondo que fizemos m observaes, temos
bi = ai1x1 + ai2x2 + ... + ainxn + i i = 1, 2, ..., m,
em que bi e aij so conhecidos (por exemplo, a presso arterial observada e os dados do paciente
i, como idade, peso, altura etc.). Considere que o modelo seja adequado e que os dados tenham
sido obtidos de modo que os rudos sejam os menores possveis (mesmo que inevitveis e des-
conhecidos). Surge, ento, um problema de otimizao que consiste em determinar as incgni-
tas x1, x2, ..., xn de modo que os rudos sejam mnimos em magnitude, j que podem ser positivos
ou negativos (por exemplo, a presso arterial pode ter sido medida acima ou abaixo do valor real).
Para isso, precisamos de uma funo para medir o tamanho do rudo = (1, 2, ..., m) nas v-
rias observaes. Algumas funes de medida do rudo so bastante estudadas. A mais popular
a soma dos quadrados dos rudos, e o problema de otimizao :
Minimizar f(x1, x2, ..., xn, 1, 2, ..., m) = (1)2 + (2)2 + ... + (m)2
bi = ai1x1 + ai2x2 + ... + ainxn + i i = 1, 2, ..., m
Este o clssico problema dos quadrados mnimos, cuja soluo obtida diretamente do clculo,
bastando substituir i = bi (ai1x1 + ai2x2 + ... + ainxn) na funo a ser minimizada e exigir que as
derivadas parciais sejam nulas. Uma outra medida para o rudo , de muito interesse para pes-
quisadores em regresso linear, a soma dos mdulos dos rudos e o problema de otimizao pode
ser expresso por:
Minimizar f(x1, x2, ..., xn, 1, 2, ..., m) = |1| + |2| + ... + |m|
bi = ai1x1 + ai2x2 + ... + ainxn + i i = 1, 2, ..., m

A funo anterior a ser minimizada acima linear por partes:


i se i 0
| i | =
i se i 0

e no diferencivel em i = 0. Embora isso possa apresentar uma dificuldade para o clculo di-
ferencial, pode ser bem formulada como um modelo de otimizao linear, com a seguinte estra-
tgia de redefinir as variveis i:
i = i+ i em que i+ 0 , i 0 i = 1, 2, ..., m.
Podemos escrever | i | = i+ + i . A rigor, deveramos proibir que i+ > 0 e i > 0 simultaneamen-
te, j que existem infinitos valores para i+ e i que fornecem o mesmo valor de i = i+ i (por
Captulo 2: Otimizao linear 45

exemplo, i = 10 = 10 0 = 15 5 etc.). Porm, como minimizamos i+ + i , qualquer soluo


tima tem necessariamente i+ = 0 ou i = 0 . Para ver isso, suponha que i+ = i + e i = ,
> 0 (note que i+ i = i qualquer que seja , portanto, as equaes do modelo no dependem
de ). Entretanto, a funo a ser minimizada depende de , uma vez que i+ + i = i + 2 sem-
pre maior que i para todo > 0. Portanto, nenhuma soluo tima pode ter > 0. De modo
semelhante, para as solues do tipo: i+ = e i = i + , > 0. Desse modo, restringimo-nos s
solues em que = 0. Dessa forma, o problema de minimizar a soma dos mdulos dos rudos
pode ser escrita como:
Minimizar f(x1, x2, ..., xn, 1+ , 1 , 2+ , 2 , ..., m+ , m ) = 1+ + 1 + 2+ + 2 +...+ m+ + m
ai1x1 + ai2x2 + ... + ainxn + i+ i = bi i = 1, 2, ..., m
+
i 0 , i 0 i = 1, 2, ..., m.
De forma anloga, podemos escrever um problema de otimizao linear se os rudos so pon-
derados por valores positivos, vi > 0, i = 1, ..., m (por exemplo, a ponderao vi = 1i , i = 1, ...,
m, procura um modelo no qual as primeiras observaes so mais relevantes). A funo a ser
minimizada :
Minimizar f(x1, x2, ..., xn, 1, 2, ..., m) = v1|1| + v2|2| + ... + vm|m|.

Exemplo 2.10 A Tabela 2.12 contm dados de um experimento em que, para cada valor de x, um
valor de y foi medido. Supe-se que as variveis sejam linearmente relacionadas: y = ax + b.
O problema consiste em determinar os coeficientes a e b da reta y = ax + b (ver Figura 2.11)
que melhor se ajusta aos dados da Tabela 2.14. Considerando que um rudo ocorre em cada me-
dida, escrevemos: yi = axi + b + i, i = 1, ..., 4:
1 = a0 + b + 1
0 = a1 + b + 2
1 = a2 + b + 3
1 = a3 + b + 4
O problema de ajuste que minimiza a soma dos rudos em mdulo pode ser escrito como:

Minimizar f(a, b, 1+ , 1 , 2+ , 2 , 3+ , 3 , 4+ , 4 ) = 1+ + 1 + 2+ + 2 + 3+ + 3 + 4+ + 4
b + 1+ 1 = 1
a+b+ +
2 2
=0
2a + b + +
3 3
=1
3a + b + +
4 4
=1
1 0 , 1 0 2 0 , 2 0 3 0 , 3 0 4 0 , 4 0 .
+ + + +

Tabela 2.12
Dados experimentais.

x 0 1 2 3

y 1 0 1 1
46 Pesquisa Operacional

Figura 2.11 Representao grfica para o ajuste de uma reta.

2.2.9 Controle timo de sistemas lineares


Considere um sistema dinmico discreto que evolui segundo o seguinte modelo:
xt+1 = Axt + But t = 0, ..., T1
yt = cTxt + dTut t = 0, ..., T1
O vetor de variveis xt chamado estado do sistema no instante t (o estado inicial x0 dado), ut
o vetor das variveis de controle (isto , so as variveis para as quais podemos escolher seus va-
lores), yt um escalar chamado resposta do sistema no instante t que depende linearmente das vari-
veis de estado e de controle. Assim, uma vez escolhido o valor de u0, ento podemos calcular x1
= Ax0 + Bu0 e y0 = cTx0 + dTu0; escolhido u1, calculamos x2 = Ax1 + Bu1 e y1 = cTx1 + dTu1; e
assim por diante. Podemos ter ainda restries adicionais sobre as variveis de estado e de con-
trole (por exemplo: xt xt xt , ut ut ut ). As aplicaes de sistemas que evoluem conforme o
modelo acima so diversas, como circuitos eltricos, sistemas de manufatura, crescimento eco-
nmico etc. Tipicamente, devemos escolher as variveis de controle u0, u1, ..., uT-1 para levar o sis-
tema a um estado final xT desejvel (estado-alvo): xT = x*T . Normalmente, existem muitas escolhas
possveis para ut, de modo que podemos escolher uma que faa com que a magnitude da resposta
do sistema seja to pequena quanto possvel em todos os instantes, ou seja, temos o seguinte pro-
blema de otimizao:
Minimizar {max |yt|, t = 0, ..., T1}
xt+1 = Axt + But t = 0, ..., T1
yt = cTxt + dTut t = 0, ..., T1
xt xt xt t = 1, ..., T
ut ut ut t = 0, ..., T1
x0 e xT dados.
A funo a ser minimizada {max |yt|, t = 0, ..., T1} no uma funo linear, porm, se a
chamamos de:
z = {max |yt|, t = 0, ..., T1}
ento, as relaes
z yt z, t = 0, ..., T 1
Captulo 2: Otimizao linear 47

so vlidas. O valor mnimo de z que satisfaz todas essas desigualdades exatamente o {max |yt|,
t = 0, ..., T1}. Assim, para se achar o valor mnimo de {max |yt|, t = 0, ..., T1}, basta resolver o
problema
Minimizar z
z yt z t = 0, ..., T 1,
de modo que o modelo anterior pode ser descrito por:
Minimizar z
z yt z t = 0, ..., T 1
xt+1 = Axt + But t = 0, ..., T1
yt = cTxt + dTut t = 0, ..., T1
xt xt xt t = 1, ..., T1
ut ut ut t = 0, ..., T1
x0 e xT dados

Exemplo 2.1114 Suponha que um foguete viaje em linha reta e sejam (xt, vt) a posio e a veloci-
dade do foguete no instante t, as quais so determinadas pela acelerao at no instante t. Tais va-
riveis esto relacionadas por:
xt
vt = t (velocidade a derivada de xt)
vt
at = t (acelerao a derivada de vt).
Uma aproximao para este sistema consiste em fazer vt = xtt = xt + t t xt , at = vtt = vt +t t vt . Con-
siderando-se t fixo e denotando-se xt+1 = xt+t e vt+1 = vt+t (ou seja, considerando o instante ini-
cial t = 0, ento, t = 1 corresponde ao instante t, t = 2 ao instante 2t, ..., t = T corresponde
ao instante Tt), segue que:
xt+1 = xt + t vt
vt+1 = vt + t at .
Note que as variveis de estado so (xt, vt) e as de controle, at, t = 1, ..., T1. Admitimos que
o consumo de combustvel no instante t seja proporcional magnitude da acelerao |at|. Su-
ponha que o foguete esteja inicialmente em repouso, isto , x0 = 0 e v0 = 0. Desejamos que o
foguete decole e aterrisse suavemente a uma distncia de uma unidade da origem depois de
transcorridas T unidades de tempo, isto , xT = 1 (posio final do foguete) e vT = 0 (aterris-
sagem suave). Alm disso, queremos controlar a acelerao de modo econmico, por exemplo,
minimizar Tt=01 | at | . Uma alternativa seria minimizar {max |at|, t = 0, ..., T1}, como descri-
to no modelo geral. Ambas as funes podem ser escritas de forma linear (veja o problema de
ajuste de curvas anterior). Identifique, neste exemplo, as matrizes A, B e os vetores c e d no
modelo geral (note que a resposta do sistema yt = at ).
n

2.2.10 Problemas lineares por partes


Os problemas de ajuste de curva e controle timo definidos nas Sees 2.2.8 e 2.2.9 envolvem fun-
es a serem minimizadas que no so lineares, mas podem ser redefinidas como funes lineares.
Funes lineares por partes tambm aparecem em outros contextos. Por exemplo, no proble-
ma de dimensionamento de lotes, modelado na Seo 2.2.3, uma varivel importante consiste no

14 Este exemplo baseado em Bertsimas e Tsitsiklis (1997).


48 Pesquisa Operacional

nvel de estoque de um produto: Iit a quantidade do produto i disponvel em estoque ao final


do perodo t. A equao de balanceamento de estoque, junto com a no-negatividade do nvel de
estoque:
Iit = Ii, t-1 + xit dit e Iit 0,
garantem que a demanda no perodo t deve ser satisfeita: Ii, t-1 + xit dit.
Se permitirmos que a varivel Iit assuma valores negativos, isso significa que Ii, t-1 + xit < dit, isto
, a demanda no satisfeita no perodo t, o que pode acontecer em uma situao real. Quando
Iit < 0, dizemos estoque em falta e Iit > 0 estoque em mos. No caso de estoque em falta, normalmente
incorre-se em uma penalidade pelo no-atendimento da demanda. Considerando o estoque em
mos e o estoque em falta, temos uma funo custo (ver Figura 2.12) do tipo
f(I11, I12, ...) = f11(I11) + f12(I12)+ ...
em que:
h + I se I it 0
f it ( I it ) = it it
hit I it se I it 0

Anlogo ao problema de ajuste de curvas (Seo 2.2.8), podemos redefinir a varivel de esto-
que Iit como I it = I it+ I it , com I it+ 0 , I it 0 , de modo que a funo anterior, linear por partes,
pode ser escrita como:
f( I11+ , I11 , I12+ , I12 ,... ) = h11+ I11+ + h11 I11 + h12+ I12+ + h12 I12 + ...
Podemos tambm definir outros critrios a serem minimizados, como, por exemplo, podemos
desejar que o valor mximo, em mdulo, das variveis que medem estoque em mos ou em fal-
ta seja o menor possvel. Isso pode ser descrito por:15
Minimizar {mximo {|Iit|, para todo i, t}}.
Podemos, ainda, desejar que os estoques estejam entre limites desejveis, mnimo e mximo,
e nveis fora desses intervalos devem ser evitados. Um esboo de uma funo a ser minimizada
que traduz esse desejo ilustrado na Figura 2.13.
Este problema pode tambm ser linearizado (isto , escrito de forma equivalente como um
problema linear), como feito nos casos anteriores.16

Figura 2.12 Funo penalidade para o estoque no-nulo.

15 Para mais aplicaes de problemas minmax, veja, por exemplo, Martinez et al. (1994) e Balbo et al. (2006).
16 Veja Marins et al. (1997), Oliveira e Lyra (2004) e Cavichia e Arenales (2000) para estudos de problemas com funes lineares
por partes.
Captulo 2: Otimizao linear 49

Figura 2.13 Funo penalidade para o estoque fora dos limites desejados.

2.3 HIPTESES DE LINEARIDADE


Nos modelos de otimizao linear, como aqueles apresentados na Seo 2.2, so admitidas al-
gumas hipteses s quais as grandezas envolvidas precisam obedecer: aditividade, proporcio-
nalidade e fracionamento.

Hiptese de aditividade
Esta hiptese pressupe que o todo igual soma das partes. Por exemplo, se em 1kg do in-
grediente j encontramos 200g (ou 0,2kg) do componente i e, em 1kg do ingrediente k, encon-
tramos 100g do mesmo componente, ento a mistura de 2kg, obtida pela adio de 1kg de cada
ingrediente j e k, tem 300g do componente i. Cabe alertar que, apesar de esse comportamento
ser comum, so muitas as aplicaes prticas em que isso no acontece ou pode ser negligen-
ciado. Por exemplo, quando se misturam diferentes tipos de ingredientes cujos componentes rea-
gem biolgica, fsica ou quimicamente, formando outros componentes. Isso acontece, por
exemplo, se adicionarmos o equivalente em volume a 0,1 litro de acar em 1 litro de gua. O
volume resultante da gua aucarada no de 1,1 litro. Outro exemplo o preparo de fluidos para
freios de veculos, em que os insumos reagem quimicamente, alterando caractersticas importantes
como ponto de ebulio ou viscosidade.

Hiptese de proporcionalidade
Esta hiptese pressupe que, se aij a quantidade do componente i em uma unidade do in-
grediente j, ento aijxj ser a quantidade do componente i em xj unidades; se uma unidade do
ingrediente j custa cj, ento xj unidades custam cjxj. Por exemplo, se 1kg de um ingrediente con-
tm 200g de um componente, ento kg deste ingrediente contm 100g do mesmo componente,
assim como 3kg contm 600g.

Hiptese de fracionamento
Valores fracionrios para as variveis so aceitveis. Por exemplo, podemos utilizar 1kg de um
ingrediente em uma mistura, como tambm 0,25kg desse ingrediente. Porm, dependendo do
tipo do problema, o arredondamento de valores pode dar uma conotao muito distorcida da
prtica, invalidando os resultados. Por exemplo, uma varivel pode representar o nmero de m-
quinas ou veculos a serem adquiridos por uma empresa. Nesses casos, em geral, deve-se restringir
50 Pesquisa Operacional

essas variveis ao conjunto dos nmeros inteiros, tornando o modelo de otimizao inteira. O bom
senso deve ditar simplificaes razoveis. Por exemplo, se a varivel x1 representa o nmero de
peas do tipo 1 que devem ser fabricadas e o resultado do modelo matemtico x1 = 331,4, produ-
zir 331 ou 332 peas do tipo 1 so decises aceitveis e coerentes na prtica, ento no h moti-
vo para modelar a varivel x1 como uma varivel inteira. Um modelo de otimizao inteira, em
geral, bem mais difcil de se resolver do que um modelo de otimizao linear, conforme discu-
tido no Captulo 3.
Embora as hipteses de linearidade possam sugerir que modelos de otimizao linear tm uti-
lizao limitada, os exemplos de aplicaes nas mais diversas reas de conhecimento e situaes
prticas indicam o contrrio, como ilustrado na seo anterior. Existem inmeros outros exem-
plos de aplicaes de modelos de otimizao linear em diversas reas das engenharias (alimen-
tos, aeronutica, civil, computao, controle e automao, eltrica, eletrnica, florestal, produo,
qumica, mecnica, mecatrnica, metalrgica, minas, naval etc.), em economia e finanas, medi-
cina, fsica, cincias sociais, ecologia, esportes etc. Os modelos de otimizao linear apiam o pro-
cesso de tomada de decises e, para extrair desses modelos informaes de interesse do decisor,
foram desenvolvidos diversos mtodos que so apresentados nas sees seguintes deste captulo.

2.4 CONCEITOS BSICOS


Nesta seo apresentamos terminologias que so usadas ao longo deste captulo.

2.4.1 Um problema de otimizao linear

Definio 2.1 (forma padro) A seguinte forma do problema de otimizao linear chamada de for-
ma padro:
Minimizar f(x1, x2,, xn) = c1x1+ c2x2 + + cnxn (2.20)
a11x1 + a12x2 + + a1nxn = b1
a21x1 + a22x2 + + a2n xn = b2
M (2.21)
am1x1+ am2x2 + + amn xn = bm
x1 0, x2 0, , xn 0. (2.22)
A funo linear f em (2.20), a ser minimizada, chamada funo objetivo, o sistema de equa-
es lineares em (2.21) define as restries do problema, juntamente com as condies de no
negatividade das variveis em (2.22). O problema (2.20)(2.22) pode ser escrito equivalentemente
em notao matricial como:
Minimizar f(x) = cTx
Ax = b
x 0,
em que

a11 a12 L a1n


a a22 L a2 n
A = 21 uma matriz mn, chamada matriz dos coeficientes
M M M
(ou matriz tecnolgica);
am1 am 2 L amn
Captulo 2: Otimizao linear 51

cT = (c1 c2 L cn ) o vetor de custos,


xT = ( x1 x2 L xn ) o vetor das variveis ou incgnitas,
bT = (b1 b2 L bm ) o vetor dos termos independentes ou de recursos,
0T = (0 0 0) o vetor cujos elementos so todos iguais a 0.
Observaes: Denotamos por xT o transposto do vetor x. Em geral, supomos que um vetor
do tipo coluna, isto , um vetor de n coordenadas uma matriz n1. Por comodidade, utiliza-
mos tambm a notao (x1, x2, , xn) para o vetor x.
Na forma padro, o problema de otimizao linear tem as seguintes caractersticas:
a funo objetivo deve ser minimizada;
as restries do problema so definidas por um sistema de equaes lineares;
as condies de no-negatividade de todas as variveis de deciso complementam as res-
tries do problema.
Qualquer problema de otimizao linear pode ser escrito na forma padro. Com isso, sem per-
da de generalidade, desenvolvimentos tericos, mtodos e propriedades de problemas de
otimizao linear podem ser apresentados considerando o problema nessa forma.

Definio 2.2 (soluo factvel e regio factvel) Uma soluo (x1, x2, , xn) dita factvel se satisfi-
zer todas as restries (2.21) e as condies de no-negatividade (2.22). O conjunto de todas as
solues factveis chamado regio factvel.

Exemplo 2.12 Analise o problema de otimizao linear dado por


Minimizar f(x1, x2, x3) = 2x1 x2 + 4x3
x1 + 2x2 + x3 = 3
x2 + 2x3 = 4
x1 0, x2 0, x3 0.

Em termos do modelo (2.20)(2.22), temos: m = 2 (duas restries), n = 3 (trs variveis), c1 = 2,


c2= 1, c3 = 4, a11 = 1, a12 = 2, a13 = 1, b1 = 3, a21 = 0 (observe que a varivel x1 no aparece ex-
plicitamente na segunda equao), a22 = 1, a23 = 2, b2 = 4. As variveis deste problema (x1, x2, x3)
correspondem a um vetor de trs coordenadas e, portanto, o espao de possveis solues est
contido no R3. A soluo particular x1 = 1, x2 = 0, x3 = 2 uma soluo factvel, pois satisfaz to-
das as restries do problema. Para essa soluo, a funo objetivo tem valor f(1, 0, 2) = 10. Uma
outra soluo factvel x1 = 0,25, x2 = 0,5, x3 = 1,75 (verifique que satisfaz todas as restries do
problema) tem valor da funo objetivo f(0,25; 0,5; 1,75) = 7. Isso significa que esta soluo
melhor do que a anterior, j que o objetivo do problema determinar o menor valor possvel para
1 2 1
f(x1, x2, x3). A matriz dos coeficientes 23, dada por: A = , o vetor dos custos por c = (2 1 4) ,
T

0 1 2
o vetor de recursos por b = (3 4)T e o vetor de variveis por x = (x1 x2 x3)T.
n

Definio 2.3 (soluo tima) Uma soluo factvel que fornece o menor valor funo objetivo f
chamada soluo tima, denotada por ( x1* , x2* , L , xn* ) . Uma soluo factvel tima se:
f ( x1* , x2* , L , xn* ) f(x1, x2, , xn),
para qualquer soluo factvel (x1, x2, , xn).
52 Pesquisa Operacional

Exemplo 2.13 Examine o problema do Exemplo 2.12 juntamente com as solues factveis indi-
cadas. Podemos observar que a soluo factvel x1 = 0,25, x2 = 0,5, x3 = 1,75 melhor que a so-
luo factvel x1=1, x2 = 0, x3 = 2. Ser que existe alguma soluo melhor? Considere a seguinte
soluo factvel x1= 0, x2 = 23 , x3 = 53 (verifique que esta soluo factvel). O valor da funo
objetivo para esta soluo f(0, 23 , 53 ) = 6. Isso mostra que esta soluo melhor do que as ante-
riores. Mas ainda resta a questo: h outra soluo melhor que esta? Esta soluo de fato ti-
ma, como pode ser verificado adiante com a teoria deste captulo. n

Resolver um problema de otimizao consiste em determinar uma soluo tima, isto , de-
terminar uma soluo que satisfaa todas as restries do problema e que atribua o melhor va-
lor funo objetivo.

2.4.2 Transformao de problemas na forma padro


Vrias outras formas de problemas de otimizao linear aparecem em problemas reais, por exem-
plo, quando se deseja maximizar a funo objetivo, ou existem restries de desigualdade, ou ain-
da, quando algumas ou todas as variveis no tm a condio de no-negatividade. A seguir,
veremos como problemas de otimizao linear que no estejam na forma padro podem ser
reescritos nesta forma.

Problemas de maximizao

Encontrar uma soluo tima que maximize a funo objetivo, corresponde a encontrar uma so-
luo factvel x* = ( x1* , x2* , L , xn* ) tal que
f(x*) f(x), para toda soluo x factvel.
Multiplicando-se essa desigualdade por 1, tem-se, de forma equivalente
f(x*) f(x), para toda soluo x factvel,
ou seja, encontrar uma soluo factvel x* que maximize f(x) equivalente a encontrar uma so-
luo factvel x* que minimize f(x), conforme a definio 2.3. Portanto, caso o problema seja de
maximizar f(x), podemos considerar, em seu lugar, o problema equivalente de minimizar f(x).

Exemplo 2.14 O seguinte problema de otimizao linear:


Maximizar f(x1, x2, x3) = 2x1 x2 + 4x3
x1 + 2x2 + x3 = 3
x2 + 2x3 = 4
x1 0, x2 0, x3 0,
equivalente ao problema na forma padro:
Minimizar f(x1, x2, x3) = 2x1 + x2 4x3
x1 + 2x2 + x3 = 3
x2 + 2x3 = 4
x1 0, x2 0, x3 0.
n
Captulo 2: Otimizao linear 53

Restries de desigualdade

As restries do problema poderiam ser, originalmente, dadas por inequaes, em vez de equa-
es, como em (2.21). Nesse caso, convertemos o problema na forma padro com o auxlio de
novas variveis. Suponha que a restrio i seja dada por
ai1 x1 + ai2 x2+ + ain xn bi (por exemplo, 3x1+4x2 x3 7).
A quantidade que falta para a igualdade dada pela diferena entre o lado direito e o esquer-
do da desigualdade e desconhecida, isto , uma incgnita:
xk = bi (ai1 x1 + ai2 x2 + + ain xn) 0.
Portanto, podemos escrever uma igualdade, com a incluso de uma nova varivel no-negativa:
ai1 x1 + ai2 x2 + + ain xn + xk = bi (por exemplo, 3x1+4x2 x3+ x4 = 7, x4 0)
xk 0.
Em resumo, basta somar uma varivel no-negativa no lado esquerdo, que representa a folga
existente na inequao original. Analogamente, se a restrio for da forma
ai1 x1 + ai2 x2 + + ain xn bi (por exemplo, 3x1+ 4x2 x3 7),
basta subtrair uma varivel xk no lado esquerdo da inequao para transform-la em igualdade,
sendo xk 0. A desigualdade , ento, escrita como:
ai1 x1 + ai2 x2 + + ain xn xk = bi (por exemplo, 3x1+ 4x2 x3 x4 = 7, x4 0).
Essas variveis adicionais, chamadas de variveis de folga, so muito teis, pois deixam todas
as restries em forma de igualdade, mantendo-se as condies de no-negatividade (no caso de
desigualdade do tipo , a varivel introduzida tambm chamada de varivel de excesso).

Exemplo 2.15 Escreva o seguinte problema de otimizao linear na forma padro.


Minimizar f(x1, x2, x3) = 2x1 3x2 + 3x3
x1 + 2x2 x3 3
2x1 + x2 + x3 1
x1 0, x2 0, x3 0.
Introduzindo as variveis de folga, temos:
Minimizar f(x1, x2, x3, x4, x5) = 2x1 3x2 + 3x3 + 0x4 + 0x5
x1 + 2x2 x3 x4 = 3
2x1 + x2 + x3 + x5 = 1
x1 0, x2 0, x3 0, x4 0, x5 0.
n

Variveis livres

No caso de existir alguma varivel xi irrestrita de sinal no problema, chamada varivel livre,
podemos substituir esta varivel por outras duas e obter um problema equivalente na forma pa-
dro. Observe que qualquer nmero (seja positivo, negativo ou nulo) pode ser sempre escrito
como uma diferena de dois outros no-negativos, isto , podemos escrever uma varivel livre
xi como:
xi = xi+ xi , com xi+ 0, xi 0.
Substituindo essa redefinio da varivel livre, o problema resultante tem todas as variveis no-
negativas, conforme desejado.
54 Pesquisa Operacional

Exemplo 2.16 Reescreva o seguinte problema de otimizao linear na forma padro.


Minimizar f(x1, x2, x3, x4, x5) = 2x1 3x2 + 3x3
x1 + 2x2 x3 x4 = 3
2x1 + x2 + x3 + x5 = 1
x1 livre, x2 0, x3 0, x4 0, x5 0.
Como a varivel x1 irrestrita em sinal, podemos escrev-la como a diferena de duas vari-
veis no-negativas x1 = x1+ x1 , x1+ 0, x1 0. Substituindo no problema, temos:
Minimizar f( x1+ , x1 , x2, x3, x4, x5) = 2 x1+ 2 x1 3x2 + 3x3
x1+ x1 + 2x2 x3 x4 = 3
+
2 x1 + 2 x1 + x2 + x3 + x5 = 1
+
x1 0, x1 0, x2 0, x3 0, x4 0, x5 0. n

Nas Sees 2.2.8-2.2.10 so apresentadas situaes tpicas em que variveis livres ocorrem.

Expresses alternativas na forma padro

O problema (2.20)(2.22) pode ser escrito de maneira equivalente, usando-se expresses mais
compactas, como a forma matricial apresentada anteriormente. Outras formas ainda podem ser
utilizadas, tais como:
n
Minimizar f(x1, x2, , xn) =
n
cj xj
j =1

aj xj = b
j =1
xj 0, j = 1, ..., n,
em que:
a1 j
a
aj = : j-sima coluna da matriz A, que so os coeficientes que multiplicam xj.
2j

M
a
mj

Exemplo 2.17 Observe o sistema linear no Exemplo 2.12. Podemos reescrev-lo explicitando suas
colunas:

x1 + 2 x2 + x3 = 3 1 2 1 3
x1 + x2 + x3 = .
x2 + 2 x3 = 4 0 1 2 4
n

2.5 RESOLUO GRFICA


A visualizao de solues de um problema matemtico, quando possvel e mesmo que limitada
a um desenho esquematizado no plano, pode ser bastante til para melhorar nossa intuio so-
bre um problema em estudo. Em particular, a representao grfica de problemas de otimizao
linear permite-nos intuir vrias propriedades tericas e delinear um mtodo de soluo, que est
formalmente desenvolvido nas sees seguintes. Como vimos na seo 2.4 (conceitos bsicos),
resolver um problema de otimizao linear consiste em encontrar uma soluo tima, isto , para
um problema de minimizao, consiste em determinar uma soluo factvel x* tal que f(x*) f(x),
Captulo 2: Otimizao linear 55

para todo x factvel. Consideramos exemplos de problemas com apenas duas variveis, de modo
a ilustrar a representao das solues factveis e da soluo tima em um plano cartesiano. De-
senhamos, inicialmente, a regio factvel, isto , o espao de todas as solues factveis e, ento,
identificamos qual delas fornece o menor valor funo objetivo. Por convenincia, considera-
mos o problema de otimizao linear na forma de desigualdades.

Exemplo 2.18 Considere o problema de otimizao linear


Maximizar f(x1, x2) = x1 + 2x2
x1 + x2 4
x1 2
x2 3
x1 0, x2 0.
n
Denominamos a regio factvel por:
S = {(x1, x2) tal que x1 + x2 4, x1 2, x2 3, x1 0, x2 0}.

Desenhando a regio factvel ( S )

Devemos ter em mente que as solues factveis devem satisfazer todas as restries. Represen-
tamos inicialmente os pontos no plano (x1, x2) que satisfazem as condies de no-negatividade,
x1 0, x2 0, isto , o primeiro quadrante do plano (ver Figura 2.14).
Para representar os pontos no plano (x1,x2) que tambm satisfazem a restrio x1+x2 4, po-
demos proceder do seguinte modo:
Inicialmente, identificamos os pontos que satisfazem a igualdade x1+ x2 = 4. Esta equao
define uma reta no plano (uma reta bem definida por 2 pontos, por exemplo, x1 = 0, x2 = 4
e x2=0, x1 = 4). Observe que os coeficientes da reta, o vetor (1, 1)T perpendicular reta
(verifique isso graficamente na Figura 2.15);
Identificamos, a seguir, os pontos que satisfazem x1+ x2 < 4. Para identificar este conjun-
to, observamos que o vetor (1, 1)T aponta no sentido em que a funo x1+ x2 cresce (mos-
tramos essa afirmao a seguir). Portanto, os pontos no plano a partir da reta, do lado
para o qual o vetor (1,1)T aponta, so tais que x1+ x2 > 4, e os pontos do lado oposto que-

Figura 2.14 Regio definida por x1 0 e x2 0.


56 Pesquisa Operacional

le para o qual o vetor (1, 1)T aponta so tais que x1+ x2 < 4. Estes ltimos so os pontos que
nos interessam. Uma outra maneira simples de identificar qual o lado da reta que nos in-
teressa consiste em verificar a factibilidade de um ponto qualquer fora da reta. Neste exem-
plo, a origem (x1, x2) = (0, 0) um ponto bem conveniente para verificar sua factibilidade.
Notamos que 0 + 0 < 4, portanto, a origem (0, 0) uma soluo factvel, bem como to-
dos os pontos que esto do mesmo lado da origem.
A reunio dos pontos tais que x1+ x2 = 4 e x1+ x2 < 4 o que queremos considerar. A Figura
2.15 ilustra esses pontos, j considerando as condies de no-negatividade (primeiro quadrante).
De modo semelhante, desenhamos as regies de pontos que satisfazem as restries x1 2
e x2 3, e as restries de no-negatividade (Figuras 2.16 e 2.17).
A interseco de todas as regies representadas nas Figuras 2.14 a 2.17 define a regio factvel,
ilustrada na Figura 2.18.

Determinando a soluo tima (x*)

A funo objetivo f(x1, x2) = x1 + 2x2, definida no conjunto S, pode assumir infinitos valores.
Por exemplo, na soluo factvel x = ( x1 x2 ) T = (0 0)T, a funo objetivo vale f = f (x) = 0 e to-

Figura 2.15 Regio definida por x1+ x2 4, x1 0, x2 0.

Figura 2.16 Regio definida por x1 2.


Captulo 2: Otimizao linear 57

Figura 2.17 Regio definida por x2 3.

Figura 2.18 Regio factvel S .

dos os pontos do plano (x1 x2) que atribuem este mesmo valor funo objetivo esto na reta
x1 + 2x2 = 0 (o conjunto de pontos que atribui o mesmo valor funo objetivo chamado cur-
va de nvel, neste caso, f(x1, x2)= f ). Esta curva de nvel representada na Figura 2.19 pela reta
tracejada f = 0. Como j observamos, ao definir a regio factvel, o vetor dos coeficientes (1 2)T
(este vetor chamado gradiente de f e denotado por f(x1, x2)) perpendicular reta x1+ 2x2 = 0
(uma curva de nvel de f) e aponta no sentido em que a funo f cresce. Com isso, podemos
visualizar que qualquer ponto de S atribui valor maior que zero funo f. Como queremos
maximizar f, podemos concluir, graficamente, que a soluo factvel x = (0 0)T no uma so-
luo tima.
Analisemos outra soluo factvel x = ( x1 x2 )T = (2 0)T, em que a funo objetivo vale
f = f (x ) = 2 e a curva de nvel x1 + 2x2 = 2 est representada, na Figura 2.19, por f = 2.
Como o gradiente no se altera, essa reta paralela anterior, f = 0. Novamente, o gradiente
aponta no sentido em que f cresce e podemos identificar no grfico outros pontos de S que atri-
buem valores maiores que 2 funo objetivo. Logo, x no uma soluo tima.
Continuando com este procedimento (de identificar pontos que atribuem valores maiores
funo objetivo), chegamos a um extremo x* = ( x1* x*2 )T = (1 3)T, para o qual f(x*) = 7. A cur-
va de nvel x1 + 2x2 = 7 nos permite agora observar que todos os pontos de S atribuem valores
58 Pesquisa Operacional

Figura 2.19 Determinando a soluo tima x* (problema de maximizao).

menores que 7 funo objetivo, uma vez que o gradiente aponta no sentido de crescimento de f.
De outra forma, para todo xS, f(x) 7 = f(x*), o que significa que x* uma soluo tima.
Portanto, a soluo x* que satisfaz todas as restries simultaneamente e maximiza f(x) exis-
te e nica:
x 1
x* = x = 3 .
1

2
Refazemos a seguir os passos do Exemplo 2.18 com um pouco mais de generalidade. Antes
disso, mostramos as afirmaes feitas na apresentao desse exemplo.
Considere uma reta qualquer, a1x1 + a2x2 = b (por exemplo, as retas x1+ x2=4 ou x1 + 2x2 = 0
que surgiram no Exemplo 2.18). Afirmamos que o vetor aT=(a1a2) perpendicular a essa reta.
Para provar esta afirmao, considere dois pontos sobre a reta, digamos, x = ( x1 , x2 ) e
x = ( x1, x2) , ou seja, a1 x1 + a2 x2 = b e a1 x1+ a2 x2 = b . O vetor y = x x define a direo da reta
(veja a Figura 2.20).

Figura 2.20 O vetor a perpendicular direo da reta y .


Captulo 2: Otimizao linear 59

Provamos a seguir que o vetor a perpendicular ao vetor y, ou seja, aTy = 0 (o produto esca-
lar entre vetores perpendiculares nulo). De fato, aTy igual a:

y1
(a1 a2 ) = a1 ( x1 x1 ) + a2 ( x2 x1 ) = (a1 x1 + a2 x2 ) (a1 x1 + a2 x1 ) = b b = 0.
y2
Essa prova pode ser simplificada com a notao matricial da reta aTx = b, com a=(a1, a2) e
x = (x1, x2). Considerando x e x dois pontos da reta, isto , aT x = b, aT x =b e y = x x ,
ento, aTy = aT( x x ) = aT x aT x = b b = 0. Embora tenhamos considerado os vetores no
R2, as operaes feitas so vlidas para qualquer dimenso. A equao aTx = b no R3 a equa-
o de um plano, ou seja, o vetor a perpendicular ao plano, pois x e x so arbitrrios. Em
geral, quando o espao o Rn, a equao aTx = b define um conjunto chamado hiperplano e o
vetor a perpendicular ao hiperplano.
Outra afirmao que fizemos no Exemplo 2.18 foi de que o vetor a aponta para o lado do pla-
no cujos pontos satisfazem aTx > b. De fato, um ponto no lado indicado pelo vetor a se escreve
como um ponto da reta, digamos, x, adicionado a um mltiplo positivo do vetor a. De outra for-
ma, os pontos do lado que indica o vetor a so dados por x = x+a, > 0 (Figura 2.20). Con-
seqentemente,
aTx = aT(x+ a) = aT x + aTa > b,
pois > 0 e aTa = a12 + a22 + L + an2 > 0 (Consideramos a 0; o caso a = 0 corresponde equa-
o 0x1 + 0x2 = b, que no tem sentido para nossos estudos, pois b = 0 leva a uma equao tri-
vial 0 = 0, e b 0 leva a uma equao impossvel). Portanto, quando queremos identificar os
pontos que satisfazem aTx b, traamos a reta aTx = b, desenhamos o vetor a (perpendicular
reta) e consideramos os pontos no lado oposto ao indicado pelo vetor a (como identificar os pontos
que satisfazem aTx b?). O mesmo raciocnio foi empregado para determinar a soluo tima.
Escolhemos uma soluo factvel qualquer, digamos, x, e seja f = f(x) = cTx o valor da fun-
o objetivo em x. Ao traarmos a reta f(x) = f (isto , uma curva de nvel da funo f, que neste
caso uma reta c1x1 + c2x2 = f ), desenhamos o gradiente de f, o vetor c, que aponta para pon-
tos tais que f(x) > f .
Se desejarmos maximizar f(x) (como no Exemplo 2.18), procuramos pontos factveis que es-
tejam do lado apontado pelo gradiente c, partindo-se da curva de nvel f (x) = f . Uma situa-
o limite ocorre (em certos casos, pode tambm no ocorrer, como veremos adiante) quando
todos os pontos do lado do gradiente c so infactveis, ou seja, todos os pontos factveis esto
do lado oposto do gradiente e, portanto, atribuem valores menores funo f(x). Isso o que ca-
racteriza uma soluo tima. Se o objetivo for minimizar f(x), aplicamos o mesmo procedimento,
porm buscando pontos no sentido contrrio ao do vetor gradiente. Formalizamos a seguir os
passos do Exemplo 2.18 de forma genrica. Considere o problema de otimizao linear (mi-
nimizao):
Minimizar f(x1, x2) = c1 x1+ c2 x2
a11 x1 + a12 x2 b1
a21 x1 + a22 x2 b2
M
ai1 x1 + ai2 x2 bi
M
am1 x1 + am2 x2 bm
x1 0, x2 0,
60 Pesquisa Operacional

ou, em notao matricial,


Minimizar f(x) = cTx
Ax b
x0 com x R2
Denotamos a regio factvel por S, isto , S = {x R2 tal que Ax b, x 0}. Para desenhar o
conjunto de pontos tais que ai1 x1 + ai2 x2 bi, traamos, inicialmente, a reta ai1 x1 + ai2 x2 = bi, que
divide o espao R2 em 3 partes (em notao matricial, a restrio (ai)Tx bi, em que (ai)T = (ai1 ai2)
a linha i da matriz A e a equao da reta (ai)T x = bi):
x R2 tal que (ai)Tx = bi
x R2 tal que (ai)Tx < bi
x R2 tal que (ai)Tx > bi .
O gradiente ai (coeficientes da equao da reta), que perpendicular reta (ai)Tx = bi, aponta
para pontos tais que (ai)Tx > bi (veja Figura 2.21).
A regio factvel, que a interseco de todas as regies do tipo aix bi com o primeiro
quadrante (no-negatividade das variveis), pode ser facilmente desenhada (Figura 2.22).

Figura 2.21 As trs regies do plano: a) aix = bi b) a ix < bi c) a ix > bi .

Figura 2.22 Regio factvel de restries do tipo aix bi , i = 1, 2, ...m.


Captulo 2: Otimizao linear 61

Finalmente, basta encontrar na regio factvel a soluo x* que minimize a funo objetivo f(x),
isto , a soluo tima. Observando a curva de nvel cTx = f* da funo f em que f*= f(x*), obser-
vamos que todo o conjunto S est do lado para onde o gradiente aponta, ou seja, para todo
x S, temos f(x) f(x*), que a definio de soluo tima para um problema de minimizao.
A Figura 2.23 ilustra vrias curvas de nvel da funo f.
A soluo tima x* na Figura 2.23 uma soluo factvel muito especial chamada vrtice ou
ponto extremo (veja tambm a soluo x* no Exemplo 2.18). Nas figuras que ilustram a regio
factvel, possvel notar que os vrtices so determinados pela interseco de (pelo menos) duas
retas que definem a fronteira da regio factvel (observe que xi = 0 uma equao de reta). Des-
sa forma, podemos intuir que os vrtices so solues de sistemas de equaes lineares. Forma-
lizaremos tais sistemas lineares mais adiante.
O leitor deve observar que, se o gradiente da funo objetivo for modificado, outro vrtice
pode ser uma soluo tima (refaa o Exemplo 2.18, considerando a funo objetivo f(x1, x2) =
x1 2x2), de modo a sugerir a seguinte propriedade:
Se um problema de otimizao linear tem uma soluo tima, ento existe um vrtice timo.
Na prxima seo, retornamos a essa propriedade. O leitor deve ficar atento seguinte afir-
mao equivocada: se uma soluo for tima, ento ela um vrtice e, como exerccio, pode apre-
sentar um contra-exemplo.

Exemplo 2.19 Considere o problema de otimizao linear:


Maximizar f (x1, x2) = x1 + x2
3x1 + x2 2
x2 3
x1 + 2x2 9
3x1 + x2 18
x1 0, x2 0. n

Desenhando a regio factvel (S):


A Figura 2.24 ilustra a regio factvel S do Exemplo 2.19.

Figura 2.23 Curvas de nvel da funo objetivo, f > f > f * (problema de minimizao).
62 Pesquisa Operacional

Determinando a soluo tima:


A Figura 2.25 indica a soluo tima x* do Exemplo 2.19.
Portanto, a soluo x* que satisfaz todas as restries simultaneamente e maximiza f(x) nica
e dada pela soluo do sistema:
x1 + 2x2 = 9
3x1 + x2 = 18

x1 5,4
x* = x = 1,8 e f(x*) = 7,2.
2

O problema representado na Figura 2.25 tem a regio factvel limitada e apresenta uma nica
soluo tima. Entretanto, vrias outras possibilidades podem ocorrer, o que pode ser facilmen-

Figura 2.24 Grfico do problema de otimizao linear do Exemplo 2.19.

Figura 2.25 Determinando a soluo tima (problema de maximizao).


Captulo 2: Otimizao linear 63

te concludo dos grficos das Figuras 2.26 e 2.27. verdade que, se a regio factvel limitada,
ento existe uma soluo tima. Mas tambm podemos ter situaes em que a regio factvel
ilimitada e ainda assim existir uma nica soluo tima, como ilustrado na Figura 2.26.
Embora os exemplos anteriores apresentem sempre uma soluo tima nica, a Figura 2.27
ilustra um caso com infinitas solues timas, todas as solues sobre o segmento de reta
realado.

Exemplo 2.20 Considere o problema de otimizao linear:


Maximizar f (x1, x2) = x1 + 2x2
3x1 + x2 2
x2 3
x1 + 2x2 9
3x1 + x2 18
x1 0, x2 0.

Figura 2.26 Regio de factibilidade ilimitada e soluo tima nica (minimizao).

Figura 2.27 Regio factvel limitada e infinitas solues timas, conjunto limitado de solues timas (minimizao).
64 Pesquisa Operacional

Procedendo como temos feito, identificamos a regio factvel e as solues timas, determina-
das pelo segmento de reta em destaque na Figura 2.28 que liga os pontos A e B. Note que o gra-
diente da funo objetivo, c = (1, 2), mltiplo do gradiente da reta x1 + 2x2=9. Assim, todos
os pontos no segmento satisfazem f(x1, x2) = 9 e so solues timas, j que qualquer soluo que
satisfaz f(x1, x2) > 9 infactvel. n
Pode-se ter, tambm, um conjunto ilimitado de solues timas, como a semi-reta indicada na
Figura 2.29.
A Figura 2.30 ilustra mais uma possibilidade: um problema de otimizao linear pode no ter
soluo tima, apesar de ter solues factveis. Neste caso, dizemos que a soluo tima ilimi-
tada. Note, entretanto, que isso no quer dizer que sempre inexista uma soluo tima para um
problema com regio factvel ilimitada, pois a soluo tima depende do gradiente da funo ob-
jetivo (veja Figuras 2.26 e 2.29).

Figura 2.28 Mltiplas solues timas (maximizao).

Figura 2.29 Regio factvel ilimitada e infinitas solues timas, conjunto ilimitado de solues timas (minimizao).
Captulo 2: Otimizao linear 65

A inexistncia de soluo tima tambm pode ocorrer pela inexistncia de soluo factvel, isto
, S = . Isso decorre do fato de as restries serem conflitantes, como ilustra a Figura 2.31.
A Figura 2.32 mostra uma situao em que o mesmo vrtice pode ser obtido como interseco
de retas diferentes. Essa situao produz um vrtice que chamamos de vrtice degenerado. Tais
vrtices, em geral, introduzem algumas dificuldades nos mtodos de solues, discutidas nas se-
es seguintes.

Figura 2.30 Rego factvel ilimitada e no existe soluo tima (soluo tima ilimitada), cTx (minimizao).

Figura 2.31 No existe soluo tima: S = .

Figura 2.32 Soluo tima degenerada (minimizao).


66 Pesquisa Operacional

Exemplo 2.21 Considere o seguinte problema de otimizao linear:


Maximizar f (x1, x2) = x1 + 3x2
x2 4
x1 + x2 6
x1 3
5x1 + x2 18
x1 0, x2 0.

Este problema, como podemos observar na Figura 2.33, tem soluo tima no degenerada:
x1 2
x* = x = 4 e f(x*) = 14
2

embora tenha uma soluo factvel degenerada:


x1 3
x= x = 3 e f(x) = 12. n
2

Os casos observados na resoluo grfica de um problema de otimizao linear com apenas


duas variveis so igualmente possveis em problemas de dimenses maiores. Na prxima seo,
apresentamos os subsdios tericos necessrios para tratar o caso geral. Por exemplo, j intumos
que uma soluo tima, se houver, pode ser pesquisada entre os vrtices (os quais so obtidos por
interseces de retas ou pela soluo de sistemas lineares). Assim, se formos capazes de sair de
um vrtice para outro melhor, podemos repetir isso um nmero finito de vezes at encontrar um
vrtice timo. A Figura 2.34 ilustra essa trajetria pela fronteira da regio factvel, partindo da
origem at a soluo tima x*. assim que trabalha o mtodo simplex, um dos mais utilizados m-
todos para a resoluo de problemas de otimizao linear, discutido na prxima seo. Outra classe
de mtodos gera uma seqncia de pontos interiores que converge para a soluo tima x1, x2, ...
x* seguindo-se uma trajetria central, em vez de uma trajetria pela fronteira da regio factvel.
Essa classe de mtodos no abordada neste livro, embora seja importante na resoluo de proble-
mas de otimizao linear.17 Outras trajetrias, seguindo solues infactveis, tambm podem ser
construdas, como por exemplo, pelo mtodo dual-simplex, apresentado na Seo 2.10.4.

2.6 TEORIA BSICA E O MTODO SIMPLEX


Nesta seo, apresentamos algumas definies e propriedades fundamentais da otimizao li-
near e um de seus mtodos mais importantes: o mtodo simplex. Por convenincia, a teoria de-
senvolvida para o problema na forma padro (Seo 2.4.2):
Minimizar f(x) = cTx
Ax = b
x 0.
Embora, por convenincia, os exemplos ilustrados nesta seo tenham as restries na forma
de desigualdades (restries de igualdade definem retas no R2), os desenvolvimentos nas sees
seguintes utilizam a forma padro (problema de minimizao e restries de igualdade e no
negatividade sobre as variveis).

17 Veja Adler et al. (1989), Gonzaga (1991) e Vanderbei (2001).


Captulo 2: Otimizao linear 67

Figura 2.33 Problema com soluo degenerada e timo no degenerado.

Figura 2.34 Trajetrias at a soluo tima (minimizao).

2.6.1 Solues bsicas

A seguir formalizamos algumas propriedades j intudas no captulo anterior, quando resolvemos


graficamente alguns problemas de otimizao linear, e vrtices da regio factvel foram obtidos
pela resoluo de sistemas de equaes lineares. Iniciamos com um exemplo simples. Considere
a regio factvel S R2, definida pelas restries a seguir e ilustrada na Figura 2.35:
x1 + x2 6
x1 x2 4 (2.23)
3x1 + x2 3
x1 0, x2 0.
68 Pesquisa Operacional

Com a definio das variveis de folga (veja Seo 2.4.2):


x3 = 6 (x1 + x2) 0
x4 = 4 (x1 x2) 0 (2.24)
x5 = (3x1 + x2) 3 0,
o problema transformado na forma de igualdade (Ax = b, x 0):
x1 + x2 + x3 =6
x1 x2 + x4 =4 (2.25)
3x1 + x2 x5 = 3
x1 0, x2 0, x3 0, x4 0, x5 0.
O problema passa a ter cinco variveis (x1, x2, x3, x4, x5), em vez de apenas as duas primeiras
(x1, x2). Porm, qualquer ponto em R2 determina unicamente essas cinco variveis conforme
(2.25), ou seja, dado o par (x1, x2), podemos determinar unicamente os valores de x3, x4 e x5 por
(2.24). Vejamos alguns exemplos numricos representados na Figura 2.35 pelos pontos A, B, ..., F.
Inicialmente, examinamos os pontos de A a D:
Ponto A: Ponto B: Ponto C: Ponto D:
x1 = 3 x1 = 1 x1 = 2 x1 = 5
x2 = 2 x2 = 3 x2 = 4 x2 = 1
x3 = 6 (3 + 2) = 1 x3 = 6 (1 + 3) = 2 x3 = 6 (2 + 4) = 0 x3 = 6 (5 + 1) = 0
x4 = 4 (3 2) = 3 x4 = 4 (1 3) = 6 x4 = 4 (2 4) = 6 x4 = 4 (5 1) = 0
x5 = (3 3 + 2) 3 = 8 x5 = (3 1 + 2) 3 = 3 x5 = (3 2 + 2) 3 = 7 x5 = (3 5 + 1) 3 = 13.

Tais solues so factveis, pois o sistema Ax = b satisfeito por construo (reveja como as
variveis x3, x4 e x5 foram calculadas), alm de satisfazerem as condies de no-negatividade. A
factibilidade dessas solues tambm pode ser visualizada na Figura 2.35, nos pontos pertencen-
tes regio factvel.

Figura 2.35 Regio factvel e fronteira caracterizada por xj = 0, j = 1,...,5.


Captulo 2: Otimizao linear 69

Lembre-se de que as solues do sistema Ax = b tm 5 coordenadas x = (x1, x2, x3, x4, x5), po-
rm, visualizamos na Figura 2.35 apenas as duas primeiras coordenadas (x1, x2), enquanto as de-
mais coordenadas (x3, x4, x5) medem as folgas em cada restrio. Assim, os pontos A e B esto no
interior da regio factvel, pois tm todas as coordenadas positivas, ou seja, todas as restries esto
folgadas. Por exemplo, no ponto A, x1 + x2 < 6, portanto, x3 > 0 (isto , a restrio 1 folgada no
ponto A). Por outro lado, os pontos C e D esto sobre a fronteira de S, pois alguma varivel se
anula. Por exemplo, no ponto C, x1 + x2 = 6, portanto, x3 = 0 (a restrio 1 ativa no ponto C,
isto , tem folga nula). Da mesma forma, todos os pontos sobre a reta x1 + x2 = 6 satisfazem x3 = 0.
Em particular, no ponto D (o qual j chamamos de vrtice da regio factvel), duas variveis se
anulam, x3 = x4 = 0 (o leitor pode voltar Figura 2.35 e determinar outras solues no interior
e na fronteira da regio factvel).
Examinamos agora os pontos E e F, que no pertencem regio factvel (Figura 2.35). Verifi-
camos como esta infactibilidade pode ser detectada sem o auxlio da figura (lembre-se que em
problemas reais, que envolvem muitas variveis e restries, , geralmente, muito difcil a repre-
sentao grfica do problema como temos feito).
Ponto E: Ponto F:
x1 = 4 x1 = 6
x2 = 5 x2 = 0
x3 = 6 (4 + 5) = 3 x3 = 6 (6 + 0) = 0
x4 = 4 (4 5) = 5 x4= 4 (6 0)= 2
x5 = (3 4 + 5) 3 = 14 x5 = (3 6 + 0) 3 = 15
Apesar de os pontos E e F satisfazerem o sistema Ax = b (reveja mais uma vez como foram
determinadas as coordenadas), eles no so solues factveis, pois violam uma das condies de
no-negatividade. Em particular, o ponto E satisfaz x1 + x2 > 6, portanto, x3< 0.
O leitor pode identificar na Figura 2.35 todos os pontos que satisfazem x3 = 0, x3 > 0 ou x3 < 0
(a reta x1 + x2 = 6 divide o plano em trs partes: pontos que satisfazem x1 + x2 = 6, x1 + x2 > 6
ou x1 + x2 < 6). Alm disso, a fronteira da regio factvel pode ser escrita como o lugar geom-
trico em que pelo menos uma varivel se anula. No exemplo, como podemos ver na Figura 2.35,
uma soluo est na fronteira se e somente se xj = 0, para algum j = 1, ..., 5.
Na resoluo grfica de um problema de otimizao linear (Seo 2.5), podemos intuir que,
para encontrar uma soluo tima, basta procurar entre os vrtices da regio factvel S (isto ,
pontos como o D da Figura 2.35). Tais solues em R2 so determinadas pela interseco de 2
retas, o que significa que 2 variveis so nulas (veja a Figura 2.35). Por exemplo, o ponto D na
Figura 2.35 caracterizado por:
x1 + x2 =6 x1 = 5
x = 0
Fixar 3 resulta no sistema: x1 x2 = 4 , cuja soluo : x2 = 1 (2.26)
x4 = 0 3 x + x x = 3 x = 13 .
1 2 5 5
Isso mostra uma maneira de se obter solues para o sistema Ax = b. O sistema Ax=b em
(2.25) tem m = 3 equaes e n = 5 variveis, portanto, tem 2 variveis independentes, para as quais
podemos atribuir quaisquer valores. Em particular, fixando-se x3 = x4 = 0, obtemos um sistema
mm (33) nas variveis restantes (x1, x2, x5), o qual deve ser resolvido por algum mtodo de so-
luo de sistemas lineares, como, por exemplo, o mtodo de eliminao de Gauss (veja Apndi-
ce A). Valores diferentes de zero podem ser atribudos s variveis x3 e x4, obtendo diferentes
solues para o sistema, porm no so vrtices (veja Exerccio 2.20).
A soluo obtida ao se fixar x3 = 0, x4 = 0 dada por x = (x1, x2, x3, x4, x5) = (5, 1, 0, 0, 13) e,
como j havamos observado anteriormente, uma soluo factvel. Porm, ao fixarmos 2 vari-
70 Pesquisa Operacional

veis quaisquer em zero, no h garantias de que obteremos uma soluo factvel. Veja, por exem-
plo, o ponto F, que pode ser obtido pela fixao das variveis x2 = 0 e x3 = 0, restando um siste-
ma nas variveis x1, x4 e x5, ou seja,
x1 =6 x1 = 6
x2 = 0
Fixar resulta no sistema: x1 + x4 = 4 , cuja soluo : x4 = 2 (2.27)
x3 = 0 3 x x = 15 .
1 x5 = 3 5
Deve ficar claro que, assim procedendo, o sistema Ax = b satisfeito por construo, porm
no necessariamente as condies de no-negatividade so verificadas. Este procedimento de
obteno de solues (isto , fixar variveis independentes e resolver o sistema restante) pode ser
estendido para quaisquer sistemas Ax = b, mn. Por simplicidade de notao, rearranjamos o
sistema, agrupando as n m variveis independentes que devem ser fixadas e as m variveis restantes.
Por exemplo, suponha que as variveis x3 e x4 sejam escolhidas para serem fixadas (lembre-se que,
se fixadas em zero, o ponto D obtido), ento, o sistema Ax = b pode ser reescrito
equivalentemente por:

x1 + x2 + x3 6 x1 + x2 x3 6

Ax = b x1 x2 + x4 x x + x4 = 4 ,
= 4 1 2 (2.28)
3x1 + x2 x5 3 3x1 + x2 x5 0 3
144 42444 3 { 144244 3 {
Ax b variveis
variveis
restantes a serem
fixadas

ou, em notao matricial:

1 1 0 x1 1 0 6
1 1 0 x3
x2 + 0 1 x = 4 , (2.29)
3 1 1 x5 0 0 { 4
3
1442443 { 123 xN {
B xB N b

em que B e N so matrizes formadas por colunas da matriz original A do sistema (2.25). Essas
matrizes e os vetores correspondentes de variveis xB e xN decorrem das regras de multiplicao
de matrizes. Denotando-se: A = [a1 a2 a3 a4 a5], em que ai a i-sima coluna da matriz A, temos:
1 1 0 1 0
B = 1 1 0 = [a1 a2 a5] e N = 0 1 = [a3 a4].
3 1 1 0 0

Em um sistema Ax = b, cada varivel multiplica sua respectiva coluna da matriz A, isto ,


Ax = b equivalente a a1x1 + a2x2 + ... + anxn = b e, portanto, na reorganizao do sistema (2.29)
est implcita a seguinte reorganizao nas variveis:

x1
x3
xB = x2 e x N = .
x5 x4

Podemos, ainda, definir dois vetores de ndices:


B = (B1 B2 B3): B1 = 1, B2 = 2, B3 = 5,
N = (N1 N2): N1 = 3, N2 = 4,
Captulo 2: Otimizao linear 71

de modo que as matrizes B e N, e as variveis xB e xN podem ser referenciadas por:


B = [a B1 a B2 a B3 ] = [a1 a2 a5] e N = [a N1 a N2 ] = [a3 a4],

x B1 x1

x B = x B2 = x 2 x N x3
e xN = 1 = .
x x N 2 x 4
x B3 5
Em resumo, o sistema Ax = b pode ser reescrito de forma equivalente como:
Ax = b BxB + NxN = b
x 0
e fixando-se xN = 3 = , o sistema restante BxB = b. Os Exerccios 2.21 2.23 sugerem
x4 0
manipulaes com as matrizes envolvidas nas parties bsicas.
A idia de reorganizar as colunas do sistema (como feito acima) para encontrar uma soluo
qualquer importante para a descrio do mtodo simplex. Embora j tenhamos introduzido uma
notao matricial que permite a generalizao do procedimento anterior para a obteno de so-
lues de um sistema Ax = b qualquer, repetimos esse procedimento anterior explicitando algu-
mas hipteses que ficaram subjacentes. Como vimos, um modo de resolver o sistema consiste em
fixar valores para n m variveis, resultando em um sistema de m variveis (as variveis restan-
tes) e m equaes. Se a matriz desse sistema restante for invertvel, a soluo bem determina-
da. Podemos agir tambm de modo inverso, isto , selecionamos m colunas da matriz A que
formem uma matriz invertvel e fixamos as demais variveis. Sem perda de generalidade, pode-
mos supor que a matriz A tem posto completo por linhas (veja Apndice A), ou seja, posto(A)
= m. Dessa forma, sempre possvel selecionar m colunas da matriz A que formem uma matriz
invertvel.
A hiptese de que posto(A) = m implica que m n, ou seja, o nmero de equaes menor
ou igual ao nmero de variveis. Para o caso m = n, o sistema tem soluo nica, portanto, o pro-
blema de otimizao trivial de ser resolvido. Quando consideramos um problema de otimizao
linear na forma padro, admitimos, sem perda de generalidade, que m < n ( comum que m << n;
l-se m muito menor que n). Com isso, o sistema linear Ax = b tem sempre infinitas solues
e o grau de liberdade n m, isto , o sistema tem n m variveis sobrando, que, uma vez fi-
xadas, o sistema passa a ter soluo nica.

Definio 2.4 (partio bsica) Observe uma reorganizao nas colunas da matriz da seguinte forma:
A = [B N]
em que:
Bmm, chamada matriz bsica, formada por m colunas da matriz A e invertvel, dada por
B = [a B1 a B2 L a Bm ] , isto , B1, B2, ..., Bm so os ndices das colunas da matriz A que per-
tencem a B, chamados ndices bsicos.
Nm(n-m), chamada matriz no-bsica, formada pelas n m colunas restantes de A (isto , co-
lunas de A que no esto em B), dada por N = [a N1 a N 2 L a Nn m ] , isto , N1, N2, ..., Nn-m
so os ndices das colunas da matriz A que pertencem a N.
Essa partio nas colunas da matriz A chamada partio bsica e introduz uma partio no
vetor x:
xB
x=
xN
72 Pesquisa Operacional

em que:
xB1

xB
xB = 2 , chamado vetor das variveis bsicas;
M

Bm
x
xN1

x N = M , chamado vetor das variveis no-bsicas.
xN
nm
Considerando uma partio bsica A = [B N], o sistema Ax = b pode ser reescrito de forma
equivalente como
xB
Ax = b [ BN ] = b (2.30)
ou xN
Bx B + Nx N = b.
Portanto,
x B = B 1b B 1Nx N (soluo geral). (2.31)

A expresso (2.31) chamada soluo geral do sistema, pois com ela podemos determinar qual-
quer soluo do sistema, bastando atribuir valores quaisquer s n m variveis no-bsicas em xN,
de modo que as m variveis bsicas em xB fiquem unicamente determinadas e a soluo resultante
satisfaa o sistema Ax = b. A ordem inicial das variveis alterada conforme a partio bsica e
um abuso de notao feito, sem que signifique um erro conceitual. Por exemplo, no sistema (2.25),
as variveis so organizadas por x = (x1, x2, x3, x4, x5), enquanto, com a introduo da partio
bsica, no sistema (2.29) as variveis so reorganizadas por x = (xB, xN) = (x1, x2, x5 | x3, x4) e nos
referimos ao vetor de variveis x, em ambos os casos.

Definio 2.5 (soluo bsica) Considere uma partio bsica A = [B N] e a seguinte soluo obtida
ao se fixar as n m variveis de xN em zero, isto :
x B = B 1b

x N = 0.
A soluo x assim obtida chamada soluo bsica. Se x B = B 1b 0, ou seja, se todas as vari-
veis bsicas so no-negativas, dizemos que x uma soluo bsica factvel. Alm disso, se
x B = B 1b > 0 (todas as variveis bsicas so positivas), dizemos que a soluo bsica factvel no-
degenerada.
Retomemos o exemplo introduzido no incio desta seo, cuja regio factvel representada
na Figura 2.35, e analisemos o ponto D. Como j observado anteriormente, podemos escrever o
sistema linear como:

1 1 0 x1 1 0 6
x3
1 1 0 x2 + 0 1 x = 4
3 1 1 x5 0 0 { 4
3
1442443 { 123 xN {
B xB N b
Assim, fixando as variveis no-bsicas em zero: x3 = x4 = 0 (isto , x N = 0 ), temos:
Captulo 2: Otimizao linear 73

1 1 0 x1 6
1 1 0 x = 4 Bx = b
2 B

3 1 1 x5 3

cuja soluo :
x1 5

x B = x2 = 1
x5 13

Portanto (observe a reorganizao do vetor x),


x1 5

x2 1
x B
x = = x5 = 13
x N 0
x3
x 0
4
que resolve o sistema Ax = b e no fere a condio de no-negatividade, ou seja, D uma solu-
o bsica factvel. Considere agora o ponto F, que tambm obtido pela interseo de duas re-
tas, x2 = 0 e x3 = 0. Isso sugere a partio bsica:

1 0 0 x1 1 1 6
1 1 0 x + 1 0 x2 = 4
4 x3
3 0 1 x5 1 0 { 3
14243 { 1 4243 xN {
B xB N b

(a partio bsica agora diferente da anterior, mas o sistema Ax = b o mesmo). No ponto F,


x2 = x3 = 0 (isto , x N = 0 ), ento BxB = b dado por:

1 0 0 x1 6
1 1 0 x = 4
4
3 0 1 x5 3

cuja soluo :

x1 6
x B = x4 = 2

x5 15

Vemos que x4 = 2 viola a condio de no-negatividade, portanto, F no soluo factvel para


o problema, algo j observado na Figura 2.35 (x1 x2 > 4 equivalente a x4 < 0).
A visualizao grfica mostra que os vrtices de S (um vrtice de S um ponto de S que no
pertence ao interior de qualquer segmento de reta que liga dois outros pontos de S)
correspondem s solues bsicas factveis. De fato, essa afirmao verdadeira para uma regio
factvel qualquer e pode ser resumida da seguinte forma.

Propriedade 2.1 Considere a regio factvel S = {xRn tal que Ax = b, x 0}. Um ponto x S
um vrtice de S se e somente se x for uma soluo bsica factvel.
74 Pesquisa Operacional

Uma conseqncia desta propriedade que a regio factvel S tem um nmero finito de vr-
tices, pois h um nmero finito de parties bsicas, limitado por Cmn = m!( nn! m )! . Apesar de esse
nmero ser finito, pode ser muito grande para problemas prticos em que n da ordem de cen-
tenas ou milhares, e muito maior que m. Enunciamos agora uma propriedade fundamental da
otimizao linear, a qual j havamos intudo durante a resoluo grfica desses problemas.

Propriedade 2.2 Se um problema de otimizao linear tem soluo tima, ento existe um vrti-
ce timo.18
Em outras palavras, se existe uma soluo tima, existe uma soluo bsica factvel tima.
Como conseqncia desta propriedade, basta que se procure o timo entre todas as solues b-
sicas factveis. Isso sugere um mtodo de soluo:
Determine todas as, digamos, K solues bsicas factveis (vrtices da regio factvel S): x1,
x2, ..., xK.
Determine a soluo tima xj tal que f(xj) = mnimo {f(xk), k = 1, 2, ..., K}.
Porm, o nmero K (note que K Cmn ) pode ser muito grande em problemas prticos,
inviabilizando computacionalmente este procedimento. Um mtodo mais elaborado que inicia
com uma soluo bsica factvel e pesquisa apenas outras solues bsicas melhores que a cor-
rente o mtodo simplex. Este mtodo est detalhado nas Sees 2.6.22.6.4. Para um estudo
mais direto do mecanismo do mtodo simplex, essas sees podem ser substitudas pela Seo 2.7,
na qual o mtodo simplex apresentado em forma de tabelas.

2.6.2* O mtodo simplex


O mtodo simplex encontra um vrtice timo pesquisando apenas um subconjunto (em geral,
pequeno) dos K vrtices de S. Para construir um mtodo de resoluo de um problema de
otimizao linear, devemos responder a duas perguntas-chave:
Dada uma soluo bsica factvel (vrtice de S, portanto, candidata soluo tima),
1. Essa soluo tima?
2. Caso no seja tima, como determinar uma outra soluo bsica factvel melhor?
Resposta primeira pergunta: a soluo tima?
Considere uma soluo bsica factvel
x
x B = B 1b 0
x = B em que

x N
x N = 0,
e a soluo geral (2.31) usando a mesma partio bsica, isto :
x B
x = tal que x = B 1b B 1Nx (2.32)
x N B N

(lembre-se de que, para qualquer xN escolhido, x uma soluo do sistema Ax = b).


A funo objetivo f(x) pode ser expressa considerando a partio bsica:
f ( x) = c T x =

[
T
]
T xB
= c B c N x = c B x B + c N x N
T T
(2.33)
N

18 Demonstraes matemticas das propriedades 2.1 e 2.2 podem ser encontradas em Bregalda et al. (1988) ou Bazaraa et al. (1990).
Captulo 2: Otimizao linear 75

com:
cTB : coeficientes das variveis bsicas na funo objetivo;
cTN : coeficientes das variveis no-bsicas na funo objetivo.
Substituindo (2.32) em (2.33), isto , restringindo x ao sistema Ax = b, temos:

f (x) = c TB (B 1b B 1 Nx N ) + c TN x N
1442443
xB

= c B b c BT B 1 Nx N + c TN x N .
T
B
1
(2.34)

O primeiro termo de (2.34) corresponde ao valor da funo objetivo em x


:
f (x ) = c TB x B + c TN x N = c TB (B 1b) + c TN (0) = c TB B 1b .
Para simplificar a notao e, posteriormente, os clculos, definimos a seguir um vetor auxiliar,
que estudado em detalhes na Seo 2.10 .

Definio 2.6 (vetor multiplicador simplex) O vetor m1, dado por


T = cTB B 1
chamado vetor multiplicador simplex (ou tambm, vetor de variveis duais).

Nota: O vetor multiplicador simplex pode ser obtido pela resoluo do sistema de equaes li-
neares BT = cB, que obtido ao se tomar a transposta de T = cBT B 1 e multiplicar ambos os ter-
mos da igualdade por BT, isto :
T = cTB B 1 = (B1)TcB BT = cB.

Utilizando o vetor multiplicador simplex na expresso de f(x) em (2.34), segue-se que:


f(x) = f( ) c TB B 1 Nx N + c TN x N = f( x ) TNxN + c TN xN
= f( x ) + ( cTN - TN)xN
ou, ainda, considerando que:
cTN T N = (cN1 , cN 2 ,L , cN nm ) T (a N1 , a N 2 ,L , a N nm )
= (c N 1 T a N 1 , c N 2 T a N 2 , L , c N n m T a N n m )
e
x N = (x , x ,L , x )
N1 N2 N nm
obtemos:
f (x) = f (x) + (c N1 T a N1 ) x N + (c N2 T a N 2 ) x N 2 + K + (c N nm T a Nnm ) x Nnm (2.35)
1

Definio 2.7 (custos relativos) Os coeficientes cN j = (c N j a N j ) das variveis no-bsicas na fun-


T

o objetivo descrita por (2.35) so chamados custos relativos ou custos reduzidos.


Com essa notao, (2.35) simplesmente reescrita por:
f ( x) = f ( x ) + cN1 xN1 + cN 2 xN 2 + K + cN nm xN nm (2.36)
76 Pesquisa Operacional

Exemplo 2.22 Considere o seguinte problema de otimizao linear:


Minimizar f(x1, x2) = 2x1 x2
x1 + x2 4
x1 3
x2 72
x1 0, x2 0
que pode ser reescrito na forma padro:
Minimizar f(x1, x2, x3, x4, x5) = 2x1 x2 + 0x3 + 0x4 + 0x5
x1 + x2 + x3 =4
x1 + x4 =3
x2 + x5 = 72
x1 0, x2 0, x3 0, x4 0, x5 0.
A resoluo grfica dada na Figura 2.36 e a soluo tima obtida pela interseco das re-
tas x1 + x2 = 4 e x1 = 3. Portanto, x1* = 3, x2* = 1 e f(x*) = 7. Essas equaes de reta decorrem
das restries anteriores na forma de igualdade com x3 = 0 e x4 = 0, o que resulta no sistema 33:
x1+ x2 =4
x1 =3
x2 + x5 = 7 2
cuja soluo : x1 = 3, x2 = 1, x5 = 52 ( x3 = x4 = 0 ).
* * * * *

A soluo tima uma soluo bsica com a seguinte partio bsica:


B1 = 1, B2 = 2, B3 = 5, N1 = 3, N2 = 4.
Com essa partio, temos:
1 1 0 1 0
B = a B1 aB2 a B 3 = [a1 a 2 a5 ] = 1
0 0 , N = a N 1 a N 2 = [a3 a 4 ] = 0 1 ,

0 1 1 0 0
(
cTB = cB1 cB 2 )
cB3 = ( c1 c2 c5 ) = ( 2 T
( )
1 0) , c N = cN 1 cN 2 = ( c3 c4 ) = (0 0) .

Para o clculo dos custos relativos cN j = (cN j a N j ) , j=1, 2 (lembre-se de que n m = 2),
T

primeiramente o vetor multiplicador simplex calculado.

Figura 2.36 Soluo grfica do Exemplo 2.22.


Captulo 2: Otimizao linear 77

Multiplicador simplex: T = cTB B 1 .


A seguir, calculamos o vetor multiplicador por dois procedimentos: (i) explicitando a inversa
da matriz B; e (ii) resolvendo um sistema linear. Sempre que uma operao envolve o clculo de
uma inversa de matriz, ela pode ser substituda por um sistema linear, para o qual podem ser
desenvolvidas tcnicas avanadas de resoluo.
0 1 0
(i) usando a inversa: B1 = 1 1 0 .
1 1 1

0 1 0
=c B
T T
B
1
= (2 1 0) 1 1 0 = (1 1 0).
1 1 1
(ii) resolvendo o sistema de equaes lineares: BT = cB , isto :
1 + 2 = 2
1 +3 = 1
3 = 0
pelo mtodo de eliminao de Gauss ou escalonamento (veja Apndice A). Neste exemplo, o mtodo
consiste no primeiro passo, em subtrair a primeira equao da segunda para eliminar 1 da segunda
equao (o coeficiente de 1 na terceira equao j zero), e obter o sistema linear equivalente:
1 + 2 =2
2 + 3 = 1
3 = 0.
O segundo passo do mtodo para eliminar 2 da terceira equao desnecessrio, j que o sis-
tema triangular superior e, portanto, pode ser resolvido por substituies da terceira equao
para a primeira (em sistemas de grande porte, com matrizes esparsas, muitas operaes de eli-
minao so desnecessrias):
3 = 0
2 +3 = 1 2 = 1 + 3 = 1
1 + 2 = 2 1 = 2 2 = 1.
Podemos aplicar o mtodo de eliminao de Gauss, sem perda de generalidade, na matriz au-
mentada do sistema linear [BT | cB], isto , podemos reproduzir as operaes de eliminao de
Gauss trabalhando apenas com os coeficientes do sistema: multiplique a primeira linha da ma-
triz aumentada por 1 e some segunda, para obter a nova matriz aumentada que corresponde
ao sistema triangular anterior.

1 1 0 2 1 1 0 2

1 0 1 1 0 1 1 1 .
0 0 1 0 0 0 1 0

Nota: Para matrizes de ordens pequenas, como no exemplo anterior, irrelevante o uso da inversa
ou a resoluo do sistema linear, mas, para matrizes de porte grande, devem ser utilizadas tc-
nicas avanadas para resoluo de sistemas lineares.

Com o vetor multiplicador simplex calculado, podemos determinar facilmente os custos re-
lativos para todas as variveis no-bsicas:
78 Pesquisa Operacional

1
j = 1: c = c3 = c3 a 3 = 0 ( 1 1 0) 0 = 1
T
N1
0
0
j = 2 : c = c4 = c4 a 4 = 0 ( 1 1 0) 1 = 1 .
T
N2
0
Assim, a funo objetivo, quando restrita ao sistema Ax = b (ver expresso 2.36), dada por
f(x) = 7 + x3 + x4 e, portanto, f(x) 7 para toda soluo factvel, uma vez que x3 0 e x4 0.
Disso, conclumos que a soluo tima obtida com x3 = x4 = 0, ou seja, a soluo bsica tima.
n
Retomemos as expresses (2.35) e (2.36). Sabemos que x N j 0 (todas as variveis do proble-
ma so no-negativas). Portanto, se (cN j Ta N j ) 0 , j = 1, ..., n m, ento f (x) f (x) para
todo xN 0. Assim, podemos enunciar a seguinte propriedade:

Propriedade 2.3 (condio de otimalidade) Considere uma partio bsica A = [B N] em que a so-
luo bsica associada x B = B1b 0 (isto , soluo bsica factvel), e seja T = cBT B 1 o vetor
multiplicador simplex. Se (cN j T a N j ) 0 , j = 1, ..., n m, (isto , todos os custos relativos so
no-negativos), ento a soluo bsica tima.
A propriedade anterior fornece uma maneira simples de se afirmar a otimalidade de uma so-
luo bsica factvel: se a condio de otimalidade for verificada, ento a soluo bsica factvel tima.
Se a soluo bsica factvel for no-degenerada, a recproca da condio de otimalidade tambm
verdadeira: se uma soluo bsica factvel no-degenerada (isto , x B = B 1b > 0) uma soluo ti-
ma, ento (cN j T a N j ) 0 , j = 1, ..., n m. Porm, podemos ter uma soluo tima degenera-
da em mos sem que a condio de otimalidade seja verificada (ver Exerccio 2.24-f). Nesse caso,
entretanto, sempre possvel identificar outra partio bsica para a mesma soluo degenera-
da que satisfaa a condio de otimalidade (solues degeneradas podem ser representadas por
diferentes parties bsicas).
Resposta segunda pergunta: como determinar uma soluo bsica factvel melhor?
Considere uma soluo bsica factvel e suponha que a condio de otimalidade seja violada
(caso contrrio, a soluo tima), isto , suponha que exista k tal que:
cN k = cN k T a N < 0,
k

ou seja, o custo relativo da varivel no-bsica x N k negativo.

Exemplo 2.23 Considere o problema de otimizao linear dado no Exemplo 2.22 e a seguinte par-
tio bsica: B1 = 3, B 2 = 4, B 3 = 5, N1 = 1, N 2 = 2.
Com essa partio, temos:
1 0 0
[
B = a B1 a B2 ]
a B3 = [a3 a 4 a5 ]= 0 1 0 ,
0 0 1
1 1
[
N = a N1 ]
a N 2 = [a1 a 2 ] = 1 0 ,
0 1

(
cTB = cB1 cB2 )
cB3 = ( c3 c4 c5 ) = (0 0 0)

cTN = cN1 ( cN 2 ) = (c 1 c2 ) = ( 2 1) .
Captulo 2: Otimizao linear 79

( )
Os custos relativos cN j = cN j T a N j , j = 1, 2, podem ser calculados:
Multiplicador simplex:
T = cTB B 1 = (0 0 0 ) (neste caso, a inversa de B a prpria identidade);
1
j = 1: cN = c1 = c1 T a1= 2 (0 0 0) 1 = 2 ;
1

0

1
j = 2: cN 2 = c2 = c2 a 2 = 1 (0 0 0)
T
0 = 1 .

1
Com essa partio, c1 e c 2 so negativos e, portanto, no satisfazem a condio de otimalidade.
n

Vemos a seguir como a soluo bsica factvel pode ser perturbada de modo a diminuir o va-
lor da funo objetivo, por uma estratgia que fornece o fundamento do mtodo simplex.

Definio 2.8 (estratgia simplex) Chamamos de estratgia simplex a perturbao de uma soluo
bsica factvel que consiste em alterar as variveis no-bsicas por:

xNk = 0, (varivel com custo relativo negativo)



xN j = 0, j = 1, 2,...., n m, i k .
Em palavras, apenas uma varivel no-bsica, x N k , deixa de ser nula (por simplicidade, su-
pomos que a soluo no degenerada, caso contrrio > 0 pode levar a uma soluo infactvel,
como vemos adiante). Com isso, a funo objetivo passa a valer (ver (2.36)):
f (x) = f (x ) + cN1 { + K + cNnm {
0 + L + cNk { 0 =
xN1 xNk xNnm
= f (x ) + cN k < f (x
)
Note que a funo objetivo decresce quando cresce, com a taxa negativa c N k , ilustrada na
Figura 2.37. Quanto menor o valor de c N k , mais rpido a funo objetivo decresce. Isso justifi-
ca a escolha da varivel no-bsica a ser perturbada com o menor custo relativo (essa escolha
conhecida na literatura como a regra de Dantzig).

Figura 2.37 Variao da funo objetivo com a estratgia simplex.


80 Pesquisa Operacional

Como a funo objetivo decresce quando cresce, determinamos o maior valor possvel para
que mantm factvel a soluo perturbada. Vejamos a seguir como determinar tal valor.

Tamanho do passo

Com a alterao nos valores das variveis no-bsicas pela estratgia simplex, as variveis b-
sicas xB tambm devem ser alteradas, de modo que o sistema Ax = b seja satisfeito (reveja a so-
luo geral (2.31)). A estratgia simplex equivalente a alterar as variveis no-bsicas para:
xN1 0
M
M
x N = xN k = k
(2.37)
M M
x 0
N nm

portanto, as variveis bsicas so modificadas por

x B = B -1b B -1Nx N = x B B -1a N k = x B y (2.38)


123
y
em que y = B -1a N k . A identidade anterior decorre de definio da matriz no-bsica N e da de-
finio de xN dada em (2.37):
NxN = N(0 ... ... 0)T = [ a N1 ... a N k ... a N nm ](0 ... ... 0)T = a N k .

Definio 2.9 (direo simplex) Chamamos de direo simplex o vetor y = B -1a N k , o qual fornece
os coeficientes de como as variveis bsicas so alteradas pela estratgia simplex. A direo simplex
soluo do sistema de equaes lineares By = a N k .
Reescrevendo a equao vetorial (2.38) em cada uma de suas coordenadas, e considerando a
no-negatividade das variveis bsicas temos:
xBi = xBi yi 0 , i = 1, ..., m .
Assim,
se yi 0, ento xB i 0, para todo 0
xB
se yi > 0, como xBi = x Bi yi 0 , ento, i .
yi
Logo, o maior valor de dado por
xBl xB
= = mnimo i tal que yi > 0 . (2.39)
yl yi
Soluo tima ilimitada: Se yi 0 para todo i = 1, ..., m, ento (2.39) no se aplica, ou seja, no
h limitante superior para , o que significa que a soluo perturbada pela estratgia simplex ser
sempre factvel para todo valor de 0. Como a funo objetivo decresce com o crescimento de
, ento f(x) , com . Disso, conclumos que o problema no tem soluo tima ( co-
mum referir-se a esta situao como soluo tima ilimitada); ver Figura 2.30.

Exemplo 2.24 Considere o problema de otimizao linear no Exemplo 2.22 e a partio bsica:
(B1, B2, B3) = (3, 4, 5) (N1, N2) = (1, 2).
Calculamos a soluo bsica, verificamos sua otimalidade e aplicamos a estratgia simplex para
obter um vrtice melhor.
Captulo 2: Otimizao linear 81

Soluo bsica: xB = (x3, x4, x5), a qual obtida ao se anularem as variveis no-bsicas.
A soluo do sistema BxB = b (ou, x B = B1b), e neste caso a matriz B a identidade, dada
4
por x B = 3 e o valor da funo objetivo avaliada nesta soluo

7
2

f( x )= cB1 xB1 + cB2 xB2 + cB3 xB3 = 0 4 + 0 3 + 0 72 = 0.


Otimalidade:
multiplicador simplex: lembre que cB = (cB1 , cB2 , cB3 ) = (c3, c4, c5) = (0, 0, 0)
0
A soluo do sistema B = cB (ou, = c B ) = 0
T T T 1

B
0
custos relativos: as variveis no-bsicas so: N1 = 1, N2 = 2,
1
c1 = c1 a1 = 2 (0 0 0) 1 = 2 k = 1 (x1 alterada pela estratgia simplex)
T

0
1
c2 = c2 T a 2 = 1 (0 0 0) 0 = 1

1
Observao: como os dois custos relativos so negativos, aumentar x1 ou x2 faz decrescer a fun-
o objetivo. A escolha do menor custo relativo, chamada regra de Dantizg, bastante utilizada.
direo simplex y = (y1, y2, y3) (ver a definio 2.9).

1
A soluo do sistema By = a N1 y = 1 , que proporciona como as variveis bsicas se mo-

0
dificam: xBi = x Bi yi (ver expresso (2.38)), ou seja,
x3 = 4
x4 = 3
x3 = 72 .
O valor mximo para deve ser tal que as variveis bsicas sejam no-negativas, o que define
o tamanho do passo.
Tamanho do passo:
x B x B 4 3 x B
= mnimo 1 , 2 = mnimo , = 3 = 2
y1 y 2 1 1 y2

Com o valor de = 3 , a varivel xB2 = x4 se anula (isto , x4 = 3 3 = 0). Por outro lado, a
varivel no-bsica x1 torna-se positiva: x1 = = 3 n

xBl
Retomemos a expresso (2.39). Com o valor de = , a varivel bsica xBl se anula e a vari-
yl
vel no-bsica x N k torna-se positiva. De fato, da expresso (2.38), temos:
x
l -sima varivel bsica: xB l = xB l yl = xB l yl ( yBll ) = 0 ,
k-sima varivel no-bsica: xN k = ,
82 Pesquisa Operacional

isto , a nova soluo tem a seguinte caracterstica:


(xB1 L xBl L xBm | 0 L xNk L ) ,
{ {
=0 =

ou seja, n m variveis so nulas: x N1 , L , x Bl , L , x N n m , as quais podem ser consideradas no-b-


sicas. Isso resulta em uma nova partio bsica com os ndices trocados:
Bl Nk
isto , a varivel xN k torna-se bsica e a varivel xBl no-bsica. As matrizes bsica e no-bsica so
alteradas por apenas uma coluna:
B = [a B1 ,L , a Bl ,L , a Bm ] B = [a B1 ,L , a Nk ,L , a Bm ]
{
l sima coluna

N = [a N1 ,L , a N k ,L , a N nm ] N = [a N1 ,L , a Bl ,L , a N n m ] .
{
k sima coluna

Dizemos que xN k entra na base e x Bl sai da base. A seguinte propriedade garante que a nova
partio bsica.

Propriedade 2.4 A matriz B , definida anteriormente, invertvel, de modo que A= [ B N ]


uma partio bsica.
Os passos para mostrar a validade da Propriedade 2.4 so sugeridos no Exerccio 2.25. A so-
luo bsica associada nova partio aquela obtida pela estratgia simplex:
xN k =
xB i = x B i yi i = 1, ..., m, i l ,
que uma soluo factvel, por construo.
Com isso, mostramos que a estratgia simplex produz uma nova soluo bsica factvel (isto
, um novo vrtice), para a qual a funo objetivo tem um valor menor:
f ( x) = f (x ) + cN k < f (x ) ,
e podemos repetir o procedimento, isto : encontrar outra soluo bsica melhor a partir daquela em
mos, enquanto a condio de otimalidade no for verificada. Este procedimento basicamente
consiste no mtodo simplex.

Exemplo 2.25 Observe o problema de otimizao linear no Exemplo 2.22 e a partio bsica:
(B1, B2, B3) = (1, 2, 4) (N1, N2) = (3, 5).
Com essa partio, definimos as matrizes B e N e os vetores cB e cN:
1 1 0 1 0
[
B = a B1 a B2 a B3 ] = [a1 a 2 a 4 ] = 1 0 1 [
N = a N1 a N 2 ] = [a 3 a 5 ] = 0 0 ,
0 1 0 0 1

( )
cTB = cB1 cB2 cB3 = ( c1 c2 c4 ) = ( 2 1 0) ( )
cTN = cN1 cN2 = ( c3 c5 ) = (0 0) .
Por simplicidade de exposio, calculamos B1. A inversa de B
1 0 1
B = 0 0 1 .
1

1 1 1
Captulo 2: Otimizao linear 83

Soluo bsica: xB = (x1, x2, x4) a soluo do sistema BxB = b, ou seja, podemos aplicar o
mtodo de eliminao de Gauss, operando sobre a matriz aumentada:
4 1 1 0 12


3 e obter a soluo: x B = 72
1 0 1
7 0 1 0 5
2 2

1 0 1 4 2
1

1
ou, de forma equivalente, x B = B b = 0 0 1 3 = 72 .

7
1 1 1 2 5
2

O valor da funo objetivo: f( x )= cB1 xB1 + cB2 xB2 + cB3 xB3 = 2 12 + (1) 72 + 0 52 = 92 .
Otimalidade: primeiro calculamos o vetor multiplicador simplex e, em seguida, os custos relativos.
(i) multiplicador simplex: lembre que: cB = (cB1 , cB2 , cB3 ) = (c1, c2, c4) = (2, 1, 0).
O vetor multiplicador do simplex dado pelo sistema BT = cB ou, de forma equivalente,
1 0 1

= c B = [ 2
T T
B
1
1 0] 0 0 1 = (2 0 1).
1 1 1
(ii) clculo dos custos relativos: N1 = 3, N2 = 5
1
cN1 = c3 = c3 a3 = 0 ( 2 0 1) 0 = 2
T

0
0
cN 2 = c5 = c5 a5 = 0 ( 2 0 1) 0 = 1 k = 2 ( xN2 = x5 entra na base).
T

1
A condio de otimalidade no verificada e a varivel x5 pode ser aumentada para diminuir
a funo objetivo por f ( x ) = f ( x ) + cN k = 92 .

1 0 1 0 1
0 0 1 0
Clculo da direo simplex: y = B a5 =
1
= 1 .
1 1 1 1 1
Tamanho do passo:

x B x B 7 5 5 x B
= mnimo 2 , 3 = mnimo 2 , 2 = = 3 ( xB3 = x4 sai da base).
y 2 y 3 1 1 2 y3

Com o valor de = 52 , a varivel x4 se anula e a varivel no-bsica x5 torna-se positiva e, portan-


to, temos a nova partio bsica:
(B1, B2, B3) = (1, 2, 5) (N1, N2) = (3, 4).
Com essa partio, as novas matrizes bsica e no-bsica so dadas por:
1 1 0 1 0
[
B = a B1 a B2 a B3 ] = [a 1 a 2 a 5 ] = 1 0 0 [
N = a N1 a N 2 ] = [a 3 a 4 ] = 0 1 .
0 1 1 0 0
que j verificamos, no Exemplo 2.22, que corresponde soluo tima.
n
84 Pesquisa Operacional

2.6.3* O algoritmo simplex


Considere um problema de otimizao linear escrito na forma padro. Resumimos a seguir o proce-
dimento desenvolvido na Seo 2.6.2. Note que o desenvolvimento anterior pressupe o conhecimento
de uma soluo bsica factvel inicial. O procedimento detalhado de como determinar uma soluo
inicial chamado Fase I e os seus detalhes so apresentados na Seo 2.8. O mtodo simplex pro-
priamente dito o que chamamos de Fase II e seu procedimento apresentado mais adiante.
Fase I:
Determine inicialmente uma partio bsica factvel A = [B,N]. A rigor, precisamos de dois
vetores de ndices bsicos e no-bsicos:
(B1, B2, ..., Bm) e (N1, N2, ..., Nn-m).
Os vetores das variveis bsicas e no-bsicas so, respectivamente:
( ) ( )
x TB = x B1 x B2 L x Bm e x TN = x N1 x N 2 L x N n m .
Faa iterao = 1.
Fase II:
{incio da iterao simplex}
Passo 1: {clculo da soluo bsica}
x B = B 1b (equivalentemente, resolva o sistema BxB = b )

x N = 0
Passo 2: {clculo dos custos relativos}
2.1) {vetor multiplicador simplex}
T = cBT B 1 (equivalentemente, resolva o sistema BT = cB)
2.2) {custos relativos}
c N j = c N j T a N j j = 1, 2, ..., n m
2.3) {determinao da varivel a entrar na base}
c N k = mnimo{c N j , j = 1,..., n m} (a varivel xN entra na base)
k

Passo 3: {teste de otimalidade}


Se c N k 0 , ento: pare {soluo na iterao atual tima}
Passo 4: {clculo da direo simplex}
y = B 1a Nk (equivalentemente, resolva o sistema: By = a N k )
Passo 5: {determinao do passo e varivel a sair da base}
Se y 0, ento: pare {problema no tem soluo tima finita: f(x) }
Caso contrrio, determine a varivel a sair da base pela razo mnima:
x Bl x B
= = mnimo i tal que y i > 0, i = 1, ..., m (a varivel xBl sai da base)
yl yi
Passo 6: {atualizao: nova partio bsica, troque a l -sima coluna de B pela k-sima coluna de N}:
matriz bsica nova: B = [a B1 L a Bl1 a N k a Bl+1 L a Bm ]
matriz no-bsica nova: N = [a N1 L a N k 1 a Bl a N k +1 L a N nm ]
iterao = iterao + 1
Retorne ao passo 1
{fim da iterao simplex}
Captulo 2: Otimizao linear 85

2.6.4* Exemplos numricos e interpretaes geomtricas

Exemplo 2.26 Considere o seguinte problema de otimizao linear:


Minimizar f(x1, x2) = x1 2x2
x1 + x2 6
x1 x2 4
x1 + x2 4
x1 0, x2 0.
Introduzindo as variveis de folga x3, x4 e x5, temos o problema na forma padro, cujos coefi-
cientes esto representados na Tabela 2.13.

Tabela 2.13
Dados do problema.

x1 x2 x3 x4 x5 b

1 1 1 0 0 6

A 1 1 0 1 0 4

1 1 0 0 1 4

Min f 1 2 0 0 0

A seguir, aplicamos o algoritmo simplex, com todos os passos explicitados a cada iterao.
Fase I:
Uma soluo bsica factvel inicial facilmente obtida, pois os coeficientes das variveis de folga
formam uma matriz identidade que, aliada no-negatividade dos termos independentes (e se
fossem negativos?), fornece uma partio bsica factvel,
(B1, B2, B3) = (3, 4, 5), (N1, N2) = (1, 2),
ou seja, a matriz bsica B = I. Fazendo xN = (x1, x2) = (0, 0), temos trivialmente os valores das
variveis bsicas (ver soluo inicial da Figura 2.38).
Fase II:
1a Iterao

Tabela 2.14
Dados conforme partio na iterao 1.

ndices
bsicos no-bsicos
B1=3 B2=4 B3=5 N1=1 N2=2 b

[B | N] 1 0 0 1 1 6
0 1 0 1 1 4
0 0 1 1 1 4

[cB | cN] 0 0 0 1 2 f=0


86 Pesquisa Operacional

Passo 1: {clculo da soluo bsica} = xB = (x3, x4, x5)


6
Resolva o sistema BxB = b e obtenha x B = 4 .

4
Avaliao da funo objetivo: f(x) = cB1 xB1 + cB2 xB2 + cB3 xB3 = 0 6 + 0 4 + 0 4 =0
Passo 2: {Clculo dos custos relativos}
2.1) {vetor multiplicador simplex}: (cB = (c B1 , c B2 , c B3 ) = (c3, c4, c5) = (0, 0, 0)).
A soluo do sistema BT = cB T = (0, 0, 0).
2.2) {custos relativos}: (N1 = 1, N2 = 2)
1
c1 = c1 a1 = 1 (0 0 0) 1 = 1 ,
T

1

1
c2 = c2 a 2 = 2 (0 0 0) 1 = 2 k = 2. (a varivel xN 2 = x2 entra na base)
T

1

2.3) {determinao da varivel a entra na base}


Como c2 = c N 2 = mnimo {c N j , j = 1, 2} = 2 < 0 , ento a varivel x2 entra na base.
Passo 3: {teste de otimalidade}
Os custos relativos mostram a funo objetivo em termos das variveis no-bsicas:
f(x) = 0 1x1 2x2. Como h custos relativos negativos, a soluo atual no tima.
Passo 4: {clculo da direo simplex}
1
Resolva o sistema By = a 2 e obtenha y = 1 .

1
O vetor y mostra como as variveis bsicas so alteradas: x B = x B y , as quais, nesta iterao,
so x3, x4 e x5. As variveis no-bsicas x1 e x2 se alteram conforme a estratgia simplex:
x1 = 0 e x2 = .
Isso mostra como a soluo alterada no plano (x1 x2), neste caso, sobre o eixo x2.
Passo 5: {determinao do passo e varivel a sair da base}

x B x B 6 4 x B
= mnimo 1 , 3 = mnimo , = 4 = 3 . (a varivel xB3 = x5 sai da base)
y1 y 3 1 1 y3

Com esse valor de , x5 = xB3 = 0 e (x1, x2) = (0, 4) a nova soluo obtida pelo mtodo
simplex (veja Figura 2.38).
Passo 6: {atualizao: nova partio bsica, troque a l -sima coluna de B pela k-sima coluna de N}:
(B1, B2, B3) = (3, 4, 2) (N1, N2) = (1, 5),
{novo valor para a funo objetivo: f (x) = f (x) + c N k = 0 2 4 = 8 }.
Captulo 2: Otimizao linear 87

Tabela 2.15
Dados conforme partio na iterao 2.

ndices
bsicos no-bsicos
B1=3 B2=4 B3=2 N1=1 N2=5 b

[B | N] 1 0 1 1 0 6
0 1 1 1 0 4
0 0 1 1 1 4

[cB | cN] 0 0 2 1 0 f = 8

2a Iterao
Soluo bsica: xB = ( x3, x4, x2)
2
Resolva o sistema BxB = b e obtenha x B = 8 .

4
Otimalidade:
i) vetor multiplicador simplex: ( (cB1 , cB2 , cB3 ) = (c3, c4, c2) = (0, 0, 2)).
Resolva o sistema BT = cB e obtenha = (0, 0, 2).
ii) custos relativos: (N1 = 1, N2 = 5),
1
c1 = c1 T a1 = 1 (0 0 2) 1 = 3

1
0
c5 = c5 a5 = 0 (0 0 2) 0 = 2 .
T

1
Isto fornece: f(x) = 8 3x1 + 2x2.
Como c1 = cN1 = mnimo {cN j , j = 1, 2} < 0 , ento a soluo bsica no tima e a varivel x1
entra na base.
Direo simplex: y = (y1, y2, y3).
2
Resolva o sistema By = a1 e obtenha: y = 0 .

1
As variveis bsicas so alteradas: x B = x B y , as quais, nesta iterao, so x3, x4 e x2. As vari-
veis no-bsicas x1 e x5 se alteram conforme a estratgia simplex:
x1 = e x5 = 0.
Isso mostra como a soluo alterada no plano (x1 x2), neste caso, sobre a reta x5 = 0 ou, de
outra forma, sobre a reta x1 + x2 = 4.
Tamanho do passo: (apenas y1 > 0)
x B 2 x B
= mnimo 1 = = 1 = 1 .
y1 2 y1
88 Pesquisa Operacional

Com este valor de , segue que x1 = 1 (alterao da varivel no-bsica) e x2 = xB3 y3 = 4


+ = 5 (alterao da varivel bsica) (ver Figura 2.38).
Atualizao:
(B1, B2, B3) = (1, 4, 2) (N1, N2) = (3, 5)
O novo valor para a funo objetivo: f ( x) = f ( x ) + cN k = 8 3 1 = 11 .

3a Iterao

Tabela 2.16
Dados conforme partio na iterao 3.

ndices
bsicos no-bsicos
B1=1 B2=4 B3=2 N1=3 N2=5 b

[B | N] 1 0 1 1 0 6
1 1 1 0 0 4
1 0 1 0 1 4

[cB | cN] 1 0 2 0 0 f = 11

Soluo bsica: xB = (x1, x4, x2)


1
Resolva o sistema BxB = b e obtenha x B = 8 .

5
Otimalidade:
(i) vetor multiplicador simplex: ( (cB1 ,cB2 , cB3 ) = (c1, c4, c2) = (1, 0, 2)).
Resolva o sistema BT= cB e obtenha T = ( 32 , 0, 12 ).
(ii) custos relativos: (N1 = 3, N2 = 5),

1
c3 = c3 a3 = 0 (
T 3
0 12 ) 0 = 23 ,
2

0
0
c5 = c5 a5 = 0 (
T 3
0 ) 0 = 12 .
1
2

2

1
Como min {c N j , j = 1, 2} = 1
2
> 0 , segue-se que a soluo atual,
x1 1
x3 0
x B = x4 = 8 e x N = = ,
x5 0
x2 5
Captulo 2: Otimizao linear 89

x1 1
x 5
2
ou x = x3 = 0 ,
x 8
4
x5 0
tima.
A funo objetivo, escrita em termos das variveis no-bsicas, f(x) = f( x ) + cN1 xN1 + cN 2 xN 2 =
11 + 32 x3 + 12 x5 11, para todo x3 0 e x5 0. Alm disso, qualquer outra soluo factvel di-
ferente da soluo bsica na ltima iterao (em que x3 = 0 e x5 = 0), deve ter x3 > 0 ou x5 > 0.
Como os custos relativos das variveis no-bsicas so positivos (poderiam ser nulos na
otimalidade), segue-se que: f(x) > 11, para toda soluo factvel diferente da soluo bsica e,
portanto, a soluo tima obtida nica. O prximo exemplo ilustra o caso com custos relativos
nulos na otimalidade, condio necessria para a ocorrncia de mltiplas solues timas.
n

A Figura 2.38 ilustra a trajetria percorrida pelo mtodo simplex. Uma trajetria diferente po-
deria ter sido percorrida se, em lugar de escolhermos k = 2 na primeira iterao (segunda vari-
vel no-bsica entra na base), tivssemos escolhido k = 1 (primeira varivel no-bsica entra na
base). Essa possibilidade deixada como exerccio ao leitor.

Exemplo 2.27 (solues timas mltiplas) Considere o programa linear do Exemplo 2.26, com uma
ligeira alterao na funo objetivo:
Minimizar f(x1, x2) = x1 x2
x1 + x2 6
x1 x2 4
x1+ x2 4
x1 0, x2 0.
semelhana do Exemplo 2.26, o leitor pode aplicar o mtodo simplex e encontrar, na ter-
ceira iterao, a seguinte base tima.

Figura 2.38 Trajetria do mtodo simplex para Exemplo 2.26.


90 Pesquisa Operacional

3a Iterao (B1, B2, B3) = (2, 1, 5), (N1, N2) = (4, 3).
Soluo bsica: xB = (x2, x1, x5)
1 1 0 6

Resolva o sistema BxB = b, cuja matriz aumentada dada por: 1 1 0 4 , que pode ser
1 1 1 4
1
resolvido pelo mtodo de eliminao de Gauss, cuja soluo x B = 5 e a funo objetivo

8
vale f( x ) = 6.
Otimalidade:
i) vetor multiplicador simplex: ( (cB1 , cB2 , cB3 ) = (c2, c1, c5) = (1, 1, 0)).
1 1 1 1

Resolva o sistema B = cB, cuja matriz aumentada dada por 1 1 1 1 , e cuja so-
T

0 0 1 0
luo = (1 0 0).
T

ii) custos relativos: (N1 = 4, N2 = 3)


c4 = c4 T a 4 = 0
c3 = c3 Ta3 = 1 .
Como c j 0 para todas variveis no-bsicas, segue-se que a soluo atual
x2 1
x4 0
x B = x1 = 5 e x N = = ,
x3 0
x5 8

x1 5
x 1
2
ou x = x3 = 0 ,
x 0
4
x5 8
tima.
A otimalidade na ltima iterao decorreu do fato de a funo objetivo, em termos das vari-
veis no-bsicas, ser f ( x ) = 6 + 0 x4 + x3 6 , para todo x4 0 e x3 0. Entretanto, f(x) = 6, para
todo x4 > 0 e x3 = 0, ou seja, a soluo bsica pode ser alterada com valores no-nulos para x4 sem
que a funo objetivo se altere. Portanto, o problema tem mltiplas solues timas, as quais po-
dem ser determinadas pela atribuio de valores diferentes a x4. n

Se a soluo bsica tima no Exemplo 2.27 fosse degenerada (alguma varivel bsica nula),
ento, com o aumento de x4, poderia ocorrer que uma varivel bsica nula ficasse negativa, de
modo que x4 no poderia assumir valores diferentes de zero. Isto , suponha que a i-sima varivel
bsica seja nula, ou seja, xBi = 0, ento x Bi = x Bi yi = yi. Portanto, se yi > 0 e caso > 0, en-
to xBi < 0 e, portanto, a soluo se torna infactvel. Nesse caso, o problema no apresenta ml-
tiplas solues timas, apesar de haver um custo relativo nulo na otimalidade (ver Exerccio 2.24).
Em resumo, se na otimalidade os custos relativos so todos positivos, podemos afirmar que o
problema tem soluo tima nica. A existncia de custos relativos nulos condio necessria
para mltiplas solues timas, mas no condio suficiente.
Captulo 2: Otimizao linear 91

Exemplo 2.28 (problema sem soluo tima soluo ilimitada) Considere o programa linear:
Minimizar f(x1, x2) = x1 x2
x1 x2 4
x1 + x2 4
x1 0, x2 0.
Introduzindo as variveis de folga x3 e x4, temos o problema na forma padro, cujos coeficien-
tes esto representados na Tabela 2.17.
Procedendo como no Exemplo 2.26, a partir da partio bsica inicial:
(B1, B2) = (3, 4), (N1, N2) = (1, 2).
Na segunda iterao do mtodo simplex, obtemos:

2a Iterao (B1, B2) = (1, 4), (N1, N2) = (3, 2).


Soluo bsica: xB = (x1, x4)T.
1 0 4 4
Resolva o sistema BxB = b, cuja matriz aumentada , sua soluo x B = e
1 1 4 8
a funo objetivo f( x )= cB1 xB1 + cB2 xB2 = 1 4 + 0 8 = 4
Otimalidade:
i) vetor multiplicador simplex: (cB = (cB1 ,cB2 )T =(c1, c4) = (1, 0))
1 0 1 1
Resolva o sistema BT = cB, cuja matriz aumentada e obtenha = .
1 1 0 0
ii) custos relativos: (N1 = 3, N2 = 2)
c3 = c3 T a 3 = 1
c2 = c2 T a 2 = 1 k=2 (x2 entra na base).
A funo objetivo em termos das variveis no-bsicas f(x) = 0 + 1x3 1x2.
Direo simplex
1 0 1 1
Resolva o sistema By = a2, cuja matriz aumentada e obtenha y = .
1 1 1 0
Temos ento que, se aumentamos o valor da varivel x2, a funo objetivo decresce (custo re-
lativo negativo). Note que x2 pode crescer indefinidamente, j que a direo simplex no tem com-
ponentes positivos (direes desse tipo so chamadas de raios da regio factvel). Assim, o
problema no tem soluo tima. A Figura 2.39 ilustra o problema. n

Tabela 2.17
Dados do problema do Exemplo 2.28.

x1 x2 x3 x4 b

1 1 1 0 4
A
1 1 0 1 4

Min f 1 1 0 0
92 Pesquisa Operacional

Figura 2.39 Soluo grfica do Exemplo 2.28.

2.6.5* Consideraes sobre implementaes do mtodo simplex


O mtodo simplex tem sido utilizado com sucesso na resoluo de problemas prticos, os quais po-
dem envolver dezenas, centenas ou milhares de variveis e restries. Com os computadores dis-
ponveis hoje, implementaes razoavelmente simples do mtodo simplex podem resolver com
sucesso problemas com um nmero relativamente grande de variveis e restries. Por exemplo, uma
implementao simples pode trabalhar explicitamente com a inversa da matriz bsica B1 e, como
apenas uma coluna bsica alterada por iterao, econmico atualizar a inversa da base para a
iterao seguinte. Este mtodo conhecido na literatura como mtodo simplex revisado. O Exerccio 2.26
mostra como atualizar a base e os principais vetores envolvidos nas iteraes do mtodo simplex.
O mtodo simplex revisado tem duas limitaes importantes. A primeira que, para atualizar
a inversa da base de uma iterao para outra, so necessrias operaes de pivotamento (elimina-
o de Gauss), que fazem acumular erros de arredondamento devido aritmtica do ponto flutuante
utilizada pelos computadores (o leitor deve estar ciente de que toda operao aritmtica no com-
putador no est livre de erros de arredondamento). Dessa forma, uma coluna que entrou e saiu da
base pode contribuir com erros de arredondamento em B1, quando no deveria, j que no mais b-
sica. Para contornar essa dificuldade, pode-se incluir uma reinverso peridica da matriz bsica. H
tambm outras formas de armazenar a matriz B1, por exemplo, a chamada forma produto da inver-
sa, que consiste em guardar uma seqncia de vetores que representam as operaes elementares
feitas a cada iterao do simplex (veja matriz E no Exerccio 2.25). A forma produto permite alguns
variantes na eliminao de Gauss, como a escolha do elemento piv maior em mdulo, que faz com
que os erros de arredondamento sejam, em geral, mais bem comportados.
A segunda limitao de se trabalhar com a inversa da base que, normalmente, B1 inclui
muitos elementos no-nulos, enquanto B pode ser esparsa (poucos elementos no-nulos). Para
problemas grandes, tipicamente bastante esparsos, este procedimento pode se tornar invivel
computacionalmente por exigir mais tempo para resolver um problema, alm da quantidade de
memria requerida ultrapassar os limites disponveis. Para contornar essa dificuldade, possvel
utilizar estruturas de dados mais adequadas, que armazenem apenas elementos no-nulos, e
mtodos de resoluo dos sistemas lineares que explorem a esparsidade das matrizes19 envolvi-
das nas iteraes do mtodo simplex.

19 Maros (2003) detalha vrias estruturas de dados para implementaes eficientes do mtodo simplex.
Captulo 2: Otimizao linear 93

Uma outra forma de apresentao e implementao do mtodo simplex, chamada mtodo


simplex em tabelas, est detalhada na prxima seo. Essa forma adequada para resolver proble-
mas com dezenas de restries e variveis. bastante popular devido facilidade de se trabalhar
com exemplos pequenos, como os resolvidos na Seo 2.6.4. O mtodo simplex em tabelas utiliza
implicitamente a inversa da matriz bsica e calcula todas as direes simplex por iterao (pou-
cas, no caso de exemplos pequenos), embora apenas uma delas seja utilizada pela varivel que
entra na base. Entretanto, existem vantagens em se fazer isso, pois as direes simplex da iterao
seguinte so mais fceis de se calcular.
O mtodo simplex pode ser estendido para lidar com limitantes superiores para as variveis,
isto , xj uj, assim como lida com limitantes inferiores (no-negatividade, xj 0) e conhecido como
mtodo simplex para variveis canalizadas. Para isso, basta estender o conceito de soluo bsica, em
que as variveis no-bsicas esto fixadas nos limites inferiores ou superiores, isto , para cada jN,
ento xj = 0 ou xj = uj, e as variveis bsicas so calculadas segundo a soluo geral (2.31). Se as
variveis bsicas assim calculadas tm seus valores dentro dos limites definidos, ento a soluo
bsica factvel e corresponde a um vrtice da regio factvel. A estratgia simplex tambm pode
ser estendida para permitir o aumento de uma varivel no-bsica que esteja no limite inferior
(como na forma padro), ou a diminuio de uma varivel no-bsica que esteja no limite superior,
isto , para cada ndice kN, ento xk = , se ck < 0 (como na forma padro), ou xk = uk, se
ck > 0, com 0, dependendo se a varivel no-bsica xk est no limite inferior ou superior. O ta-
manho do passo deve levar em conta os limitantes inferiores e superiores das variveis bsicas
e da varivel no-bsica xk escolhida para entrar na base. As condies de otimalidade tambm so
estendidas: se, para todo jN, c j 0; se xj = 0, e c j 0 se xj = uj, ento a soluo bsica tima.20

2.7 MTODO SIMPLEX EM TABELAS*21


As operaes realizadas no mtodo simplex podem ser organizadas em tabelas, chamadas tabelas
simplex. Embora no seja a forma ideal de se implementar o mtodo simplex em um computa-
dor, essa organizao pode ser interessante para manipular problemas pequenos e compreender
mais rapidamente como o mtodo funciona.
Considere um problema de otimizao linear:
Minimizar f(x) = cx
Ax = b
x 0.
Os coeficientes do sistema de equaes lineares e da funo objetivo so suficientes para des-
crever o problema e podem ser organizados da seguinte maneira (Tabela 2.18):

Tabela 2.18
Coeficientes de um problema de otimizao linear.

x1 x2 ... xn variveis

c1 c2 ... cn f coeficientes da funo objetivo

a1 a2 ... an b coeficientes das restries

20 Para mais detalhes destes procedimentos, o leitor pode consultar Bazarra et al. (1990).
21 Nesta seo, o mtodo simplex apresentado de forma mais resumida e alternativa s Sees 2.6.22.6.4.
94 Pesquisa Operacional

em que aj a j-sima coluna da matriz A. Usamos um exemplo simples para introduzir as tabe-
las simplex. Observe o problema de otimizao linear do exemplo 2.26:
Minimizar f(x1, x2) = x1 2x2
x1 + x2 6
x1 x2 4
x1 + x2 4
x1 0, x2 0.
Com a introduo das variveis de folga x3, x4 e x5 (ver Seo 2.4.2), os coeficientes do siste-
ma de equaes lineares Ax = b e da funo objetivo f(x)=cTx esto apresentados na Tabela 2.19.
As colunas das variveis x3, x4, x5 formam uma matriz identidade. Elas so chamadas de variveis b-
sicas. Em uma tabela simplex, a matriz dos coeficientes das variveis bsicas sempre a matriz iden-
tidade. Isso significa que cada varivel bsica est expressa em termos das demais variveis, no caso,
x1, x2, as quais so chamadas de variveis no-bsicas. Assim, basta atribuir valores s variveis no-
bsicas x1, x2 para que tenhamos uma soluo que satisfaa o sistema Ax = b. Escrevemos os comen-
trios anteriores em termos matemticos, usando o exemplo numrico (verifique isso na Tabela 2.19):
x3 = b1 a11 x1 a12 x2 = 6 x1 x2
x4 = b2 a21 x1 a22 x2 = 4 x1 + x2 (2.40)
x5 = b3 a13 x1 a32 x2 = 4 + x1 x2.
Se fixarmos, por exemplo, as variveis no-bsicas x1, x2 em seus limites x1 = 0, x2=0 (lembre-
se de que x1 0, x2 0, portanto, zero o limite inferior), ento as demais variveis tm os valores
x3 = 6, x4 = 4, x5 = 4 e produzem uma soluo factvel para o problema. Esta uma soluo bsica
factvel e corresponde a um vrtice da regio factvel (ver Figura 2.38). O valor da funo objetivo
para esta soluo f = 0. Como as variveis no-bsicas x1 e x2 esto em seus limites inferiores, a
nica possibilidade de examinar solues alternativas consiste em aumentar os valores de x1, x2 (di-
minuir os valores de x1 ou x2 significa faz-los negativos, levando a uma soluo infactvel). A funo
objetivo est escrita em termos das variveis no-bsicas x1, x2 (em uma tabela simplex como a da
Tabela 2.19, a funo objetivo sempre escrita em termos das variveis no-bsicas):
f = x1 2x2.
Dessa forma, ao examinarmos solues alternativas (aumentando x1 ou x2), vemos que a fun-
o objetivo decresce e, portanto, a soluo bsica (x1 = 0, x2 = 0, x3 = 6, x4 = 4, x5= 4) no uma
soluo tima (para um problema de minimizao). Por exemplo, aumentando o valor de x2 e
mantendo o valor de x1 = 0, a funo objetivo decresce taxa de variao 2:
f = 2x2,

Tabela 2.19
Tabela simplex inicial Dados do problema.

x1 x2 x3 x4 x5 b

1 2 0 0 0 f

1 1 1 0 0 6

1 1 0 1 0 4

1 1 0 0 1 4
Captulo 2: Otimizao linear 95

e quanto maior o valor de x2, menor ser o valor de f. Essa estratgia de alterar apenas uma varivel
no-bsica (neste caso, x2) chamada estratgia simplex. De (2.40), notamos que, se x2 crescer (man-
tendo-se x1 = 0), os valores das variveis bsicas (x3, x4, x5) so alterados e podem aumentar ou dimi-
nuir, de modo que deve-se tomar certo cuidado para preservar a no-negatividade das variveis (caso
contrrio, a soluo deixa de ser factvel). A seguir, escrevemos as expresses (2.40) para x1 = 0:
x3 = b1 a12 x2 = 6 x2 0 (a12 > 0)
x4 = b2 a22 x2 = 4 + x2 0 (a22 < 0)
x5 = b3 a32 x2 = 4 x2 0 (a32 > 0).
Das desigualdades anteriores, conclumos que apenas as variveis bsicas x3, x5 limitam o cres-
cimento de x2, isto ,
como a12 > 0, ento b1 a12 x2 0 implica x2 a121 , portanto, x2 6,
b

como a32 > 0, ento b3 a32 x2 0 implica x2 a323 , portanto, x2 4.


b

Note que, como a22 < 0, ento a varivel x4 cresce com x2, portanto, no limita o aumento em x2.

Soluo tima ilimitada: Se ocorresse o caso ai2 0, i = 1, 2, 3, ento a varivel x2 poderia cres-
cer indefinidamente e f , e assim o problema no teria soluo tima finita.
b b b
Portanto, o maior valor possvel para x2 4 (x2 = mnimo{ a121 , a323 } = a323 = 4) e, com este va-
lor, segue-se que x5 = 4 x2 = 0, que a varivel na terceira equao em (2.40) que se anula. Isso
produz uma nova soluo:
variveis no-bsicas: x1 = 0, x2 = 4,
variveis bsicas: x3 = 2, x4 = 8, x5 = 0,
e o valor da funo objetivo f = 0 2x2 = 8.
Se redefinirmos como variveis no-bsicas aquelas cujos valores so nulos (isto , esto em seus
limites inferiores) e, como variveis bsicas, aquelas com valores positivos (isto , fora de seus li-
mites), ento:
variveis no-bsicas: x1 = 0, x5 = 0,
variveis bsicas: x3 = 2, x4 = 8, x2 = 4.
f = 8.
Dizemos que a varivel no-bsica x2 entrou na base no lugar da varivel bsica x5, que saiu
da base. Portanto, x2 passa a ser a varivel bsica da terceira equao em (2.40). Note que tnha-
mos uma soluo bsica factvel melhor, cujo valor da funo objetivo valia f = 0, e agora temos
outra soluo bsica factvel, cujo valor da funo objetivo vale f = 8. As colunas das novas va-
riveis bsicas no formam a matriz identidade, portanto, a tabela simplex deve ser atualizada,
como vemos a seguir. Este procedimento, que parte de uma soluo bsica factvel e encontra
outra melhor, consiste em uma iterao do mtodo simplex. As operaes realizadas em uma iterao
do mtodo simplex so descritas a seguir. Dada uma tabela simplex:
Encontre uma varivel no-bsica que tenha o coeficiente negativo na funo objetivo, di-
gamos, xk (xk entra na base).
Percorra a coluna na tabela simplex da varivel xk e, para cada coeficiente positivo (aik > 0),
b
calcule a razo aiki (os valores que anulam a varivel bsica na linha i) e determine
= mnimo{ aiki tal que aik > 0, i =1,L ,m} . Com xk = allk , a varivel bsica na linha l se
bl b b
a lk
anula (isto , a varivel bsica da linha l sai da base). Se aik 0, i=1, ..., m, ento f
e o problema no tem soluo tima finita. Nesse caso, pare.
Redefina as variveis bsicas e no-bsicas e reconstrua a tabela simplex para essa nova so-
luo bsica (este terceiro passo explicado a seguir).
96 Pesquisa Operacional

Para obter a tabela simplex com a redefinio das variveis bsicas e no-bsicas, precisamos
pivotar a tabela anterior para que os coeficientes das variveis bsicas formem a matriz identi-
dade, e a funo objetivo esteja em termos das novas variveis no-bsicas (pivotar significa fazer
operaes do tipo: multiplicar uma equao por um nmero e adicionar o resultado a outra
esta operao tambm chamada de eliminao de Gauss, e no altera a soluo do sistema. Veja
Apndice A). Analisando a Tabela 2.19 (tabela simplex inicial), notamos que a coluna da nova va-
rivel bsica x2 deve ser transformada na terceira coluna da matriz identidade (a varivel x5 b-
sica na terceira equao).
Reproduzimos a seguir a tabela simplex inicial (Tabela 2.20), exibindo as variveis bsicas
esquerda da tabela (VB) e qual varivel no-bsica entra na base e qual varivel bsica sai da base.
As colunas das variveis x3, x4, x5 formam uma matriz identidade, e dizemos que x3 a varivel
bsica na primeira equao, x4 na segunda e x5 na terceira.
Tomando o elemento na posio (3,2) da Tabela 2.20 como piv, efetuamos operaes elemen-
tares e restauramos a tabela simplex com as novas variveis bsicas em que x2 a nova varivel
bsica na terceira equao (Tabela 2.21). Note a matriz identidade nas novas colunas de x3, x4, x2.
A linha da tabela simplex da Iterao 1 (Tabela 2.21) relativa funo objetivo, significa f + 8
= 3x1 + 2x5, ou, equivalentemente, f = 8 3x1 + 2x5. Os coeficientes das variveis no-bsicas
na funo objetivo so chamados custos relativos. Vemos que aumentar o valor da varivel x1, man-
tendo-se x5 = 0, faz decrescer a funo objetivo taxa de 3 (Tabela 2.21). As equaes do siste-
ma nos dizem (com x5 = 0):
x3 = 2 2 x1 0
x4 = 8 + 0 x1 0
x5 = 4 + x1 0.

Tabela 2.20
Tabela simplex inicial VB: x3, x4, x5.

x1 x2 x3 x4 x5 b

VB 1 2 0 0 0 f

x3 1 1 1 0 0 6

x4 1 1 0 1 0 4

x5 1 1 0 0 1 4

Tabela 2.21
Tabela simplex iterao 1 VB: x3, x4, x2.

x1 x2 x3 x4 x5 b

VB 3 0 0 0 2 f+8

x3 2 0 1 0 1 2

x4 0 0 0 1 1 8

x2 1 1 0 0 1 4
Captulo 2: Otimizao linear 97

portanto, o valor mximo para x1 dado por: a111 = 22 = 1. Com este valor para x1, a varivel b-
b

sica na primeira equao x3 = 2 2x1 = 0, isto , a varivel bsica x3 se anula, enquanto a vari-
vel no-bsica x1 torna-se positiva. Isso fornece uma nova soluo bsica:
variveis no-bsicas: x1 = 1, x5 = 0
variveis bsicas: x3 = 0, x4 = 8, x2 = 4.
Novamente, redefinimos as variveis no bsicas como aquelas cujos valores so zero (isto ,
esto em seus limites) e as variveis bsicas como aquelas cujos valores so positivos, ento:
variveis no-bsicas: x3 = 0, x5 = 0,
variveis bsicas: x1 = 1, x4 = 8, x2 = 5.
Como a varivel x1 entrou na base (primeira coluna) e a varivel x3 saiu da base (primeira equa-
o), podemos reescrever a nova tabela simplex pivotando sobre o elemento (1,1) da Tabela 2.21,
transformando a coluna x1 na primeira coluna da matriz identidade e x1 a varivel bsica na
primeira equao.
A tabela simplex iterao 2 (Tabela 2.22) significa:
f = 11 + 3 x3 + 3 x5
2 2
x1 = 1 1 x + 1 x
2 3 2 5
x4 = 8 + 0x3 x5
x2 = 5 1 x3 1 x5
2 2
e com (x3, x5) = (0, 0), ento (x1, x4, x2) = (1, 8, 5) (soluo bsica) e f = 11. Como qualquer outra
soluo factvel obtida atribuindo-se valores positivos a x3 ou x5 e, como x3 e x5 tm custos relati-
vos positivos (Tabela 2.22), a funo objetivo cresce, ou seja, f(x) 11 para qualquer soluo factvel
x, o que significa que a soluo bsica atual tima. Quando todos os custos relativos so no-ne-
gativos (maiores ou iguais a zero), dizemos que a condio de otimalidade foi verificada.

O algoritmo simplex (em tabelas)

Considere um problema de otimizao linear escrito na forma padro.


Fase I: Determine uma tabela simplex inicial, isto ,
a matriz dos coeficientes contm uma matriz identidade mm (m o nmero de equaes)
e o vetor independente b 0;
a funo objetivo escrita em termos das variveis no-bsicas, isto , os coeficientes das
variveis bsicas so nulos.

Tabela 2.22
Tabela simplex iterao 2 VB: x1, x4, x2.

x1 x2 x3 x4 x5 b

VB 0 0 3
2
0 3
2
f+11

x1 1 0 1
2
0 1
2
1

x4 0 0 0 1 1 8

x2 0 1 1
2
0 1
2
5
98 Pesquisa Operacional

Faa iterao = 0.
Fase II:
1. Determine o menor dos custos relativos: ck = mnimo {cj para toda varivel no-bsica}.
2. Se ck 0, ento pare (a soluo bsica na iterao tima). Se no, a varivel xk entra na base.
3. Se aik 0, i = 1, ..., m, ento pare (no existe soluo tima finita). Se no, determine:
bl
a lk
= mnimo{ abiki tal que a ik > 0, i = 1, L , m} (a varivel bsica da linha l sai da base).
4. Atualize a tabela simplex (pivotamento no elemento ( l, k )). A varivel xk passa a ser a vari-
vel bsica na linha l . Faa iterao = iterao + 1 e retorne ao passo 1.

Exemplo 2.29 (soluo ilimitada) Considere o problema de otimizao linear do Exemplo 2.28:
Minimizar f(x1, x2) = x1 x2
x1 x2 4
x1 + x2 4
x1 0, x2 0
Introduzindo as variveis de folga, temos uma matriz identidade formada pelas colunas das
variveis x3 e x4, e como o vetor de recursos b no-negativo, temos uma tabela simplex inicial
(Tabela 2.23).
A varivel x1 entra na base e a varivel x3 sai da base, resultando na Tabela 2.26.
Como todos os coeficientes na coluna de x2 so menores ou iguais a zero (ver Tabela 2.24), en-
to a varivel x2 pode crescer indefinidamente sem que nenhuma varivel bsica se torne negati-
va, ou seja, f , e o problema no tem soluo tima finita.
n

Tabela 2.23
Tabela simplex inicial VB: x3, x4.

x1 x2 x3 x4 b

VB 1 1 0 0 f

x3 1 1 1 0 4

x4 1 1 0 1 4

Tabela 2.24
Tabela simplex iterao 1 VB: x1, x4.

x1 x2 x3 x4 b

VB 0 2 1 0 f+4

x1 1 1 1 0 4

x4 0 0 1 1 8
Captulo 2: Otimizao linear 99

2.8 DETERMINAO DE UMA SOLUO BSICA FACTVEL INICIAL


Para que o mtodo simplex possa ser aplicado, precisamos de uma soluo bsica factvel ini-
cial (fase I do algoritmo simplex). Algumas classes de problemas de otimizao linear oferecem
naturalmente essa soluo bsica factvel, por exemplo:
Minimizar f(x) = cTx
Ax b
x 0,
em que b 0.
Aps a introduo das variveis de folga, digamos, xf, temos:
Minimizar f(x) = cTx
Ax + xf = b
x 0, xf 0,
de modo que a matriz dos coeficientes das restries agora dada por [A I] e uma partio b-
sica factvel dada por:
B = I: as variveis bsicas so as variveis de folga xB = xf ,
N = A: as variveis no-bsicas so as variveis originais xN = x,
e a soluo bsica factvel dada por:
x B = x f = b 0

x N = x = 0 .
Porm, em geral, uma soluo bsica factvel no est disponvel e deve ser encontrada. Con-
sidere o problema de otimizao linear:
Minimizar f(x) = cTx
Ax = b
x 0,
em que A no tem uma submatriz identidade. Sem perda de generalidade, suponha que b 0,
pois se bi < 0, basta multiplicar a i-sima restrio por 1. A questo como encontrar uma par-
tio nas colunas da matriz A, A=[B N], tal que exista B1 e xB= B1b 0, isto , uma parti-
o bsica factvel.
Para ter uma idia dessa dificuldade, suponha, por exemplo, que A seja uma matriz 1020 (m
= 10 e n = 20). Precisamos identificar 10 colunas de A que sejam linearmente independentes
para formar a matriz B, e a soluo do sistema B xB = b deve satisfazer xB 0.
Podemos fazer uma busca ao acaso, isto , um algoritmo exaustivo simples do tipo:
Selecione 10 colunas e resolva o sistema resultante.
Se a soluo do sistema for nica e no-negativa, ento h sucesso. Podemos usar esta se-
leo como uma partio bsica factvel e iniciar o mtodo simplex.
Se no (B no invertvel ou a soluo nica tem coordenadas negativas), selecione outras
10 colunas at que o sucesso seja obtido ou todas as possibilidades tenham sido investigadas.
Entretanto, esse procedimento simples para determinar uma partio bsica inicial pode en-
20!
volver a resoluo de C1020 = = 184.756 sistemas de equaes lineares 1010. Para pro-
10!(20 10)!
blemas grandes, esse procedimento torna-se inaceitvel do ponto de vista computacional, embora
matematicamente correto, j que o nmero de combinaes finito.
100 Pesquisa Operacional

Mtodo das duas fases

Notamos que as variveis de folga foram teis para a seguinte classe de problemas:

Ax b Ax + x f = b
equivalente a
x0 x 0, x f 0 .
No entanto, se o problema est na forma de igualdade, no h variveis de folga. Assim, in-
troduzimos novas variveis como se fossem de folga:
Ax + y = b
x 0, y 0 .
Essas novas variveis so chamadas variveis artificiais e no fazem parte do problema original,
portanto, devem ser eliminadas. Para eliminar as variveis artificiais, utilizamos um novo objeti-
vo, que resulta no problema artificial:
m
Minimizar f a (x, y ) = yi
i =1

Ax + y = b
x 0, y 0.
A funo objetivo do problema artificial penaliza as variveis artificiais de modo que a solu-
o tima desse problema deve (se possvel) ter yi = 0, i = 1, ..., m. Os coeficientes na funo ob-
jetivo das variveis artificiais podem ser quaisquer nmeros positivos (por simplicidade,
escolhemos todos iguais a 1). Caso haja colunas da matriz identidade na matriz A (geralmente
introduzidas por variveis de folga de algumas restries de desigualdade), estas podem ser uti-
lizadas na construo da base inicial, sendo complementadas com variveis artificiais. O exem-
plo a seguir esclarece essa observao.

Exemplo 2.30 Considere o seguinte problema de otimizao linear:

Minimizar f (x) = x1 x2 + 2 x3
x1 + x2 + x3 = 3
2x1 x2 + 3 x3 4
xi 0, i = 1, 2,3
o qual pode ser escrito na forma padro:

Minimizar f (x) = x1 x2 + 2 x3 + 0 x4
x1 + x2 + x3 =3
2x1 x2 + 3 x3 + x4 = 4
xi 0, i = 1,..., 4
Por exemplo, os seguintes problemas podem ser utilizados como problemas artificiais:
Caso A: Uma varivel artificial introduzida para cada restrio.

Minimizar f a (x1 ,..., x6 ) = x5 + x6


x1 + x2 + x3 + x5 =3
2x1 x2 + 3x3 + x4 + x6 = 4
xi 0, i = 1,..., 6
Captulo 2: Otimizao linear 101

em que x5 e x6 so variveis artificiais (por convenincia, denotamos as variveis por x5 e x6, em


vez de y1 e y2). Uma base factvel formada pelas colunas das variveis artificiais, x5 e x6.
Caso B: Apenas uma varivel artificial introduzida uma coluna da matriz identidade j est
disponvel.

Minimizar f a (x1 ,..., x5 ) = x5


x1 + x2 + x3 + x5 = 3
2x1 x2 + 3x3 + x4 =4
xi 0, i = 1,...,5 ,
em que a varivel x5 a varivel artificial (idem comentrio anterior sobre x5 e x6). Uma base
factvel formada pelas colunas das variveis x4 (varivel de folga) e x5 (varivel artificial).
n
Tanto no caso A como no caso B no Exemplo 2.30, as matrizes bsicas so identidades, ou
permutaes desta, dependendo da ordem em que as variveis bsicas so definidas. Por exem-
plo, podemos definir, no caso B, as variveis bsicas por xB = (x4, x5) ou xB = (x5, x4). O proble-
ma artificial tem sempre uma partio bsica factvel bvia (por simplicidade de exposio,
consideramos que uma varivel artificial seja includa em cada restrio, como no caso A do Exem-
plo 2.30):
B = I : variveis bsicas xB = y,
N = A: variveis no-bsicas xN = x,
portanto, podemos aplicar o mtodo simplex, que promove as trocas das colunas das variveis
artificiais por colunas das variveis originais. Ao final, as variveis artificiais so no-bsicas (nu-
las, conforme o novo objetivo), e uma base com as colunas originais de A obtida (algumas difi-
culdades sero discutidas nos exemplos, pois nem sempre essa troca possvel). Se o problema
original tem soluo factvel, digamos, x , ento:
Ax = b
x 0 ,
e esta soluo tima para o problema artificial, pois o par (x ,0), ou seja, y = 0 , factvel para o
problema artificial:
Ax + y = b
x 0, y 0,
e f a (x, y ) = 0, que o mnimo possvel para o objetivo artificial. Isso mostra que o problema artificial
tem, em geral, infinitas solues timas (qualquer soluo factvel do problema original). Excees
ocorrem quando o problema original tem uma nica soluo factvel ou no tem soluo factvel.
Uma vez encontrada uma soluo bsica em que todas as variveis artificiais so no-bsicas, te-
mos uma base formada por colunas originais e, portanto, podemos aplicar o mtodo simplex para
resolver o problema original a partir dessa base. Esse procedimento chamado de mtodo das
duas fases: Fase I resolve o problema artificial e Fase II resolve o problema original, a partir
da base factvel obtida na Fase I. Se o problema original infactvel, ento o problema artificial
tem soluo tima com y 0.

Exemplo 2.31 Considere o problema de otimizao linear definido no Exemplo 2.30 e o proble-
ma artificial definido no caso B, em que apenas uma varivel artificial introduzida. Problema
artificial:
102 Pesquisa Operacional

Minimizar f a (x1 ,..., x5 ) = x5


x1 + x2 + x3 + x5 = 3
2x1 x2 + 3 x3 + x4 =4
xi 0, i = 1,...,5
Para resolver o problema artificial, aplicamos o mtodo simplex.

Fase I: Partio bsica factvel inicial: B1 = 4 , B2 = 5 , N1 = 1 , N 2 = 2 e N 3 = 3 .

0 1 1 1 1
B= e N= .
1 0 2 1 3

1a Iterao
Soluo bsica:
0 1 3 4
Resolva o sistema Bx B = b , cuja matriz aumentada e obtenha a soluo: x B = 3 .
1 0 4
Teste de otimalidade:
0 1 0
i) vetor multiplicador: Resolva o sistema B T = c B , cuja matriz aumentada e ob-
1 1 0 1
tenha = ,
0
ii) custos relativos:
N1 = 1 : c1 = c1 T a1 = 1 xN1 = x1 entra na base
N 2 = 2 : c2 = c2 T a 2 = 1
: c3 = c3 T a3 = 1 .
0 1 1
Direo simplex: Resolva o sistema By = a1 , cuja matriz aumentada e obtenha
1 0 2

y = .
2
1
Tamanho do passo:

xB 4 3 xB
= min i yi > 0 = min , = 2 = 1 ( xB1 = x4 sai da base).
yi 2 1 y1

Atualizao
B1 = 1 B2 = 5 N1 = 4 N 2 = 2 N3 = 3.

1 1 0 1 1
B= e N = .
2 0 1 1 3
2a Iterao: B1 = 1 , B2 = 5 , N1 = 4 , N 2 = 2 e N 3 = 3 .
1 1 3 2
Soluo bsica: Resolva o sistema Bx B = b: e obtenha x B = .
2 0 4 1
Teste de otimalidade 1 2 0 1
i) vetor multiplicador: Resolva o sistema B T = cB : 1 0 1 e obtenha = ,
1 2
Captulo 2: Otimizao linear 103

ii) custos relativos


N1 = 4 : c4 = c4 T a 4 = 12
N 2 = 2 : c2 = c2 T a 2 = 32 xN 2 = x2 entra na base
N 3 = 3 : c3 = c3 T a3 = 13
1 1 1 12
Direo simplex: Resolva o sistema By = a 2 : e obtenha y = 3 .
2 0 1 2
Tamanho do passo
xB 1 xB
= min i y i > 0 = min 3 ; = 23 = 2 ( xB2 = x5 sai da base).
yi 2 y2
Atualizao:
B1 = 1 , B2 = 2 , N1 = 4 , N 2 = 5 e N 3 = 3 .
1 1
B= .
2 1
Base formada por variveis do problema original, a varivel artificial x5 torna-se no bsica. Fim
da Fase I.
Fase II: Aplicar o mtodo simplex a partir da base obtida na Fase I. A varivel artificial (segunda
varivel no-bsica, N2 = 5) descartada e os ndices no-bsicos so redefinidos: N1 = 4, N2 = 3.
n
Mtodo do Mgrande

Um objetivo alternativo para o problema artificial consiste em considerar a funo objetivo ori-
ginal e penalizar exageradamente as variveis artificiais de modo que estas sejam nulas na solu-
o tima, caso o problema original tenha soluo factvel. Seja M um nmero suficientemente
grande, ento um objetivo alternativo para o problema artificial :
Minimizar fa(x, y) = cTx + M(y1 + y2 + ... + ym)
Este procedimento chamado mtodo do Mgrande e, em certo sentido, tem o desempenho
similar ao mtodo das duas fases, pois o mtodo simplex (ou qualquer outro mtodo que seja uti-
lizado) deve orientar as trocas de bases de modo a substituir as colunas artificiais por colunas le-
gtimas, j que as variveis artificiais tm um custo muito alto.

Exemplo 2.32 Considere o problema de otimizao linear no Exemplo 2.30. O mtodo do M


grande consiste em resolver o problema (caso B):
Minimizar f a (x1 , ..., x5 ) = x1 x2 + 2 x3 + 1000 x5
x1 + x2 + x3 + x5 = 3
2x1 x2 + 3 x3 + x4 =4
xi 0, i = 1, ..., 5.
Por convenincia de notao, a varivel artificial y1 foi denotada por x5. O valor M = 1000
arbitrrio. O leitor pode, como exerccio, resolver esse problema com o mtodo simplex.
n

2.9 PROGRAMAO DE METAS


Nas sees anteriores, estudamos a resoluo de problemas de otimizao linear que envolvem
apenas uma funo objetivo. Entretanto, em alguns exemplos apresentados anteriormente, pos-
svel notar que a funo objetivo consiste em uma composio de objetivos, como no exemplo da
104 Pesquisa Operacional

Seo 1.3 do Captulo 1, em que se deseja minimizar o custo de produo, dado por i,tKit(xit), e
o custo de estocagem, dado por i,thiIit. Se otimizarmos somente o custo de produo, possivelmente
encontraremos uma soluo que acumula a produo dos itens em poucos perodos, de modo
a diminuir o custo com as preparaes de mquinas, fazendo com que os nveis de estoque se-
jam altos. Por outro lado, se otimizarmos apenas o custo de estoque, encontraremos uma solu-
o em que a produo dos itens ocorre nos perodos prximos das demandas, diminuindo os
nveis de estoque, mas fazendo com que ocorra produo em vrios perodos, aumentando o cus-
to com as preparaes. Dizemos, ento, que esses objetivos so conflitantes e geralmente im-
possvel determinar uma nica soluo que otimize simultaneamente ambos os objetivos. Em casos
como o desse exemplo, entretanto, um objetivo nico aceitvel, j que ambos os objetivos tm
a mesma unidade monetria e se deseja minimizar o custo total ou maximizar a contribuio
ao lucro.
Em geral, os problemas podem ter objetivos conflitantes medidos em unidades diferentes, por
exemplo, a gua de um reservatrio pode ser destinada gerao de energia eltrica, irrigao
de lavouras, ao abastecimento da populao ou recreao. Faz-se necessrio um meio-termo, j
que a melhor soluo para a empresa de gerao de energia eltrica pode comprometer a irri-
gao de lavouras, o abastecimento e a recreao, e vice-versa. Da mesma forma, o alto lucro de-
sejado por um investidor financeiro comumente conflitante com o baixo risco tambm almejado,
de modo que deve-se buscar uma soluo de compromisso que garanta lucro e risco em nveis
aceitveis. Estes so exemplos de problemas de otimizao multiobjetivo, e nestes casos necess-
rio analisar o compromisso (em ingls, trade-off) entre os objetivos envolvidos. O exemplo a se-
guir ilustra isso.

Exemplo 2.3322 Considere um banco com um capital prprio de $20 milhes, mais $150 milhes
de depsitos em contas-correntes e $80 milhes de depsitos em fundos de investimentos. O
banco tem vrias opes de investimento e deseja maximizar o lucro, mas os riscos devem ser
minimizados. A Tabela 2.25 fornece as opes de investimentos com suas taxas de retorno, alm
de outras informaes relacionadas ao risco.
Para modelar o investimento bancrio, considere as variveis:
xj : quantia ($ milhes) investida na opo j, j = 1, ..., 8.
O principal objetivo do banco maximizar seu lucro, o qual expresso por:
Maximizar f1(x) = 0,04x2 + 0,045x3 + 0,055x4 + 0,07x5 + 0,105x6 + 0,085x7 + 0,092x8.
Entretanto, o risco deve ser minimizado e expressar o risco no to simples quanto o lucro
anterior. Duas medidas (funes) de risco so comumente utilizadas. A primeira medida dada
pela razo entre o capital requerido para a solvncia e o capital do banco. Um valor baixo para
esta medida indica menos risco, de modo que conveniente:
Minimizar f2(x) = 201 (0,005x2 + 0,04x3 + 0,05x4 + 0,075x5 + 0,1x6 + 0,1x7 + 0,1x8).
Uma outra medida para o risco dada pela razo entre a quantia investida em opes de alto
risco e o capital do banco. Uma instituio financeira segura tem essa razo baixa, de modo que
conveniente:
Minimizar f3(x) = 201 (x6 + x7 + x8).
Algumas restries de investimento so imediatas:
xj 0, j = 1, ..., 8
x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 = 250 (o capital total 20 + 150 + 80 distribudo
entre as opes).

22 Baseado em um exemplo apresentado em Rardin (1998).


Captulo 2: Otimizao linear 105

Tabela 2.25
Opes de investimento.

Taxa de Parte Capital


Tipo de investimento retorno(%) lquida(%) requerido(%) Risco(?)

1: Caixa 0,0 100,0 0,0 No

2: Curto prazo 4,0 99,5 0,5 No

3: Governo 1 a 5 anos 4,5 96,0 4,0 No

4: Governo 5 a 10 anos 5,5 90,0 5,0 No

5: Governo mais de 10 anos 7,0 85,0 7,5 No

6: Emprstimos pessoais 10,5 0,0 10,0 Sim

7: Financiamento de imveis 8,5 0,0 10,0 Sim

8: Emprstimos comerciais 9,2 0,0 10,0 Sim

Outras restries decorrem de leis que regem o mercado financeiro e polticas de investimen-
to do banco, tais como:
(caixa) A reserva disponvel em caixa deve ser de pelo menos 14% dos depsitos em contas-
correntes, mais 4% dos depsitos em fundos de investimento (0,14(150) + 0,04(80) = 24,2):
x1 24,2
(liquidez) A poro de investimentos considerados lquidos deve ser de pelo menos 47% dos
depsitos em contas-correntes, mais 36% dos depsitos em fundos de investimento (0,47(150)
+ 0,36(80) = 99,3):
x1 + 0,995x2 + 0,96x3 + 0,9x4 + 0,85x5 99,3
(diversificao) Pelo menos 5% do capital total devem ser aplicados em cada opo (0,05(20
+ 150 + 80) = 12,5):
xj 12,5, j = 1, ..., 8
(comercial) Pelo menos 30% do capital total deve ser utilizado para emprstimos comerciais
(0,3(20 + 150 + 80) = 75):
x8 75
Em resumo, temos um modelo de otimizao linear dado por:
Maximizar f1(x) = 0,04x2 + 0,045x3 + 0,055x4 + 0,07x5 + 0,105x6 + 0,085x7 + 0,092x8
Minimizar f2(x) = 201 (0,005x2 + 0,04x3 + 0,05x4 + 0,075x5 + 0,1x6 + 0,1x7 + 0,1x8)
Minimizar f3(x) = 201 (x6 + x7 + x8)
x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 = 250
x1 24,2
x1 + 0,995x2 + 0,96x3 + 0,9x4 + 0,85x5 99,3
xj 12,5, j = 1, ..., 8
x8 75
xj 0, j = 1, ..., 8. n
106 Pesquisa Operacional

H vrios mtodos para resolver um problema de otimizao multiobjetivo como o exemplo


de investimento bancrio. Um dos mais populares a programao de metas, que, para encontrar
uma soluo de compromisso entre os objetivos conflitantes, estabelece a priori um conjunto de
valores (metas) aceitveis para cada funo objetivo. Considere o seguinte problema de otimiza-
o linear multiobjetivo (por simplicidade, consideramos trs objetivos):
Maximizar f1(x) = cTx
Minimizar f2(x) = dTx
Minimizar f3(x) = eTx
Ax = b
x 0,
ou seja, buscamos solues que faam com que o valor de f1(x) seja grande e f2(x) e f3(x) sejam
pequenos. Supomos que o decisor (pessoa responsvel pela implementao da soluo) fique sa-
tisfeito com qualquer soluo que atenda:
f1(x) 1 : valor mnimo para f1(x) que se deseja maximizar,
f2(x) 2 : valor mximo para f2(x) que se deseja minimizar,
f3(x) = 3 : valor ideal para f3(x),
em que i so chamadas metas. As desigualdades e a igualdade anteriores so definidas pelo
decisor. Dessa forma, o problema de otimizao linear reformulado como um problema de en-
contrar uma soluo factvel para o sistema:
f1(x) 1
f2(x) 2
f3(x) = 3
Ax = b
x 0.
Tal problema, entretanto, pode ser infactvel, indicando que o decisor deve abrir mo de uma
ou mais metas, ou seja, as restries-meta podem ser violadas. Supomos que as restries origi-
nais do problema Ax = b, x 0, sejam factveis, caso contrrio o problema multiobjetivo no tem
qualquer soluo. Para formalizar essa flexibilizao das restries-meta, introduzimos novas va-
riveis nas restries-meta:
f1(x) + y1 1
f2(x) y2 2
f3(x) + y3+ y3 = 3 ,
em que y1 0, y2 0, y3+ 0, y3 0. Tais variveis tm um papel semelhante ao das variveis ar-
tificiais na Seo 2.8, uma vez que fazem com que o sistema acima seja factvel. Elas tambm so
chamadas variveis de desvio porque representam os desvios acima ou abaixo dos valores das metas
(lado direito das restries). Por exemplo, se uma soluo factvel x tal que f1(x) < 1, ento,
com y1 = 1 f1(x) > 0, a restrio-meta flexibilizada satisfeita.
Dois mtodos tm sido utilizados para otimizar um modelo de programao de metas: (i)
o mtodo dos pesos e (ii) o mtodo hierrquico (em ingls, preemptive). Ambos baseiam-se na es-
tratgia de converter mltiplos objetivos em um nico objetivo. O mtodo dos pesos consi-
dera que as solues de interesse do decisor so aquelas em que as variveis de desvio ou
flexibilizao so o mais prximo possvel de nulas, portanto, o seguinte problema deve ser
resolvido:
Captulo 2: Otimizao linear 107

Minimizar (x, y) = w1y1 + w2y2 + w3( y3+ + y3 )


f1(x) + y1 1
f2(x) y2 2
f3(x) + y3+ y3 = 3
Ax = b
x 0, y1 0, y2 0, y3+ 0, y3 0,
em que w1, w2, w3 so os pesos (positivos) das metas, respectivamente, representando a importn-
cia relativa entre elas para o decisor. Por exemplo, se wi = 1 , i = 1, 2, 3, ento todas as metas tm
a mesma importncia para o decisor, ou se w1 > w2 > w3 ento a meta 1 mais importante que a
meta 2, e esta mais importante que a meta 3.

Exemplo 2.34 Analise o problema de investimento bancrio no Exemplo 2.33. Suponha que em lugar
de buscar o lucro mximo, o investidor busque a meta de pelo menos $18,5 milhes de lucro, isto
, f1(x) 18,5. Alm disso, no desejvel que as duas medidas de risco superem os valores 0,8 e 7,
respectivamente, isto , f2(x) 0,8 e f3(x) 7. Suponha, tambm, que todas essas metas tm a mes-
ma importncia para o decisor. Introduzindo as variveis de desvio ou flexibilizao e utilizando peso
igual a 1 para cada meta, temos o seguinte problema de otimizao linear (nico objetivo):
Minimizar (x, y) = y1 + y2 + y3
0,04x2 + 0,045x3 + 0,055x4 + 0,07x5 + 0,105x6 + 0,085x7 + 0,092x8 + y1 18,5
1
20
(0,005x2 + 0,04x3 + 0,05x4 + 0,075x5 + 0,1x6 + 0,1x7 + 0,1x8) y2 0,8
1
20
(x6 + x7 + x8) y3 7
x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 = 250
x1 24,2
x1 + 0,995x2 + 0,96x3 + 0,9x4 + 0,85x5 99,3
xj 12,5, j = 1, ..., 8
x8 75
xj 0, j = 1, ..., 8, y1 0, y2 0, y3 0.

Resolvendo esse modelo pelo algoritmo simplex (Seo 2.6.2), obtemos a seguinte soluo:
y1 = 0, y2 = 0,128 e y3 = 0, o que resulta em atingir a meta 1 (lucro de 18,5), em ter um desvio
de 0,128 na meta 2 (razo entre o capital requerido para a solvncia e o capital do banco igual a
0,928) e em atingir tambm a meta 3 (razo entre a quantia investida em opes de alto risco e o
capital do banco igual a 7). O leitor pode verificar que esta soluo muda se os pesos relativos
das metas forem diferentes, por exemplo, se w1 = 1, w2 = 10 e w3 = 1, isto , a meta 2 mais im-
portante, ento apenas a meta 3 atingida, mas fazendo diminuir o desvio de y2 = 0,128 para
y2 = 0,015. n
No mtodo hierrquico, os objetivos so tomados em ordem de prioridade, um aps o outro.
Por exemplo, suponha que o objetivo 1 o mais prioritrio para o decisor, o objetivo 2 o segundo
mais prioritrio, o objetivo 3 o terceiro mais prioritrio, e assim por diante. Ento, primeiro
minimizamos o desvio y1 do primeiro objetivo, depois minimizamos o desvio y2 do segundo ob-
jetivo sujeito condio de que o desvio do primeiro objetivo seja mnimo (isto , o valor y1 fi-
xado no valor mnimo obtido anteriormente), depois minimizamos o desvio y3 do terceiro objetivo
sujeito condio de que os desvios do primeiro e do segundo objetivos sejam mnimos (isto ,
os valores y1 e y2 so fixados nos valores mnimos j obtidos anteriormente), e assim por diante.
O exemplo a seguir ilustra o mtodo hierrquico.
108 Pesquisa Operacional

Exemplo 2.35 Considere novamente o problema de investimento bancrio no Exemplo 2.33. Su-
ponha que o decisor estabelea a seguinte prioridade entre as metas: a meta 1 (lucro) mais im-
portante que a meta 2 (primeira medida de risco), que mais importante que a meta 3 (segunda
medida de risco). Aplicando o mtodo hierrquico para resolver o problema, temos que (inicial-
mente resolvemos o modelo de investimento bancrio considerando apenas a meta 1):
Meta 1: Minimizar (x, y) = y1
0,04x2 + 0,045x3 + 0,055x4 + 0,07x5 + 0,105x6 + 0,085x7 + 0,092x8 + y1 18,5
x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 = 250
x1 24,2
x1 + 0,995x2 + 0,96x3 + 0,9x4 + 0,85x5 99,3
xj 12,5, j = 1, ..., 8
x8 75
xj 0, j = 1, ..., 8, y1 0.

A soluo deste modelo resulta em y1 = 0 e lucro igual a 18,5. Em seguida, resolvemos o mo-
delo impondo este lucro de 18,5 (isto , simplesmente incluindo a restrio y1 = 0 no modelo) e
considerando como objetivo o atendimento apenas da meta 2:
Meta 2: Minimizar (x, y) = y2
0,04x2 + 0,045x3 + 0,055x4 + 0,07x5 + 0,105x6 + 0,085x7 + 0,092x8 + y1 18,5
1
20
(0,005x2 + 0,04x3 + 0,05x4 + 0,075x5 + 0,1x6 + 0,1x7 + 0,1x8) y2 0,8
x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 = 250
x1 24,2
x1 + 0,995x2 + 0,96x3 + 0,9x4 + 0,85x5 99,3
xj 12,5, j = 1, ..., 8
x8 75
y1 = 0
xj 0, j = 1, ..., 8, y1 0, y2 0.

Alternativamente a incluir a restrio y1 = 0 no modelo da meta 2 anterior, poderamos ter


reescrito o modelo fixando o valor da varivel y1 em zero, o que reduziria o tamanho do modelo.
Esta observao tambm vlida para o modelo da meta 3 adiante. Optamos pela forma acima
para evidenciar a fixao da varivel de desvio y1.
A soluo do modelo da meta 2 anterior resulta em y2 = 0,119 e a razo entre o capital reque-
rido para a solvncia e o capital do banco igual a 0,919 (meta 2). Finalmente, resolvemos o mo-
delo impondo o lucro de 18,5 e o risco de 0,919 (isto , incluindo as restries y1 = 0 e y2 = 0,119
no modelo), e considerando apenas a meta 3:

Meta 3: Minimizar (x, y) = y3


0,04x2 + 0,045x3 + 0,055x4 + 0,07x5 + 0,105x6 + 0,085x7 + 0,092x8 + y1 18,5
1
20
(0,005x2 + 0,04x3 + 0,05x4 + 0,075x5 + 0,1x6 + 0,1x7 + 0,1x8) y2 0,8
1
20
(x6 + x7 + x8) y3 7
x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 = 250
x1 24,2
Captulo 2: Otimizao linear 109

x1 + 0,995x2 + 0,96x3 + 0,9x4 + 0,85x5 99,3


xj 12,5, j = 1, ..., 8
x8 75
y1 = 0
y2 = 0,119
xj 0, j = 1, ..., 8, y1 0, y2 0, y3 0.
A soluo deste modelo resulta em y3 = 0,158 e a razo entre a quantia investida em opes de
alto risco e o capital do banco igual a 7,158 (meta 3). Note que a soluo obtida pelo mtodo hie-
rrquico diferente da obtida com o mtodo dos pesos no Exemplo 2.34 anterior. No entanto,
convm salientar que a soluo do mtodo hierrquico tambm pode ser obtida pelo mtodo dos
pesos se usarmos uma ponderao exagerada para os objetivos. Verifique no Exemplo 2.34 que
essa soluo obtida pelo mtodo dos pesos se ponderarmos as trs metas com, por exemplo,
w1 = 10.000, w2 = 100 e w3 = 1, respectivamente. n
Os mtodos de programao de metas procuram uma soluo que satisfaz as metas do pro-
blema sem se preocupar com a otimizao do problema. Em outras palavras, se houver vrias so-
lues que satisfazem todas as metas, esses mtodos no determinam a melhor delas do ponto
de vista da otimizao dos objetivos originais do problema, f1, f2 e f3. Isso pode ser contornado
adicionando-se s funes objetivos dos modelos de programao de metas mltiplos positivos
e pequenos dos objetivos originais a serem minimizados ou subtraindo-se mltiplos positivos e
pequenos, se originalmente desejava-se maximizar. Por exemplo, no mtodo dos pesos, conve-
niente considerar: minimizar (x, y) = w1y1 + w2y2 + w3( + y3 ) 1f1(x) + 2f2(x) + 3f3(x).
Embora nossa discusso tenha focado apenas problemas de otimizao linear, a programao de
metas tambm pode ser aplicada a problemas de otimizao discreta e otimizao no-linear. No
caso de otimizao linear, o mtodo simplex pode ser especializado para resolver os modelos de
programao de metas.23
Um exemplo de aplicao prtica da programao de metas ocorre na programao de mis-
tura (blendagem) e distribuio (transporte e armazenagem) do suco concentrado congelado de
laranja.24 O objetivo prioritrio minimizar os custos de mistura e distribuio do suco desde as
fbricas de suco at os portos martimos (para exportao), enquanto o segundo objetivo est as-
sociado a especificaes tcnicas do suco e refere-se a minimizar o desvio do ratio do suco (rela-
o brix/acidez que fornece o grau de maturao e qualidade do suco) em relao aos ratios
mximo e mnimo especificados pelo cliente. Por exemplo, se o intervalo do ratio especificado pelo
cliente [14, 15], deseja-se produzir um suco com ratio o mais perto possvel de 14,5.
Existem diversos outros mtodos e abordagens para tratarproblemas de otimizao multi-
critrio, entre eles, THOR, ELECTRE, DEA etc.25

2.10 DUALIDADE
Estudamos nas sees anteriores problemas de otimizao linear que, com simplificaes, mode-
lam situaes prticas e suas variveis significam alguma deciso a ser tomada, como, por exemplo,
quantidades de cada ingrediente em uma mistura, nveis de estoque de produtos em um deter-
minado perodo, nmero de barras a serem cortadas segundo um padro de corte etc. Por outro

23 Para mais detalhes das observaes deste pargrafo, veja, por exemplo, Rardin (1998) e Taha (2003).
24 Veja, por exemplo, Munhoz e Morabito (2001).
25 Aplicaes e desenvolvimentos de mtodos e abordagens multicritrio podem ser encontradas, por exemplo, em Almeida
(2001), Alcantara et al. (2003), Avellar et al. (2005), Balestieri e Correia (1987), Borenstein e Betencourt (2005), Ensslin et al. (1999),
Ferreira (1996), Gomes (2005), Lins et al. (2003), Novaes (2001), Rangel et al. (2003), Ribeiro et al. (2001), Soares de Mello et al.
(2006) e Zambon et al. (2005).
110 Pesquisa Operacional

lado, os valores dessas variveis (isto , uma soluo do problema de otimizao) dependem dos
dados do problema como, por exemplo, o estoque disponvel dos ingredientes, capacidades de
mquinas, a demanda dos itens etc. e, embora sejam dados (isto , valores fixados), em geral
conveniente um decisor examinar como as possveis variaes nos dados interferem na soluo
do problema.
Questes do seguinte tipo podem ser de interesse: em um problema de planejamento da pro-
duo, se o estoque de uma matria-prima aumentasse, como o custo de produo se alteraria?
(isso poderia sugerir polticas de compras de matrias-primas). Em um problema de distribuio
de gua em redes urbanas, se a capacidade de um reservatrio de gua fosse ampliada, como o
consumo de energia para bombeamento de gua seria afetado? (isso poderia sugerir investimentos
em infra-estrutura). Em um problema de corte de material, se a demanda por um tamanho de
um item fosse maior ou menor, como a perda de material seria alterada? (isso poderia sugerir po-
lticas de descontos nos preos dos itens). Essas observaes correspondem a analisar o modelo
matemtico sob outro ponto de vista e introduzem um novo modelo de otimizao linear, cha-
mado problema dual, em correspondncia ao original, que chamado problema primal. A teoria da
dualidade, estudada nesta seo, fornece alguns subsdios para responder s questes levantadas
e, em adio, uma abordagem alternativa para se resolver um problema de otimizao linear, o
mtodo dual simplex.
Para o leitor que deseja um resumo sobre dualidade, apresentamos, no final das prximas duas
sees, os resumos das sees, que podem ser lidos diretamente sem a necessidade dos desen-
volvimentos a seguir.

2.10.1 Relaxao lagrangiana e o problema dual


Considere um problema de otimizao linear na forma padro, que denominamos problema primal:
Minimizar f(N) = ?TN
)N= >
N ,
em que ) uma matriz mn. Utilizamos o seguinte exemplo para ilustrar os conceitos nesta seo.

Exemplo 2.36 Considere o problema de corte da Seo 2.2.7. Deseja-se cortar bobinas de ao, sendo
que cada bobina tem largura de L = 1 metro e pesa 1 tonelada, para a produo de 108 toneladas
de sub-bobinas de 0,4m e 120 toneladas de 0,3m. O peso total das bobinas cortadas deve ser m-
nimo. Um modelo matemtico (ver (2.19) na Seo 2.2.7) pode ser escrito aps, em primeiro lugar,
determinar os possveis padres de corte, os quais so representados pelos vetores associados:
2 1 0
F1 = , F2 = , F3 = ,
0 2 3
ou seja, o primeiro padro de corte produz 2 sub-bobinas de 0,4m e nenhuma de 0,3m, o segun-
do padro produz 1 sub-bobina de 0,4m e 2 sub-bobinas de 0,3m, e o terceiro padro produz so-
mente 3 sub-bobinas de 0,3m. Seja xj a quantidade (em toneladas) de bobinas cortadas segundo
o padro de corte j, ento (por (2.19)) temos:
Minimizar f(N) = x1 + x2 + x3

54 52 0
( )
108
0 1 53 x2 + 109 x3 = 120
x + ou
54 x1 + 52 x2


3
= 108
x + 10 x3 = 120
5 2
9

x1 0, x2 0, x3 0 x1 0, x2 0, x3 0
Captulo 2: Otimizao linear 111

A base tima B = [a1 a2] e a soluo bsica tima obtida pela resoluo do sistema BxB=b,
xB 0, x* = (35 200 0)T e f(x*) = 1 35 +1 200 +1 0 = 235, ou seja, so necessrias 235
toneladas de bobinas cortadas para atender a demanda. Considere a seguinte questo: se hou-
ver um aumento na demanda de uma das sub-bobinas, qual o impacto disso sobre a necessi-
dade de cortar mais bobinas? n

Se considerarmos que o vetor de recursos b passvel de perturbaes, ento a restrio


b Ax = 0 no precisa ser satisfeita exatamente, e podemos analis-la como um vetor y = b Ax
(no Exemplo 2.36, imagine que a demanda das subbobinas possa sofrer alteraes isso comum
em funo das incertezas na previso da demanda). O vetor y pode ser visto como uma pertur-
bao no vetor b, de modo que a soluo do problema agora pode ser Ax = b y (o sinal de y
nesta perturbao irrelevante, alguns livros de otimizao linear adotam + y, ao invs de y,
bastando definir y= Ax b).
Suponha que i seja a penalizao ou o custo unitrio de perturbar o recurso i. Assim, iyi
o custo adicional de perturbar o recurso i em yi unidades. Isso sugere um novo problema asso-
ciado, chamado problema lagrangiano, isto , para cada = (1, 2, ..., m), resolva:
Minimizar f(x) + 1y1+2y2+ ... +mym
x0
em que y = b Ax.

Definio 2.10 (funo lagrangiana e funo dual) A funo objetivo do problema lagrangiano cha-
mada funo lagrangiana, e dada por:
L(x, ) = f(x) + 1y1+ 2y2 + ... + mym
em que y = b Ax, ou seja,
L(x, )
= cTx + Ty
= cTx + T(bAx)
= (cTTA)x + Tb.
Seja A = [a1, a2,..., an], em que aj a j-sima coluna da matriz A e c = (c1, c2, ..., cn), ento:
TA) = (c1
(cT Ta1, c2
Ta2 ... cn
Tan)
de modo que a funo lagrangiana pode ser escrita como:
L(x1, ..., xn, ) = (c1 Ta1) x1 + (c2 Ta2) x2 + ... + (cn Tan) xn + Tb
A funo dual definida por:

) = { L(x1, ..., xn, )}


minx 0 g(
= minx 0 {(c1 Ta1) x1 + (c2 Ta2) x2 + ... + (cn Tan) xn + Tb}
= minx 0 {(c1 Ta1) x1} + minx 0{(c2 Ta2) x2} + ... + minx 0 {(cn Tan) xn} + Tb
1 2 n

A decomposio acima na soma de n subproblemas menores vlida, pois as variveis x1,


x2, ..., xn so independentes entre si.

Exemplo 2.37 Considere o problema de corte no Exemplo 2.36. A funo dual dada por:
g(
) = Minimizar L(x, ) = x1 + x2 + x3 + 1y1 + 2y2
x1 0, x2 0, x3 0
em que y1 = 108 4
5
x1 2
5
x2 e y2 = 120 3
5
x2 9
10
x3.
112 Pesquisa Operacional

Substituindo y1 e y2 na funo lagrangiana:


g() = Minimizar L(x, ) = [(1 54 1) x1 + (1 52 1 53 2) x2 + (1 109 2) x3] + (1081 + 1202)
x1 0, x2 0, x3 0
= minx 0 (1 54 1) x1 + minx 0 (1 52 1 53 2) x2 + minx 0 (1 109 2) x3 +
1 2 3

(1081+1202)
Como as restries so simplesmente x1 0, x2 0, x3 0, o problema de minimizao para a
determinao de g( ) simples de ser resolvido. Se algum coeficiente das variveis for negativo,
ento g() = . Por exemplo, se 1 = 5, 2 = 0, ento o coeficiente de x1 1 54 1 = 3, e a

minimizao faz com que x1 = , de modo que g( ) = . Por outro lado, se 1 = 54 , 2 = 56 , ento
os coeficientes de x1 e x2 so nulos (isto , 1 5 1=0 e 1 52 1 53 2=0), de modo que as vari-
4

veis x1 e x2 podem assumir quaisquer valores no-negativos sem que a funo dual g( ) se altere,
enquanto o coeficiente de x3 : 1 109 2 = 14 > 0, o que implica x3 = 0 para minimizar g( ). A pri-
meira parte de L(x, ), que depende de x1, x2, x3, sempre ou zero. Se for zero (como ocor-
re se 1 = 54 ,2 = 56 ), ento L(x, ) igual segunda parte, ou seja, L(x, ) = 1081 + 1202. Essa
observao sempre vlida e examinada a seguir. n
A definio da funo dual fornece uma desigualdade fundamental da teoria da dualidade,
a qual baseada em uma estratgia de se obter limitantes inferiores (para os problemas de mini-
mizao). Esta estratgia muito comum em otimizao e chamada relaxao. Suponha que um
conjunto R contenha S (R uma relaxao de S), conforme ilustrado na Figura 2.40. Ento o m-
nimo de uma funo f em R (conjunto maior) deve ser menor ou igual ao mnimo de f em S. Isso
porque, se x0 S tal que f(x0) = mnimo{f(x), xS}, e como x0 R (j que R S), ento x0
tambm pode ser um mnimo de f em R ou um outro ponto de R pode ser ainda melhor (Figu-
ra 2.40), ou seja,
Minimizar{f(x), xR} Minimizar{ f(x), xS}, em que R S.
Pela definio da funo dual e definindo R = {xRn tal que x 0} S = {xRn tal que
Ax = b, x 0}, temos:
) = min x 0 cTx + T(b Ax)
g(
min{Ax = b, x 0} cTx + T(b Ax) {o termo b Ax se anula}
= min {c x, sujeito a: Ax = b, x 0}
T
{problema primal}
f(x), para todo x tal que Ax = b, x 0
Em resumo, a seguinte propriedade vlida:

Figura 2.40 Solues timas em S e R.


Captulo 2: Otimizao linear 113

Propriedade 2.5 Para todo Rm e para todo x tal que Ax = b, x 0, ento g( ) f(x).
Em outras palavras, a funo dual g( ) fornece um limitante inferior para a funo objetivo
primal f(x), para todo x factvel. Isso nos sugere procurar o que oferea o maior dos limitantes
inferiores, o que define o problema dual.

Definio 2.11 (problema dual) O maior limitante inferior para f(x), obtido pela funo dual, defi-
ne o problema dual lagrangiano, ou simplesmente problema dual, dado por:
Maximizar g( )

Rm.
As variveis (1, 2, ...,m) so chamadas variveis duais.

Nota: A desigualdade na propriedade 2.5, g( ) f(x), fundamental para escrever o problema


dual, e as restries de igualdade no problema primal fazem com que a desigualdade seja vlida
independentemente do sinal das variveis duais i , uma vez que b Ax = 0 para toda soluo
factvel primal. Veremos adiante como as restries de desigualdade no problema primal influen-
ciam o sinal das variveis duais. Por enquanto, devemos ter em mente que restries de igualda-
de no primal levam a variveis duais irrestritas de sinal.

Como j observado no Exemplo 2.37, para cada escolha das variveis duais, o problema
lagrangiano facilmente resolvido como uma soma de n subproblemas simples e, se ci Tai < 0,
ento, minx 0 (ci Tai) xi = . De outra forma, se existe i tal que ci
Tai < 0, ento g( ) = ,
1
que consiste em um limitante inferior incuo (j que um limitante inferior para qualquer
nmero real). Para que limitantes inferiores finitos possam ser construdos, devemos escolher
de modo que ci Tai 0, i = 1, ..., n e, neste caso, minx 0 (ci Tai) xi = 0, i = 1, ..., n, pois a so-
1
luo do problema lagrangiano dada por:
se ci Tai > 0, ento xi = 0 e (ci Tai) xi = 0;
se ci Tai = 0, ento xi qualquer valor no-negativo e (ci Tai) xi = 0.

Nota: A no-negatividade da varivel do problema primal, isto , xi 0, fez surgir a restrio so-
bre as variveis duais ci Tai 0, ou seja, o problema primal de minimizao e o sinal da vari-
vel primal contriburam para que restries sobre as variveis duais fossem do tipo ci Tai 0. No
Exerccio 2.27, pede-se que outros casos sejam estudados.

Portanto, como j observado no Exemplo 2.37, se escolhemos tal que ci Tai0, i = 1, ..., n,
) = b. As n desigualdades podem ser escritas em notao matricial:
ento g( T

Ta1 c1, Ta2 c2, ..., Tan cn (


Ta1 Ta2 ... Tan) (c1 c2 ... cn) TA cT.
Tomando-se a transposta de ambos os lados da ltima desigualdade matricial, segue-se que:
AT c.

) seja finita, devemos esco-


Exemplo 2.38 Considerando o Exemplo 2.36, para que a funo g(
lher tal que:

54 1 + 0 2 1
2
+ 3 1
AT c 5 1 5 2
0 + 9 1.
1 10 2 n
114 Pesquisa Operacional

Em resumo, se escolhemos as variveis duais tais que AT c, ento a funo dual dada por
g() = Tb (note que Tb = 1b1 + 2b2 + ... +mbm = bT), e podemos reescrever o problema dual
na definio 2.11 conforme a seguir.

Propriedade 2.6 (problema dual) Considere o seguinte problema primal:


Minimizar f(x) = cTx
Ax = b
x 0,
ento o problema dual dado pelo seguinte problema de otimizao linear:
Maximizar g( ) = bT
AT c.
Os coeficientes da funo objetivo dual so dados pelo vetor de recursos b do problema primal;
o termo independente das restries duais dado pelo vetor custo c do problema primal, e a matriz
de restries do problema dual a transposta da matriz das restries do problema primal, AT.

Definio 2.12 (restries duais e soluo dual factvel) O conjunto de restries AT c chama-
do de restries duais, e todo vetor que satisfaa as restries duais chamado de soluo dual
factvel.

Exemplo 2.39 O problema dual do problema primal no Exemplo 2.36 dado por:

Maximizar g ( ) = 1081 + 120 2


54 1 + 0 2 1
2
5 1 + 5 2 1
3

0 + 9 1
1 10 2
Introduzindo-se as variveis de folga , segue-se que:

Maximizar g ( ) = 1081 + 120 2


54 1 + 0 2 + 1 = 1
2
5 1 + 5 2 + 2 = 1
3

0 + 9 + = 1
1 10 2 3

1 0, 2 0, 3 0

A resoluo grfica do problema dual (ver Figura 2.41) simples, j que o problema dual possui
apenas 2 variveis, 1 e 2, devido ao fato de o problema primal ter 2 equaes. A interpretao
dessas variveis discutida em detalhes na Seo 2.10.3 (Exemplo 2.45).
A soluo tima obtida pela interseco das retas 1 = 0 e 2 = 0. semelhana da resoluo
grfica na Seo 2.5, a fronteira da regio factvel dual definida por j = 0, j = 1, 2, 3. Porm, as
equaes i = 0 no definem mais uma fronteira, pois so irrestritas de sinal (ver Figura 2.41).
Fixando-se 1 = 0 e 2 = 0 no sistema anterior, temos um sistema resultante nas variveis 1, 2
e 3, cuja soluo *1 = 54 , *2 = 56 . O valor da funo objetivo dual nesta soluo g(
*) = 108
5
4
+ 120 6 = 235. Reveja o Exemplo 2.36, em que f(x*) = 235. Isso antecipa uma proprieda-
5

*), ou seja, as solues timas do primal e do dual tm o mesmo valor. Note


de vlida, f(x*) = g(
Captulo 2: Otimizao linear 115

Figura 2.41 Resoluo grfica do problema dual.

tambm que o vetor b est no cone gerado pelos vetores a1 e a2, isto , b = a1x1 + a2x2 (Figura 2.41),
com x1 0 e x2 0, que equivalente a BxB = b, xB0. n
Uma vez que o problema dual tambm um problema de otimizao linear, podemos nos per-
guntar sobre seu dual. A seguinte propriedade vlida.

Propriedade 2.7 O dual do problema dual o problema primal.


Uma das maneiras de se mostrar a validade da propriedade 2.7 consiste em escrever o proble-
ma dual na forma padro. O problema dual na forma torna-se (definindo-se = + , com
+ 0 e 0):
) = bT+ + bT
Minimizar g(
AT+ AT + = c
+ 0, 0, 0,
em que so as variveis de folga.
Podemos escrever o problema dual deste problema usando a propriedade 2.6. O vetor custo
(isto , os coeficientes da funo objetivo), neste caso, ( bT, bT, 0T); o termo independente c;
e a matriz de restries dada por [AT AT I]. Portanto, o dual do problema dado por:

Maximizar h(y) = cTy


[AT AT I]T y ( bT, bT, 0T)T
em que y so as variveis duais, ou:

Maximizar h(y) = cTy


Ay b
Ay b
y 0
ou, ainda,
116 Pesquisa Operacional

Maximizar h(y) = cTy


Ay = b
y 0.
Fazendo a mudana de varivel y = x, obtemos
Minimizar f(x) = cTx
Ax = b
x 0,
que o problema primal, comprovando a propriedade 2.7.
A combinao das propriedades 2.6 e 2.7 permite-nos escrever problemas duais de vrios ti-
pos. Entretanto, para tornar mais clara a construo de problemas duais de diversos tipos, repe-
timos a estratgia usada para mostrar a propriedade 2.7, transformando um problema qualquer
na forma padro. Analisemos inicialmente o efeito de restries de desigualdades no primal so-
bre o dual. J sabemos que restries de igualdade no primal levam a variveis duais livres de si-
nal. Considere o problema primal dado por:
Minimizar f(x) = c1x1 + c2x2
a12x1 + a12x2 = b1
a21x1 + a22x2 b2
x1 0, x2 0.
Podemos determinar o problema dual do problema anterior usando a propriedade 2.6, aps
a incluso da varivel de folga na segunda restrio, escrevendo-o na forma padro:
Minimizar f(x) = c1x1 + c2x2 + 0x3
a11x1 + a12x2 + 0x3 = b1
a21x1 + a22x2 + 1x3 = b2
x1 0, x2 0, x3 0.
O problema dual (propriedade 2.6) dado por:
Maximizar g(1, 2) = b11 + b22 Maximizar g(1, 2) = b11 + b22
a111 + a212 c1 a111 + a212 c1
a121 + a222 c2 a121 + a222 c2
01 + 12 0, 2 0.
Vemos que uma restrio do tipo no problema primal (minimizao) leva condio de no-
positividade sobre a varivel dual associada quela restrio (isto , 2 0). O mesmo procedimen-
to (isto , transformar um problema qualquer na forma padro e usar a propriedade 2.6)
permite-nos construir o problema dual de qualquer problema de otimizao linear. Vejamos mais
dois casos. Consideremos agora uma restrio do tipo no problema primal (minimizao) e es-
tudemos o efeito sobre o sinal da varivel dual.
Minimizar f(x) = c1x1 + c2x2 Minimizar f(x) = c1x1 + c2x2 + 0x3
a12x1 + a12x2 = b1 a11x1 + a12x2 + 0x3 = b1
a21x1 + a22x2 b2 a21x1 + a22x2 1x3 = b2
x1 0, x2 0, x1 0, x2 0, x3 0,
cujo problema dual (propriedade 2.6, considerando a forma padro) dado por:
Captulo 2: Otimizao linear 117

Maximizar g(1, 2) = b11 + b22 Maximizar g(1, 2) = b11 + b22


a111 + a212 c1 a111 + a212 c1
a121 + a222 c2 a121 + a222 c2
01 12 0, 2 0.
Portanto, uma restrio do tipo no problema primal (minimizao) leva condio de no-
negatividade sobre a varivel dual associada quela restrio (2 0). Nos problemas anteriores,
envolvendo desigualdades nas restries do problema primal, consideramos sempre a mini-
mizao da funo objetivo primal. Em resumo, temos:
(Minimizao primal) se a restrio i for do tipo , ento i 0
(Minimizao primal) se a restrio i for do tipo , ento i 0
(Minimizao primal) se a restrio i for do tipo =, ento i livre.
Entretanto, o sinal da varivel dual muda caso o problema primal seja de maximizao. Con-
sidere o problema primal (maximizao) com uma restrio do tipo e reescrito na forma padro:
Maximizar f(x1, x2) = c1x1 + c2x2 Minimizar f(x) = c1x1 c2x2 0x3
a12x1 + a12x2 = b1 a11x1 + a12x2 + 0x3 = b1
a21x1 + a22x2 b2 a21x1 + a22x2 + 1x3 = b2
x1 0, x2 0, x1 0, x2 0, x3 0.
cujo problema dual (propriedade 2.6) dado por:
Maximizar g(1, 2) = b11 + b22
a111 + a212 c1
a121 + a222 c2
2 0.
Embora o problema anterior seja o dual do problema precedente, seus dados so alterados
por sinais negativos no vetor c e podemos reescrev-lo de modo que os negativos sejam eli-
minados. Para isso, multiplicamos as restries e a funo objetivo por 1, invertendo as desi-
gualdades de para e a maximizao para minimizao e, finalmente, trocamos as variveis
i i e g g:
Minimizar g(1, 2) = b1(1) + b2(2) Minimizar g(1, 2) = b11+ b22
a11(1) + a21(2) c1 a111 + a212 c1
a12(1) + a22(2) c2 a121 + a222 c2
(2) 0, 2 0.
Conclumos que o dual de um problema primal de maximizao um problema de mini-
mizao. Alm disso, se as restries do primal so do tipo , ento a varivel dual associada
no-negativa (2 0). Como antes, a varivel dual (1) associada a uma restrio de igualdade
irrestrita de sinal (no depende de o problema ser de maximizao ou minimizao). Os exemplos
anteriores mostram que as desigualdades nas restries do problema primal so determinantes
dos sinais das variveis duais, as quais devem ser combinadas com a minimizao ou maximizao
do problema primal. A seguir, apresentamos um resumo da seo e uma tabela com a qual pos-
svel determinar o problema dual para qualquer problema primal.

Resumo da seo

Para um problema de otimizao linear em sua forma padro, chamado problema primal, pode-
mos definir um outro problema de otimizao linear, chamado problema dual:
118 Pesquisa Operacional

Problema primal: Problema dual:


Minimizar f(x) = c x T
Maximizar g( ) = bT
Ax = b AT c.
x 0,
Isto , o problema dual construdo da seguinte forma (primal na forma padro: minimiza-
o, restries de igualdades e variveis no-negativas):
Problema dual maximizao.
O nmero de variveis duais igual ao nmero de restries do primal.
O nmero de restries duais igual ao nmero de variveis x do primal.
Os coeficientes da funo objetivo dual so os coeficientes do vetor de recursos b do primal.
A matriz dos coeficientes das restries duais a transposta da matriz dos coeficientes do
primal, AT.
As restries duais so do tipo .
O vetor de recursos dual formado pelos coeficientes c da funo objetivo primal (tambm
chamado gradiente do objetivo primal).
Caso o problema primal no esteja na forma padro (por exemplo, restries de desigual-
dade), a Tabela 2.26 fornece as regras de como construir o dual de qualquer problema de
otimizao linear.
Assim, se tivermos um problema primal de minimizao (siga a coluna esquerda da Tabela
2.26), para cada restrio i do tipo = , temos uma varivel dual i livre; para cada restrio do
tipo , temos uma varivel dual i 0 e, para cada restrio do tipo , uma varivel dual
i0. Alm disso, para uma varivel primal xi 0, temos a i-sima restrio dual do tipo e
assim por diante. Os exemplos a seguir ilustram como utilizar a Tabela 2.26 para escrever um pro-
blema dual.
Conforme discutido na propriedade 2.7, podemos calcular o problema dual do dual (j que
o dual um problema de otimizao linear e podemos aplicar a Tabela 2.26) e encontramos pre-
cisamente o problema primal. Isto , o dual do dual o primal.

Tabela 2.26
Regras para construo do problema dual.

Primal (dual) Dual (primal)

Minimizao Maximizao

Vetor de recursos Gradiente do objetivo

Gradiente do objetivo Vetor de recursos

Restrio = Livre Varivel



Varivel Restrio

Livre =
Captulo 2: Otimizao linear 119

Exemplo 2.40 Considere os seguintes problemas primais. Utilizando a Tabela 2.26, construmos
os problemas duais respectivos.
a) Primal: Minimizar f(x) = x1 + 2x2
2x1 + x2 3
3x1 + 4x2 5
x1 x2 2
x1 0, x2 0.
Como o problema primal do tipo minimizao, deve-se seguir a coluna esquerda da Tabela
2.26 para escrever as caractersticas do dual direita.
Dual: (problema de maximizao com duas restries e trs variveis)
) = 31 + 52 + 23
Maximizar g( (devido ao primal minimizao)
21 + 32 + 3 1 (devido s variveis primais xj 0)
1 + 42 3 2
1 0, 2 0, 3 0. (devido s restries primais )

b) Primal: Maximizar f(x) = x1 + 2x2


2x1 + x2 3
3x1 + 4x2 5
x1 x2 2
x1 0, x2 0.
Como o problema primal do tipo maximizao, deve-se seguir a coluna direita da Tabela 2.26
para escrever as caractersticas do dual esquerda.
Dual: (problema de minimizao com duas restries e trs variveis)
) = 31 + 52 + 23
Minimizar g( (devido ao primal maximizao)
21 + 32 + 3 1 (devido s variveis primais xj 0)
1+ 42 3 2
1 0, 2 0, 3 0. (devido s restries primais )

c) Primal: Maximizar f(x) = x1 + 2x2


2x1 + x2 + x3 3
3x1 + 4x2 5
x1 0, x2 livre, x3 0.
Dual: (problema de minimizao com trs restries e duas variveis)
) = 31+ 52
Minimizar g(
21 + 32 1 (devido a x1 0)
1 + 42 = 2 (devido a x2 livre)
1 0 (devido a x3 0)
1 0, 2 0. (devido 1a restrio e 2a restrio ).

O leitor pode aplicar a Tabela 2.26 para construir o problema dual de cada um dos problemas
duais anteriores em (a), (b) e (c), para concluir que os problemas primais so reconstrudos. n
120 Pesquisa Operacional

2.10.2 Relaes primais-duais


Nesta seo, vemos como os problemas primal e dual esto relacionados e como obter a soluo
de um problema a partir da soluo do outro. Por simplicidade de exposio, definimos o con-
junto das solues factveis do problema primal por:
P = {xRn tal que Ax = b, x 0}
e o conjunto das solues factveis do problema dual por:
D = {Rm tal que AT c}
Assim, a propriedade 2.5 pode ser reescrita como:
) f(x), D, xP
g(
e vrias outras conseqncias dessa propriedade so mostradas a seguir. Podemos ter P ou
P = . No caso de P = , o problema no tem soluo factvel. No caso de P , o problema
pode ter soluo tima (que pode ser nica ou mltipla) ou a funo objetivo ilimitada.

Propriedade 2.8 Suponha que P (isto , existe soluo factvel primal). O problema primal no
tem soluo tima se e somente se D = (de outra forma, no caso de minimizao, f(x)
se e somente se no existir soluo factvel dual).

Exemplo 2.41 Considere o par de problemas primal-dual:


Primal: Dual:
Maximizar f(x) = x1 + x2 Minimizar g( ) = 1 + 2
x1 + x2 1 1 + 2 1
x1 2x2 1 1 22 1
x1 0, x2 0 1 0, 2 0
A resoluo grfica (Figura 2.42) mostra que o primal no tem soluo tima, apesar de
P (f(x) , problema de maximizao), e o dual infactvel, isto , D = .
n

A validade da condio necessria na propriedade 2.8 (isto , se f(x) , ento D = ) se-


gue diretamente da propriedade 2.5, pois, se existe D, ento g(
) um limitante inferior para

Figura 2.42 (a) Primal sem soluo tima, (b) Dual infactvel.
Captulo 2: Otimizao linear 121

f(x), impedindo que f(x) . Entretanto, a prova da condio suficiente (isto , f(x) se
D = ) no trivial.26 O mesmo raciocnio vlido para a condio necessria da propriedade
seguinte, enquanto a prova da condio suficiente tambm no trivial.

Propriedade 2.9 Suponha que D (isto , existe soluo factvel dual). O problema dual no
tem soluo tima se e somente se P = (isto , g( ) se e somente se no existir soluo
factvel primal).
Observe a simetria desses resultados (revisite o Exemplo 2.41 e troque primal por dual). As pro-
priedades 2.8 e 2.9 pressupem que um dos conjuntos de solues factvel (P ou D ).
Entretanto, h a possibilidade de ambos serem infactveis: P = e D =, como pode ser vis-
to no exemplo a seguir.

Exemplo 2.42 (primal e dual infactveis) Considere o problema:


Primal: Minimizar f(x1) = x1
0x1 = 1 (equao impossvel: P = )
x1 0,
Dual: Maximizar g(1) = 1
01 1. (desigualdade impossvel: D = )
Ambos os problemas, primal e dual, so infactveis. n
Das propriedades 2.8 e 2.9 e dos exemplos anteriores, podemos concluir que, se um dos pro-
blemas (primal ou dual) for infactvel, ento o outro no tem soluo tima (seja porque tam-
bm infactvel ou porque a funo objetivo ilimitada). Podemos, ainda, escrever a seguinte
propriedade.

Propriedade 2.10 O problema primal tem soluo tima se e somente se o dual tiver soluo tima.
De fato, suponha que o problema primal tenha soluo tima. Assim, P , f(x)> . Da
propriedade 2.8, segue-se que D (pois, se D = , ento f(x) , mas um absurdo, j
que f(x) > ). Assim, como P e D , da propriedade 2.9, segue-se que g( ) < (pois
) , ento P = , o que resulta em um absurdo, uma vez que P ), ou seja, o proble-
se g(
ma dual no infactvel, nem sua funo objetivo ilimitada, de modo que tem soluo tima
(a possibilidade restante). Raciocinando de forma anloga, se supusermos que o problema dual
tem soluo tima, ento o problema primal ter soluo tima.
As propriedades que relacionam os problemas primal e dual at agora no informam como
seus objetivos se relacionam nas respectivas solues timas ou como estas esto relacionadas. Uma
nova propriedade, que decorre diretamente da propriedade 2.5, fornece uma nova condio de
otimalidade.

Propriedade 2.11 Sejam x* P e * D (isto , x* uma soluo factvel primal e * uma soluo
*), ento x* soluo tima primal e * soluo tima dual.
factvel dual). Se f(x*) = g(
A validade da propriedade 2.11 decorre da propriedade 2.5: g( ) f(x), para todo D e para
todo xP, pois impossvel diminuir f(x) abaixo de f(x*). Se fosse possvel, ento existiria xP
tal que f(x) < f(x*) = g(*), o que contraria a propriedade 2.5. A recproca da propriedade 2.11
tambm verdadeira, como vemos adiante.

26 A prova da condio suficiente pode ser encontrada em Bazaraa et al. (1990).


122 Pesquisa Operacional

Analisemos um pouco mais a condio de otimalidade da propriedade 2.11. Sejam xP e D


), isto , cTx = Tb. Substituindo Ax = b, segue-se que cTx = TAx, o
e suponha que f(x) = g(
que implica (c A)x = 0. O vetor cT TA o vetor das variveis de folga do problema dual:
T T

a1T c1 a1T + 1 = c1
T T
a 2 c2 a + 2 = c2
A c
T
2
M M
a c
T aT + = c
n n n n n

1 0, 2 0,K , n 0.
Como a j = a j e cT
TA = (c1
Ta1 c2Ta2 ... cn
Tan), segue-se que:
T T

(cT TA)x = 0 (c1 Ta1) x1 + (c2 Ta2) x2 + ... + (cn Tan) xn = 0


1 x1+2 x2+ ... +n xn = 0, em que j = cj a j 0.
T

Como xj 0, j = 1, 2, ..., n, cada uma das parcelas da soma acima no-negativa, do que se
conclui que todas so nulas:
1 x1 = 0, 2 x2 = 0, ..., n xn = 0.
Essa relao entre solues timas primal e dual chamada de folgas complementares, satis-
feita para toda soluo tima primal e dual e pode ser enunciada como a propriedade a seguir.
(A condio necessria decorre da propriedade 2.14).

Propriedade 2.12 (folgas complementares) As solues xRn e Rm so timas, primal e dual res-
pectivamente, se e somente se:
Ax = b, x 0 (x factvel primal)
A +
T
= c, 0 factvel dual)
(
j xj = 0, j = 1, ..., n (folgas complementares)
A propriedade 2.12 permite determinar a soluo tima de um dos problemas (primal ou dual)
quando a soluo tima do outro conhecida (ver o Exemplo 2.43). Alm disso, nos diz que a
resoluo de um problema de otimizao linear pode ser obtida pela resoluo de um sistema de
equaes no-lineares (note que as folgas complementares so equaes no-lineares). Isso sugere
que um mtodo de soluo para a otimizao linear pode ser construdo a partir de um mtodo de
resoluo do sistema no-linear da propriedade 2.12. Um mtodo muito eficiente para a resolu-
o de sistemas no-lineares o mtodo de Newton,27 o qual pode ser adaptado para resolver o
sistema no-linear da propriedade 2.12, evitando-se as desigualdades x 0 e 0 mantendo-as
estritamente positivas (tais solues factveis so chamadas pontos interiores). Esse um dos prin-
cpios de um dos mtodos mais importantes de pontos interiores para otimizao linear.28

Exemplo 2.43 Considere novamente o problema no Exemplo 2.36 e seu dual:


Primal: Minimizar f (x) = x1 + x2 + x3 Dual: Maximizar g ( ) = 1081 + 120 2
54 x1 + 52 x2 = 108 54 1 + 0 2 + 1 =1
2
5 x2 + 10 x3 = 120 5 1 + 5 2 + 2 = 1
3 9 3

x1 0, x2 0, x3 0, 0 + 9 + = 1
1 10 2 3

1 0, 2 0, 3 0.

27 Veja, por exemplo, Vanderbei (2001) e outros mtodos para resoluo de sistemas de equaes no-lineares em Ruggiero et al.
(1992).
28 Para estudos em mtodos de pontos interiores, veja Adler et al. (1989), Gonzaga (1991) e Vanderbei (2001).
Captulo 2: Otimizao linear 123

Seja a soluo factvel primal x1 = 35, x2 = 200, x3 = 0. Busquemos uma soluo dual que ve-
rifique as folgas complementares 1 x1 = 0, 2 x2 = 0, 3 x3 = 0, o que implica 1= 0, 2 = 0, j que
x1 > 0 e x2 > 0. As variveis positivas do primal (como ocorre tipicamente com as variveis bsi-
cas) fazem com que as restries duais sejam satisfeitas com igualdade (dizemos que so restri-
es ativas), resultando em um sistema de equaes lineares:
4
5
1 =1 (1 = 0)
2
5
1 + 5 2 = 1
3
(2 = 0)

cuja soluo dada por 1 = 54 , 2 = 56 . Como a terceira restrio dual, 109 2 1, satisfeita com
folga nesta soluo (3 = 14 ), ento ela factvel dual (ver a resoluo grfica do problema dual
no Exemplo 2.39). Em resumo, as solues x1 = 35, x2 = 200, x3 = 0 e 1 = 54 , 2= 56 so so-
lues factveis primal e dual, respectivamente, e satisfazem as folgas complementares. Portanto,
so solues timas primal e dual, respectivamente. Como j observado no Exemplo 2.39, f(x1,
x2, x3) = x1 + x2 + x3 = 35 + 200 + 0 = g(1, 2) = 108 54 + 120 56 = 235. O Exerccio 2.30
prope o caminho inverso, isto , dada uma soluo dual tima, encontre uma soluo primal
tima. n

Substituindo =c
T T
A nas folgas complementares x=0, obtemos (c
T T T
A)x=0 ou,
T

equivalentemente, cTx = TAx. Como Ax = b, para x factvel, segue-se que f(x) = cTx = Tb = g( ).
Portanto, a propriedade 2.12 pode ser reescrita como:

Propriedade 2.13 (dualidade forte) As solues x* P e * D so timas, primal e dual respecti-


vamente, se e somente se f(x*) = g(*).
As folgas complementares (propriedade 2.12) fornecem um caminho para se calcular uma so-
luo tima de um dos problemas quando j se conhece a soluo tima do outro (ver Exemplo
2.43 e Exerccio 2.30). A propriedade a seguir nos d, diretamente, a soluo tima do proble-
ma dual quando uma soluo tima bsica primal encontrada.

Propriedade 2.14 O vetor multiplicador simplex na soluo tima primal uma soluo tima
dual.

Exemplo 2.44 Considere novamente o problema no Exemplo 2.36:

Minimizar f (x) = x1 + x2 + x3
54 x1 + 52 x2 = 108

5 x2 + 10 x3 = 120
3 9

x1 0, x2 0, x3 0

e sua soluo tima (x1 x2 x3)T = (35 200 0)T, a qual bsica:
x1 108
x B = = , x N = (x3 )= (0 )
x 2 200

e a matriz bsica:

.
124 Pesquisa Operacional

O vetor multiplicador simplex dado por:


5 56
T = cB B 1 = (1 1) 4 5
= (54 5
6
)
0 3

que coincide com a soluo tima calculada no Exemplo 2.39. n


T 1
A validade da propriedade 2.14 vem do fato de que o vetor multiplicador = cB B uma
T

soluo dual factvel e os objetivos primal e dual coincidem (considerando a soluo bsica primal:
xB = B1b, xN = 0). De fato, os objetivos coincidem:
T 1
) = Tb = cB B b = cTB x B + c TN x N = f(x).
g(
A igualdade entre os objetivos ocorre independentemente de o vetor multiplicador fornecer
uma soluo dual factvel (isso ocorre em todas as iteraes do mtodo simplex). Mostramos agora
que a condio de otimalidade (do problema primal) garante que o vetor multiplicador seja uma
T 1
soluo dual factvel. Pela definio do vetor multiplicador, T= cB B , temos que:
T B = c TB Tai = ci para todo i bsico.
Isto , as restries duais associadas s variveis bsicas so satisfeitas com igualdade (restri-
es ativas em ). Considerando as condies de otimalidade satisfeitas (supondo uma base ti-
ma obtida pelo mtodo simplex), segue-se que os custos relativos
cj - Taj 0 para todo j no-bsico,
e, portanto, Taj cj para todo j no-bsico, ou seja, as restries duais associadas s variveis no-
bsicas tambm so satisfeitas. Assim, todas as restries duais so satisfeitas, portanto, T = cB B 1
consiste em uma soluo factvel dual.

Resumo da seo

Os problemas primal e dual, definidos na Seo 2.10.1 (ver resumo da seo anterior), mantm
relaes estreitas que podem ser resumidas por:
O problema primal tem soluo tima se e somente se o problema dual tambm tiver solu-
o tima.
O mnimo da funo objetivo primal igual ao mximo da funo objetivo dual, isto , se x*
uma soluo tima primal e * uma soluo tima dual, ento f(x*) = g(
*) e vice-versa.
Se f(x) (primal ilimitado), ento o problema dual infactvel.
Se g() (dual ilimitado), ento o problema primal infactvel.
Ambos os problemas, primal e dual, podem ser infactveis.
O vetor multiplicador simplex na soluo bsica tima, dado por T = cBB1, uma solu-
o tima do problema dual.

2.10.3 Anlise de sensibilidade (ps-otimizao)


Nesta seo, estudamos o efeito de se perturbar os dados de um problema de otimizao linear,
particularmente no vetor de recursos b e no vetor de custos c.

Perturbao no vetor de recursos


Considere o problema primal na forma padro:
F(b) = Minimizar f(x) = cTx
Ax = b
x 0,
Captulo 2: Otimizao linear 125

em que F(b) o valor mnimo da funo objetivo para um vetor de recursos b. Se o vetor de re-
cursos for alterado, ento a soluo tima tambm se altera e, por conseguinte, F(b) tambm
modificado. Estudaremos, a seguir, como as variveis duais fornecem subsdios para estudar a
modificao em F(b). Suponha que o problema primal tenha sido resolvido, obtendo-se a solu-
o bsica primal tima:
xB = B1b, xN = 0
e a soluo bsica dual tima (vetor multiplicador simplex):
= c TB B 1 .
Portanto,
F(b) = cTB xB = c TB B 1 b = Tb = b11 + b22 + ... + bmm
a expresso da funo objetivo para um vetor de recursos b especfico. Se a funo F for
diferencivel ( o que acontece se pequenas variaes em b no fazem mudar a base tima, de
modo que no se altera), ento
F (b)
= i, i = 1, ..., m,
bi
ou seja, o vetor multiplicador simplex (variveis duais) fornece as derivadas parciais da funo
F em b, isto , a taxa de variao do valor da funo objetivo com relao ao vetor de recursos.
Note que a unidade de i bi deve ser a mesma da funo objetivo. Por exemplo, se a funo ob-
jetivo representa custo (unidade monetria $), ento ibi tambm deve ser uma grandeza na mes-
ma unidade monetria. Portanto, a unidade de i deve ser $/(unidade do recurso i), que pode ser
interpretado como o preo de uma unidade do recurso i. Em resumo, a unidade de i : (unida-
de da funo objetivo)/(unidade do recurso i). Se fizermos uma pequena perturbao em bi (sem
que a soluo bsica atual deixe de ser factvel), digamos, bi+i ento:
F(b1, ..., bi + i, ..., bm) = b11 + ... + (bi+i) i + ... + bmm
= F(b) + ii
ou seja, a funo objetivo avaliada em b modificada por ii.

Exemplo 2.45 Considere o problema de corte de estoque no Exemplo 2.36 e seu problema dual:
Primal: Minimizar f (x) = x + x + x Dual: Maximizar g ( ) = 108 + 120
1 2 3 1 2

54 x1 + 52 x2 = 108 54 1 + 0 2 + 1 =1
2
5 x2 + 10 x3 = 120 5 1 + 5 2 + 2 = 1
3 9 3

x1 0, x2 0, x3 0 0 + 9 + = 1
1 10 2 3

1 0, 2 0, 3 0 ,

com soluo tima primal, x1 = 35, x2 = 200, x3 = 0 e soluo tima dual = (54 56 )T. A unida-
de da funo objetivo o peso das bobinas cortadas. Assim, F(108, 120) = 235 significa que 235
toneladas de bobinas so necessrias para atender a demanda de b1 = 108 e b2 = 120 toneladas
de sub-bobinas dos tipos 1 e 2 (lembre-se de que b = (108 120)T). Alm disso, F(108 + 1, 120) =
235 + 54 1 e F(108, 120 + 2) = 235 + 56 2. Portanto, cada tonelada a mais da sub-bobina do tipo
1 (comprimento 0,4m) necessita de 54 toneladas a mais de bobina para ser cortada, ou seja, 32 da
necessidade caso a alterao fosse da sub-bobina de tipo 2 (comprimento 0,3m). Dessa forma,
se possvel, mais interessante estimular a demanda de sub-bobinas do tipo 2 do que do tipo 1.
126 Pesquisa Operacional

Esta anlise vlida para as demandas b1= 108 e b2 = 120; para outros valores de demanda, a
anlise muda. Deve ficar claro para o leitor que esses valores representam tendncias e so vlidos
apenas para pequenas perturbaes na demanda.
Podemos determinar tambm, por exemplo, qual seria o valor de 2 que mantm essa tendn-
cia, ou seja, no provoca mudana na soluo tima, com 1 = 0, isto , mantendo-se fixa a de-
manda do item 1:
5 56
Como B 1 = 4 5
, ento:
0 3
35 54 56 0 35 56 2
1
x B = B (b + ) = x B + B = 1 +
5

= (2.41)
200 0 3 2
200 + 3 2
5

Portanto, para que a no-negatividade seja mantida, isto :


x1 = 35 56 2 0 e x 2 = 200 + 53 2 0
devemos ter 120 2 42. Para 2 = 42, a demanda do item 2 de 120 + 2 = 162 toneladas, a
soluo tima x1 = 0, x2 = 270 e x3 = 0 e o valor da funo objetivo fx = 270 toneladas. Em
relao soluo anterior, note que 35 toneladas a mais devem ser cortadas, porm, para aten-
der a um acrscimo de 42 toneladas na demanda (isto ocorre devido ao fato de o desperdcio no
padro de corte 2 ser nulo e, agora, somente ele ser necessrio para a produo dos itens deman-
dados). Para valores alm deste limite, 2 > 42 em (2.41), a soluo bsica deixa de ser factvel,
em particular, x1 < 0 (portanto, deixa de ser tima), de modo que as tendncias se alteram. De
modo semelhante, para 2 < 120, a soluo deixa de ser tima (em particular, a demanda 120
+ 2 < 0, portanto, o problema primal torna-se infactvel ou o dual ilimitado). A Figura 2.43 ilus-
tra perturbaes em b2 no espao dual.
Os vetores a2 e b + se alinham com 2 = 42 (o leitor pode verificar que 270a2 = b + ) quan-
do o problema dual tem mltiplas solues timas (a soluo primal degenerada, pois x1 = 0).
Para 2>42, a soluo dual = ( 54 56 ) T deixa de ser tima, a base tima passa a ser (a primeira
2 0
restrio deixa de ser ativa e a terceira torna-se ativa): B = [a 2 a3 ] = 53 9
e a soluo tima dual
5 10

Figura 2.43 Representao da variao do vetor de recursos no espao dual.


Captulo 2: Otimizao linear 127

x = ( 56 109 )T , o que significa que, se 2 > 42, ento a tendncia de mudana na funo objeti-
vo 109 por tonelada de sub-bobina do tipo 2 demandada, ou seja, para cada tonelada deman-
dada a mais da sub-bobina do tipo 2 h uma necessidade de se cortar 109 tonelada a mais em
bobinas (isso porque a nova soluo introduz um desperdcio). O leitor pode esboar o vetor b +
para valores em que 2 < 120 (para 2 = 120, note que os vetores a3 e b + ficam alinhados).
Neste caso, g( ) (o problema primal torna-se infactvel, j que b2 = 120 + 2 < 0). Podemos
representar em um grfico (Figura 2.44) o valor da funo objetivo em termos de 2.
n
comum que os pacotes comerciais de otimizao linear forneam os intervalos de variao
dos valores de bi, i = 1, 2, ..., m, que no alteram a otimalidade da base corrente. Esses intervalos
so dados por:
[bi + i bi + i ]
em que i e i so os limites mnimo e mximo para i. No Exemplo 2.45, os limites determina-
dos para 2 so: 2 = 120 , 2 = 42 , de modo que b2 pode ter qualquer valor no intervalo [0 162]
sem que a base deixe de ser tima. Alm disso, o valor de 2 = 56 fornece a taxa de variao na funo
objetivo com a variao de b2. Essa informao til para o decisor, que pode analisar at que ponto
um recurso pode ser alterado sem que as atividades relevantes para uma soluo particular sejam
alteradas e qual o impacto da alterao na funo objetivo. No exemplo de corte de peas, as ativi-
dades relevantes para a demanda b1 = 108 e b2 = 120 eram o corte de bobinas segundo os padres
1 e 2. Dessa forma, mantendo-se b1 = 108, qualquer que seja b2 no intervalo [0 162], esses padres per-
manecem utilizados. Se b2 > 162, ento as atividades (padres de corte) utilizadas so outras.

Perturbao nos custos

Considere que uma soluo bsica tima tenha sido encontrada para um problema de otimiza-
o linear. Deseja-se agora analisar o efeito da alterao de algum coeficiente da funo objeti-
vo, digamos, alterar ck para ck = ck + . Essa alterao no torna infactvel a soluo tima j
encontrada, porm esta pode deixar de ser uma soluo tima. A varivel xk pode ser bsica ou
no-bsica. Analisemos os dois casos.
A varivel xk no-bsica
Neste caso, o vetor cB no alterado, de modo que o vetor multiplicador simplex T = c TB B 1 as-
sociado partio bsica tima no se altera e apenas o custo relativo da varivel xk, que denota-
mos por ck , alterado:
ck = ck Ta k = (ck + ) Tak = ck + .

Figura 2.44 Mudana na funo objetivo com a alterao de b2.


128 Pesquisa Operacional

Isto , o novo custo relativo simplesmente alterado pela adio de (a quantidade que faz
variar o custo da varivel xk) ao antigo custo relativo. Assim, se ck = ck + 0, ento a altera-
o no custo no altera a soluo tima. Se ck = ck + < 0, ento a soluo deixa ser tima. O
mtodo simplex pode ser usado a partir da antiga soluo tima e a varivel xk entra na base.
Como ck 0 (pois a soluo bsica tima para o problema sem a alterao), vemos que neces-
sariamente < 0 para que a soluo tima se altere (isto , o custo da varivel xk deve diminuir
para que xk entre na base). Mais especificamente, se < ck , ento a varivel xk deve ser aumen-
tada para reduzir ainda mais a funo objetivo. Essa anlise pode ser empregada para estudo de
viabilidade econmica de um novo produto, como no Exemplo 2.46.

Exemplo 2.46 Considere o Exemplo 2.6, na Seo 2.2, do fabricante de geladeiras. Um novo
modelo superluxo est em estudo e deseja-se saber qual o lucro unitrio mnimo desse pro-
duto (definido como o preo de venda menos o custo do produto) que torna sua produo
vivel economicamente em relao aos demais produtos. O modelo matemtico com os pro-
dutos iniciais em sua forma padro e sua soluo tima so dados a seguir (ver tambm Exer-
ccio 2.10).
Maximizar f(xluxo, xbsico) = 100 xluxo + 50 xbsico

10 xluxo + 8 xbsico + x1 = 25.000


xluxo + xbsico + x2 = 4.500
xluxo + x3 = 1.500
xbsico + x4 = 6.000
xluxo 0, xbsico 0, xj 0, j = 1, ..., 4,

cuja base tima e as solues bsicas timas, primal e dual, so dadas por:

10 8 0 0 xluxo 1500 1 254


1 1 1 0 x 1250 0
B = [aluxo absico a2 a4 ] = , xB = basico = , = 2 = 75 .
1 0 0 0 x2 1750 3 2
x 4750 0
0 1 0 1 4 4

O modelo novo superluxo requer 16 homens-hora para ser montado, e compartilha a linha
de montagem com os demais modelos. Se definirmos a varivel xsluxo como a quantidade produ-
zida do novo modelo e lsluxo, o lucro unitrio, ento o modelo inicial alterado para (uma nova
coluna inserida):
Maximizar f(xluxo, xbsico, xluxo) = 100 xluxo + 50 xbsico + lsluxoxsluxo

10 xluxo + 8 xbsico + 16xsluxo + x1 = 25.000


xluxo + xbsico + xsluxo + x2 = 4.500
xluxo + x3 = 1.500
xbsico + x4 = 6.000
xluxo 0, xbsico 0, xj 0, j = 1, ..., 4
A varivel xsluxo economicamente vivel se pertencer base tima deste novo problema, ou
seja, se fizer parte do mix de produo. Caso contrrio, ser no-bsica e seu nvel de produo
ser nulo. Para isso, devemos calcular seu custo relativo, que deve ser no-negativo (problema de
maximizao):
Captulo 2: Otimizao linear 129

Custo relativo da varivel xsluxo:


16

1
lsluxo Tasluxo = lsluxo (254 0 75
2
0) = lsluxo 100 0.
0

0

Portanto, se lsluxo 100, ento o modelo novo superluxo vivel economicamente (em relao
aos demais produtos) e contribuir para o lucro da empresa se for produzido. Caso contrrio, a
empresa precisa aumentar seu preo no mercado ou reduzir seu custo unitrio de produo, de
modo que seu lucro unitrio resulte em lsluxo 100. Note que, para lsluxo = 100, o custo relativo
nulo, indicando que existem solues timas alternativas. n
Analisamos agora o caso em que o custo de uma varivel bsica alterado.

A varivel xk bsica
Como xk bsica, suponha que seja a r-sima varivel bsica: xBr = xk. Neste caso, cBr = cBr +
e o vetor multiplicador simplex associado base encontrada se altera por:
T = cBT B 1 = c TB B 1 + e Tr B 1 = T + eTr B 1 ,
em que er a r-sima coluna da matriz identidade mm. Portanto, os custos relativos de todas as
variveis devem ser recalculados como se segue:
c j = c j T a j = c j ( T + eTr B 1 )a j = (c j T a j ) e Tr B 1a j = c j e Tr y j .
123
yj

Como er a r-sima coluna da matriz identidade, ento o produto e y fornece o r-simo ele- T
r j
mento do vetor yj, denotado por yrj, de modo que o novo custo relativo dado por:
cj = c j yrj .
Neste caso, todos os custos relativos se alteram.

2.10.4* O mtodo dual simplex


O mtodo dual simplex uma aplicao do mtodo simplex ao problema dual. Um dos princi-
pais usos deste mtodo ocorre em reotimizaes de problemas de otimizao linear, quando, aps
o problema inicial ter sido resolvido, novas restries so adicionadas (problema novo). Se a so-
luo tima do problema original (j determinada) satisfaz as novas restries, ento ela tambm
tima para o problema novo. Caso contrrio, a soluo tima do problema original infactvel
para o problema novo, e uma reotimizao deste problema usando o mtodo simplex (Seo 2.6)
necessita da introduo de variveis artificiais (Fase I). Entretanto, do ponto de vista do proble-
ma dual, novas restries ao problema primal implicam novas variveis duais, de modo que a so-
luo dual no perde a factibilidade, porm pode deixar de ser tima. Mas a soluo tima do
problema dual original , em geral, uma boa soluo inicial para o problema dual novo. No Ca-
ptulo 3 otimizao discreta , vemos como introduzir novas restries para obter uma soluo
tima inteira. Neste caso, o uso do mtodo dual simplex para resolver o novo problema uma
boa alternativa a ser considerada.
Utilizamos um exemplo simples e uma abordagem geomtrica para deduzir o mtodo dual
simplex. Considere o par de problemas primal dual:
130 Pesquisa Operacional

Primal: Dual:
Minimizar f(x) = 2x1 + 3x2 + 2x3 + x4 Maximizar g( ) = 21 + 2
x1 + x2 + 2x3 x4 = 2 1 + 22 2
2x1 + x2 x3 =1 1 + 2 3
x1 0, x2 0, x3 0, x4 0 21 2 2
1 1
As colunas da matriz de restries do problema primal so denotadas por aj, j=1, 2, 3, 4,
as quais definem os coeficientes das restries do problema dual, aTj c j , j = 1, 2, 3, 4. Na Fi-
gura 2.45, apresentamos a resoluo grfica do problema dual.
Analisemos inicialmente o vrtice timo, obtido pela interseco das retas:
1 + 2 = 3 ( aT2 = c2 )
21 2 = 2 ( aT3 = c3 ),
cuja soluo : 1* = 53 , *2 = 43 e o valor da funo objetivo dual :
g ( * ) = b T * = 21* + *2 = 2 53 + 43 = 143 .
As demais restries duais so satisfeitas com desigualdades. Dizemos que as restries duais
2 e 3 so restries ativas e as restries duais 1 e 4 so inativas. A soluo tima primal tambm
pode ser obtida ao se observar que o vetor b uma combinao positiva das colunas a2 e a3 (ver
Figura 2.46).
O vetor b est no cone gerado pelos vetores a2 e a3, o que significa que b uma combinao
positiva dos vetores a2 e a3. De outra forma, o sistema linear a2x2 + a3x3 = b, ou seja,
1 2 x2 2
=
1 1 x3 1
tem soluo no-negativa x*2 = 43 , x*3 = 13 (que fornecem os mltiplos de a2 e a3 na Figura 2.46).
O valor da funo objetivo primal, considerando x1* = x*4 = 0 , dado por:
f(x*)= 2 x1* + 3 x2* + 2 x3* + x4* = 2 0 + 3 43 + 2 13 + 1 0 = 143 ,
o que coincide com g(*) (veja a propriedade 2.13).

Figura 2.45 Soluo grfica do problema dual.


Captulo 2: Otimizao linear 131

Esta soluo primal fornece a partio bsica tima do problema primal:


B = [a2 a3] e N = [a1 a4]
em que as colunas bsicas so formadas pelos coeficientes das restries ativas no dual. Note tam-
bm que as restries ativas (satisfeitas com a igualdade na soluo tima):
1 + 2 = 3 ( aT2 = c2 )
21 2 = 2 ( aT3 = c3 ),
podem ser escritas na forma matricial como:
BT = cB
cuja soluo = (B 1 ) T c B o vetor multiplicador simplex associado partio bsica tima (ver
a propriedade 2.14). Este exemplo simples nos sugere que:
O vrtice dual timo obtido de um conjunto de restries duais ativas aTi = ci , em que
ai a i-sima coluna da matriz A.
As colunas de A, associadas s restries duais ativas, definem uma base tima, a qual per-
mite determinar a soluo tima primal.
Analisemos agora um outro vrtice dual factvel, porm no timo, obtido pelas seguintes res-
tries ativas:
1 + 22 = 2 ( a1T = c1 )
1 + 2 = 3 ( aT2 = c2 ),
cuja soluo = 4 , = 5 e o valor da funo objetivo dual
1 3 2 3

g ( ) = b T = 21 + 3 = 2 43 + 53 = 133 .
Note na Figura 2.47 que o vetor b no est no cone gerado por a1 e a2, isto , b no uma com-
binao linear no-negativa de a1 e a2. Uma das variveis do sistema linear a1x1 + a2x2 = b ser ne-
gativa (na Figura 2.47 h indicaes de que a varivel x1 deve ser negativa). De fato, o sistema
1 1 x1 2
=
2 1 x2 1
fornece a soluo x1 = 13 , x 2 = 53 . Diferentemente da situao anterior, agora a partio bsica:
B = [a1 a2] e N = [a3 a4]
no primal factvel (isto , a soluo do sistema BxB = b x B = B 1b / 0).

Figura 2.46 O vetor b como combinao positiva dos gradientes das restries ativas.
132 Pesquisa Operacional

Note tambm que o vrtice a soluo do sistema BT = cB. No sendo um vrtice timo
dual, devemos procurar outro vrtice que seja melhor (isto , o valor da funo objetivo dual
maior). Para isso, perturbamos em uma direo de modo que leve a um outro vrtice me-
lhor. Pela Figura 2.48, podem ser observadas outras direes que levam a outros vrtices.
As direes 1 e 2 (chamadas direes dual simplex) permitem perturbar a soluo ao lon-
go das arestas da regio factvel dual. A Figura 2.48 ilustra a perturbao de na direo 1:
1, 0
= +
Para determinar a direo 1 (como tambm a direo 2), usamos uma estratgia para per-
turbar chamada estratgia dual simplex, dada por:
A restrio 1 deixa de ser ativa (apenas uma restrio torna-se inativa).
A restrio 2 permanece ativa (exceto uma, todas as demais permanecem ativas).

Figura 2.47 O vetor b no combinao positiva dos gradientes das restries ativas.

Figura 2.48 Direo dual simplex e soluo perturbada.


Captulo 2: Otimizao linear 133

Essa estratgia pode ser escrita como:

a1 = c1 , 0,
T

T
a 2 = c2 .
Em notao matricial:
a1T c1
T =
a 2 c2 0
e, denotando B = [a1 a2], cB = (c1 c2)T, e1 = (1 0)T, o sistema anterior reescrito como:
BT = cB e1
de modo que:
= (BT)1 cB (BT)1 e1 = + 1
em que 1 = (B1)Te1 chamada direo dual simplex.
A direo dual simplex 1 a primeira coluna de (B1)T ou, dito de outra forma, a trans-
posta da primeira linha de B1 multiplicada por 1. Analogamente, a direo dual simplex
2 = (B1)Te2 pode ser obtida pela estratgia dual simplex de manter ativa a primeira restrio e
inativa a segunda. Calculamos i, i=1, 2, para o exemplo anterior:
1 1 1 1

B = [a1 a 2 ] = e B1 = 2 3 3
1
2 1 3 3

Portanto, (1) (transposta da primeira linha de B1):

13 23
1 = 1 e 2 = 1 .
3 3

Propriedade 2.15 Considere uma partio bsica A = [B N], a soluo bsica primal associada
x B =B1b e a direo i definida por i = (B1)Tei. Ento, bTi = xBi .
A validade da propriedade vem da lgebra matricial:
bTi = bT((B1)Tei) = (B1b)Tei = x TB ei = xBi .
A propriedade 2.15 pode ser verificada no exemplo anterior:
13
b T 1 = ( 2 1) 1 = 13 = xB1
3
Consideremos agora a nova soluo dual = + 1, 0, e avaliemos a funo objetivo dual:

) = g( + 1) = bT( + 1) = bT + bT1
g(
= g( ) xB1 .
Para o exemplo anterior, em que g( ) = 133 , x1 = 13 segue-se que:
) = g( ) xB1 =
g( 13
3
+ 13 .
Vemos que a funo objetivo dual cresce quando cresce, ou seja, perturbar a soluo factvel
dual na direo 1 faz crescer a funo objetivo dual e a taxa de crescimento bT 1 = xB1 .
Adiante reescrevemos estas consideraes como uma propriedade geral. Antes, faamos uma re-
viso do que este exemplo simples nos sugere:
134 Pesquisa Operacional

Um vrtice dual factvel obtido por um conjunto de restries duais ativas, as quais de-
finem uma partio na matriz A: A=[B N], em que as colunas em B definem as restries
duais ativas.
Se a soluo bsica primal x B = B1b, associada partio bsica for no-negativa (isto , o
vetor b est no cone gerado pelas colunas bsicas, que, em outras palavras, significa que a
soluo bsica primal associada uma soluo factvel para o problema primal), ento a so-
luo tima dual.
Se no, isto , se x B tiver algum componente negativo, digamos, xBl < 0, ento uma es-
tratgia simples, chamada estratgia dual simplex, permite perturbar a soluo para en-
contrar uma nova soluo melhor.
A estratgia dual simplex leva a uma direo que a transposta da l-sima linha de B1 mul-
tiplicado por 1, que denotamos por l , que fornece uma forma de perturbar a soluo
dual , ou seja, = + l , que faz a funo objetivo dual crescer taxa de xBl .
Estudamos, a seguir, como determinar o passo e obter um novo vrtice com valor maior para
a funo objetivo dual. Antes, generalizamos o procedimento que o exemplo anterior sugere.
Considere uma partio bsica sobre as colunas da matriz A: A = [B N]. Cada coluna da ma-
triz A fornece uma restrio do problema dual e, portanto, a partio bsica fornece uma orga-
nizao nas restries duais (lembre-se que a partio bsica tambm fornece uma organizao
nas variveis primais):
B T c B restries bsicas
AT c T
N c N restries no-bsicas
As restries bsicas so as restries ativas no exemplo anterior, responsveis pela determina-
o do vrtice (reveja as Figuras 2.46 e 2.47).

Definio 2.13 (soluo bsica dual) Considere uma partio bsica A = [B N]. Chamamos de so-
luo bsica dual, associada partio bsica, a soluo do sistema B T = c B (a qual denotamos
por = (B 1 ) T c B , que algumas vezes preferimos sua forma transposta T = c TB B 1 ). Se as demais
restries duais (isto , as restries no-bsicas) so satisfeitas, ou seja, N T c N , ento uma
soluo bsica dual factvel.
A notao introduzida na Seo 2.6.1 utilizada quando necessria e define os conjuntos de
ndices bsicos e no-bsicos:
B= , N = [a N1 a N 2 K a N n-m ] , cB = (cB1 cB2 K cBm ) , cN = (cN1 cN2 K cNn-m )
T T

Observaes:
(i) Uma soluo bsica dual factvel corresponde a um vrtice da regio factvel dual, como
sugere o exemplo anterior (esta propriedade vlida em geral).
(ii) A soluo bsica dual T = c TB B 1 o conhecido vetor multiplicador simplex associado a
uma partio bsica e os custos relativos das variveis no-bsicas so: cN j = cN j T a N j .
(iii) A factibilidade dual: N T c N (isto , a N j cN j , j = 1, ..., n m) equivalente a:
T

cN j = cN j a N j 0 , j = 1, ..., n m, ou seja, os custos relativos so no-negativos. Por-


T

tanto, a condio de otimalidade (ver propriedade 2.3) satisfeita.


(iv) O mtodo simplex (Seo 2.6) trabalha com a soluo bsica primal factvel, isto ,
x B = B1b 0 e admite algum custo relativo negativo cN j = cN j Ta < 0 , o que significa
Nj
que a restrio dual a N j cN j est violada. Quando todos os custos relativos so no-ne-
T

gativos (ver (iii)), a soluo bsica dual factvel e o mtodo simplex pra: a soluo ti-
ma primal encontrada.
Captulo 2: Otimizao linear 135

(v) A factibilidade da soluo bsica dual verificada pelos custos relativos no-negativos (veja
(iii)), mas no exige que a soluo bsica primal x B = B1b seja factvel. Ou seja, possvel
que xBl < 0. Neste caso (j sugerido pelo exemplo anterior), a soluo dual no tima
e possvel aumentar a funo objetivo dual.

Propriedade 2.16 (condio de otimalidade dual) Considere uma partio bsica A=[B N] em
que a soluo bsica dual associada = (B 1 ) T c factvel. Se x =B1b0 (isto , a soluo
B B
bsica primal associada factvel), ento e x B resolvem o problema dual e primal, respecti-
vamente.
A propriedade 2.16 uma maneira alternativa e conveniente de escrever a condio de
otimalidade primal (propriedade 2.3). Estamos prontos para descrever o mtodo dual simplex.
Considere uma partio bsica A = [B N] em que a soluo bsica dual associada = (B 1 ) T c B
factvel (isto , as restries bsicas so ativas, ou seja, aTBi = cBi , i = 1,...,m e as restries no-
bsicas so inativas, ou seja, a TN j cN j , j = 1,...,n m ). Suponha que a soluo bsica primal
)
x B = B1b / 0, isto , no factvel. Existe, portanto, pelo menos um ndice bsico l tal que xB l < 0
(caso contrrio, x B 0 e uma soluo tima). Uma estratgia de perturbar que faz aumen-
tar a funo objetivo dual dada a seguir.

Estratgia dual simplex (considere xBl < 0):

a TBl = cBl , 0
T
a Bi = cBi i = 1,K, m, i l , (2.42)

isto , uma nova soluo dual obtida (a qual depende de ), mantendo-se ativas todas as res-
tries duais, exceto a l -sima restrio que se torna inativa, a TB l = cB l , que menor ou igual
a cB l para todo 0.
A estratgia dual simplex pode ser expressa matricialmente por:
BT = cB e l ,
em que e l a l -sima coluna da matriz identidade e do que se segue:
= (BT)1 cB (BT)1 e l .
Definindo
l = (B1)T e l ,
chamada direo dual simplex, temos:
= + l . (2.43)
Note que a direo dual simplex l pode ser obtida pela resoluo do sistema de equaes li-
neares:
BT l = e l . (2.44)
A funo objetivo para essa soluo perturbada vale:
) = g( + l ) = bT( + l ) = bT + bT l
g(
= g( ) x Bl (2.45)
de modo que a funo objetivo dual cresce linearmente taxa de xBl > 0. A Figura 2.49 ilustra
a variao da funo objetivo quando a soluo bsica dual perturbada pela estratgia dual
simplex.
Portanto, quanto maior o valor de , maior o valor da funo dual. Determinemos agora at
que ponto podemos aumentar o valor de .
136 Pesquisa Operacional

Figura 2.49 Variao da funo objetivo dual com a estratgia dual simplex.

Tamanho do passo

Todas as restries duais so satisfeitas e devem continuar satisfeitas. Dividimos a anlise em dois
casos: restries bsicas e restries no-bsicas.
Restries duais bsicas: BT cB
Por construo, a estratgia dual simplex no viola as restries bsicas:
BT = cB ek cB, para todo 0,
e, portanto, o passo no limitado pelas restries bsicas.

Restries duais no-bsicas: NT cN


Analisemos cada uma das restries no-bsicas: a N j cN j , j = 1, ..., n m. Substituindo
T

(2.43) nas restries no-bsicas, segue-se que:


T a N j c N j ( + l ) T a N j c N j T a N j + Tl a N j c N j . (2.46)
Como, por hiptese, a soluo dual factvel, ento a c . Assim, se a 0, j = 1,
T T
Nj Nj l Nj
..., n m, ento a desigualdade em (2.46) ser sempre satisfeita para todo 0 e a funo dual
cresce indefinidamente (o problema dual no tem soluo tima). Neste caso, o problema primal
infactvel (ver propriedade 2.9).
Por outro lado, se Tl a N j > 0, ento limitado superiormente e segue de (2.46) que:
c N j T a N j c N j
= .
aNj
T
l Tl a N j
O numerador anterior cN j o custo relativo da varivel xN j . Portanto, o maior valor possvel
para o passo :
c N k c N j
= = mnimo T tal que Tl a N j > 0 . (2.47)
Tl a N k j =1,..., n m
l a N j
Com este valor para o passo, a k-sima restrio no-bsica (inativa em ) torna-se ativa na
nova soluo = + l , juntamente com todas as restries bsicas, exceto a l -sima, que dei-
xou de ser ativa: a TB l = c B l , conforme a estratgia dual simplex (2.42), isto :
aTNk = cNk
T (2.48)
a Bi = cBi , i = 1, ..., m, i l
Captulo 2: Otimizao linear 137

Com isso, m restries duais so ativas em = + l (satisfeitas com igualdade, reveja as Fi-
guras 2.46 e 2.47). Reescrevendo o sistema (2.48) em forma matricial, segue que (substitumos a
nova restrio dual ativa na posio daquela que deixou de ser ativa):
a TB cB
1
1

M M
T
a N k = c N k l
M M

a Bm
T
cBm
{ {
(B )T c B

Assim, definindo-se a matriz B como sendo a matriz B, exceto pela coluna l (isto , a Bl ), que
trocada pela coluna a N k , e cB como sendo cB exceto pelo componente l (isto , cBl ), que tro-
cado por c N k :
cB

1

M
B = [a B1 L a Nk L a Bm ] e cB = cNk l-simo componente

l sima coluna M
c
Bm
e o sistema (2.48) reescrito como (B x )Tx = cB. A matriz Bx invertvel, de modo que A = [Bx Nx ]
uma partio bsica, em que N x coincide com N, exceto pela k-sima coluna (isto , a N k ) que
trocada por a B l . Esta a propriedade 2.4 e os passos para mostrar sua validade esto no exerc-
cio 2.25. Portanto, temos uma nova soluo bsica dual (novo vrtice dual): = + l , para o
qual a funo objetivo dual maior ou igual soluo (ver 2.45):
g(x ) = g( ) x Bl g( ).
A desigualdade anterior ser estrita se > 0 em (2.47). Com a nova partio bsica, podemos
repetir o procedimento anterior, isto , calculamos a soluo bsica primal B x xB =b, e, se xB / 0,
ento aplicamos a estratgia dual simplex para obter uma nova soluo bsica melhor e, assim,
sucessivamente, at que a soluo bsica primal seja factvel, ou a infactibilidade primal seja de-
tectada (isto , passo dual infinito). Este procedimento consiste no mtodo dual simplex, que
resumido a seguir.

2.10.5* O algoritmo dual simplex


Considere um problema de otimizao linear escrito na forma padro. Resumimos agora o pro-
cedimento desenvolvido na seo anterior, o qual pressupe uma soluo bsica dual factvel.
A questo de como determinar uma soluo bsica factvel inicial ser discutida nos exemplos
da prxima seo. O mtodo dual simplex, propriamente dito, o que chamamos a seguir de
Fase II.
Fase I:
Determine inicialmente uma partio bsica dual factvel: A = [B, N]. A rigor, precisamos
de dois vetores, de ndices bsicos e no-bsicos:
(B1, B2, ..., Bm) e (N1, N2, ..., Nn-m).
Faa iterao = 1.
138 Pesquisa Operacional

Fase II:
{incio da iterao dual simplex}
Passo 1: {clculo da soluo bsica dual e custos relativos}
= cTB B 1 (ou equivalentemente, resolva o sistema: BT = cB)
c N j = c N j T a N j j = 1, ..., n m
Passo 2: {teste de otimalidade}
2.1) {clculo da soluo bsica primal}
x B = B 1b (ou equivalentemente, resolva o sistema: BxB = b)
2.2) {determinao da varivel a sair da base}
x Bl = mnimo{x Bi , i = 1, ..., m}
Se x Bl 0, ento pare {a soluo na iterao atual tima}
Passo 3: {clculo da direo dual simplex}
l = (B 1 ) T e l (ou equivalentemente, resolva o sistema: B T l = e l )
Passo 4: {determinao do passo e varivel a entrar na base}
Se l a N j 0, j = 1, ..., n m, ento pare. {o problema primal infactvel}
T

caso contrrio, determine


c N k c N
= = mnimo T j tal que Tl a N j > 0
Tl a N k j =1,..., n m
l a N j
(a varivel xNk entra na base)
Passo 5: {atualizao: nova partio bsica, troque a l -sima coluna de B pela k-sima coluna de N}
nova matriz bsica: B = [a B1 L, a Bl1 , a Nk , a Bl+1 L, a Bm ]
nova matriz no-bsica: N = [a N1 L , a Nk 1 , a Bl , a Nk +1 L , a Nnm ]
iterao = iterao + 1
Retorne ao passo 1
{fim da iterao dual simplex}

Exemplo 2.47 Considere o seguinte problema de otimizao linear e a forma padro equivalente
com a introduo das variveis de folga. Resolvemos este problema usando o mtodo dual simplex.
Primal:
Minimizar f(x) = x1 + x2 Minimizar f(x) = x1 + x2

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

Dual:
Maximizar g(
) = 4 1 + 32
21 + 2 1
1 + 3 2 1
1 0, 2 0
Captulo 2: Otimizao linear 139

Note que = (0 0)T uma soluo dual factvel e as restries duais decorrentes das colunas
das variveis de folga so ativas, isto , 1 0, 2 0 so satisfeitas com igualdade. Isso define
uma partio bsica dual factvel, na qual as variveis bsicas so as variveis de folga do proble-
ma primal. Esta propriedade vlida para uma classe de problemas de otimizao linear que tm
duas caractersticas: i) os coeficientes da funo objetivo, a ser minimizada, so positivos (ver o
lado direito das restries duais); e ii) as restries so de desigualdade, de modo que as vari-
veis de folga introduzem uma matriz bsica (ver Exerccio 2.33). Desse modo, a Fase I, que con-
siste em encontrar uma partio bsica dual factvel para iniciar o mtodo dual simplex,
contornada, bastando escolher como variveis bsicas (que definem as restries ativas) as vari-
veis de folga x3 e x4.

1a Iterao: partio bsica: B1 = 3, B2 = 4, N1 = 1, N2 = 2


1 0 2 1
B = [a3 a4] = N = [a1 a2] = cB = (0 0)T cN = (1 1)T
0 1 1 3
Passo 1 {Clculo da soluo bsica dual e custos relativos}
BT = cB, cuja soluo : = (0 0)T
2
c1 = c1 T a1 = 1 (0 0) = 1
1
1
c2 = c2 T a 2 = 1 (0 0) = 1
3
Passo 2 {teste de otimalidade}
2.1. {clculo da soluo bsica primal}
x 4
BxB = b, cuja soluo : x B = 3 =
x4 3
2.2. {determinao da varivel a sair da base}
a varivel bsica xB1 = x3 a mais negativa e escolhida para sair da base ( l = 1).

Passo 3 {clculo da direo dual simplex}


1
B T 1 = e1 , cuja soluo : 1 =
0
Passo 4 {determinao do passo e varivel a entrar na base}
Calculamos inicialmente: l a N j , j = 1, ..., n m
T

2
N1 = 1: 1T a 1 = (1 0) = 2
1
1
N2 = 2: 1T a1 = (1 0) = 1
3

c
= T1 = mnimo { 12 , 11 } = 12 (a varivel xN1 = x1 entra na base)
1 a1
Passo 5 {atualizao: nova partio bsica, troque a l -sima coluna de B pela k-sima coluna de N}:
x3 sai da base e x1 entra na base.
B1 = 1, B2 = 4, N1 = 3, N2 = 2
140 Pesquisa Operacional

2a Iterao: partio bsica: B1 = 1, B2 = 4, N1 = 3, N2 = 2


2 0 1 1
B = [a1 a4] = 1 1 N = [a3 a2] = 0 3 cB = (1 0)T cN = (0 1)T

Passo 1 {soluo bsica dual e custos relativos}


2 1 1
BT = cB: 0 1 0 , cuja soluo : = ( 12 0)T

1
c3 = c3 T a3 = 0 ( 12 0) = 12
0
1
c2 = c2 T a 2 = 1 ( 12 0) = 12
3
Passo 2 {teste de otimalidade}
2.1. {soluo bsica primal}
2 0 4 x 2
BxB = b: 1 1 3 , cuja soluo : x B = 1 =
x4 1
2.2. a varivel bsica xB 2 = x4 a mais negativa e escolhida para sair da base ( l = 2 )
Passo 3 {direo dual simplex}
2 1 0 12
:
B 2 = e 2 0 1 1
T , cuja soluo : 2 = 1

Passo 4 {passo e varivel a entrar na base}


calculamos inicialmente: l a N j , j = 1, ..., n m
T

1
N1 = 3: T2 a 3 = ( 12 1) = 12
0
1
N2 = 2: T2 a 2 = ( 12 1) = 52
3

c 1 1

= T 2 = mnimo 12 , 2
=
1
(a varivel xN 2 = x2 entra na base)
2 a2 5 5
2 2
Passo 5 {atualizao: x3 sai da base e x1 entra na base}
B1 = 1, B2 = 2, N1 = 3, N2 = 4

3a Iterao: partio bsica: B1 = 1, B2 = 2, N1 = 3, N2 = 4


2 1 1 0
B = [a1 a2] = 1 3 N = [a3 a4] = 0 1 cB = (1 1)T cN = (0 0)T

Passo 1 {soluo bsica dual e custos relativos}


2 1 1
BT = cB: 1 3 1 , cuja soluo : = ( 52 )
1 T
5
Captulo 2: Otimizao linear 141

1
c3 = c3 T a3 = 0 ( 52 1
5 ) 0 = 2
5

0
c4 = c4 T a 4 = 0 ( 52 1
5 ) 1 = 1
5

Passo 2 {teste de otimalidade}


2.1. {soluo bsica primal}

2 1 4 x1 5 9
BxB = b: , cuja soluo : x B = = 2
1 3 3 x2 5
2.2. como a soluo bsica primal factvel, ento a soluo tima. Pare.
Soluo tima primal: Soluo tima dual:
x1* 95
x* 2
2* = 5 1* 52
x3 0 * = 1
x* 0 2 5
4
f(x*) = x1* + x*2 = 9
5
+ 52 = 11
5
g(*) = 4 *1 + 3*2 = 4 52 + 3 15 = 11
5

As solues percorridas no espao de solues do problema dual podem ser visualizadas na


Figura 2.50.

Figura 2.50 A trajetria do mtodo dual simplex.


142 Pesquisa Operacional

O caminho percorrido foi da soluo 1 = [0 0]T para a soluo factvel 2 = ( 12 0)T, at che-
gar soluo factvel tima * = ( 52 15 )T. Ver o Exerccio 2.32 para a trajetria no plano primal.
n

2.10.6* Reotimizao aps a incluso de novas restries


Uma das principais aplicaes do mtodo dual simplex consiste em resolver problemas cujas so-
lues timas se tornaram infactveis depois que novas restries so includas. No Captulo 3 de
otimizao discreta, veremos uma situao em que novas restries so geradas para eliminar as
solues que no sejam inteiras. Considere que o problema de otimizao linear e seu dual (de-
nominados problemas originais):
Minimizar f(x) = cTx Maximizar g( ) = bT
Ax = b AT c,
x0
tenham sido resolvidos e A = [B N] uma partio bsica tima, qual esto associadas as so-
lues bsicas factveis primal e dual:
soluo bsica primal: x B = B1b, x N = 0,
soluo bsica dual: = (B1)TcB .
A soluo primal factvel, portanto: x B 0, e a soluo bsica dual factvel, assim
c N = cN NT 0 ou, de forma equivalente, N T cN . Alm disso, como essas solues so ti-
mas, ento f (x) = g ( ) .
Suponha que uma nova restrio seja includa no modelo:
uTx
de modo que o problema primal torna-se mais restrito e seu dual mais relaxado, no sentido que
vemos a seguir (denominados problemas modificados):
Minimizar f(x) = cTx Maximizar g( , m+1) = bT + m+1
Ax + 0xn+1 = b AT + um+1 c
uTx + xn+1 = 0T + m+1 0
x 0, xn+1 0
em que xn+1 a varivel de folga e m+1 a varivel dual associada nova restrio.
Com a incluso da nova restrio, o problema primal tem m + 1 restries (ver Figura 2.51),
de modo que uma base para o problema primal modificado deve ter dimenso (m + 1)(m + 1).
Determinamos a seguir uma base dual factvel e, para isso, identificamos uma soluo dual factvel
e m + 1 restries ativas.
A soluo dual tima do problema original , e m+1 = 0, fornecem uma soluo dual factvel
para o problema dual modificado. De fato, basta observar que satisfaz as restries duais do
problema original AT c. Na verdade, qualquer soluo dual factvel para o problema dual ori-
ginal, e m+1 = 0, fornecem uma soluo dual factvel para o dual modificado. Nesse sentido, o
problema dual modificado uma relaxao do problema dual original. Alm disso, a soluo ( ,0)
do problema dual modificado satisfaz com igualdade as restries bsicas duais (restries ativas)
BT = cB, bem como a nova restrio dual que surge devido coluna da varivel de folga no
primal modificado, m+1 = 0. Com isso, identificamos m + 1 restries duais ativas em ( ,0), isto
, ( ,0) a soluo do sistema:
BT u B c B
=
0 1 m +1 0
Captulo 2: Otimizao linear 143

Figura 2.51 Incluso de restrio adicional.

(adotamos a mesma notao anterior, uT = ( u TB uTN ), em que u TB o vetor dos coeficientes de xB na


nova restrio, como tambm os coeficientes de m+1 nas restries duais bsicas do problema mo-
dificado). Essas restries ativas definem uma partio bsica para o problema primal modificado:
B 0 x B b
=
u
B 1 x n +1 v ,

cuja soluo dada por:


x B = B 1b , xn +1 = v u BT x B .
Como x B 0 ( a soluo tima do problema original) e, portanto, se xn +1 = v u TB x B 0, en-
to a soluo anterior a soluo factvel do problema modificado, com x N = 0. Note que a
no-negatividade da varivel de folga da nova restrio significa que a soluo tima do pro-
blema primal original (x B x N) no viola a nova restrio: u BT x B + u TN x N v . Neste caso, temos uma
soluo primal factvel e outra dual factvel, e as funes objetivos primal e dual tm o mes-
mo valor f (x , xm +1 ) = g ( , m +1 ) e, conseqentemente, so solues timas.
Por outro lado, se xn +1 < 0, ento a soluo bsica primal no factvel (a nova restrio
violada: u TB x B + u TN x N > v ) e podemos aplicar o mtodo dual simplex a partir da soluo bsi-
ca dual factvel. Tipicamente, poucas iteraes do mtodo dual simplex so necessrias para
se obter a soluo tima do problema modificado.

Exemplo 2.48 Considere o problema de otimizao linear, bem como sua forma padro:
Minimizar f(x) = 5x1 + x2 Minimizar f(x) = 5x1 + x2 + 0x3 + 0x4
7x1 5x2 13 7x1 5x2 + 1x3 + 0x4 = 13
3x1 + 2x2 17 3x1 + 2x2 + 0x3 +1x4 = 17
x1 0, x2 0 x1 0, x2 0, x3 0, x4 0
cuja soluo tima pode ser obtida na Figura 2.52.
A partio bsica tima dada por (graficamente: x1 > 0, x2 > 0, x3 = 0, x4 = 0):
144 Pesquisa Operacional

7 5 1 0
B = [a1 a2] = 3 2 e N = [a3 a4] = 0 1

e as solues bsicas timas, primal e dual, so:
7 5 13 111
29
BxB = b: 3 2 , cuja soluo :
x = 80
17 B
29

7 3 5 13
29
B = cB:
T
, cuja soluo : =

18 .
5 2 1 29

Os custos relativos das variveis no-bsicas (N1 = 3, N2 = 4) so:

18 13
T 1
c3 = c3 a3 = 0 ( 29 29 ) = 29
13

0
T 0 18
c4 = c4 a 4 = 0 ( 29 29 ) = 29
13 18

1
Suponha agora que o problema modificado seja obtido pela incluso da restrio: x1 3 , isto ,
x1 + 0x2 + 0x3 + 0x4 3
de modo que o vetor u dado por: uT = (1 0 0 0), bem como a partio u TB = (1 0) e uTN =
(0 0). O problema primal modificado (variveis de folga includas) :
Minimizar f(x) = 5x1 + x2 + 0x3 + 0x4 + 0x5
7x1 5x2 + 1x3 + 0x4 + 0x5 = 13
3x1 + 2x2 + 0x3 + 1x4 + 0x5 = 17
x1 + 0x2 + 0x3 + 0x4 + 1x5 = 3 restrio adicional
x1 0, x2 0, x3 0, x4 0, x5 0
A partio bsica dual factvel tem os ndices bsicos dados por:
B1 = 1, B2 = 2 e B3 = 5

Figura 2.52 Incluso de restrio adicional x1 3.


Captulo 2: Otimizao linear 145

isto , os ndices bsicos da soluo anterior e o ndice da varivel de folga da restrio adicio-
nal. A matriz bsica dada por:
7 5 0
B 0
u = 3 2 0
B 1
1 0 1
As solues bsicas, primal e dual, so obtidas diretamente da soluo anterior:

x1 111
29
x B 80

Primal: = x2 = 29 , em que x B o vetor das variveis bsicas na soluo tima
xn +1 24
x5 29
primal anterior e x5 obtido diretamente da restrio adicional, x5 = 3 x1. As variveis no-
bsicas so as mesmas da soluo anterior: xN = (x3 x4)T.
Dual: ( T 0) = ( 13
29
18
29
0) , em que a soluo tima dual anterior, aumentada de
3 = 0. Os custos relativos so os mesmos da soluo anterior.
Aplicamos agora o mtodo dual simplex a partir desta partio bsica dual factvel.
Mtodo dual simplex:
1a Iterao: partio bsica: B1 = 1, B2 = 2, B3 = 5, N1 = 3, N2 = 4
7 5 0 1 0
B = 3 2 0 N = 0 1
1 0 1 0 0
Passo 1 {soluo bsica dual e custos relativos}
( T 0) = ( 13 29
18
29
0)
1
c3 = c3 T a3 = 0 ( 13 18
0) 0 = 13
29 29
29
0
0
c4 = c4 a 4 = 0 (
T 13
18
0) 1 = 18
29 29
29
0
Passo 2 {teste de otimalidade}
2.1. {soluo bsica primal}
x1 111
29

x B = x2 = 29 80

x5 24
29

2.2. a varivel bsica xB3 = x5 negativa e escolhida para sair da base ( l = 3 ).


Passo 3 {direo dual simplex}
7 3 1 0 292
[
]
B l = e l : B e l = 5 2 0 0 , cuja soluo : l = 295
T T

0 0 1 1 1
Passo 4 {tamanho do passo e varivel a entrar na base}
calculamos inicialmente: l a N j , j = 1, ..., n m
T
146 Pesquisa Operacional

1
N1 = 3: a 3 =T
3 ( 2
29
5
29 1) 0 = 292

0
0
N2 = 4: a 4 =T
3 ( 2
29
5
29 1) 1 = 295

0
c 13 18
18
= T 4 = mnimo 292 , = 5 (a varivel xN 2 = x4 entra na base)
29

3 a 4 j =1,...,n m 29 5
29
Passo 5 {atualizao: x5 sai da base e x4 entra na base}
matriz bsica: B = [a1 a2 a4]
matriz no-bsica: N = [a3 a5]

2a Iterao: partio bsica: B1 = 1, B2 = 2, B3 = 4, N1 = 3, N2 = 5

7 5 0 1 0
B = 3 2 1 N = 0 0
1 0 0 0 1

Passo 1 {soluo bsica dual e custos relativos}

7 3 1 5

B =cB: 5 2 0 1 , cuja soluo : T = 15
T
( 0 185 )
0 1 0 0

1
c3 = c3 T a3 = 0 ( 15 0 18
5 ) 0 = 15
0
0
c5 = c5 a5 = 0 ( 15
T
0 185 ) 0 = 185

1
Passo 2 {teste de otimalidade}
2.1. {soluo bsica primal}
7 5 0 13 x1 3

BxB=b: 3 2 1 17 , cuja soluo : x B = x2 = 85


1 0 0 3 x4 245

2.2. a soluo bsica primal factvel, portanto, tima. Pare.
n

2.11 OTIMIZAO LINEAR EM TEORIA DE JOGOS


A teoria de jogos trata de situaes de tomada de decises nas quais jogadores (adversrios) tm
objetivos conflitantes e o resultado depende da combinao de estratgias escolhidas pelos joga-
Captulo 2: Otimizao linear 147

dores. Alm de jogos de salo, exemplos de aplicao incluem campanhas de marketing e polti-
cas de preos de produtos (os jogadores so empresas que disputam mercados para vender seus
produtos), campanhas de eleies polticas (os jogadores so candidatos que disputam eleitores
para receber mais votos), programao de programas de televiso (os jogadores so redes de te-
leviso que disputam espectadores para obter maior audincia), planejamento de estratgias mi-
litares de guerra (os jogadores so exrcitos adversrios). A teoria de jogos, em geral, admite que
todos os jogadores so racionais e igualmente informados e tentam agir da melhor maneira pos-
svel para obter vantagens em relao a seus oponentes. Essas situaes so diferentes daquelas
em que o tomador de decises est disputando um jogo com um adversrio passivo, a natureza,
que escolhe suas estratgias de maneira aleatria.
Um caso especial o jogo em que dois jogadores A e B tm um nmero finito de estratgias:
as estratgias A1, A2, ..., Am para o jogador A e as estratgias B1, B2, ..., Bn para o jogador B. Para
cada par (Ai, Bj) de estratgias escolhidas pelos jogadores A e B, o jogador A ganha aij unidades
do jogador B (isto , o jogador B perde aij unidades para o jogador A). Ou seja, se o jogador A
escolher a estratgia Ai e o jogador B escolher a estratgia Bj, ento seus ganhos so aij e aij, res-
pectivamente. Tal jogo conhecido como jogo de duas pessoas soma-zero, porque o ganho do jo-
gador A igual perda do jogador B e vice-versa. Supe-se que os dois jogadores conhecem todas
as estratgias A1, A2, ..., Am e B1, B2, ..., Bn e a tabela de ganhos {aij}, e que cada jogador escolhe
simultaneamente uma estratgia sem saber a escolha do outro.
A soluo tima do jogo consiste em escolher uma estratgia para cada jogador, tal que qual-
quer mudana nas estratgias escolhidas no melhore os ganhos dos dois jogadores (ponto de
equilbrio). Essa escolha pode ter a forma de uma estratgia pura, por exemplo, a estratgia Ai
para o jogador A e a estratgia Bj para o jogador B, ou a forma de uma estratgia mista (uma com-
binao de estratgias) para cada jogador de acordo com probabilidades predeterminadas, por
exemplo:
A estratgia A1 com probabilidade x1, a estratgia A2 com probabilidade x2, ..., a estratgia
Am com probabilidade xm, para o jogador A (x1 + x2 + ... + xm = 1).
A estratgia B1 com probabilidade y1, a estratgia B2 com probabilidade y2, ..., a estratgia
Bn com probabilidade yn, para o jogador B (y1 + y2 + ... + yn = 1).
As estratgias puras Ai e Bj acima podem ser vistas como casos particulares de estratgias mistas
quando xi = 1 e yj = 1, respectivamente (os demais x e y so iguais a 0). No caso de estratgias
mistas, quando disputando o jogo, cada jogador sorteia uma de suas estratgias puras para jo-
gar, de acordo com as probabilidades xs e ys.

Exemplo 2.4929 Duas empresas A e B fabricam um produto que compete no mesmo mercado. As duas
empresas podem fazer propagandas de vendas no rdio (estratgias A1 e B1), no jornal (estrat-
gias A2 e B2) e na televiso (estratgias A3 e B3). Neste exemplo, m = n = 3, mas poderiam ser di-
ferentes. A Tabela 2.27 apresenta a fatia do mercado (valores {aij} em percentuais) que as empresas
esperam ganhar ou perder, uma da outra, para cada par (Ai, Bj) de estratgias escolhidas (valo-
res positivos de aij indicam ganhos para a empresa A e perdas para a empresa B, e vice-versa).
Note, na Tabela 2.27, que, se a empresa A escolhe a estratgia pura A1, ento, independente-
mente da escolha que a empresa B fizer (B1, B2 ou B3), o pior que pode acontecer empresa A
perder 3% do mercado para a empresa B (isto , min {3, 1, 3} = 3, de acordo com a linha A1
da tabela). De modo semelhante, se a empresa A escolhe as estratgias puras A2 ou A3, o pior que
pode acontecer ela perder 2% ou 6% do mercado para a empresa B, respectivamente (isto ,
min {2, 4, 1} = 2 e min {5, 6, 2} = 6, de acordo com as linhas A2 e A3 da tabela). Logo, o

29 Este exemplo baseado em um exemplo apresentado em Taha (2003).


148 Pesquisa Operacional

Tabela 2.27
Fatia de mercado que as empresas A e B esperam ganhar ou perder.

B1 B2 B3

A1 3 1 3

A2 2 4 1

A3 5 6 2

melhor dos piores (critrio maxmin) para a empresa A escolher a estratgia pura A2 com perda
de 2%, isto :
max {min {3, 1, 3}, min {2, 4, 1}, min {5, 6, 2}} = max {3, 2, 6} = 2
Seguindo o mesmo raciocnio, se a empresa B escolhe a estratgia pura B1, ento, indepen-
dentemente da escolha que a empresa A fizer (A1, A2 ou A3), o pior que pode acontecer empre-
sa B perder 3% do mercado para a empresa A (isto , max {3, 2, 5} = 3, de acordo com a coluna
B1 da Tabela 2.27). De modo semelhante, se a empresa B escolhe as estratgias puras B2 ou B3,
ela perde 4% ou 2% do mercado para a empresa A, respectivamente (isto , max {1, 4, 6} = 4 e
max {3, 1, 2} = 2, de acordo com as colunas B2 e B3 da tabela). Logo, o melhor dos piores (cri-
trio minmax) para a empresa B escolher a estratgia pura B3 com perda de 2%, isto :
min {max {3, 2, 5}, max {1, 4, 6}, max {3, 1, 2}} = min {3, 4, 2} = 2
Como os valores obtidos pela melhor estratgia pura para a empresa A (2 pelo critrio
maxmin) e pela melhor estratgia pura para a empresa B (2 pelo critrio minmax) so diferen-
tes, a soluo tima do jogo uma estratgia mista para cada empresa, com valor entre 2 e 2
(se estes valores fossem iguais, este seria o valor do jogo, correspondendo a um ponto de sela).
A melhor estratgia mista para a empresa A (com probabilidades x1, x2 e x3, a serem determina-
das, de escolher as estratgias A1, A2 e A3, respectivamente) escolher o melhor dos piores (cri-
trio maxmin), independentemente da escolha da empresa B. Para isso, deve-se procurar valores
de x1, x2 e x3 que maximizem o mnimo entre:
3x1 2x2 5x3 (se a empresa B escolher a estratgia B1)
1x1 + 4x2 6x3 (se a empresa B escolher a estratgia B2)
3x1 1x2 + 2x3 (se a empresa B escolher a estratgia B3)
ou seja,
max ( x1 , x 2 , x3 ) {min {3x1 2x2 5x3, 1x1 + 4x2 6x3, 3x1 1x2 + 2x3}}
O primeiro termo 3x1 2x2 5x3 corresponde ao ganho esperado da empresa A se a empresa
B escolher a estratgia B1, isto , a empresa A ganha 3% com a probabilidade x1, 2% com a pro-
babilidade x2 e 5% com a probabilidade x3 (ver coluna B1 da tabela). Similarmente para os de-
mais termos da expresso acima.
A empresa B tambm pode adotar uma estratgia mista (com probabilidades y1, y2 e y3, a se-
rem determinadas, de escolher as estratgias B1, B2 e B3, respectivamente) para escolher o me-
lhor dos piores (critrio minmax), independentemente da escolha da empresa A. Para isso, deve
procurar valores de y1, y2 e y3 que minimizem o mximo entre:
3y1 1y2 3y3 (se a empresa A escolher a estratgia A1)
2y1 + 4y2 1y3 (se a empresa A escolher a estratgia A2)
5y1 6y2 + 2y3 (se a empresa A escolher a estratgia A3)
ou seja,
min ( y1 , y 2 , y 3 ) {max {3y1 1y2 3y3, 2y1 + 4y2 1y3, 5y1 6y2 + 2y3}}.
Captulo 2: Otimizao linear 149

A interpretao desses termos similar aos anteriores. Por exemplo, o primeiro termo 3y1 1y2
3y3 indica que, se a empresa A escolhe a estratgia A1, a empresa B perde 3% com a probabili-
dade y1, 1% com a probabilidade y2 e 3% com a probabilidade y3 (ver linha A1 da tabela).
n
Jogos de duas pessoas soma-zero com estratgia mista podem ser modelados por otimizao
linear. De fato, G. Dantzig mencionou, em 1963, que J. von Neumann (pai da teoria de jogos e
ganhador do Prmio Nobel pela teoria dos jogos estratgicos), quando introduzido ao mtodo
simplex, em 1947, imediatamente reconheceu a relao do ponto de equilbrio da teoria de jo-
gos com o conceito de dualidade (Seo 2.10) em programao linear.30 As probabilidades timas
x1* , x2* , ..., xm para a estratgia mista do jogador A podem ser determinadas resolvendo-se o se-
*

guinte problema maxmin:

{
Max ( x1 , x2 ,..., xm ) M in{ i =1 ai1 xi ,
m

m
a x ,...,
i =1 i 2 i
m
a x}
i =1 in i }
x1 + x2 + ... + xm = 1
xi 0, i = 1, ..., m.
Seja z = min { m
i =1
a i1 xi ,
m
i =1
a i 2 xi ,...,
m
i =1 }
a in xi , o que implica:
z i =1 ai1 xi , z i =1 ai 2 xi , , z i =1 ain xi .
m m m

O modelo anterior pode ser rescrito como (ver Seo 2.2.9):


(A) Maximizar z


m
a x z
i =1 i1 i


m
a x z
i =1 i 2 i

M

m
a x z
i =1 in i
x1 + x2 + ... + xm = 1
xi 0, i = 1, ..., m, z irrestrito.
De modo semelhante, as probabilidades timas y1* , y2* , , yn* para a estratgia mista do jo-
gador B podem ser determinadas resolvendo-se o seguinte problema minmax:

{ {
Min ( y1 , y2 ,..., yn ) Max
n
a yj,
j =1 1 j
n
j =1
a2 j y j ,...,
n
j =1
amj y j }}
y1 + y2 + ... + yn = 1
yj 0, j = 1, ..., n,
que, utilizando o mesmo procedimento anterior, pode ser rescrito por:
(B) Minimizar w

n
a yj w
j =1 1 j


n
j =1
a2 j y j w


n
amj y j w
j =1
y1 + y2 + ... + yn = 1
yj 0, j = 1, ..., n, w irrestrito.

30 Ver, por exemplo, Dantzig (1963), Shimizu (2001) e Taha (2003).


150 Pesquisa Operacional

O problema (B) o dual do problema (A) (verifique isso aplicando a Tabela 2.26 da seo 2.10),
o que implica que a soluo tima de um produz a soluo tima do outro, e ambas tm o mesmo
valor z*= w* (ver propriedade 2.13 da Seo 2.10).

Exemplo 2.49 (continuao) A soluo tima do jogo anterior das duas empresas soma-zero com
estratgia mista pode ser obtida resolvendo-se os modelos de otimizao linear (A) ou (B). Ou seja,
(A) Maximizar z
3x1 2x2 5x3 z
1x1 + 4x2 6x3 z
3x1 1x2 + 2x3 z
x1 + x2 + ... + xm = 1
xi 0, i = 1, 2, 3, z irrestrito.

(B) Miminizar w
3y1 1y2 3y3 w
2y1 + 4y2 1y3 w
5y1 6y2 + 2y3 w
y1 + y2 + ... + yn = 1
yj 0, j = 1, 2, 3, z irrestrito

As solues timas desses modelos resultam em: z*= w* = 0,908, ( x1* , x2* , x3* ) = (0,394, 0,312,
0,294) e ( y1* , y2* , y3* ) = (0,321, 0,083, 0,596). Ou seja, a empresa A deve escolher a estratgia A1
com chance (39,4%) um pouco maior que as estratgias A2 e A3 (31,2% e 29,4%, respectivamen-
te), enquanto a empresa B deve escolher a estratgia B3 com grande chance (59,6%) e a estrat-
gia B2 com pequena chance (8,3%). Note que o valor timo do jogo z * (para ambas as empresas
A e B) est entre 2 e 2, conforme mencionado anteriormente. Pode-se mostrar que este valor
corresponde ao valor esperado do jogo, ou seja, z * = i =1 j =1 aij xi* y *j , em que xi* y *j a proba-
m n

bilidade de ocorrer o resultado aij, isto , de a empresa A escolher a estratgia Ai e a empresa B


escolher a estratgia Bj. n

2.12 EXERCCIOS31
Exerccio 2.1 Considere o problema da mistura definido na Seo 2.2. Suponha que as fraes dos
componentes na mistura sejam limitadas inferior e superiormente por: bimin e bimax , i = 1, ..., m,
respectivamente. Estenda o modelo matemtico para o problema da mistura, considerando estes
limitantes.

Exerccio 2.2 Considere a extenso do problema da mistura no Exerccio 2.1. Suponha que se de-
seja produzir uma quantidade Q da mistura (por exemplo, 360kg) e os ingredientes esto dispo-
nveis em estoque nas quantidades Ej, j = 1, ..., n. Estenda o modelo matemtico da mistura.
(Sugestes: considere a varivel xj como sendo a quantidade do ingrediente j em Q unidades da

31 Vrios exemplos e exerccios neste captulo foram baseados em outros livros, os quais podem ser consultados como comple-
mento para outros exemplos e exerccios de diversos graus de dificuldade, tais como Bazaraa et al. (1990), Bregalda et al. (1988),
Dantzig (1963), Goldbarg e Luna (2000), Hillier e Lieberman (2004), Johnson e Montgomery (1974), Murty (1995), Puccini e Pizzolato
(1987), Taha (2003), Wagner (1986), Winston (2004), Zenios (1993), dentre outros.
Captulo 2: Otimizao linear 151

mistura. O total dos ingredientes agora deve somar Q e bimin Q a quantidade mnima do com-
ponente i em Q unidades da mistura.)

Exerccio 2.3 Uma fundio tem de produzir 10 toneladas de um tipo de liga metlica e, para isso,
tem disponvel: lingotes de ferro, grafite e sucata. Dois componentes so relevantes para a liga:
carbono e silcio. A Tabela 2.28 fornece a frao desses elementos nos ingredientes disponveis,
seus custos unitrios, suas disponibilidades em estoque, bem como a composio da liga (isto , por-
centagens mnimas e mximas de cada componente na liga). Escreva um modelo de otimizao
linear para determinar as quantidades dos ingredientes para compor a liga metlica, de modo que
as especificaes tcnicas sejam satisfeitas e o custo seja mnimo. Transforme o modelo na for-
ma padro.

Exerccio 2.4 Considere a extenso do problema da mistura no Exerccio 2.2. Suponha que K mis-
turas devem ser produzidas a partir dos mesmos ingredientes (por exemplo, raes para caninos,
felinos, galinceos etc.), nas quantidades Qk, k = 1, ..., K. Considere bikmin e bikmax como as fraes
mnimas e mximas do componente i na mistura k, i = 1, ..., m, k = 1, ..., K. Os custos unitrios
dos ingredientes so cj, j = 1, ..., n. Estenda o modelo matemtico do Exerccio 2.2 para vrias
misturas, de modo que cada mistura k atenda as especificaes tcnicas e o custo total seja m-
nimo. (Sugesto: seja xjk a quantidade do ingrediente j na mistura k e note que xj1 + xj2 + ... +
xjK o total do ingrediente j utilizado em todas as misturas, que no pode superar a quantidade
em estoque do ingrediente j.)

Exerccio 2.5 Considere o problema do Exerccio 2.3. Suponha agora que duas ligas metlicas devem
ser preparadas e os mesmos ingredientes so utilizados em ambas. A liga especificada no Exerccio
2.3 referida como liga 1 e devem ser produzidas Q1 = 10 toneladas desta liga. Da outra liga, refe-
rida como liga 2, devem ser produzidas Q2 = 6 toneladas e sua composio dada na Tabela 2.29.
Escreva um modelo de otimizao linear para a produo das duas ligas. Transforme o mo-
delo obtido na forma padro.

Exerccio 2.6 Considere o problema da mistura na Seo 2.2. Suponha que os ingredientes estejam
divididos em trs classes: C1, C2 e C3, isto , o conjunto de todos os ingredientes: {1, 2, ..., n} =
C1 C2 C3 (por exemplo, uma dieta alimentar constituda de carnes, que constituem a clas-

Tabela 2.28
Composio dos ingredientes.

Ingredientes Liga
Composio (%) Lingotes Grafite Sucata Composio Composio
mnima mxima

Carbono 0,0050 0,90 0,090 0,00 0,095

Silcio 0,14 - 0,27 0,19 0,20

Custos (R$/ton) 90 180 25

Estoque (ton) 5 5 12
152 Pesquisa Operacional

Tabela 2.29
Composio da liga 2.

Liga 2
Composio Composio mnima Composio mxima

Carbono 0,00 0,010

Silcio 0,12 0,14

se 1; cereais, a classe 2; verduras e legumes, a classe 3). A mistura deve ter: de 20% a 30% de in-
gredientes da classe C1, de 50% a 60% de C2 e de 30% a 40% de C3. Escreva um modelo mate-
mtico em que as composies especificadas sejam atendidas (ver o modelo da Seo 2.2) e as
novas restries de classe sejam verificadas. (Sugestes: o modelo pode ser escrito consideran-
do que a quantidade de ingredientes da classe 1 ou supondo que os ingredientes estejam
j1
organizados por classe: C1 = {1, 2 ,..., j1}, C2 = {j1 + 1, ..., j2}, ... e x j a quantidade de in-
j =1
gredientes da classe 1.)

Exerccio 2.7* Considere o problema da mistura no Exerccio 2.1. Em algumas aplicaes, in-
desejvel que um nmero grande de ingredientes seja utilizado, por questes operacionais. Su-
ponha que no mximo trs ingredientes devam ser utilizados na mistura. Uma abordagem
heurstica para considerar essa nova restrio pode ser a seguinte. Suponha que o problema da
mistura seja resolvido, sem a restrio de trs ingredientes, e a soluo envolve 4 ingredientes,
digamos, x1 > 0, x2 > 0, x3 > 0, x4 > 0 (as demais variveis tm valores nulos, ou seja, os demais
ingredientes no so escolhidos para constituir a mistura). Este um problema relaxado, pois
no inclui todas as restries do problema. Como se deseja usar apenas trs ingredientes, po-
demos resolver problemas menores combinando apenas trs dos ingredientes que aparecem na
soluo relaxada: 123, 124, 134 ou 234, isto , resolvendo problemas com menos va-
riveis (x1, x2, x3 ou x1, x2, x4 ou x2, x3, x4 ou x1, x3, x4) e escolhendo a melhor soluo. (Esta abor-
dagem heurstica pode funcionar bem, mas a melhor soluo pode envolver outro ingrediente
que no foi usado na soluo relaxada, pois as quatro alternativas podem nem ter soluo factvel.)
Formule um modelo matemtico para incluir a nova restrio (Sugesto: defina yj como uma va-
rivel que assume apenas valores 0 ou 1, de modo que: yj = 1 se xj > 0 e yj = 0, caso contrrio.
As restries xj yj descrevem essas restries lgicas. A soma dessas variveis fornece o nmero
de ingredientes usados na mistura. Tais modelos sero estudados no Captulo 3 Otimiza-
o discreta.)

Exerccio 2.8* Considere a extenso do problema da mistura no Exerccio 2.2. Suponha, em adi-
o, que a demanda ocorra em perodos de um horizonte de planejamento, digamos, Q1, Q2, ...,
QT so as quantidades (em toneladas) da mistura que devem estar disponveis ao final dos pero-
dos 1, 2, ..., T (por exemplo, Q1 a quantidade de uma rao que deve estar disponvel no final
da semana 1). A capacidade do misturador no perodo t, em quantidade de mistura, limitada
por Ct (os perodos podem corresponder a intervalos de tempo variados e, portanto, a capacidade
pode variar por perodo. Por exemplo, os perodos 1 e 2 podem ser um dia de trabalho e o pero-
do 3 pode ser 4 dias. Isso comum na prtica, em que os perodos iniciais so detalhados e os
perodos finais agregados, pois os dados esto sujeitos a alteraes e somente as decises corres-
pondentes aos primeiros perodos so de fato implementadas. Depois de implementar as deci-
ses dos primeiros perodos, diz-se que o horizonte rolado, com novos dados includos, e o
Captulo 2: Otimizao linear 153

problema resolvido novamente. Essa estratgia conhecida como horizonte rolante.32) A demanda
em um perodo pode ser maior do que a capacidade de produo, de modo necessrio anteci-
par a produo e manter o produto em estoque (veja os modelos dinmicos de planejamento da
produo da Seo 2.2, pois a soluo lote-por-lote, isto , produzir exatamente a demanda em cada
perodo, pode ser infactvel) e os custos de produo podem variar de um perodo para outro (custos
de energia eltrica, hora extra etc.). Considere ct ($/tonelada) o custo de produzir uma tonelada da
mistura no perodo t e dt ($/tonelada) o custo de estocar uma tonelada da mistura no final do pe-
rodo t. Seja Ej1 o estoque do ingrediente j, j = 1, ..., n, disponvel para o perodo 1. Considere
que haja reposio do estoque do ingrediente j ao longo do horizonte de planejamento (compras
efetuadas anteriormente), digamos, Ejt a quantidade de ingrediente j a ser adicionada ao esto-
que do ingrediente j no perodo t. Escreva um modelo matemtico para determinar como devem ser
as produes da mistura em cada perodo, de modo que a demanda seja atendida em cada pe-
rodo, bem como as misturas atendam as especificaes tcnicas, isto , com a composio den-
tro dos limites definidos, e o custo de produo e estocagem sejam minimizados. (Sugesto: defina
a varivel xjt como a quantidade do ingrediente j no total de mistura produzida no perodo t. A
quantidade zt = x1t + ... + xnt o total produzido da mistura no perodo t e no necessariamente
igual a Qt. Defina, tambm, a varivel It como a quantidade de mistura em estoque no final do
perodo t.) Proponha uma extenso desse modelo para o caso de vrias misturas (Exerccio 2.4).

Exerccio 2.9 Devido grande permeabilidade, areias so usadas na constituio de filtros de Es-
taes de Tratamento de guas de abastecimento (ETA) como meio filtrante, por interceptar as
impurezas existentes na gua afluente. Essas areias so dispostas em camadas, que devem obe-
decer s composies granulomtricas estabelecidas por norma tcnica, por exemplo, nas quan-
tidades dadas na Tabela 2.30:

Tabela 2.30
Composio de um filtro.

Faixa granulomtrica (mm) Volume de areia (m3)

0,42 0,59 16

0,59 0,71 16

0,71 0,84 16

0,84 1,00 64

1,00 1,19 40

1,19 1,41 8

Para a construo das unidades de filtrao de uma ETA, areias so exploradas de diferentes
portos, com composies granulomtricas distintas. Os custos totais de dragagem, transporte, se-
leo e preparo para a utilizao da areia so conhecidos por unidade de volume (m3) para cada
porto. Na Tabela 2.31, as composies granulomtricas de dois tipos de areia so fornecidas,
alm dos custos totais. Por exemplo, 17% da areia proveniente do porto 1 tem os dimetros de
seus gros entre 0,42mm e 0,59mm, 16% entre 0,59 e 0,71 etc. e custa $ 25,00 por m3. Assim,
de 100 m3 da rea do ponto 1, pode-se extrair 0,17 100 = 17 m3 de areia na faixa granulomtrica

32 Arajo e Arenales (2004) utilizam a tcnica de horizonte rolante na programao da produo em uma fundio de mdio porte.
154 Pesquisa Operacional

Tabela 2.31
Composio das areias disponveis

Volume de areia/m3
Faixa granulomtrica (mm) porto 1 porto 2

0,42 - 0,59 0,17 0,13

0,59 - 0,71 0,16 0,11

0,71 - 0,84 0,18 0,14

0,84 - 1,00 0,10 0,09

1,00 - 1,19 0,09 0,12

1,19 - 1,41 0,05 0,07

custo ($/m3) 25,00 19,00

0,420,59, que suficiente para a construo do filtro, que necessita 16 m3 desta faixa, mas essa
quantidade insuficiente para se obter a quantidade de areia necessria na faixa 0,841,00.
a) Escreva um modelo matemtico de otimizao linear para determinar a combinao das di-
ferentes areias de modo a atender s especificaes da norma, com o mnimo custo possvel.
b) Resolva o problema graficamente.
c) Suponha que o excesso de areia de cada faixa granulomtrica possa ser vendido para terceiros,
com preos especficos por faixa (por exemplo, P1 o preo da faixa 0,420,59 etc.). Como este
um negcio secundrio, mesmo que rentvel, as quantidades em excesso so limitadas, diga-
mos, U1 o excesso mximo aceitvel para a faixa 0,420,59 etc. Reformule o problema consi-
derando os ganhos com as vendas e as limitaes de excesso em cada faixa granulomtrica.

Exerccio 2.10 Considere o modelo no Exemplo 2.6 na Seo 2.2, para determinar o mix de pro-
duo do fabricante de geladeiras. (a) Represente a regio factvel em um plano cartesiano e deter-
mine a soluo tima. (b) Escreva o problema na forma padro e identifique as fronteiras no grfico
do item (a) pelas variveis que se anulam. (c) Identifique no grfico do item (a) a base tima (iden-
tifique as variveis que se anulam e considere-as no-bsicas). (d) Aplique o mtodo simplex, con-
siderando a base inicial formada pelas colunas das variveis de folga e determine a soluo tima.

Exerccio 2.11* Considere o modelo (2.1)(2.7) do Exemplo 2.4 na Seo 2.2. (a) Determine uma
soluo factvel inicial, usando o seguinte procedimento: Faa x11 = 433 toneladas (isto , trans-
porte 433 toneladas da pedreira 1 ao depsito 1). A demanda residual do depsito 1 697 433
= 264. Faa x21 = 215. A demanda residual do depsito 1 264 215 = 49. Faa x31 = 49 (a de-
manda para o depsito 1 satisfeita). A oferta residual da pedreira 3 782 49 = 733. Conti-
nue o procedimento at que as demandas tenham sido satisfeitas. (b) Considere a matriz formada
pelas colunas das variveis positivas na soluo de (a), por exemplo, coluna de x11, de x21 etc. junto
com a primeira coluna da matriz identidade 77. Mostre que essa matriz bsica. (c) Aplique o
mtodo simplex a partir da soluo bsica obtida nos itens (a) e (b) e determine a soluo tima.
Observe a simplicidade na resoluo dos sistemas bsicos, que sempre podem ser resolvidos por
substituio (no Captulo 4 Otimizao em redes, esta caracterstica estudada em detalhes).
Captulo 2: Otimizao linear 155

Figura 2.53 Lanamento de esgoto em um rio.

Exerccio 2.12 Considere o modelo no Exemplo 2.1 na Seo 2.2 para determinar as fraes ideais
de farinha de osso, soja e peixe em uma rao animal. (a) Resolva o modelo pelo mtodo das duas
fases (Seo 2.8). (b) H alguma caracterstica do modelo que favorea o uso do mtodo dual
simplex? (veja Exerccio 2.33).

Exerccio 2.13 Os esgotos de trs cidades, A, B, e C, depois de passarem por uma estao de trata-
mento, so jogados em um rio, conforme a Figura 2.53. Os esgotos das trs cidades produzem quan-
tidades dirias de poluente, respectivamente, PA, PB e PC toneladas. O tratamento do esgoto pode
reduzir a quantidade de poluentes em at 90%. Essa reduo denominada eficincia da estao
de tratamento e o custo da estao i diretamente proporcional sua eficincia.
Por outro lado, devido ao bioqumica (aerao etc.), no final de cada trecho AB e BC do
rio, a quantidade de poluentes reduzida em 10% e 20%, respectivamente. Quais so as eficincias
das estaes de tratamento, de modo que, em qualquer ponto do rio a quantidade de poluentes
no ultrapasse P toneladas e o custo das estaes de tratamento seja mnimo? Escreva um mo-
delo de otimizao linear para este problema.

Exerccio 2.14 Considere o problema de corte de bobinas na Seo 2.2 e o modelo de otimizao
linear em (2.19).
(a) Suponha que haja uma tolerncia i na demanda do item i, isto , os clientes aceitam qual-
quer quantidade do item i no intervalo [(1 i)bi , (1 + i)bi]. Reformule o modelo (2.19) para
considerar essa tolerncia.
(b)Escreva um modelo para o Exemplo 2.9, considerando uma tolerncia de i = 0,05 (isto ,
5%, de modo que a demanda do item de tamanho l1 = 40 qualquer valor entre 4,75 e
5,25 toneladas).

Exerccio 2.15* Considere, por simplicidade, o modelo de corte de bobinas (2.16) com a tolern-
cia no Exerccio 2.14. Como a funo objetivo busca minimizar a quantidade de bobinas corta-
das com a tolerncia introduzida, a soluo do problema deve atender a demanda minimamente
(menor a demanda, menor a quantidade cortada), que no necessariamente de interesse da em-
presa. Reformule a funo objetivo de modo que a contribuio ao lucro da empresa seja
maximizada, considerando que o custo de cada bobina $ c, o preo de venda do item i $ pi.
Alm disso, cada cm de sobra vendido por $ s. (Sugesto: cortar x1 bobinas conforme o padro
156 Pesquisa Operacional

m
de corte 1 produz ai1x1 itens i vendidos por $ piai1x1, de modo que $ pi ai1 x1 o valor das ven-
i =1
das dos itens decorrente do uso do padro de corte 1. O comprimento, em cm, da sobra no pa-
m m

dro de corte 1 L l i a i1 , de modo que $ s L l i a i1 x1 o valor da venda da sobra devido
i =1 i =1
ao uso do padro de corte 1. O custo das bobinas cortadas pelo padro de corte 1 $ cx1. O preo
total de vendas menos o custo define a contribuio ao lucro da empresa a ser maximizada.)

Exerccio 2.16 Uma nova mquina deve ser instalada em uma fbrica cujo piso tem formato re-
tangular e os cantos opostos tm as seguintes coordenadas (unidade em metros): (40 40)T e
(40 20)T. Existem quatro mquinas j instaladas nas posies: (0 0)T, (40 40)T, (30 10)T e
(35 0)T. Formule um modelo matemtico para determinar a localizao tima da nova mqui-
na, considerando que:
i) A distncia entre a nova mquina e as demais seja mnima. Use a distncia reticulada
(como se o deslocamento fosse pelas ruas de uma cidade), isto , se x1 e x2 so as coorde-
nadas da nova mquina, ento a distncia entre a nova mquina e outra instalada na posi-
o (y1 y2)T dada por: |x1y1| + |x2y2|. Transforme o problema na forma linear (veja os
exemplos de ajuste de curvas e controle timo na Seo 2.2).
ii) As movimentaes de itens por hora, entre a nova mquina e as j instaladas, so dadas por:
10, 8, 15, 0. Reformule o problema para que a distncia total percorrida pelos itens seja
minimizada.
iii) A instalao da nova mquina deve ser tal que: x1 10. Reescreva os modelos em (i) e (ii)
com esta nova restrio.

Exerccio 2.17 Uma cooperativa de lacticnios fabrica trs produtos: leite pasteurizado, queijo
fresco e iogurte. A cooperativa recebe diariamente 100 mil litros de leite por dia, os quais de-
vem ser processados no mesmo dia. H um compromisso de abastecer o mercado dirio de no
mnimo 50 mil litros de leite pasteurizado, cuja contribuio ao lucro de $0,07/litro. Um quilo de
queijo fresco consome 10 litros de leite, enquanto um litro de iogurte consome 2,5 litros de leite.
As contribuies ao lucro so: $1,04 por quilo de queijo e $0,20 por litro de iogurte. O mximo
que o mercado assimila diariamente de cada produto de 60 mil litros de leite pasteurizado, 3.500
quilos de queijo e 20 mil litros de iogurte. (a) Formule um modelo matemtico para determinar
as quantidades ideais de cada produto. (b) Fixe a venda de leite pasteurizado em 50.000 litros
(produto menos lucrativo) e resolva o problema graficamente. (c) Resolva o problema usando
o mtodo simplex. (d) O departamento de vendas entende que as vendas de queijo e iogurte
no so independentes e impe que, para cada quilo de queijo produzido, pelo menos um litro
de iogurte deve ser produzido. Escreva o modelo com esta restrio e resolva o problema gra-
ficamente, fixando-se a produo de leite pasteurizado em 50 mil litros. (e)* Use o mtodo dual
simplex para reotimizar a soluo obtida no item (c), depois da incluso da nova restrio no
item (d).

Exerccio 2.18 Considere o seguinte problema:


Minimizar f(x1, x2) = x1 x2
x1 + x2 2
2x1 x2 6
x1 0, x2 0
a. Resolva o problema graficamente (isto , desenhe a regio factvel e identifique a(s)
soluo(es) tima(s)).
Captulo 2: Otimizao linear 157

b. A soluo x1 = x2 = 0 um vrtice da regio factvel? Identifique todos os vrtices da re-


gio factvel.
c. Desenhe as solues x = ( x1 x2 )T = (1 1)T e x = ( x1 x2 )T = (5, 1)T. Essas solues so
factveis? Responda verificando que: i) pertence regio factvel no grfico do item (a) e
ii) satisfaz as restries.
d. Qual a soluo se o problema for: Maximizar f(x1, x2) = x1 + x2?
e. Considere agora uma outra funo objetivo: Minimizar f(x1, x2) = x1 x2. Verifique se a so-
luo tima obtida no item (a) tambm tima considerando esta nova funo objetivo. H
mltiplas solues timas? Identifique no grfico.
f. Suponha que, no problema original, a funo objetivo seja alterada para:
Minimizar f(x1, x2) = (1 + )x1 x2 (ou seja, o custo da varivel x1 alterado para: c1 = 1 + ).
Desenhe no grfico do item (a) os coeficientes da funo objetivo para diferentes valores de
. Para que valores de a soluo tima encontrada no item (a) permanece tima?

Exerccio 2.19 Considere o seguinte problema:


Minimizar f(x1, x2) = x1 + x2
x1 + x2 2
2x1 x2 6
x1 0, x2 0

a. Resolva o problema graficamente.


b. Considere agora: Maximizar f(x1, x2) = x1 + x2 sujeito s mesmas restries. O que mudou?
c. Construa uma nova funo objetivo de modo que o problema tenha: i) um segmento de
solues timas; ii) uma semi-reta de solues timas.
d. Considere o problema no item (b) e inclua a terceira restrio: x1 + x2 1. Resolva o pro-
blema resultante graficamente.
e. Considere perturbaes no coeficiente da terceira restrio do tipo: b3 = 1 + , 0. Re-
presente graficamente essas perturbaes. Observe que, para valores altos de , o proble-
ma torna-se factvel.
f. Formule um problema de otimizao linear para determinar o menor valor de que faz com
que a regio factvel seja no-vazia. (Sugesto: encare como uma varivel do problema.)

Exerccio 2.20 Considere o sistema de equaes lineares Ax = b dado por (2.25), fixe: x3 = 0, x4 = 1
e determine os valores das variveis restantes. Identifique a soluo obtida na Figura 2.35. Alm
disso, fixe: x3 = 0, x4 = 2. Identifique esta nova soluo na Figura 2.35. Repita com outros valo-
res para x4. Desenhe a reta obtida com a variao de x4, mantendo x3 = 0. Certifique-se que esta
reta, no plano (x1,x2), dada por: x1 + x2 = 6 (veja a primeira equao de (2.25)).

Exerccio 2.21 Fixe em (2.29) as variveis em xN: x3 = 0 e x4 = 1. Faa as operaes usando matri-
zes e compare o resultado com o Exerccio 2.20.

Exerccio 2.22 Reescreva o sistema de equaes lineares Ax = b dado em (2.25), considerando


x2 e x3 como as variveis independentes, na forma equivalente BxB + NxN = b. Explicite os n-
dices bsicos: B1, B2 e B3 e os ndices no-bsicos: N1 e N2; as matrizes B e N; e os vetores de
variveis xB e xN. Fixe xN = 0 (isto , x2 = x3 = 0) e compare com o sistema de equaes linea-
res em (2.27).
158 Pesquisa Operacional

Exerccio 2.23 Repita o Exerccio 2.22, considerando x1 e x2 as variveis independentes. Qual o


ponto na Figura 2.35 que corresponde fixao das variveis independentes em zero? uma
soluo factvel?

Exerccio 2.24 (soluo tima nica e custo relativo nulo) Considere o seguinte problema de otimi-
zao linear:
Minimizar f(x1, x2) = x1x2
x1+ x2 6
x1 x2 4
x2 1
x1 0, x2 0
a. Resolva graficamente e identifique a soluo tima nica x* = (5 1)T.
b. Considere a partio bsica tima em que x3 e x5 so no-bsicas, isto , B = [a1 a2 a4] (note
que h outras parties bsicas timas). Calcule a soluo bsica ( degenerada?).
c. Verifique as condies de otimalidade (determine = (1 0 0)T e c3 =1 e c5 = 0 ).
d. Como f(x) = f(x*) + c3 x3 + c5 x5 (veja (2.36)), a nica maneira de obter solues alternati-
vas timas aumentar x5 mantendo x3 = 0. Mostre que a varivel no-bsica x5 no pode
assumir valores positivos e conclua que um custo relativo nulo na soluo tima no ne-
cessariamente garante mltiplas solues timas. (Sugesto: se fizermos x5 = 0, man-
tendo x3 = 0, por (2.38), x B = x B y (encontre y = (1 1 2)T), segue-se que x1 = 5 + ,
x2 = 1 , x4 = 0 2 e, portanto, no pode ser positivo, ou seja, no possvel outra
soluo tima. Note o papel de y3 > 0).
e. Se a soluo tima no degenerada e tem um custo relativo nulo, pode-se afirmar que exis-
tem mltiplas solues timas? (Raciocine com a soluo do item (d), imaginando x4 > 0.)
f. Considere agora uma nova funo objetivo: Minimizar f(x1,x2) = x1. Verifique graficamente
que a soluo tima a mesma do item (a). A partio bsica no item (b) fornece essa so-
luo tima. Verifique, entretanto, que a condio de otimalidade no verificada. Con-
clua que podemos ter em mos uma soluo tima sem que a condio de otimalidade seja
verificada. Isso poderia ocorrer para uma soluo no degenerada?

Exerccio 2.25* Considere uma matriz bsica mm B = [ a B1 L a Bl 1 a Bl a Bl +1 L a Bm ] em uma itera-


o do mtodo simplex (ou dual simplex). Mostre que a nova matriz B x = [ a B1 L a Bl1 a Nk a Bl+1 L a Bm ],
obtida pelo mtodo simplex (ou dual simplex), tambm uma base, isto , existe ( B )1. Apresente
uma forma simples de calcular ( B )1 a partir de B1. Sugesto: Siga os seguintes passos:
i) Multiplique B1 por B e obtenha a matriz E, isto , B1 B = E. Como B1B = I, segue-se
que B1 a Bi a i-sima coluna da matriz identidade. Assim, a matriz E difere da matriz iden-
tidade apenas pela l -sima coluna:
1 L y1 L 0
M
M M
B 1B = B 1a B1 L B 1a N k L B 1a Bm = 0 yl 0
123
= y M M M

0 L y m L 1
1442443
E

com yl na diagonal da matriz E e y l > 0 por (2.39) no caso do mtodo simplex (ou
y l = lT a N k < 0 por (2.47) no caso do mtodo dual simplex).
Captulo 2: Otimizao linear 159

1 L yy1 L 0
l

M M M
ii) Mostre que a matriz E tem inversa dada por: E 1 = 0 1
0

yl

M M M
0 L y m L 1
yl
Basta fazer o produto EE1 e obter a matriz identidade. Esta matriz chamada matriz
elementar.

1 1
iii) Dessa forma, B1B = E E
12 B3 B = I, do que se segue: (B)1 = E1B1, ou seja, a in-
(B ) 1
versa de B existe por construo, portanto, B uma base. O prximo passo mostra um
esquema prtico de como obter (B)1 sem a necessidade de se trabalhar explicitamente
com E1.

iv) Seja vi a i-sima linha de B1, ento


v y1 v
1 yl l
M

E1B1 = yl v l ,
1

M

v m yym v l
l
ou seja, a i-sima linha de ( B )1, i l , obtida pela adio da l -sima linha de B1 multi-
plicada por yyi i-sima linha de B1. Observe o esquema prtico decorrente destas ope-
l
raes: coloque o vetor y (direo simplex) ao lado da matriz B1 e faa as operaes
elementares necessrias para transformar o vetor y na l -sima coluna da matriz identida-
de, estendendo as mesmas operaes sobre a matriz B1.

Exerccio 2.26* Considere que a matriz B foi obtida de B, substituindo-se a l -sima coluna a Bl
por a N k , seja pelo mtodo simplex ou dual simplex. Do Exerccio 2.25, segue-se que ( B )1 = E1B1,
do que decorre um esquema prtico para o produto E1B1, sem a necessidade de se explicitar
E1. D um esquema prtico para o clculo da soluo bsica e do vetor multiplicador simplex
associados a B , isto , x B = ( B )1b e ( )T = cBT (B ) 1 .
Sugestes:
i) Para o clculo da soluo bsica, faa: xB = ( B )1b = E1B1b = E1 x B . O produto E1 x B
obtido a partir da matriz elementar E1 dada no Exerccio 2.25:
x B1 1 L yy1 L 0 x B1 x y1 x
l
B1 yl Bl
M M M M M M
x
x B 1
0
1
0
y l x Bl
Bl
yl
=
l

M = M M M
M
M


0 L m L 1 x
y
x Bm
Bm x ym

x
y l
Bm yl Bl
que consiste em colocar o vetor y (direo simplex) ao lado da soluo bsica x B e fazer as ope-
raes elementares necessrias para transformar o vetor y na l -sima coluna da matriz identi-
dade, estendendo as mesmas operaes sobre x B , isto , o mesmo esquema prtico para atualizar
a matriz inversa.
160 Pesquisa Operacional

ii) Para o clculo do vetor multiplicador ( ) T = c TB (B ) 1 , os passos so mais elaborados.


Considere a expresso para a matriz ( B ) 1 no passo (iv) do Exerccio 2.25, e
c TB = (c B1 L c N k L c Bm ) . Assim,
v 1 y1 v
l
yl

M
1
( ) T = c TB (B ) 1 = (c B1 L c N k L c Bm ) yl v l = c Bi ( v i yli v l ) +
y 1
yl c N k v l c Bl v l
M il

v m yym v l
l
m

= c Bi v i + ( c Bi y i + c N k )
m vl
yl
i =1 i =1
m m
T T 1
Como = c B B =
i =1
c Bi v i e c N k = c N k c TB B 1 a N k = c N k c Bi y i , segue-se do desenvolvi-
123 i =1

Nk
c
mento anterior que: ( ) T = T + v l , que est de acordo com (2.43) e (2.47), j que
yl
v l = l .
Em resumo, do Exerccio 2.25 e dos desenvolvimentos acima, segue-se um esquema prtico
para atualizar a inversa da base, a soluo bsica e o vetor multiplicador em uma iterao do m-
todo simplex ou dual simplex:
v1 xB1 y1 v1 xB '1 0
M M M M M M
vl xBl yl v l xB 'l 1
M M M M M M
vm xBm ym v m xB 'm 0
f cNk T
T
f 0
O valor da funo objetivo para a nova soluo bsica calculado por:
c
f{( x) = {
f ( x ) + cNk { ou f = f + N k x B , que o valor obtido na ltima posio da coluna
f f xB
l
yl l
yl

que contm as variveis bsicas. Esta forma de atualizar a inversa da matriz bsica, soluo bsi-
ca e vetor multiplicador conhecida como mtodo simplex revisado.
Considere a primeira iterao do Exemplo 2.26, em que a matriz bsica a identidade. A in-
versa da base, a soluo bsica e o vetor multiplicador simplex para a nova iterao podem ser
calculados pelo procedimento anterior:

1 0 0 6 1 1 0 1 2 0
0 1 0 4 1 0 1 1 8 0
0 0 1 4 1 l =3 0 0 1 4 1
0 0 0 0 2 0 0 2 8 0
Da tabela direita, obtemos a inversa da base na iterao 2, a soluo bsica, o vetor
multiplicador e o valor da funo objetivo:
1 0 1 2 0
B1 = 0 1 1 x B = 8 = 0 f (x ) = 8

0 0 1 4 2
Captulo 2: Otimizao linear 161

Determine as iteraes seguintes do mtodo simplex para o Exemplo 2.26, fazendo uso das
atualizaes vistas. Reescreva o algoritmo dual simplex (Seo 2.10.5), considerando as atualiza-
es de B-1, x B e .

Exerccio 2.27 Em um problema de minimizao com xi 0, para que g( ) seja finito, necess-
rio que ciTai 0. Verifique as exigncias sobre para as outras condies sobre o sinal das vari-
veis. Em resumo, para um problema de otimizao linear (minimizao ou maximizao), g( )
finito se e somente se:
problema de minimizao
se xi 0 Tai 0
ento ci
se xi 0 Tai 0
ento ci
se xi livre Tai = 0
ento ci
problema de maximizao
se xi 0 Tai 0
ento ci
se xi 0 Tai 0
ento ci
se xi livre Tai = 0
ento ci

Exerccio 2.28 Considere o problema primal:


Minimizar f(x) = x1 x2
x1 x2 1
x1 + x2 1
x1 0, x2 0
Escreva o problema dual e mostre que ambos os problemas, primal e dual, so infactveis.

Exerccio 2.29 Considere o seguinte problema primal. Calcule seu dual e resolva-o graficamente.
O que podemos concluir do primal, sem resolv-lo?
Primal:
Minimizar f(x) = x1 + x2
x1 + x2 1
x1 2x2 1
x1 0, x2 0

Exerccio 2.30 Considere o par de problemas primal-dual no Exemplo 2.43. Suponha que a so-
luo tima do problema dual seja conhecida: 1= 54 , 2= 56 . Utilize as folgas complementares
(propriedade 2.12) para determinar uma soluo tima primal. Observe que a soluo foi uni-
camente determinada (como tambm no Exemplo 2.43). Conclua que, se um dos problemas tem
soluo tima no degenerada, ento o outro tem soluo tima nica.

Exerccio 2.31 Considere o problema de corte de peas no Exemplo 2.36. Suponha que a deman-
da seja b = (108 162)T. Escreva o problema dual, resolva-o graficamente e identifique mltiplas
solues timas. Determine a soluo tima primal usando as folgas complementares (proprie-
dade 2.12). O problema dual pode ter mltiplas solues timas e o primal ter uma soluo tima
no degenerada? Conclua que, se um dos problemas tem mltiplas solues timas, ento o outro
tem soluo tima degenerada.
162 Pesquisa Operacional

Exerccio 2.32 Represente em um grfico a regio factvel do problema primal do exemplo 2.47 e
as solues bsicas primais percorridas pelo mtodo dual simplex at a soluo tima. Observe
que as solues bsicas primais so infactveis at que a soluo tima seja obtida.

Exerccio 2.33 Considere o problema de otimizao linear em que c 0:


Minimizar f(x) = cTx
Ax b
x 0.
Escreva o problema dual e verifique que = 0 uma soluo bsica dual factvel. (Sugesto:
considere a base formada pelas colunas das variveis de folga.)
Otimizao discreta

3.1 INTRODUO
A caracterstica que distingue otimizao discreta ou combinatria que algumas das variveis
pertencem a um conjunto discreto, tipicamente, um subconjunto dos nmeros inteiros.
Otimizao discreta tambm conhecida como programao inteira e combinatria, e os termos
otimizao e programao so usados indistintamente neste livro.
Problemas de otimizao discreta aparecem em profuso na vida real e aplicaes ocorrem nas
mais diversas reas, tais como energia, transportes, telecomunicaes, circuitos eletrnicos, bio-
logia molecular, medicina e sade, criptografia, aviao e finanas. Uma grande variedade de
aplicaes encontrada em engenharia de produo, compreendendo planejamento e programa-
o da produo, projeto de layout de sistemas de produo, localizao de instalaes e distri-
buio de produtos. Variveis discretas importantes nessas aplicaes envolvem, por exemplo,
decidir se um produto fabricado ou no em um perodo, escolher a melhor seqncia de itens
a serem processados em uma mquina, escolher o melhor local, dentre vrios candidatos, a ins-
talar uma nova fbrica ou um centro de distribuio, e determinar as melhores rotas de distribui-
o de produtos.
Um problema com variveis inteiras e reais denominado problema de programao (linear)
inteira mista (PIM) quando tem a seguinte forma:
z = max cx + dy
( PIM ) Ax + Dy b
x R+n , y Z +p
em que A , uma matriz (m n) , D , uma matriz (m p ) , c , um vetor (1 n) , d , um vetor
(1 p ) , e b, um vetor (m 1) , representam os parmetros do problema. Os vetores de vari-
veis so xe y com dimenses (n 1) e ( p 1) . R+n representa o espao dos vetores com n
componentes reais e Z +p representa o espao dos vetores com p componentes inteiras no-
negativas.
Quando todas as variveis so inteiras, tem-se um problema de programao (linear) inteira (PI),
z = max cx
( PI ) Ax b
x Z +n
e se todas as variveis assumem valores 0 ou 1, tem-se um problema de programao 0-1 ou bin-
ria (PB), escrito como

163
164 Pesquisa Operacional

z = max cx
( PB) Ax b
x Bn
em que B n representa o espao dos vetores com n componentes binrias.
Um outro tipo de problema o problema de otimizao combinatria (OC), que pode ser defi-
nido da seguinte forma. dado um conjunto finito N = {1, ..., n} , um conjunto de pesos cj para
cada j N , e uma famlia F de subconjuntos factveis de N. O problema de otimizao
combinatria consiste em achar o subconjunto de peso mnimo de F, isto

min c j : S F
j S
Nas Sees 3.4-3.6, apresentam-se diversos exemplos de problemas de programao inteira e
otimizao combinatria. De modo geral, um problema de OC pode ser formulado como um pro-
blema de PI ou PB. Problemas de programao inteira e combinatria so resolvidos por mto-
dos timos (exatos), que fornecem uma soluo tima; por algoritmos aproximados, que garantem a
distncia mxima entre o valor da soluo subtima encontrada e o valor timo; ou por mtodos
heursticos, que, em geral, fornecem uma soluo subtima, sem conhecimento da qualidade desta
em relao a uma soluo tima. Os mtodos de resoluo so apresentados nas Sees 3.9 e 3.11.
O exemplo a seguir ilustra um problema de programao inteira.

Exemplo 3.1
z = max 10 x1 + 6 x2
( PI ) 9 x1 + 5 x2 45
-4x1 + 5 x2 5
x Z +2
A Figura 3.1 mostra o conjunto de solues factveis que satisfazem as restries do Exemplo
3.1, que dado por X = {(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1), (2, 2), (3, 0), (3, 1), (3, 2), (3, 3),

Figura 3.1 Conjunto de solues factveis do Exemplo 3.1.


Captulo 3: Otimizao discreta 165

(4, 0), (4, 1), (5, 0)}. Ao se mover ao longo da direo do gradiente da funo objetivo (5, 3), ob-
serva-se que a soluo tima x = (5, 0 ) , com valor z = 50 . n
O seguinte exemplo ilustra um problema de programao binria.

Exemplo 3.2
z = max 2 x1 + 3 x2
( PB) 6 x1 + 8 x2 10
x B2
O conjunto de solues factveis do Exemplo 3.2 dado por X = {(0, 0), (1, 0), (0, 1)}. Cal-
culando o valor de cada soluo, tem-se que a soluo tima x = (0,1), com valor z = 3 .
n

A seguinte modificao do Exemplo 3.1 ilustra um problema de programao inteira-mista:

Exemplo 3.3
z = max 10 x1 + 6 x2
( PIM ) 9 x1 + 5 x2 45
-4x1 + 5 x2 5
x1 R+1 , x2 Z +1
A Figura 3.2 mostra que o conjunto de solues factveis consiste em quatro segmentos de reta
4 1 8
descritos por: X 1 = {( x1 , 0), 0 x1 5}, X 2 = {( x1 ,1), 0 x1 4 }, X 3 = {( x1 , 2), 1 x1 3 } e
9 4 9
1 1 1 1
X 4 = {( x1 ,3), 2 x1 3 }. A soluo tima x = (3 ,3), com valor z = 51 . n
2 3 3 3

3.2 RELAXAO LINEAR


Considere agora o problema de programao linear (PL) quando a condio de integralidade do
Exemplo 3.1 relaxada, isto , x R+2 .

Figura 3.2 Conjunto de solues factveis do Exemplo 3.3.


166 Pesquisa Operacional

Exemplo 3.4
z = max 10 x1 + 6 x2
( PL) 9 x1 + 5 x2 45
4x1 + 5 x2 5
x R+2
em que R+2 denota o vetor com duas variveis reais no-negativas.
O problema de programao linear PL chamado de relaxao linear do problema de progra-
1 6
mao inteira PI . A Figura 3.3 mostra que a soluo tima de PL x = 3 ,3 , com valor
13 13
7
z = 51 . Note que x est bem distante da soluo tima inteira x = (5, 0) . Como decorrncia,
13
a soluo arredondada (3, 3) tambm est distante da soluo tima inteira, mostrando que a
estratgia de arredondamento da soluo tima do problema relaxado de programao linear pode
no ser satisfatria. Em problemas grandes, pode ser difcil achar uma soluo arredondada que
satisfaa as restries do problema de programao inteira e, em caso extremo, o conjunto de so-
lues factveis de um problema de programao inteira vazio. n

A relaxao linear um conceito-chave para diversos mtodos de resoluo de problemas PI


e PIM, pelo seguinte motivo. Sejam X PI , X PIM , X PL os conjuntos de solues factveis de PI, PIM
e PL, respectivamente. Como Z +n R+n , segue-se que X PI X PL e X PIM X PL , portanto, o
valor z da soluo tima de PL um limitante superior para o valor z da soluo tima de PI e
7
PIM . No Exemplo 3.4, z = 51 , e os valores timos de PI e PIM nos Exemplos 3.1 e 3.3
13
1
so, respectivamente, 50 e 51 .
3
A relaxao linear do problema de programao binria do Exemplo 3.2 dada por:
z = max 2 x1 + 3 x2
( PLB ) 6 x1 + 8 x2 10
0 xi 1, i = 1, 2

Figura 3.3 Conjunto de solues factveis do Exemplo 3.4.


Captulo 3: Otimizao discreta 167

1
Na Seo 3.9.1, mostra-se que a soluo tima de PLB dada por x = ( , 1) , com valor
2 3
z = 3 , um limitante superior do valor timo de PB igual a 3.
3

3.3 MODELAGEM COM VARIVEIS BINRIAS


Um grande nmero de problemas de otimizao discreta envolve a ocorrncia ou no de um evento,
e a deciso entre duas alternativas. Essa dicotomia modelada por uma varivel binria x tal que

1 se o evento ocorre
x=
0 se o evento no ocorre
A seguir so apresentadas diversas situaes prticas com esse tipo de deciso e a maneira de
traduzi-las matematicamente.

3.3.1 Implicaes se ento


Existem vrias situaes em que a ocorrncia de um evento implica a ocorrncia de outro even-
to. A seguir, so ilustrados exemplos dessas situaes.

Custo fixo
Suponha que o custo de produo K de um item consiste em um custo fixo s adicionado de um
custo linear varivel com taxa c, similarmente ao modelo (1.1)(1.5) do Captulo 1. Defina a varivel
x = quantidade produzida do item
Ento, o custo de produo K(x) dado por
s + cx se x > 0
K ( x) =
0 se x = 0
A Figura 3.4 ilustra a funo K, que no linear devido descontinuidade no ponto x = 0.
Para representar essa funo de forma linear com uma varivel inteira, seja M um limitante su-
perior da produo do item, e considere a varivel binria y tal que y = 0 implica x = 0 ou,
equivalentemente, x > 0 implica y = 1. Ento, o custo K pode ser reescrito como
K = sy + cx
x My

Figura 3.4 Funo com custo fixo.


168 Pesquisa Operacional

Note que, nesta forma, x = 0 no implica y = 0, e que o ponto w1 = (x = 0, y = 1) factvel


com custo K(w1) = s. Em geral, deseja-se minimizar o custo K, portanto, o ponto w1 no um
mnimo, pois a soluo w2 = (x = 0, y = 0) factvel com custo K(w2) = 0.

Produo de itens
Considere a situao em que, se o produto 1 fabricado, ento o produto 2 tambm deve ser
fabricado. Seja
x1 = quantidade produzida do item 1
x2 = quantidade produzida do item 2
Seja y uma varivel binria tal que
1 se x1 > 0
y=
0 caso contrrio
Essa condio expressa pela desigualdade
x1 My
em que M um limitante superior da produo do item 1.
Deseja-se expressar a condio de que y = 1 implica x2 > 0. Isso obtido por meio da desi-
gualdade
x2 my
tal que m um limitante inferior da quantidade a ser produzida do item 2.

Desigualdades de funes
Em diversas situaes necessrio impor que a desigualdade f ( x1 , x2 , ..., xn ) > 0 implica que
a desigualdade g ( x1 , x2 , ..., xn ) 0 verdadeira. Considere uma varivel binria y, e seja M um
nmero grande, tal que f M e g M para todo valor de x1 , x2 , ..., xn . A implicao ex-
pressa pelas seguintes restries:
g ( x1 , x2 , ..., xn ) My (3.1)
f ( x1 , x2 , ..., xn ) M (1 y ) (3.2)
Note que, se f > 0, ento (3.2) implica y = 0, e de (3.1) segue-se que g 0.

Exemplo 3.5 Suponha que quatro itens podem ser produzidos em uma mquina denotada por
k, e se o item 1 produzido em k, ento os outros itens, 2, 3 e 4, no podem ser processados em k
e so processados em outras mquinas.
Defina as variveis
1 se o item i processado na mquina k
xik =
0 caso contrrio
Ento x1k = 1 implica x2 k = x3k = x4 k = 0. Como as variveis so binrias, pode-se expressar
essa condio da seguinte forma: se x1k > 0, ento x2 k + x3k + x4 k 0, ou x2 k x3k x4 k 0.
Utilizando-se as expresses (3.1) e (3.2), tem-se que
x2 k + x3k + x4 k 3 y
x1k 3(1 y )
Note que M = 3, pois este o valor mximo assumido pela soma x2 k + x3k + x4 k . n
Captulo 3: Otimizao discreta 169

3.3.2 Restrio ativada ou desativada


Seja a desigualdade
f ( x1 , x2 , ..., xn ) 0
Defina uma varivel binria y tal que y = 1 implica que a desigualdade anterior satisfeita ou
est ativada. Isso pode ser expresso como
f ( x1 , x2 , ..., xn ) M (1 y )
em que M um nmero grande. Note que, se y = 0, ento a restrio desativada, isto ,
f ( x1 , x2 , ..., xn ) pode assumir qualquer valor at seu limite superior M.

3.3.3 Restries disjuntivas


Considere as desigualdades
f ( x1 , x2 , ..., xn ) 0 (3.3)
e
g ( x1 , x2 , ..., xn ) 0 (3.4)
Deseja-se que somente uma das desigualdades esteja ativada. Defina uma varivel binria y tal
que, se y = 1, ento somente (3.3) ativada, e se y = 0, somente (3.4) ativada. Isso represen-
tado matematicamente por
f ( x1 , x2 , ..., xn ) M (1 y )
e
g ( x1 , x2 , ..., xn ) My

Exemplo 3.6 Considere as restries 4 x1 + 2 x2 80 e 2 x1 + 5 x2 100, x1 , x2 0, ilustradas na Fi-


gura 3.5 em linha cheia. O acrscimo de um nmero grande M no lado direito das restries faz
com que a restrio desativada seja transladada paralelamente no quadrante superior direito do
plano. As linhas pontilhadas indicam a translao mnima das duas retas de forma que somente
uma das restries seja ativada. Assim, a reta 4 x1 + 2 x2 = 80 transladada at 4 x1 + 2 x2 = 200, e

Figura 3.5 Exemplo de restries disjuntivas.


170 Pesquisa Operacional

a reta 2 x1 + 5 x2 = 100 transladada at 2 x1 + 5 x2 = 200, portanto, o menor valor de M dado por


max{120,100} = 120 . Um valor pequeno de M desejvel para acelerar os mtodos de resoluo
de problemas de programao inteira, como mostrado na Seo 3.8. A representao matemti-
ca da disjuno , ento, dada por
4 x1 + 2 x2 80 + 120(1 y )
2 x1 + 5 x2 100 + 120 y n
Exemplos de restries ativadas ou desativadas e restries disjuntivas ocorrem em problemas
de programao de tarefas em mquinas, que so apresentados na Seo 3.6.3.

3.3.4 Representao de funo linear por partes


Funes lineares por partes, discutidas brevemente na Seo 2.2.10, so importantes porque po-
dem representar, por exemplo, o custo de expanso da capacidade ou aproximar uma funo no-
linear. Considere a funo f ( x) = f1 ( x) + f 2 ( x) + f3 ( x) , ilustrada na Figura 3.6. As funes
f1 ( x), f 2 ( x), f3 ( x) so lineares e especificadas pelos pontos (0, 0), (2,10), (6,14) e (10, 22), respec-
tivamente. Qualquer x, tal que 0 x 10, pode ser escrito como
x = 01 + 22 + 63 + 104 , 1 + 2 + 3 + 4 = 1, 1 , 2 , 3 , 4 0
Ento,
f ( x) = 01 + 102 + 143 + 224 , 1 + 2 + 3 + 4 = 1, 1 , 2 , 3 , 4 0
se no mximo dois valores i e i +1 , i = 1, 2, 3 forem positivos. Essa condio pode ser modela-
da por meio de variveis binrias yi , tal que yi = 1 , se ai x ai +1 , yi = 0, caso contrrio, em que
a1 = 0, a2 = 2, a3 = 6, a4 = 10, e as restries
i y1 , 2 y1 + y2 , 3 y2 + y3 , 4 y3
y1 + y2 + y3 = 1

3.3.5 Relaes lgicas


Variveis binrias so usadas para relaes lgicas. Algumas dessas relaes so ilustradas a
seguir.

Figura 3.6 Funo linear por partes.


Captulo 3: Otimizao discreta 171

Suponha que existam cinco tipos de investimento financeiro, e seja xj a varivel binria de de-
ciso tal que
1 se o investimento j selecionado
xj =
0 caso contrrio
Considere agora as seguintes situaes e as restries representativas.
No mximo trs investimentos so selecionados.
x1 + x2 + x3 + x4 + x5 3
Exatamente um investimento selecionado.
x1 + x2 + x3 + x4 + x5 = 1
O investimento 1 ou o investimento 2 selecionado.
x1 + x2 1
Se o investimento 2 selecionado, ento o investimento 1 tambm selecionado.
x2 x1
Se os investimentos 2, 3 ou 4 so selecionados, ento o investimento 1 selecionado.

A primeira forma de representar essa condio


x2 + x3 + x4 3 x1 (3.5)
e a segunda forma
x2 x1
x3 x1 (3.6)
x4 x1
Ambas as representaes so equivalentes do ponto de vista de programao inteira, mas no
so equivalentes sob o ponto de vista de programao linear, em que as variveis so reais. Con-
sidere os conjuntos:
X B = solues binrias que satisfazem (3.5) ou (3.6)
X1 = {x2 + x3 + x4 3x1 , 0 xi 1, i = 1, 2, 3, 4}
X 2 = {x2 x1 , x3 x1 , x4 x1 , 0 xi 1, i = 1, 2, 3, 4}
Note que X B X 2 X 1. Por exemplo, os valores x2 = 1/ 2, x3 = x4 = 1/ 4, x1 = 1/ 3 satisfazem
(3.5), mas no satisfazem (3.6). O mtodo mais usado para resolver problemas de programao
inteira, denominado branch-and-bound e discutido na Seo 3.9.1, faz uso da programao linear
para achar a soluo tima inteira. Quanto menor o conjunto de solues factveis da programa-
o linear, menor o esforo computacional para achar a soluo tima inteira. Portanto, o con-
junto X 2 preferido em relao a X 1.

3.3.6 Representao de valores discretos


Considere um problema em que uma varivel x s pode assumir valores do conjunto discreto
{4, 6, 8, 12, 20, 24}. Para representar essa condio, defina as variveis binrias yi , i = 1, ..., 6 e
as restries
x = 4 y1 + 6 y2 + 8 y3 + 12 y4 + 20 y5 + 24 y6
y1 + y2 + y3 + y4 + y5 + y6 = 1
172 Pesquisa Operacional

3.4 FORMULAES DE PROBLEMAS CLSSICOS


Linguagens algbricas, criadas a partir da dcada de 1980, tiveram um grande impacto prti-
co para a resoluo de problemas de otimizao. Essas linguagens de alto nvel permitem que o usurio
escreva modelos genricos de programao linear e no-linear em um formato parecido com o
da notao algbrica. Alm disso, o modelo separado dos dados (armazenados em arquivos se-
parados), e independente do tamanho do problema. Desta forma, essas linguagens concentram
a ateno do usurio na modelagem, reduzem as fontes de erros, aceleram o desenvolvimento do
modelo e facilitam a compreenso e possveis modificaes no futuro.
Existem diversas linguagens populares, tais como GAMS, AMPL, MPL, AIMMS e, ainda, as
linguagens OPL, MOSEL e LINGO, desenvolvidas pelas empresas que produzem os pacotes de
otimizao CPLEX, XPRESS e LINDO. De modo geral, existem verses estudantis gratuitas que
o leitor pode usar para resolver os modelos apresentados neste livro. Outra ferramenta
computacional muito usada a planilha Excel, que contm um solver para resoluo de proble-
mas de dimenso relativamente pequena.1 O Excel, no entanto, no gera um modelo genrico
como as linguagens algbricas.
A seguir, apresentamos formulaes de diversos problemas clssicos e importantes de progra-
mao inteira.

3.4.1 Problemas da mochila


Problemas da mochila envolvem a escolha de itens a serem colocados em uma ou mais mochilas
de forma a maximizar uma funo de utilidade.

Mochila 0-1

Um exemplo de problema da mochila 0-1 a seleo de projetos. Considere n projetos e um ca-


pital b para investimento. O projeto j tem um custo aj e um retorno esperado pj. O problema con-
siste em selecionar os projetos que maximizam o retorno total esperado sem ultrapassar o limite
de capital.
Defina as variveis
1 se o projeto j selecionado
xj =
0 caso contrrio
O problema , ento, formulado como:
n
max p j x j (M1)
j =1
n
ajxj b (M2)
j =1

x Bn (M3)
A funo objetivo (M1) expressa a maximizao do retorno esperado, e a restrio (M2) indi-
ca que o capital b no pode ser excedido. A restrio (M3) representa o tipo das variveis.
Este problema denominado problema da mochila devido analogia do problema que envolve
a deciso de quais itens carregar em uma mochila sem exceder um dado limite de peso, e apare-

1 Para exemplos de aplicao de planilha eletrnica na soluo de problemas de pesquisa operacional, veja, por exemplo,
Lachtermacher (2004).
Captulo 3: Otimizao discreta 173

ce como subproblema em diversos problemas de otimizao combinatria. Quando existem ou-


tras restries, como, por exemplo, o volume da mochila, tem-se um problema da mochila
multidimensional.

Exemplo 3.7 Considere um capital para investimento b = 100 , n = 8 projetos, e os seguintes


vetores de parmetros:
p = [ p j ] = [41 33 14 25 32 32 9 19]
a = [a j ] = [47 40 17 27 34 23 5 44]
A soluo tima dada por x2 = x4 = x6 = x7 = 1, com valor 99. Esta soluo utiliza 40 + 27
+ 23 + 5 = 95 unidades do capital. n

Mochila inteira

Neste problema,2 a varivel de deciso x j 0, j = 1, ..., n , pode assumir um valor inteiro no-
negativo, isto , pode-se levar diversas unidades do mesmo item na mochila. A formulao idn-
tica da mochila 0-1, ao substituir-se x B n por x Z +n .

Mltiplas mochilas

Considere n itens que devem ser colocados em m mochilas de capacidades distintas bi, i = 1, ...,
m. Cada item j tem uma lucratividade pj e um peso wj, e o problema consiste em selecionar m
subconjuntos distintos de itens, tal que cada subconjunto ocupe uma capacidade de no mxi-
mo bi e o lucro total seja maximizado.3 Este problema ocorre em situaes de carregamento de
contineres4 e em situaes de corte nas indstrias de papel e ao.5
Defina as variveis
1 se o item j colocado na mochila i
xij =
0 caso contrrio
O problema formulado como:
m n
max p j xij (M4)
i =1 j =1
n
w j xij bi , i = 1, ..., m (M5)
j =1
m
xij 1, j = 1, ..., n (M6)
i =1

x B mn (M7)
A funo objetivo (M4) representa a maximizao do lucro total. As restries (M5) garantem
que a capacidade bi da mochila i no pode ser excedida. As restries (M6) indicam que se o item
j escolhido, ento ele colocado em uma nica mochila. A restrio (M7) representa o tipo das
variveis.

2 Um mtodo de soluo para este problema proposto em Yanasse e Soma (1987) e Yanasse et al. (2000).
3 Ver, por exemplo, Ferreira et al. (1996).
4 Eilon e Christofides (1971).
5 Sinuany-Stern e Winer (1994).
174 Pesquisa Operacional

Uma generalizao deste problema envolve a existncia de K tipos de peso w jk , k = 1, ..., K ,


e cada mochila i com K tipos de capacidade bik , k = 1, ..., K , de modo que a restrio (M5) assume a
n
forma wij xij bik , i = 1, ..., m, k = 1, ..., K. Essa generalizao modela a situao de carregar
j =1
m contineres (veculos) com um subconjunto de n itens, tal que existem limitantes no somen-
te no peso total, mas tambm em outras caractersticas de um item, tais como volume e valor.6

Empacotamento em mochilas

No problema anterior, o nmero de mochilas dado e alguns itens podem no ser colocados nas
mochilas. No problema de empacotamento em mochilas, conhecido como bin packing, deseja-se
determinar o nmero mnimo de mochilas de mesma capacidade b que empacotem n itens de
peso wj, j = 1, ..., n. Este um dos diversos problemas de empacotamento, que envolvem tam-
bm o arranjo de objetos em dispositivos bidimensionais e tridimensionais,7 tais como nos pro-
blemas de carregamentos de produtos sobre paletes ou dentro de contineres ou caminhes.
Defina as variveis
1 se a mochila i usada
yi =
0 caso contrrio
1 se o item j colocado na mochila i
xij =
0 caso contrrio
Tem-se, ento, a seguinte formulao:
n
min yi (M8)
i =1
n
xij = 1, j = 1, ..., n (M9)
i =1
n
w j xij byi , i = 1, ..., n (M10)
j =1

x B nn , y B n (M11)
A funo objetivo (M8) minimiza o nmero de mochilas. Note que o limitante superior do
nmero de mochilas igual ao nmero de itens n. As restries (M9) asseguram que cada item j
colocado em uma nica mochila, e as restries (M10) impem que se a mochila i usada, ento
sua capacidade b no pode ser excedida. A restrio (M11) indica o tipo das variveis.

3.4.2 Problemas de corte


Em diversos processos industriais, itens so produzidos a partir do corte de peas maiores que
esto disponveis em estoque ou so fabricadas na prpria indstria ou, ainda, compradas de ter-
ceiros. Essas peas podem ter apenas uma dimenso relevante para o problema de corte
(unidimensional), por exemplo, o comprimento, tais como barras de ao, bobinas de papel, rolos
de filme; ou duas dimenses, como o comprimento e a largura, por exemplo, placas de madeira,
tecido, chapas de ao; ou, ainda, trs dimenses, tais como blocos de matria-prima para colches e

6 Uma heurstica para este problema proposta por Ahuja e Cunha (2005).
7 Problemas de carregamento tridimensionais so complexos e usualmente resolvidos por heursticas; ver Silva et al. (2003), Lins
et al. (2002) e Kohayakawa et al. (2004).
Captulo 3: Otimizao discreta 175

travesseiros. Apresenta-se a seguir o problema de corte unidimensional, discutido brevemente na Seo


2.2.7, cuja modelagem pode ser estendida para problemas bidimensionais e tridimensionais.

Corte unidimensional

Este problema consiste em cortar barras disponveis de tamanho nico L, para a produo de m
tipos de itens (barras de tamanhos menores) com tamanhos l1, l2, ..., lm, e demandas, b1, b2, ..., bm,
respectivamente. O objetivo minimizar o nmero de barras usadas, dado um limitante superior
de barras disponveis n. A primeira formulao deste problema atribuda a Kantorovich (1939),
e reproduzida a seguir.
Defina as variveis
1 se a barra i usada
yi =
0 caso contrrio
xij = nmero de vezes que o item j cortado na barra i.
Tem-se, ento, o seguinte modelo:
n
min yi (C1)
i =1
n
xij b j , j = 1, ..., m (C2)
i =1
m
l j xij Lyi , i = 1, ..., n (C3)
j =1
y B n , x Z +mn (C4)
A funo objetivo (C1) representa a minimizao do nmero de barras. As restries (C2) as-
seguram que cada demanda bj atendida e as restries (C3) garantem que se a barra i usada,
ento o comprimento total dos itens limitado pelo comprimento L da barra. A restrio (C4)
indica o tipo das variveis.
O problema de empacotamento em mochilas e o problema de corte unidimensional so si-
milares. Nos dois problemas, deseja-se minimizar o nmero de objetos com um dado tamanho
e, se o objeto i usado, os itens colocados no objeto ou cortados do objeto no podem exceder
esse tamanho. O corte de itens a partir de objetos pode ser visto como empacotar itens den-
tro de objetos, por isso, problemas de corte e empacotamento tm sido estudados em conjun-
to na literatura.8
O modelo anterior tem vrias restries da mochila, uma para cada barra i. Como o objetivo
minimizar o nmero de barras a serem cortadas, basta considerar o conjunto de solues in-
teiras que satisfaz a restrio da mochila de forma mxima, isto , a capacidade remanescente da
m
mochila zero ou uma frao de min l j . Essas solues inteiras so chamadas padres de corte
j =1
ou de empacotamento.
Para L = 11, m = 4, l1 = 2, l2 = 3, l3 = 3,5, l4 = 4, a Figura 3.7 ilustra alguns padres de cor-
te. As bordas em negrito correspondem a sobras da barra.
Seja n o nmero total de possveis padres de corte, e para cada padro de corte j, j=1, 2, ...,
n, associe um vetor m-dimensional a j = ( a1 j , ..., amj ), tal que
aij = nmero de barras do tipo i no padro j

8 Dyckhoff et al. (1997) e Waescher et al. (2006).


176 Pesquisa Operacional

Figura 3.7 Exemplos de padres de corte.

Para o exemplo da Figura 3.7, tem-se:

5 0 1 0 0 2
a1 = 0 a = 1 a = 3 a = 0 a = 1 a = 0
0 2 0 3 0 4 3 5 1 6 2
0 2 0 0 1 0
Seja b = o vetor de demandas, e defina a varivel
xj = nmero de barras cortadas conforme o padro de corte j
O modelo matemtico a seguir foi proposto por Gilmore e Gomory (1961, 1963) e uma al-
ternativa ao modelo de Kantorovich (ver Seo 2.2.7):
n
min x j (C5)
j =1
n
a jxj = b (C6)
j =1

x Z +n (C7)
A funo objetivo (C5) minimiza o nmero de barras cortadas de acordo com os n padres.
As restries (C6) garantem o atendimento das demandas, enquanto (C7) indica o tipo das va-
riveis. Este modelo muito utilizado na prtica, com resoluo por meio de programao linear
e tcnicas de arredondamento de variveis.

Corte bidimensional

A seguir apresentamos um exemplo de um problema de gerao de padro de corte bidi-


mensional. Este problema envolve apenas uma placa que deve ser cortada em um nmero de peas
retangulares de modo a otimizar algum objetivo, por exemplo, maximizar a utilizao da placa.
Considere uma placa retangular (L, W) de comprimento L e largura W a ser cortada em m tipos de
Captulo 3: Otimizao discreta 177

peas retangulares menores; a pea do tipo i tem tamanho (li, wi) e valor vi. Sejam Pi e Qi o nme-
ro mnimo e mximo de peas do tipo i que podem ser cortadas da placa, 0 Pi Qi , i = 1, ..., m.
Admita que
L, W, li, wi, i = 1, ..., m so inteiros.
Os cortes so ortogonais a um lado da placa.
A orientao das peas fixa, isto , uma pea de comprimento li e largura wi distinta de
uma pea de comprimento li e largura wi, li wi .
Defina
1 se a pea do tipo i, quando cortada com vrtice inferior esquerda com

ailwrs = coordenadas (l , w) exclui o ponto ( r , s ) (veja Figura 3.8)
0 caso contrrio

Para impedir contagem dupla quando duas peas so adjacentes, defina
1 se 0 l r l + li 1 L 1 e 0 w s w + wi 1 W 1;
ailwrs =
0 caso contrrio.
Seja X = {0, 1, 2, ..., L 1} o conjunto de comprimentos para localizao do vrtice inferior
esquerda do corte das peas e Y = {0, 1, 2, ...,W 1} o conjunto correspondente para as larguras.
Defina as variveis
1 se a pea do tipo i cortada com seu vrtice inferior esquerda no ponto (l , w),

xilw = tal que 0 l L li e 0 w W wi ;
0 caso contrrio.

O problema de corte bidimensional no guilhotinado pode ser formulado da seguinte ma-
neira:9
m
max v x
i =1 l X wY
i ilw (C8)
m
ailwrs xilw 1, r X , s Y (C9)
i =1 l X wY

Pi xipq Qi , i = 1, ..., m (C10)


l X wY

x B m| X ||Y | (C11)
A funo objetivo (C8) representa a maximizao da utilidade total das peas cortadas. As res-
tries (C9) garantem que qualquer ponto (r, s) excludo no mximo por uma pea (restries
de sobreposio de peas), e as restries (C10) foram que o nmero de peas de cada tipo i esteja
situado na faixa requerida. A restrio (C11) indica o tipo das variveis.
O problema de carregamento de paletes com caixas iguais pode ser visto como um caso par-
ticular do modelo (C8)(C11) em que temos apenas dois tipos de peas, com tamanhos (l, w) e
(w, l), correspondendo s duas maneiras de arranjar a face inferior das caixas sobre o palete.10
Outro exemplo de problema de corte bidimensional, que aparece em diversos processos indus-
triais, envolve os chamados padres guilhotinados, em que os cortes so realizados conforme uma

9 Os conjuntos X e Y podem ser reduzidos, sem perda de generalidade, redefinindo-os como as combinaes lineares inteiras
dos comprimentos l1, l2, ..., lm e larguras w1, w2, ..., wm, respectivamente; veja Beasley (1985).
10 Ver, por exemplo, Alvarez-Valdes et al. (2005) e Birgin et al. (2005).
178 Pesquisa Operacional

Figura 3.8 Localizao de um corte de pea.

guilhotina de papel.11 Devido alta complexidade dos problemas de corte e empacotamento, estes
so, em geral, resolvidos por mtodos heursticos ou algoritmos aproximados.12

3.4.3 Problemas de designao


Este tipo de problema envolve a designao (ou atribuio) de tarefas a agentes, que so termos
genricos com significado especfico em cada problema prtico.

Designao

Este o problema mais simples da categoria e envolve n tarefas e n agentes, tal que cada tarefa
executada por um nico agente e cada agente executa uma nica tarefa. A execuo da tarefa j
pelo agente i tem um custo cij. O problema, ento, consiste em designar tarefas a agentes de modo
a minimizar o custo total.
Este problema ocorre em diversas aplicaes de forma isolada ou como subproblema de pro-
blemas mais complexos. Como exemplos, pode-se citar: designao de fraes de um lote de um
item para processamento em mquinas,13 designao de centros de distribuio de jornais aos
centros de impresso de jornais,14 e designao de clientes em roteamento de veculos.15
Defina as variveis
1 se a tarefa j designada ao agente i
xij =
0 caso contrrio
O modelo que representa o problema dado por (ver Seo 2.2.2):
n n
min cij xij (D1)
i =1 j =1
n
xij = 1, j = 1, ..., n (D2)
i =1

11 Ver, por exemplo, Oliveira e Ferreira (1990), Yanasse et al. (1991), Carnieri et al. (1994), Christofides e Hadjiconstantinou (1995),
Morabito e Arenales (2000) e Parada et al. (2000).
12 Dyckhoff e Finke (1992) e Waescher et al. (2006); veja tambm algoritmos aproximados em Miyazawa e Wakabayashi (2003).
13 LeBlanc et al. (1999).
14 Ree e Yoon (1996).
15 Fisher e Jaikumar (1981).
Captulo 3: Otimizao discreta 179
n
xij = 1, i = 1, ..., n (D3)
j =1
x B nn (D4)
A funo objetivo (D1) minimiza o custo total de designao de tarefas a agentes. As restries
(D2) e (D3) asseguram que cada tarefa j designada a um nico agente, e cada agente i executa
exatamente uma tarefa. A restrio (D4) indica o tipo das variveis.
Como mencionado na Seo 2.2.2, pode-se demonstrar que a soluo tima do problema de
programao linear em que as variveis x R+nn tambm a soluo tima do problema anterior,
isto , a soluo tima do problema relaxado de programao linear inteira. Este problema dis-
cutido na Seo 4.3.1.

Designao generalizada

Neste problema, tem-se m agentes e n tarefas, com m < n; cada tarefa deve ser executada por um
nico agente, e um agente pode executar mais de uma tarefa. A execuo da tarefa j pelo agente i
requer uma quantidade aij de recurso do agente i, com custo cij. O agente i tem capacidade de recurso
bi. Ao se utilizarem as variveis binrias do problema anterior, obtm-se o seguinte modelo:
m n
min cij xij (D5)
i =1 j =1
m
xij = 1, j = 1, ..., n (D6)
i =1
n
aij xij bi , i = 1, ..., m (D7)
j =1
x B mn (D8)
A funo objetivo (D5) minimiza o custo total de designao de tarefas a agentes. As restries
(D6) garantem que cada tarefa j executada por um nico agente, e as restries (D7) impem que
a capacidade bi de cada agente i no excedida. A restrio (D8) indica o tipo das variveis. Ao
se associarem agentes com mochilas e itens com tarefas, nota-se a semelhana do problema de
designao generalizada com o problema de empacotamento em mochilas. No primeiro pro-
blema, o nmero de mochilas dado, enquanto no segundo este nmero deve ser minimizado.

Exemplo 3.8 Considere m = 3 agentes, n = 8 tarefas e os seguintes parmetros:

15 61 3 94 86 68 69 51

C = [cij] = 21 28 76 48 54 85 39 72
21 21 46 43 21 3 84 44

31 69 14 87 51 65 35 54

A = [aij] = 23 20 71 86 91 57 30 74

20 55 39 60 83 67 35 32

b = [bi ] = [100 100 100]


A soluo tima dada por x13 = x15 = x17 = 1; x21 = x22 = x26 = 1; x34 = x38 = 1, isto , as
tarefas 3, 5 e 7 so designadas ao agente 1, as tarefas 1, 2 e 6 so designadas ao agente 2, e as ta-
180 Pesquisa Operacional

refas 4 e 8 so designadas ao agente 3. O valor da soluo tima 379. Note que somente o agente
3 tem folga de recurso de 8 unidades. Se a capacidade dos agentes 1 ou 2 reduzida para 99,
ento o exemplo no tem soluo factvel. n

Designao generalizada com mltiplos recursos

Este problema envolve mltiplos recursos k = 1, ..., r, associados a cada agente i. Seja aijk a quan-
tidade do recurso k usada pelo agente i para executar a tarefa j, e bik a quantidade do recurso k
disponvel para o agente i. A nica alterao em relao ao modelo (D58) ocorre nas restries
(D7), que so substitudas pelas restries
n
aijk xij bik , i = 1,..., m, k = 1,..., r (D9)
j =1

que restringem a utilizao do recurso k do agente i. Este problema aparece em diversas aplica-
es, tais como alocao de bases de dados entre ns de um sistema de computadores distribu-
dos16 e programao da produo em job shop.17

Designao generalizada com mltiplos nveis

Neste problema, cada tarefa j executada por um nico agente em um nvel de eficincia k = 1,
..., l. Seja aijk a quantidade do recurso usada pelo agente i no nvel k para executar a tarefa j, e bi
a quantidade do recurso disponvel para o agente i. O custo de designar a tarefa j ao agente i no
nvel k cijk. Em problemas reais, a relao entre custo e utilizao de recursos tal que, se
aijk ' < aijk '', ento cijk ' > cijk ''.
Defina as variveis
1 se a tarefa j designada ao agente i no nvel k
xijk =
0 caso contrrio
O problema , ento, formulado como
m n l
min cijk xijk (D10)
i =1 j =1 k =1
m l
xijk = 1, j = 1, ..., n (D11)
i =1 k =1
n l
aijk xijk bi , i = 1, ..., m (D12)
j =1 k =1

x B mnl
(D13)
A funo objetivo (D10) expressa a minimizao do custo total de designao de tarefas a agen-
tes nos nveis. As restries (D11) garantem que cada tarefa j executada por um nico agente i
em um nvel k, e as restries (D12) impem que a capacidade bi de cada agente i no excedi-
da. A restrio (D13) indica o tipo das variveis.
Este problema aparece na designao de produo em mquinas,18 em que cijk representa o
custo (preparao, produo e estoque por unidade de tempo) de designar o item j mquina i

16 Pirkul (1986).
17 Shtub e Kogan (1998).
18 Glover et al. (1979).
Captulo 3: Otimizao discreta 181

com tamanho de lote k. Portanto, para um par especfico item-mquina, um lote pequeno resulta
em alto custo e vice-versa.

Designao quadrtica

Este problema19 envolve duas decises de designao simultneas e melhor ilustrado por meio do
layout de facilidades.20 Existem n facilidades a serem designadas a n locais, tal que cada instalao
designada a um nico local, e cada local contm exatamente uma facilidade. A distncia do lo-
cal k para o local l ckl e o fluxo de volume da facilidade i para a facilidade j fij. O problema con-
siste em designar facilidade a locais de forma que o produto fluxo-distncia total seja minimizado.
Defina as variveis
1 se a facilidade i designada ao local k
xik =
0 caso contrrio.
O modelo para este problema dado por
n n n n
min fij ckl xik x jl (D14)
i =1 j =1 k =1 l =1
j i lk
sujeito a (D2D4).
A funo objetivo (D14) representa a minimizao do produto total fluxo-distncia. Note que
o termo fijckl ocorre somente se xik = 1 e xjl = 1, portanto, a funo objetivo quadrtica.

3.4.4 Problemas de cobertura, partio e empacotamento de conjuntos


Estes problemas tm uma estrutura semelhante e envolvem a seleo de uma coleo de
subconjuntos S j , j = 1, ..., n de um conjunto S, de forma que a coleo constitua uma co-
bertura, uma partio ou um empacotamento com relao a S. Para ilustrar estes problemas,
considere o seguinte exemplo. Seja o conjunto S = {1, 2,3, 4,5} , e os seguintes subconjuntos de S,
S1 = {1, 2}, S2 = {1,3,5}, S3 = {2, 4,5}, S4 = {3}, S5 = {1}, S6 = {4,5}
Uma cobertura de S requer que a unio dos subconjuntos seja igual a S, por exemplo,
S1 S3 S 4 = S . Um empacotamento envolve uma unio de subconjuntos disjuntos, por exem-
plo, a unio S 4 S5 S6 um empacotamento, pois S 4 S5 S6 = . Uma partio de S
uma cobertura e um empacotamento com relao a S. Os subconjuntos S1 , S4 , S6 constituem
uma partio de S, pois S1 S4 S6 = S e S1 S4 S6 = . A Figura 3.9 ilustra graficamente
os exemplos dados para cobertura, empacotamento e partio.
De modo geral, um custo ou valor cj est associado Sj, e os problemas de otimizao com-
binatria associados podem ser assim enunciados. Selecione uma coleo de subconjuntos de
custo mnimo para os problemas de cobertura e partio, e de valor mximo para o problema de
empacotamento, respectivamente.
A seguir, so apresentados problemas prticos que podem ser modelados como problemas de
cobertura, partio e empacotamento.
A localizao de facilidades de emergncia, tais como ambulncias e estaes de bombeiros,
foi um dos primeiros tipos de problemas modelado como um problema de cobertura.20 Suponha
que cada subconjunto Sj, j = 1, ..., 6, definido anteriormente, tal que:
Sj = subconjunto de bairros de uma cidade que podem ser atendidos dentro de 10 minutos (ou dis-
tncia especificada) a partir de uma facilidade de atendimento j com custo de instalao cj.
19 Uma reviso de abordagens sobre estes problemas pode ser visto em Loiola et al. (2004). Para um exemplo de aplicao no
transporte de carga em redes do tipo hub-ad-spoke, ver Silva e Cunha (2005).
20 Toregas et al. (1971).
182 Pesquisa Operacional

Figura 3.9 Ilustrao dos problemas de empacotamento, cobertura e partio.

Determine os locais das facilidades de modo que todos os bairros sejam atendidos por pelo
menos uma facilidade, e o custo total de instalao seja minimizado.
Defina as variveis:
1 se a facilidade j selecionada
xj =
0 caso contrrio.
A formulao do problema a seguinte:
6
min cjxj (CO1)
j =1

x1 + x2 + x5 1 (bairro 1)
x1 + x3 1 (bairro 2)
x2 + x4 1 (bairro 3) (CO2)
x3 + x6 1 (bairro 4)
x2 + x3 + x6 1 (bairro 5)
x B6 (CO3)
A funo objetivo (CO1) expressa a minimizao do custo total de instalao de facilidades.
As restries (CO2) indicam que cada bairro do conjunto S = {1, 2, 3, 4, 5}, nesta ordem, tem
de ser atendido por pelo menos uma facilidade. A restrio (CO3) indica o tipo das variveis.
De maneira genrica, o problema de cobertura de conjuntos pode ser descrito da seguinte
maneira:
min cT x
Ax 1
x Bn ,
em que 1 um vetor (m 1) com componentes iguais a 1, e os elementos da matriz de incidn-
cia A so dados por
1 se i S j
aij =
0 caso contrrio
Captulo 3: Otimizao discreta 183

No exemplo anterior, esta matriz dada por


1 1 0 0 1 0
1 0 1 0 0 0
A = 0 1 0 1 0 0

0 0 1 0 0 1
0 1 1 0 0 1

Exemplo 3.9 Para ilustrar este problema, considere c = [20 76 16 23 23 18] , tal que c1 = 20
representa o custo de S1, e assim por diante at c6 = 18, que representa o custo de S6. A soluo
tima x1 = x3 = x4 = 1 , com valor 59, e ilustrada na Figura 3.9. n

Problemas de programao de tripulao de aeronaves podem ser modelados como problemas


de partio ou cobertura.21 Para uma dada programao diria ou semanal de vos, a empresa
deve alocar uma tripulao para cada vo, de forma a atender a regras de segurana, requisitos
de sindicato, poltica da empresa (restries) e minimizar os custos. A unidade bsica de plane-
jamento uma rota ou pairing, que consiste em uma seqncia de vos atendida por uma tripu-
lao, iniciada e terminada na cidade base em que esta reside. A formao de rotas que atendem
as restries acima descritas e o clculo de seus custos uma tarefa complexa, realizada por meio
de programa computacional.

Exemplo 3.10 A Figura 3.10 ilustra as rotas entre os aeroportos de Curitiba (CR), Campinas (CA)
e Belo Horizonte (BH), com os respectivos nmeros dos vos (6 vos). A Tabela 3.1 mostra to-
das as 24 possveis rotas com trs vos. Cada rota j tem um custo cj, e o objetivo minimizar o
custo total de forma que um vo seja atendido exatamente por uma tripulao. Trata-se, portanto,
de um problema de partio do conjunto S = {1,...,6}.
Defina as variveis:
1 se a rota j selecionada
xj =
0 caso contrrio
O custo c j de cada rota j = 1, ..., 24 mostrado na funo objetivo da seguinte formulao
do problema:
min 20 x1 + 16 x2 + 17 x3 + 18 x4 + 20 x5 + 13 x6 + 14 x7 + 15 x8 + 20 x9 + 21x10 + 31x11 + 15 x12 +
11x13 + 43x14 + 54 x15 + 45 x16 + 34 x17 + 23x18 + 34 x19 + 12 x20 + 34 x21 + 11x22 + 43x23 + 12 x24

Figura 3.10 Vos entre cidades.

21 Arabeyre et al. (1969). Muitos outros problemas tambm podem ser modelados como problemas de partio ou cobertura,
por exemplo, ver Xavier e Oliveira (2004), Gomes e Palhanob (2006).
184 Pesquisa Operacional

Tabela 3.1
Rotas com trs vos.

Rotas Rotas Rotas

1 1-3-5 9 3-5-1 17 5-1-3

2 1-3-6 10 3-5-2 18 5-1-4

3 1-4-5 11 3-6-1 19 5-2-3

4 1-4-6 12 3-6-2 20 5-2-4

5 2-3-5 13 4-5-1 21 6-1-3

6 2-3-6 14 4-5-2 22 6-1-4

7 2-4-5 15 4-6-1 23 6-2-3

8 2-4-6 16 4-6-2 24 6-2-4

x1 + x2 + x3 + x4 + x9 + x11 + x13 + x15 + x17 + x18 + x21 + x22 = 1 (vo1)


x5 + x6 + x7 + x8 + x10 + x12 + x14 + x16 + x19 + x20 + x23 + x24 = 1 (vo 2)
x1 + x2 + x5 + x6 + x9 + x10 + x11 + x12 + x17 + x19 + x21 + x23 = 1 (vo 3)
x3 + x4 + x7 + x8 + x13 + x14 + x15 + x16 + x18 + x20 + x22 + x24 = 1 (vo 4) (P1)
x1 + x3 + x5 + x7 + x9 + x10 + x13 + x14 + x17 + x18 + x19 + x20 = 1 (vo 5)
x2 + x4 + x6 + x8 + x11 + x12 + x15 + x16 + x21 + x22 + x23 + x24 = 1 (vo 6)

x B 24 (P2)
A funo objetivo expressa a minimizao do custo total das rotas. As restries (P1) indicam
que cada vo tem de ser atendido por uma nica tripulao, e a restrio (P2) estabelece o tipo
das variveis. A soluo tima deste exemplo x6 = x13 = 1 , com valor 24.
n

De forma geral, o problema de partio de conjuntos pode ser descrito da seguinte maneira:
min cT x
Ax = 1
x Bn
em que o vetor 1 e a matriz de incidncia A so idnticos ao problema de cobertura.
Para ilustrar o problema de empacotamento de conjuntos, considere uma grande empresa com
lojas de departamentos distribudas no pas, em que seu setor de logstica controla a cadeia de
suprimentos que conecta o vendedor (produtor), os centros de distribuio e as lojas de varejo.
Grande parte das operaes envolve a contratao de transportadoras para enviar mercadorias
entre cidades. Para tal, a empresa promove um leilo entre transportadoras para vender trechos,
em que cada trecho consiste no transporte entre duas cidades. Em um leilo convencional, s so
permitidos lances em trechos individuais, enquanto em um leilo combinatrio,22 permitem-se
22 Ledyard et al. (2000), Vries e Vohra (2003).
Captulo 3: Otimizao discreta 185

lances em combinaes de trechos. Leiles combinatrios comearam a ser praticados a partir da


dcada de 1980 para permitir economias. Por exemplo, uma transportadora faz um lance de R$80
mil para o trecho A-B entre as cidades A e B, e outra transportadora faz um lance de R$30 mil
para o trecho C-A entre as cidades C e A. Uma terceira transportadora faz um lance de R$100
mil para o conjunto de trechos A-B e C-A. Obviamente, o ltimo lance o vencedor, e a empre-
sa economiza R$10 mil em relao contratao dos trechos individuais propostos pelas duas
primeiras transportadoras.
Usando a terminologia de conjuntos, o conjunto S consiste de todos os trechos e Sj,
j = 1, ...., J , representa os subconjuntos distintos de trechos propostos por todas as transporta-
doras k = 1, ..., K . Considere os seguintes parmetros:
1 se a transportadora k quer o subconjunto S j que contm o trecho i
aijk =
0 caso contrrio
Rj = soma dos valores individuais dos trechos do subconjunto Sj, isto , o valor pago pela em-
presa se contratasse uma transportadora para cada trecho de Sj. Por exemplo, se Sj contm os tre-
chos A-B e C-A mencionados acima, com valores individuais de R$80 mil e R$30 mil,
respectivamente, ento Rj resulta em R$110 mil
bjk = valor mnimo para a transportadora k conseguir o subconjunto Sj. Por exemplo, se houver
um lance de R$100 mil da transportadora k para os trechos A-B e C-A em Sj, ento bjk corres-
ponde a esse valor.
Defina as variveis
1 se o subconjunto S j designado tranportadora k
x jk =
0 caso contrrio
Este problema , ento, modelado da seguinte maneira:
J K
max ( R j b jk ) x jk (E1)
j =1 k =1

J K
aijk x jk 1, trecho i S (E2)
j =1 k =1

x B JK
(E3)
A funo objetivo (E1) representa a economia total obtida pela empresa de lojas de departa-
mento. As restries (E2) impem que cada trecho i pode ser alocado a no mximo um
subconjunto Sj e transportadora k, e a restrio (E3) indica o tipo das variveis.
De forma geral, o problema de empacotamento consiste em selecionar subconjuntos dis-
juntos do conjunto S de forma a maximizar o valor do empacotamento. Sua formulao gen-
rica dada por
max cT x
Ax 1
x Bn
em que A a matriz de incidncia bidimensional, como definida no problema de cobertura. Note,
no exemplo acima, que A uma matriz tridimensional e a varivel binria bidimensional. Ob-
serve, tambm, que, se a restrio (C10) do problema de corte bidimensional (Seo 3.4.2) eli-
minada, ento este um problema de empacotamento com matriz de incidncia quadrimensional
e varivel binria tridimensional.
186 Pesquisa Operacional

3.4.5 Problemas de caixeiro-viajante


Problemas de caixeiro-viajante (CV) envolvem um conjunto de cidades, em que o caixeiro sai de
uma cidade base ou um depsito, visita todas as cidades ou um subconjunto delas somente uma
vez, e retorna cidade base de modo a otimizar um ou mais objetivos. Problemas de caixeiro-via-
jante pertencem classe de problemas de roteamento em ns, e so definidos em grafos orienta-
dos ou no orientados (ver Seo 4.1).

Caixeiro-viajante distncia
Iniciamos pelo problema clssico e mais importante, objeto de grande nmero de trabalhos na
literatura, que trata da minimizao da distncia da rota percorrida. Considere um grafo no orien-
tado G = (N, E), em que o conjunto N consiste de n cidades e E representa o conjunto de ares-
tas entre cidades. Suponha que G um grafo completo, isto , para qualquer par de cidades
i, j N , i j , existe uma aresta (i, j ). A distncia entre as cidades i e j cij, e quando cij = cji, o
problema dito simtrico; caso contrrio, chamado de assimtrico. Um caixeiro deve visitar n
cidades, passando por cada cidade somente uma vez, e retornar cidade de partida. Este per-
curso denominado ciclo hamiltoniano23 do grafo G, e o problema consiste em determinar o ci-
clo hamiltoniano, ou rota, de distncia mnima. Este um dos problemas combinatrios mais
conhecidos e pesquisados devido sua aplicao em diversas reas, tais como manufatura de cir-
cuitos, programao da produo, telecomunicaes e seqenciamento de DNA.
Defina as variveis
1 se o caixeiro vai diretamente da cidade i cidade j, i j
xij =
0 caso contrrio
e considere o seguinte modelo:
n
min cij xij (CV1)
i =1 j >i

x +x
j< i
ji
j >i
ij = 2, i = 1, ..., n (CV2)

x B n ( n1) / 2 (CV3)
A funo objetivo (CV1) expressa a minimizao da distncia total da rota, e as restries (CV2)
impem que cada cidade tenha somente uma cidade sucessora imediata e uma cidade predecessora
imediata. A restrio (CV3) indica o tipo das variveis. Uma soluo para o modelo anterior pode
gerar sub-rotas desconexas, como mostra a Figura 3.11, para um exemplo com n = 7 cidades.
Seja S uma sub-rota, por exemplo, S = {1, 2, 3, 4} na Figura 3.11. A eliminao de sub-rotas
pode ser obtida atravs do conjunto de restries
n

i S j S
xij + xij 2, S N , 3 S ,
i S j S 2 (CV4)
j >i j >i

que garantem que, para cada conjunto S, existem no mnimo duas arestas entre as cidades de S e as
cidades no pertencentes a S. A cardinalidade de S no mnimo 3, pois um ciclo em um grafo no
n
orientado tem pelo menos 3 ns, e no mximo , pois ao se eliminar ciclos com k ns, eliminam-
2
se ciclos com n-k ns. Por exemplo, a restrio que elimina a sub-rota S = {1, 2,3, 4} dada por:
x15 + x16 + x17 + x25 + x26 + x27 + x35 + x36 + x37 + x45 + x46 + x47 2

23. Em homenagem a R. Hamilton que props um jogo que consistia em determinar uma rota iniciando e terminando no mesmo
vrtice de um dodecaedro e passando por todos os vrtices sem repetir uma visita (ver, por exemplo, Goldberg e Luna, 2000).
Captulo 3: Otimizao discreta 187

Uma forma alternativa de eliminao de sub-rotas dada por


n
xij S 1, S N, 3 S
2
(CV5)
i S j S
j >i
que corresponde a eliminar uma aresta da sub-rota. Por exemplo, a sub-rota S = {1, 2,3, 4} eli-
minada ao se impor
x12 + x23 + x34 + x14 3
Como o nmero de subconjuntos distintos de um conjunto de cardinalidade k 2k, segue-se
que os conjuntos de restries (CV4) e (CV5) tm cardinalidade da ordem de 2k, k 6 , mostrando
o crescimento exponencial dessas restries com o nmero de cidades. Para k 5 , somente as
restries (CV2) impedem a ocorrncia de sub-rotas.
Em problemas definidos em um grafo orientado completo G=(N,E), como, por exemplo
em problemas assimtricos, isto , cij cji, em que E agora representa o conjunto de arcos, a for-
mulao do caixeiro-viajante alterada para
n n
min cij xij
i =1 j =1
j i
n
xij = 1, j = 1, ..., n, ji (CV6)
i =1
n
xij = 1, i = 1, ..., n, i j (CV7)
j =1

x B n ( n1) (CV8)
e as restries (CV4) e (CV5) tornam-se
n
xij 1, S N , 2 S N
2 (CV9)
i S , j S

n
xij S 1, S N, 2 S
2 (CV10)
i S j S

Note que as restries (CV6) e (CV7) correspondem s restries do problema de designao.


A restrio (CV8) mostra que o nmero de variveis o dobro em relao ao caso simtrico. Alm

Figura 3.11 Ilustrao de sub-rotas.


188 Pesquisa Operacional

disso, cada rota deve entrar e sair de cada subconjunto S de cidades. Assim, a eliminao de uma
sub-rota requer que a rota deixe cada subconjunto S pelo menos uma vez, e isso expresso pe-
las restries (CV9). As restries (CV10) tm a mesma interpretao de (CV5).

Exemplo 3.11 Considere o seguinte exemplo de um problema simtrico de caixeiro-viajante com


12 cidades, e com distncia euclidiana ( xi x j ) 2 + ( yi y j ) 2 entre as cidades i e j. As coorde-
nadas ( xi , yi ) das 12 cidades so indicadas a seguir e ilustradas na Figura 3.12(a). Por exemplo,
as coordenadas da cidade 1 so ( x1 , y1 ) = (43, 23) .

x = [43 58 53 21 78 46 79 60 42 87 77 99]
y = [23 76 64 38 68 57 6 5 30 2 97 79]
A Figura 3.12(b) mostra a soluo do exemplo sem incluir restries de sub-rotas. A soluo
resultante tem distncia total 237,828, mas infactvel, pois apresenta quatro sub-rotas, tais que

Sub-rotas Soluo
1) 1 4 9 1 1) x1, 4 = x1,9 = x4,9 = 1
2) 6 2 3 6 2) x2,3 = x2, 6 = x3, 6 = 1
3) 5 11 12 5 3) x5,11 = x5,12 = x11,12 = 1
4) 10 7 8 10 4) x7 ,8 = x7 ,10 = x8,10 = 1

Para eliminar essas sub-rotas, incluem-se as seguintes restries:


x1, 4 + x4,9 + x1,9 2
x 2 , 6 + x 2 , 3 + x 3, 6 2
x5,11 + x11,12 + x5,12 2
x7 ,10 + x7 ,8 + x8,10 2
A Figura 3.12(c) mostra a rota tima com distncia total 283,635, e soluo
x1,8 = x1,9 = x2,3 = x2,11 = x3,6 = x4,6 = x4,9 = x5,10 = x5,12 = x7,8 = x7,10 = x11,12 = 1
n

m-caixeiros-viajantes distncia

Este problema difere do problema anterior pela existncia de m caixeiros-viajantes que saem de
um depsito, denotado por 0, para visitar um conjunto de n cidades. Seja N = {0,1,..., n} e ad-
mita que o grafo orientado G=(N,E) completo. O objetivo determinar m rotas, todas par-
tindo do depsito e retornando ao depsito, de forma a minimizar a distncia total percorrida.
Este problema pode ser formulado como:
n n
min cij xij (CV11)
i=0 j=0
j i
n

x
j =1
0j =m (CV12)
n

x
i =1
i0 =m (CV13)

(CV6) (CV7)
Captulo 3: Otimizao discreta 189

n
xij S 1, S \ {0} N , 2 S (CV14)
i S j S 2
x B n ( n1)+ 2 n (CV15)
A diferena do m-caixeiro-viajante em relao a um nico caixeiro-viajante expressa pelas res-
tries (CV12) e (CV13), que garantem que m caixeiros saem do depsito e que eles retornam ao
depsito. Note que os subconjuntos S\{0} no contm o depsito nas restries de eliminao de
sub-rotas (CV14).

Caixeiro-viajante aquisio

Este problema consiste em determinar uma rota de custo mnimo por meio de um subconjunto
de mercados, tal que o custo total a soma dos custos de viagem e da aquisio de produtos.
Considere um depsito denotado por 0, um conjunto de mercados M = {1, ..., n}, e um con-
junto de produtos K = {1, ..., m}. Seja G = ( N , E ) um grafo no orientado em que N = {0} M
o conjunto de ns, e E = {(i, j ) : i, j N } o conjunto de arestas. Cada produto K pode ser ad-
quirido em um subconjunto M k de mercados. O nmero de unidades do produto k a ser adqui-
rido igual a dk e somente qki unidades de k esto disponveis no mercado i. Admita que

Figura 3.12 Exemplo de problema de caixeiro-viajante.


190 Pesquisa Operacional

0 < qki d k e qkj d k para todo k K e i M k . O preo de produto k no mercado i


jM k \{i}
bki , e o custo de viagem na aresta e = (i, j ) representado por ce.
O problema do caixeiro-viajante de aquisio (traveling purchaser problem) consiste em determi-
nar um ciclo em G que passe pelo depsito e um subconjunto de mercados tal que todos os pro-
dutos sejam adquiridos a um custo mnimo total, que a soma do custo de roteamento e do custo
de aquisio.
Para S M , defina ( S ) = {(i, j ) E : i S , j N \ S } . Defina tambm

M * = {0} i M : existe k K tal que kj k q < d
j M k \{i}
o conjunto de ns que necessariamente faz parte de uma soluo factvel, e

K * = k K : qki = d k
i M k
o conjunto de produtos sem opes de deciso de mercado. Considere as seguintes variveis:

1 se a aresta e pertence soluo


ze = (CV16)
0 caso contrrio
1 se o n i pertence soluo
yi = (CV17)
0 caso contrrio
xki = quantidade do produto pk adquirida no mercado i .
O problema pode ser formulado como:

min ce ze + bki xki (CV18)


eE k K iM k

ze = 2 yi , i N (CV19)
e ({i})

ze 2 yi , S M , i S (CV20)
e ( S )

xki = d k , k K (CV21)
i M k

xki qki yi , k K , i M k (CV22)


*
z e B| E | , y B|M \ M |
(CV23)

yi = 1 se i M * , x R+mn (CV24)
A funo objetivo (CV18) minimiza a soma dos custos de viagem e da aquisio de produtos.
As restries (CV19) garantem que, se o n i faz parte da soluo, ento o nmero de arestas que
incidem em i (grau de i ) igual a 2. As restries (CV20) asseguram a conectividade entre um
n i S e um n N \ S . As restries (CV21) garantem que a demanda do produto k adqui-
rida, e as restries (CV22) impem que um produto k no pode ser adquirido em um mercado i
Captulo 3: Otimizao discreta 191

no visitado. As restries (CV23) e (CV24) indicam o tipo das variveis. Note que, se k K * , nas
restries (CV21), tem-se xki = qki .

Caixeiro-viajante lucro

Nestes problemas, um lucro est associado a cada n e o objetivo consiste em determinar uma
rota de custo mnimo por meio de um subconjunto dos ns, de forma a otimizar a soma dos
custos de viagem e dos lucros coletados. Estes problemas so semelhantes ao problema anterior,
no sentido de que apenas um subconjunto de ns visitado e, por esse motivo, usa-se a mesma
notao.
Considere um depsito denotado por 0 e um conjunto de ns M = {1, ..., n}. Seja G = ( N , E )
um grafo no orientado em que N = {0} M o conjunto de ns, e E = {(i, j ) : i, j N } o con-
junto de arestas. Um lucro pi associado a cada n i M , e o custo de viagem na aresta e = (i, j )
representado por ce. Considere tambm as variveis binrias ze e yi definidas em (CV16) e
(CV17), respectivamente.
Existem trs problemas genricos de caixeiro-viajante com lucro, que dependem da forma
como os objetivos so considerados:
1. Os objetivos so combinados em uma funo objetivo; a meta encontrar uma rota que
minimize o custo de viagem, menos o lucro coletado. Este problema conhecido na literatura
como o problema da rota lucrativa (profitable tour problem), e formulado da seguinte maneira:
min ce ze pi yi
eE iN
sujeito a (CV19) e
n
ze S 1, S \ {0} N , 3 S (CV25)
e S 2
z e B| E | , y B n (CV26)
2. O custo de viagem uma restrio; a meta encontrar uma rota que maximize o lucro co-
letado, de modo que o custo de viagem no exceda um valor especificado cmax. Este pro-
blema conhecido como problema de orientao (orienteering problem), um esporte em que
participantes tm um mapa de uma rea e devem visitar uma seqncia de pontos de con-
trole da forma mais rpida possvel. Este problema formulado como:
max pi yi
iN
sujeito a (CV19), (CV25), (CV26) e

ce ze cmax
eE
3. O lucro uma restrio; o alvo encontrar uma rota que minimize o custo de viagem de
modo que o lucro coletado no seja menor que um valor especificado pmin . Este problema
conhecido como problema de coleta de prmio (prize-collecting problem), e formulado
como:
min ce ze
eE

sujeito a (CV19), (CV25), (CV26) e

pi yi pmin
i N
192 Pesquisa Operacional

Outro tipo de problema o caixeiro-viajante dependente do tempo, em que o custo da viagem


entre duas cidades i, j, representado por cijt, depende da distncia entre as cidades, e se i visita-
da no perodo de tempo t 1 , e j visitada no perodo de tempo t. Este problema encontra di-
versas aplicaes, tais como programao da produo com custos ou tempos de preparao
dependentes da seqncia, e minimizao do tempo de espera do incio de servio de clientes.24,25
Outras variantes incluem o caixeiro-viajante em que o custo entre cidades uma funo cont-
nua do tempo, e problemas dinmicos de caixeiro-viajante, em que novos pedidos de servio sur-
gem durante o percurso, pedidos estes que podem ser atendidos ou no.26

3.4.6 Problemas de carteiro chins


Problemas de carteiro chins pertencem classe de problemas de roteamento em arcos, e so defi-
nidos em grafos orientados ou no orientados. Em problemas de roteamento em arcos, a meta
determinar a travessia de custo mnimo de um conjunto especificado de arcos (ou arestas) de um
grafo, com ou sem restries. Estes problemas aparecem em diversos contextos prticos, tais como
entrega e coleta de correspondncia, coleta de lixo, roteamento de nibus escolar e patrulhamento
de ruas pela polcia.
O problema das pontes de Knigsberg , talvez, o primeiro problema de roteamento em arcos.
Knigsberg uma cidade que pertencia Alemanha e hoje pertence Rssia, com o nome de
Kaliningrad. A questo determinar se existe um caminho fechado passando em cada ponte so-
mente uma vez. A Figura 3.13 ilustra as pontes e o grafo associado.
O famoso matemtico suo Euler, em 1736, encontrou condies para a existncia de um ca-
minho fechado e mostrou que no existe tal caminho neste caso especfico. Essa descoberta de
Euler foi um dos marcos iniciais da teoria de grafos.
Considere um grafo no orientado G = ( N , E ) conexo, isto , existe um caminho formado por
arestas entre quaisquer dois ns do grafo. Euler demonstrou o seguinte resultado: existe um ciclo
euleriano que atravessa cada aresta do grafo exatamente uma vez se e somente se todo n tem grau
par. A necessidade da condio do grau bvia: um n que aparece k vezes no ciclo euleriano deve
ter grau 2k, isto , k entradas e k sadas. A suficincia da condio demonstrada em livros de grafos.27
Um exemplo de um grafo com ns pares e um ciclo euleriano mostrado na Figura 3.14.

Figura 3.13 Pontes de Knigsberg e grafo associado.

24 Ver Gouveia e Vo (1995) para uma classificao de formulaes.


25 Ver Lucena (1990) para um mtodo exato de minimizao do tempo mdio de chegada nas cidades.
26 Ver Hagnani e Jung (2005) para uma heurstica para o problema dinmico do caixeiro viajante, em que o custo uma funo con-
tnua do tempo.
27 Ver, por exemplo, Diestel (2005).
Captulo 3: Otimizao discreta 193

Quando no existe um ciclo euleriano, uma questo natural determinar um caminho fechado
de comprimento mnimo que atravesse cada aresta pelo menos uma vez. Este problema, conhe-
cido como problema do carteiro chins, foi proposto pelo matemtico Guan em 1962, quando tra-
balhava em um correio durante a revoluo cultural chinesa. Guan enunciou este problema da
seguinte maneira: Um carteiro tem de cobrir seu segmento designado antes de retornar ao posto
de correio. O problema encontrar o caminho mais curto para o carteiro.
Considere agora o problema do carteiro chins em um grafo no orientado G = ( N , E ) , tal
que ce o custo da aresta e E. Se todos os ns tm grau par, ento existe um ciclo euleriano
do grafo, e qualquer ciclo tem o mesmo custo, isto , a soma dos custos de todas as arestas.
No caso em que existam vrtices com grau mpar, Guan observou que a adio de arestas aos
vrtices de grau mpar, isto , replicando arestas com o mesmo custo, gera um grafo em que to-
dos os vrtices tm grau par. O problema do carteiro chins consiste em determinar quais ares-
tas devem ser duplicadas de forma a obter um ciclo euleriano de custo mnimo. A Figura 3.15(a)
mostra um grafo no euleriano, e as Figuras 3.15(b) e 3.15(c) mostram dois grafos eulerianos
obtidos por duplicao de arestas. Os custos dos ciclos eulerianos nas Figuras 3.15(a), 3.15(b) e
3.15(c) so 19, 24 e 27, respectivamente. 
Dado um grafo G = ( N , E ) , sejam E e E conjuntos de arestas orientadas, em que um con-
junto contm uma cpia orientada de cada aresta de E em uma direo (arbitrria), e o outro
conjunto contm uma cpia de cada aresta de E na direo oposta. Para uma dada aresta e E,
   
sejam e E e e E e as arestas com direes opostas associadas a e. Seja v+ o nmero de ares-
tas orientadas que entram no n v, e v o nmero de arestas orientadas que saem do n v.
Defina as variveis

1 se a aresta e associada aresta e escolhida


xe =
0 caso contrrio,

1 se a aresta e associada aresta e escolhida
xe =
0 caso contrrio,

Figura 3.14 Exemplo de ciclo euleriano.

Figura 3.15 Solues para um exemplo do carteiro chins.


194 Pesquisa Operacional

Considere o modelo
min  ce xe +  ce xe (CC1)
 
eE eE

 
xe + xe 1, par (e , e ) associado a e E (CC2)


xe +

e e  e
x  x  + x  = 0, v N (CC3)
eS + (v ) eS + (v )
e S ( v ) e S ( v )
   
xe , xe {0,1}, e E , e E (CC4)

A funo objetivo (CC1) minimiza o custo do ciclo euleriano. As restries (CC2) garantem
que um ciclo passa no mnimo uma vez em cada aresta de E. As restries (CC3) impem que o
grau de v, ao se retirar a orientao das arestas, par. A restrio (CC4) indica o tipo da varivel.
Considere agora o problema do carteiro chins em um grafo orientado G=(N,E). Neste caso,
a condio necessria e suficiente para a existncia de um ciclo euleriano que o nmero de ar-
cos que entram e saem de um n deve ser igual.28 A Figura 3.16 ilustra um grafo sem soluo
factvel para este problema.
Defina as variveis
xij = nmero de vezes que o arco (i, j ) atravessado
O problema , ento, modelado como
min cij xij
(CC5)
( i , j ) E

xij x ji = 0, i N
(CC6)
{ j :(i , j ) E } { j :( j ,i ) E }

xij 1, (i, j ) E (CC7)


x Z +|E| (CC8)
A funo objetivo (CC5) minimiza o custo do ciclo euleriano. As restries (CC6) garantem
que o ciclo entre e saia de um n um mesmo nmero de vezes, e as restries (CC7) impem que
cada arco seja visitado pelo menos uma vez. A restrio (CC8) indica o tipo das variveis. A for-
mulao do problema do carteiro chins em um grafo misto, com arestas e arcos, uma combi-
nao dos dois modelos anteriores.29

Figura 3.16 Grafo sem soluo para o problema do carteiro chins.

28 Ford e Fulkerson (1962).


29 Ralphs (1993).
Captulo 3: Otimizao discreta 195

No problema do caixeiro chins, busca-se atravessar todas as arestas ou arcos do grafo. No


entanto, em vrias aplicaes de roteamento em arcos, busca-se atravessar um subconjunto das
arestas ou arcos do grafo. Neste caso, o problema chamado de carteiro rural, e as formulaes
de problemas deste tipo so mais complexas.

3.5 PROBLEMAS DE LOGSTICA


Esta seo contm a descrio e formulao de problemas importantes nas reas de distribuio
e localizao de facilidades.

3.5.1 Roteamento de veculos


Problemas de roteamento30 de veculos envolvem o projeto de rotas de entrega e/ou coleta de custo
mnimo, partindo de um ou mais depsitos para um nmero de clientes, sujeito a restries adi-
cionais. Este tipo de problema tem um papel fundamental na rea de gerenciamento da distri-
buio e logstica.31 A seguir, apresentam-se alguns problemas de roteamento de veculos que
procuram cobrir ns de um grafo. Inicia-se pela apresentao do clssico problema de roteamento
de veculos (PRV), que representado por um grafo orientado completo G = (N, E), em que
N = C {0, n + 1} , C = {1, ..., n} o conjunto de ns que representam os clientes, e 0, n + 1 so
os ns que representam o depsito. O conjunto E = {(i, j) : i, j N, i j, i n + 1, j 0}
corresponde aos arcos associados s conexes entre ns. Nenhum arco termina no n 0 e nenhum
arco comea no n n + 1 . Todas as rotas comeam em 0 e terminam em n + 1 . Um custo cij e um
tempo de viagem tij esto associados a cada arco (i, j) E. O tempo de viagem tij inclui o tempo
de servio do cliente i. Cada cliente i tem uma demanda di. Um conjunto K de veculos idnticos,
cada veculo k K com capacidade Q, est situado no depsito. O objetivo minimizar o custo
total de viagens, sujeito s seguintes restries:
Cada rota inicia e termina no depsito.
Cada cliente pertence somente a uma rota.
A demanda total de uma rota no pode exceder a capacidade Q do veculo.
O tempo de viagem de uma rota no pode exceder o limite D.
Defina as variveis
1 se o veculo k percorre o arco (i, j ), k K , (i, j ) E
xijk =
0 caso contrrio
e considere a seguinte formulao:
min
k K ( i , j ) E
cij xijk
(RV1)

x
kK jN
ijk = 1, i C (RV2)

d x
iC
i
jN
ijk Q, k K (RV3)

30 O termo roteirizao de veculos, embora no encontrado nos dicionrios da lngua portuguesa, tem sido usado como equi-
valente palavra inglesa routing (ou routeing). O termo roteamento de veculos tambm utilizado alternativamente por alguns
autores brasileiros.
31 Toth e Vigo (2002), Ghiani et al. (2004) e Novaes (1989).
196 Pesquisa Operacional

t x
iN jN
ij ijk D, k K (RV4)

x
jN
0 jk = 1, k K (RV5)

x
iN
ihk xhjk = 0, h C , k K
jN
(RV6)

x
iN
i , n +1, k = 1, k K (RV7)

n
x
i S j S
ijk S 1, S C , 2 S , k K
2
(RV8)

x B K |E| (RV9)
A funo objetivo (RV1) representa a minimizao do custo total das rotas. As restries (RV2)
asseguram que cada cliente i designado a um nico veculo. As restries (RV3) impem que
a demanda total de cada rota do veculo k no excede a capacidade Q do veculo. As restries
(RV4) garantem que a durao de cada rota do veculo k no excede o limite D. As restries
(RV5), (RV6) e (RV7) representam restries de fluxo em redes, que exigem que cada veculo k
parta do depsito (n 0) somente uma vez, deixe o n h se e somente se entrar neste n, e retorne
ao depsito (n n + 1) somente uma vez. As restries (RV7) so redundantes, mas so mantidas
no modelo para enfatizar a estrutura de redes. As restries (RV8) garantem a no-existncia de
sub-rotas, e a restrio (RV9) indica o tipo de varivel.32
Se o nmero de veculos no modelo (RV1)-(RV9) for um parmetro fixo ou um limitante su-
perior igual a K, remova o arco (0, n+1). Caso contrrio, se o nmero de veculos uma varivel,
atribua um custo cv a cada veculo usado. Isso feito impondo-se c0,n+1 = cv. Se cv grande, o
modelo primeiramente minimiza o nmero de veculos e, em segundo lugar, minimiza o custo
de viagem.

Roteamento de veculos com janelas de tempo

Considere uma extenso do PRV tal que, para cada cliente, o incio do servio deve estar dentro
de uma janela de tempo [ai, bi], i C. Os veculos deixam o depsito no instante 0 e devem retornar
durante o intervalo [an+1, bn+1]. Um veculo pode chegar em um cliente antes de sua janela de tem-
po e esperar sem custo. Este um problema de roteamento de veculos com janelas de tempo
(PRVJT) e, para formul-lo, considere a varivel adicional
Sik = instante em que o veculo k comea a servir o cliente i, kK, iC.

Restries adicionais
Se o veculo k deixa o n i e viaja para o n j, ento no pode chegar em j antes de sik + tij:
xijk ( sik + tij s jk ) 0, (i, j ) E , k K (RV10)
Todas as janelas de tempo devem ser respeitadas:
ai sik bi , i N {0}, k K (RV11)
A restrio (RV10) pode ser linearizada da seguinte maneira. Seja M ij = max{bi + sik + tij , 0} .
Ento (RV10) equivalente a
sik + tij s jk + (1 xijk ) M ij , (i, j ) E , k K (RV12)
32 Fukasawa et al. (2005) apresentam uma nova formulao para o PRV e um mtodo exato de resoluo.
Captulo 3: Otimizao discreta 197

O modelo matemtico associado ao PRVJT consiste de (RV1) sujeito a (RV2), (RV3), (RV5),
(RV6), (RV7) (RV9), (RV11), e (RV10) ou (RV12). A restrio (RV11), para i = n + 1 , limita o
tempo total de viagem, e as restries de eliminao de sub-rotas (RV8) no so necessrias aqui,
pois as restries (RV12) impedem sub-rotas. Considere, por exemplo, a sub-rota S = {1, 2, 3, 4}
da Figura 3.11. De (RV12) tem-se: s1k + t12 s2 k , s2 k + t23 s3k , s3k + t34 s4 k , e s4 k + t41 s1k ,
que impossvel.

Exemplo 3.12 Este exemplo ilustra os problemas de roteamento de veculos com e sem janelas de
tempo. As restries de tempo total de viagem so desconsideradas, e o custo cij igual dis-
tncia euclidiana entre os ns i e j. Considere os seguintes parmetros:
Nmero de clientes n = 9
Coordenadas ( xi , yi ), i = 1, ..., 9 dos clientes
x = [50 16 23 40 9 97 78 20 71 64 50]
y = [50 32 1 65 77 71 24 26 98 55 50]
Demanda dos clientes
d = [di ] = [11 35 2 9 3 18 8 10 11]
Janelas de tempo
a = [ai ] = [0 45 11 25 20 15 50 10 40 10 0]
b = [bi ] = [0 70 145 40 100 80 190 110 190 45 400]
Capacidade dos veculos: Q = 60

A soluo tima para o PRVJT dada por:


Rota do veculo 1: 0 1 7 2 10
s11 = 45, 00 s71 = 52, 21 s21 = 77,39 s10,1 = 200,95
Rota do veculo 2: 0 9 5 8 6 10
s92 = 14,87 s52 = 51,54 s82 = 89, 02 s62 = 163,35 s10,2 = 228, 21
Rota do veculo 3: 0 3 4 10
s33 = 25, 00 s43 = 58, 24 s10,3 = 149, 09
O custo timo 428,733, e a capacidade usada dos veculos 1, 2 e 3 54, 42 e 11, respectiva-
mente. A Figura 3.17 mostra a soluo do PRVJT. Note o cruzamento na rota do veculo 2, cau-
sado pelas janelas de tempo. n

A soluo tima para o PRV dada por:


Rota do veculo 1: 0 2 7 1 10
Rota do veculo 2: 0 3 4 8 5 6 9 10
O custo timo igual a 380,596, e a capacidade usada dos veculos 1 e 2 53 e 54, respecti-
vamente. A Figura 3.18 mostra a soluo.

Roteamento peridico de veculos

Considere agora o problema de roteamento peridico de veculos (PRPV), outra extenso do PRV.
O PRPV opera com um horizonte de planejamento, e cada cliente i especifica uma freqncia
de visitas fi e um conjunto Ri de combinaes possveis de visitas. Por exemplo, se fi = 2, e Ri =
{{1, 3}, {2, 4}, {3, 5}}, ento o cliente i deve ser visitado duas vezes e as visitas devem ocorrer
nos dias 1 e 3, ou nos dias 2 e 4 ou nos dias 3 e 5.
198 Pesquisa Operacional

Figura 3.17 Representao grfica da soluo para o PRVJT.

Figura 3.18 Representao grfica da soluo para o PRV.

Considere um multigrafo orientado G = (N, E), uma extenso do conceito de grafo que per-
mite mltiplos arcos ligando dois ns. O PRPV definido em um multigrafo em que N = C {0} ,
C = {1, ..., n} o conjunto de ns que representam os clientes, e 0 o n que representa o de-

{ }
psito. O conjunto E = (i, j ) : i, j N , i j o conjunto de arcos, em que k e l referem-se
k ,l

ao nmero do veculo e ao dia de visita, respectivamente. Todas as rotas comeam em 0 e termi-


nam em 0. A cada arco (i, j ) est associado um custo cijkl e um tempo de viagem tijkl, que inclui
k ,l

o tempo de servio no cliente i. Um conjunto K de veculos, cada veculo k K com capacidade Q,


est situado no depsito. Para um horizonte T finito de dias e um cliente i , dada a demanda
di de i , a freqncia fi de visitas a i e a combinao Ri de dias permitidos para visitas. O PRPV
consiste em programar as visitas aos clientes e determinar as rotas dos veculos em cada dia do
horizonte de tempo de forma a minimizar o custo total de viagens, sujeito s seguintes restries:
Cada rota inicia e termina no depsito.
Cada cliente no dia l pertence somente a uma rota.
A demanda total de uma rota no deve exceder a capacidade Q do veculo.
O tempo total de uma rota no deve exceder o limite D .
Captulo 3: Otimizao discreta 199

Considere o parmetro binrio


1 se o dia l pertence combinao de dias de visita r
arl =
0 caso contrrio
Defina as variveis
1 se o veculo k percorre o arco (i, j ) no dia l , k K , (i, j ) E , l T
xijkl =
0 caso contrrio
1 se a combinao de dias de visita r designada ao cliente i, r Ri , i C
yir =
0 caso contrrio
e considere a seguinte formulao:
min c
k K ( i , j ) E l T
x
ijkl ijkl
(RV13)

yir = 1, i C (RV14)
rCi

xijkl arl yir = 0, i C , l T (RV15)


jN kK rCi

d x
iC
i
jN
ijkl Q, k K , l T (RV16)

t
iN jN
x
ijkl ijkl D, k K , l T (RV17)

x
jC
0 jkl 1, k K , l T (RV18)

x
iN
ihkl xhkjl = 0, h C , k K , l T
jN
(RV19)

n
x
i S j S
ijkl S 1, S C , 2 S , k K , l T
2
(RV20)

x BTK |E| (RV21)


A funo objetivo (RV13) expressa a minimizao do custo total das rotas. As restries (RV14)
asseguram que cada cliente i designado a uma nica combinao de dias, enquanto as restries
(RV15) garantem que cada cliente i visitado somente nos dias correspondentes combinao de
dias a ele designada. As restries (RV16) impem que a demanda total de cada rota do veculo k, em
cada dia l, no excede a capacidade Q de um veculo. As restries (RV17) garantem que a durao de
cada rota do veculo k, em cada dia l, no excede o limite D. As restries (RV18) e (RV19) repre-
sentam restries de fluxo em redes, que exigem que cada veculo k seja usado no mximo uma vez em
cada dia l e, se usado, deixe o n h, se e somente se entrar neste n, e retorne ao n 0. As restri-
es (RV20) garantem a no-existncia de sub-rotas, e a restrio (RV21) indica o tipo de varivel.

Roteamento de veculos com mltiplos depsitos

Para a formulao do problema de roteamento de veculos com mltiplos depsitos (PRVMD),


considere, no PRPV (RV13)-(RV21), que o horizonte T tem L dias, que a freqncia de visitas
fi = 1 e Ri = {{1}, ..., {L}} , i C . Associe depsitos com dias, e defina c0ikl e ci 0 kl como os cus-
tos de viagem entre o depsito l e o cliente i, usando o veculo k. A incluso de ns de depsito
200 Pesquisa Operacional

artificiais para a minimizao do nmero de veculos em PRPV e PRVMD feita de modo an-
logo ao do PRV.

3.5.2 Localizao de facilidades


A localizao de facilidades um aspecto crtico do planejamento estratgico de empresas pri-
vadas e pblicas. Exemplos tpicos no setor pblico envolvem decises de localizao de centros
de sade, escolas e estaes de bombeiros, enquanto no setor privado tem-se a localizao de f-
bricas, armazns e centros de distribuio. Em diversas situaes, tais como em sistemas de dis-
tribuio, as decises da localizao de facilidades e de designao de clientes a facilidades so
feitas simultaneamente. A seguir, apresentam-se modelos matemticos de alguns problemas im-
portantes de localizao. Para tal, considere os seguintes parmetros:
J = conjunto de ns j que representam os clientes, j = 1, ..., n
I = conjunto de locais i candidatos localizao de facilidades, i = 1, ..., m
qj = demanda do cliente j
dij = distncia do cliente j facilidade localizada em i
cij = custo de atender a demanda qj a partir de uma facilidade localizada em i
fi = custo fixo de instalao de uma facilidade no local i
Qi = capacidade da facilidade instalada no local i
Uma varivel comum a todos os problemas descritos a seguir :
1, se a facilidade aberta no local i
yi =
0, caso contrrio.
P-medianas
Este problema envolve a localizao de p facilidades e a designao de clientes a facilidades, de
modo a minimizar a soma das distncias de clientes a facilidades.33 Permite-se que os ns das ins-
talaes estejam em qualquer lugar dos arcos que ligam ns de clientes, incluindo os ns dos clien-
tes. Demonstra-se34 que existe uma soluo tima em que as facilidades situam-se no conjunto J
dos clientes, portanto, I J . Considere as variveis
1, se a facilidade aberta no local i
yi =
0, caso contrrio
e a seguinte formulao:
min cij xij (LF1)
iI jJ

xij = 1, j J (LF2)
iI
xij yi , i I , j J (LF3)

yi = p (LF4)
iI

x B|I ||J | , y B|I | (LF5)

33 Ver Galvo (2004) para uma reviso de contribuies ao estudo deste problema e outros problemas de localizao sem restri-
o de capacidade. Para um mtodo timo e uma heurstica para o problema das p-medianas, ver Senne et al. (2005) e Resende
e Werneck (2004), respectivamente.
34 Hakimi (1964, 1965).
Captulo 3: Otimizao discreta 201

A funo objetivo (LF1) minimiza o custo total de designao de clientes a facilidades. As res-
tries (LF2) garantem que cada cliente j atendido por uma nica facilidade. As restries (LF3)
asseguram que cada cliente j s pode ser designado a uma facilidade aberta no local i. A restri-
o (LF4) indica que exatamente p facilidades so abertas, e a restrio (LF5) representa o tipo
das variveis.

P-centros

Este problema envolve a localizao de p facilidades e a designao de clientes a facilidades, de modo


a minimizar a distncia mxima de clientes a facilidades. Este problema admite variaes do mo-
delo bsico. O problema de p-centros-ns restringe os ns de facilidades aos ns de clientes, en-
quanto o problema de p-centros-absolutos permite que os ns de facilidades estejam em qualquer
lugar dos arcos que ligam ns de clientes.
Para formular este problema, considere as variveis do problema de p-medianas e a seguinte
varivel adicional:
r = distncia mxima de um cliente quando designado a uma facilidade
min r (LF6)
r dij xij , j J (LF7)
iI
(LF2)(LF5)
A funo objetivo (LF6) minimiza a distncia mxima de um cliente a uma facilidade. A res-
trio (LF7) expressa r como um limitante superior da distncia de cada cliente j a uma facili-
dade. As demais restries so idnticas s do problema das p-medianas.

P-medianas e p-centros com capacidade limitada

Nestes problemas, associa-se uma capacidade Qi facilidade no local35 i. Neste caso, as restries
(LF3) so, alteradas para

q j xij Qi yi , i I (LF8)
jJ
Note que, ao se abrir um conjunto O = {i I : yi = 1} de facilidades, o problema resultante
um problema de designao generalizada (ver Seo 3.4.3), que pode ser factvel ou no.

Localizao de facilidades com capacidade ilimitada

Este problema envolve a localizao de facilidades e a designao de clientes a facilidades, de modo


a minimizar o custo fixo de implantao de facilidades e o custo varivel de atendimento das de-
mandas dos clientes. Considere as seguintes variveis:
xij = frao da demanda q j atendida pela facilidade localizada em i, i I , j J

35 Para aplicaes em localizao de escolas e seleo de locais para realizao de provas de vestibular, ver Correa et al. (2004) e
Pizzolato et al. (2004).
202 Pesquisa Operacional

O modelo que representa este problema dado por:

min fi yi + cij xij (LF9)


i I i I j J

xij = 1, j J (LF10)
iI

xij yi , i I , j J (LF11)

y B|I | , 0 xij 1, i I , j J (LF12)


A funo objetivo (LF9) expressa a minimizao da soma dos custos fixos e variveis. As res-
tries (LF10) asseguram que a demanda de cada cliente j atendida. As restries (LF11) ga-
rantem que uma frao no-nula de demanda s pode ser enviada a partir de uma facilidade
aberta no local i, e a restrio (LF12) indica o tipo das variveis.
Seja O = {i I : yi = 1} um conjunto de instalaes abertas, e defina o ndice i de uma vari-
vel ou parmetro wi como o seu argumento, isto , i = arg wi . Tem-se, ento, um problema de
programao linear com variveis canalizadas, cuja soluo tima analtica: para todo cliente
j, xi* j = 1, de modo que i* = arg min cij , xij = 0, caso contrrio , isto , cada cliente j tem sua
iO
demanda atendida pela facilidades i de menor custo cij.

Localizao de instalaes com capacidade limitada

Este problema difere do anterior pela existncia da capacidade Qi associada facilidade no local
i. Neste caso, a restrio (LF11) substituda pelas restries (LF8). Ao se fixar um conjunto
O = {i I : yi = 1} de facilidades abertas, o problema resultante um problema de transporte (veja
Seo 2.2.2), que tem soluo factvel se e somente se q j Qi. A resoluo do problema de
transporte abordada na Seo 4.3.1. jJ iO

Localizao de facilidades com capacidade limitada e fonte nica

Este problema difere do problema anterior pelo fato de que um cliente deve ser atendido a par-
tir de uma nica instalao. Considere as variveis:
1 se o cliente j designado facilidade localizada em i
xij =
0 caso contrrio

Este problema pode ser modelado da seguinte maneira:

min fi yi + cij xij


i I i I j J

xij = 1, j J (LF13)
iI

q j xij Qi yi , i I (LF14)
jJ

x B|I || J | , y B|I | (LF15)


As restries (LF13) garantem que cada cliente j designado a uma nica facilidades. As res-
tries (LF14) garantem que, se uma instalao aberta no local i, ento a quantidade enviada
Captulo 3: Otimizao discreta 203

de i para os clientes j limitada pela capacidade Qi . A restrio (LF15) indica o tipo das vari-
veis. Novamente, ao se abrir um conjunto O = {i I : yi = 1} de facilidades, o problema resultante
um problema de designao generalizada, que pode ser factvel ou no.

Exemplo 3.13 Este exemplo ilustra os dois ltimos problemas. Considere os seguintes parmetros:
Para i = 1, ..., 5 e j = 1, ..., 10, seja
995 756 092 951 964 1171 1194 1113 1104 1276
1056 993 1038 1049 1044 1230 1239 1143 954 1222
cij = 1192 938 894 1285 1149 1227 893 1179 916 1234
951 1049 2085 932 1387 1478 985 1248 1102 753
864 1044 1249 1387 981 1123 953 1253 953 862

Para i = 1, ..., 5 e j = 11, ..., 20, seja


1089 382 517 28 1025 1240 969 841 981 934
942 1252 955 1042 944 664 1046 715 924 1044
cij = 953 975 1093 1070 783 987 1247 1054 1323 1069
1053 935 936 963 826 1185 1691 640 1164 970
1285 1296 974 935 1070 1041 185 847 1056 530
Q = [Qi] = [1324, 1975, 1506, 1938, 2010]
q=[qj]= [716, 181, 182, 567, 125, 330, 153, 234, 117, 510, 928, 541, 148, 291, 360, 434,
= 148, 560, 321, 583]
f = [fi] = [50201,44208, 58800,51130,4940]

Localizao de instalaes com capacidade limitada


Soluo tima:
x2,2 = x2,8 = x2,11 = x2,13 = x11,6 = x11,9 = 1
x2,13 = 0,39

x3,2 = x3,3 = x3,7 = x3,9 = x3,15 = 1


x3,12 = 0,95

x4,4 = x4,10 = x4,18 = 1


x4,12 = 0, 05
x4,13 = 0, 61
x4,14 = 0, 63

x5,1 = x5,5 = x5,6 = x5,17 = 1


x5,14 = 0,37

y 2 = y3 = y 4 = y5 = 1
Valor da soluo tima: 176.052
204 Pesquisa Operacional

Capacidade utilizada nas facilidades abertas:

Facilidade 2 3 4 5
Capacidade 1975 1506 1938 2010

Localizao de facilidades com capacidade limitada e fonte nica


Soluo tima:
x2,2 = x2,3 = x2,4 = x2,9 = x2,11 = 1
x3,5 = x3,7 = x3,8 = x3,16 = x3,18 = 1
x4,1 = x4,12 = x4,15 = x4,19 = 1
x5,6 = x5,10 = x5,13 = x5,14 = x5,17 = x5,20 = 1
x5,5 = x5,6 = x5,17 = x5,20 = 1
y 2 = y3 = y 4 = y5 = 1

O valor da soluo tima 177.801, e a capacidade utilizada nas facilidades abertas a mes-
ma do caso anterior.
Como esperado, o custo do problema de facilidade com fonte nica maior. Alm disso, as
solues dos dois problemas utilizam toda a capacidade disponvel das facilidade abertas.
n

Custo fixo em fluxos em redes

Considere um grafo orientado G=(N,E) com capacidade uij e custo unitrio de fluxo cij para
todo arco (i,j) E. A cada n i associada uma demanda qi, que corresponde a uma fonte, um
sorvedouro ou um ponto de passagem, se qi for positivo, negativo ou zero, respectivamente. Se
existe um fluxo positivo no arco (i, j ) , incorre-se em um custo fixo fij associado abertura des-
se arco.
O problema de custo fixo em fluxos em redes consiste em determinar quais arcos abrir e qual
o fluxo em cada arco aberto, de forma a minimizar o custo total. Note que os problemas de lo-
calizao anteriores estavam relacionados ao custo de abertura de ns, enquanto o problema pre-
sente consiste em localizar ou abrir arcos. Este problema ocorre em uma grande variedade de
projetos de sistemas, tais como redes de suprimento de gua, aquecimento, eletricidade e tele-
comunicaes.36
Considere as variveis:
1 se o arco (i, j ) aberto
yij =
0 caso contrrio
xij = fluxo no arco (i, j )
Este problema formulado da seguinte maneira:
min fij yij + cij xij (LF16)
(i , j )E

x ji xij = qi , i N (LF17)
j N j N

36 Ver Mateus et al. (2000) para heursticas em projetos de redes de telecomunicaes.


Captulo 3: Otimizao discreta 205

xij uij yij , (i, j ) E (LF18)

x R+|E| , y B|E| (LF19)


A funo objetivo (LF16) minimiza a soma dos custos fixos e variveis. As restries (LF17)
correspondem conservao do fluxo em cada n i, e as restries (LF18) impem que o fluxo em um
arco (i, j ) existe somente se este arco for aberto. A restrio (LF19) indica o tipo das variveis.
A Seo 4.2.4 discute o caso particular em que no h custos fixos no problema (fluxo de custo
mnimo).

3.6 PROBLEMAS DE PRODUO


Esta seo contm a descrio e a formulao de problemas importantes nas reas de planejamen-
to e programao da produo. Problemas na rea de produo em geral so decompostos hie-
rarquicamente em trs nveis: estratgico, ttico e operacional. O nvel mais alto o estratgico,
em que as decises so de longo prazo e envolvem altos investimentos. Esse nvel trata da esco-
lha e do projeto do processo, relacionados ao arranjo de mquinas e outros equipamentos e com
a determinao da capacidade destes, em funo da demanda futura. Um dos parmetros deter-
minados nesse nvel a quantidade de produo unitria, isto , a menor quantidade em que um
produto fabricado. Tamanhos de lotes determinados no nvel ttico so mltiplos inteiros da
quantidade de produo unitria, por exemplo, uma unidade de produo de refrigerante uma
caixa com seis vasilhames e um lote corresponde a 100 caixas.
O nvel ttico trata do planejamento das atividades, que consiste de dois subnveis: planeja-
mento agregado da produo e planejamento de quantidades de produo. O planejamento agre-
gado envolve decises como nveis de mo-de-obra, hora extra e subcontratao, e duram
tipicamente de vrios meses a um ano. As necessidades so determinadas por uma medida agre-
gada de demanda, por exemplo, horas de produo. O planejamento das quantidades de produ-
o envolve a determinao, para cada produto, de quanto e quando produzir em um horizonte
tipicamente de algumas semanas a seis meses. Nesse horizonte, os nveis de mo-de-obra e tempo
disponvel de mquina so, em geral, considerados fixos. O programa mestre de produo (master
production schedule MPS) e o planejamento de recursos de produo (material resource planning
MRP II) so exemplos clssicos de sistemas de planejamento de quantidades de produo. A
partir das demandas externas ou independentes, o MPS determina quanto e quando produzir
de cada produto final. Partindo das quantidades determinadas pelo MPS, o MRP II planeja de
forma sincronizada as necessidades de componentes e matria-prima para os produtos finais.
De modo geral, um bom plano de produo aquele que satisfaz as demandas sem atraso,
respeita a capacidade dos recursos disponveis e minimiza os custos de produo. Os custos de
estoque e de preparao (setup) de mquinas so, em geral, os componentes mais importantes do
custo total de produo, e tm carter conflitante, isto , o custo de preparao total ao longo do
horizonte de planejamento diminui com a quantidade produzida, enquanto o custo total de es-
toque aumenta com a quantidade produzida. Quando diversos itens distintos compartilham o
processamento em uma mquina, incorre-se em um tempo e/ou custo de preparao para as ope-
raes necessrias de um dado item. Se os estados de preparao so distintos para cada item,
necessrio determinar a seqncia de produo desses itens. Uma tendncia recente na literatura
consiste no tratamento simultneo do planejamento e da programao da produo em cada pe-
rodo (tipicamente, uma semana) do horizonte de planejamento.
O nvel operacional controla as atividades dirias das ordens de produo provenientes do nvel
ttico. As principais decises envolvidas nesse nvel so: designao de tarefas (jobs) a mquinas
e programao (scheduling) das tarefas em cada mquina, isto , a seqncia de processamento das
tarefas e o instante de incio e trmino do processamento de cada tarefa.
206 Pesquisa Operacional

3.6.1 Planejamento da produo


A seguir, so apresentados alguns modelos importantes de planejamento da produo conheci-
dos na literatura como modelos de dimensionamento de lotes (lot sizing), brevemene discutidos
na Seo 2.2.3. Os modelos apresentados possuem as seguintes caractersticas comuns. O hori-
zonte de planejamento finito e dividido em perodos, e a demanda de cada item em cada pe-
rodo dinmica, isto , varia ao longo do horizonte. A demanda e outros parmetros dos modelos
so supostos conhecidos, isto , trata-se de modelos determinsticos. Existem outros modelos em
que o horizonte pode ser infinito, a varivel tempo contnua, a demanda expressa como uma
taxa em relao ao tempo, e ainda modelos em que a demanda estocstica.37 Para enunciar os
modelos matemticos, considere os seguintes parmetros:
dit = demanda do item i no perodo t
bi = tempo para produzir uma unidade do item i
Ct = capacidade de produo em horas de uma mquina ou instalao no perodo t
spi = tempo de preparao de mquina para processar o item i
si = custo de preparao do item i
hi = custo unitrio de estoque do item i
Ii0 = estoque inicial do item i
n = nmero de itens finais
T = nmero de perodos do horizonte de planejamento
Considere tambm as seguintes variveis:
xit = quantidade do item i produzida no perodo t (tamanho do lote)
Iit = estoque do item i no fim do perodo t
1 se o item i produzido no perodo t
yit =
0 caso contrrio

Um item sem restrio de capacidade

O problema mais simples de dimensionamento de lotes envolve um nico item, sem restrio de
capacidade, e seu modelo o seguinte:
T
min (syt + hIt ) (DL1)
t =1
I t = I t 1 + xt dt , t = 1, ..., T , I 0 = IT = 0 (DL2)

T
xt d yt , t = 1, ..., T (DL3)
=t
x R+T , I R+T , y BT (DL4)
A funo objetivo (DL1) minimiza o custo total de preparao e estoque. As restries (DL2)
representam equaes de balanceamento de estoque em cada perodo t. Se I0 > 0, use este esto-
que inicial para abater demandas no horizonte, portanto, pode-se assumir, sem perda de gene-
ralidade, que I0 = 0. Alm disso, na soluo tima, IT = 0 uma decorrncia da minimizao do
custo de estoque. As restries (DL3) garantem que a produo no perodo t limitada superior-

37 Para detalhes destes modelos, ver Johnson e Montgomery (1974), Hax e Candea (1984) e Nahmias (1995).
Captulo 3: Otimizao discreta 207

mente pela demanda acumulada do perodo t ao ltimo perodo T, e que o tamanho do lote
positivo, isto , xt > 0, somente se h produo no perodo t (yt = 1). A restrio (DL4) indica o
tipo das variveis.
Este foi o primeiro problema com demanda dinmica abordado na literatura por Wagner
e Within em 1958, que propuseram um algoritmo de programao dinmica apresentado na Se-
o 5.4.
Seja ct o custo unitrio de produo. Neste caso, a funo objetivo (DL1) modificada para
T
min (ct xt + syt + hIt )
t =1
de modo que ct xt representa o custo varivel no perodo t.
Suponha que o custo unitrio de produo constante ao longo do tempo, isto ,
ct = c, t = 1, ..., T . A equao (DL2) pode ser reescrita na forma
t t
It = x d , t = 1, ..., T
=1 =1

e como IT = 0 , tem-se, para t = T ,


T T
xt = dt
t =1 t =1
Portanto,
T T T
ct xt = c xt = c dt
t =1 t =1 t =1

isto , o custo varivel total uma constante e pode ser retirado da funo objetivo, resultando,
assim, na funo objetivo (DL1).
No caso em que a demanda pode ser atendida com atraso, atribui-se uma penalidade por
unidade de demanda no atendida no perodo t. Considere as variveis:
I t+ = estoque no fim do perodo t
I t = falta (demanda no atendida) no perodo t
A formulao anterior modificada da seguinte maneira:
T
min (syt + hIt+ + It ) (DL5)
t =1

I t+ I t = I t+1 I t1 + xt dt , t = 1,..., T , I 0+ = I 0 = 0 (DL6)

T
xt d yt , t = 1,..., T (DL7)
=t
x R+T , I + R+T , I - R+T , y BT (DL8)
A funo objetivo (DL5) minimiza o custo total de preparao, estoque e demanda no aten-
dida. As restries de balanceamento (DL6) levam em considerao o estoque e a demanda no
atendida em cada perodo t. As restries (DL7) so idnticas s restries (DL3), e a restrio
(DL8) indica o tipo das variveis. A considerao de demanda no atendida pode ser includa nos
modelos a seguir, de acordo com o exposto acima.
208 Pesquisa Operacional

Mltiplos itens e restrio de capacidade

Este problema, conhecido na literatura como capacitated lot sizing problem,38 trata de n itens que
devem ser processados em uma nica mquina ou facilidade, com restries de capacidade, e
pode ser modelado da seguinte maneira:
n T
min (si yit + hi Iit ) (DL9)
i =1 t =1

I it = I i ,t 1 + xit dit , i = 1,..., n, t = 1,..., T (DL10)


n
(spi yit + bi xit ) Ct , t = 1,..., T (DL11)
i =1

xit M it yit , i = 1,..., n, t = 1,..., T (DL12a)


Ct spi T
M it = min{ , di }, i = 1,..., n, t = 1,..., T (DL12b)
bi =t

x R+nT , I R+nT , y B nT (DL13)


A funo objetivo (DL9) minimiza o custo total de preparao e estoque. As restries (DL10)
correspondem ao balanceamento de estoque de cada item i em cada perodo t. As restries (DL11)
expressam que, em cada perodo t, o tempo total de preparao e produo limitado pela capaci-
dade disponvel. As restries (DL12a) implicam que xit > 0 somente se yit = 1. O limitante M it em
(DL12b) o mnimo entre a capacidade restante no perodo t se i produzido neste perodo, e a
demanda acumulada do perodo t ao perodo T. A restrio (DL13) indica o tipo das variveis.

Mltiplos nveis

Um item final freqentemente utiliza itens componentes, e a estrutura de interdependncia des-


tes itens pode ser representada por um grafo orientado. Quando um item tem um nico item
sucessor, diz-se que a estrutura de montagem, e quando tem mais de um item sucessor, a es-
trutura chamada geral. A Figura 3.19 ilustra exemplos dessas estruturas.

Figura 3.19 Estruturas de produto.

38 Para um modelo de fluxo em redes com resoluo pelo mtodo branch-and-bound, veja, por exemplo, Armentano et al. (1999).
Para resultados de complexidade (ver Seo 3.7) deste problema, ver Bitran e Yanasse (1982).
Captulo 3: Otimizao discreta 209

A produo em mltiplos nveis ou estgios requer vrios recursos, tais como processamento
em mquinas distintas e mo-de-obra. Considere os seguintes parmetros adicionais:
dit = demanda independente do item i (final ou componente) no perodo t
rij = nmero de itens i necessrios para produzir uma unidade do item j
Si = conjunto de sucessores imediatos do item i
K = nmero de recursos
Rk = conjunto de ndices de itens que usam o recurso k
bki = capacidade necessria do recurso k para produzir uma unidade do item i
Ckt = capacidade do recurso k disponvel no perodo t
O modelo matemtico associado a mltiplos nveis mostrado a seguir.
n T
min (si yit + hi Iit ) (DL14)
i =1 t =1

I it = Ii ,t 1 + xit rij x jt dit , i = 1,..., n, t = 1,..., T (DL15)


j Si

(spi yit + bki xit ) Ckt , k = 1,..., K , t = 1,..., T (DL16)


iRk

xit M it yit , i = 1,..., n, t = 1,..., T (DL17a)

Ckt spi T
M it = min {( min ), dit }, i = 1,..., n, t = 1,..., T (DL17b)
k :i Rk bki = j

x R+nT , I R+nT , y B nT (DL18)


A funo objetivo (DL14) minimiza o custo total de preparao e estoque. As restries (DL15)
correspondem ao balanceamento de estoque de cada item i em cada perodo t, de modo que a
somatria do lado direito de (DL15) corresponde demanda dependente (produo xjt). As res-
tries (DL16) expressam que, em cada perodo t e para cada recurso k, o tempo total de prepa-
rao e produo limitado pela capacidade disponvel Ckt. As restries (DL17a) garantem que
xit > 0 somente se yit = 1, e M it em (DL17b) corresponde mxima quantidade de produo do
item i no perodo t. A restrio (DL18) indica o tipo das variveis.

Mltiplos itens, restrio de capacidade e preservao de preparao

Os modelos anteriores (DL9)(DL13) e (DL14)(DL18) no consideram a utilizao do tempo de


preparao (TP) de mquina para o item que produzido em ltimo lugar no perodo t1, e em
primeiro lugar no perodo t. Esses modelos so denominados modelos sem preservao do esta-
do de preparao (MSPP). Neste caso, o tempo restante no perodo t1 para produo do lote
desse item pode ser insuficiente, ento a produo desse mesmo item no incio do perodo t exige
um novo tempo de preparao, o que aumenta o custo de preparao, desperdia capacidade
produtiva e, em caso de alta utilizao da capacidade, pode resultar em plano de produo
infactvel em relao capacidade. No modelo com preservao do estado de preparao (MCPP),
o estado de preparao do ltimo item produzido no perodo t1 mantido no incio do pero-
do t para continuar a produo desse item. Essas duas situaes esto ilustradas na Figura 3.20.
No modelo MSPP, aps o tempo de preparao TP no perodo t 1 para um novo item, uma
quantidade deste produzida e a mquina desativada no fim desse perodo. No incio do pe-
rodo t, outro tempo de preparao TP gasto para continuar a produo do mesmo item. No
210 Pesquisa Operacional

modelo MCPP, a mquina no desativada no fim do perodo t 1 e seu estado de preparao


para a produo do mesmo item no perodo t mantido.
Quando os tempos de preparao so pequenos, o modelo MSPP pode ser aceitvel, mas, quan-
do os tempos de preparao so elevados, necessrio utilizar o modelo MCPP. A preservao
do tempo de preparao adiciona uma nova deciso ao problema de dimensionamento de lotes,
que envolve a determinao do primeiro e do ltimo item produzido em cada perodo.
A seguir, apresentado o modelo MCPP em uma situao mais geral, em que a produo re-
quer vrios recursos.39
Defina as variveis:
1 se o estado de preparao para o produto i continua do perodo t 1 ao perodo t
wit =
0 caso contrrio
1 se no existe preparao de itens em t , que utilizam o recurso k , dado que a

qt k = preparao de um item especfico ocorreu em t 1 e mantida at t + 1
0
caso contrrio

n T
min (si yit + hi Iit ) (DL19)
i =1 t =1
I it = I i ,t 1 + xit d it , i = 1,..., n, t = 1,..., T (DL20)

(spi yit + bki xit ) Ckt , k = 1,..., K , t = 1,..., T (DL21)


i Rk

wit 1, k = 1,..., K , t = 2,..., T (DL22)


i Rk
wit yi ,t 1 + wi ,t 1 , i = 1,..., n, t = 2,..., T (DL23)
wi ,t +1 + wit 1 + qtk , k = 1,..., K , i Rk , t = 1,..., T 1 (DL24)
yit + qtk 1, k = 1,..., K , i Rk , t = 1,..., T (DL25)

Figura 3.20 Produo com e sem preservao de preparao.

39 Sueri e Stadtler (2003).


Captulo 3: Otimizao discreta 211

xit M it ( yit + wit ), i = 1,..., n, t = 1,..., T (DL26)


qtk 0, k = 1,..., K , t = 1,..., T 1 (q1k = qTk = 0) (DL27)
wit {0,1}, i = 1,..., n, t = 1,..., T ( wi1 = 0) (DL28)
x R+nT , I R+nT , y B nT (DL29)

A funo objetivo (DL19) minimiza o custo total de preparao e estoque. As restries (DL20)
correspondem ao balanceamento de estoque de cada item i em cada perodo t. As restries
(DL21) expressam que, em cada perodo t e para cada recurso k, o tempo total de preparao e
produo limitado pela capacidade disponvel Ckt. As restries (DL22) garantem, para cada re-
curso k, que no mximo uma preparao preservada de um perodo para o prximo. As restri-
es (DL23) asseguram que uma preparao preservada no perodo t (wit = 1) somente se o item
i foi preparado em t 1 (yi, t1 = 1) ou a preparao foi preservada do perodo t 2 ao perodo t 1
(wi, t1 = 1). As restries (DL24) impem que uma preparao pode ser mantida por dois pero-
dos consecutivos t e t +1, isto , qtk = 1 se wit = 1 e wi,t+1 = 1, e as restries (DL25) garantem que
isso possvel se no existir preparao nesse perodo. As restries (DL26) asseguram que a pro-
duo do item i no perodo t pode ocorrer se o item estiver preparado no perodo t (yit = 1) ou
se a preparao em t 1 foi preservada (wit = 1). A produo mxima Mit do item i no perodo t
dada por (DL17b). As restries (DL27)(DL29) indicam o tipo das variveis. Note que, embora
as variveis qtk assumam valores 0 ou 1, elas no precisam ser definidas explicitamente como va-
riveis binrias.
O modelo acima pode ser facilmente transformado em um modelo para produtos com estru-
tura de mltiplos nveis. Basta substituir as restries (DL20) pela restries (DL15).

Exemplo 3.14 Os modelos (DL14)(DL18) e (DL19)(DL29) so ilustrados atravs do exemplo


abaixo. Considere os seguintes parmetros:
T = 4; n = 3; I i 0 = 0 , i = 1, 2, 3; um nico recurso e R1 = {1, 2, 3};
sp = [ spi ] = [40 40 40]
h = [hi ] = [150 100 70]
s = [ si ] = [350 100 90]
C = [Ct ] = [280 320 280 400]
b = [bi ] = [20 10 20]
1 10 3 10
D = [dit ] = 2 4 0 5
2 4 0 5

Soluo tima para o modelo com preservao da preparao:


y11 = y12 = 1
y21 = y24 = 1
y31 = y34 = 1

x11 = 1,00 x12 = 10,00 x13 = 4,50 x14 = 8,50


x21 = 2,00 x22 = 4,00 x24 = 5,00
x31 = 6,00 x34 = 5,00
212 Pesquisa Operacional

w13 = w14 = 1
w22 = 1

q3 = 1
I11 = 1,50
I 31 = 4,00

Custo timo: 1.585,00


A Figura 3.21 ilustra a soluo tima. O espao em branco com o nmero do item corresponde
a seu tempo de preparao, o espao em cinza associado ao processamento do item, e o espa-
o pontilhado corresponde ociosidade da mquina. No perodo 2, por exemplo, a mquina
preparada para o item 1, que ento processado de acordo com o tamanho do lote desse item
nesse perodo. A mquina fica ociosa, mas em estado de preparao do item 1, que novamen-
te processado no incio do perodo 3. Isso mostra que ociosidade pode ser desejvel para no in-
correr em custo adicional de estoque.

Soluo tima para o modelo sem preservao da preparao:


y11 = y12 = y13 = y14 = 1
y21 = y22 = y24 = 1
y31 = y33 = y34 = 1

x11 = 1,00 x12 = 10,00 x13 = 3,00 x14 = 10,00


x21 = 2,00 x22 = 4,00 x24 = 5,00
x31 = 6,00 x33 = 3,50 x34 = 1,5

I 31 = 4,00
I 33 = 3,50

Custo timo: 2.495,00

O custo timo sem preservao da preparao aproximadamente 57% maior que o custo ti-
mo com preservao. A soluo tima ilustrada na Figura 3.22, e mostra dez preparaes de m-
quina contra cinco preparaes na Figura 3.21. Note que no perodo 1, a mquina preparada
para o item 2, e novamente preparada no incio do perodo 2. n

Figura 3.21 Representao da soluo tima do modelo com preservao da preparao.


Captulo 3: Otimizao discreta 213

3.6.2 Dimensionamento e programao de lotes


O tamanho do perodo nos problemas de dimensionamento de lotes discutidos anteriormente
grande, tipicamente uma semana, e chamado de macroperodo. No macroperodo toma-se a
deciso de quais itens produzir, sem a preocupao de estabelecer uma seqncia de produo
destes itens. Uma tendncia recente na literatura consiste em integrar as decises de dimen-
sionamento e programao de lotes (lot sizing and scheduling) em cada perodo. Para ilustrar esta
integrao, apresentamos a seguir dois problemas.

Problema discreto de dimensionamento e programao de lotes

A diviso do macroperodo em vrios microperodos, tipicamente uma hora ou um turno, leva


ao problema discreto de dimensionamento e programao de lotes (discrete lot sizing and scheduling
problem). A hiptese fundamental deste problema conhecida como produo tudo-ou-nada,
isto , somente um item produzido por perodo e, se produzido, utiliza a capacidade total. A
produo de um lote pode levar vrios microperodos, portanto, incorre-se um custo de prepa-
rao somente quando um novo lote processado. Para modelar esta situao, considere uma nova
varivel definida como
1 se a mquina est preparada para o item i no microperodo t
zit =
0 caso contrrio
e o seguinte parmetro adicional
1 se a mquina est preparada para o item i no incio do microperodo 1
zi 0 =
0 caso contrrio
O problema pode, ento, ser formulado como:
n T
min si yit + hi Iit (DLS1)
i =1 t =1

I it = I i ,t 1 + xit d it , i = 1,..., n, t = 1,..., T (DLS2)

bi xit = Ct zit , i = 1,..., n, t = 1,..., T (DLS3)


n
zit 1, t = 1,..., T (DLS4)
i =1

yit zit zi ,t 1 , i = 1,..., n, t = 1,..., T (DLS5)

z B nT , I R+nT , x R+nT , y R+nT (DLS6)

Figura 3.22 Representao da soluo tima do modelo sem preservao da preparao.


214 Pesquisa Operacional

A funo objetivo (DLS1) minimiza a soma dos custos fixos de produo e custos de estoque.
As restries (DLS2) correspondem ao balanceamento de estoque para cada item i e perodo t.
As restries (DLS3) impem o consumo total de capacidade do item i no microperodo t. As res-
tries (DLS4) garantem que no mximo um item produzido por microperodo. As restries
(DLS5) indicam o incio de um novo lote, isto , se zit = 1 e zi,t-1 = 0, ento yit = 1. A restrio
(DLS6) indica o tipo das variveis. Note que, embora as variveis yit assumam valores 0 ou 1, elas
no precisam ser definidas explicitamente como variveis binrias, devido a (DLS5) e (DLS1).

Problema geral de dimensionamento e programao de lotes

O problema geral de dimensionamento e programao de lotes (general lot sizing and scheduling
problem) considera macroperodos t, t = 1,..., T , de modo que cada perodo t dividido em
microperodos de tamanho varivel, sem superposio. Todos os microperodos so seqenciados
na ordem h = 1, ..., H . O nmero de microperodos H t dentro do macroperodo t definido a
priori para permitir a modelagem matemtica.
O tamanho do microperodo uma varivel de deciso, expressa pela quantidade produzida
no microperodo. Uma seqncia de microperodos em que um mesmo item produzido defi-
ne um lote, e a quantidade produzida durante esses microperodos corresponde ao tamanho do
lote. Note que os microperodos constituem duas decises em cada macroperodo: a seqncia
de produo dos itens e o tamanho do lote desses itens.
Considere as variveis:
xih = quantidade do item i produzida no microperodo h;
1 se o item i produzido no microperodo h
yih =
0 caso contrrio
1 se a mquina est preparada para o item i no microperodo h
zih =
0 caso contrrio
Este problema formulado da seguinte maneira:
n H n T
min si yih + hi Iit (DLS7)
i =1 h =1 i =1 t =1
Ht
I it = I i ,t 1 + xih dit , i = 1,..., n, t = 1,..., T (DLS8)
h =1
bi xih Ct zih , i = 1,..., n, t = 1,..., T , h = 1,..., H t (DLS9)
n Ht
bi xih Ct , t = 1,..., T (DLS10)
i =1 h =1
n
zih 1, h = 1,..., H (DLS11)
i =1

yih zih zi ,h 1 , i = 1,..., n, h = 1,..., H (DLS12)


z B nH , I R+nT , x R+nH , y R+nH (DLS13)
A funo objetivo (DLS7) minimiza a soma dos custos fixos de produo e dos custos de es-
toque. As restries (DLS8) correspondem ao balanceamento de estoque para cada item i e pe-
Captulo 3: Otimizao discreta 215

rodo t. As restries (DLS9) asseguram que, se a mquina est preparada para o item i no
microperodo h do perodo t, ento esse item pode ser produzido. As restries de capacidade em
cada perodo t esto representadas em (DLS10). As restries (DLS11) foram um nico estado
de preparao de mquina, e as restries (DLS12) indicam o incio de um novo lote. A restri-
o (DLS13) indica o tipo das variveis.
Podemos, ainda, ter modelos que considerem que os tempos e custos de preparao so de-
pendentes da seqncia de produo. Por exemplo, em uma linha de envasamento de bebidas,
o tempo de preparao para a produo de um lote de refrigerante diet depois da produo de
um lote de refrigerante com acar bem diferente do tempo de preparao para a produo da
seqncia inversa.40

3.6.3 Programao da produo


Como j destacado, as principais decises envolvidas no nvel operacional so: designao de ta-
refas (jobs) a mquinas e a programao (scheduling) das tarefas em cada mquina, isto , a seqn-
cia de processamento das tarefas e o instante de incio e trmino do processamento de cada tarefa.
A literatura nesta rea extensa devido enorme variedade dos ambientes de produo, das carac-
tersticas dos produtos e das medidas de desempenho de programas de produo. Novas caracte-
rsticas no ambiente de produo foram introduzidas com sistemas flexveis de manufatura. Esse
tipo de sistema um conjunto integrado, controlado por computadores, de dispositivos auto-
matizados de manuseio de materiais e mquinas de controle numrico que podem processar vo-
lumes mdios de uma variedade de tipos de partes. A meta desse sistema atingir a eficincia
da produo automatizada de grande escala, utilizando a flexibilidade de um job shop manual para
processar simultaneamente diversos tipos de partes.41
Com relao avaliao da qualidade de um programa de produo, as principais medidas de
desempenho so: makespan, tempo de fluxo total, atraso mximo, atraso total, lateness e nmero de
tarefas atrasadas. O makespan o instante de trmino de processamento de todas as tarefas a serem
processadas e uma medida da utilizao do sistema de produo. O tempo de fluxo total a soma
dos instantes de trmino de processamento das tarefas, que mede o estoque em processamento.
Todas as demais medidas citadas esto relacionadas s datas de entrega das tarefas. Tarefas que ter-
minam atrasadas so penalizadas, ao passo que tarefas que terminam antes da data de entrega po-
dem incorrer em custo de estoque. De forma geral, essas medidas so conflitantes e a otimizao de
mais de uma medida deve levar em considerao o trade-off caracterizado pela otimizao com mlti-
plos objetivos, em que a melhoria segundo um critrio causa uma deteriorao em outro critrio.
A seguir so apresentados alguns modelos matemticos para ilustrar a vasta rea de progra-
mao da produo.

Uma mquina

Considere n tarefas a serem processadas em uma mquina. Todas as tarefas esto disponveis para
processamento no instante zero e admite-se que a interrupo do processamento (preemption) de
qualquer tarefa no permitida. Considere os seguintes parmetros inteiros e no-negativos:
pi = tempo de processamento da tarefa i
di = data de entrega da tarefa i
M = nmero grande
40 Para detalhes de modelos de dimensionamento e programao de lotes com tempo e custo de preparao dependente da
seqncia de produo, ver Drexl e Kimms (1997) e Karimi et al. (2003). Para exemplos de aplicao destes modelos na indstria
de bebidas e nutrio animal, ver, por exemplo, Rangel e Ferreira (2003) e Toso e Morabito (2005).
41 Stecke (1983).
216 Pesquisa Operacional

Defina as seguintes variveis:


Ci = instante de trmino do processamento da tarefa i
1 se a tarefa i precede imediatamente a tarefa j
xij =
0 caso contrrio
Ti = max {Ci di , 0} = atraso da tarefa i
Ei = max {di Ci , 0} = avano ou adiantamento da tarefa i
Li = Ci di = lateness da tarefa i
Seja zero (0) uma tarefa fictcia que precede imediatamente a primeira tarefa e sucede imedia-
tamente a ltima tarefa de uma seqncia de tarefas. A partir desses parmetros e variveis, pos-
svel formular problemas com critrios distintos de otimizao. As seguintes restries so comuns
a todos problemas:
n
xij = 1, j = 0, 1,..., n (S1)
i = 0,i j
n
xij = 1, i = 0, 1,..., n (S2)
j = 0, j i
C j Ci M + ( p j + M ) xij , i = 0,..., n, j = 1,..., n (S3)
Ci 0, i = 1,..., n, C0 = 0 (S4)
xB ( n +1)( n +1) (S5)
As restries (S1) e (S2) garantem que cada tarefa tem apenas uma tarefa imediatamente
predecessora e uma tarefa imediatamente sucessora, respectivamente. Se xij = 1, a restrio (S3)
implica que
C j Ci + p j
e se xij = 0, tem-se que
C j Ci M
isto , a restrio (S3) desativada. As restries (S4) e (S5) indicam o tipo das variveis.

Minimizao do tempo de fluxo total


n
O tempo de fluxo total corresponde soma dos tempos de trmino das tarefas, isto , Ci . O
problema , ento, expresso como n i =1

min Ci
i =1
(S1)(S5)
Pode-se demonstrar que a soluo tima deste problema dada pela regra SPT (shortest
processing time), em que as tarefas so seqenciadas em ordem no decrescente dos tempos de
processamento, isto , as tarefas so processadas na seqncia: [1], [2], ..., [n], tal que
p[1] p[ 2] ... p[ n ] e [i] corresponde tarefa na i-sima posio. Por exemplo, p[2] o tempo de
processamento da tarefa que ocupa a segunda posio na seqncia de produo.42

Minimizao do atraso mximo


O atraso mximo, representado por Tmax, est associado tarefa com maior diferena entre seu
n
instante de trmino e data de entrega, isto , Tmax = max Ti . Note que Ti = max {Ci di , 0} im-
i =1
plica Ti Ci di e Ti 0 . O problema da minimizao de Tmax pode, ento, ser formulado como:
42 Este resultado ainda vlido mesmo que os tempos de processamento das tarefas sejam variveis aleatrias; ver Seo 7.8.
Captulo 3: Otimizao discreta 217

min Tmax
Tmax Ti , i = 1, ..., n
Ti Ci di , i = 1, ..., n
T R+n
(S1)(S5)

Demonstra-se que a soluo tima deste problema dada pela regra EDD (earliest due date), que
consiste em seqenciar as tarefas em ordem no decrescente das datas de entrega, isto , as tare-
fas so processadas na seqncia: [1], [2], ..., [n], tal que d[1] d[ 2 ] ... d[ n ] .

Minimizao da soma dos atrasos

Este problema modelado como


n
min Ti
i =1
Ti Ci di , i = 1, ..., n
T R+n
(S1)(S5)

Minimizao da soma dos atrasos e avanos

A formulao deste problema dada por


n
min (Ti + Ei )
i =1
Ti Ci di , i = 1, ..., n
Ei di Ci , i = 1, ..., n
T R+n , E R+n
(S1)(S5)

Minimizao do nmero de tarefas atrasadas

Defina as seguintes variveis:


1 se a tarefa i est atrasada
yi =
0 caso contrrio
A formulao do problema dada por
n
min yi
i =1
Ti Ci di i = 1, ..., n
Ti Myi , i = 1,..., n
T R+n , y B n
(S1)(S5)
Note que, se Ti > 0 , ento yi = 1 .
218 Pesquisa Operacional

Minimizao do lateness mximo


n
Seja Lmax = max Li o lateness mximo e, como a varivel Li livre, defina Li = L+i Li . Desta ma-
i =1
neira, o problema representado pelo seguinte modelo
min Lmax
Lmax L+i Li i = 1,..., n
L+i Li = Ci di i = 1,..., n
+
L R+n , L R+n
(S1)(S5)
Demonstra-se que a soluo tima deste problema tambm dada pela regra EDD.

Exemplo 3.15 O exemplo a seguir ilustra a minimizao das medidas de desempenho citadas an-
teriormente. Considere os parmetros:

p = [ pi ] = [64 53 63 99 189 44 50 22]

d = [di ] = [100 70 150 601 118 590 107 180]

Apresentam-se, a seguir, a soluo tima e seu valor para cada critrio.

Fluxo total Valor 1880


Seqncia 8 6 7 2 3 1 4 5
Instante de trmino 22 66 116 169 232 296 395 584

Atraso mximo Valor 269


Seqncia 5 2 7 1 3 8 6 4
Instante de trmino 189 242 292 354 419 441 485 584
Atraso 71 172 185 254 269 261 0 0

Soma dos atrasos Valor 499


Seqncia 2 7 3 8 1 5 6 4
Instante de trmino 53 103 166 188 252 441 485 584
Atraso 0 0 16 8 152 323 0 0

Soma dos atrasos e avanos Valor 575


Seqncia 2 7 3 8 1 5 4 6
Instante de trmino 53 103 166 188 252 441 546 590
Atraso 0 0 16 8 152 323 0 0
Avano 17 4 0 0 0 0 55 0

Nmero de tarefas atrasadas Valor 3


Seqncia 8 7 3 6 4 5 1 2
Instante de trmino 22 72 135 179 278 467 531 584
Atraso 0 0 0 0 0 349 431 514
Captulo 3: Otimizao discreta 219

Lateness mximo Valor 269


Seqncia 1 7 2 5 3 8 4 6
Instante de trmino 64 114 167 356 419 441 540 584
Lateness -36 7 97 238 269 261 -61 -6

Note a existncia de uma seqncia tima alternativa que minimiza o atraso mximo Tmax e o
lateness mximo Lmax em relao seqncia EDD dada por 2 1 7 5 3 8 6 4. A se-
qncia encontrada para a minimizao do tempo de fluxo total a seqncia SPT.
No critrio de soma de atrasos e avanos, a mquina fica ociosa entre o trmino do
processamento da tarefa 5 (instante 441) e o incio do processamento da tarefa 4 (instante 447).
Isso ocorre porque a data de entrega da tarefa 4 601, e o incio do processamento desta tarefa
no instante 441 aumentaria seu custo de avano em seis unidades. Note, tambm, que a tarefa
6 termina na sua data de entrega (590), portanto, sua antecipao tambm acarretaria em au-
mento do custo de avano. A medida da soma de atrasos e avanos f (t ) como funo do ins-
tante de trmino do processamento t para uma dada tarefa com data de entrega d mostrada na
Figura 3.23. Essa funo decresce linearmente at o instante d (o custo de avano diminui) e a
partir da cresce linearmente (o custo de atraso aumenta).
n

Pode-se demonstrar que as demais medidas so no decrescentes com o acrscimo do instante


de trmino de processamento de todas as tarefas.43 Intuitivamente, isso implica que, para as de-
mais medidas, a mquina no fica ociosa, pois uma antecipao no incio do processamento de
uma tarefa no aumenta a medida. Um aspecto importante a ser destacado o conflito entre ob-
jetivos, isto , uma soluo tima para um objetivo, em geral, no a soluo tima para outro
objetivo.44
Considere agora que um tempo de preparao de mquina necessrio para processar a tarefa
i. Se o tempo de preparao independente da seqncia, ele denotado por si , e basta defi-
nir um tempo para a execuo da tarefa i como si + pi . Quando o tempo de preparao depen-
dente da seqncia, considere a seguinte notao:
sij = tempo de preparao da mquina para processar a tarefa j imediatamente aps a tarefa i

Figura 3.23 Medida de soma de avanos e atrasos para uma tarefa.

43 Ver, por exemplo, French (1982).


44 Ver Armentano e Arroyo (2004) para uma heurstica para problemas com mltiplos objetivos; ver tambm Friedlander et al.
(1990).
220 Pesquisa Operacional

No caso de tempo de preparao independente da seqncia, a restrio (S3) alterada para


C j Ci M + ( s j + p j + M ) xij , i = 0,..., n j = 1,..., n (S6)
e no caso de tempo de preparao dependente da seqncia, a restrio (S3) torna-se
C j Ci M + ( sij + p j + M ) xij , i = 0,..., n j = 1,..., n (S7)
Todas as formulaes anteriores continuam vlidas ao substituir-se (S3) por (S6) ou (S7). No
caso de tempo de preparao dependente da seqncia, o problema de minimizao do make-
span, representado por Cmax, consiste no tempo total para processar todas as tarefas, isto ,
n
Cmax = max Ci e pode ser formulado como:
i =1

min Cmax
Cmax Ci , i = 1, ..., n
(S1)(S2)(S7)(S4)(S5)

Considere a notao:
s[ k ],[ k +1] = tempo de preparao da tarefa na posio k + 1 quando sucede a tarefa na posio k
Por exemplo, s[3],[4] o tempo de preparao para produzir a tarefa que ocupa a quarta posi-
o na seqncia de produo, logo aps a produo da tarefa que ocupa a terceira posio. En-
to, o makespan pode ser expresso como
n n
Cmax = s[ k 1],[ k ] + s[ n ],[0] + pi
k =1 i =1
Como a segunda somatria constante, ento o problema do makespan corresponde ao pro-
blema do caixeiro-viajante que comea na cidade 0 com distncia sij entre as cidades i e j. Quan-
do o tempo de preparao zero, ou quando este no depende da seqncia, este problema no
existe, pois todas as seqncias geram o mesmo valor de makespan.

Mquinas paralelas

Existem trs categorias de ambientes de mquinas paralelas: idnticas, uniformes e no relacio-


nadas. Em mquinas idnticas, cada tarefa tem o mesmo tempo de processamento e o mesmo
tempo de preparao. Em mquinas uniformes, o tempo de processamento de uma tarefa e o tem-
po de preparao de mquinas mais modernas so proporcionais aos tempos correspondentes
mquina mais antiga. Em mquinas no relacionadas, no existe uma relao entre os tempos de
processamento e preparao de mquinas distintas. Os modelos a seguir referem-se a m mqui-
nas paralelas e n tarefas disponveis para processamento no instante zero, sem interrupo de
processamento de qualquer tarefa.

Para o problema de minimizao do makespan em mquinas idntidas, seja


pi = tempo de processamento da tarefa i, i = 1,..., n
Considere as seguintes variveis
Cmax = makespan
1 se a tarefa i processada na mquina j
xij =
0 caso contrrio
Captulo 3: Otimizao discreta 221

e o seguinte modelo:
min Cmax (S8)
m
xij = 1, i = 1,..., n (S9)
j =1 n
Cmax pi xij , j = 1,..., m (S10)
i =1

Cmax 0, x B mn (S11)
A funo objetivo (S8) representa a minimizao do makespan. As restries (S9) asseguram que
uma tarefa i designada a exatamente uma mquina, enquanto as restries (S10) impem que
o makespan o maior tempo de processamento entre todas as mquinas. A restrio (S11) indica
o tipo das variveis.45
A seguir, apresenta-se um modelo para minimizao da soma dos avanos e atrasos que pode
ser aplicado a qualquer dos trs tipos de mquinas anteriormente mencionados. Sejam os par-
metros inteiros no-negativos:
pik = tempo de processamento da tarefa i na mquina k
sijk = tempo de preparao da mquina k para processar a tarefa j imediatamente aps a tarefa i
di = data de entrega da tarefa i
M = nmero grande
Defina as seguintes variveis
Cik = instante de trmino do processamento da tarefa i na mquina k
1 se a tarefa i precede imediatamente a tarefa j na mquina k
xijk =
0 caso contrrio
Ti = max {Ci di , 0} = atraso da tarefa i
Ei = max {di Ci , 0} = avano da tarefa i
e considere a seguinte formulao:
n
min (Ti + Ei ) (S12)
i =1
m n
xijk = 1, j = 1,..., n (S13)
k =1 i = 0
n
x0 jk 1, k = 1,..., m (S14)
j =1

n n
xihk xhjk = 0, h = 1,..., n, k = 1,..., m (S15)
i=0 j =0
ih jh

C jk Cik M + ( sijk + p jk + M ) xijk , i = 0,...., n, j = 1,..., n (S16)

45 Ver Frana et al. (1996) para uma heurstica em mquinas paralelas idnticas.
222 Pesquisa Operacional

Ti Ci di i = 1,..., n (S17)
Ei di Ci i = 1,..., n (S18)
T R+n , E R+n , x B m ( n+1)( n+1) (S19)
A funo objetivo (S12) expressa a minimizao da soma total dos atrasos e avanos das ta-
refas. As restries (S13) impem que cada tarefa j tem uma nica tarefa predecessora imedia-
ta em uma nica mquina. As restries (S14) garantem que cada mquina k, se usada, tem
uma nica seqncia de processamento. As restries (S15) asseguram que cada tarefa j tem
uma nica tarefa sucessora imediata, com exceo da tarefa 0, que estabelece o incio e o final
da seqncia de processamento em uma mquina k. Se xijk = 1, a restrio (S16) implica que,
na mquina k,
C jk Cik + sijk + p jk
e, se xijk = 0, tem-se que
C jk Cik M
isto , a restrio (S16) fica desativada. A restrio (S19) indica o tipo das variveis.
Modelos para outros critrios de otimizao, como vistos para uma mquina, podem ser fa-
cilmente obtidos por modificaes na formulao (S12)(S19).

Job shop

Um job shop clssico um ambiente de produo com n tarefas e m mquinas, em que cada tare-
fa processada nas m mquinas, de acordo com um roteiro preestabelecido. Considere, por exem-
plo, 5 tarefas e 3 mquinas, denotadas por 1, 2 e 3. A Figura 3.24 mostra um exemplo com a
matriz de operaes de cada tarefa O e a matriz de tempos de processamento nas mquinas P.
Por exemplo, a primeira linha da matriz O indica que a tarefa 1 processada nas mquinas 2-1-3,
nesta ordem, com tempos de processamento de 5, 7, e 10, respectivamente, correspondentes aos
elementos da primeira linha da matriz P.46
Admita que as n tarefas esto disponveis para processamento no instante zero e que a inter-
rupo do processamento de qualquer tarefa no permitida. Considere os parmetros:
pik = tempo de processamento da tarefa i na mquina k
i(1), ..., i(m) = roteiro de processamento da tarefa i nas m mquinas, isto , a seqncia de m-
quinas em que as operaes dessa tarefa so processadas
M = nmero grande

Figura 3.24 Matrizes de operaes e tempos de processamento em job shop.

46 O caso particular de tarefas com tempo unitrio considerado em Szwarcfiter (1987); ver tambm discusso em Santoro e Pa-
checo (2000).
Captulo 3: Otimizao discreta 223

Defina as variveis
Cik = instante de trmino do processamento da tarefa i na mquina k
1 se a tarefa i precede a tarefa j na mquina k
xijk =
0 caso contrrio
e considere o seguinte modelo:
n
min Ci (m) (S20)
i =1
Ci ,i (1) pi ,i (1) , i = 1,..., n (S21)
Ci ,i ( k +1) Ci ( k ) + pi ,i ( k +1) , i = 1,..., n, k = 1,..., m 1 (S22)
C jk Cik + p jk M (1 xijk ), i = 1,..., n, j = 1,..., n, k = 1,..., m (S23)
Cik C jk + pik Mxijk , i = 1,..., n, j = 1,..., n, k = 1,..., m (S24)
C R+mn , x B mnn
(S25)
A funo objetivo (S20) expressa a minimizao do tempo de fluxo total das tarefas. As restri-
es (S21) garantem que a primeira operao de cada tarefa i completada aps o respectivo tem-
po de processamento. As restries (S22) impem que a operao k + 1 da tarefa i concluda
depois do trmino da operao k e do tempo de processamento da operao k + 1. As restries
(S23) e (S24) so restries disjuntivas que indicam se, na mquina k, a tarefa i precede a tarefa
j, ou a tarefa j precede a tarefa i. Se xijk = 1, ento, de (S23) e (S24), tem-se que
C jk Cik + p jk
Cik C jk pik M
isto , a restrio (S24) desativada. De modo anlogo, se xijk = 0, ento
C jk Cik p jk M
Cik C jk + pik
isto , a restrio (S23) desativada. A restrio (S25) estabelece o tipo das variveis.
Variantes do modelo acima para outros critrios de otimizao47 podem ser obtidas por mo-
dificaes adequadas na formulao (S20)(S25).

Exemplo 3.16 Para as matrizes de roteiro e de processamento da Figura 3.24, a soluo tima
dada por:
x131 = x151 = x211 = x231 = x241 = x251 = x411 = x431 = x451 = x531 = 1
x122 = x132 = x152 = x232 = x252 = x352 = x412 = x422 = x432 = x452 = 1
x213 = x313 = x323 = x343 = x413 = x423 = x513 = x523 = x533 = x543 = 1

C12 = 14 C11 = 19 C13 = 32


C 21 = 9 C22 = 19 C 23 = 22
C33 = 11 C32 = 27 C31 = 32
C 42 = 7 C 41 = 11 C43 = 15
C53 = 8 C51 = 27 C52 = 35
47 Ver Armentano e Scrich (2000) para uma heurstica para minimizao do atraso total em job shop.
224 Pesquisa Operacional

Valor do fluxo timo: C13+ C23+ C31+ C43+ C52 = 136


A representao grfica das operaes em mquinas ao longo do tempo, conhecida como dia-
grama de Gantt, mostrada na Figura 3.25. n

Flow shop

O ambiente de produo flow shop um caso particular do ambiente job shop, em que as n tare-
fas tm o mesmo roteiro nas m mquinas. Quando a seqncia das tarefas a mesma em todas
as mquinas, tem-se um flow shop permutacional. O modelo do job shop pode ser adaptado de for-
ma a gerar um modelo para o flow shop. No entanto, esta formulao fraca48 para obteno da
soluo tima por pacotes de otimizao e, por esse motivo, apresenta-se uma formulao mais
adequada.
Seja j o ndice que indica a posio na seqncia de tarefas, e considere o parmetro:
pik = tempo de processamento da tarefa i na mquina k
Defina as variveis
skj = instante de incio de processamento da tarefa na posio j na mquina k

1 se a tarefa i designada posio j


zij =
0 caso contrrio
e considere o seguinte modelo
n
min Cmax = smn + pim zin (S26)
i =1
n
zij = 1, i = 1,..., n (S27)
j =1
n
zij = 1, j = 1,..., n (S28)
i =1

Figura 3.25 Diagrama de Gantt para exemplo de job shop.

48 Stafford Jr. et al. (2005).


Captulo 3: Otimizao discreta 225
n
s1 j + pi1 zij = s1, j +1 , j = 1, ..., n 1 (S29)
i =1

s11 = 0 (S30)
n
sk1 + pik zi1 = sk +1,1 , k = 1, ..., m 1 (S31)
i =1
n
skj + pik zij sk +1, j , j = 2, ..., n, k = 1, ..., m 1 (S32)
i =1
n
skj + pik zij sk , j +1 , j = 1, ..., n 1, k = 2, ..., m (S33)
i =1

s R+nm , z B nn (S34)
A funo objetivo (S26) corresponde minimizao do makespan. As restries (S27) garantem
que cada tarefa i est associada a uma nica posio, e as restries (S28) asseguram que cada
posio j est associada a uma nica tarefa. As restries (S29) foram a tarefa na posio j a ini-
ciar seu processamento na mquina 1 depois que sua tarefa predecessora tenha sido processada
nesta mquina. A restrio (S30) estabelece que a primeira tarefa da seqncia comece seu
processamento na mquina 1 no instante 0. As restries (S31) garantem que a primeira tarefa
na seqncia seja processada imediatamente na prxima mquina k + 1 , desde que seu
processamento na mquina corrente k tenha sido completado. As restries (S32) asseguram que
uma tarefa na posio j no pode ser iniciada na prxima mquina k + 1 antes do trmino do seu
processamento na mquina corrente k. As restries (S33) garantem que uma tarefa na posi-
o j + 1 no pode iniciar em uma mquina k antes que o processamento da tarefa na posio j
na mesma mquina k tenha sido completado. A restrio (S34) indica o tipo das variveis.49
Seja
n
Cl = slm + pim zil , l = 1, ..., n
i =1
o instante de trmino do processamento na posio l na mquina m, e dl, a correspondente data
de entrega. Ento
Tl = max{Cl dl , 0}, l = 1, ..., n
o atraso da tarefa na posio l. Assim, o fluxo total e o atraso total podem ser expressos como
n n
Cl e Tl .
l =1 l =1
Existem diversas variantes dos problemas bsicos de job shop (flow shop) modelados anterior-
mente que so descritas a seguir.
Job shop com nmero distinto de operaes por tarefa
Este o caso em que cada tarefa processada por um subconjunto de m mquinas disponveis.
Job shop com interrupo (preemption)
Em todos os modelos anteriores, assumimos que o processamento de uma tarefa no pode
ser interrompido. No entanto, existem situaes, principalmente em programao de tarefas
em computadores, em que uma tarefa com maior prioridade torna-se disponvel para
processamento. Nesse caso, a tarefa menos importante tem seu processamento interrompido.

49 Uma heurstica para minimizao do makespan proposta por Moccellin e Santos (2000); ver tambm Nagano e Moccellin (2002).
O caso particular de tarefas com tempos unitrios considerado em Blazewicz et al. (1988).
226 Pesquisa Operacional

Job shop com instantes de disponibilidade distintos


Os modelos anteriores tambm pressupem que todas as tarefas esto disponveis para
processamento no mesmo instante. No entanto, h situaes em que esses instantes de dis-
ponibilidade (ready times) so distintos.
Job shop flexvel
Uma operao pode ser executada por qualquer mquina de um dado conjunto. Um flow
shop flexvel caracterizado por estgios, cada estgio com mquinas paralelas. Esses am-
bientes flexveis de produo permitem vrios roteiros de processamento de uma tarefa.
Job shop com tempos de preparao dependentes da seqncia
A extenso das formulaes dos problemas de job shop e flow shop apresentadas anteriormente
para a considerao de tempos de preparao dependentes da seqncia no imediata.50
Job shop e flow shop com buffers
Tarefas que esperam para serem processadas em uma mquina situam-se, em geral, em um
buffer de capacidade limitada.51 Nos modelos anteriores de job shop e flow shop, assume-se
que a capacidade ilimitada. Duas variantes adicionais so importantes em indstrias de
processamento: bloqueio (blocking) e sem espera (no-wait).52 No flow shop com bloqueio, no
existem buffers entre mquinas. O trmino da operao de uma tarefa em uma mquina blo-
queia esta mquina at que a mquina seguinte esteja disponvel para processamento.53 O
flow shop sem espera no permite buffers entre mquinas. Quando uma tarefa comea seu
processamento na primeira mquina, deve ser processada continuamente at a ltima m-
quina, sem interrupo. Neste caso, o bloqueio no existe. Uma das razes para esses am-
bientes de produo a tecnologia de produo. Em alguns processos, a temperatura ou
outras caractersticas (como a viscosidade) do material requer que cada operao siga ime-
diatamente a anterior. Este tipo de situao ocorre em processos qumicos, farmacuticos
e de ao.
Job shop e flow shop com reentrada
Uma reentrada ocorre quando uma tarefa completa uma passada pelo ambiente de produo
e entra novamente neste ambiente para um novo conjunto de operaes. Esta situao
tpica da indstria de semicondutores.54
Restries de precedncia
Este tipo de restrio impe que uma tarefa s pode iniciar seu processamento aps o tr-
mino do processamento de outras tarefas, denominadas tarefas predecessoras. Isso ocorre
em sistemas de produo55 e de computao.56
De forma geral, as decises de programao da produo devem ser tomadas em tempo pe-
queno (alguns segundos ou minutos), o que inviabiliza a utilizao de mtodos timos, que, em
geral, exigem grande tempo computacional para a gerao de uma soluo tima. Neste caso, uma
prtica comum a utilizao de regras de despacho que ordenam as tarefas de acordo com al-
gum critrio, como, por exemplo, as regras SPT e EDD.57

50 Para formulaes em flow shop e job shop, ver Stafford Jr. e Tseng (2002), e Cheung e Zhou (2001), respectivamente.
51 Nowicki (1999).
52 Hall e Sriskandarajah (1996).
53 Para um algoritmo branch-and-bound para este problema, ver Ronconi e Armentano (2001).
54 Pearn et al. (2004).
55 Strusevich (1997).
56 Kwok e Ahmad (2005).
57 Baker (1974). Ver, por exemplo, Regras de despacho so utilizadas por Kiyuzato et al. (2002) para minimizar a soma dos atrasos
em aplicao em produo de autopeas.
Captulo 3: Otimizao discreta 227

3.6.4 Outros problemas de programao


Existem outros problemas de programao (scheduling) que no podem ser descritos como o
processamento de tarefas em mquinas. A seguir, apresentamos tipos distintos de problemas co-
muns e importantes de programao.

Balanceamento de linha de montagem

Uma linha de montagem um sistema de fluxo de produo de alto volume de produtos padro-
nizados, criada por Henry Ford em 1913 para a produo de automveis. Atualmente, tambm
tem sido usada para a produo de baixo volume de produtos personalizados.58 Uma linha de
montagem consiste em estaes de trabalho dispostas ao longo de uma esteira, e as tarefas so
lanadas na linha, movendo-se de uma estao para outra. Em cada estao, um conjunto de
operaes executado em um intervalo de tempo, denominado tempo de ciclo. O problema de
particionar (balancear) o trabalho de montagem entre estaes com relao a algum objetivo
denominado problema de balanceamento de linha de montagem. A instalao de uma linha de
montagem uma deciso de longo prazo e, em geral, requer um grande investimento.
Cada operao de manufatura em um produto chamada de tarefa que tem uma dada du-
rao, e devido a condies tecnolgicas e organizacionais, existem restries de precedncia entre
tarefas. Esses elementos podem ser representados em um grafo de precedncia, em que cada n
representa uma tarefa, o peso do n corresponde durao da tarefa e arcos representam as re-
laes de precedncia. A Figura 3.2659 mostra um grafo de precedncia com dez ns. A durao
da tarefa correspondente ao n 5 de 4 unidades de tempo, e essa tarefa s pode ser executada
quando o processamento das tarefas 1 e 4 (ns predecessores imediatos do n 5) completado.
Seja Sk o conjunto de tarefas designadas estao k , k = 1,..., m , e dj a durao da tarefa
j , j = 1, ..., n. Ento, a carga da estao k dada por d ( Sk ) = jS d j . Quando um tempo de
k
ciclo c dado, ento uma linha balanceada factvel somente se a carga da estao no excede
c. Quando d ( Sk ) < c , a estao k tem um tempo ocioso de c d ( S K ) unidades de tempo.
Existem linhas com montagem de um produto ou de vrios produtos. No caso de um nico
produto, o objetivo pode ser minimizar m para um dado c ou, ainda, minimizar c (maximizar a
taxa de produo) para um dado m. O objetivo mais geral consiste em maximizar a eficincia E
da linha, definida como E = d total / m c , em que d total = j =1 d j .
n

Para o exemplo da Figura 3.26, uma soluo tima, dado c = 11 , corresponde carga de m = 5
estaes, S1 = {1,3} , S2 = {2, 4} , S3 = {5, 6} , S4 = {7,8} , S5 = {9,10}. As estaes 2 e 5 no tm

Figura 3.26 Grafo de precedncia em linha de montagem.

58 Para uma reviso de problemas generalizados de linhas de montagem, ver Becker e Scholl (2006).
59 Figura extrada de Scholl e Becker (2006).
228 Pesquisa Operacional

tempo ocioso, e as estaes 1, 3 e 4 tm tempo ocioso de 1, 2 e 5 unidades de tempo, respectiva-


mente. Uma soluo tima, dado m = 6 , corresponde s cargas das estaes S1 = {3, 4}, S2 = {1, 5} ,
S3 = {2, 7}, S4 = {6, 8}, S5 = {9}, S6 = {10}, com tempo de ciclo mnimo c = 11. A eficincia ti-
ma dada por E = 48 /11 5 = 0,87 , que atingida pela primeira soluo tima.

Programao de projetos

Um projeto consiste de atividades que tm uma durao, relaes de precedncia e competem


por recursos. Quando os recursos so ilimitados, uma prtica comum utilizar os mtodos CPM
e PERT,60 descritos na Seo 4.2.2, para analisar o efeito do possvel atraso de atividades. Projetos
so encontrados em diversas reas, tais como: construo de edifcios, pontes, estradas; plane-
jamento da produo de produtos sob encomenda, por exemplo, avies e navios; desenvolvimento
e pesquisa.61
Problemas de programao de projetos, brevemente discutidos na Seo 2.2.4, consistem em
encontrar um instante de incio para todas as atividades de forma a minimizar um ou mais ob-
jetivos, como, por exemplo, o instante de trmino do projeto (makespan) quando os recursos so
limitados. Existe uma grande variedade de problemas de acordo com os elementos do projeto.
Atividades podem ser executadas de diversos modos, como, por exemplo, um trabalhador em
oito perodos de tempo ou quatro trabalhadores em dois perodos de tempo. Existem categorias
de recursos, tais como recursos renovveis, que esto disponveis em cada perodo (mquinas,
equipamento, mo-de-obra), e recursos no-renovveis, que so limitados ao longo do horizon-
te de planejamento (capital disponvel). Alm disso, h uma diversidade de objetivos, tais como
minimizao do makespan ou do custo,62 e maximizao da qualidade ou do valor presente,
quando existe um fluxo de caixa ao longo do projeto, com despesas com atividades e receitas
geradas pelo trmino de partes do projeto.
Para ilustrar a minimizao do makespan em um projeto com recursos limitados, vamos con-
siderar o Exemplo 4.19 da Seo 4.2.2. Um projeto pode ser representado por um grafo orien-
tado em que ns representam atividades e arcos indicam relaes de precedncia. Por exemplo,
a atividade 9 pode ser iniciada somente quando as atividades 4, 6 e 3 estivem completadas. As
duraes das atividades correspondem a pesos dos ns. A Figura 3.27 mostra o grafo de prece-
dncia do projeto, com dez atividades e dois ns fictcios O e F que representam atividades de
incio e fim do projeto. Cada atividade i, com durao di, requer rik unidades do recurso k, com
disponibilidade Rk. Assuma que cada atividade requer dois tipos de recursos, isto , k = 1, 2, e
considere os seguintes parmetros:
d = [di ] = [0 4 10 5 1 5 7 4 3 2 2 0]

r = [rik ] = 0 1 1 0 1 1 0 1 0 1 1 0
0 1 2 1 1 1 3 0 2 1 1 0
R = [ Rk ] = [2 3]
As Figuras 3.28 e 3.29 mostram o diagrama de Gantt para o projeto com recursos ilimita-
dos e limitados, respectivamente. A limitao de recursos, em geral, provoca um aumento do
makespan, no caso, de 21 para 24. Note, por exemplo, que a atividade 3 atrasada em relao
ao projeto ilimitado, pois as atividades 1 e 2 consomem a disponibilidade de 3 unidades do re-
curso 2.

60 Outros mtodos para programar atividades com durao aleatria so propostos por Mohring e Stork (2000).
61 Um bom livro introdutrio Moder et al. (1983) e, para uma reviso abrangente, ver Kolisch e Padman (2001).
62 Ver, por exemplo, Yamashita et al. (2006).
Captulo 3: Otimizao discreta 229

Figura 3.27 Grafo de precedncia em projeto.

Figura 3.28 Diagrama de Gantt para projeto com recursos ilimitados.

Figura 3.29 Diagrama de Gantt para projeto com recursos limitados.


230 Pesquisa Operacional

Programao de servios

A programao de atividades em servios difere da programao de tarefas em mquinas em v-


rios aspectos. A primeira diferena que em servios no h bens a serem estocados. Uma tare-
fa pode esperar pelo processamento em uma mquina, mas em servio uma atividade pode estar
associada a um cliente que no tolera esperar. A segunda distino que o nmero de recursos
(por exemplo, mquinas) em manufatura , em geral, fixo, enquanto em servio o nmero de re-
cursos (por exemplo, pessoas, quartos, caminhes) pode variar com o tempo. Outra distino
deve-se ao fato de que negar um servio a um cliente mais comum do que no entregar um pro-
duto no contexto de manufatura. A seguir so apresentados exemplos de tipos de problemas de
programao em servios.

Sistemas de reserva

Uma agncia de aluguel de carros mantm uma frota com vrios tipos de carros. Clientes podem
ser flexveis ou no com relao ao tipo de carro que desejam alugar. Um cliente deseja fazer uma
reserva para um perodo de dias determinado, e a agncia tem de decidir se prov ou no o car-
ro ao cliente. Pode ser vantajoso negar a reserva ao cliente quando existe uma chance de alugar
o carro para outro cliente por um perodo de tempo maior. O objetivo da empresa maximizar
o nmero de dias de aluguel de seus carros.

Programao de horrios em instituies de ensino

O problema de programao de horrios (timetabling) faz parte do cotidiano de instituies edu-


cacionais. A dificuldade de encontrar solues satisfatrias manualmente nesses problemas tem
motivado a pesquisa e o desenvolvimento de ferramentas de confeco automatizada de hor-
rios. Em geral, busca-se a confeco de um quadro de horrios que satisfaa alguns requisitos es-
senciais (restries hard), como, por exemplo, no alocar uma sala para duas aulas distintas no
mesmo horrio, e atenda, quando possvel, outros requisitos no essenciais (restries soft), como,
por exemplo, a preferncia de um professor por uma aula em um dado horrio. Embora o pro-
blema de programao de horrios seja bastante dependente das particularidades da instituio,
em geral, pode ser classificado em trs categorias, descritas a seguir.
Escolas de ensino mdio (e tambm algumas universidades): as turmas so conjuntos dis-
juntos de estudantes que compartilham o mesmo currculo e, em geral, devem ter hor-
rio completamente preenchido, enquanto os professores especificam restries e/ou
preferncias de horrios.
Universidades: neste caso, h liberdade na seleo de disciplinas por parte dos alunos, e
busca-se a montagem de um horrio em que os alunos possam assistir a todas as aulas das
disciplinas que pretendem cursar.
Exames no final de perodo letivo: cada aluno apresenta um conjunto de exames que deve
prestar e estes devem ser agendados de modo que nenhum aluno tenha dois exames simul-
tneos e, se possvel, com intervalos de tempo razoveis entre os exames de cada aluno.
Nos primeiros dois problemas, as aulas devem ser agendadas em um perodo, usualmente, uma
semana dividida em dias. Pr-alocaes de aulas podem ser requisitadas. Outra considerao bas-
tante comum na formulao do problema a alocao de recursos limitados, tais como salas de
aula e projetores multimdia.
A definio das restries hard e soft bastante dependente do problema tratado. Em escolas,
por exemplo, uma possvel restrio hard que uma turma no pode ter mais de duas aulas do
mesmo assunto por dia. Uma possvel restrio soft envolve a satisfao dos professores por meio
Captulo 3: Otimizao discreta 231

da gerao de horrios compactos, aulas concentradas em alguns dias, e sem perodos de inati-
vidade entre aulas.63

Programao e Grade de Horrios em Torneios de Esporte

Ligas de esportes profissionais constituem uma grande atividade econmica no mundo. As redes
de televiso norte-americanas pagam mais de 400 milhes de dlares por ano para transmitir somen-
te jogos de beisebol,64 enquanto no Brasil uma rede de televiso comprometeu-se a pagar R$707,7
milhes, no mnimo, para a transmisso dos jogos do campeonato brasileiro no trinio 2006-2008.65
Uma questo-chave em torneios de esportes o programa de jogos das equipes. Os detento-
res dos direitos de transmisso no querem jogos sem atrao em um horrio nobre, e as equi-
pes no querem que o investimento em jogadores e infra-estrutura seja prejudicado por um
programa pobre de jogos. Portanto, programas eficientes so de grande interesse para as equipes,
ligas, patrocinadores, mdia e fs. Isso tem motivado a pesquisa em programao de jogos em di-
versos esportes, tais como futebol, basquetebol, beisebol, hquei e crquete.
A distncia entre cidades em pases grandes um fator complicador. No caso do campeona-
to brasileiro de futebol, uma viagem de So Paulo a Belm leva de 8 a 10 horas para cobrir uma
distncia de aproximadamente trs mil quilmetros. Para reduzir a distncia percorrida, o time
de So Paulo pode viajar, por exemplo, de Belm a Fortaleza para outro jogo, antes de retornar
para So Paulo.
A seguir, apresentamos o problema do torneio viajante (traveling tournament problem), que um
problema de grade de horrios de um campeonato que abstrai certas caractersticas de proble-
mas de programao de jogos.
Dados n times, em que n par, um torneio simples tal que cada time joga uma vez em n 1
rodadas. Cada rodada contm n / 2 jogos, de modo que o nmero total de jogos n(n 1) / 2 , que
corresponde soma dos nmeros inteiros 1, 2, ..., n 1. Por exemplo, em um torneio com 4 ti-
mes, A, B, C e D, o time D joga com os times B, C e D, o time B joga com os times C e D, e o
time C joga com o time D, totalizando (4 3) / 2 = 6 jogos. Um torneio duplo aquele que tem
2(n 1) rodadas e cada par de times joga duas vezes, um em casa e outro na casa do oponente.
Admite-se que cada time tenha um estdio em casa e que as distncias entre as cidades so co-
nhecidas. Cada time est em casa no incio do torneio e retorna para casa depois da ltima par-
tida fora de casa. Quando um time joga duas vezes consecutivas fora de casa, ele viaja da cidade
do primeiro oponente para a cidade do segundo oponente sem retornar para casa.
Para um torneio duplo, o problema do torneio viajante consiste em minimizar a soma das dis-
tncias viajadas por todos os times, sujeito restrio de que o nmero de jogos consecutivos fora
de casa e em casa limitado (tipicamente, trs). Existem duas variantes deste problema que in-
cluem uma restrio adicional:
Variante sem repetio: no existem times i, j tal que, se i joga com j, ento j joga com i na
prxima rodada.
Variante espelho:66 os jogos da rodada k so os mesmos da rodada k + ( n 1), k = 1, ..., n 1 .

Programao em transporte

Existe um grande nmero de problemas de programao no setor de transportes, devido aos di-
versos meios de transporte, tais como navios, avies, trens e nibus. A programao de veculos

63 Ver Santos et al. (2004) para uma heurstica aplicada programao de horrio em escolas de ensino mdio no Brasil.
64 Easton (2001).
65 Folha de S. Paulo, 31 de outubro de 2005.
66 Ver Ribeiro (2005) para heursticas para a variante espelho e aplicao no campeonato brasileiro de futebol de 2004.
232 Pesquisa Operacional

e da tripulao so dois dos mais importantes problemas no planejamento operacional de uma


empresa de transporte pblico, que pode ser nibus, metr, trem ou empresa area.
As entradas para o processo de planejamento operacional so as linhas e a freqncia destas.
A partir dessa informao, constri-se a grade de horrios com as viagens e os correspondentes
instantes e locais de partida e chegada. A programao de veculos consiste em designar vecu-
los a viagens, resultando em um programa para cada veculo. Os veculos que no esto em uso
ficam estacionados em um depsito. Um programa para um veculo consiste em blocos de via-
gens consecutivas, cada bloco comeando no depsito. Em cada bloco existem tarefas que devem
ser designadas ao perodo de trabalho de uma tripulao. A programao da tripulao
corresponde ao planejamento de curto prazo, isto , designar tarefas tripulao a cada dia.
Restries importantes para veculos envolvem atender a demanda de passageiros e respeitar
o primeiro e o ltimo horrio de partida em cada dia. Restries importantes associadas tripu-
lao compreendem tempo mximo de trabalho dirio, limite de tempo de hora extra e tempo
de descanso dentro de uma janela de tempo do perodo de trabalho. Os objetivos esto relacio-
nados a aspectos operacionais, tais como minimizar o nmero de veculos e tripulaes e dura-
o de hora extra.67

Programao de fora de trabalho

A alocao de fora de trabalho e a programao de pessoas lidam com programas de trabalho e


designao de pessoas a turnos de modo a atender demanda por recursos que variam ao lon-
go do tempo. Exemplos destes problemas so operadores de telefonia, enfermeiras em hospitais,
policiais, pessoal de transporte (tripulao de avio, motorista de nibus), dentre outros. As ope-
raes nesses ambientes so prolongadas e irregulares, e a necessidade de pessoas varia ao lon-
go do tempo.
Considere, por exemplo, a programao de enfermeiras em hospitais. Cada hospital tem uma
necessidade de enfermeiras que varia a cada dia. Por exemplo, o nmero de enfermeiras neces-
srio em fins de semana menor, e pode ou no ser menor no perodo noturno. Existem diver-
sas restries impostas por leis trabalhistas e pelo hospital, gerando, assim, diversas possibilidades
de programas por turno, com custos distintos. O horizonte de planejamento varia de uma sema-
na a um ms, tipicamente. Enfermeiras so, em geral, classificadas em nveis de acordo com seu
conhecimento e experincia. Alm disso, elas explicitam, no incio do horizonte de planejamen-
to, suas preferncias por dias de folga. A combinao desses dois fatores resulta em programas
com diversos nveis de qualidade. A meta designar pessoas a turnos, de modo que as necessi-
dades dirias sejam atendidas e as restries sejam satisfeitas a um custo mnimo, custo este que
pode envolver hora extra e baixa qualidade de atendimento.68

3.7* COMPLEXIDADE COMPUTACIONAL


Uma instncia I de um problema P definida pelos valores dos parmetros. Por exemplo,
{
max 2 x1 + 4 x2 + 3x3 : 3 x1 + 2 x2 + 4 x3 5, x B 3 }
corresponde a uma instncia do problema da mochila
n n
max c j x j : a j x j b, x B n
j =1 j =1
67 Ver Rodrigues et al. (2006) para a otimizao da programao integrada de veculos e tripulao, com aplicao em empresas
que operam em So Paulo e So Bernardo do Campo.
68 Mtodos heursticos so propostos por Dias et al. (2003) para a programao de enfermeiras do Hospital das Clnicas da Uni-
versidade Estadual de Campinas.
Captulo 3: Otimizao discreta 233

Para uma instncia I de um problema P, o comprimento da entrada L = L( I ) o comprimento


da representao binria de I. No caso do problema da mochila, tem-se
n n
L( I ) = log 2 c j + log 2 a j
j =1 j =1

Dado um problema P, um algoritmo A para este problema, e uma instncia I, seja f A ( I ) o n-


mero de operaes elementares para aplicar o algoritmo A instncia I. A funo comple-
xidade f A* (k ) = max I { f A ( I ) : L( I ) = k } corresponde ao tempo de execuo do algoritmo A.
A teoria da complexidade computacional distingue dois tipos de funo, que representam um
algoritmo eficiente e um algoritmo no eficiente. Um algoritmo eficiente tem funo com-
plexidade polinomial, isto , f A* (k ) c k p, para algum inteiro positivo p e uma constante positi-
va c. Um algoritmo no eficiente caracterizado por uma funo exponencial de k, isto , para
constantes c1 , c2 > 0 , d1 , d 2 > 1 e um inteiro positivo k ', tem-se
c1d1k f A* ( k ) c2 d 2k para todo inteiro k k ' .
Exemplos tpicos de funo exponencial correspondem enumerao de 2k vetores binrios
de dimenso k e enumerao de n! permutaes de seqncias com n elementos.
Os fundamentos da teoria da NP-completude associada a problemas de deciso foram inicia-
dos com o problema de satisfabilidade (satisfiability).69 Este um problema clssico na lgica
booleana, em que uma varivel x assume o valor 0 ou 1. Os valores 0 e 1 so associados aos ter-
mos falso e verdadeiro associados a proposies em lgica. O complemento de uma varivel booleana
x definido como x = 1 x . Seja X = {x1 ,..., xn } um conjunto de variveis booleanas. Se f uma
funo das variveis booleanas x1 , ..., xn, diz-se que cada termo xi ou seu complemento xi ,
i = 1,..., n , um literal. Uma clusula C definida no conjunto X uma disjuno de literais. Por
exemplo, C = x1 x4 x7 uma clusula, em que o smbolo representa ou. Diz-se que uma
clusula satisfeita se pelo menos um de seus membros verdadeiro. Neste exemplo, a clusula
satisfeita a menos que x1 = 0, x4 = 1, x7 = 0.
Uma coleo de clusulas C1 , C2 , ..., Cm sobre X satisfeita se existe uma atribuio de valo-
res aos literais de cada clusula que satisfaa simultaneamente todas as clusulas, isto , que sa-
tisfaa a conjuno das clusulas C1 C2 L Cm , em que o smbolo representa e.
Como ilustrao, considere as clusulas C1 = x1 x2 x3 , C2 = x2 x3 , C3 = x1 x3 . A frmu-
la C1 C2 C3 satisfeita ao se fazer x1 = 1, x2 = 1, x3 = 0 . Este problema pode ser traduzido para
a existncia de uma soluo factvel para o seguinte problema binrio:
x1 + (1 x2 ) + x3 1
x2 + x3 1
x1 + (1 x3 ) 1
De modo geral, dadas m clusulas Ci = (Ci+ , Ci ), i = 1, ..., m , existe
x Bn : x + (1 x ) 1 para
j j i = 1, ..., m ?
j Ci+ j Ci

Em seguida, demonstrou-se70 que uma coleo de problemas de deciso associados a proble-


mas de otimizao combinatria, incluindo o problema do caixeiro-viajante, so to difceis
quanto o problema de satisfabilidade. Por exemplo, a verso deciso do problema de otimizao
da mochila corresponde a: para um dado k, existe
n n
x Bn : a j x j b e c x j j k?
j =1 j =1

69 Cook (1971).
70 Karp (1972).
234 Pesquisa Operacional

Em 1979, Garey e Johnson publicaram um livro considerado um marco na teoria da comple-


xidade computacional. Como ressaltado pelos autores, a distino entre os algoritmos polinomiais
e exponenciais bastante significativa ao se considerarem instncias grandes. A Tabela 3.2 ilus-
tra taxas de crescimento de tempo de execuo para algumas funes de cada tipo, admitindo
um computador que execute 106 operaes por segundo. Note o crescimento explosivo das trs
funes de complexidade exponencial.
Para a maioria dos problemas de programao inteira mista, incluindo a maioria dos proble-
mas formulados anteriormente, no existem algoritmos polinomiais de resoluo.

3.8* FORMULAES ALTERNATIVAS


Podem existir diversas formulaes para um dado problema e algumas delas so melhores. Ini-
cialmente, define-se o conceito de formulao.

{
Definio 3.1 Um subconjunto de Rn descrito por restries lineares P = x R : Ax b um
n
}
poliedro.

Definio 3.2 Um poliedro P R n + p uma formulao para um conjunto X Z n R p se e so-


mente se X = P ( Z n R p ) .

Exemplo 3.17 A Figura 3.30 apresenta duas formulaes distintas P1 e P2 para o conjunto
X = {(1,3), (2,1), (2, 2), (2,3), (2, 4), (3,1), (3, 2), (3,3), (4, 2)}
n

Tabela 3.2
Tempo computacional para funes polinomiais e exponenciais.

Funo Tamanho n
Complexidade 10 20 30 40 50 60

n 0,00001 0,00002 0,00003 0,00004 0,00005 0,00006


segundo segundo segundo segundo segundo segundo

n2 0,0001 0,0004 0,0009 0,0016 0,0025 0,0036


segundo segundo segundo segundo segundo segundo

n3 0,001 0,008 0,027 0,064 0,125 0,216


segundo segundo segundo segundo segundo segundo

n5 0,1 3,2 24,3 1,7 5,2 13,0


segundo segundos segundos minuto minutos minutos

2n 0,001 1,0 17,9 12,7 35,7 366


segundo segundo minutos dias anos sculos

3n 0,059 58 6,5 3855 2 108 1,3 1013


segundo minutos anos sculos sculos sculos

n! 3,628 771,4 8,4 1016 2,5 1032 9,6 1048 2,6 1066
segundos sculos sculos sculos sculos sculos
Captulo 3: Otimizao discreta 235

Figura 3.30 Duas formulaes distintas para um problema de programao inteira.

Definio 3.3 Um conjunto X R n chamado de conjunto convexo se, para quaisquer


x1 , x 2 X e todo nmero real , 0 < < 1, o ponto x1 + (1 )x 2 X .
A interpretao geomtrica desta definio que, se um conjunto convexo, ento, dados dois
pontos no conjunto, todo ponto no segmento de reta que liga esses dois pontos tambm um
elemento do conjunto.

Definio 3.4 Dado um conjunto X R n, a envoltria convexa (convex hull) de X, representada


por conv(X), definida como a interseo de todos os conjuntos convexos que contm X, isto ,
o menor conjunto convexo que contm X.
A Figura 3.31 ilustra a envoltria convexa do conjunto X citado, que corresponde com-
binao convexa dos pontos x1 = (1, 3), x 2 = (2, 1), x3 = (2, 4), x 4 = (3, 1), x5 = (4, 2) , isto ,
5 5
conv(X )= j x j , j = 1, 0, j . As Figuras 3.32 e 3.33 mostram a envoltria conve-
j =1 j =1

Figura 3.31 Envoltria convexa do conjunto X.


236 Pesquisa Operacional

xa dos conjuntos de solues factveis dos exemplos de PI e PIM nas Figuras 3.1 e 3.2, respec-
tivamente.
Note que as solues timas dos exemplos de PI e PIM so pontos extremos das envoltrias
convexas dos conjuntos de solues factveis de PI e PIM, respectivamente. Demonstra-se que isso
verdadeiro para problemas de programao inteira e programao inteira mista. Portanto, po-
demos expressar o problema de programao inteira mista PIM como o seguinte problema de
programao linear.
z = max cT x + d T y
% + Dy
Ax % b%
x R+n , y R+p
% + Dy
em que {(x, y): Ax % b% , x R+n , y R+p } = conv{(x, y): Ax + Dy b , x R+n , y Z +p }.
A partir dessa caracterizao de PIM, possvel definir a melhor de duas formulaes P1 e P2
para um dado conjunto X R n . Como X conv( X ) P, para qualquer formulao P, P1
uma formulao melhor que P2 se P1 P2 .

Figura 3.32 Envoltria convexa do Exemplo 3.1 de PI.

Figura 3.33 Envoltria convexa do Exemplo 3.3 de PIM.


Captulo 3: Otimizao discreta 237

A determinao de conv(X) to difcil quanto resolver PIM, e os mtodos de resoluo branch-


and-bound e branch-and-cut, discutidos na Seo 3.7, operam de forma a fazer com que a soluo
tima de PIM seja a soluo tima de um problema de programao linear. Esses mtodos eli-
minam regies da formulao do problema P sem penetrar em conv(X), para evitar a perda de
uma possvel soluo tima. Por esse motivo, quanto mais prxima a formulao P em relao
a conv(X), menor o nmero de regies a serem eliminadas, e os mtodos convergem mais rapi-
damente para a soluo tima. Esta a motivao para encontrar formulaes melhores.

Formulaes equivalentes para o problema da mochila 0-1

Considere o conjunto de vetores binrios para o problema da mochila 0-1.


X = {(0,0,0,0), (1,0,0,0), (0,1,0,0), (0,0,1,0), (0,0,0,1), (1,1,0,0), (1,0,0,1), (0,1,0,1) (1,1,0,1)}
e as seguintes formulaes:
P1 = {x R 4 : 0 x j 1, j = 1, 2, 3, 4, x1 + 9 x2 + 29 x3 + 4 x4 30}
P2 = { x R 4 : 0 x j 1, j = 1, 2, 3, 4, 0,3 x1 + 2 x2 + 6 x3 + x4 6}
P3 = {x R 4 : x1 + x3 1
x2 + x3 1
x3 + x4 1
0 x j 1, j = 1, 2, 3, 4}
Suponha que x P3 . Ento, multiplicando por 2 ambos os lados das desigualdades em P3 e
depois somando as desigualdades tem-se,
2 x1 + 2 x3 + 2 x2 + 2 x3 + 2 x3 + 2 x4 = 2 x1 + 2 x2 + 6 x3 + 2 x4 6
Isto implica que 0,3 x1 + 2 x2 + 6 x3 + x4 6 , portanto, x P2 .
Se x P2 , ento multiplicando por 5 ambos os lados da desigualdade anterior resulta,
1,5 x1 + 10 x2 + 30 x3 + 5 x4 30
Isso implica que x1 + 9 x2 + 29 x3 + 4 x4 30 , portanto, x P1. Note que o ponto
x 2 = (1;1;0, 45;1) P2, mas P3, e o ponto x1 = (0;0;1;0, 25) P1, mas P2. Portanto, P3 P2 P1 .
Pode-se mostrar que P3 = conv(X).

Formulaes para localizao de facilidades com capacidade ilimitada

Seja P1 a formulao relaxada para o problema de localizao de facilidades com capacidade ili-
mitada (LF9)-(LF12), e considere a formulao alternativa P2 apresentada a seguir.
min fi yi + cij xij (LF9)
i I i I j J

xij = 1, j J (LF10)
i I

xij nyi , i I (LF11a)


jJ

0 xij 1, i I , j J , y B I (LF12)
Note que a formulao alternativa difere pelo conjunto de restries (LF11a) que correspon-
de soma em j J das restries
xij yi , i I , j J (LF11)
238 Pesquisa Operacional

Mostra-se a seguir que P1 P2 . Seja um ponto (x, y) que satisfaz (LF11), ento somando so-
bre j J , segue-se que este ponto tambm satisfaz (LF11a). Portanto P1 P2 . Para mostrar que
P1 P2 , basta exibir um ponto de P2 que no est em P1. Suponha, por simplicidade, que
n = k m , com k 2 . Ento, um ponto no qual cada facilidade atende k clientes, dado por
xij = 1, j = k (i 1) + 1, ..., k (i 1) + k , i = 1, ..., m , e xij = 0 em caso contrrio, e yi = k / n para
i = 1, ..., m situa-se em P2 \ P1 , que representa o conjunto de pontos que pertencem a P2 mas no
pertencem a P1. Por exemplo, se n = 12 e m = 3, ento k = 4, x1 j = 1, j = 1, 2, 3, 4, x1 j = 0 em
caso contrrio, x2 j = 1, j = 5, 6, 7, 8, x2 j = 0 em caso contrrio, x3 j = 1, j = 9, 10, 11, 12, x3 j
12
1
= 0 em caso contrrio, e y1 = y2 = y3 = 1/ 3. Portanto, para i = 1, 2, 3, xij = 4 = 12 , que sa-
j =1 3
tisfaz (LF11a), mas viola (LF11).

Formulaes para dimensionamento de lotes de um item


Considere a formulao relaxada P1 do problema descrito por (DL1)(DL4) na Seo 3.6.1, aqui
repetida para facilidade de leitura.
T
min (syt + ht It )
t =1
I t = I t 1 + xt dt , t = 1,..., T , I 0 = IT = 0
T
xt d yt , t = 1,..., T
=t
xt , I t 0, 0 yt 1, t = 1,..., T
A seguir apresentada uma formulao alternativa P2 para este problema. Para tal, conside-
re o parmetro h ,t 1 = h + ... + ht 1 e a varivel
u t = quantidade produzida no perodo para atender demanda no perodo t
Tem-se, ento, a seguinte formulao:
T T T
min h ,t 1u t + syt (DL1a)
=1 t = t =1
t
u t = dt t = 1,..., T (DL2a)
=1
u t dt yt , t = 1,..., T ; t (DL3a)
u t 0, 0 yt 1, , t = 1,..., T , t (DL4a)
A funo objetivo (DL1a) expressa a minimizao do custo total de estoque e produo. As res-
tries (DL2a) asseguram que a demanda atendida em cada perodo t, enquanto as restries
(DL3a) impem um limite superior s variveis quando o item produzido no perodo t. As res-
tries (DL4a) indicam o tipo das variveis.
As variveis de produo das duas formulaes esto relacionadas por
T
x = u t = 1,..., T
t = t
Qualquer soluo de P2 pertence a P1. Alm disso, o ponto xt = dt , yt = dt / d pertence a P1,
=1 t
mas no pertence a P2, pois utt = dt e, de (DL3a), segue-se que yt = 1 > dt / d . Portanto,
=1
P2 P1 . Demonstra-se que P2 representa a envoltria convexa das solues deste problema.
Captulo 3: Otimizao discreta 239

3.9 MTODOS DE ENUMERAO IMPLCITA E DE PLANOS DE CORTE


Considere o problema de programao inteira-mista
z = max cT x + d T y
( PIM ) Ax + Dy b
x R+n , y Z +p
em que A , uma matriz (m n) , D , uma matriz (m p ) , cT , um vetor (1 n) , d T , um vetor
(1 p ) , e b , um vetor (m 1) , representam os parmetros do problema. Os vetores de variveis
so xe y com dimenses (n 1) e ( p 1) . R+n representa o espao dos vetores com n compo-
nentes reais no-negativos e Z +p representa o espao dos vetores com p componentes inteiros
no-negativos.
Os mtodos mais bem-sucedidos para resolver problemas genricos de programao inteira-
mista so baseados nos enfoques de enumerao implcita, ou branch-and-bound, e de planos de
corte. A combinao desses enfoques gerou, na dcada de 1980, o mtodo branch-and-cut, hoje
presente nos pacotes comerciais de otimizao, tais como CPLEX, XPRESS e LINDO.
Um conceito fundamental usado nesses mtodos a relaxao linear, que consiste em substi-
tuir em PIM y Z +p por y R+p , que se torna, portanto, um problema de programao linear.
Para facilitar a exposio a seguir, considere o problema de programao inteira
( P) {
z = max cT x : Ax b, x Z +n }
e sua relaxao linear
( PL) {
z = max cT x : Ax b, x R+n }
Como observado na Seo 3.1, o valor timo do problema relaxado PL um limitante supe-
rior do problema de programao inteira P , isto , z z .

3.9.1 Mtodo branch-and-bound

{ }
Considere os problemas P e PL . Se o poliedro P = Ax b, x R+n fechado, ento o nme-
ro de solues inteiras factveis finito. Uma forma de obter uma soluo tima para o proble-
ma P utilizar um processo exaustivo, denominado enumerao completa, em que o valor de
todas as solues factveis calculado e escolhe-se a de maior valor.
Uma forma de reduzir o espao de busca consiste em usar informao do problema de pro-
gramao linear PL para executar um procedimento denominado enumerao implcita, em que
subconjuntos de solues so implicitamente considerados e descartados, pois no contm uma
soluo tima, ou ento contm solues timas distintas, mas de mesmo valor timo. Esses
subconjuntos so obtidos pela estratgia dividir para conquistar, que separa o problema original P
em problemas menores de mais fcil resoluo. Esta estratgia usada no mtodo branch-and-bound
(B&B), cujos conceitos so ilustrados no seguinte exemplo:

Exemplo 3.18
z = max 5 x1 x2
( P) 7 x1 5 x 2 13
3x1 + 2 x 2 17
x Z +2
240 Pesquisa Operacional

Resoluo grfica do exemplo


A Figura 3.34 mostra a regio factvel do problema P , a direo do gradiente da funo ob-
24 22
jetivo (5, 1) e a soluo tima real do problema relaxado PL , x = ( x1 , x2 ) = (3 , 2 ) com valor
29 29
11
z = 16 , que um limitante superior para o valor timo z.
29
Considere a notao x = max { y Z : y x}, o maior inteiro contido em x, e x = min { y Z : y x},
o menor inteiro que contm x . Considere a diviso do problema P em dois problemas P1 e P 2
da seguinte maneira. Adicione a restrio x1 x1 = 3 para gerar o problema P1 , e a restrio
2
x1 x1 = 4 para gerar o problema P .
Essa partio pode ser representada por meio de uma rvore em que cada n corresponde a
um problema. Essa rvore, denominada rvore B&B, mostrada na Figura 3.35. Os ns descen-
dentes do n P, P1 e P 2 so chamados de ns filhos, e diz-se tambm que a varivel x1 foi
ramificada.
A Figura 3.36 mostra o espao das solues de P1 e P 2. Note que o espao de solues
factveis de PL2 , relaxao linear de P 2, e conseqentemente P 2, vazio, o que implica que o
problema P 2 pode ser eliminado. A soluo tima da relaxao linear PL1 dada por
3 2
x1 = (3,1 ), com valor z 1 = 13 , que um limitante superior mais prximo ou apertado do va-
5 5
lor timo de P.
Considere a partio do problema P1 em dois problemas P3 e P 4 da seguinte maneira. Adi-
3 3
cione a restrio x2 1 = 1 para gerar o problema P 3 , e a restrio x2 1 = 2 para gerar
5 5
o problema P 4 . Essa partio ilustrada na Figura 3.37, por meio da rvore B&B.
Suponha agora que o n correspondente ao problema P 4 seja escolhido para exame. A rela-
xao linear PL4 resulta na soluo tima x4 = (3, 2), que uma soluo inteira com valor
z 4 = 13. Considerando-se agora o n correspondente ao problema P 3, tem-se que a relaxao li-
4 6
near PL3 fornece a soluo tima x3 = (2 ,1), com valor z 3 = 11 . Como z 3 < z 4, conclui-se
7 7

Figura 3.34 Representao grfica das solues de P e PL.


Captulo 3: Otimizao discreta 241

Figura 3.35 Partio do problema P.

Figura 3.36 Representao grfica das solues de P1.

11
z = 16
29

x1 3 x1 4
2
z1 = 13
29

x2 1 x2 2

6
z3 = 11 z4 = 13
7

Figura 3.37 Partio do problema P1.


242 Pesquisa Operacional

que a soluo x4 = (3, 2) a soluo tima do problema P. A Figura 3.38 mostra o espao das so-
lues de P 3 e P 4, e a soluo tima x4 .

Resoluo analtica do exemplo

Como visto anteriormente, o mtodo B&B faz uso de programao linear e de adio de restri-
es, como mostram as Figuras 3.36 e 3.38, para cortar pontos extremos no inteiros, correspon-
dentes a solues timas dos problemas de programao linear. Isso tambm ocorre em mtodos
baseados em planos de corte, como o mtodo branch-and-cut apresentado na Seo 3.9.3.
Ao se colocar uma nova restrio ao problema de programao linear, utiliza-se a informao
da tabela ou quadro timo gerado pelo mtodo simplex (veja Seo 2.7) para reotimizar o novo
problema de programao linear. A reotimizao feita por meio do mtodo dual simplex, apre-
sentado na seo 2.10.4 para o problema primal de minimizao. A seguir apresentada uma for-
ma alternativa de derivao da expresso da varivel que entra na base no algoritmo dual simplex
para problemas de maximizao.
Considere o problema primal de programao linear
{
z = max cT x : Ax = b, x R+n }
e o problema dual associado
{
w = min Tb : T A cT }
em que T corresponde ao vetor (1 m) de variveis duais. Seja a partio
xB
A = [B N ] x = cT = cTB cTN
xN
tal que B uma matriz (m n) no-singular, xB e x N correspondem a vetores de variveis b-
sicas e no-bsicas, respectivamente. Da partio, tem-se
BxB + Nx N = b (3.7)
z = cTB xB + cTN x N (3.8)

Figura 3.38 Representao grfica das solues de P3 e P4.


Captulo 3: Otimizao discreta 243

De (3.7), tem-se que


xB = B 1b B 1Nx N (3.9)
Substituindo (3.9) em (3.8), tem-se
z = cTB B 1b (cTB B 1N cTN )x N (3.10)
Seja
xB0 = z , xTB = [ xB1 , ..., xBm ]
NB , conjunto de ndices das colunas de N, e a j , j NB, uma coluna de N. Defina

a00 a0 j

cT B 1b a10 cTB B 1a j c j a1 j
a 0 = B = a j = =
B 1b M B 1a j M

am 0 amj

De (3.9) e (3.10),

xB0 = a00 a0 j x j (3.11)


jNB

xBi = ai 0 aij x j i = 1,...m (3.12)


j NB

A soluo bsica xBi = yi 0 , i = 1, ..., m, tima se:


ai 0 0, i = 1, ..., m
a0 j 0, j NB
Seja B uma base do problema primal tal que cTB B 1N cTN 0 , isto , a0 j 0 , j NB. Se B
factvel, ento xB = B 1b uma soluo bsica tima. Defina = cTB B 1. Ento,

T A = T [B N] = [cBT B 1B cBT B 1N] = [cTB cTB B 1N] [cTB cTN ] ,


isto , T dual factvel e soluo tima do problema dual, pois w = Tb = cBT B 1b = z.
Admita agora que a0 j 0, j NB , e que xBr = ar 0 < 0 , isto , a soluo bsica atual
infactvel. A varivel xBr deve sair da base e uma varivel deve entrar na base de modo a aumentar
o valor da soluo dual, atualmente dado por a00 = cTB B 1b.
Se arj > 0 , ento, aps a operao de pivotamento, tem-se
a
a00 a0 j r 0 a00
arj
Portanto, deve-se ater a arj < 0. Defina

a0 k a0 j
= max jNB , arj < 0 (3.13)
akr arj
Segue-se que
a0 k a0 j
, j : arj < 0
ark arj
244 Pesquisa Operacional

portanto,
a0 k arj
a0 j 0, j : arj < 0
ark
Como a0 j 0 e ark < 0 , ento
a0 k arj
a0 j 0, j : arj 0
ark
portanto, (3.13) define a varivel a entrar na base.
Note que, se arj 0, j NB , ento o problema primal infactvel, pois
xBr = ar 0 arj x j < 0, x j 0, j NB
jNB
Considere agora que a soluo bsica tima de um problema de programao linear tenha sido
obtida e deseja-se incluir a restrio
n
a pj x j bp
j =1
ou
n
a pj x j + s p = bp , sp 0
j =1
Tomando s p como varivel bsica e expressando-a em termos das variveis no-bsicas asso-
ciadas soluo bsica tima, tem-se
n
s p = a p 0 a pj x j
j =1
Se a p 0 0, a nova soluo bsica com s p = a p 0 tima. Se a p 0 < 0, ento a nova soluo com
s p = y p 0 primal infactvel, mas dual factvel, pois a0 j 0, j NB. Aplica-se, ento, o dual
simplex para reotimizar o problema com a restrio adicional.
O mtodo dual simplex agora aplicado para a reotimizao dos problemas de programao
linear envolvidos no exemplo ilustrativo do mtodo B&B.
1) N P
A relaxao linear do problema P do Exemplo 3.18 e a incluso das variveis de folga s1 e s2
resultam no problema PL:
z = max 5 x1 x2
( PL ) 7 x1 5 x2 + s1 = 13
3 x1 + 2 x2 + s2 = 17
x1 , x2 , s1 , s2 0
cuja soluo tima mostrada no Quadro 3.1.
2) N P1
Insere-se a restrio x1 3 71 ou, equivalentemente, x1 + s3 = 3 , s3 0 , ao problema P e resol-
ve-se a relaxao linear PL1. Usando o Quadro 3.1, a varivel s3 expressa em termos das vari-
veis no-bsicas s1 e s2 :

71 Neste ponto, estamos escolhendo arbitrariamente a varivel x2 para ramificao; ver Linderoth e Savelsbergh (1999) para um
estudo computacional sobre mtodos de seleo de variveis a serem ramificadas e de escolha de ns.
Captulo 3: Otimizao discreta 245

24 2 5
s3 = 3 3 + s1 + s2 (3.14)
29 29 29
A varivel s3 sai da base e, de (3.13), tem-se de
13 18 18
29 29 29
max
2
,
5 = 5

29 29 29
portanto, a varivel s2 entra na base.
Incluindo a restrio (3.14) no Quadro 3.1 e executando operaes de pivotamento, obtm-
se a soluo tima de PL1, mostrada no Quadro 3.2.
3) N P 2
Insere-se a restrio x1 4 ou, equivalentemente, x1 s4 = 4 , s4 0, ao problema P e resol-
ve-se a relaxao linear PL2 . Usando o Quadro 3.1, a varivel s4 expressa em termos das vari-
veis no-bsicas s1 e s2 :
24 2 5
s4 = 4 3 s1 s2
29 29 29
Como os coeficientes de s1 e s2 so negativos, segue-se que PL2 e, portanto, P 2 infactvel.

Quadro 3.1

x1 x2 s1 s2

13 18 11
z 0 0 16
29 29 29
2 5 24
x1 1 0 3
29 29 29
3 7 22
x2 0 1 2
29 29 29

Quadro 3.2

x1 x2 s1 s2 s3

1 3 2
z1 0 0 0 3 13
5 5 5

x1 1 0 0 0 1 3

1 2 3
x2 0 1 - 0 1 1
5 5 5
2 4 4
s2 0 0 1 5 4
5 5 5
246 Pesquisa Operacional

4) N P3
Insere-se a restrio x2 1 ou, equivalentemente, x2 + s5 = 1 , s5 0 , ao problema P1 e resol-
ve-se a relaxao linear PL3. Usando o Quadro 3.2, expressa-se a varivel s5 em termos das vari-
veis no-bsicas s1 e s3 .
3 1 7 3 1 7
s5 = 1 x2 = 1 1 s1 + s3 = s1 + s3 (3.15)
5 5 5 5 5 5
Incluindo a restrio (3.15) no Quadro 3.2, e utilizando a expresso (3.13), segue-se que a va-
rivel s5 sai da base, a varivel s3 entra na base e, aps operaes de pivotamento, obtm-se o
Quadro 3.3 com a soluo tima de PL3.
5) N P 4
Insere-se a restrio x2 2 ou, equivalentemente, x2 s6 = 2 , s6 0 , ao problema P1 e resol-
ve-se a relaxao linear PL4. Usando o Quadro 3.2, expressa-se a varivel s6 em termos das va-
riveis no-bsicas s1 e s3 :
8 1 7 2 1 7
s6 = x2 2 =
2 + s1 s3 = + s1 s3 (3.16)
5 5 5 5 5 8
Incluindo a restrio (3.16) no Quadro 3.2 e utilizando a expresso (3.13), segue-se que a va-
rivel s6 sai da base, a varivel s1 entra na base e, aps operaes de pivotamento, obtm-se o
Quadro 3.4 com a soluo tima x = (3, 2) de PL4 e de P.

Testes para eliminao de ns na rvore branch-and-bound

Como ilustrado no exemplo anterior, um problema Pi correspondente a um n na rvore B&B


eliminado ou descartado por testes que utilizam sua relaxao linear PLi . Para formalizar es-
ses testes, considere a seguinte notao:
i
F ( Pi ) : regio factvel do problema P
F ( PLi ) : regio factvel do problema PL
i

z i : valor timo do problema Pi (limitante inferior de z )

Quadro 3.3

x1 x2 s1 s2 s3 s5

5 4 6
z3 0 0 0 0 2 11
7 7 7
1 5 4
x1 1 0 0 0 2
7 7 7

x2 0 1 0 0 0 1 1

3 1 2
s2 0 0 1 0 4 7
7 7 7
1 5 3
s3 0 0 0 1
7 7 7
Captulo 3: Otimizao discreta 247

z i : valor timo do problema PLi (limitante superior de z )


x* : melhor soluo encontrada at o momento (soluo incumbente)
z* : valor de x*
O problema P i eliminado se satisfizer um dos seguintes testes de eliminao:
1) F ( PLi ) = : Pi eliminado por infactibilidade.
O resultado decorre da relao F ( P i ) F ( PLi ) .
2) z i z* : Pi eliminado por qualidade.
Como z i z i z* , segue-se o resultado.
3) Se a soluo tima de PLi inteira: P i eliminado por otimalidade.
Como a soluo tima de PLi inteira, segue-se que z i z i . Alm disso, z i z i , portanto,
zi = z i .

Algoritmo branch-and-bound

A partir dos testes de eliminao de problemas, apresenta-se um algoritmo bsico do mtodo B&B.
O n 0 da rvore B&B corresponde ao problema original de programao inteira P. Um n no
eliminado pelos testes acima e que ainda no foi dividido chamado n ativo. Estes ns so ar-
mazenados em uma lista L.
Passo 0 (Inicializao). Faa z = , z* = , x* = , L = {P}.
Passo 1 (Seleo de n). Selecione o n ativo i, associado ao problema P i , da lista de ns ati-
vos. Se a lista estiver vazia, v para o Passo 6.
Passo 2 (Teste de eliminao 1). Se a regio factvel de PLi for vazia, v para o Passo 1.
Passo 3 (Teste de eliminao 2). Se o valor z i da soluo tima de PLi tal que z i z*, v para
o Passo 1.
Passo 4 (Teste de eliminao 3). Se a soluo tima xi de PLi inteira com valor z i , e se
z i > z*, atualize x* e z*. Elimine ns ativos i da lista L, tais que z i z*, e volte para o Passo 1.
Passo 5 (Ramificao). Selecione uma varivel da soluo tima xi de PLi com valor no in-
teiro e divida P i em dois problemas. Adicione estes problemas lista L e v para o Passo 1.
Passo 6 (Fim). Se z* = , no existe soluo factvel; caso contrrio, a soluo incumbente x*
uma soluo tima.
Nos pacotes comerciais, o usurio pode parar o algoritmo B&B com uma lista no vazia e uma
soluo subtima com tolerncia especificada , como, por exemplo = 0,1. Seja z o maior

Quadro 3.4

x1 x2 s1 s2 s3 s6

z4 0 0 0 0 5 1 13

x1 1 0 0 0 1 0 3

x2 0 1 0 0 0 1 2

s2 0 0 0 1 3 2 4

s1 0 0 1 0 7 5 2
248 Pesquisa Operacional

limitante superior dos ns na lista e seja z* tal que ( z z * ) / z . Ento, a soluo x* -


subtima. Em outras palavras, o valor da soluo x* est a, no mximo, (100 )% do valor da
soluo tima.

Seleo de ns na rvore branch-and-bound

Considere uma rvore B&B com a lista de ns ativos. A questo consiste em escolher o prximo n
a ser examinado. Existem duas alternativas: regras a priori, que determinam previamente a ordem de
escolha dos ns, e regras adaptativas, que determinam o n a partir de informao dos ns ativos.
A regra a priori mais utilizada a busca em profundidade com backtracking, tambm conheci-
da como last-in, first-out, o que significa que o ltimo n includo na lista o primeiro a ser exa-
minado. Na busca em profundidade, se o n corrente no eliminado, ento o prximo n a ser
examinado um de seus filhos. O termo backtracking implica que, quando um n eliminado,
retorna-se ao longo do caminho em direo ao n raiz at encontrar o primeiro n que tem um
filho ainda no examinado. Ao se especificar que o n filho esquerda examinado em primei-
ro lugar, ento esta regra a priori define completamente a ordem de desenvolvimento da rvore.
A busca em profundidade tem duas vantagens:
A experincia mostra que solues factveis so mais provveis de serem encontradas em
nveis profundos em relao ao n raiz.
Dada a soluo tima do n pai, resolve-se o problema de programao linear para o ns
filhos atravs da reotimizao pelo algoritmo dual simplex. Alm disso, o tamanho mxi-
mo da lista de ns ativos, em geral, no muito grande. Note que o armazenamento dos
ns ativos corresponde a guardar os quadros timos da resoluo dos problemas de progra-
mao linear de cada um desses ns.
A grande desvantagem desta regra que, por no usar informao, tende a gerar uma rvore
com muitos ns.
Um exemplo de regra adaptativa muito usada consiste em selecionar o n que tem o maior
limitante superior. Neste caso, tem-se uma expectativa otimista em relao obteno de uma nova
soluo factvel com valor mximo em relao a solues factveis geradas pelos outros ns. Su-
ponha que z* o valor da soluo incumbente atual e que z** o valor de uma nova soluo
incumbente gerada a partir do n com maior limitante superior, isto , z** > z* . Se o limitante
superior deste n estiver prximo de seu valor timo inteiro, ento um grande nmero de ns
ativos com limitantes superiores no intervalo ( z* , z** ] eliminado. Esta discusso mostra que um
fator crucial para a eficincia do mtodo branch-and-bound a qualidade do limitante superior, isto
, sua proximidade em relao ao valor timo em cada n.
A vantagem desta regra adaptativa que, em geral, produz uma rvore B&B com um nme-
ro bem menor de ns quando comparada busca em profundidade. Por outro lado, sua grande
desvantagem o armazenamento de um nmero muito grande de ns ativos, o que pode
inviabilizar a soluo de um problema pelo limite de memria computacional.
Para ilustrar a aplicao das estratgias descritas, considere o problema da mochila
n
z = max p j x j
j =1
n
ajxj b
j =1

x Bn
e assuma que p j , a j > 0, j.
Captulo 3: Otimizao discreta 249

p1 p r 1 r
Proposio 3.1 Se ... n , a j b, a j > b , a soluo do problema relaxado de programa-
a1 an j =1 j =1
r 1
o linear, em que 0 x j 1, j, x j = 1, j = 1, ..., r 1, xr = (b a j ) / ar , x j = 0, j = r + 1, ..., n.
j =1

Demonstrao. A restrio linear pode ser escrita como


n
a j x j + y = b, y0
j =1
O problema de programao linear tem variveis canalizadas, 0 x j 1, j e uma restrio li-
near. Segue-se que uma varivel bsica e n variveis so no-bsicas com valores em 0 ou 1.
Elegendo xr como varivel bsica, tem-se
b a1 a 1
xr =
x1 ... n xn y
ar ar ar ar
Substituindo a expresso anterior na funo objetivo da relaxao linear, temos
pr a1 pa pa p pb
z = max( p1 ) x1 + ... + ( pr +1 r r +1 ) xr +1 + ... + ( pn r n ) xn r y + r
ar ar ar ar ar
p1 p
Por hiptese, . . . n > 0 , o que implica que os coeficientes das variveis x1 , ..., xr 1 so
a1 an
positivos e os coeficientes das variveis xr +1 , ..., xn , y so negativos. Atribuindo-se o valor 1 para
r 1
x1 , ..., xr 1, (b a j ) / ar para xr , e 0 para xr +1 , ..., xn , y, tem-se a soluo tima.
j =1
Essa proposio mostra que a soluo tima da relaxao linear obtida de forma analtica, e
isso usado no exemplo abaixo.

Exemplo 3.19
z = max 31x1 + 126 x2 + 131x3 + 37 x4 + 180 x5 + 170 x6 + 182 x7 + 123 x8 + 160 x9 + 80 x10
13 x1 + 111x2 + 101x3 + 27 x4 + 174 x5 + 136 x6 + 146 x7 + 99 x8 + 145 x9 + 76 x10 606
Note que
p1 p p p p p p
= 2,384 > 4 = 1,370 > 3 = 1,297 > 6 = 1,280 > 7 = 1,246 > 8 = 1,242 > 2 = 1,135 >
a1 a4 a3 a6 a7 a8 a2
p9 p p
= 1,1034 > 10 = 1,052 = 5 = 1,034
a0 a10 a5

portanto, pela Proposio 3.1, a soluo tima do problema relaxado de programao linear :
x1 = 1; x2 = 0, 76; x3 = 1; x4 = 1; x5 = 0; x6 = 1; x7 = 1; x8 = 1; x9 = 0; x10 = 0 , com valor de funo ob-
jetivo z = 769,35. n

A seguir, o mtodo B&B aplicado a este problema com as estratgias de seleo de ns ba-
seadas em busca em profundidade e busca pelo n com maior limitante superior.
Inicialmente, note que o problema de programao inteira envolve variveis binrias, por-
tanto, um n com uma varivel com valor fracionrio entre 0 e 1 ramificado em dois ns fi-
lhos, com variveis fixadas em 0 e 1. A Figura 3.39 mostra a rvore B&B resultante da
250 Pesquisa Operacional

estratgia de busca em profundidade. Como regra, examina-se em primeiro lugar o n filho


com maior limitante superior. As letras I, Q e O nos ns indicam os critrios pelos quais
estes so eliminados, a saber, infactibilidade, qualidade ou otimalidade. A soluo tima
x1 = 1, x2 = 1, x3 = 1, x4 = 0, x5 = 0, x6 = 1, x7 = 1, x8 = 1, x9 = 0, x10 = 0 , com valor 763, encontra-
da no n 22. Note que essa estratgia gera trs solues factveis.
A rvore relativa estratgia da busca pelo maior limitante superior igual rvore da Figu-
ra 3.39, exceto pelos ns que esto abaixo da linha tracejada. Essa estratgia gera apenas uma
soluo factvel, que a soluo tima.
As Figuras 3.40 e 3.41 mostram a evoluo de ambas as rvores. Na busca pelo n de maior
limitante superior, armazenam-se no mximo seis ns ativos, enquanto na busca em profundidade ar-
mazenam-se no mximo trs ns ativos. Os ramos das rvores com traos indicam os ns eliminados.
Na Figura 3.40, nenhum n foi eliminado at a rvore em 3.40(e), que tem seis ns ativos. A Figura
3.41 mostra que a rvore 3.41(b) tem trs ns ativos, e as restantes tm menos que trs ns ativos.
Este exemplo mostra a vantagem da busca pelo maior limitante superior em termos de nmero
menor de ns criados pela rvore B&B. Por outro lado, a estratgia da busca em profundidade
gera mais solues factveis e armazena menos ns ativos. Na prtica, os pacotes comerciais de
otimizao citados na Seo 3.4 combinam essas duas estratgias e possibilitam tambm que o
usurio selecione outras estratgias disponveis.72

Figura 3.39 rvores para duas estratgias de busca.

72 Algoritmos do tipo branch-and-bound, ou seja, que ramificam e podam a rvore de busca, podem ser desenvolvidos para resol-
ver os mais diversos tipos de problemas. Por exemplo, em Yanasse (1994) apresentado um algoritmo que seleciona o melhor
tamanho dos objetos em um problema de corte bidimensional.
Captulo 3: Otimizao discreta 251

Figura 3.40 Evoluo da busca pelo maior limitante superior para o problema da mochila.

Figura 3.41 Evoluo da busca em profundidade para o problema da mochila.

3.9.2 Algoritmo de planos de corte de Gomory


Algoritmos de planos de corte buscam obter uma aproximao da envoltria convexa da regio
factvel de um problema de programao inteira que contenha um ponto extremo correspondente
a uma soluo tima. Essa aproximao obtida por meio de cortes ou desigualdades vlidas,
definidas a seguir.

Definio 3.5 Uma desigualdade x 0 uma desigualdade vlida para X R n se x 0 para


todo x X.
252 Pesquisa Operacional

Em palavras, uma desigualdade vlida se o conjunto X situa-se em um dos semi-espaos


definidos pelo hiperplano x = 0. Desigualdades vlidas em programao inteira so geradas a
partir de uma simples observao.

Proposio 3.2 A desigualdade x b vlida para X = {x Z 1 : x b} .


O procedimento geral para a construo de uma desigualdade vlida para o conjunto
X = {x : Ax b, x Z +n } , tal que A uma matriz m n com colunas {a1 , ..., a n } e u R+ , co-
m

nhecido como procedimento de Chvtal-Gomory, descrito a seguir.


A desigualdade
n
u Ta j x j u Tb
n j =1
vlida para X , pois u 0 e a j x j b.
A desigualdade j =1
n
uTa j x j uTb
j =1
vlida para X , pois x 0.
A desigualdade
n
uTa j x j uTb
j =1
n
vlida para X , pois x inteiro, portanto uTa x j inteiro.
j =1
Pode-se demonstrar que toda desigualdade vlida para X pode ser obtida pela aplicao do
procedimento de Chvtal-Gomory por um nmero finito de vezes.
Os exemplos a seguir ilustram a gerao de desigualdades vlidas em programao inteira.

Exemplo 3.20 Identifique uma desigualdade para cortar o ponto (0, 0, 0,35 / 6) do conjunto:
X = {x Z +4 : 5 x1 + 7 x2 + 4 x3 + 6 x4 35}
Multiplicando a desigualdade acima por u = 1/ 6 e aplicando o procedimento de Chvtal-
Gomory, tem-se
5 / 6 x1 + 7 / 6 x2 + 4 / 6 x3 + x4 35 / 6
portanto, a desigualdade vlida x2 + x4 5 corta o ponto. n

{
Exemplo 3.21 Considere o conjunto X = 7 x1 5 x2 13, 3 x1 + 2 x2 17, x Z + associado s
2
}
restries do Exemplo 3.17.
Considere a soma ponderada das restries com u = (3/20, 0), que resulta na desigualdade
21 3 39
x1 x2
20 4 20
21 3 39
20 x1 + 4 x2 20

A desigualdade vlida , ento, x2 x1 1 , mostrada na Figura 3.42.


Captulo 3: Otimizao discreta 253

Corte de Gomory

Seja o problema de programao inteira


( P) {
z = max cT x : Ax = b, x Z +n }
e sua relaxao linear
( PL) {
z = max cT x : Ax = b, x R+n }
Considere a soluo tima do problema relaxado de programao linear, em que xBi , i = 1, ..., m
representam as variveis bsicas e NB denota o conjunto das variveis no-bsicas. Utilizando a
notao (3.11) e (3.12), o problema PL pode ser reescrito como
z = max a00 + a0 j x j
jNB

xBi + aij x j = ai 0 , i = 1, ..., m (3.17)


jNB

x R+n
com a0 j 0 para j NB e ai 0 0, i = 1, ..., m.
Se a soluo tima no inteira, ento existe uma linha i com yi 0 no inteiro. O corte de
Chvtal-Gomory para essa linha i
xBi + aij x j ai 0 (3.18)
jNB

Substituindo xBi de (3.17) em (3.18), tem-se a desigualdade

(aij aij ) x j ai 0 ai 0
jNB
ou
fij x j fi 0 (3.19)
jNB

com fij = aij aij , 0 fij < 1, e fi 0 = ai 0 ai 0 , 0 < fi 0 < 1 . A desigualdade (3.19) corresponde
ao corte de Gomory.

Figura 3.42 Ilustrao de desigualdade vlida.


254 Pesquisa Operacional

Como na soluo bsica tima x j = 0 para todo j NB , a desigualdade (3.19) corta a solu-
o bsica tima. Introduzindo a varivel de sobra si 0 em (3.19), tem-se
si = fij x j fi 0
jNB

De (3.17), segue-se que

xBi = fi 0 fij x j + ai 0 aij x j



j NB j NB

Reescrevendo a equao anterior como


xBi = si + ai 0 aij x j
jNB

segue-se que si no-negativa e inteira, dado que os outros termos da equao so inteiros.

Algoritmo de Gomory

Passo 1 (Inicializao). Faa k = 0 e PL0 = PL , em que PL a relaxao linear do problema P.


Passo 2 (Reotimizao). Resolva o problema linear
z k = max{cT x : x PLk }
pelo mtodo dual simplex.
Passo 3 (Otimalidade). Se a soluo for inteira, ento uma soluo tima de P. Caso contr-
rio, v para o Passo 3.
Passo 4 (Corte). Escolha uma linha i com fi 0 > 0, construa o corte de Gomory e insira-o no
fim do quadro timo de PLk . Faa k = k + 1 e v para o Passo 2.
Note que este algoritmo gera uma seqncia de problemas de programao linear
PLi , i = 0,1,..., n , em que X = X 0 X 1 ... X n , e z = z 0 z 1 ... z n z , de modo que
i
X i e z i representam, respectivamente, a regio factvel e a soluo tima de PL . Demonstra-se
que este algoritmo, sob algumas hipteses, converge em um nmero finito de passos. Uma des-
vantagem deste algoritmo que a primeira soluo factvel gerada a soluo tima.
Uma regra razovel no Passo 4 do algoritmo, visando reduzir o nmero de cortes necessrios
para resolver o problema ( P ) , escolher a linha r, tal que f r 0 = max f i 0 , f i 0 > 0 , que correspon-
i
de linha cuja varivel apresenta o maior desvio entre seu valor fracionrio e o maior nme-
ro inteiro.

Exemplo 3.22
Considere o problema do Exemplo 3.18:
z = max 5 x1 x2
( P) 7 x1 5 x2 + s1 = 13
3 x1 + 2 x2 + s2 = 17
x, s Z +2
A soluo tima do problema relaxado PL com x, s R+2 mostrada no Quadro 3.5.
A Figura 3.34 mostra a regio factvel do problema P, a direo do gradiente da funo ob-
24 22
jetivo (5, 1) e a soluo tima real do problema relaxado PL , x = (3 , 2 ), com valor
11 29 29
z = 16 , que um limitante superior para o valor timo z.
29
Captulo 3: Otimizao discreta 255

Como f10 =
24 22 escolhe-se a linha da varivel x e, utilizando a desigualdade de
> f 20 =
29 ,
1
29
Gomory, obtm-se o primeiro corte
2 5 24
s1 + s2 (3.20)
29 29 29
A partir da formulao P, pode-se escrever este corte em termos das variveis originais do
problema, resultando em x1 3 . Introduzindo uma varivel de sobra em (3.20), tem-se
s3 2 s1 5s2 = 24, s3 0 (3.21)
Incluindo a restrio (3.21) no fim do Quadro 3.5, segue-se que s3 = 24 , pois s1 e s2 so no-
bsicas. Reotimizando atravs do dual simplex, obtm-se o Quadro 3.6.
Escolhendo a linha s2 , obtm-se o segundo corte
2 s1 + s3 4 (3.22)
que corresponde desigualdade 3 x1 2 x2 5 , em termos das variveis originais. Inserindo uma
varivel de sobra em (3.22), tem-se
s4 2 s1 s3 = 4 (3.23)
Introduzindo a restrio (3.23) no Quadro 3.6 e reotimizando atravs do dual simplex, obtm-se
o Quadro 3.7 com a soluo tima x = (3, 2) . Os dois cortes de Gomory so mostrados na Figura 3.43.

Quadro 3.5

x1 x2 s1 s2

13 18 11
z 0 0 16
29 29 29
2 5 24
x1 1 0 3
29 29 29
3 7 22
x2 0 1 2
29 29 29

Quadro 3.6

x1 x2 s1 s2 s3

1 3 2
z 0 0 0 3 13
5 5 5

x1 1 0 0 0 1 3
1 2 3
x2 0 1 0 1 1
5 5 5
2 4 4
s2 0 0 1 5 4
5 5 5
256 Pesquisa Operacional

Quadro 3.7

x1 x2 s1 s2 s3 s4

1 1
z 0 0 0 0 3 13
2 2

x1 1 0 0 0 1 0 3
1 1
x2 0 1 0 0 1 2
2 2

s2 0 0 0 1 6 1 4

1 1
s1 0 0 1 0 2 2
2 2

Figura 3.43 Cortes de Gomory.

3.9.3 Mtodo branch-and-cut


Este mtodo combina as estratgias dos mtodos branch-and-bound e de planos de cortes, com o
objetivo de reduzir o nmero de ns na rvore B&B. Em cada n da rvore B&B, adicionam-se
desigualdades vlidas de modo a obter um limitante superior mais apertado no n. As desigual-
dades de Gomory para problemas inteiros e inteiros mistos foram as primeiras propostas na lite-
ratura. Hoje, existem vrios tipos de desigualdades vlidas para problemas genricos de
programao inteira mista e desigualdades vlidas para problemas especficos.
Para ilustrar o poder da adio de desigualdades na reduo do nmero de ns na rvore, conside-
re o seguinte exemplo, em que desigualdades de Gomory foram introduzidas somente no n raiz 0.
Captulo 3: Otimizao discreta 257

Exemplo 3.23
z = max 25 x1 + 2 x2 + 31x3 + 30 x4
14 x1 + 25 x2 + 14 x3 + 6 x4 146
19 x1 + 30 x2 + 24 x3 + 29 x4 239
x Z +4
A Figura 3.44 mostra a rvore B&B com a estratgia de busca pelo n de maior limitante su-
perior. As letras I, Q e O indicam que o n foi eliminado por infactibilidade, qualidade ou
otimalidade. Duas solues timas foram encontradas:
x1 = 1, x2 = 0, x3 = 9, x4 = 0, e x1 = 6, x2 = 0, x3 = 4, x4 = 1, com valor z = 304
O Quadro 3.8 correspondente soluo tima do problema relaxado no n 0:

Quadro 3.8

x1 x3 x2 x4 s1 s2

13 26 11 1 26
z 0 0 37 5 1 309
14 35 70 5 35
4 26 12 1 9
x1 1 0 2 3 2
7 35 35 5 35
11 6 19 1 6
x3 0 1 4 8
14 35 70 5 35

Figura 3.44 rvore B&B com busca pelo n de maior limitante superior.
258 Pesquisa Operacional

Escolhendo a linha x1 , obtm-se o corte


4 9 12 4 9
x2 + x4 + s1 + s2 s3 = (3.24)
7 35 35 5 35
ou, em termos das variveis originais,
20 x1 + 32 x2 + 24 x3 + 25 x4 241
Incluindo o corte (3.24) no fim do Quadro 3.8 e reotimizando atravs do dual simplex, obtm-
se o Quadro 3.9.

Quadro 3.9

x1 x3 x5 x2 x4 s2 s3

2 5 5 11 5
z 0 0 0 37 5 309
3 8 6 24 8
x1 1 0 0 2 4 1 1 2

1 3 5 19 3
x3 0 1 0 4 8
3 8 6 24 8
2 3 1 11 3
s1 0 0 1 1 2 2
3 4 3 12 4

Escolhendo a linha x3 , obtm-se o corte


2 3 5 5 3
x2 + x4 + s2 + s3 s4 = (3.25)
3 8 6 24 8
ou, em termos de variveis originais,
20 x1 + 31x2 + 25 x3 + 29 x4 249
Incluindo o corte (3.25) no Quadro 3.9 e reotimizando atravs do dual simplex, obtm-se o
Quadro 3.10.
Escolhendo a linha x7 , obtm-se o corte
11 3 1 3
x2 + x4 + x5 s5 = (3.26)
14 7 14 7
ou, em termos de variveis originais,
x1 + x2 + x3 10
Incluindo o corte (3.26) no Quadro 3.10 e reotimizando atravs do dual simplex, obtm-se o
Quadro 3.11.
26
O limitante superior no Quadro 3.8 309 , ao passo que o limitante superior no Quadro
35 4
3.11 aps a incluso de trs cortes, reduzido para 308 . A partir do Quadro 3.11, aplica-se o
5
mtodo B&B e a rvore resultante mostrada na Figura 3.45. As duas solues timas tambm
foram encontradas nesta rvore, que tem somente cinco ns, comparados aos 18 ns da rvore
da Figura 3.44.
Captulo 3: Otimizao discreta 259

Quadro 3.10

x1 x3 x6 x7 x2 x4 s1 s4

69 8 1 1 10
z 0 0 0 0 36 5 1 309
70 35 14 5 35
51 23 5 1 12
x1 1 0 0 0 2 3 2
70 35 14 5 35
33 3 2 1 3
x3 0 1 0 0 4 8
35 35 7 5 35
2 3 2 4 3
s2 0 0 1 0
35 35 7 5 35
11 3 1 3
s3 0 0 0 1 1
14 7 14 7

Quadro 3.11

x1 x3 s3 s2 s1 x2 x4 s4 s5

1 4 1 4
z 0 0 0 0 0 36 4 1 1 308
5 5 5 5
1 4 1 1
x1 1 0 0 0 0 1 5 5
5 5 5 5
1 4 1 4
x3 0 1 0 0 0 2 5 4 9
5 5 5 5
1 4 4 9
s3 0 0 1 0 0 3 1 4
5 5 5 5
s2 0 0 0 1 0 0 0 1 1 0

s1 0 0 0 0 1 11 6 0 14 6

Algoritmo branch-and-cut

O algoritmo branch-and-cut semelhante ao algoritmo B&B, com a incluso de k cortes em cada


n cuja relaxao linear factvel, tal que k um parmetro.73 A inicializao do algoritmo tem
uma fase de pr-processamento, que explicada a seguir.
Passo 0 (Inicializao). Faa z = , z* = , x* = . Pr-processe o problema inicial e coloque-
o na lista L = {P}.
Passo 1 (Seleo de n). Selecione o n ativo i , associado ao problema P i , da lista de ns ati-
vos. Se a lista estiver vazia, v para o Passo 7.
73 Uma aplicao de um algoritmo branch-and-cut para rearranjos de fragmentos de DNA pode ser vista em Ferreira et al. (2002).
260 Pesquisa Operacional

Figura 3.45 rvore B&B com cortes no n 0 e busca pelo n de maior limitante superior.

Passo 3 (Teste de eliminao 1). Se a regio factvel de PLi estiver vazia, v para o Passo 1.
Passo 4 (Corte). Tente eliminar a soluo tima de PLi . Se isso no for possvel, faa k = 0,
e v para o Passo 5. Caso contrrio, adicione k cortes a PLi de modo a obter a formulao
PLi k .
Passo 5 (Teste de eliminao 2). Se o valor z i k da soluo tima de PLi k for tal que z i k z *,
v para o Passo 1.
Passo 6 (Teste de eliminao 3). Se a soluo tima x i k de PLi k for inteira com valor z i k ,
e se z i k > z* , atualize x* e z*. Elimine ns ativos i da lista L, tais que z i z*, e volte para o
Passo 1.
Passo 7 (Ramificao). Selecione uma varivel da soluo tima x i k de PLi k com valor no in-
teiro e divida P i k em dois problemas. Adicione estes problemas lista L e v para o Passo 1.
Passo 8 (Fim). Se z* = , no existe soluo factvel; caso contrrio, a soluo incumbente x*
uma soluo tima.

3.10* PR-PROCESSAMENTO
Pacotes comerciais de otimizao possuem um mdulo de pr-processamento que verifica a for-
mulao original de um problema. A meta detectar rapidamente variveis e restries redun-
dantes e apertar os limitantes de variveis. Se o problema resultante de programao linear/inteira
menor/mais apertado, ento, provavelmente, ser resolvido com mais rapidez. Isso fundamen-
tal em problemas grandes, pois o mtodo branch-and-cut pode exigir a resoluo de dezenas ou
centenas de milhares de problemas de programao linear.
O exemplo a seguir ilustra o pr-processamento em programao linear.

Exemplo 3.24

max 4 x1 + 3 x2 2 x3
8 x1 5 x2 + 10 x3 20
10 x1 + 4 x2 2 x3 10
x1 + x2 + x3 5
0 x1 3; 0 x2 1; 1 x3
Captulo 3: Otimizao discreta 261

Apertando limitantes. Isolando a varivel x1 na primeira restrio e usando os limitantes x2 1 e


x3 1 obtm-se
8 x1 20 + 5 x2 10 x3 20 + 5 1 10 1 = 15
15
e o limitante apertado x1 .
8
Isolando a varivel x3 , obtm-se
10 x3 20 + 5 x2 8 x1 20 + 5 1 5 0 = 25
5
e o limitante apertado x3 .
2
Isolando a varivel x2 , obtm-se
5 x2 8 x1 + 10 x3 20 8 0 + 10 1 20 = 10
Neste caso, o limitante x2 0 no muda.
Isolando agora x1 na segunda restrio, obtm-se
10 x1 10 + 2 x3 4 x2 10 + 2 1 4 1 = 8
4
e o limitante apertado x1 . A segunda restrio no causa mudana nos limitantes de
5
x2 e x3 .
Como alguns limitantes foram alterados, retorna-se primeira restrio. Isolando a varivel x3 ,
obtm-se
4 93
10 x3 20 + 5 x2 8 x1 20 + 5 1 8 =
5 5
93
e o novo limitante apertado x3 . Os demais limitantes no mais se alteram.
50

Restries redundantes
Usando os novos limitantes na terceira restrio, segue-se que
15 93
+1+ <5
8 50
que implica que esta restrio redundante e pode ser descartada. O problema torna-se, ento,
max 4 x1 + 3 x2 2 x3
8 x1 5 x2 + 10 x3 20
10 x1 + 4 x2 2 x3 10
4 15 93
x1 ; 0 x2 1; 1 x3
5 8 50

Fixao de variveis
Note que o acrscimo de x2 torna as restries mais folgadas, e como seu coeficiente na funo
objetivo positivo, isso sugere que x2 assume o valor de seu limitante superior, igual a 1. Multi-
plique a segunda restrio por 1, e sejam u1 e u2 variveis duais no-negativas associadas s duas
restries. Seja u3 a varivel dual no-negativa associada restrio x2 1. Tem-se, ento, a se-
guinte restrio do problema dual
5u1 4u2 + u3 3
262 Pesquisa Operacional

A desigualdade acima implica que u3 > 0 e, pelas folgas complementares, tem-se que x2 = 1.
De forma semelhante, ao se decrescer x3 , tem-se que as restries ficam mais folgadas. Como seu
coeficiente na funo objetivo negativo, isso sugere que x3 assume o valor de seu limitante in-
ferior, igual a 1. Seja u4 a varivel dual no-positiva associada restrio x3 1. Se u4 = 0 na so-
luo dual tima, ento, pelas folgas complementares, tem-se que o valor timo de x3 situa-se
93
no intervalo [1, ] . No entanto, x3 > 1 um absurdo, pois o coeficiente de x3 na funo obje-
50
tivo negativo e o valor de x3 pode ser reduzido sem violar as restries. Se u4 < 0 na soluo
dual tima, ento, pelas folgas complementares, x3 = 1. O problema de programao linear reduz-
se, ento, a
4 15
max {4 x1 : x1 }
5 8
Essas idias esto formalizadas a seguir.

Proposio 3.3 Considere o conjunto


S = {x : a0 x0 + j =1 a j x j b, l j x j u j ,
n
j = 1, ..., n}
Limitantes em variveis. Se a0 > 0 , ento
x0 (b a jl j a j u j ) / a0
j:a j >0 j:a j <0

e, se a0 < 0 , ento
x0 (b a jl j a j u j ) / a0
j:a j >0 j:a j <0

Redundncia. A restrio a0 x0 + j =1 a j x j b redundante se


n

a ju j + a jl j b
j:a j >0 j:a j <0

Infactibilidade. S = se

a jl j + a ju j > b
j:a j >0 j:a j <0

Fixao de variveis. Para um problema de maximizao na forma


max {cx : Ax b, l x u}
se aij > 0, i = 1, ..., m e c j < 0, ento x j = l j . Se aij 0, i = 1, ..., m e c j > 0 , ento x j = u j .
Para problemas binrios, buscam-se restries lgicas envolvendo uma ou duas variveis e adi-
cionam-se as restries ao problema, ou estas so usadas para fixar algumas variveis. Este pro-
cedimento ilustrado a seguir.

Exemplo 3.25 Considere o conjunto de restries envolvendo quatro variveis 0-1:


2 x1 + x3 + x4 2
x1 2 x2 + 5 x3 + 2 x4 4
2 x1 + 6 x2 + x3 x4 3
5 x2 3 x4 0
Se na linha 1, x3 = 0, isso implica x1 = 1, que conduz desigualdade x1 + x3 1. De modo an-
logo, x1 + x4 1.
Captulo 3: Otimizao discreta 263

Se na linha 2, x3 = 1, isso implica x2 = 1, que leva desigualdade x3 x2. Esta restrio


infactvel se x3 = x4 = 1, que leva desigualdade x3 + x4 1.
Se na linha 3, x2 = 1, isso implica x1 = 1 e x4 = 1. Estas implicaes podem ser formuladas pe-
las desigualdades x2 x1 e x2 x4. Esta restrio infactvel se x2 = x3 = 1, que resulta na desi-
gualdade x2 + x3 1.
Se na linha 4, x4 = 1, isso implica x2 = 1, que leva desigualdade x2 x4.

Combinao de pares de desigualdades lgicas. Das linhas 3 e 4, tem-se x2 x4 e x4 x2, que im-
plica x2 = x4 . Das linhas 2 e 3, tm-se x3 x2 e x2 + x3 1, que implicam x3 = 0. A partir de
x1 + x3 1 , na linha 1, e x3 = 0, obtm-se x1 = 1.
Simplificao. Substituindo x1 = 1, x2 = x4, x3 = 0 , todas as restries so redundantes, restando
x2 {0,1}, portanto, as nicas solues factveis so (1,1,0,1) e (1,0,0,0 ).
Algumas implicaes lgicas so formalizadas a seguir.

Proposio 3.4 Considere o conjunto


n
X = {x B n : a j x j b}
j =1

X = se b < 0 e aj > b
j:a j <0
n
A restrio a j x j b redundante se aj b
j =1 j:a j >0

A restrio xi + x j 1 vlida se ai + a j > b

Seja ak > 0 . Se a j + ak > b , ento xk = 0


j:a j <0

3.11* OUTROS MTODOS EM OTIMIZAO DISCRETA


Existem outros enfoques de resoluo em otimizao discreta para problemas que possuem uma
estrutura particular, tais como os mtodos de Benders, Dantzig-Wolfe (gerao de colunas) e re-
laxao lagrangiana. Esses mtodos so, em geral, ineficientes para problemas genricos ou sem
estrutura.
Para descrever os mtodos de Benders e de Dantzig-Wolfe, necessrio apresentar os concei-
tos de pontos extremos e raios extremos, que so elementos essenciais para gerar qualquer pon-
to de um poliedro.

Definio 3.6 Considere o poliedro P = {x : Ax = b, x R+n } , em que A uma matriz de dimen-


so m n , com posto de A igual a m.
a) Um ponto extremo do poliedro corresponde a um vrtice ou soluo bsica.
b) Um raio extremo de um poliedro um vetor w tal que n 1 restries so ativas em w.
264 Pesquisa Operacional

Exemplo 3.26 Seja o poliedro ilimitado definido por


x1 x2 2
x1 + x2 1
x1 , x2 0,
representado na Figura 3.46.
Os raios extremos so w1 = (1,1) e w2 = (1,0) e os pontos extremos so x1 = (0,2), x2 = (0,1)
e x3 = (1,0). O teorema a seguir mostra que qualquer elemento de um poliedro pode ser gerado
a partir de seus pontos extremos e raios extremos.

Teorema 3.1 Seja P = {x : Ax = b, x R+n } um poliedro, xi , i = 1, ..., p, seus pontos extremos,


e w j , j = 1 ..., q seus raios extremos. Ento, qualquer elemento x X pode ser escrito como
p q p
x = i xi + j w j , i 0, j 0, i = 1
i =1 j =1 i =1
O vetor (2, 2) um elemento do poliedro do Exemplo 3.26 e admite mais de uma represen-
1 1 3
tao, como, por exemplo, (2, 2) = x 2 + w1 + w 2 e (2, 2) = x 2 + x3 + w1 . Se o poliedro li-
2 2 2
mitado, contm somente pontos extremos e, neste caso, qualquer elemento x X pode ser
escrito como combinao convexa dos pontos extremos, isto ,
p p
x = i xi , i 0, i = 1
i =1 i =1
Para ilustrar os mtodos de Benders, Dantzig-Wolfe e relaxao lagrangiana, considere o pro-
blema de dimensionamento de lotes de mltiplos itens com restrio de capacidade, apresenta-
do na Seo 3.6.1, e aqui repetido para facilitar a leitura.
n T
min (si yit + hi Iit ) (DL9)
i =1 t =1
I it = I i ,t 1 + xit dit , i = 1, ..., n, t = 1, ..., T (DL10)

Figura 3.46 Pontos extremos e raios extremos de um poliedro.


Captulo 3: Otimizao discreta 265
n
(spi yit + bi xit ) Ct , t = 1, ..., T (DL11)
i =1

xit M it yit , i = 1, ..., n, t = 1, ..., T (DL12a)


Ct spi T
M it = min{ , di }, i = 1, ..., n, t = 1, ..., T (DL12b)
bi =t

x R+nT , I R+nT , y B nT (DL13)


Considere o problema de programao inteira-mista
z = max cT x + d T y
Ax + Dy b (3.27)
x R+n , y Z +p

Mtodo de Benders
Este mtodo utiliza o conceito de projeo no espao de variveis complicadoras para ento obter
um problema, em geral, com uma estrutura de fcil resoluo. Considere que as variveis y em
(3.27) so as variveis complicadoras. A projeo dessas variveis no espao fornece o problema
z = maxn [d T y + maxn {cT x : Ax b Dy}] (3.28)
yZ + xR+

O problema nas variveis x


h(y ) = maxn {cT x : Ax b Dy} (3.29)
xR+

um problema de programao linear parametrizado pelas variveis y, denominado subproblema


de Benders. O subproblema dual dado por
( y ) = minm {u T (b Dy ) : u T A cT } (3.30)
uR+

Sejam {u1 ,..., u p } e {w1 ,..., w q } os conjuntos de pontos extremos e raios extremos de (3.30),
respectivamente. Note que (3.29) factvel se e somente se (3.30) tem valor timo finito, isto ,
se e somente se y satisfaz as restries
(w k )T (b Dy ) 0, k = 1, ..., q (3.31)
Portanto, a projeo aplicada a (3.27) resulta em (3.28) sujeito s restries adicionais (3.31).
A seguir, a funo h(y ) em (3.29) linearizada externamente e, devido a (3.30), seu valor
min {(u j )T (b Dy )}
1 j p

para todo y factvel em (3.29) com a restrio adicional (3.31). Ento, (3.28) pode ser reescrita como
z = maxp [d T y + min {(u j )T (b Dy )}] (3.32)
y Z + 1 j p

Como o mnimo o maior limitante superior, ento (3.32) pode ser reescrita como
max
, yZ +p

d T y + (u j )T (b Dy ) , j = 1, ..., p (3.33)
(w k )T (b Dy ) 0, k = 1, ..., q
266 Pesquisa Operacional

O problema (3.33) chamado problema mestre de Benders. Como o nmero de pontos extre-
mos e raios extremos em problemas de grande porte enorme, a relaxao uma forma natural de
resolver (3.33). Seja P {1, ..., p} e Q {1, ..., q}. O problema mestre relaxado dado por
max
, yZ +p

d T y + (u j )T (b Dy ) ,
j P (3.34)
(w k )T (b Dy ) 0, k Q
Por ser uma relaxao, segue-se que o valor timo de (3.34) um limitante superior do valor
timo de (3.33). Uma iterao l do mtodo de Benders consiste em resolver (3.34) e obter a so-
luo tima yl. Esta soluo enviada ao problema (3.30), que gera um novo ponto extremo ou
um novo raio extremo para o problema (3.34). Pode-se demonstrar que (3.30) no gera um ponto
extremo ou raio extremo repetido.
O processo continua at que o limitante inferior seja igual ao valor de uma soluo do
subproblema dual. Em geral, o problema primal de programao linear (3.29) possui uma estru-
tura e este problema resolvido em lugar do problema dual (3.30). As variveis duais timas so
obtidas a partir da base tima do problema (3.29).
A seguir, mostra-se que, ao se fixarem as variveis binrias yit no problema de dimen-
sionamento de lotes, obtm-se um problema de fluxo de custo mnimo em redes, apresentado
na Seo 4.2.4. Uma maneira mais fcil de mostrar esse fato consiste em definir as variveis
zit = bi xit e rit = bi I it , de forma que, em ambas as restries, (DL10) e (DL11), a unidade de me-
dida tempo.
A Figura 3.47 mostra a rede para um problema com 2 itens e trs perodos, com I10 = I 20 = 0.
Os ns 1 e 2 correspondem aos itens 1 e 2, os ns M correspondem a ns de uma mquina, o
n F corresponde a um n fonte e o n S um n sumidouro. Em cada arco mostrada a va-
rivel de fluxo que o atravessa, bem como o custo unitrio do fluxo ( ), e a capacidade do arco
( ), representados por [ , ] . Por exemplo, o arco por onde passa o fluxo r11 tem custo unit-
rio h1 / b1 e capacidade infinita. Os arcos entre o n fonte e os ns M tm capacidades C1 , C 2 e
C3 . Essas capacidades dependem dos valores das variveis binrias yit , e so dadas por
Ct = Ct sp1 y1t sp2 y2t sp1 y3t. A demanda D do n sumidouro corresponde capacidade no
utilizada, e dada por C1 + C 2 + C3 b1 (d11 + d12 + d13 ) b2 (d 21 + d 22 + d 23 ) , de forma que a rede
balanceada.

Mtodo de Dantzig-Wolfe

Este mtodo uma aplicao do princpio de decomposio, que envolve a resoluo de di-
versos subproblemas de tamanho menor, tipicamente estruturados, em lugar da resoluo do
problema original, cujo tamanho e complexidade impedem que seja resolvido em tempo ra-
zovel.
Considere o seguinte problema de programao inteira mista

z = max cT x + d T y
A1x + D1y b1 (3.35)
A 2 x + D2 y b 2
x R+n , y Z +p
em que b1 e b2 tm dimenso (m1 n) e (m2 n) , respectivamente.
Captulo 3: Otimizao discreta 267

Figura 3.47 Rede de dimensionamento de lotes.

As estruturas adequadas decomposio so as seguintes:74


As restries A 2 x + D2 y b 2 so restries complicadoras e a resoluo do subproblema
restrito a A1x + D1y b1 mais fcil.
As restries A1x + D1y b1 tm uma estrutura de bloco diagonal e as restries
A 2 x + D2 y b 2 acoplam os blocos.
Os subsistemas A1x + D1y b1 e A 2 x + D2 y b 2 so individualmente mais tratveis, mas,
quando presentes simultaneamente, tornam o problema bem mais difcil.
O exemplo anterior de dimensionamento de lotes enquadra-se no terceiro tipo de estrutura.
As restries (DL11), (DL12) e x R+nT , y B nT correspondem a um subsistema que se decom-
pe para cada perodo t em um problema da mochila com variveis binrias e contnuas. As res-
tries (DL10), (DL12) e (DL13) correspondem a outro subsistema que se decompe para cada
item i em um problema de dimensionamento de lotes sem restrio de capacidade.
Sejam {x k , y k }kK=1 os pontos extremos de
X 2 = {(x, y ) : A 2 x + D2 y b 2 , x R+n , y Z +p }

74 Vanderbeck e Savelsbergh (2006).


268 Pesquisa Operacional

Ento,
K K K
X 2 = {(x, y ) : x = k xk , y = k y k , k = 1, k {0,1}, k = 1, ..., K }
k =1 k =1 k =1
O problema mestre (PM) de Dantzig-Wolfe, equivalente ao problema (3.35), pode ser reescri-
to como
K K
(PM) z PM = max (cT x k ) k + (dT y k ) k
k =1 k =1
K K
(A1xk ) k + (D1y k ) k b1
k =1 k =1
K
k = 1
k =1
k {0,1}, k = 1, ..., K
Considere agora a relaxao linear do problema mestre PM
K K
(PML) zPML = max (cT xk ) k + (dT y k ) k
k =1 k =1
K K
(A1xk ) k + (D1y k ) k b1 (3.36)
k =1 k =1
K
k = 1 (3.37)
k =1
k 0, k = 1, ..., K
Seja z PL o valor timo da relaxao linear de (3.35). Ento, z PL z PML , pois uma soluo factvel
da relaxao de (3.35) que no combinao convexa dos pontos extremos de X no factvel em
(3.36).
Sejam { i }i =11 as variveis duais associadas s restries (3.36), e a varivel dual associada
m

restrio (3.37). Considere o problema mestre relaxado restrito (PMLR)



(PMLR) z PMLR = max (cT x k ) k + (dT y k ) k
k =1 k =1

(A1xk ) k + (D1y k ) k b1
k =1 k =1

k = 1
k =1
k 0, k = 1, ..., A
de modo que K contm uma base para PMLR.
Seja uma soluo tima de PMLR e (, ) uma soluo dual tima. Note que tambm
* *

uma soluo factvel de PML e que z PMLR z PML . Para verificar se uma soluo tima de
*

PML, deve-se verificar se, para cada coluna, isto , para cada (x, y ) X 2 , se o custo reduzido
(cT x + dT y T ( A1x + D1y ) ) 0 . Isso feito implicitamente por meio da resoluo do seguin-
te subproblema:
= max{(cT T A1 )x + (dT - T D1 )y : (x, y ) X 2 }
Captulo 3: Otimizao discreta 269

Se 0 , ento * uma soluo tima para PML; caso contrrio, seja (x% , y% ) a soluo tima
do subproblema acima. Introduza a coluna (cT x% + d T y% , A1x% + D1y% ,1)T em PMLR e reotimize pelo
mtodo simplex.
Note que a soluo tima de PML fornece um valor z PML z . Neste ponto, esse limitante su-
perior de z usado em um procedimento branch-and-bound, conhecido na literatura como branch-
and-price.

Relaxao lagrangiana

Considere novamente o problema de programao inteira mista


z = max cT x + d T y
A1x + D1y b1 (3.38)
A 2 x + D2 y b 2
x R+n , y Z +p
Seja u R+m2 o vetor de variveis duais associadas s restries A 2 x + D2 y b 2 , e defina o pro-
blema lagrangiano (PLG) como
g (u) = max cT x + dT y + uT (b 2 - A 2 x - D2 y)
(PLG) A1x + D1y b1
x R+n , y Z +p
Mostra-se, a seguir, que g (u) z. Seja (x* , y* ) uma soluo tima de (3.38). Ento (x* , y* )
factvel em PLG. Como A 2 x* + D2 y* b 2 e u R+ 2 , segue-se que c x + d y
m T * T *

c x + d y + u (b 2 A 2 x D2 y ) g (u) .
T * T * T * *

O problema dual , ento, definido como


w = min{g (u) : u R+m2 }
Seja z PL o valor timo da relaxao linear de (3.38). Demonstra-se que w z PL , isto , o va-
lor timo do problema dual pode gerar um limitante superior melhor que o valor timo da rela-
xao linear. Em problemas em que o problema lagrangiano PLG mais fcil de resolver que o
problema original (3.38), a relaxao lagrangiana , em geral, mais eficiente que a relaxao linear
no mtodo branch-and-bound.
No problema de dimensionamento de lotes, a relaxao lagrangiana das restries (DL10)
resulta em um problema lagrangiano que se decompe, para cada perodo t, em problemas da
mochila com variveis binrias e contnuas. A relaxao lagrangiana das restries (DL11) resulta
em um problema lagrangiano que se decompe para cada item i em um problema de dimen-
sionamento de lotes sem restrio de capacidade.75
Isso indica que o mtodo de Dantzig-Wolfe e a relaxao lagrangiana esto relacionados. De-
monstra-se que o valor timo do problema dual igual ao valor timo da relaxao linear do pro-
blema mestre de Dantzig-Wolfe, isto , w = z PML .

Heursticas

Heursticas so mtodos de resoluo de problemas de otimizao discreta que no garantem a


obteno de uma soluo factvel ou tima. Nicholson (1971) props uma definio que expres-
sa muito bem as caractersticas de uma heurstica: um procedimento para resolver problemas
75 Os mtodos de Benders e de relaxao lagrangiana so integrados no mtodo de decomposio cruzada para a resoluo do
problema de dimensionamento de lotes (DL9) (DL13); ver Souza e Armentano (1994). A relaxao lagrangiana comumente
utilizada para obteno de limitantes para o valor timo de um problema; ver, por exemplo, em Campello e Maculan (1987).
270 Pesquisa Operacional

por meio de um enfoque intuitivo, em geral racional, no qual a estrutura do problema possa ser
interpretada e explorada inteligentemente para se obter uma soluo razovel.
Para ilustrar essa definio, considere o problema da mochila 0-1, cujo modelo apresentado
na Seo 3.4. Suponha que cada item j tem um valor pj e ocupa um volume aj da mochila com
capacidade b. Uma forma adequada para usar a informao de valor e volume dos itens consis-
te em listar os itens em ordem no crescente da razo pj/aj, isto , o valor do item por unidade de
volume. A seleo dos itens a serem includos na mochila segue esta ordem. O item j da lista
selecionado se sua incluso no viola a capacidade da mochila; caso contrrio, investiga-se a in-
cluso do item j + 1, e assim por diante. A cada incluso de um item, a capacidade da mochila
atualizada. O procedimento finalizado at que todos os itens sejam selecionados ou at que
no caibam mais itens na mochila. Essa heurstica aplicada ao Exemplo 3.19 fornece uma solu-
o com valor 674, enquanto o valor da soluo tima 763. Outro exemplo de um mtodo
heurstico para um problema de planejamento da produo foi descrito na Seo 1.3.
O crescimento do interesse por heursticas ocorreu com o advento da teoria da complexida-
de computacional, que mostrou e ainda tem mostrado que um grande nmero de problemas
combinatrios intratvel, como destacado na Seo 3.7. A resoluo desses problemas comple-
xos com nmero mdio ou grande de variveis e restries por mtodos timos , em geral, invivel
computacionalmente. Vrias so as situaes que podem tornar interessante a utilizao de m-
todos heursticos na resoluo de um problema. Dentre estas, incluem-se:
Situaes em que um mtodo de resoluo exato no est disponvel, ou est disponvel mas
exige um tempo computacional ou quantidade de memria alm dos recursos do compu-
tador ou das necessidades da aplicao. Alguns exemplos ocorrem em problemas de pro-
gramao de produo e roteamento dinmico de veculos, em que necessrio encontrar
uma soluo razovel em um perodo de tempo muito curto. Nesses problemas, a ocorrncia
de um evento requer uma deciso muito rpida (por exemplo, da ordem de segundos), que,
em geral, no pode ser obtida por um mtodo timo.
Situaes em que pode no valer a pena o esforo e/ou custo envolvidos na gerao de uma
soluo tima, uma vez que esta no representar um ganho tcnico ou econmico relevan-
te em relao a uma soluo heurstica. Ou situaes em que os dados do problema so in-
certos ou pouco confiveis e a aplicao de um mtodo exato (determinstico) pode ser pouco
vantajosa em relao a um mtodo heurstico, devido s incertezas envolvidas na soluo.
Situaes em que uma heurstica utilizada em conjunto com um mtodo exato. Por exem-
plo, heursticas so usadas para gerar uma soluo inicial para o mtodo branch-and-cut e
tambm para gerar solues nos ns da rvore.
Uma vantagem de heursticas em relao aos mtodos exatos refere-se maior flexibilidade no
tratamento das caractersticas de um problema. Por exemplo, algumas caractersticas de um pro-
blema podem ser difceis de incorporar em um modelo de otimizao matemtica. Alm disso,
as heursticas podem oferecer mais de uma soluo, permitindo ampliar as possibilidades de de-
ciso, sobretudo quando existem fatores intangveis que no podem ser facilmente incorporados
ao modelo, mas que precisam ser considerados. Uma desvantagem das heursticas, alm de no
garantirem encontrar uma soluo factvel ou tima, que em geral no possvel conhecer a
qualidade da soluo obtida, ou seja, quo prxima essa soluo est da soluo tima.
Existem diversos tipos de heursticas, dentre os quais se destacam: (a) as heursticas construti-
vas; (b) as heursticas de busca local; e (c) as meta-heursticas.

Heursticas construtivas
Este tipo de heurstica constri uma soluo, factvel ou no, adicionando, em cada passo, um
elemento da soluo, tal como o valor de uma varivel ou um arco ou n em um grafo. Um exem-
Captulo 3: Otimizao discreta 271

plo de heurstica construtiva a heurstica gulosa, que constri a soluo visando, a cada passo, o
mximo benefcio. A heurstica para o problema da mochila 0-1 descrito anteriormente um
exemplo de heurstica gulosa, uma vez que, a cada passo, escolhe, dentre os itens ainda no se-
lecionados e que ainda cabem na mochila, aquele que tenha o maior valor por unidade de volu-
me. No caso do problema do caixeiro-viajante, um exemplo de uma heurstica gulosa consiste em
escolher uma cidade aleatoriamente ou segundo algum critrio determinstico e incorpor-la
rota. A partir da, escolhe-se sucessivamente a cidade mais prxima da ltima j incorporada
rota (heurstica do vizinho mais prximo). Quando todas as cidades tiverem sido incorporadas,
fecha-se a rota entre a primeira e a ltima cidades.

Heursticas de busca local


A partir de uma soluo inicial s, obtida, po