Anda di halaman 1dari 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.

IV

CDD: 658.4034
CDU: 005.31

Os Autores
Marcos Arenales professor do Departamento de Matemtica Aplicada e Estatstica (SME) da Universidade de So Paulo (USP) campus de So Carlos. graduado em Matemtica pela Universidade 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 Computao (FEEC) da Universidade Estadual de Campinas (UNICAMP). graduado em Engenharia Eltrica 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 modelagem 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 Universidade 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 Mecnica, 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 situamse 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 Eletrnica pelo Instituto Tecnolgico de Aeronutica (ITA), obteve o ttulo de mestre em Anlise de Sistemas 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 combinatria, com a da modelagem de problemas prticos oriundos de ambientes produtivos, e desenvolvimento 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 auxiliar no processo de tomada de decises, tais como projetar, planejar e operar sistemas em situaes 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, sistemas), 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 (programao 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 apresenta 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 modelos 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 distribuio 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 programao 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 dinmica 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 (programao 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 captulo, para que o professor possa explorar o material de interesse para a disciplina que ministra. 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. Acreditamos 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 captulo, 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-graduao em pesquisa operacional na Universidade de So Paulo em So Carlos USP (engenharia civil, engenharia de computao, cincias de computao e informtica, matemtica),
Universidade Estadual de Campinas UNICAMP (engenharia eltrica, engenharia de compuIX

Prefcio

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


produo materiais, produo qumica e produo agroindustrial, estatstica) e no Instituto Nacional de Pesquisas Espaciais INPE (computao aplicada).
Gostaramos de agradecer diversos colegas e alunos de graduao e ps-graduao que contriburam com comentrios crticos, sugestes e reviso do material de alguns dos captulos. Somos 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 Universidade Federal de Viosa; e Gisele F. Pileggi, da Universidade Mackenzie. Agradecemos tambm 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)

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, pesquisa operacional tem desempenhado papel importante nas reas de projeto, planejamento, e operao 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 pacotes comerciais com conhecimento sobre os mtodos utilizados nestes. O terceiro envolve a comunicao 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 aplicao 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 aprimoramento na utilizao de instrumentos e conceitos modernos de gerenciamento. A importao 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 produtivos 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 empregadores 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 Produo 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 Engenharia 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 responsvel 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 disciplinas do curso de Engenharia de Produo relevante.
Consciente deste novo contexto e tambm da responsabilidade para com a qualidade do ensino e da pesquisa em Engenharia de Produo, a ABEPRO (Associao Brasileira de Engenharia 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, representam 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 prioritariamente 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 atuando 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 exemplos nacionais, seja no caso dos exerccios e casos resolvidos, seja no caso dos exerccios proposXIII

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 Engenharia 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 assessores 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 brasileira, 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 humanos 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 encontrar 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 todos 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 livros comunidade de Engenharia de Produo. Aos leitores agradecemos a confiana depositada 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
1.2
1.3
1.4

Origens e definio de pesquisa operacional 1


Resoluo de problemas com modelos matemticos 3
Exemplo ilustrativo de modelagem matemtica 5
Organizao do livro 12

Captulo 2 Otimizao linear 15


2.1
2.2

Introduo 15
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
3.2
3.3

Introduo 163
Relaxao linear 165
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
4.2

Noes bsicas de redes e grafos 289


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
5.2
5.3

5.4
5.5
5.6

XVI

Um exemplo simples 375


5.1.1 Clculos do exemplo 377
5.1.2 Determinao do plano timo 380
Induo progressiva 381
5.2.1 Clculos da induo progressiva 382
5.2.2 Determinao do plano timo com a induo progressiva 385
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
Induo da decomposio na programao dinmica 391
O problema da dimensionalidade em programao dinmica 402
Exerccios 403

Sumrio

Captulo 6. Programao dinmica estocstica 407


6.1
6.2

A equao recursiva regressiva 407


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
7.2

7.3
7.4

7.5

7.6
7.7

7.8*

7.9*
7.10
7.11

Definio e classificao de um sistema de filas 435


Medidas de desempenho de um sistema de filas 439
7.2.1 Anlise em equilbrio 441
7.2.2 Frmula de Little 442
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
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
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
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
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
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
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
Exerccios 494
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 hispnica, por investigacin operativa. O surgimento deste termo est ligado inveno do radar na Inglaterra 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 estao 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 problemas 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 Segunda Guerra Mundial.
Aps o final da guerra, a pesquisa operacional evoluiu rapidamente na Inglaterra e nos Estados 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 americana. O projeto continha um grupo de pesquisa coordenado pelo economista Marshall Wood e
pelo matemtico George Dantzig. Durante esse projeto, Dantzig desenvolveu, formalizou e testou 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 pesqui1 Ver, por exemplo, Kirby (2003).
2 O trabalho de 1939 de Kantorovich (intitulado Mtodos matemticos na organizao e no planejamento de produo) considerado um dos precursores da pesquisa operacional, ao apontar que uma das maneiras de se aumentar a eficincia em uma empresa seria por meio de melhorias na organizao e no planejamento da produo.

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 trabalhos 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 levantamento 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 identificados 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, telecomunicaes, transportes; alm de organizaes de servio (pblicas e privadas), como: bancos e seguradoras, 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 Programming: 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 serem 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 sistemas 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 Investigao 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 Sociedades de Pesquisa Operacional da Europa), que rene 29 sociedades cientficas, a APORS (Associao 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 nacionais 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

SP. Em seguida, foi fundada a SOBRAPO (Sociedade Brasileira de Pesquisa Operacional), que publica 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, usualmente 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 difundido no mbito das engenharias (em particular, da engenharia de produo), cincias de administrao, 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 modelar 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 informao. A sociedade americana INFORMS atualmente define pesquisa operacional e cincias de
administrao como disciplinas profissionais que tratam da aplicao da tecnologia da informao 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 usado 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 problema 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 matemtico uma representao simplificada (abstrao) do problema real. Ele deve ser suficiente3 Em Campello et al.
tribuio significativa
4 Veja, por exemplo,
5 Veja, por exemplo,

(2003) e Bornstein et al. (2004), esto descritos os feitos de outros dois pesquisadores que deram uma conpara o crescimento e a consolidao da pesquisa operacional no pas.
Winston (2004).
Shapiro (2001).

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 abordagem de soluo de um problema usando a modelagem matemtica.6
A formulao (modelagem) define as variveis e as relaes matemticas para descrever o comportamento relevante do sistema ou problema real. A deduo (anlise) aplica tcnicas matemticas 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 suficiente 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 repetido. Exemplos de modelos matemticos so os modelos de programao matemtica (otimizao matemtica), como: programao linear (otimizao linear), programao linear inteira
(otimizao discreta), programao em redes (otimizao em redes) e programao no-linear (otimizao 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 resolvido (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 tomada 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 substituem 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

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) definio do problema; (ii) construo do modelo; (iii) soluo do modelo; (iv) validao do modelo; e (v) implementao da soluo.
A fase (i) define o escopo do problema em estudo. A fase (ii) traduz a fase (i) em relaes matemticas ou lgicas de simulao, ou uma combinao delas. A fase (iii) utiliza mtodos de soluo 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 forma 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 evidenciar suas inconsistncias e, ento, reformulamos o modelo; outras vezes, somente aps a operao 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 estudo desses mtodos diante das facilidades do uso direto dos diversos softwares comerciais j existentes, baseados nas tcnicas de pesquisa operacional. Entretanto, nem sempre nos deparamos
com problemas de aplicao direta nesses aplicativos computacionais, sendo necessrio um certo 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 aritmticas e de como oper-la?

1.3 EXEMPLO ILUSTRATIVO DE MODELAGEM MATEMTICA


Sistema MRP: O sistema computacional MRP II (Manufacturing Resource Planning) amplamente usado para o planejamento e controle de sistemas de manufatura. Este sistema uma verso expandida 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 componentes 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 associado 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.

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 seguir a partir da Figura 1.2:
Fase I: Suponha que a demanda externa dos itens finais seja conhecida ao longo de um horizonte 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 tamanho dos lotes dos itens finais em cada perodo do horizonte de planejamento que geram demandas 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 perodo. 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 finais 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 dis8 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

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 horizonte de planejamento, compreende:
Custo fixo e custo varivel de produo de cada item em cada semana: o custo fixo independe 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 capacidade? 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 produo extremos com relao a estes custos. O plano de produo que atende exatamente a demanda 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 representados 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 matemtica 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 decises compreendem o tamanho dos lotes produzidos dos itens 1 e 2 em cada semana. A quantidade 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

i=2

10

850

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 produo 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
Kit ( xit ) =
0

se 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

Minimizar

Kit ( xit ) + hi Iit


i =1 t =1

(1.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 estoque 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 demandada 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 nonegativas. Note que as variveis x1t e x2t so dependentes, pois competem pela capacidade disponvel em cada perodo.
Uma soluo factvel (ou vivel) para o modelo (1.1)(1.5) uma escolha para os valores das variveis que satisfaz todas as restries. Uma soluo tima uma soluo factvel que minimiza a funo 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

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

Minimizar

K (x ) + h I
1t

1t

1 1t

t =1

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 , resolva o subproblema:
4

Minimizar

K (x ) + h I
2t

2t

2 2t

t =1

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 demandas 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 produo 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 soluo 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 soluo 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 comercial 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.

Item 1

Perodo

Demanda

30

25

25

20

Plano de produo

55

45

Estoque

25

20

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

Item 2

Perodo

Demanda

55

45

Plano de produo

55

45

Estoque

25

20

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 perodo 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 perodo 1 seja elevada de 10 unidades, o que aumentaria a violao de capacidade nesse perodo. Portanto, 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 demanda 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 eliminar 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 perodo 3. A soluo mostrada nas Tabelas 1.4 e 1.610 factvel e tem custo 5.750. Note que 5 unidades 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, conforme mostrado na Tabela 1.7. Pode-se mostrar que a soluo das Tabelas 1.4 e 1.7 tima aplicando-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 modelos, essa anlise pode ser feita, por exemplo, resolvendo-se o modelo para diferentes cenrios (valores de parmetros) e comparando-se as solues obtidas.
10 Soluo apresentada em Drexl e Kimms (1997).

Captulo 1: Introduo pesquisa operacional

Tabela 1.4
Plano de produo do item 1 factvel.

Item1

Perodo

Demanda

30

25

25

20

Plano de produo

30

25

45

Estoque

25

20

Tabela 1.5
Plano de produo do item 2 revisado.

Item 2

Perodo

Demanda

30

25

45

Plano de produo

50

45

Estoque

20

20

Tabela 1.6
Plano de produo do item 2 factvel.

Item 2

Perodo

Demanda

30

25

45

Plano de produo

50

50

Estoque

20

45

Tabela 1.7
Plano de produo do item 2 timo.

Item 2

Perodo

Demanda

30

25

45

Plano de produo

45

55

Estoque

15

45

11

12

Pesquisa Operacional

1.4 ORGANIZAO DO LIVRO


Este livro est organizado em duas partes: a Parte I estuda modelos determinsticos de programao matemtica, como: otimizao linear (programao linear), otimizao discreta (programao 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 aplicaes de modelos lineares em problemas de mistura, problemas de transporte, transbordo e designao, problemas de planejamento da produo (incluindo mix de produtos, seleo de
processos, dimensionamento de lotes), problemas de programao de projetos, problemas de gesto 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 resolver 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 detalhes 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, ...). Apresentamos exemplos de aplicaes de modelos lineares inteiros em problemas da mochila, problemas de corte e empacotamento de materiais, problemas de designao, problemas de cobertura,
partio e empacotamento de conjuntos, problemas logsticos de caixeiro-viajante e carteiro chins, problemas de roteamento11 e programao de veculos, problemas de localizao de facilidades12 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, problemas 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 mtodo simplex adaptado para redes.
No Captulo 5, estudamos a programao dinmica determinstica, em que o problema original 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 problemas de otimizao linear e no-linear.
11 O termo roteirizao de veculos, embora no encontrado nos dicionrios de lngua portuguesa, tem sido usado como equivalente palavra inglesa routing (ou routeing). O termo roteamento de veculos tambm utilizado alternativamente por diversos autores 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 modelos 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 dinmica estocstica decompe o problema original em subproblemas menores. Apresentamos exemplos 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 manuteno 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 congesto. 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, utilizao 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 paralelo (redes de filas). Discutimos modelos com processos de chegada e servio dos usurios com distribuies de probabilidade exponenciais e modelos com distribuies de probabilidade genricas.
Tambm apresentamos modelos com mltiplas classes de usurios e prioridades de atendimento diferentes para cada classe. Os modelos so ilustrados com exemplos de aplicaes em sistemas de manufatura e sistemas de servio.
Devido a limitaes de espao, alguns tpicos importantes em pesquisa operacional no esto 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 demanda, 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 desenvolvimento dos principais mtodos de soluo. Os modelos de otimizao linear tm sido amplamente 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 pesquisas 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 aparecem nas mais variadas reas. Nesta seo, apresentamos alguns exemplos que, embora simplificados, 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 convenientes. 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 produzidas 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 conhecida, isto , a quantidade de protena, clcio, ferro, mangans, calorias etc.; na prtica, o nmero 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 problema de otimizao surge para determinar quais devem ser as quantidades ideais de cada ingrediente 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 exemplos 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, silcio, 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 metalurgia 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 Tratamento de guas de abastecimento (ETA) como meio filtrante por interceptar impurezas existentes 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 especificaes 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 chamado de mistura, combinando-se alguns materiais disponveis na natureza ou disponveis no mercado (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 utilizar 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 nmero 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 deseja determinar. No problema da mistura, as variveis so as quantidades dos ingredientes. Assim, 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-negativas, 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, usamos 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 ingrediente 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 componente 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 mistura a soma das quantidades de clcio presentes nos ingredientes. Essas hipteses so fundamentais 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
xn 0.
x1 0, x2 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 peixe. Cada um desses trs ingredientes contm diferentes quantidades de dois nutrientes necessrios a uma dieta nutricional balanceada: protena e clcio. O nutricionista especifica as
necessidades mnimas desses nutrientes em 1kg de rao. Cada ingrediente adquirido no mercado 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.

Nutrientes

Osso

Ingredientes
Soja

Protena

0,2

Clcio
Custos ($/kg)

Peixe

Rao

0,5

0,4

0,3

0,6

0,4

0,4

0,5

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 produzir 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 unidade (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 alternativas. 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 ilustrar uma situao. Os dados utilizados no correspondem a valores reais, que podem ser obtidos
n
em tabelas nutricionais ou por anlise laboratorial.
2
Para uma refeio humana, na qual a palatabilidade importante, alm das necessidades nutricionais, 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 (conseqentemente, na refeio). Tais ingredientes devem aparecer nas restries nutricionais, contribuindo 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 utilizar como fontes de agregados grados: (i) britas granticas obtidas pelo desmonte da rocha local; (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 baseadas na compacidade (nmero de vazios intergranulares) e ensaios laboratoriais, a uma faixa de composio 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 composio 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:
(19-38mm)
0,10x1 + 0,35x2 + 0,78x3 0,20
0,20x1 + 0,60x2 + 0,02x3 0,35
(38-76mm)
0,35
(76-152mm).
0,70x1
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,35
0,70x1
x2 +
x3 = 1
x1+
x3 0.
x1 0, x2 0,
n
Observao: Nem sempre um problema de otimizao tem uma soluo possvel. No exemplo anterior novas fontes de agregadados grados, com caractersticas diversas, podem ser consideradas, 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 ingredientes, 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 produzidas ou ofertadas em cada centro e as quantidades demandadas em cada mercado consumidor 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. Suponha 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 origem i para o destino j, ento cijxij o custo incorrido para se realizar esse transporte. O custo total de transporte a soma dos custos de transporte de todas as quantidades transportadas de
m

c x

todas as origens i a todos os destinos j, ou seja,

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

ij

j =1

ai .

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

ij

= bj .

i =1

Figura 2.4

Rede de transporte.

22

Pesquisa Operacional

O modelo completo do problema de transporte definido por:


m

Minimizar
n

ij

f(x11, x12, ..., xmn) =

ai

i = 1, , m

= bj

j = 1, , n

c x

ij ij

i =1 j =1

j =1

ij

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 unidade 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 mxima 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 Horizonte), 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


x11 + x12 + x13 800
x21 + x22 + x23 1000
= 500
x11 + x21
x12 + x22
= 400
= 900
x13 + x23
x11 0, x12 0, x13 0, x21 0, x22 0, x23 0.

(2.1)
(2.2)
(2.3)
(2.4)
(2.5)
(2.6)
(2.7)

A funo em (2.1) representa o custo total de se transportar o produto dos centros de produo 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 devem 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
suprimento

So Paulo (1)

Mercado
Belo Horizonte (2)

Rio de Janeiro (3)

Suprimento
disponvel(ai)

Araraquara (1)

800

S. J. Campos (2)

11

1000

Demanda dos
mercados (bj)

500

400

900

Captulo 2: Otimizao linear

23

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

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 correspondentes aos destinos, cujos dados esto na Tabela 2.3. As quantidades ofertadas (ai ltima coluna) 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 viagem, condies das estradas de acesso, condies dos veculos que servem a trajetria em questo etc.), so dados na Tabela 2.3.
A unidade de referncia pode ser alterada para outra mais apropriada, como, em vez de tonelada, 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
300
x41 + x42 + x43
x11
+ x21
+ x31
+ x41
= 697
+ x22
+ x32
+ x42
= 421
x12
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 transbordo. 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 intermediria aos mercadores consumidores igual quantidade de produto que chega dos centros produtores 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 localii
k
dade intermediria j que represente um centro de distribuio.
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.

Pedreiras

Depsitos
2

30

13

21

433

12

40

26

215

27

15

35

782

37

25

19

300

demanda bj

697

421

612

Oferta ai

Exemplo 2.5 Considere o problema da companhia distribuidora de bebidas do Exemplo 2.3 e suponha 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 consumidores: 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 mercado 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 localidade j, o modelo que representa o problema dado a seguir. Note que algumas variveis xij no esto 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
Campinas (3)

Depsitos
Barra Mansa (4)

Araraquara (1)

S. J. Campos (2)

Tabela 2.5
Custos unitrios dos depsitos aos mercados consumidores.
Depsitos
So Paulo (5)

Mercados consumidores
Belo Horizonte (6)

Rio de Janeiro (7)

Campinas (3)

Barra Mansa (4)

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.

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 interesse do indivduo i na realizao da tarefa j. Seja a varivel de deciso xij igual a 1 se o indivduo i for designado para a realizao da tarefa j e 0, caso contrrio. A formulao deste problema
de designao (ou atribuio)
n

Maximizar

f(x11, ..., xnn) =

ij ij

i =1 j =1

(2.8)

ij

=1

i = 1, 2, , n.

(2.9)

ij

=1

j = 1, 2, , n

(2.10)

j =1
n

x
i =1

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 restries (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 soluo tima inteira (ver Propriedade 4.4, de integralidade, no Captulo 4).
Problemas de transporte e transbordo podem ser estendidos para tratar de situaes mais gerais, 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, introduzimos 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 situaes reais e envolvem decidir quais produtos e quanto fabricar de cada produto em um perodo (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 fabricar 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 planejamento (por exemplo, um ms). Seja Ci a capacidade do recurso i, i = 1, 2, , m, disponvel no perodo. 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 excedam 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


j =1

(2.12)

aij x j Ci

i = 1, 2, , m

(2.13)

dj xj vj

j =1, 2, , n.

(2.14)

j =1

A funo em (2.12) representa a contribuio ao lucro da empresa, a ser maximizada. As restries (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 pesquisa de mercado que indicou que, no mximo, 1.500 unidades do modelo de luxo e 6.000 unidades 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 homenshora 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 determinar 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 produzida 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, devido 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.

Restries de chance

No Exemplo 2.6, o potencial mximo de vendas de geladeiras foi estimado pelo departamento de marketing e vendas em 1.500 unidades do modelo de luxo e 6.000 unidades do modelo 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 (produzir 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, baseada 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 )
luxo

P ( Dluxo xluxo ) = P luxo


( Dluxo )
( Dluxo )

E(D

luxo
z = luxo , isto , a funo disSeja z luxo o valor que satisfaz a igualdade: P luxo
(
)

D
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 norluxo

mal acumulada uma funo crescente, segue-se que

xluxo E ( Dluxo )
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 alternativos. Esses processos podem representar tecnologias diferentes, opes de hora extra, turno adicional, 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 limitaes 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, combinado a um problema de dimensionamento de lotes, na produo de gros eletrofundidos, veja tambm Luche e Morabito (2005).

Captulo 2: Otimizao linear

29

Minimizar f ( x11 , x12 ,..) = cij xij


i =1 j J i

xij = d i

jJ i

i = 1, ..., 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 diferentes 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 limitadas (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 prximos 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 problema:
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, menos o que foi demandado no perodo t, ou seja,
i = 1, ..., n , t = l, ..., T.
Iit = Ii, t-1 + xit dit
Tais restries so tpicas em modelos dinmicos. Por exemplo, podem modelar a conservao 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 capacidade disponvel da fbrica, ou seja,
t = l, ..., T.
r1x1t + r2x2t + . . . + rnxnt Rt
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 quantidade foi definida anteriormente como Iit, de modo que podemos garantir o atendimento s
demandas impondo:
i = 1, ..., n, t = l, ..., T.
Iit 0
Alm disso, por definio das variveis de produo xij, temos que
i = 1, ..., n, t = l, ..., T.
xit 0
Os custos incorridos so os de produo e de estocagem dos produtos. Desta forma, a funo custo a ser minimizada
n T

n T

i =1t =1

i =1 t =1

f(x11, I11, x12, I12, ...) = cit xit + hit I it .


O modelo completo de otimizao linear dado por:
Minimizar

n T

n T

i =1t =1

i =1 t =1

f(x11, I11, x12, I12,...) = cit xit + hit I it

xit + Ii, t-1 Iit = dit


r1x1t + r2x2t + . . . + rnxnt Rt
xit , Iit 0

i = 1, ..., n, t = l, ..., T
t = l, ..., T
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 produtos 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 (nvel 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 preparar mquinas para a produo de um item e, nessa preparao, consomem-se recursos e incorrese 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 modeladas 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 demandas para as prximas trs semanas so conhecidas, conforme a Tabela 2.6.
Os produtos utilizam os mesmos tipos de recursos, porm em quantidades diferentes. Suponha, 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 produo 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 seguintes. 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 menor custo de produo e estocagem. Os estoques iniciais dos dois produtos so nulos e deseja-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 modelo 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

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

i =1 t =1

i =1 t =1

De f(x11, I11, x12, I12, ...) = cit xit + hit I it (estoque final fixado), temos
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
+ I11 I12
= 90
x12
+ I12
= 120
x13
x21
I21
= 40
+ I21 I22
= 70
x22
+ I22
= 80
x23

Captulo 2: Otimizao linear

1/4x11

+ 1/3x21
+ 1/3x22

1/4x12

33

40
40
40

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

Formulao matemtica de um problema de dimensionamento de lotes multiestgios

De maneira anloga ao caso anterior, monoestgio, considere uma empresa que fabrica n produtos 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 perodo do horizonte de planejamento. Porm, a produo de uma unidade de um produto demandado 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 outros). Um componente tambm pode ter demanda externa (por exemplo, teclado). A fabricao 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 depende 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 produto 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

i =1t =1

i =1 t =1

Minimizar f(x11, I11, ...) = cit xit + hit I it


n

xjt + Ij, t-1 Ijt = djt + b ji xit

j = 1, ..., n, t = l, ..., T

rk1x1t + rk2x2t + . . . + rknxnt Rkt

k = 1, ..., K, t = l, ..., T

xit , Iit 0

i = 1, ..., n, t = l, ..., T

i =1

34

Pesquisa Operacional

2.2.4 Problemas de programao de projetos

Nesta classe de problemas, determinamos a ordem em que um conjunto de atividades realizado 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 determinao do menor tempo necessrio para sua concluso. A simplicidade dos dados na Tabela 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 concludas 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 incio (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)

Preparo da armadura

Preparo da forma

Lanamento da armadura

Lanamento da forma

B, C

Providncias para concretagem

Aplicao do concreto

E, D

Cura do concreto

72

Desforma do pilar

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 gostaria 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 caixa (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 incio 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 unidades 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 simboliza a entrada de caixa (origem das contas a receber de clientes) e o n S a sada de caixa (destino 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 especficos: 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 resgatado no perodo i com impostos de c2,1) etc. Por exemplo, se i = 1 e j = 2 ento f12 a quantia 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 perodo 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 acima. 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)
(n n )
(1 + ) f n 1,n + (1 c1,2 ) f n ,n = f n ,Z + f n ,n
fi,j 0, para todo i, j.
Este modelo de otimizao linear pode ser estendido para tratar mais de duas opes de investimento 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 fluxos de entrada e sada de caixa: e1 = $12, e2 = $8, e3 = $5 e s1 = $4, s2 = $10, s3 = $10 unidades 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 aplicaes e resgates s podem ser feitos no incio de cada perodo. A empresa j dispe de um investimento 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 horizonte 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 ttulos 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 produtivo. 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 Controle Ambiental so de a0 e b0 gramas por ML (milhes de litros) de gua por dia para os componentes 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 tratamento, 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 quantidade 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

a1

a2

a3

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 tratamentos :
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. Assim, 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 seguinte estratgia na manufatura de seus produtos: objetos (peas grandes) de tamanhos padronizados 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 material 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 objetos 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 subbobinas 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, construo 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 processo de corte, por exemplo, barras de ao, bobinas de papel, rolos de filme etc., ou bidimensionais, 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 produtos 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, embora essa modelagem possa ser estendida para problemas com mais dimenses.
Em um problema unidimensional, deseja-se cortar barras disponveis de um tamanho padronizado 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 produzida a quantidade bi da pea de comprimento l i ).
Conforme os tamanhos e as quantidades dos itens encomendados, podemos ter vrias maneiras 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 mdimensional 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 padres 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 distintos 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
1 0, 2 0, ..., m 0 e inteiros.

(2.15)

Modelos que envolvem uma condio de integralidade como em (2.15) so tratados no Captulo 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 pequeno 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 cortadas de acordo com cada padro, de modo que a demanda de cada item seja atendida, utilizando-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
a
21 x +
M 1

am1

a12
a
22 x + . . . +
M 2

am 2

b1
a1n
b
a
2n x = 2
M n M


bm
amn

(2.16)

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 quantidade em toneladas demandada para o item de largura li. O lado esquerdo da restrio de demanda 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 linear). 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 toneladas 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 a
2 21 x +
M 1

l m am1

l 1a12
l a
2 22 x + ... +
M 2

l m a m 2

b1
l 1a1n
l a

2 2 n x = b2
M n M


l m amn
bm

(2.17)

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), obtm-se

42

Pesquisa Operacional

Minimizar
l 1 a11

lL2
L a21 (T x ) +
1
M

l
Lm am1

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

l 1 a12

lL2
L a22 (Tx ) + ... +
2
M

l
Lm am 2

lL1 a1n
b1
l2

b
L a2 n
2
(Tx
)
=
n
M
M
l


m
L amn
bm

(2.18)

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
lL2

L a21 y +
M 1
l

Lm am1

l 1 a12
lL2

L a22 y + ... +
M 2
l

Lm am 2

b1
lL1 a1n
b

l2
L a2 n y = 2
M n M

l
m
bm
L amn

(2.19)

yj 0, j = 1,, n.
Em (2.19), uma soluo com yj = 3,5 tem significado, pois indica que 3,5 toneladas de material (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 indstrias 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 modelos 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 quantidades 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 + ...


0
0
1 0 ,1
0

10 0 ,1
1 0 ,1

8 0 ,1125

0
0
,
4
0
1125
0

y +
y +
y +
y +

y +
y +
2 7 0 ,1375 3 0 4 4 0 ,1375 5 4 0 ,1375 6
0 1
0

0
0
0

0
6 0 ,15
3 0 ,15

y1, y2, y3, y4, y5, y6, ... 0.

5
3,5
...=
4

5
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 controlveis. Por exemplo, um pesquisador da rea de sade mede a presso arterial de milhares de pacientes (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 regresso 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 desconhecidos). Surge, ento, um problema de otimizao que consiste em determinar as incgnitas 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 vrias 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 pesquisadores 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|
i = 1, 2, ..., m
bi = ai1x1 + ai2x2 + ... + ainxn + i
A funo anterior a ser minimizada acima linear por partes:
i
| i | =
i

se i 0
se i 0

e no diferencivel em i = 0. Embora isso possa apresentar uma dificuldade para o clculo diferencial, pode ser bem formulada como um modelo de otimizao linear, com a seguinte estratgia 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 simultaneamente, 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 sempre 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 = 1, 2, ..., m.
i 0 , i 0
De forma anloga, podemos escrever um problema de otimizao linear se os rudos so ponderados 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 medida, 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
+

=0
a+b+
2 2
+

=1
2a + b +
3 3
+

3a + b +
=1
4 4
+

+
1 0 , 1 0 2 0 , 2 0 3 0 , 3 0 4 0 , 4 0 .

Tabela 2.12
Dados experimentais.
x

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
yt = cTxt + dTut

t = 0, ..., T1
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 valores), yt um escalar chamado resposta do sistema no instante t que depende linearmente das variveis 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 controle (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 econmico etc. Tipicamente, devemos escolher as variveis de controle u0, u1, ..., uT-1 para levar o sistema 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 problema 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
t = 0, ..., T 1,
z yt z
de modo que o modelo anterior pode ser descrito por:
Minimizar z
z yt z
xt+1 = Axt + But
yt = cTxt + dTut
xt xt xt
ut ut ut
x0 e xT dados

t = 0, ..., T 1
t = 0, ..., T1
t = 0, ..., T1
t = 1, ..., T1
t = 0, ..., T1

Exemplo 2.1114 Suponha que um foguete viaje em linha reta e sejam (xt, vt) a posio e a velocidade do foguete no instante t, as quais so determinadas pela acelerao at no instante t. Tais variveis esto relacionadas por:
vt =
at =

xt
t
vt
t

(velocidade a derivada de xt)


(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 . Considerando-se t fixo e denotando-se xt+1 = xt+t e vt+1 = vt+t (ou seja, considerando o instante inicial 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|. Suponha 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 (aterrissagem 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 descrito 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 ).

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 funes 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 problema 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
em que:

f(I11, I12, ...) = f11(I11) + f12(I12)+ ...

h + I
f it ( I it ) = it it
hit I it

se I it 0
se I it 0

Anlogo ao problema de ajuste de curvas (Seo 2.2.8), podemos redefinir a varivel de estoque 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 falta 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 algumas hipteses s quais as grandezas envolvidas precisam obedecer: aditividade, proporcionalidade e fracionamento.
Hiptese de aditividade
Esta hiptese pressupe que o todo igual soma das partes. Por exemplo, se em 1kg do ingrediente j encontramos 200g (ou 0,2kg) do componente i e, em 1kg do ingrediente k, encontramos 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 negligenciado. Por exemplo, quando se misturam diferentes tipos de ingredientes cujos componentes reagem 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 ingrediente 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 contm 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 mquinas 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, produzir 331 ou 332 peas do tipo 1 so decises aceitveis e coerentes na prtica, ento no h motivo 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 discutido no Captulo 3.
Embora as hipteses de linearidade possam sugerir que modelos de otimizao linear tm utilizao 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 exemplos de aplicaes de modelos de otimizao linear em diversas reas das engenharias (alimentos, aeronutica, civil, computao, controle e automao, eltrica, eletrnica, florestal, produo,
qumica, mecnica, mecatrnica, metalrgica, minas, naval etc.), em economia e finanas, medicina, fsica, cincias sociais, ecologia, esportes etc. Os modelos de otimizao linear apiam o processo 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 forma padro:
(2.20)
Minimizar f(x1, x2,, xn) = c1x1+ c2x2 + + cnxn
a11x1 + a12x2 + + a1nxn = b1
a21x1 + a22x2 + + a2n xn = b2

M
am1x1+ am2x2 + + amn xn = bm
x1 0, x2 0, , xn 0.

(2.21)
(2.22)

A funo linear f em (2.20), a ser minimizada, chamada funo objetivo, o sistema de equaes 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
a
A = 21
M

am1

a12 L
a22 L
M
am 2 L

a1n
a2 n

amn

uma matriz mn, chamada matriz dos coeficientes


(ou matriz tecnolgica);

Captulo 2: Otimizao linear

cT = (c1 c2 L cn )
xT = ( x1 x2 L xn )
bT = (b1 b2 L bm )
0T = (0 0 0)

51

o vetor de custos,
o vetor das variveis ou incgnitas,
o vetor dos termos independentes ou de recursos,
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, utilizamos 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 restries do problema.
Qualquer problema de otimizao linear pode ser escrito na forma padro. Com isso, sem perda 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 satisfizer 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 explicitamente 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 todas 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
T
f(x1, x2, x3). A matriz dos coeficientes 23, dada por: A =
, o vetor dos custos por c = (2 1 4) ,
0
1
2

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

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 indicadas. Podemos observar que a soluo factvel x1 = 0,25, x2 = 0,5, x3 = 1,75 melhor que a soluo 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 anteriores. Mas ainda resta a questo: h outra soluo melhor que esta? Esta soluo de fato tima, como pode ser verificado adiante com a teoria deste captulo.
n
Resolver um problema de otimizao consiste em determinar uma soluo tima, isto , determinar uma soluo que satisfaa todas as restries do problema e que atribua o melhor valor funo objetivo.
2.4.2 Transformao de problemas na forma padro

Vrias outras formas de problemas de otimizao linear aparecem em problemas reais, por exemplo, quando se deseja maximizar a funo objetivo, ou existem restries de desigualdade, ou ainda, 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 soluo 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 soluo 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 equaes, 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 esquerdo 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
1
2x1 + x2 + x3
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 padro. 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 nonegativas, 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
+ x5 = 1
2x1 + x2 + x3
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 variveis 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
= 3
x1+ x1 + 2x2 x3 x4
+

2 x1 + 2 x1 + x2 + x3
+ x5 = 1
+

x1 0, x1 0, x2 0, x3 0, x4 0, x5 0.

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:
Minimizar f(x1, x2, , xn) =
n

aj xj = b

cj xj
j =1

j =1

xj 0, j = 1, ..., n,

em que:

a1 j
a
2j
aj = : j-sima coluna da matriz A, que so os coeficientes que multiplicam xj.
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

x2 + 2 x3 = 4

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

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 sobre 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. Desenhamos, 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, consideramos 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
2
x1
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. Representamos 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, podemos 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 conjunto, observamos que o vetor (1, 1)T aponta no sentido em que a funo x1+ x2 cresce (mostramos 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 interessa consiste em verificar a factibilidade de um ponto qualquer fora da reta. Neste exemplo, 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 todos 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 curva 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 soluo 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 atribuem 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 curva 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) existe e nica:
x

1
x* = x = 3 .
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 escalar 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 equao 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 plano 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 forma, os pontos do lado que indica o vetor a so dados por x = x+a, > 0 (Figura 2.20). Conseqentemente,
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 equao 0x1 + 0x2 = b, que no tem sentido para nossos estudos, pois b = 0 leva a uma equao trivial 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 funo 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 pontos tais que f(x) > f .
Se desejarmos maximizar f(x) (como no Exemplo 2.18), procuramos pontos factveis que estejam do lado apontado pelo gradiente c, partindo-se da curva de nvel f (x) = f . Uma situao 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 caracteriza 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 (minimizao):
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*), observamos 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). Dessa forma, podemos intuir que os vrtices so solues de sistemas de equaes lineares. Formalizaremos 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 afirmao equivocada: se uma soluo for tima, ento ela um vrtice e, como exerccio, pode apresentar 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.
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
x* =

x1
x
2

5,4

= 1,8

f(x*) = 7,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, determinadas pelo segmento de reta em destaque na Figura 2.28 que liga os pontos A e B. Note que o gradiente 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 ilimitada. 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 objetivo (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 sees 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:
x* =

x1
x
2

= 4

f(x*) = 14

f(x) = 12.

embora tenha uma soluo factvel degenerada:


x=

x1
x
2

= 3

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 mtodos 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 problemas 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 linear e um de seus mtodos mais importantes: o mtodo simplex. Por convenincia, a teoria desenvolvida 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

Figura 2.33

67

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


0
x3 = 6 (x1 + x2)
x4 = 4 (x1 x2)
0
x5 =
(3x1 + x2) 3 0,

(2.24)

o problema transformado na forma de igualdade (Ax = b, x 0):


=6
x1 + x2 + x3
x1 x2
+ x4
=4
3x1 + x2
x5 = 3
x1 0, x2 0, x3 0, x4 0, x5 0.

(2.25)

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 pertencentes 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), porm, visualizamos na Figura 2.35 apenas as duas primeiras coordenadas (x1, x2), enquanto as demais 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). Verificamos 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 representao grfica do problema como temos feito).
Ponto E:
Ponto F:
x1 = 6
x1 = 4
x2 = 5
x2 = 0
x3 = 6 (6 + 0) = 0
x3 = 6 (4 + 5) = 3
x4= 4 (6 0)= 2
x4 = 4 (4 5) = 5
x5 = (3 6 + 0) 3 = 15
x5 = (3 4 + 5) 3 = 14
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 geomtrico 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:
x = 0
Fixar 3
x4 = 0

=6
x1 + x2

resulta no sistema: x1 x2
= 4 , cuja soluo :
3 x + x x = 3
5
1 2

x1 = 5

x2 = 1
x = 13 .
5

(2.26)

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 soluo de sistemas lineares, como, por exemplo, o mtodo de eliminao de Gauss (veja Apndice 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 exemplo, o ponto F, que pode ser obtido pela fixao das variveis x2 = 0 e x3 = 0, restando um sistema nas variveis x1, x4 e x5, ou seja,
=6
x1
x2 = 0

Fixar
resulta no sistema: x1 + x4
= 4 , cuja soluo :
x3 = 0
3 x
x5 = 3
1

x1 = 6

x4 = 2
x = 15 .
5

(2.27)

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


x x
Ax = b x1 x2 + x4
+ x4 = 4 ,
= 4 1 2
3x1 + x2 x5 0 3
3x1 + x2 x5 3
144244
3 {
144
42444
3 {
variveis
variveis
restantes

Ax

(2.28)

a serem
fixadas

ou, em notao matricial:

1 1 0
1 1 0

3 1 1
14
4244
3
B

x1 1 0

x2 + 0 1
x5 0 0
{ 123
N
xB

6
x3
x = 4 ,
4
{
3
xN {
b

(2.29)

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:
0
1 1
B = 1 1 0 = [a1
3 1 1

a2 a5]

1 0
N = 0 1
0 0

= [a3 a4].

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 = .
x4
x5
Podemos, ainda, definir dois vetores de ndices:
B = (B1 B2 B3):
B1 = 1, B2 = 2, B3 = 5,
N1 = 3, N2 = 4,
N = (N1 N2):

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]
x B1 x1

x B = x B2 = x 2
x
x B3 5

N = [a N1 a N2 ] = [a3 a4],
x N x3
xN = 1 = .
x N 2 x 4

Em resumo, o sistema Ax = b pode ser reescrito de forma equivalente como:


Ax = b BxB + NxN = b
x

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 solues de um sistema Ax = b qualquer, repetimos esse procedimento anterior explicitando algumas 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 restantes) e m equaes. Se a matriz desse sistema restante for invertvel, a soluo bem determinada. 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, podemos 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 problema 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 fixadas, 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 pertencem a B, chamados ndices bsicos.
Nm(n-m), chamada matriz no-bsica, formada pelas n m colunas restantes de A (isto , colunas 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

xN

x=

72

Pesquisa Operacional

em que:
xB1

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

x
Bm
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
xN

ou

(2.30)

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 qualquer 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 variveis 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 nodegenerada.
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

1 1 0
3 1 1
14
4244
3
B

x1 1 0

x2 + 0 1
x5 0 0
{ 123
N
xB

6
x3
x = 4
4
{
3
xN {
b

Assim, fixando as variveis no-bsicas em zero: x3 = x4 = 0 (isto , x N = 0 ), temos:

Captulo 2: Otimizao linear

73

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

2
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 soluo bsica factvel. Considere agora o ponto F, que tambm obtido pela interseo de duas retas, 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
424
3 xN
B

xB

(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
1 1 0

3 0 1

x1 6
x = 4
4
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 vrtices, 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 centenas 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 vrtice 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 bsicas 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 corrente 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 em que
x N

x B = B 1b 0

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
B
N
x N

(2.32)

(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
T
T xB
= c B c N x = c B x B + c N x N
N

(2.33)

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

(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 lineares BT = cB, que obtido ao se tomar a transposta de T = cBT B 1 e multiplicar ambos os termos 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
1

(2.35)

T
Definio 2.7 (custos relativos) Os coeficientes cN j = (c N j a N j ) das variveis no-bsicas na funo 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
3
x1
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
+ x4
=3
x1
+ x5 = 72
x2
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 retas 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:
=4
x1+ x2
=3
x1
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:
B = a B1

aB2

cTB = cB1 cB 2

a B 3 = [a1 a 2

cB3 = ( c1 c2

1
a5 ] = 1

0
c5 ) = ( 2

1 0
1

0 0 , N = a N 1 a N 2 = [a3 a 4 ] = 0

0
1 1
T
1 0) , c N = cN 1 cN 2 = ( c3 c4 ) = (0

0
1 ,

0
0) .

T
Para o clculo dos custos relativos cN j = (cN j a N j ) , j=1, 2 (lembre-se de que n m = 2),
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

=c B
T

T
B

0 1 0
= (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 sistema 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 eliminao so desnecessrias):
3 = 0
2 = 1 + 3 = 1
2 +3 = 1
1 + 2 = 2
1 = 2 2 = 1.
Podemos aplicar o mtodo de eliminao de Gauss, sem perda de generalidade, na matriz aumentada 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 matriz 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 tcnicas avanadas para resoluo de sistemas lineares.
Com o vetor multiplicador simplex calculado, podemos determinar facilmente os custos relativos para todas as variveis no-bsicas:

78

Pesquisa Operacional

j = 1: c

1
= c3 = c3 a 3 = 0 ( 1 1 0) 0 = 1

0
T

N1

0
j = 2 : c = c4 = c4 a 4 = 0 ( 1 1 0) 1 = 1 .
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.
T

Retomemos as expresses (2.35) e (2.36). Sabemos que x N j 0 (todas as variveis do problema 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 soluo 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 soluo 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 tima, ento (cN j T a N j ) 0 , j = 1, ..., n m. Porm, podemos ter uma soluo tima degenerada 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 degenerada 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 partio bsica: B1 = 3, B 2 = 4, B 3 = 5, N1 = 1, N 2 = 2.
Com essa partio, temos:

B = a B1

a B2

N = a N1

cTB = cB1

cB2

cTN = cN1

1 0 0
a B3 = [a3 a 4 a5 ]= 0 1 0 ,
0 0 1
1 1
a N 2 = [a1 a 2 ] = 1 0 ,
0 1

)
) = (c

cB3 = ( c3

c4

cN 2

c2 ) = ( 2 1) .

c5 ) = (0 0 0)

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 ;

0

j = 2:

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

1
0 = 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 valor 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, supomos 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)):

+ K + cNnm {
0 + L + cNk {
0 =
f (x) = f (x ) + cN1 {
xN1

xNk

xNnm

) + cN k < f (x
)
= 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 justifica 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 bsicas xB tambm devem ser alteradas, de modo que o sistema Ax = b seja satisfeito (reveja a soluo geral (2.31)). A estratgia simplex equivalente a alterar as variveis no-bsicas para:

xN1 0
M

M
x N = xN k = k


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
123

(2.37)

(2.38)

em que y = B -1a N k . A identidade anterior decorre de definio da matriz no-bsica N e da definio 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

xB

= mnimo i tal que yi > 0 .


yl
yi

xBl

(2.39)

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 ( comum 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

0
T

T
B

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)

0
T

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 funo 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
x B
4 3
= mnimo 1 , 2 = mnimo , = 3 = 2
y2
1 1
y1 y 2
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

Retomemos a expresso (2.39). Com o valor de =

xBl

, a varivel bsica xBl se anula e a variyl


vel no-bsica x N k torna-se positiva. De fato, da expresso (2.38), temos:
x
xB l = xB l yl = xB l yl ( yBll ) = 0 ,
l -sima varivel bsica:
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-bsicas. 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:
,L , a Bm ]
B = [a B1 ,L , a Bl ,L , a Bm ]

B = [a B1 ,L , a Nk

l sima coluna

N = [a N1 ,L , a N k ,L , a N nm ]

N = [a N1 ,L ,

,L , a N n m ] .

a Bl
{

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

B = a B1 a B2 a B3

1 1 0
= [a1 a 2 a 4 ] = 1 0 1
0 1 0

cTB = cB1 cB2 cB3 = ( c1 c2 c4 ) = ( 2 1 0)

N = a N1 a N 2

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

1 0
= [a 3 a 5 ] = 0 0 ,
0 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:
12
4


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

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



7
5
1 1 1 2
2

1 1 0

1 0 1
0 1 0

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,

= c B = [ 2
T

T
B

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

0
T

cN 2

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

1
T

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
1

Clculo da direo simplex: y = B a5 =
= 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, portanto, temos a nova partio bsica:
(N1, N2) = (3, 4).
(B1, B2, B3) = (1, 2, 5)
Com essa partio, as novas matrizes bsica e no-bsica so dadas por:

B = a B1 a B2 a B3

1 1 0
= [a 1 a 2 a 5 ] = 1 0 0
0 1 1

N = a N1 a N 2

1 0
= [a 3 a 4 ] = 0 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 procedimento 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 propriamente 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 B

= mnimo i tal que y i > 0, i = 1, ..., m (a varivel xBl sai da base)


yl
yi

x Bl

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 coeficientes esto representados na Tabela 2.13.
Tabela 2.13
Dados do problema.

Min f

x1

x2

x3

x4

x5

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,
(N1, N2) = (1, 2),
(B1, B2, B3) = (3, 4, 5),
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
B1=3

bsicos
B2=4

B3=5

no-bsicos
N1=1
N2=2

[B | N]

1
0
0

0
1
0

0
0
1

1
1
1

1
1
1

6
4
4

[cB | cN]

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 ,

1
T

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

1
T

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:
e
x2 = .
x1 = 0
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
x B
6 4
= mnimo 1 , 3 = mnimo , = 4 = 3 . (a varivel xB3 = x5 sai da base)
y3
1 1
y1 y 3

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}:
(N1, N2) = (1, 5),
(B1, B2, B3) = (3, 4, 2)
{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
B1=3

bsicos
B2=4

B3=2

no-bsicos
N1=1
N2=5

[B | N]

1
0
0

0
1
0

1
1
1

1
1
1

0
0
1

6
4
4

[cB | cN]

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 .

1
T

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 variveis 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
y1 2

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
B1=1

bsicos
B2=4

B3=2

no-bsicos
N1=3
N2=5

[B | N]

1
1
1

0
1
0

1
1
1

1
0
0

0
0
1

6
4
4

[cB | cN]

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),

c3 = c3 a3 = 0 (

3
2

1
0 12 ) 0 = 23 ,

0

c5 = c5 a5 = 0 (

3
2

0
0 ) 0 = 12 .

1

Como min {c N j , j = 1, 2} =

1
2

1
2

> 0 , segue-se que a soluo atual,

x1 1
x B = x4 = 8

x2 5

x3 0
x N = = ,
x5 0

Captulo 2: Otimizao linear

ou

89

x1 1
x 5
2
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 diferente 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 poderia ter sido percorrida se, em lugar de escolhermos k = 2 na primeira iterao (segunda varivel 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 terceira 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),
Soluo bsica: xB = (x2, x1, x5)

(N1, N2) = (4, 3).

1 1 0

Resolva o sistema BxB = b, cuja matriz aumentada dada por: 1 1 0


1 1 1

4 , que pode ser


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 so0 0 1 0
T
T

luo = (1 0 0).
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
x B = x1 = 5

x5 8

ou

x4 0
x N = = ,
x3 0

x1 5
x 1
2
x = x3 = 0 ,
x 0
4
x5 8

tima.
A otimalidade na ltima iterao decorreu do fato de a funo objetivo, em termos das variveis 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 podem 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, ento xBi < 0 e, portanto, a soluo se torna infactvel. Nesse caso, o problema no apresenta mltiplas 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 coeficientes 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
8
1 1 4
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
e obtenha = .
0
1 1 0

Resolva o sistema BT = cB, cuja matriz aumentada

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
0 1
1
e obtenha y = .
0
1 1 1
1

Resolva o sistema By = a2, cuja matriz aumentada

Temos ento que, se aumentamos o valor da varivel x2, a funo objetivo decresce (custo relativo negativo). Note que x2 pode crescer indefinidamente, j que a direo simplex no tem componentes 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.

A
Min f

x1

x2

x3

x4

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 podem envolver dezenas, centenas ou milhares de variveis e restries. Com os computadores disponveis 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 (eliminao 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 computador 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 bsica. 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 inversa, 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 envolvidas 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 problemas 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 (poucas, 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 tamanho 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 computador, 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 descrever 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 tabelas 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 sistema 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 bsicas. Em uma tabela simplex, a matriz dos coeficientes das variveis bsicas sempre a matriz identidade. 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 nobsicas x1, x2 para que tenhamos uma soluo que satisfaa o sistema Ax = b. Escrevemos os comentrios 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 (lembrese 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 (diminuir 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 funo 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

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 (mantendo-se x1 = 0), os valores das variveis bsicas (x3, x4, x5) so alterados e podem aumentar ou diminuir, 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:
(a12 > 0)
x3 = b1 a12 x2 = 6 x2 0
(a22 < 0)
x4 = b2 a22 x2 = 4 + x2 0
x5 = b3 a32 x2 = 4 x2 0
(a32 > 0).
Das desigualdades anteriores, conclumos que apenas as variveis bsicas x3, x5 limitam o crescimento de x2, isto ,
b
como a12 > 0, ento b1 a12 x2 0 implica x2 a121 , portanto, x2 6,
como a32 > 0, ento b3 a32 x2 0 implica x2 a323 , portanto, x2 4.
Note que, como a22 < 0, ento a varivel x4 cresce com x2, portanto, no limita o aumento em x2.
b

Soluo tima ilimitada: Se ocorresse o caso ai2 0, i = 1, 2, 3, ento a varivel x2 poderia crescer 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 valor, 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 limites), 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 tnhamos 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 variveis 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, digamos, 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
b
bl
b
= mnimo{ aiki tal que aik > 0, i =1,L ,m} . Com xk = allk , a varivel bsica na linha l se
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 soluo 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 identidade, 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 varivel bsica x2 deve ser transformada na terceira coluna da matriz identidade (a varivel x5 bsica 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 elementares 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, mantendo-se x5 = 0, faz decrescer a funo objetivo taxa de 3 (Tabela 2.21). As equaes do sistema 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

x3

x4

VB

x5

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

x2

x3

x4

x5

VB

x3

x4

x2

f+8

Captulo 2: Otimizao linear

97

portanto, o valor mximo para x1 dado por: a111 = 22 = 1. Com este valor para x1, a varivel bsica na primeira equao x3 = 2 2x1 = 0, isto , a varivel bsica x3 se anula, enquanto a varivel 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 equao), 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:
b

f = 11 + 3 x3 + 3 x5

2
2
1
1
x1 = 1
x +
x
2 5
2 3

x4 = 8 + 0x3

x5

x2 = 5 1 x3 1 x5
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 relativos 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-negativos (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

VB

3
2

3
2

x1

1
2

x4

x2

1
2

1
2

f+11
1
2

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
= mnimo{ abiki tal que a ik > 0, i = 1, L , m} (a varivel bsica da linha l sai da base).
a lk
4. Atualize a tabela simplex (pivotamento no elemento ( l, k )). A varivel xk passa a ser a varivel 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), ento a varivel x2 pode crescer indefinidamente sem que nenhuma varivel bsica se torne negativa, 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

VB

x3

x4

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

x2

x3

x4

VB

x1

x4

b
f+4

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 inicial (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 bsica 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. Considere 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 partio nas colunas da matriz A, A=[B N], tal que exista B1 e xB= B1b 0, isto , uma partio 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 seleo 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 envolver a resoluo de C1020 =

20!
= 184.756 sistemas de equaes lineares 1010. Para pro10!(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
equivalente a
x0

Ax + x f = b
x 0, x f 0 .

No entanto, se o problema est na forma de igualdade, no h variveis de folga. Assim, introduzimos 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 objetivo, 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 soluo tima desse problema deve (se possvel) ter yi = 0, i = 1, ..., m. Os coeficientes na funo objetivo 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 utilizadas na construo da base inicial, sendo complementadas com variveis artificiais. O exemplo 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

2x1 x2 + 3x3 + x4
xi 0, i = 1,..., 6

=3

+ x6 = 4

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 exemplo, podemos definir, no caso B, as variveis bsicas por xB = (x4, x5) ou xB = (x5, x4). O problema 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 Exemplo 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 (nulas, conforme o novo objetivo), e uma base com as colunas originais de A obtida (algumas dificuldades 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, temos 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 problema 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
B=

1 0

1 1 1
e N=
.
2 1 3

1a Iterao
Soluo bsica:
0 1

Resolva o sistema Bx B = b , cuja matriz aumentada

1 0

4
3
e obtenha a soluo: x B = 3 .
4

Teste de otimalidade:
i) vetor multiplicador: Resolva o sistema B T = c B , cuja matriz aumentada
1
tenha = ,
0

0 1 0

e ob1 0 1

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

Direo simplex: Resolva o sistema By = a1 , cuja matriz aumentada

1 0

2
y = .
1
Tamanho do passo:
xB
= min i
yi

xB

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

Atualizao
B1 = 1 B2 = 5
1 1
B=

2 0

1
e obtenha
2

N1 = 4 N 2 = 2
0

N3 = 3.

e N =
.
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
12
1 1 1
Direo simplex: Resolva o sistema By = a 2 :
e
obtenha
=
y
3 .

2
2 0 1
Tamanho do passo
xB
xB

1
= min i y i > 0 = min 3 ; = 23 = 2 ( xB2 = x5 sai da base).
y2
2
yi

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 original e penalizar exageradamente as variveis artificiais de modo que estas sejam nulas na soluo 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 utilizado) deve orientar as trocas de bases de modo a substituir as colunas artificiais por colunas legtimas, 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, possvel 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 sejam altos. Por outro lado, se otimizarmos apenas o custo de estoque, encontraremos uma soluo 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 custo com as preparaes. Dizemos, ento, que esses objetivos so conflitantes e geralmente impossvel 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 irrigao de lavouras, o abastecimento e a recreao, e vice-versa. Da mesma forma, o alto lucro desejado 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 necessrio analisar o compromisso (em ingls, trade-off) entre os objetivos envolvidos. O exemplo a seguir 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.
Tipo de investimento

Taxa de
retorno(%)

Parte
lquida(%)

Capital
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 investimento do banco, tais como:
(caixa) A reserva disponvel em caixa deve ser de pelo menos 14% dos depsitos em contascorrentes, 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 otimizao 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 satisfeito 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 encontrar 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 originais 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 variveis 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 artificiais 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 estratgia de converter mltiplos objetivos em um nico objetivo. O mtodo dos pesos considera 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 importncia 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 mesma 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
(0,005x2 + 0,04x3 + 0,05x4 + 0,075x5 + 0,1x6 + 0,1x7 + 0,1x8) y2 0,8
20
1
(x6 + x7 + x8) y3 7
20
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 importante, 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 objetivo sujeito condio de que o desvio do primeiro objetivo seja mnimo (isto , o valor y1 fixado 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. Suponha que o decisor estabelea a seguinte prioridade entre as metas: a meta 1 (lucro) mais importante 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 (inicialmente 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 modelo 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
(0,005x2 + 0,04x3 + 0,05x4 + 0,075x5 + 0,1x6 + 0,1x7 + 0,1x8) y2 0,8
20
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 requerido para a solvncia e o capital do banco igual a 0,919 (meta 2). Finalmente, resolvemos o modelo 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
(0,005x2 + 0,04x3 + 0,05x4 + 0,075x5 + 0,1x6 + 0,1x7 + 0,1x8) y2 0,8
20
1
(x6 + x7 + x8) y3 7
20
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 hierrquico 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 problema sem se preocupar com a otimizao do problema. Em outras palavras, se houver vrias solues 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+ y3 ) 1f1(x) + 2f2(x) + 3f3(x).
niente considerar: minimizar (x, y) = w1y1 + w2y2 + w3(
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 mistura (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 associado a especificaes tcnicas do suco e refere-se a minimizar o desvio do ratio do suco (relao 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 multicritrio, entre eles, THOR, ELECTRE, DEA etc.25

2.10 DUALIDADE
Estudamos nas sees anteriores problemas de otimizao linear que, com simplificaes, modelam 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 determinado 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 produo, 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 polticas 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, chamado 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 desenvolvimentos 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 mnimo. 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
F1 = , F2 =
0

1
, F3 =
2

0
,
3

ou seja, o primeiro padro de corte produz 2 sub-bobinas de 0,4m e nenhuma de 0,3m, o segundo padro produz 1 sub-bobina de 0,4m e 2 sub-bobinas de 0,3m, e o terceiro padro produz somente 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

( )

52
0
54
108
x
+
0 1 53 x2 + 109 x3 = 120
x1 0, x2 0, x3 0

ou

= 108
54 x1 + 52 x2

3
9
x + 10 x3 = 120
5 2

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 houver um aumento na demanda de uma das sub-bobinas, qual o impacto disso sobre a necessin
dade de cortar mais bobinas?
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 perturbao 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 associado, 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 chamada 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)
TA)x + Tb.
= (cT
Seja A = [a1, a2,..., an], em que aj a j-sima coluna da matriz A e c = (c1, c2, ..., cn), ento:
TA) = (c1
Ta1, c2
Ta2 ... cn
Tan)
(cT
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

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:
Minimizar L(x, ) = x1 + x2 + x3 + 1y1 + 2y2
x1 0, x2 0, x3 0

g(
) =
em que y1 = 108

4
5

x1

2
5

x2

y2 = 120

3
5

x2

9
10

x3.

112

Pesquisa Operacional

Substituindo y1 e y2 na funo lagrangiana:


) = Minimizar L(x, ) = [(1 54 1) x1 + (1 52 1 53 2) x2 + (1 109 2) x3] + (1081 + 1202)
g(
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
) simples de ser resolvido. Se algum coeficiente das variveis for negativo,
determinao de g(

ento g() = . Por exemplo, se 1 = 5, 2 = 0, ento o coeficiente de x1 1 54 1 = 3, e a


) = . Por outro lado, se 1 = 54 , 2 = 56 , ento
minimizao faz com que x1 = , de modo que g(
4
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) se altere,
veis x1 e x2 podem assumir quaisquer valores no-negativos sem que a funo dual g(
). A prienquanto o coeficiente de x3 : 1 109 2 = 14 > 0, o que implica x3 = 0 para minimizar g(
meira parte de L(x, ), que depende de x1, x2, x3, sempre ou zero. Se for zero (como ocorre 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 minimizao). 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 mnimo 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 (Figura 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(
{o termo b Ax se anula}
min{Ax = b, x 0} cTx + T(b Ax)
T
= min {c x, sujeito a: Ax = b, x 0}
{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).
) fornece um limitante inferior para a funo objetivo
Em outras palavras, a funo dual g(
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, define o problema dual lagrangiano, ou simplesmente problema dual, dado por:
)
Maximizar g(

Rm.
As variveis (1, 2, ...,m) so chamadas variveis duais.
) f(x), fundamental para escrever o problema
Nota: A desigualdade na propriedade 2.5, g(
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 influenciam o sinal das variveis duais. Por enquanto, devemos ter em mente que restries de igualdade 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,
Tai < 0, ento g(
) = ,
ento, minx 0 (ci Tai) xi = . De outra forma, se existe i tal que ci
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 so1
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 sobre as variveis duais ci Tai 0, ou seja, o problema primal de minimizao e o sinal da varivel 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,
T
) = b. As n desigualdades podem ser escritas em notao matricial:
ento g(
Ta1 Ta2 ... Tan) (c1 c2 ... cn) TA cT.
Ta1 c1, Ta2 c2, ..., Tan cn (
Tomando-se a transposta de ambos os lados da ltima desigualdade matricial, segue-se que:
AT c.
) seja finita, devemos escoExemplo 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

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:
) = bT
Maximizar g(
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 chamado 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
3
5 1 + 5 2 1
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
3
5 1 + 5 2 + 2 = 1
0 + 9 + = 1
3
1 10 2
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
*) = 108
e 3, cuja soluo *1 = 54 , *2 = 56 . O valor da funo objetivo dual nesta soluo g(
5
5
+ 120 6 = 235. Reveja o Exemplo 2.36, em que f(x*) = 235. Isso antecipa uma proprieda4
*), 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 perguntar 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 problema 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 tipos. Entretanto, para tornar mais clara a construo de problemas duais de diversos tipos, repetimos 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 sobre o dual. J sabemos que restries de igualdade no primal levam a variveis duais livres de sinal. 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 nopositividade sobre a varivel dual associada quela restrio (isto , 2 0). O mesmo procedimento (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 estudemos o efeito sobre o sinal da varivel dual.
Minimizar f(x) = c1x1 + c2x2 + 0x3
Minimizar f(x) = c1x1 + c2x2
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

Maximizar g(1, 2) = b11 + b22


a111 + a212 c1
a121 + a222 c2
01 12 0,

117

Maximizar g(1, 2) = b11 + b22


a111 + a212 c1
a121 + a222 c2
2 0.

Portanto, uma restrio do tipo no problema primal (minimizao) leva condio de nonegatividade sobre a varivel dual associada quela restrio (2 0). Nos problemas anteriores,
envolvendo desigualdades nas restries do problema primal, consideramos sempre a minimizao 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. Considere o problema primal (maximizao) com uma restrio do tipo e reescrito na forma padro:
Minimizar f(x) = c1x1 c2x2 0x3
Maximizar f(x1, x2) = c1x1 + c2x2
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 eliminados. Para isso, multiplicamos as restries e a funo objetivo por 1, invertendo as desigualdades 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 minimizao. 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 possvel determinar o problema dual para qualquer problema primal.
Resumo da seo

Para um problema de otimizao linear em sua forma padro, chamado problema primal, podemos definir um outro problema de otimizao linear, chamado problema dual:

118

Pesquisa Operacional

Problema primal:
Problema dual:
T
) = bT
Maximizar g(
Minimizar f(x) = c x
Ax = b
AT c.
x 0,
Isto , o problema dual construdo da seguinte forma (primal na forma padro: minimizao, 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 desigualdade), 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 problema 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 precisamente 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

Livre

Restrio

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)
Maximizar g(
) = 31 + 52 + 23
21 + 32 + 3 1
1 + 42 3 2
1 0, 2 0, 3 0.
b) Primal:

(devido ao primal minimizao)


(devido s variveis primais xj 0)
(devido s restries primais )

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)
Minimizar g(
) = 31 + 52 + 23
21 + 32 + 3 1
1+ 42 3 2
1 0, 2 0, 3 0.
c) Primal:

(devido ao primal maximizao)


(devido s variveis primais xj 0)
(devido s restries primais )

Maximizar f(x) = x1 + 2x2


2x1 + x2 + x3 3
5
3x1 + 4x2
x1 0, x2 livre, x3 0.

Dual: (problema de minimizao com trs restries e duas variveis)


Minimizar g(
) = 31+ 52
21 + 32 1
1 + 42 = 2
1 0
1 0, 2 0.

(devido a x1 0)
(devido a x2 livre)
(devido a x3 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 conjunto 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:
Rm tal que AT c}
D = {
Assim, a propriedade 2.5 pode ser reescrita como:
g(
) f(x), D, xP
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:
) = 1 + 2
Minimizar g(
Maximizar f(x) = x1 + x2
x1 + x2 1
1 + 2 1
1 22 1
x1 2x2 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) um limitante inferior para
gue diretamente da propriedade 2.5, pois, se existe D, ento g(

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
) se e somente se no existir soluo
tem soluo tima se e somente se P = (isto , g(
factvel primal).
Observe a simetria desses resultados (revisite o Exemplo 2.41 e troque primal por dual). As propriedades 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 visto 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 problemas (primal ou dual) for infactvel, ento o outro no tem soluo tima (seja porque tambm 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
) < (pois
que f(x) > ). Assim, como P e D , da propriedade 2.9, segue-se que g(
) , ento P = , o que resulta em um absurdo, uma vez que P ), ou seja, o problese 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(
) f(x), para todo D e para
A validade da propriedade 2.11 decorre da propriedade 2.5: g(
todo xP, pois impossvel diminuir f(x) abaixo de f(x*). Se fosse possvel, ento existiria xP
*), o que contraria a propriedade 2.5. A recproca da propriedade 2.11
tal que f(x) < f(x*) = g(
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(
T
T
que implica (c A)x = 0. O vetor cT TA o vetor das variveis de folga do problema dual:
a1T c1
a1T + 1 = c1
T
T
a + 2 = c2
a 2 c2
T
2
A c
M
M
T
a c
aT + = c
n
n
n
n
n
1 0, 2 0,K , n 0.
T
T
TA = (c1
Ta1 c2
Ta2 ... cn
Tan), segue-se que:
Como a j = a j e cT
TA)x = 0 (c1 Ta1) x1 + (c2 Ta2) x2 + ... + (cn Tan) xn = 0
(cT
T
1 x1+2 x2+ ... +n xn = 0, em que j = cj a j 0.

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, satisfeita 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 respectivamente, se e somente se:
Ax = b, x 0
(x factvel primal)
T
= c, 0
factvel dual)
(
A +
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 resoluo 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 princpios 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:
Dual: Maximizar g ( ) = 1081 + 120 2
Primal: Minimizar f (x) = x1 + x2 + x3

= 108
54 x1 + 52 x2

3
9
5 x2 + 10 x3 = 120

x1 0, x2 0, x3 0,

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

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 verifique 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 bsicas) fazem com que as restries duais sejam satisfeitas com igualdade (dizemos que so restries ativas), resultando em um sistema de equaes lineares:
4
5
2
5

1
=1
3
1 + 5 2 = 1

(1 = 0)
(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 solues 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
T
T
T
T
T
T
A nas folgas complementares x=0, obtemos (c
A)x=0 ou,
Substituindo =c
).
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 soluo 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 problema 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
= 108
54 x1 + 52 x2

3
9
5 x2 + 10 x3 = 120

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

e a matriz bsica:
.

124

Pesquisa Operacional

O vetor multiplicador simplex dado por:


5

T = cB B 1 = (1 1) 4
0

56
=
5
3

(54

5
6

que coincide com a soluo tima calculada no Exemplo 2.39.


n
T 1
T
A validade da propriedade 2.14 vem do fato de que o vetor multiplicador = cB B uma
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 (restries ativas em ). Considerando as condies de otimalidade satisfeitas (supondo uma base tima 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 nobsicas 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 soluo tima.
O mnimo da funo objetivo primal igual ao mximo da funo objetivo dual, isto , se x*
*) e vice-versa.
uma soluo tima primal e * uma soluo tima dual, ento f(x*) = g(
Se f(x) (primal ilimitado), ento o problema dual infactvel.
) (dual ilimitado), ento o problema primal infactvel.
Se g(
Ambos os problemas, primal e dual, podem ser infactveis.
O vetor multiplicador simplex na soluo bsica tima, dado por T = cBB1, uma soluo 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 recursos 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 soluo 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 objetivo representa custo (unidade monetria $), ento ibi tambm deve ser uma grandeza na mesma 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 : (unidade 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
1
2
3

= 108
54 x1 + 52 x2

3
9
5 x2 + 10 x3 = 120

x1 0, x2 0, x3 0

Dual: Maximizar g ( ) = 108 + 120


1
2

=1
54 1 + 0 2 + 1
2
3
5 1 + 5 2 + 2 = 1
0 + 9 + = 1
3
1 10 2
1 0, 2 0, 3 0 ,

com soluo tima primal, x1 = 35, x2 = 200, x3 = 0 e soluo tima dual = (54 56 )T. A unidade 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 tendncia, ou seja, no provoca mudana na soluo tima, com 1 = 0, isto , mantendo-se fixa a demanda do item 1:
5 56
, ento:
5
0 3

Como B 1 = 4

35 56 2
35 54 56 0

+
x B = B (b + ) = x B + B =

=
5
5

200 0 3 2
200 + 3 2
1

(2.41)

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


x1 = 35 56 2 0
x 2 = 200 + 53 2 0
e
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 atender 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 demandados). 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 ilustra perturbaes em b2 no espao dual.
Os vetores a2 e b + se alinham com 2 = 42 (o leitor pode verificar que 270a2 = b + ) quando 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

restrio deixa de ser ativa e a terceira torna-se ativa): B = [a 2 a3 ] = 53


5

Figura 2.43

0
e a soluo tima dual
9
10

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 objetivo 109 por tonelada de sub-bobina do tipo 2 demandada, ou seja, para cada tonelada demandada 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).
) (o problema primal torna-se infactvel, j que b2 = 120 + 2 < 0). Podemos
Neste caso, g(
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 determinados 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 atividades 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 permanecem 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 otimizao linear. Deseja-se agora analisar o efeito da alterao de algum coeficiente da funo objetivo, 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 associado partio bsica tima no se altera e apenas o custo relativo da varivel xk, que denotamos 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 alterao 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 necessariamente < 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 aumentada 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 produto (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 produtos iniciais em sua forma padro e sua soluo tima so dados a seguir (ver tambm Exerccio 2.10).
Maximizar f(xluxo, xbsico) = 100 xluxo + 50 xbsico
10 xluxo + 8 xbsico + x1
= 25.000
+ x2
= 4.500
xluxo + xbsico
xluxo
+ x3
= 1.500
+ x4 = 6.000
xbsico
xluxo 0, xbsico 0, xj 0, j = 1, ..., 4,
cuja base tima e as solues bsicas timas, primal e dual, so dadas por:

B = [aluxo

10
1
absico a2 a4 ] =
1

8 0 0
1 1 0
, xB =
0 0 0

1 0 1

xluxo 1500
x
1250
basico =
, =
x2 1750
x 4750
4

1 254
0
2 = 75 .
3 2
0
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 produzida 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
+ x2
= 4.500
xluxo + xbsico + xsluxo
+ x3
= 1.500
xluxo
+ x4 = 6.000
xbsico
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:

lsluxo Tasluxo = lsluxo

(254

75
2

16

1
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
T
r j

Como er a r-sima coluna da matriz identidade, ento o produto e y fornece o r-simo elemento 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 principais 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 soluo 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 problema dual, novas restries ao problema primal implicam novas variveis duais, de modo que a soluo 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 Captulo 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:
Minimizar f(x) = 2x1 + 3x2 + 2x3 + x4
x1 + x2 + 2x3 x4 = 2
2x1 + x2 x3
=1
x1 0, x2 0, x3 0, x4 0

Dual:
Maximizar g(
) = 21 + 2
1 + 22 2
1 + 2 3
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 Figura 2.45, apresentamos a resoluo grfica do problema dual.
Analisemos inicialmente o vrtice timo, obtido pela interseco das retas:
1 + 2 = 3
( aT2 = c2 )
( aT3 = c3 ),
21 2 = 2
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 ,
*) (veja a propriedade 2.13).
o que coincide com g(

Figura 2.45 Soluo grfica do problema dual.

Captulo 2: Otimizao linear

131

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


e
N = [a1 a4]
B = [a2 a3]
em que as colunas bsicas so formadas pelos coeficientes das restries ativas no dual. Note tambm 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 permite determinar a soluo tima primal.
Analisemos agora um outro vrtice dual factvel, porm no timo, obtido pelas seguintes restries ativas:
( a1T = c1 )
1 + 22 = 2
1 + 2 = 3
( aT2 = c2 ),
cuja soluo = 4 , = 5 e o valor da funo objetivo dual
1

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 combinao linear no-negativa de a1 e a2. Uma das variveis do sistema linear a1x1 + a2x2 = b ser negativa (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 melhor. 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 longo 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 perturbar 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:


T
a1 = c1 ,
T
a 2 = c2 .

0,

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 transposta 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
B = [a1 a 2 ] =

2 1

1
e B1 = 2 3
3

3
1
3

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


13
1 = 1
3

23
2 = 1 .
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(
) = g( ) xB1 =

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 reviso do que este exemplo simples nos sugere:

134

Pesquisa Operacional

Um vrtice dual factvel obtido por um conjunto de restries duais ativas, as quais definem 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 soluo tima dual.
Se no, isto , se x B tiver algum componente negativo, digamos, xBl < 0, ento uma estratgia simples, chamada estratgia dual simplex, permite perturbar a soluo para encontrar uma nova soluo melhor.
A estratgia dual simplex leva a uma direo que a transposta da l-sima linha de B1 multiplicado 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 matriz A fornece uma restrio do problema dual e, portanto, a partio bsica fornece uma organizao 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 determinao 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 soluo 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:
T
T
B=
, N = [a N1 a N 2 K a N n-m ] , cB = (cB1 cB2 K cBm ) , cN = (cN1 cN2 K cNn-m )
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 .
T
(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. Portanto, a condio de otimalidade (ver propriedade 2.3) satisfeita.
(iv) O mtodo simplex (Seo 2.6) trabalha com a soluo bsica primal factvel, isto ,
Ta < 0 , o que significa
x B = B1b 0 e admite algum custo relativo negativo cN j = cN j
Nj
T
que a restrio dual a N j cN j est violada. Quando todos os custos relativos so no-negativos (ver (iii)), a soluo bsica dual factvel e o mtodo simplex pra: a soluo tima 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
= (B 1 ) T c factvel. Se x =B1b0 (isto , a soluo
que a soluo bsica dual associada
B
B
bsica primal associada factvel), ento e x B resolvem o problema dual e primal, respectivamente.
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 nobsicas 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 aumentar 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 restries 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 lineares:
(2.44)
BT l = e l .
A funo objetivo para essa soluo perturbada vale:
) = g( + l ) = bT( + l ) = bT + bT l
g(
= g( ) x
(2.45)
Bl

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
T
Analisemos cada uma das restries no-bsicas: a N j cN j , j = 1, ..., n m. Substituindo
(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)
T
T
Como, por hiptese, a soluo dual factvel, ento a c . Assim, se a 0, j = 1,
Nj

Nj

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
aNj
T
l

c N j
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
Tl a N k

c N j

tal que Tl a N j > 0 .


= mnimo T
j =1,..., n m
l a N j

(2.47)

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 deixou de ser ativa: a TB l = c B l , conforme a estratgia dual simplex (2.42), isto :

aTNk = cNk
T
a Bi = cBi , i = 1, ..., m, i l

(2.48)

Captulo 2: Otimizao linear

137

Com isso, m restries duais so ativas em = + l (satisfeitas com igualdade, reveja as Figuras 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


T
a Bm
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 trocado 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

x )Tx = cB. A matriz Bx invertvel, de modo que A = [Bx Nx ]


e o sistema (2.48) reescrito como (B
x coincide com N, exceto pela k-sima coluna (isto , a N k ) que
uma partio bsica, em que N
trocada por a B l . Esta a propriedade 2.4 e os passos para mostrar sua validade esto no exerccio 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):
x ) = g( ) x Bl g( ).
g(
A desigualdade anterior ser estrita se > 0 em (2.47). Com a nova partio bsica, podemos
x xB =b, e, se xB / 0,
repetir o procedimento anterior, isto , calculamos a soluo bsica primal B
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 detectada (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 procedimento 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}
T
Se l a N j 0, j = 1, ..., n m, ento pare. {o problema primal infactvel}
caso contrrio, determine

c N k
Tl a N k

c N

= mnimo T j tal que Tl a N j > 0


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
x1

+ x2
+ 3 x2

4
3

x1 0 , x2 0

Dual:
Maximizar g(
) = 4 1 + 32
21

+ 2
+ 3 2

1
1

1
1 0, 2 0

2 x1
x1

+ x2
+3 x2

x3

=4
x4

=3

x1 0, x2 0, x3 0, x4 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 problema 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 variveis de folga introduzem uma matriz bsica (ver Exerccio 2.33). Desse modo, a Fase I, que consiste 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 variveis de folga x3 e x4.
1a Iterao: partio bsica: B1 = 3, B2 = 4, N1 = 1, N2 = 2
1 0
B = [a3 a4] =

0 1

2 1
N = [a1 a2] =

1 3

cB = (0 0)T

cN = (1 1)T

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}
T
Calculamos inicialmente: l a N j , j = 1, ..., n m
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
1 a1

(a varivel xN1 = x1 entra na base)

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.
N1 = 3, N2 = 2
B1 = 1, B2 = 4,

140

Pesquisa Operacional

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


1 1
N = [a3 a2] = 0 3

2 0
B = [a1 a4] = 1 1

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

c2 = c2 T a 2 = 1 ( 12

Passo 2 {teste de otimalidade}


2.1. {soluo bsica primal}

1
0) = 12
3

2 0 4
x
2
BxB = b: 1 1 3 , cuja soluo : x B = 1 =
1

x4
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

:
,
cuja
soluo
:
B 2 = e 2 0 1 1
2
1

Passo 4 {passo e varivel a entrar na base}


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

N1 = 3: T2 a 3 = ( 12 1) = 12
0
1

N2 = 2: T2 a 2 = ( 12 1) = 52
3
1
c
= T 2 = mnimo 12 ,
2 a2
2

1
2
5
2

1
5

(a varivel xN 2 = x2 entra na base)

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
B = [a1 a2] = 1 3

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

c3 = c3 T a3 = 0 ( 52

1
5

) 0 =

c4 = c4 T a 4 = 0 ( 52

1
5

) 1 =

141

2
5

1
5

Passo 2 {teste de otimalidade}


2.1. {soluo bsica primal}

5
x1
2 1 4
, cuja soluo : x B = = 2
5
x2
1 3 3
9

BxB = b:

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
x3 0
x* 0
4
f(x*) = x1* + x*2 =

1* 52
* = 1
5
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 chegar 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 solues 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 (denominados problemas originais):
) = bT
Minimizar f(x) = cTx
Maximizar g(
Ax = b
AT c,
x0
tenham sido resolvidos e A = [B N] uma partio bsica tima, qual esto associadas as solues 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 timas, 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):
, m+1) = bT + m+1
Maximizar g(
Minimizar f(x) = cTx
Ax + 0xn+1 = b
AT + um+1 c
0T + m+1 0
uTx + xn+1 =
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 original, 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

=
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 modificado). Essas restries ativas definem uma partio bsica para o problema primal modificado:
B
u
B

0 x B 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, ento 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 problema 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 mesmo 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 bsica 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
7x1 5x2 13
3x1 + 2x2 17
x1 0, x2 0

Minimizar f(x) = 5x1 + x2 + 0x3 + 0x4


7x1 5x2 + 1x3 + 0x4 = 13
3x1 + 2x2 + 0x3 +1x4 = 17
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
B = [a1 a2] = 3 2

1 0
N = [a3 a4] = 0 1

e as solues bsicas timas, primal e dual, so:


BxB = b:

7 5
3 2

13
111
29

,
cuja
soluo
:
=
x

B
80
17
29

7 3 5

B = cB:
, cuja soluo : =
5
2
1

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


T

13
29
18 .
29

1
13
18 13
T
c3 = c3 a3 = 0 ( 29 29 ) = 29
0
0 18
13
18
T
c4 = c4 a 4 = 0 ( 29 29 ) = 29
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 adicional. A matriz bsica dada por:
B
u
B

7 5 0
0
= 3 2 0

1
1 0 1

As solues bsicas, primal e dual, so obtidas diretamente da soluo anterior:


x1 111
29

x B 80
= x2 = 29 , em que x B o vetor das variveis bsicas na soluo tima
Primal:
xn +1 24
x5 29
primal anterior e x5 obtido diretamente da restrio adicional, x5 = 3 x1. As variveis nobsicas so as mesmas da soluo anterior: xN = (x3 x4)T.

Dual: ( T 0) = ( 13
18
0) , em que a soluo tima dual anterior, aumentada de
29
29
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
B = 3 2 0
1 0 1

1 0
N = 0 1
0 0

Passo 1 {soluo bsica dual e custos relativos}


( T 0) = ( 13

29

c3 = c3 T a3 = 0 ( 13
29

c4 = c4 a 4 = 0 (
T

13
29

18
29

0)

18
29

1
0) 0 = 13
29
0

18
29

0
0) 1 = 18
29
0

Passo 2 {teste de otimalidade}


2.1. {soluo bsica primal}
111
x1
29
80

x B = x2 = 29


24
x5
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



0 0 1 1
1
T

Passo 4 {tamanho do passo e varivel a entrar na base}


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

146

Pesquisa Operacional

N1 = 3: a 3 =

2
29

N2 = 4: a 4 =

2
29

T
3

T
3

13
c
= T 4 = mnimo 292 ,
3 a 4 j =1,...,n m 29

18
29
5
29

5
29

1
1) 0 = 292

0

5
29

0
1) 1 = 295

0

18
= 5 (a varivel xN 2 = x4 entra na base)

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

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


0 1 0 0

c3 = c3 T a3 = 0 ( 15

c5 = c5 a5 = 0 ( 15
T

18
5

0 185 )

1
) 0 = 15
0

0
0 185 ) 0 = 185

1

Passo 2 {teste de otimalidade}


2.1. {soluo bsica primal}
7 5 0 13
3
x1

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




1 0 0 3
245
x4

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 polticas 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 televiso que disputam espectadores para obter maior audincia), planejamento de estratgias militares 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 possvel 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, respectivamente. Tal jogo conhecido como jogo de duas pessoas soma-zero, porque o ganho do jogador 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 qualquer 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 combinao 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 jogar, 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 (estratgias A2 e B2) e na televiso (estratgias A3 e B3). Neste exemplo, m = n = 3, mas poderiam ser diferentes. 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 (valores 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, independentemente 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

A2

A3

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, independentemente da escolha que a empresa A fizer (A1, A2 ou A3), o pior que pode acontecer empresa 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 (critrio 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 diferentes, 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 determinadas, de escolher as estratgias A1, A2 e A3, respectivamente) escolher o melhor dos piores (critrio maxmin), independentemente da escolha da empresa B. Para isso, deve-se procurar valores
de x1, x2 e x3 que maximizem o mnimo entre:
(se a empresa B escolher a estratgia B1)
3x1 2x2 5x3
1x1 + 4x2 6x3
(se a empresa B escolher a estratgia B2)
(se a empresa B escolher a estratgia B3)
3x1 1x2 + 2x3
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 probabilidade x2 e 5% com a probabilidade x3 (ver coluna B1 da tabela). Similarmente para os demais termos da expresso acima.
A empresa B tambm pode adotar uma estratgia mista (com probabilidades y1, y2 e y3, a serem determinadas, de escolher as estratgias B1, B2 e B3, respectivamente) para escolher o melhor 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:
(se a empresa A escolher a estratgia A1)
3y1 1y2 3y3
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 probabilidade 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 jogos 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 seguinte problema maxmin:

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

Seja z = min

m
i =1

x1 + x2 + ... + xm = 1
xi 0, i = 1, ..., m.
a i1 xi ,

i =1

a i 2 xi ,...,

i =1

a x ,...,
i =1 i 2 i

a x}

i =1 in i

a in xi , o que implica:

z i =1 ai1 xi , z i =1 ai 2 xi , , z i =1 ain xi .
m

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


(A)
Maximizar z

m
i =1 i1 i
m
i =1 i 2 i

a x z
a x z

m
i =1 in i

a x z
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 jogador B podem ser determinadas resolvendo-se o seguinte problema minmax:

{ {

Min ( y1 , y2 ,..., yn ) Max

a yj,

j =1 1 j

n
j =1

a2 j y j ,...,

n
j =1

y1 + y2 + ... + yn = 1
yj 0, j = 1, ..., n,
que, utilizando o mesmo procedimento anterior, pode ser rescrito por:
(B)
Minimizar w

a yj w

j =1 1 j
n
j =1

a2 j y j w

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

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

amj y j

}}

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%, respectivamente), enquanto a empresa B deve escolher a estratgia B3 com grande chance (59,6%) e a estratgia 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 probabilidade de ocorrer o resultado aij, isto , de a empresa A escolher a estratgia Ai e a empresa B
escolher a estratgia Bj.
n
m

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 deseja produzir uma quantidade Q da mistura (por exemplo, 360kg) e os ingredientes esto disponveis 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 complemento 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 componente 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 , porcentagens 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 forma padro.
Exerccio 2.4 Considere a extenso do problema da mistura no Exerccio 2.2. Suponha que K misturas 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 mnimo. (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, referida 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 modelo 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.

Sucata

Liga
Composio Composio
mnima
mxima

0,90

0,090

0,00

0,095

0,14

0,27

0,19

0,20

Custos (R$/ton)

90

180

25

Estoque (ton)

12

Composio (%)

Lingotes

Carbono

0,0050

Silcio

Ingredientes
Grafite

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 ingredientes da classe C1, de 50% a 60% de C2 e de 30% a 40% de C3. Escreva um modelo matemtico 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 considerando 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 inj =1
gredientes da classe 1.)
Exerccio 2.7* Considere o problema da mistura no Exerccio 2.1. Em algumas aplicaes, indesejvel que um nmero grande de ingredientes seja utilizado, por questes operacionais. Suponha 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, podemos resolver problemas menores combinando apenas trs dos ingredientes que aparecem na
soluo relaxada: 123, 124, 134 ou 234, isto , resolvendo problemas com menos variveis (x1, x2, x3 ou x1, x2, x4 ou x2, x3, x4 ou x1, x3, x4) e escolhendo a melhor soluo. (Esta abordagem 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 varivel 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 Otimizao discreta.)
Exerccio 2.8* Considere a extenso do problema da mistura no Exerccio 2.2. Suponha, em adio, 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 perodos 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 perodo 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 correspondentes aos primeiros perodos so de fato implementadas. Depois de implementar as decises 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 antecipar 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 perodo 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 estoque 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 perodo, bem como as misturas atendam as especificaes tcnicas, isto , com a composio dentro 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 Estaes 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 obedecer s composies granulomtricas estabelecidas por norma tcnica, por exemplo, nas quantidades 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

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, seleo 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

Faixa granulomtrica (mm)

Volume de areia/m3
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 diferentes 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, digamos, U1 o excesso mximo aceitvel para a faixa 0,420,59 etc. Reformule o problema considerando 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 produo do fabricante de geladeiras. (a) Represente a regio factvel em um plano cartesiano e determine 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 (identifique as variveis que se anulam e considere-as no-bsicas). (d) Aplique o mtodo simplex, considerando 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 , transporte 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 demanda para o depsito 1 satisfeita). A oferta residual da pedreira 3 782 49 = 733. Continue 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 tratamento, so jogados em um rio, conforme a Figura 2.53. Os esgotos das trs cidades produzem quantidades 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 modelo 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 qualquer 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 tolerncia no Exerccio 2.14. Como a funo objetivo busca minimizar a quantidade de bobinas cortadas 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 empresa. 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 veni =1
das dos itens decorrente do uso do padro de corte 1. O comprimento, em cm, da sobra no pam

i =1

i =1

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


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 retangular 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 mquina, 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 coordenadas da nova mquina, ento a distncia entre a nova mquina e outra instalada na posio (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 devem 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 graficamente, 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 regio 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 soluo 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 problema resultante graficamente.
e. Considere perturbaes no coeficiente da terceira restrio do tipo: b3 = 1 + , 0. Represente graficamente essas perturbaes. Observe que, para valores altos de , o problema 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 valores 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 matrizes 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 ndices 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 lineares 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 otimizao 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 alternativas 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 necessariamente garante mltiplas solues timas. (Sugesto: se fizermos x5 = 0, mantendo 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 existem 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 soluo tima. Verifique, entretanto, que a condio de otimalidade no verificada. Conclua 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 iterax = [ a B1 L a Bl1 a Nk a Bl+1 L a Bm ],
o do mtodo simplex (ou dual simplex). Mostre que a nova matriz B
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 identidade apenas pela l -sima coluna:
1 L y1 L 0

M
M
B 1B = B 1a B1 L B 1a N k L B 1a Bm = 0
yl
0


123
M
M
M
y
=

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
1

ii) Mostre que a matriz E tem inversa dada por: E 1 = 0


yl
0

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
B3 B = I, do que se segue: (B)1 = E1B1, ou seja, a in12

(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

1
E1B1 = yl v l ,
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 multiplicada por yyi i-sima linha de B1. Observe o esquema prtico decorrente destas opel
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 identidade, 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 y1 x
x B1
1 L yy1 L 0 x B1
B1 yl Bl
l

M
M
M
M
M M

1
x

x B

y l x Bl
Bl

yl
0
0
l

=
=

M
M
M
M
M

0 L m L 1 x
ym

x
x
y
x Bm

Bm
Bm yl Bl

que consiste em colocar o vetor y (direo simplex) ao lado da soluo bsica x B e fazer as operaes elementares necessrias para transformar o vetor y na l -sima coluna da matriz identidade, 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,

( ) T = c TB (B ) 1 = (c B1 L c N k

v 1 y1 v
l
yl

L c Bm ) yl v l =
M

v m yym v l
l

= c Bi v i + ( c Bi y i + c N k )
m

i =1

i =1

c
il

( v i yli v l ) +
y

Bi

1
yl

c N k v l c Bl v l

vl
yl

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
i =1

Nk
c
v l , que est de acordo com (2.43) e (2.47), j que
mento anterior que: ( ) T = T +
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 mtodo simplex ou dual simplex:
T
T
1
Como = c B B =

v1

xB1

y1

v1

M
xBl

yl

v l

M
xBm

vl
M
vm

ym
f cNk

xB '1 0
M
M
xB 'l 1

v m
T

M
M
xB 'm 0
f 0

O valor da funo objetivo para a nova soluo bsica calculado por:

c
ou f = f + N k x B , que o valor obtido na ltima posio da coluna
( x) = {
f{
f ( x ) + cNk {
yl l
xB
f
l
f
yl
que contm as variveis bsicas. Esta forma de atualizar a inversa da matriz bsica, soluo bsica e vetor multiplicador conhecida como mtodo simplex revisado.
Considere a primeira iterao do Exemplo 2.26, em que a matriz bsica a identidade. A inversa da base, a soluo bsica e o vetor multiplicador simplex para a nova iterao podem ser
calculados pelo procedimento anterior:
1
0
0
0

0
1
0
0

0
0
1
0

6
4
4
0

1
1
1
2

l =3

1
0
0
0

0
1
0
0

1
1
1
2

2
8
4
8

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

0
2
x B = 8 = 0


4
2

f (x ) = 8

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 atualizaes de B-1, x B e .
Exerccio 2.27 Em um problema de minimizao com xi 0, para que g(
) seja finito, necessTai 0. Verifique as exigncias sobre para as outras condies sobre o sinal das varirio que ci
)
veis. Em resumo, para um problema de otimizao linear (minimizao ou maximizao), g(
finito se e somente se:
problema de minimizao
Tai 0
ento ci
se xi 0
Tai 0
ento ci
se xi 0
Tai = 0
se xi livre
ento ci
problema de maximizao
Tai 0
ento ci
se xi 0
Tai 0
se xi 0
ento ci
Tai = 0
ento ci
se xi livre
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 soluo 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 unicamente 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 demanda 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 (propriedade 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, biologia molecular, medicina e sade, criptografia, aviao e finanas. Uma grande variedade de
aplicaes encontrada em engenharia de produo, compreendendo planejamento e programao da produo, projeto de layout de sistemas de produo, localizao de instalaes e distribuio 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 instalar uma nova fbrica ou um centro de distribuio, e determinar as melhores rotas de distribuio 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 variveis 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 nonegativas.
Quando todas as variveis so inteiras, tem-se um problema de programao (linear) inteira (PI),
z = max cx

Ax b
x Z +n
e se todas as variveis assumem valores 0 ou 1, tem-se um problema de programao 0-1 ou binria (PB), escrito como

( PI )

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 definido 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 problema de PI ou PB. Problemas de programao inteira e combinatria so resolvidos por mtodos 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
9 x1 + 5 x2 45
( PI )
-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), observa-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

( PB)

z = max 2 x1 + 3 x2
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)}. Calculando 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

( PIM )

z = max 10 x1 + 6 x2
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
1
8
4
descritos por: X 1 = {( x1 , 0), 0 x1 5}, X 2 = {( x1 ,1), 0 x1 4 }, X 3 = {( x1 , 2), 1 x1 3 } e
4
9
9
1
1
1
1
X 4 = {( x1 ,3), 2 x1 3 }. A soluo tima x = (3 ,3), com valor z = 51 .
n
3
3
2
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
9 x1 + 5 x2 45
( PL)
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
mao inteira PI . A Figura 3.3 mostra que a soluo tima de PL x = 3

1
6
,3 , com valor
13 13

7
. 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 son
lues factveis de um problema de programao inteira vazio.
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
z = 51

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
3
2
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 evento. 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) =
se x = 0
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 superior 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 desigualdade
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 expressa pelas seguintes restries:

g ( x1 , x2 , ..., xn ) My
f ( x1 , x2 , ..., xn ) M (1 y )

(3.1)
(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 .

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
(3.4)
g ( x1 , x2 , ..., xn ) 0
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 representado 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 Figura 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 matemtica 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 podem representar, por exemplo, o custo de expanso da capacidade ou aproximar uma funo nolinear. 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), respectivamente. 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 modelada 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 deciso 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. Considere 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 programao linear, menor o esforo computacional para achar a soluo tima inteira. Portanto, o conjunto 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 prtico 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 separados), 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 problemas 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 programao 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 capital b para investimento. O projeto j tem um custo aj e um retorno esperado pj. O problema consiste 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
j =1

(M1)

ajxj b

(M2)

x Bn

(M3)

j =1

A funo objetivo (M1) expressa a maximizao do retorno esperado, e a restrio (M2) indica 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 apare1 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 outras 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 nonegativo, isto , pode-se levar diversas unidades do mesmo item na mochila. A formulao idntica 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 mximo 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

max p j xij
i =1 j =1
n

(M4)

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

Um mtodo de soluo para este problema proposto em Yanasse e Soma (1987) e Yanasse et al. (2000).
Ver, por exemplo, Ferreira et al. (1996).
Eilon e Christofides (1971).
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 somente 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 tambm o arranjo de objetos em dispositivos bidimensionais e tridimensionais,7 tais como nos problemas 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,
i =1
n

j = 1, ..., n

w j xij byi ,

i = 1, ..., n

(M9)
(M10)

j =1

(M11)
x B nn , y B n
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 terceiros. 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
i =1

xij b j ,

j = 1, ..., m

(C1)
(C2)

i =1

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) asseguram 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 similares. 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 dentro de objetos, por isso, problemas de corte e empacotamento tm sido estudados em conjunto 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 inteiras 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 corte. 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
0
1
3
0
1

a1 =
a =
a =
a =
a =
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 alternativa ao modelo de Kantorovich (ver Seo 2.2.7):
n

min x j

(C5)

j =1
n

a jxj = b

(C6)

j =1

(C7)
x Z +n
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 variveis. 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 bidimensional. 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 nmero 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

ailwrs

1 se a pea do tipo i, quando cortada com vrtice inferior esquerda com

= 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 maneira:9


m

max

v x

(C8)

i ilw

i =1 l X wY

ailwrs xilw 1,

r X , s Y

(C9)

i =1 l X wY

Pi xipq Qi , i = 1, ..., m

(C10)

l X wY

(C11)
x B m| X ||Y |
A funo objetivo (C8) representa a maximizao da utilidade total das peas cortadas. As restries (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 particular 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 industriais, 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 problemas 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

min

cij xij
i =1 j =1
n

xij = 1,

(D1)

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

xij = 1,

i = 1, ..., n

179

(D3)

j =1

(D4)
x B nn
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 discutido 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

min

cij xij

(D5)

i =1 j =1
m

xij = 1,

j = 1, ..., n

(D6)

i =1

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 problema, 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,
n
ento o exemplo no tem soluo factvel.
Designao generalizada com mltiplos recursos

Este problema envolve mltiplos recursos k = 1, ..., r, associados a cada agente i. Seja aijk a quantidade 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 aplicaes, tais como alocao de bases de dados entre ns de um sistema de computadores distribudos16 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

min

cijk xijk

(D10)

i =1 j =1 k =1
m

xijk = 1,

j = 1, ..., n

(D11)

i =1 k =1

aijk xijk bi ,
j =1 k =1
mnl

x B

i = 1, ..., m

(D12)
(D13)

A funo objetivo (D10) expressa a minimizao do custo total de designao de tarefas a agentes 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 excedida. 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 local k para o local l ckl e o fluxo de volume da facilidade i para a facilidade j fij. O problema consiste 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

min

fij ckl xik x jl


i =1 j =1 k =1 l =1
j i
lk

(D14)

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 cobertura, 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 exemplo, 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 combinatria 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 distncia 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)

+ x3

x1

1
+ x4

x2

(bairro 2)

1 (bairro 3)

x3

+ x6 1 (bairro 4)

x2 + x3

+ x6 1 (bairro 5)

(CO2)

(CO3)
x B6
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 incidncia A so dados por
1
aij =
0

se i S j
caso contrrio

Captulo 3: Otimizao discreta

183

No exemplo anterior, esta matriz dada por

1
1
A = 0

0
0

1
0
1
0
1

0
1
0
1
1

0
0
1
0
0

1
0
0
0
0

0
0
0

1
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 planejamento uma rota ou pairing, que consiste em uma seqncia de vos atendida por uma tripulao, 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 todas 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-3-5

3-5-1

17

5-1-3

1-3-6

10

3-5-2

18

5-1-4

1-4-5

11

3-6-1

19

5-2-3

1-4-6

12

3-6-2

20

5-2-4

2-3-5

13

4-5-1

21

6-1-3

2-3-6

14

4-5-2

22

6-1-4

2-4-5

15

4-6-1

23

6-2-3

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 empresa 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 transportadoras 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 empresa se contratasse uma transportadora para cada trecho de Sj. Por exemplo, se Sj contm os trechos 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 corresponde 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

max

( R j b jk ) x jk
j =1 k =1

aijk x jk 1,
j =1 k =1
JK

x B

trecho i S

(E1)
(E2)
(E3)

A funo objetivo (E1) representa a economia total obtida pela empresa de lojas de departamento. 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 disjuntos do conjunto S de forma a maximizar o valor do empacotamento. Sua formulao genrica 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. Observe, tambm, que, se a restrio (C10) do problema de corte bidimensional (Seo 3.4.2) eliminada, 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-viajante pertencem classe de problemas de roteamento em ns, e so definidos em grafos orientados 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 orientado G = (N, E), em que o conjunto N consiste de n cidades e E representa o conjunto de arestas 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 percurso denominado ciclo hamiltoniano23 do grafo G, e o problema consiste em determinar o ciclo 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 circuitos, 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:

min

cij xij

(CV1)

i =1 j >i

x +x
ji

j< i

ij

= 2, i = 1, ..., n

(CV2)

j >i

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
xij + xij 2, S N , 3 S ,

(CV4)
2
i S j S
i S j S
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, eliminam2
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

xij S 1,
i S j S
j >i

n
S N, 3 S
2

(CV5)

que corresponde a eliminar uma aresta da sub-rota. Por exemplo, a sub-rota S = {1, 2,3, 4} eliminada 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 formulao do caixeiro-viajante alterada para
n

min

cij xij
i =1 j =1
j i
n

xij = 1,

j = 1, ..., n,

ji

(CV6)

i = 1, ..., n, i j

(CV7)

i =1

xij = 1,
j =1

x B n ( n1)
e as restries (CV4) e (CV5) tornam-se

(CV8)

n
xij 1, S N , 2 S N
2
i S , j S

xij S 1,
i S j S

n
S N, 2 S
2

(CV9)
(CV10)

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 pelas 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 coordenadas ( 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
1) 1 4 9 1
2) 6 2 3 6
3) 5 11 12 5
4) 10 7 8 10

Soluo
1) x1, 4 = x1,9 = x4,9 = 1
2) x2,3 = x2, 6 = x3, 6 = 1
3) x5,11 = x5,12 = x11,12 = 1
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 admita que o grafo orientado G=(N,E) completo. O objetivo determinar m rotas, todas partindo do depsito e retornando ao depsito, de forma a minimizar a distncia total percorrida.
Este problema pode ser formulado como:
n

min

cij xij

(CV11)

i=0 j=0
j i
n

=m

(CV12)

=m

(CV13)

0j

j =1
n

i0

i =1

(CV6) (CV7)

Captulo 3: Otimizao discreta

xij S 1,
i S j S

n
S \ {0} N , 2 S
2

x B n ( n1)+ 2 n

189

(CV14)
(CV15)

A diferena do m-caixeiro-viajante em relao a um nico caixeiro-viajante expressa pelas restries (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 conjunto 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 adquirido em um subconjunto M k de mercados. O nmero de unidades do produto k a ser adquirido 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

jM k \{i}

qkj d k para todo k K e i M k . O preo de produto k no mercado 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 determinar um ciclo em G que passe pelo depsito e um subconjunto de mercados tal que todos os produtos 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

q
d
<
kj k
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 =
0 caso contrrio
1 se o n i pertence soluo
yi =
0 caso contrrio
xki = quantidade do produto pk adquirida no mercado i .

(CV16)
(CV17)

O problema pode ser formulado como:

min

ce ze + bki xki

eE

k K iM k

ze = 2 yi , i N

e ({i})

e ( S )

ze 2 yi , S M , i S

xki = d k , k K

(CV19)
(CV20)
(CV21)

i M k

xki qki yi , k K , i M k
z e B| E | , y B|M \ M

(CV18)

yi = 1 se i M * , x R+mn

(CV22)
(CV23)
(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 adquirida, 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 conjunto 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

sujeito a (CV19) e

ze S 1,

e S

iN

n
S \ {0} N , 3 S
2

z e B| E | , y B n

(CV25)
(CV26)

2. O custo de viagem uma restrio; a meta encontrar uma rota que maximize o lucro coletado, de modo que o custo de viagem no exceda um valor especificado cmax. Este problema 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 controle 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 visitada no perodo de tempo t 1 , e j visitada no perodo de tempo t. Este problema encontra diversas 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 contnua do tempo, e problemas dinmicos de caixeiro-viajante, em que novos pedidos de servio surgem 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 definidos 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 somente 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 caminho 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 contnua 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, conhecido como problema do carteiro chins, foi proposto pelo matemtico Guan em 1962, quando trabalhava 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 todos os vrtices tm grau par. O problema do carteiro chins consiste em determinar quais arestas 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 conjunto 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 arestas orientadas que entram no n v, e v o nmero de arestas orientadas que saem do n v.
Defina as variveis

1
xe =
0
1
xe =
0

se a aresta e associada aresta e escolhida


caso contrrio,

se a aresta e associada aresta e escolhida
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)

 
xe + xe 1, par (e , e ) associado a e E

(CC2)


eE


eE


 +
 = 0,
x
x
x
v N

e e  e



eS + (v )
eS + (v )
e
S
v
e
S
v

(
)
(
)





xe , xe {0,1}, e E , e E
xe +

(CC3)
(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 arcos 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

{ j :(i , j ) E }

xij

x ji = 0, i N

{ j :( j ,i ) E }

(CC6)

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 formulao do problema do carteiro chins em um grafo misto, com arestas e arcos, uma combinao 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 adicionais. Este tipo de problema tem um papel fundamental na rea de gerenciamento da distribuio 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

cij xijk

k K ( i , j ) E

= 1, i C

ijk

(RV1)
(RV2)

kK jN

d x
i

iC

ijk

Q, k K

(RV3)

jN

30 O termo roteirizao de veculos, embora no encontrado nos dicionrios da lngua portuguesa, tem sido usado como equivalente 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

ij ijk

D, k K

(RV4)

iN jN

= 1, k K

0 jk

(RV5)

jN

ihk

iN

xhjk = 0, h C , k K

x
iN

(RV6)

jN

i , n +1, k

ijk

i S j S

= 1, k K

(RV7)

n
S 1, S C , 2 S , k K
2

(RV8)
(RV9)

x B K |E|

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 superior 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 tempo 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


32 Fukasawa et al. (2005) apresentam uma nova formulao para o PRV e um mtodo exato de resoluo.

(RV12)

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 distncia 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
s10,1 = 200,95
s11 = 45, 00
s71 = 52, 21
s21 = 77,39
Rota do veculo 2: 0 9 5 8 6 10
s10,2 = 228, 21
s92 = 14,87
s52 = 51,54
s82 = 89, 02
s62 = 163,35
Rota do veculo 3: 0 3 4 10
s10,3 = 149, 09
s33 = 25, 00
s43 = 58, 24
O custo timo 428,733, e a capacidade usada dos veculos 1, 2 e 3 54, 42 e 11, respectivamente. A Figura 3.17 mostra a soluo do PRVJT. Note o cruzamento na rota do veculo 2, causado 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, respectivamente. 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 permite 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


ao nmero do veculo e ao dia de visita, respectivamente. Todas as rotas comeam em 0 e termik ,l
nam em 0. A cada arco (i, j ) est associado um custo cijkl e um tempo de viagem tijkl, que inclui
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 .
k ,l

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

ijkl ijkl

(RV13)

i C

(RV14)

k K ( i , j ) E l T

yir = 1,

rCi

xijkl arl yir = 0,


jN kK

i C , l T

(RV15)

rCi

d x

Q, k K , l T

(RV16)

D, k K , l T

(RV17)

iC

ijkl

jN

ijkl ijkl

iN jN

1, k K , l T

(RV18)

xhkjl = 0, h C , k K , l T

(RV19)

0 jkl

jC

ihkl

iN

jN

ijkl

i S j S

n
S 1, S C , 2 S , k K , l T
2

x BTK |E|

(RV20)
(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) representam 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 restries (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 custos 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 anlogo ao do PRV.
3.5.2 Localizao de facilidades

A localizao de facilidades um aspecto crtico do planejamento estratgico de empresas privadas 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 fbricas, armazns e centros de distribuio. Em diversas situaes, tais como em sistemas de distribuio, 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 importantes 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 instalaes estejam em qualquer lugar dos arcos que ligam ns de clientes, incluindo os ns dos clientes. 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)

x B|I ||J | , y B|I |

(LF5)

iI

33 Ver Galvo (2004) para uma reviso de contribuies ao estudo deste problema e outros problemas de localizao sem restrio 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 restries (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 restrio (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 modelo bsico. O problema de p-centros-ns restringe os ns de facilidades aos ns de clientes, enquanto 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
(LF6)
min r
(LF7)
r dij xij , j J
iI

(LF2)(LF5)
A funo objetivo (LF6) minimiza a distncia mxima de um cliente a uma facilidade. A restrio (LF7) expressa r como um limitante superior da distncia de cada cliente j a uma facilidade. 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 demandas 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
i I

(LF9)

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 restries (LF10) asseguram que a demanda de cada cliente j atendida. As restries (LF11) garantem 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 varivel 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

q j Qi. A resoluo do problema de

Seo 2.2.2), que tem soluo factvel se e somente se


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 partir 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 restries (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 variveis. 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
1056
993
1038 1049
938
894 1285
cij = 1192
951
1049
2085
932
864
1044
1249 1387
i = 1, ..., 5 e j = 11, ..., 20, seja
1089
382
517
28
942
1252
955
1042
975
1093 1070
cij = 953
1053
935
936
963
1285
1296
974
935

964
1044
1149
1387
981

1171
1230
1227
1478
1123

1194
1239
893
985
953

1113
1143
1179
1248
1253

1104
954
916
1102
953

1276
1222
1234
753
862

1025
944
783
826
1070

1240
664
987
1185
1041

969
1046
1247
1691
185

841
715
1054
640
847

981
924
1323
1164
1056

934
1044
1069
970
530

Para

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
Capacidade

2
1975

3
1506

4
1938

5
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 mesma 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 desse 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 localizao anteriores estavam relacionados ao custo de abertura de ns, enquanto o problema presente 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 telecomunicaes.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 ,
j N

i N

j N

36 Ver Mateus et al. (2000) para heursticas em projetos de redes de telecomunicaes.

(LF17)

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 planejamento e programao da produo. Problemas na rea de produo em geral so decompostos hierarquicamente 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 escolha 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 determinados 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: planejamento agregado da produo e planejamento de quantidades de produo. O planejamento agregado 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 agregada de demanda, por exemplo, horas de produo. O planejamento das quantidades de produo 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 estoque 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 operaes 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 perodo (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 conhecidos 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 horizonte de planejamento finito e dividido em perodos, e a demanda de cada item em cada perodo 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
xt d
=t

t = 1, ..., T ,

I 0 = IT = 0

yt , t = 1, ..., T

x R+T , I R+T , y BT

(DL2)
(DL3)
(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 estoque inicial para abater demandas no horizonte, portanto, pode-se assumir, sem perda de generalidade, 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 superior37 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 Seo 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

=1

=1

It = x d , t = 1, ..., T
e como IT = 0 , tem-se, para t = T ,
T

t =1

t =1

xt = dt
Portanto,
T

t =1

t =1

t =1

ct xt = c xt = c dt
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)

xt d yt , t = 1,..., T
=t

(DL7)

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

min

(si yit + hi Iit )

(DL9)

i =1 t =1

I it = I i ,t 1 + xit dit ,

t = 1,..., T

(DL10)

t = 1,..., T

(DL11)

i = 1,..., n,

t = 1,..., T

(DL12a)

i = 1,..., n,

t = 1,..., T

(DL12b)

i = 1,..., n,

(spi yit + bi xit ) Ct ,


i =1

xit M it yit ,

M it = min{

Ct spi T
, di },
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 capacidade 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 destes 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 estrutura 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

min

(si yit + hi Iit )

(DL14)

i =1 t =1

rij x jt dit ,

i = 1,..., n,

t = 1,..., T

(DL15)

(spi yit + bki xit ) Ckt ,

k = 1,..., K ,

t = 1,..., T

(DL16)

xit M it yit ,

i = 1,..., n,

t = 1,..., T (DL17a)

i = 1,..., n,

t = 1,..., T (DL17b)

I it = Ii ,t 1 + xit

j Si

iRk

M it = min {( min

k :i Rk

Ckt spi T
), dit },
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 restries (DL16) 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 (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 estado 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 perodo 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 perodo 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, quando 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 requer vrios recursos.39
Defina as variveis:

1
wit =
0
1

qt k =
0

se o estado de preparao para o produto i continua do perodo t 1 ao perodo t


caso contrrio
se no existe preparao de itens em t , que utilizam o recurso k , dado que a
preparao de um item especfico ocorreu em t 1 e mantida at t + 1
caso contrrio
n

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)

wit 1,

k = 1,..., K ,

t = 2,..., T

(DL22)

wit yi ,t 1 + wi ,t 1 ,
wi ,t +1 + wit 1 + qtk ,
yit + qtk 1,

i = 1,..., n, t = 2,..., T
k = 1,..., K , i Rk ,
t = 1,..., T 1
k = 1,..., K , i Rk ,
t = 1,..., T

i Rk

i Rk

Figura 3.20
39 Sueri e Stadtler (2003).

Produo com e sem preservao de preparao.

(DL23)
(DL24)
(DL25)

Captulo 3: Otimizao discreta

xit M it ( yit + wit ), i = 1,..., n, t = 1,..., T

(DL26)

qtk 0, k = 1,..., K , t = 1,..., T 1 (q1k = qTk = 0)


wit {0,1}, i = 1,..., n, t = 1,..., T

211

(DL27)

( wi1 = 0)

(DL28)
(DL29)

x R+nT , I R+nT , y B nT

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 recurso k, que no mximo uma preparao preservada de um perodo para o prximo. As restries (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 perodos 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 produo 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 variveis binrias.
O modelo acima pode ser facilmente transformado em um modelo para produtos com estrutura 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

h = [hi ] = [150

s = [ si ] = [350

40]

40

70]

100

90]

100

C = [Ct ] = [280

320

b = [bi ] = [20

10

1
D = [dit ] = 2
2

10
4
4

280

20]
3
0
0

400]

10
5
5

Soluo tima para o modelo com preservao da preparao:


y11 = y12 = 1
y21 = y24 = 1
y31 = y34 = 1

x11 = 1,00
x21 = 2,00
x31 = 6,00

x12 = 10,00
x22 = 4,00

x13 = 4,50

x14 = 8,50
x24 = 5,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 espao 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 novamente processado no incio do perodo 3. Isso mostra que ociosidade pode ser desejvel para no incorrer 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
x21 = 2,00
x31 = 6,00

x12 = 10,00
x22 = 4,00

x13 = 3,00
x33 = 3,50

x14 = 10,00
x24 = 5,00
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 timo com preservao. A soluo tima ilustrada na Figura 3.22, e mostra dez preparaes de mquina contra cinco preparaes na Figura 3.21. Note que no perodo 1, a mquina preparada
n
para o item 2, e novamente preparada no incio do perodo 2.

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 dimensionamento 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 preparao 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

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)

zit 1,

t = 1,..., T

(DLS4)

yit zit zi ,t 1 ,

i = 1,..., n, t = 1,..., T

(DLS5)

i =1

z B nT , I R+nT , x R+nT , y R+nT

Figura 3.22

Representao da soluo tima do modelo sem preservao da preparao.

(DLS6)

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 restries (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 define 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

min

si yih + hi Iit
i =1 h =1

(DLS7)

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 ,

(DLS10)

t = 1,..., T

i =1 h =1
n

zih 1,

h = 1,..., H

(DLS11)

h = 1,..., H

(DLS12)

i =1

yih zih zi ,h 1 ,

i = 1,..., n,

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 estoque. 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 restrio (DLS13) indica o tipo das variveis.
Podemos, ainda, ter modelos que considerem que os tempos e custos de preparao so dependentes 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 tarefas (jobs) a mquinas e a 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.
A literatura nesta rea extensa devido enorme variedade dos ambientes de produo, das caractersticas dos produtos e das medidas de desempenho de programas de produo. Novas caractersticas no ambiente de produo foram introduzidas com sistemas flexveis de manufatura. Esse
tipo de sistema um conjunto integrado, controlado por computadores, de dispositivos automatizados de manuseio de materiais e mquinas de controle numrico que podem processar volumes 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 terminam atrasadas so penalizadas, ao passo que tarefas que terminam antes da data de entrega podem 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 mltiplos 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 programao 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 imediatamente a ltima tarefa de uma seqncia de tarefas. A partir desses parmetros e variveis, possvel formular problemas com critrios distintos de otimizao. As seguintes restries so comuns
a todos problemas:
n

xij = 1,

xij = 1,

C j Ci M + ( p j + M ) xij , i = 0,..., n,

i = 1,..., n,

(S2)

i = 0, 1,..., n

j = 0, j i

Ci 0,

(S1)

j = 0, 1,..., n

i = 0,i j
n

(S3)

j = 1,..., n

C0 = 0

(S4)
(S5)
xB
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.
( n +1)( n +1)

Minimizao do tempo de fluxo total

O tempo de fluxo total corresponde soma dos tempos de trmino das tarefas, isto ,
problema , ento, expresso como
n

min

Ci

Ci . O
i =1

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} imi =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 tarefas 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 mai =1
neira, o problema representado pelo seguinte modelo
min Lmax

Lmax L+i Li

i = 1,..., n

L+i
+

i = 1,..., n

Li = Ci di
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 anteriormente. Considere os parmetros:

p = [ pi ] = [64
d = [di ] = [100

53
70

63
150

99

189

44

601

118

590

50
107

22]
180]

Apresentam-se, a seguir, a soluo tima e seu valor para cada critrio.


Fluxo total
Seqncia
Instante de trmino

Valor 1880
8
6
7
2
3
1
4
5
22 66 116 169 232 296 395 584

Atraso mximo
Seqncia
Instante de trmino
Atraso

Valor 269
5
2
7
1
3
8
6
4
189 242 292 354 419 441 485 584
71 172 185 254 269 261 0
0

Soma dos atrasos


Seqncia
Instante de trmino
Atraso

Valor 499
2
7
3
8
1
5
6
4
53 103 166 188 252 441 485 584
0
0
16 8
152 323 0
0

Soma dos atrasos e avanos


Seqncia
Instante de trmino
Atraso
Avano

Valor 575
2
7
53 103
0
0
17 4

3
166
16
0

Nmero de tarefas atrasadas


Seqncia
Instante de trmino
Atraso

Valor 3
8
7
22 72
0
0

3
6
4
5
1
2
135 179 278 467 531 584
0
0
0
349 431 514

8
188
8
0

1
252
152
0

5
441
323
0

4
546
0
55

6
590
0
0

Captulo 3: Otimizao discreta

Lateness mximo
Seqncia
Instante de trmino
Lateness

219

Valor 269
1
7
2
5
3
8
4
6
64 114 167 356 419 441 540 584
-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 seqncia 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 aumento do custo de avano. A medida da soma de atrasos e avanos f (t ) como funo do instante 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 demais 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 objetivos, 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 definir um tempo para a execuo da tarefa i como si + pi . Quando o tempo de preparao dependente 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


(S6)
C j Ci M + ( s j + p j + M ) xij , i = 0,..., n j = 1,..., n
e no caso de tempo de preparao dependente da seqncia, a restrio (S3) torna-se
(S7)
C j Ci M + ( sij + p j + M ) xij , i = 0,..., n j = 1,..., n
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 makespan, 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 posio na seqncia de produo, logo aps a produo da tarefa que ocupa a terceira posio. Ento, o makespan pode ser expresso como
n

k =1

i =1

Cmax = s[ k 1],[ k ] + s[ n ],[0] + pi


Como a segunda somatria constante, ento o problema do makespan corresponde ao problema do caixeiro-viajante que comea na cidade 0 com distncia sij entre as cidades i e j. Quando 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 relacionadas. 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 tempo 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 mquinas 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:
(S8)

min Cmax
m

xij = 1,

i = 1,..., n

(S9)

Cmax pi xij , j = 1,..., m

(S10)

Cmax 0, x B mn

(S11)

j =1

i =1

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 parmetros 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,..., m

(S14)

xihk xhjk = 0,

h = 1,..., n, k = 1,..., m

(S15)

C jk Cik M + ( sijk + p jk + M ) xijk ,

i = 0,...., n, j = 1,..., n

(S16)

k =1 i = 0
n

x0 jk 1,
j =1

i=0
ih

j =0
jh

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 tarefas. As restries (S13) impem que cada tarefa j tem uma nica tarefa predecessora imediata 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 facilmente 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 tarefa processada nas m mquinas, de acordo com um roteiro preestabelecido. Considere, por exemplo, 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 interrupo 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 mquinas 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 Pacheco (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 ,

j = 1,..., n, k = 1,..., m

(S24)

C R+mn ,

x B

i = 1,..., n,

(S25)

mnn

A funo objetivo (S20) expressa a minimizao do tempo de fluxo total das tarefas. As restries (S21) garantem que a primeira operao de cada tarefa i completada aps o respectivo tempo 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 modificaes 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
C 21 = 9
C33 = 11
C 42 = 7
C53 = 8

C11 = 19
C22 = 19
C32 = 27
C 41 = 11
C51 = 27

C13 = 32
C 23 = 22
C31 = 32
C43 = 15
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 dian
grama de Gantt, mostrada na Figura 3.25.
Flow shop

O ambiente de produo flow shop um caso particular do ambiente job shop, em que as n tarefas 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 forma 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


n

(S26)

i =1

zij = 1,

i = 1,..., n

(S27)

zij = 1,

j = 1,..., n

(S28)

j =1
n

i =1

Figura 3.25 Diagrama de Gantt para exemplo de job shop.


48 Stafford Jr. et al. (2005).

Captulo 3: Otimizao discreta

s1 j + pi1 zij = s1, j +1 ,

j = 1, ..., n 1

225

(S29)

i =1

s11 = 0

(S30)

sk1 + pik zi1 = sk +1,1 ,

k = 1, ..., m 1

(S31)

j = 2, ..., n, k = 1, ..., m 1

(S32)

j = 1, ..., n 1, k = 2, ..., m

(S33)

i =1
n

skj + pik zij sk +1, j ,


i =1
n

skj + pik zij sk , j +1 ,


i =1

(S34)

s R+nm , z B nn

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 iniciar 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 posio 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

Cl e
l =1

Tl .
l =1

Existem diversas variantes dos problemas bsicos de job shop (flow shop) modelados anteriormente 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 disponibilidade (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 ambientes 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 bloqueia 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 mquina, sem interrupo. Neste caso, o bloqueio no existe. Uma das razes para esses ambientes de produo a tecnologia de produo. Em alguns processos, a temperatura ou
outras caractersticas (como a viscosidade) do material requer que cada operao siga imediatamente 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 trmino 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 pequeno (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 algum 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 comuns e importantes de programao.
Balanceamento de linha de montagem

Uma linha de montagem um sistema de fluxo de produo de alto volume de produtos padronizados, 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 durao, 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 relaes 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
n
da linha, definida como E = d total / m c , em que d total = j =1 d j .
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, respectivamente. 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 tima 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; planejamento 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 objetivos, 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 horizonte 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 considerar o Exemplo 4.19 da Seo 4.2.2. Um projeto pode ser representado por um grafo orientado 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 precedncia 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
r = [rik ] = 0
0
R = [ Rk ] = [2

4
1
1

10

1
2

0
1

1
1

1
1

0
3

1
0

0
2

1
1

2
1
1

0]
0
0

3]

As Figuras 3.28 e 3.29 mostram o diagrama de Gantt para o projeto com recursos ilimitados 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 recurso 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

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.

229

230

Pesquisa Operacional

Programao de servios

A programao de atividades em servios difere da programao de tarefas em mquinas em vrios aspectos. A primeira diferena que em servios no h bens a serem estocados. Uma tarefa 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 recursos (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 produto 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 carro 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 educacionais. A dificuldade de encontrar solues satisfatrias manualmente nesses problemas tem
motivado a pesquisa e o desenvolvimento de ferramentas de confeco automatizada de horrios. Em geral, busca-se a confeco de um quadro de horrios que satisfaa alguns requisitos essenciais (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 problema 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 disjuntos de estudantes que compartilham o mesmo currculo e, em geral, devem ter horrio 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 simultneos 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 bastante 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 inatividade 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 somente 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 detentores dos direitos de transmisso no querem jogos sem atrao em um horrio nobre, e as equipes 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 diversos esportes, tais como futebol, basquetebol, beisebol, hquei e crquete.
A distncia entre cidades em pases grandes um fator complicador. No caso do campeonato 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 problemas 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 times, 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 conhecidas. Cada time est em casa no incio do torneio e retorna para casa depois da ltima partida 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 distncias 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 incluem 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 diversos meios de transporte, tais como navios, avies, trens e nibus. A programao de veculos
63
64
65
66

Ver Santos et al. (2004) para uma heurstica aplicada programao de horrio em escolas de ensino mdio no Brasil.
Easton (2001).
Folha de S. Paulo, 31 de outubro de 2005.
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 veculos 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 viagens 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 tripulao 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 relacionados a aspectos operacionais, tais como minimizar o nmero de veculos e tripulaes e durao 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 longo 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 operaes nesses ambientes so prolongadas e irregulares, e a necessidade de pessoas varia ao longo 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 necessrio em fins de semana menor, e pode ou no ser menor no perodo noturno. Existem diversas 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 semana 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 planejamento, 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 necessidades 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 Universidade 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

j =1

j =1

L( I ) = log 2 c j + log 2 a j
Dado um problema P, um algoritmo A para este problema, e uma instncia I, seja f A ( I ) o nmero de operaes elementares para aplicar o algoritmo A instncia I. A funo complexidade 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 complexidade polinomial, isto , f A* (k ) c k p, para algum inteiro positivo p e uma constante positiva 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 iniciados 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 termos 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 valores aos literais de cada clusula que satisfaa simultaneamente todas as clusulas, isto , que satisfaa 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 frmula 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 +
De modo geral, dadas m clusulas Ci =

x Bn :

(1 x3 ) 1

(Ci+ , Ci ), i

= 1, ..., m , existe

x + (1 x ) 1 para

j Ci+

j Ci

i = 1, ..., m ?

Em seguida, demonstrou-se70 que uma coleo de problemas de deciso associados a problemas 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

x Bn : a j x j b e
j =1

69 Cook (1971).
70 Karp (1972).

c x
j

j =1

k?

234

Pesquisa Operacional

Em 1979, Garey e Johnson publicaram um livro considerado um marco na teoria da complexidade computacional. Como ressaltado pelos autores, a distino entre os algoritmos polinomiais
e exponenciais bastante significativa ao se considerarem instncias grandes. A Tabela 3.2 ilustra 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 problemas 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. Inicialmente, define-se o conceito de formulao.

n
Definio 3.1 Um subconjunto de Rn descrito por restries lineares P = x R : Ax b um
poliedro.

Definio 3.2 Um poliedro P R n + p uma formulao para um conjunto X Z n R p se e somente 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)}

Tabela 3.2
Tempo computacional para funes polinomiais e exponenciais.
Funo
Complexidade

Tamanho n
40

10

20

30

50

60

0,00001
segundo

0,00002
segundo

0,00003
segundo

0,00004
segundo

0,00005
segundo

0,00006
segundo

n2

0,0001
segundo

0,0004
segundo

0,0009
segundo

0,0016
segundo

0,0025
segundo

0,0036
segundo

n3

0,001
segundo

0,008
segundo

0,027
segundo

0,064
segundo

0,125
segundo

0,216
segundo

n5

0,1
segundo

3,2
segundos

24,3
segundos

1,7
minuto

5,2
minutos

13,0
minutos

2n

0,001
segundo

1,0
segundo

17,9
minutos

12,7
dias

35,7
anos

366
sculos

3n

0,059
segundo

58
minutos

6,5
anos

3855
sculos

2 108
sculos

1,3 1013
sculos

n!

3,628
segundos

771,4
sculos

8,4 1016
sculos

2,5 1032
sculos

9,6 1048
sculos

2,6 1066
sculos

Captulo 3: Otimizao discreta

Figura 3.30

235

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 combinao convexa dos pontos x1 = (1, 3), x 2 = (2, 1), x3 = (2, 4), x 4 = (3, 1), x5 = (4, 2) , isto ,

5
conv(X )= j x j ,
j =1

j = 1,
j =1

0, j . As Figuras 3.32 e 3.33 mostram a envoltria conve

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, respectivamente.
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, podemos expressar o problema de programao inteira mista PIM como o seguinte problema de
programao linear.

z = max cT x + d T y
% + Dy
% b%
Ax
x R+n , y R+p

% + Dy
% b% , x R+n , y R+p } = conv{(x, y): Ax + Dy b , x R+n , y Z +p }.
em que {(x, y): Ax
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 branchand-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 eliminam 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 rapidamente 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
x2 + x3

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 ilimitada (LF9)-(LF12), e considere a formulao alternativa P2 apresentada a seguir.

min

fi yi + cij xij
i I

(LF9)

i I j J

xij = 1,

j J

(LF10)

xij nyi ,

i I

(LF11a)

i I

jJ

(LF12)
0 xij 1,
i I , j J , y B I
Note que a formulao alternativa difere pelo conjunto de restries (LF11a) que corresponde 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 sobre 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 sa3
j =1
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 ,

xt d yt ,
=t

t = 1,..., T

xt , I t 0, 0 yt 1,

t = 1,..., T

I 0 = IT = 0

A seguir apresentada uma formulao alternativa P2 para este problema. Para tal, considere 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

min
t

h ,t 1u t + syt
=1 t =

(DL1a)

t =1

u t = dt

t = 1,..., T

(DL2a)

u t dt yt

, t = 1,..., T ; t

(DL3a)

u t 0, 0 yt 1,

, t = 1,..., T , t

(DL4a)

=1

A funo objetivo (DL1a) expressa a minimizao do custo total de estoque e produo. As restries (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 restries (DL4a) indicam o tipo das variveis.
As variveis de produo das duas formulaes esto relacionadas por
T

x = u t
t =

= 1,..., 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 componentes 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 inteiramista 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 substituir 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)
e sua relaxao linear

( PL)

z = max cT x : Ax b, x Z +n

z = max cT x : Ax b, x R+n

Como observado na Seo 3.1, o valor timo do problema relaxado PL um limitante superior 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 nmero de solues inteiras factveis finito. Uma forma de obter uma soluo tima para o problema 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 programao 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

( P)

z = max 5 x1 x2
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 ob24 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 descendentes 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 va5
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 relaxao 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 li4
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

Figura 3.35 Partio do problema P.

Figura 3.36

Representao grfica das solues de P1.

z = 16

11
29

x1 3
z1 = 13

x2 1
z3 = 11

6
7

x1 4

2
29

x2 2
z4 = 13

Figura 3.37 Partio do problema P1.

241

242

Pesquisa Operacional

que a soluo x4 = (3, 2) a soluo tima do problema P. A Figura 3.38 mostra o espao das solues 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 restries, como mostram as Figuras 3.36 e 3.38, para cortar pontos extremos no inteiros, correspondentes 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, apresentado na seo 2.10.4 para o problema primal de minimizao. A seguir apresentada uma forma 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 bsicas e no-bsicas, respectivamente. Da partio, tem-se
(3.7)
BxB + Nx N = b
(3.8)

z = cTB xB + cTN x N

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
cT B 1b a10

a 0 = B
=
B 1b M

am 0

cTB B 1a j

a j =
B 1a j

a0 j

c j a1 j
=
M

amj

De (3.9) e (3.10),

xB0 = a00
xBi = ai 0

jNB

(3.11)

a0 j x j

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
akr
arj

Segue-se que

a0 k a0 j

, j : arj < 0
ark arj

(3.13)

244

Pesquisa Operacional

portanto,

a0 j

a0 k arj
ark

0, j : arj < 0

Como a0 j 0 e ark < 0 , ento

a0 j

a0 k arj
ark

0, j : arj 0

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

jNB

arj x j < 0, x j 0, j NB

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
ou

j =1

a pj x j + s p = bp ,
j =1

sp 0

Tomando s p como varivel bsica e expressando-a em termos das variveis no-bsicas associadas 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 resolve-se a relaxao linear PL1. Usando o Quadro 3.1, a varivel s3 expressa em termos das variveis 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

s3 = 3 3

24 2
5
+ s1 + s2
29 29
29

245

(3.14)

A varivel s3 sai da base e, de (3.13), tem-se de

18
13 18
29 29
29
max
,
= 5
2
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, obtmse 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 resolve-se a relaxao linear PL2 . Usando o Quadro 3.1, a varivel s4 expressa em termos das variveis no-bsicas s1 e s2 :
24 2
5
s1 s2
29 29
29
Como os coeficientes de s1 e s2 so negativos, segue-se que PL2 e, portanto, P 2 infactvel.
s4 = 4 3

Quadro 3.1

x1

x2

x1

x2

s1

s2

13
29
2
29
3

29

18
29
5
29
7
29

11
29
24
3
29
22
2
29

16

Quadro 3.2

x1

x2

s1

s2

s3

z1

1
5

x1

x2

s2

1
5
2
5

0
1

3
5

2
5
4
5
5
1

13

2
5

3
5
4
4
5

246

Pesquisa Operacional

4) N P3
Insere-se a restrio x2 1 ou, equivalentemente, x2 + s5 = 1 , s5 0 , ao problema P1 e resolve-se a relaxao linear PL3. Usando o Quadro 3.2, expressa-se a varivel s5 em termos das variveis 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 varivel 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 resolve-se a relaxao linear PL4. Usando o Quadro 3.2, expressa-se a varivel s6 em termos das variveis no-bsicas s1 e s3 :
8
1
7
2 1
7
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 varivel 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.
s6 = x2 2 =

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 esses testes, considere a seguinte notao:
i
F ( Pi ) : regio factvel do problema P
i
F ( PLi ) : regio factvel do problema PL
z i : valor timo do problema Pi (limitante inferior de z )

Quadro 3.3

x1

x2

z3

x1

x2

s2

s3

s1
5
7
1
7
0

3
7
1

s2

s3

s5
2

4
7
5
7

6
7
4
2
7

11

1
7
5

2
7
3
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 armazenados 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 ativos. 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 inteiro 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

13

x1

x2

s2

s1

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 conhecida como last-in, first-out, o que significa que o ltimo n includo na lista o primeiro a ser examinado. 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 primeiro 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 mximo 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 programao 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. Suponha 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 nmero 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

ajxj b
j =1

x Bn
e assuma que p j , a j > 0, j.

Captulo 3: Otimizao discreta

Proposio 3.1 Se

249

r
p r 1
p1
... n , a j b, a j > b , a soluo do problema relaxado de programaa1
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 linear. 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

a
1
b a1
x1 ... n xn y
ar ar
ar
ar
Substituindo a expresso anterior na funo objetivo da relaxao linear, temos
xr =

z = max( p1

pa
pr a1
pa
p
pb
) x1 + ... + ( pr +1 r r +1 ) xr +1 + ... + ( pn r n ) xn r y + r
ar
ar
ar
ar
ar

p
p1
. . . 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
Por hiptese,

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
p
p
p
p
p1
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 obn
jetivo z = 769,35.
A seguir, o mtodo B&B aplicado a este problema com as estratgias de seleo de ns baseadas em busca em profundidade e busca pelo n com maior limitante superior.
Inicialmente, note que o problema de programao inteira envolve variveis binrias, portanto, um n com uma varivel com valor fracionrio entre 0 e 1 ramificado em dois ns filhos, 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, encontrada no n 22. Note que essa estratgia gera trs solues factveis.
A rvore relativa estratgia da busca pelo maior limitante superior igual rvore da Figura 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 armazenam-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 resolver 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
m
X = {x : Ax b, x Z +n } , tal que A uma matriz m n com colunas {a1 , ..., a n } e u R+ , conhecido como procedimento de Chvtal-Gomory, descrito a seguir.
A desigualdade
n

vlida para X , pois u 0 e


A desigualdade

u Ta j x j u Tb
j =1

a j x j b.
j =1

uTa j x j uTb
j =1

vlida para X , pois x 0.


A desigualdade
n

uTa j x j uTb
j =1

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 ChvtalGomory, tem-se
5 / 6 x1 + 7 / 6 x2 + 4 / 6 x3 + x4 35 / 6

portanto, a desigualdade vlida x2 + x4 5 corta o ponto.

2
Exemplo 3.21 Considere o conjunto X = 7 x1 5 x2 13, 3 x1 + 2 x2 17, x Z + associado s
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

( PL)

z = max cT x : Ax = b, x R+n

e sua relaxao linear

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 +
xBi +

jNB

jNB

a0 j x j

aij x j = ai 0 , i = 1, ..., m

(3.17)

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 +

jNB

aij x j ai 0

(3.18)

Substituindo xBi de (3.17) em (3.18), tem-se a desigualdade

(aij aij ) x j ai 0 ai 0

ou

jNB

jNB

fij x j fi 0

(3.19)

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 soluo bsica tima. Introduzindo a varivel de sobra si 0 em (3.19), tem-se

si =

jNB

fij x j fi 0

De (3.17), segue-se que

xBi = fi 0

j NB

fij x j + ai 0

j NB

aij x j

Reescrevendo a equao anterior como

xBi = si + ai 0

jNB

aij x j

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 contrrio, 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 desvantagem 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 corresponi
de linha cuja varivel apresenta o maior desvio entre seu valor fracionrio e o maior nmero inteiro.
Exemplo 3.22
Considere o problema do Exemplo 3.18:
z = max 5 x1 x2
7 x1 5 x2 + s1 = 13
( P)
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 ob24 22
jetivo (5, 1) e a soluo tima real do problema relaxado PL , x = (3 , 2 ), com valor
29 29
11
z = 16 , que um limitante superior para o valor timo z.
29

Captulo 3: Otimizao discreta

255

24
22 escolhe-se a linha da varivel x e, utilizando a desigualdade de
> f 20 =
1
29
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)
Como f10 =

Incluindo a restrio (3.21) no fim do Quadro 3.5, segue-se que s3 = 24 , pois s1 e s2 so nobsicas. Reotimizando atravs do dual simplex, obtm-se o Quadro 3.6.
Escolhendo a linha s2 , obtm-se o segundo corte
(3.22)
2 s1 + s3 4
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

x1

x2

s1

s2

13
29
2
29
3

29

18
29
5
29
7
29

11
29
24
3
29
22
2
29

16

Quadro 3.6

s3

x1

x2

s1

s2

1
5

x1

x2

s2

1
5
2
5

0
1

3
5

2
5
4
5
5
1

13

2
5

3
5
4
4
5
1

256

Pesquisa Operacional

Quadro 3.7

x1

x2

s1

s2

s3

x1

x2

s2

s1

1
2

s4

1
2

1
2

1
2

13

1
2

1
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 desigualdades de Gomory para problemas inteiros e inteiros mistos foram as primeiras propostas na literatura. 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, considere 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 superior. 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

37

x1

x3

13
14
4
2
7
11

14

26
35
26
3
35
6
4
35

11
70
12
35
19

70

1
5
1

5
1
5

Figura 3.44 rvore B&B com busca pelo n de maior limitante superior.

26
35
9
2
35
6
8
35

309

258

Pesquisa Operacional

Escolhendo a linha x1 , obtm-se o corte

4
9
12
4
9
x2 + x4 + s1 + s2 s3 =
7
35
35
5
35

(3.24)

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, obtmse o Quadro 3.9.
Quadro 3.9

x1

x3

x5

37

x1

x3

s1

x2
2
3

1
3
2
1
3

x4

s2

s3

5
8

5
6

11
24

3
8
3
4

5
6
1
2
3

19
24
11
2
12

309

5
8

3
8
3
4

Escolhendo a linha x3 , obtm-se o corte

2
3
5
5
3
x2 + x4 + s2 + s3 s4 =
3
8
6
24
8
ou, em termos de variveis originais,
20 x1 + 31x2 + 25 x3 + 29 x4 249

(3.25)

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 =
14
7
14
7
ou, em termos de variveis originais,
x1 + x2 + x3 10

(3.26)

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

36

x1

x3

s2

s3

69
70
51
2
70
33

35
2
35
11
14

8
35
23
3
35
3
4
35
3
35
3
7

1
14
5
14
2

7
2

7
1
14

1
5
1

5
1
5
4

10
35
12
2
35
3
8
35
3
35
3
7

309

Quadro 3.11

x1

x3

s3

s2

s1

x2

x4

s4

36

x1

x3

s3

1
5
1
1
5
1
2
5
1
3
5

4
5
4
5
5
4
5
5
4
1
5

1
5
1

5
1
5
4

s2

s1

11

14

s5
1
5
4
4

4
5
1
5
4
9
5
9
5

308

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 coloqueo na lista L = {P}.
Passo 1 (Seleo de n). Selecione o n ativo i , associado ao problema P i , da lista de ns ativos. 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 inteiro 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 formulao original de um problema. A meta detectar rapidamente variveis e restries redundantes 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 fundamental 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. Multiplique 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 seguinte 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 inferior, igual a 1. Seja u4 a varivel dual no-positiva associada restrio x3 1. Se u4 = 0 na soluo 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 obje50
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 reduzse, 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

Limitantes em variveis. Se a0 > 0 , ento

x0 (b

a jl j

a jl j

j:a j >0

a j u j ) / a0

a j u j ) / a0

j:a j <0

j = 1, ..., n}

e, se a0 < 0 , ento

x0 (b

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 +

j:a j >0

a jl j b

a ju j > b

j:a j <0

Infactibilidade. S = se
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 adicionam-se as restries ao problema, ou estas so usadas para fixar algumas variveis. Este procedimento 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 anlogo, 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 pelas desigualdades x2 x1 e x2 x4. Esta restrio infactvel se x2 = x3 = 1, que resulta na desigualdade 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 implica 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
A restrio

j:a j <0

aj > b

a j x j b redundante se

j:a j >0

j =1

aj b

A restrio xi + x j 1 vlida se ai + a j > b


Seja ak > 0 . Se

j:a j <0

a j + ak > b , ento xk = 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 relaxao 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 conceitos de pontos extremos e raios extremos, que so elementos essenciais para gerar qualquer ponto de um poliedro.
Definio 3.6 Considere o poliedro P = {x : Ax = b, x R+n } , em que A uma matriz de dimenso 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

i =1

j =1

x = i xi + j w j , i 0, j 0,

i = 1
i =1

O vetor (2, 2) um elemento do poliedro do Exemplo 3.26 e admite mais de uma represen1
1
3
tao, como, por exemplo, (2, 2) = x 2 + w1 + w 2 e (2, 2) = x 2 + x3 + w1 . Se o poliedro li2
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

x = i xi , i 0,
i =1

i = 1
i =1

Para ilustrar os mtodos de Benders, Dantzig-Wolfe e relaxao lagrangiana, considere o problema de dimensionamento de lotes de mltiplos itens com restrio de capacidade, apresentado na Seo 3.6.1, e aqui repetido para facilitar a leitura.
n

min

(si yit + hi Iit )


i =1 t =1

I it = I i ,t 1 + xit dit ,

i = 1, ..., n, t = 1, ..., T

Figura 3.46 Pontos extremos e raios extremos de um poliedro.

(DL9)
(DL10)

Captulo 3: Otimizao discreta

(spi yit + bi xit ) Ct ,

265

(DL11)

t = 1, ..., T

i =1

xit M it yit ,

i = 1, ..., n,

Ct spi T
, di },
M it = min{
bi
=t

t = 1, ..., T

i = 1, ..., n,

(DL12a)

t = 1, ..., T

x R+nT , I R+nT , y B nT

(DL12b)
(DL13)

Considere o problema de programao inteira-mista

z = max cT x + d T y
Ax + Dy b
x R+n , y Z +p

(3.27)

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}]


yZ +

xR+

(3.28)

O problema nas variveis x

h(y ) = maxn {cT x : Ax b Dy}


xR+

(3.29)

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 }
uR+

(3.30)

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 )}]


y Z +

1 j p

(3.32)

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
(w k )T (b Dy ) 0, k = 1, ..., q

(3.33)

266

Pesquisa Operacional

O problema (3.33) chamado problema mestre de Benders. Como o nmero de pontos extremos 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
(w k )T (b Dy ) 0, k Q

(3.34)

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 soluo 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 estrutura 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 dimensionamento 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 medida 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 varivel 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 unitrio 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 diversos subproblemas de tamanho menor, tipicamente estruturados, em lugar da resoluo do
problema original, cujo tamanho e complexidade impedem que seja resolvido em tempo razovel.
Considere o seguinte problema de programao inteira mista

z = max cT x + d T y
A1x + D1y b1
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.

(3.35)

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 decompe para cada perodo t em um problema da mochila com variveis binrias e contnuas. As restries (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 =1

k =1

X 2 = {(x, y ) : x = k xk , y = k y k ,

k = 1,

k {0,1}, k = 1, ..., K }

k =1

O problema mestre (PM) de Dantzig-Wolfe, equivalente ao problema (3.35), pode ser reescrito como
K

(PM)

z PM = 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,1}, k = 1, ..., K
Considere agora a relaxao linear do problema mestre PM
K

(PML)

zPML = max (cT xk ) k + (dT y k ) k


K

k =1

k =1

(A1xk ) k + (D1y k ) k b1
k =1

k =1

k = 1

(3.36)
(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).
m
Sejam { i }i =11 as variveis duais associadas s restries (3.36), e a varivel dual associada
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 seguinte 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 superior de z usado em um procedimento branch-and-bound, conhecido na literatura como branchand-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 problema lagrangiano (PLG) como
(PLG)

g (u) = max cT x + dT y + uT (b 2 - A 2 x - D2 y)
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* )
m
T *
T *
factvel em PLG. Como A 2 x* + D2 y* b 2 e u R+ 2 , segue-se que c x + d y
T *
T *
T
*
*
c x + d y + u (b 2 A 2 x D2 y ) g (u) .
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 valor timo do problema dual pode gerar um limitante superior melhor que o valor timo da relaxao 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 dimensionamento de lotes sem restrio de capacidade.75
Isso indica que o mtodo de Dantzig-Wolfe e a relaxao lagrangiana esto relacionados. Demonstra-se que o valor timo do problema dual igual ao valor timo da relaxao linear do problema 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 expressa 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 consiste 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 incluso 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 soluo 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 complexidade 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 complexos 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 mtodos 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 computador ou das necessidades da aplicao. Alguns exemplos ocorrem em problemas de programao 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 relevante em relao a uma soluo heurstica. Ou situaes em que os dados do problema so incertos 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 exemplo, 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 problema 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 deciso, 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 construtivas; (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 selecionados e que ainda cabem na mochila, aquele que tenha o maior valor por unidade de volume. 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, por exemplo, por uma heurstica construtiva, associa-se uma vizinhana N de s. Cada soluo s da vizinhana N(s) atingida a partir de s por uma
operao chamada movimento, e a soluo s chamada de soluo vizinha. Seleciona-se uma soluo vizinha que seja melhor que a soluo corrente, e a busca prossegue iterativamente at que
a vizinhana no contenha nenhuma soluo melhor que a soluo corrente, denominada timo
local em relao vizinhana, ou at que algum outro critrio de parada tenha sido satisfeito.
Considere um exemplo do problema da mochila 0-1 com cinco itens, e uma soluo s definida pelo vetor (1,0,0,1,1), no qual 1 na posio i , i = 1, ..., 5, indica que o item i foi includo na
mochila, e 0 em caso contrrio. Uma possibilidade definir N(s) como todas as solues resultantes da operao de troca de um dos itens na mochila por outro fora da mochila. Neste caso,
N(s) incluiria, por exemplo, a soluo s definida por (0,0,1,1,1), obtida pela operao de troca do
item 1 pelo item 3. Outra possibilidade de vizinhana consiste em trocar at r itens na mochila
por r itens fora da mochila. No problema do caixeiro-viajante, a vizinhana k-opt de uma soluo s composta de todas as solues que diferem de s em exatamente k arestas. A troca de itens
no problema da mochila 0-1 e a troca de k arestas no problema do caixeiro-viajante correspondem
aos tipos de movimentos que definem as vizinhanas nesses exemplos.
Considere o exemplo a seguir de um caixeiro-viajante simtrico com distncia euclidiana entre 12
cidades, e movimentos 2-opt. As coordenadas de cada cidade so mostradas a seguir (Figura 3.48).

x = [26
y = [38

34
31

95
54

70
88

99
89

40
63

39
85

53
81

39
96

3
95

71
65

45]
17 ]

Iniciando pela cidade 1, a heurstica do vizinho mais prximo gera a rota 1 2 12 6 7


9 8 4 11 3 5 10 1, com distncia 388,9 (Figura 3.48). Partindo-se desse ponto, usase a vizinhana 2-opt, e a soluo vizinha com menor distncia escolhida. A partir dessa soluo vizinha, busca-se outra soluo vizinha com distncia menor que a anterior, e assim por
diante. O mtodo pra quando no existe um vizinho melhor. Para este exemplo, a busca local
encontra trs solues, mostradas a seguir e ilustradas na Figura 3.48.
Soluo 1: 1 2 12 6 5 3 11 4 8 9 7 10 1
Soluo 2: 1 2 12 6 11 3 5 4 8 9 7 10 1
Soluo 3: 1 2 12 6 11 3 5 4 8 7 9 10 1

distncia: 372,5
distncia: 345,1
distncia: 337,8

A soluo 3 corresponde a um mnimo local, e a soluo tima global dada pela rota
1 2 12 11 3 5 4 8 7 9 10 6 1, com distncia 331,2.
Meta-heursticas
So tcnicas que guiam e modificam heursticas de forma a produzir solues alm daquelas
geradas por heursticas de busca local. Dentre as meta-heursticas existentes, destacam-se: algo-

272

Pesquisa Operacional

Figura 3.48 Exemplo de busca local para o problema do caixeiro-viajante.

ritmo gentico, busca tabu, simulated annealing, scatter search, colnia de formigas e GRASP (greedy
randomized adaptive search procedure).76
Cada uma dessas tcnicas utiliza diferentes estratgias para a explorao do espao de busca.
A busca tabu, por exemplo, usa explorao estratgica e memria flexvel para guiar a busca no
espao de solues. Por meio da explorao estratgica, determina-se uma direo de busca baseada em propriedades da soluo corrente e da histria da busca. A memria tem estruturas de
curto e longo prazo. A memria de curto prazo armazena atributos de solues visitadas em passado recente, e estes so utilizados para impedir que algumas solues sejam revisitadas, evitan76 Para detalhes destas meta-heursticas, veja, por exemplo, Reeves (1993), Glover e Laguna (1997), Aarts et al. (1997), Michalewicz
(1996), Blum e Roli (2003) e Resende e Ribeiro (2003). Algumas aplicaes de meta-heursticas podem ser encontradas em Almeida
et al. (2003), Alvarenga et al. (2000), Alvim et al. (2004), Barcia et al. (1998), Chiyoshi e Galvo (2000), Ferreira Filho e Galvo (1999),
Frana et al. (1999), Linhares et al. (1999), Pureza e Morabito (2006), Ravagnani et al. (2005), Ribeiro e Souza (2000) e Stern (1992).

Captulo 3: Otimizao discreta

273

do, assim, ciclagem e direcionando a busca para outras regies. A memria de longo prazo contm uma histria seletiva das solues e seus atributos, e usada para estimular a gerao de solues com caractersticas presentes em solues de boa qualidade (intensificao) e com
caractersticas pouco exploradas (diversificao).
Algoritmos genticos so mtodos populacionais baseados no processo biolgico de seleo natural
e hereditariedade, e envolvem uma evoluo de populaes de solues convenientemente codificadas. Uma populao transformada em outra populao por trs mecanismos probabilsticos,
denominados seleo, cruzamento (crossover) e mutao. O papel da seleo consiste em escolher
solues mais aptas de acordo com a qualidade (valor da funo objetivo) e a diversidade das solues. O cruzamento envolve a troca de partes (informao seletiva) entre solues, visando gerar
uma nova populao com solues melhores. A mutao envolve alteraes estruturais nas solues,
em geral, com o objetivo de evitar uma convergncia prematura do processo evolutivo.

3.12 NOTAS
O texto abaixo tem por objetivo prover um contexto histrico e referncias adicionais que so relevantes para algumas sees.
3.3 Otimizao discreta ou programao inteira e combinatria apresentada, em nvel de graduao, em uma ou duas sees de livros de Pesquisa Operacional, tais como Hillier e Liberman
(2004), Wagner (1986), Winston (2004), Rardin (1998), Murty (1995) e Taha (2002). tratada de
forma mais detalhada e em nvel mais avanado no livro da Nemhauser e Wolsey (1988). O livro
mais recente (Wolsey, 1998) adequado para o nvel de ps-graduao, enquanto um dos primeiros livros nesta rea (Garfinkel e Nemhauser, 1972) ainda uma referncia importante.
3.5.1 O livro editado por Toth e Vigo (2002) contm uma reviso de problemas de roteamento,
mtodos de resoluo de problemas especficos e aplicaes.
3.5.2 Para uma reviso de localizao de facilidades, veja Owen e Daskin (1998) e Klose e Drexl (2005).
3.6.1 Variantes do modelo de dimensionamento de lotes com restrio de capacidade e mtodos de resoluo so revistos por Karimi et al. (2003). Brahimi et al. (2006) fazem uma reviso
abrangente de problemas de dimensionamento de lotes e a seguir focam em modelos e mtodos
de resoluo para o problema de dimensionamento de lotes de um nico item.
3.6.2 Uma reviso de problemas de dimensionamento e programao de lotes encontrada em
Drexl e Kimms (1997). Veja tambm Meier (2000) para problemas com tempos de preparao
dependentes da seqncia.
3.6.3 Baker (1974) e French (1982) so os livros bsicos de programao (scheduling) da produo. Livros mais recentes so Morton e Pentico (1993) e Pinedo (1995). Blazewicz et al. (1996)
apresentam diversos algoritmos para problemas de programao de sistemas de manufatura e de
computao. O livro de Pinedo (2005) tem escopo mais amplo e cobre programao da produo e de servios. Blazewicz et al. (1991) apresentam modelos matemticos alternativos para os
problemas desta seo, bem como formulaes para outros problemas. O artigo de Lawler et al.
(1993) contm uma excelente reviso de problemas em programao da produo, e Anderson
et al. (1997) abordam mtodos de busca local aplicados a estes problemas.
3.8 A importncia de formulaes em programao inteira tornou-se aparente somente no final da dcada de 1970. O livro de Williams (1999) trata em profundidade e abrangncia um tpico fundamental em otimizao, que envolve a construo de modelos matemticos, incluindo
otimizao discreta.
3.9 Desenvolvimentos recentes em softwares de programao inteira, tais como CPLEX,
XPRESS e LINDO tm melhorado a capacidade de resolver problemas de grande porte. Atamtrk
e Savelsbergh (2005) apresentam o estado da arte de componentes principais destes softwares e
discutem as opes disponveis aos usurios para ajustar o desempenho destes, quando os ajustes padres (default) no proporcionam um nvel de desempenho desejado.

274

Pesquisa Operacional

3.9.1 O primeiro algoritmo de branch-and-bound foi apresentado por Land e Doig (1960). Neste
algoritmo, uma varivel com valor fracionrio gera um nmero de ns correspondentes aos valores inteiros que a varivel podia assumir. A dicotomia apresentada nesta seo foi proposta por
Dakin (1965). O termo branch-and-bound foi introduzido por Little et al. (1963), que apresentaram
uma aplicao bem-sucedida para o problema do caixeiro-viajante. Para um estudo computacional
de mtodos de seleo de variveis a serem ramificadas e escolha de ns, veja Linderoth e
Savelsbergh (1999). Uma generalizao promissora foi proposta por Achterberg et al. (2005).
3.9.2 O algoritmo de plano de cortes apresentado nesta seo foi proposto por Gomory (1958) e
Gomory (1963). Neste ltimo trabalho, o autor demonstra que a convergncia de seu mtodo finita
se as linhas que geram cortes forem escolhidas de forma apropriada. A demonstrao de que qualquer
desigualdade vlida gerada pelo procedimento de Chvtal-Gomory atribuda a Chvtal (1973).
3.9.3 O uso de planos de corte como ferramenta prtica para soluo de problemas genricos de programao inteira foi praticamente abandonada nos anos 60 e 70. Nos anos 80, planos
de corte foram utilizados somente no n raiz da rvore branch-and-bound, gerando o mtodo cutand-branch. Aparentemente, o primeiro algoritmo de branch-and-cut foi proposto por Padberg e
Rinaldi (1987) para resolver um problema do caixeiro-viajante com 532 cidades. Um sistema
branch-and-cut apresentado por Cordier et al. (1999).
3.10 O pr-processamento extremamente importante para uma rpida resoluo de problemas de programao linear real e inteira. A Proposio 3.3 foi apresentada por Brearley et al.
(1973). Tcnicas de pr-processamento so abordadas por Savelsbergh (1994).
3.11 O mtodo de decomposio de Benders (1962) foi aplicado com sucesso por Geoffrion
e Graves (1974) para um sistema de distribuio de mltiplos produtos. Costa (2005) prov uma
reviso da aplicao do mtodo de Benders em diversos problemas de projeto de redes.
O mtodo de decomposio em programao linear, conhecido como mtodo de DantzigWolfe, foi proposto por Dantzig e Wolfe (1960). Gilmore e Gomory (1961, 1963) provavelmente
foram os primeiros autores a usar a gerao de colunas para resolver o problema mestre relaxado derivado de um problema de programao inteira, no caso, o problema de corte descrito na
Seo 3.4. A demonstrao da igualdade entre o valor timo do problema dual e o valor timo
da relaxao linear do problema mestre de Dantzig-Wolfe atribuda a Geoffrion (1974). O primeiro trabalho de gerao de colunas em programao inteira aborda o problema de roteamento
de veculos com janelas de tempo (Desrosiers et al., 1984), e desde ento o interesse por este mtodo tem crescido, como mostra o livro editado por Desaulniers et al. (2005).
A teoria de relaxao lagrangiana em programao inteira foi proposta por Geoffrion (1974)
e este enfoque tem sido extensivamente usado em mtodos exatos e heursticos para uma grande variedade de problemas de otimizao combinatria.
Aparentemente, a primeira heurstica de busca local foi proposta por Croes G.A. (1958), que
introduziu o movimento 2-opt para o problema do caixeiro-viajante. Lin e Kernighan (1971) propuseram uma heurstica de busca local para o caixeiro-viajante bastante sofisticada para a poca, com estratgias inovadoras em heursticas, utilizando movimentos k-opt, k = 2, 3, 4. Em cada
iterao, o algoritmo examina se uma mudana de k para k + 1 resulta em uma rota menor, conhecida hoje como busca em profundidade varivel. Quando o algoritmo no acha nenhum
movimento que melhore a soluo, ele reiniciado de uma soluo aleatria. Outra caracterstica importante do algoritmo consiste em fixar arestas que pertencem a alguns timos locais. Algumas referncias para meta-heursticas so Michalewicz (1996), Reeves (1997), Glover e Laguna
(1997), Aarts et al. (1997), Mart et al. (2006) e Resende e Ribeiro (2003). O livro editado por Aarts
e Lenstra (1997) contm artigos sobre mtodos de busca local e problemas de otimizao
combinatria. Ver Silver (2004) para uma reviso de mtodos heursticos e Blum (2003) para uma
reviso de meta-heursticas.

Captulo 3: Otimizao discreta

275

3.13* EXERCCIOS77
Exerccio 3.1 Considere um conjunto de investimentos {1, 2,3, 4,5, 6}. Formule as seguintes restries:
a) No possvel investir em todos os investimentos.
b) Deve-se escolher pelo menos dois investimentos.
c) O investimento 3 s pode ser escolhido se o investimento 1 tambm for escolhido.
d) O investimento 2 no pode ser escolhido se o investimento 5 for escolhido.
e) Os investimentos 1 e 5 devem ser escolhidos ou nenhum deles escolhido.
f) Deve-se escolher pelo menos um dos investimentos 1, 3, 4 ou pelo menos dois investimentos de 2, 3, 5, 6.
g) Se os investimentos 2 e 3 forem escolhidos, ento o investimento 4 tambm tem de ser escolhido.
Exerccio 3.2 Uma empresa tem um capital disponvel e considera cinco projetos a serem executados nos prximos trs anos. Se um projeto escolhido, ele requer um investimento a cada
ano, e resulta em um rendimento anual aps o perodo de trs anos. O capital disponvel em cada
ano limitado. Os dados so indicados na Tabela 3.3. Formule o problema de selecionar projetos que maximizem o rendimento total.

Tabela 3.3
Investimento requerido
Ano 1
Ano 2
Ano 3

Projeto

Retorno anual aps trs anos

14

30

11

18

40

20

10

80

19

23

26

110

60

55

60

58

Capital disponvel

Tabela 3.4
Mquina

Custo de
preparao

Custo de processamento
3
4

40

28

50

49

31

33

35

20

16

63

27

41

77 Alguns exerccios so baseados naqueles apresentados por Winston (2004), Murty (1995), Wolsey (1998) e Pinedo (2005). Exerccios com smbolo * so mais completos

276

Pesquisa Operacional

Exerccio 3.3 Considere cinco itens que podem ser processados em qualquer uma de duas mquinas. Se uma mquina usada, incorre-se em um custo de preparao. O custo de processamento
de cada item depende da mquina utilizada. Esses custos so mostrados na Tabela 3.4. Formule
o problema de determinar qual mquina usar para processar todos os itens.
Exerccio 3.4 Seis itens podem ser colocados em um continer. O peso wi (em toneladas), o volume vi (em m3), e o valor ri (em unidades de R$1.000) de cada unidade do item i so dados na
Tabela 3.5. Existem cinco cpias do item 1, trs cpias do item 2, e para os demais itens existe
um nmero ilimitado de cpias. O continer suporta uma carga mxima de 90 toneladas, e tem
um volume de 50m3. Formule o problema de maximizar o valor da carga no continer.
Exerccio 3.5 Um treinador est tentando escalar seu time titular de basquete. Ele pode escolher entre sete jogadores classificados (em uma escala de 1 = ruim at 3 = excelente) de acordo
com suas habilidades em assistncia, arremesso, rebote e defesa. A Tabela 3.6 mostra a posio
em que cada jogador pode jogar e sua classificao nas habilidades citadas.

Tabela 3.5
Item i

wi

vi

ri

10

Tabela 3.6
Jogador

Posio

Liderana

Arremesso

Rebote

Defesa

D-A

A-C

D-A

A-C

D-A

Captulo 3: Otimizao discreta

277

Os cinco jogadores que compem o time para iniciar a partida devem atender s seguintes restries:
1. Pelo menos trs jogadores devem ser capazes de jogar na defesa (D), pelo menos dois devem ser capazes de jogar no ataque (A) e pelo menos dois devem ser capazes de jogar no
centro (C).
2. A mdia em assistncia, arremesso, rebote e defesa deve ser pelo menos dois.
3. Se o jogador 3 comea a partida, ento o jogador 6 no pode estar no time.
4. Se o jogador 1 comea a partida, ento os jogadores 4 e 5 tambm devem estar no time.
5. Ou o jogador 2 ou o jogador 3 devem comear a partida.
Formule o problema de maximizar a habilidade de defesa do time que inicia a partida.
Exerccio 3.6* Uma linha de montagem deve ser projetada para produzir um item. Uma operao pode ser iniciada desde que as operaes predecessoras tenham sido completadas. Essa informao e o tempo que um operador gasta para executar cada operao so mostrados na Tabela
3.7. Cada operador tem no mximo 45 segundos para trabalhar em um item e coloc-lo de volta na linha (tempo de ciclo). Um operador pode executar qualquer subconjunto de operaes
desde que o tempo de ciclo no seja excedido e as restries de precedncia de operaes sejam obedecidas. Determine a designao de operaes a operadores de modo a minimizar o nmero de
operadores.
Exerccio 3.7 Em cada dia da semana, uma loja requer um nmero de empregados em tempo
integral, de acordo com a Tabela 3.8. Cada empregado deve trabalhar cinco dias consecutivos e
descansar dois. Cada empregado recebe R$30 por dia.

Tabela 3.7
Operao

Predecessores imediatos

Tempo em segundos

15

19

1,2

11

17

12

21

5,6

10

Tabela 3.8

Empregados

Segunda

Tera

Quarta

Quinta

Sexta

Sbado

Domingo

10

278

Pesquisa Operacional

a) Determine o nmero de empregados em tempo integral de forma a minimizar a despesa


total com salrios.
b) Suponha que a loja permita um dia de trabalho adicional. Cada empregado ganha R$30
por dia nos cinco primeiros dias e R$50 no dia extra. Determine o nmero total de empregados para minimizar o custo total.
Exerccio 3.8 O analista de sistemas em uma universidade deseja acessar cinco diferentes arquivos
espalhados em dez diferentes discos, como mostrado na Tabela 3.9. A capacidade de armazenamento requerida em cada um dos discos : disco 1, 30GB; disco 2, 50GB; disco 3, 10GB; disco 4, 20GB; disco 5, 10GB; disco 6, 40GB; disco 7, 30GB; disco 8, 10GB; disco 9, 20GB; disco
10, 20GB.
a) Formule o problema que determina o conjunto de discos com a mnima capacidade de armazenamento requerida e que contenha todos os arquivos em pelo menos um disco. No
se pode utilizar apenas parte do disco.
b) Modifique sua formulao para atender seguinte restrio: se o disco 3 ou o disco 5 so
usados, ento o disco 2 deve ser usado.
Exerccio 3.9 Uma empresa siderrgica fabrica uma srie de produtos a partir de lingotes que
so moldados com o ao que sai dos altos-fornos. Se o lingote i usado para fazer o produto j,
incorre-se em uma perda de material cij. A empresa produz cem produtos diferentes e cada produto j s pode ser feito a partir de um lingote pertencente a um conjunto Ij. H 400 diferentes
formas de moldar os lingotes, mas, por restries do espao disponvel para estocagem, decidiuse que seriam mantidos estoques apenas de seis tipos de lingotes. Formule o problema de selecionar
os seis tipos de lingotes que minimizem a perda total de material.
Exerccio 3.10 Uma empresa tem quatro grupos de fornecedores que fornecem materiais eltricos
(ME), materiais hidrulicos (MH), bens perecveis (BP) e servios terceirizados (ST), respectivamente. A empresa recebe produtos ou servios de cada grupo fornecedor. O pagamento pode ser
feito imediatamente ou adiado. Para isso, a empresa considera a possibilidade de utilizar quatro
bancos, com o seguinte custo anual de manuteno de contas em cada banco: B1, R$60 mil; B2,
R$50 mil; B3, R$20 mil; B4, R$30 mil. Os bancos arcam com a dvida pelo nmero de dias indicado na Tabela 3.10. Aps isso, o saque feito na conta da empresa. A quantia emitida por banco no pode exceder R$85 mil. Assuma que o dinheiro investido pela empresa renda 20% ao ano.

Tabela 3.9
Disco
Arquivo

x
x

10

4
5

x
x

x
x

Captulo 3: Otimizao discreta

279

A dvida com cada grupo fornecedor mostrada na Tabela 3.11. Formule o problema de escolha de bancos a serem utilizados pela empresa, e a quantia a ser enviada de cada banco para cada
grupo fornecedor de forma a maximizar o lucro da empresa.
Exerccio 3.11* Existem n regies em um bairro, tal que a regio j, j = 1, ..., n tem aj clientes (por
exemplo, alunos) que requerem um servio. Existem m locais candidatos a instalaes (escolas)
para fornecer este servio. Se uma instalao localizada no local i, ento ela pode atender no
mximo ki clientes, i = 1, ..., m. O nmero mximo de instalaes que podem ser construdas
p. A distncia (ou tempo de viagem) entre a regio j e o local i dij, e a distncia mxima ou tempo que um cliente pode percorrer D.
a) Formule o problema de encontrar p locais para construir as instalaes e as alocaes de regies a instalaes construdas, de forma a maximizar o nmero total de clientes alocados
a instalaes dentro da distncia D.
b) Formule o problema de encontrar p locais para construir as instalaes e as alocaes de regies a instalaes construdas, de forma a minimizar a distncia total de todos os clientes
alocados a instalaes fora da regio de cobertura D.
Exerccio 3.12* Considere n tarefas a serem processadas em m mquinas paralelas. Cada tarefa
gasta uma unidade de tempo de processamento na mquina em que pode ser processada. Seja

1 se a mquina i pode processar a tarefa j


aij =
0 caso contrrio

Tabela 3.10
Fornecedor

B1

B2

B3

ME

MH

BP

12

ST

Tabela 3.11
Fornecedor

Dvida (R$)

ME

30.000

MH

50.000

BP

60.000

ST

80.000

B4

280

Pesquisa Operacional

Determine uma alocao factvel e balanceada de tarefas a mquinas, isto , a diferena entre
instantes de trmino de processamento entre quaisquer duas mquinas no mximo uma unidade de tempo.
Exerccio 3.13 Um grande banco tem informao de contas armazenada em uma rede de computadores interconectados. Cada agncia do banco deve ser designada a um processador. So dados:
pi = demanda de processamento da agncia i
vi = demanda de memria da agncia i
ti = capacidade de comunicao requerida pela agncia i
Pj , V j , T j = capacidade de processamento, memria e comunicao, respectivamente, do
processador j
k j = nmero mximo de agncias alocadas ao processador j
cij = custo da designao da agncia i ao processador j
Formule o problema de designao de custo mnimo de agncias a processadores.
Exerccio 3.14 Uma empresa requer um nmero de empregados rt em cada ms t de um horizonte de planejamento de dez meses. A empresa pode contratar em qualquer ms para preencher suas necessidades naquele ms ou em meses futuros. Incorre-se em um custo fixo st de
contratao no ms t, independentemente do nmero de empregados contratados. Se uma pessoa contratada no ms t1 para atender necessidades do ms t2 tal que t2 > t1 , ento esta pessoa paga como empregado excedente em cada ms t, de modo que t1 t t2 com custo mensal
adicional de ct. Os dados so indicados na Tabela 3.12. O custo total consiste no custo fixo de
contratao nos meses e no custo excedente de empregado. Formule o problema de recrutamento
de empregados ao longo do horizonte de planejamento de forma a minimizar o custo total.
Exerccio 3.15* Considere que cinco tarefas j = 1, ..., 5 devem ser executadas. Cada tarefa tem um
tempo de processamento pj e requer Wij operadores do tipo i, i = 1, 2, mostrados na Tabela 3.13.
Tabela 3.12
Ms t

rt

20

10

st

50

ct

14

25

25

11

51

52

63

67

61

49

52

68

54

Tabela 3.13
Tarefa

pj

17

13

W1j

W2j

10

Captulo 3: Otimizao discreta

281

O nmero total de operadores do tipo 1, W1, trs e do tipo 2, W2, sete. As tarefas tm relao
de precedncia, de acordo com a Tabela 3.14. Sugesto: defina uma varivel binria xjt, que assume
o valor 1 se o processamento da tarefa termina no instante t, e 0 em caso contrrio.
a) Desenhe um diagrama de Gantt com um programa factvel de execuo das cinco tarefas
b) Formule o problema de programao de n tarefas que minimize o instante de trmino de
processamento das tarefas (makespan).
Exerccio 3.16 Uma loja de eletrodomsticos que atende parte do estado de So Paulo detectou
que a demanda de seus clientes varia drasticamente em relao velocidade com que so atendidos. So vendidos eletrodomsticos em seis cidades: So Paulo, So Jos dos Campos, Santos,
Jundia, So Carlos e Rio Claro. A venda anual de eletrodomsticos depende da existncia ou no
de um representante do fabricante a menos de 100km da cidade, como mostra a Tabela 3.15. A
loja considera a alocao de representantes em Rio Claro, Santos, So Jos dos Campos e So Paulo.
A distncia (em km) entre as cidades dada na Tabela 3.16. Formule o problema de maximizao
do lucro da loja.
Exerccio 3.17 Um caminho de entrega de leo de uma empresa contm cinco compartimentos, com capacidade para 2.700, 2.800, 1.100, 1.800 e 3.400 gales de combustvel, respectivamente. A empresa deve entregar trs tipos de combustvel A, B e C para um cliente. Parte da
demanda pode no ser atendida, mas, neste caso, a empresa deve arcar com os custos. As demandas, penalidades por galo no entregue e o nmero mximo de gales de demanda no atendida so descritos na Tabela 3.17. Cada compartimento pode levar apenas um tipo de combustvel.
Formule o problema de carregar o caminho de forma a minimizar os custos de no-atendimento
da demanda.

Tabela 3.14
Tarefa

Predecessores imediatos

Sucessores imediatos

2,3

Tabela 3.15
Representante
a menos de 100km?

S.J. Campos

Vendas
Santos
Jundia

So Paulo

So Carlos

Rio Claro

Sim

700

1000

900

800

400

450

No

500

750

700

450

200

300

282

Pesquisa Operacional

Exerccio 3.18 No tratamento de tumores cerebrais com radiao, os mdicos desejam bombardear o tecido que contm os tumores com o mximo de radiao possvel, respeitando o limite
mximo que o tecido normal pode receber sem ser danificado. Em uma simplificao, suponha
seis tipos de feixes de radiao. Cada feixe possui uma intensidade e um alvo diferente no tecido.
A regio que contm um tumor pode ser dividida em seis regies: trs normais e trs com tumor.
Para cada feixe, a Tabela 3.18 indica a quantidade de radiao que atinge cada uma das regies.
Exerccio 3.19 A nova poltica implementada em uma cidade do interior de Minas Gerais impe que 20% dos alunos matriculados em cada escola de ensino mdio devem ser negros. A cidade composta por cinco bairros e duas escolas. O nmero de estudantes negros e brancos em
cada um dos cinco bairros mostrado na Tabela 3.19. A Tabela 3.20 mostra a distncia percorrida por aluno para chegar a cada escola (em km). Assumindo que cada escola deve ter no mnimo 150 alunos, formule o problema que associa cada bairro a uma das escolas para minimizar
a distncia total que os estudantes da cidade devem percorrer para ir escola.
Exerccio 3.20* Uma siderrgica recebeu um pedido de 25 toneladas de ao. O carbono e o
molibdnio devem ser responsveis por 5% e 4% do peso total, respectivamente. O ao produzido combinando-se trs tipos de metal: lingotes de ao, ao de sucata e ligas de ao. Quatro lingotes esto disponveis para compra. O peso (em toneladas), o custo por tonelada e a porcentagem
de carbono e de molibdnio de cada lingote so mostrados na Tabela 3.21. O lingote deve ser
comprado integralmente, mas pode-se usar apenas parte de seu peso total na mistura final. A

Tabela 3.16
Rio Claro

So Paulo

S.J. Campos

Santos

Rio Claro

175

232

246

So Paulo

175

89

105

S.J. Campos

232

89

95

Santos

246

105

95

So Carlos

64

169

290

304

Jundia

95

60

141

131

Tabela 3.17
Combustvel

Demanda

Custo por galo


no entregue

Mximo de demanda
no atendida

2900

10

500

4000

500

4900

500

Captulo 3: Otimizao discreta

Tabela 3.18

Normal
2

Tumor
2

16

12

20

12

12

10

18

15

13

13

10

17

12

12

18

16

11

13

14

10

10

10

Feixe

Tabela 3.19
Bairro

Brancos

Negros

80

30

70

90

10

50

40

60

30

Tabela 3.20
Bairro

Escola 1

Escola 2

1,6

3,2

0,8

2,7

1,3

1,3

0,8

2,7

2,1

0,6

2,4

1,0

283

284

Pesquisa Operacional

Tabela 3.22 mostra os trs tipos de ligas de ao que podem ser compradas (qualquer quantidade em toneladas est disponvel). A sucata pode ser comprada a R$50 por tonelada e contm 3%
de carbono e 9% de molibdnio. Formule o problema para minimizar o custo total da siderrgica no atendimento do pedido.
Exerccio 3.21 Uma construtora considera a construo de trs prdios. O tempo gasto e o nmero de trabalhadores necessrios para completar cada um desses prdios so mostrados na Tabela
3.23. Os prdios 1, 2 e 3, quando construdos, fornecem um lucro anual de R$70 mil, R$50 mil
e R$60 mil, respectivamente. A construtora conta com no mximo 60 trabalhadores por ano. Apenas um prdio pode ser comeado a cada ano e, alm disso, o prdio 2 deve estar completo ao
final do ano 4. Formule o problema que maximize o lucro total da construtora ao final do ano 4.
Exerccio 3.22 Um novo shopping acaba de ser construdo e seu dono precisa determinar que
tipos de lojas podero alugar o espao disponvel. O shopping conta com 1.000m2 de rea total. A Tabela 3.24 mostra a rea ocupada por tipo de loja, assim como o nmero mnimo e m-

Tabela 3.21
Lingote

Peso (ton)

Custo por ton (R$)

Carbono (%)

Molibdnio (%)

150

138

115

75

Tabela 3.22
Liga

Custo por ton (R$)

Carbono (%)

Molibdnio (%)

270

215

186

Tabela 3.23
Prdio

Tempo deconstruo (anos)

Nmero de trabalhadores

30

20

20

Captulo 3: Otimizao discreta

285

ximo de lojas daquele tipo que podem existir no shopping. O lucro anual de cada loja depende de quantas outras lojas do mesmo tipo existem no shopping, como mostrado na Tabela 3.25
em unidades de R$10 mil. Cada loja paga um aluguel ao shopping correspondente a 5% do
lucro anual. Formule o problema de maximizao de lucro do shopping.
Exerccio 3.23 Uma termeltrica tem trs caldeiras. Se uma caldeira utilizada, ela pode produzir uma quantidade de vapor (em toneladas) entre um mximo e um mnimo, como indicado na Tabela 3.26. Essa tabela tambm mostra o custo de produo de 1 tonelada de vapor em

Tabela 3.24
Tipo de loja

rea (m2)

Mnimo

Mximo

60

150

Jias

50

Livros

70

Roupas

90

Calados
Departamentos

Tabela 3.25
Tipo de Loja
1

Nmero de lojas
2

Calados

11

Departamentos

29

17

15

Jias

14

12

Livros

22

11

Roupas

25

15

10

Tabela 3.26
Caldeira

Mnimo (ton)

Mximo (ton)
produzida (R$)

Custo por tonelada

500

1.000

20

300

900

17

400

800

13

286

Pesquisa Operacional

cada uma das caldeiras. O vapor utilizado na alimentao de trs turbinas. A Tabela 3.27 mostra a
quantidade mnima e mxima de vapor que cada turbina pode processar e a quantidade de energia liberada por tonelada de vapor processado. Essa tabela mostra, ainda, o custo do processamento de uma tonelada de vapor em cada turbina. Formule o problema que minimize o custo
de produo de 8.000Kwh de energia.
Exerccio 3.24 Um ecologista brasileiro, trabalhando na Amaznia, foi contratado para realizar
a diviso de parte da floresta em reservas florestais. Estudos recentes dividiram a floresta em dez
regies. O trabalho do ecologista consiste em formar cinco reservas a partir dessas informaes,
observando o nmero de predadores e presas que cada regio contm. A Tabela 3.28 mostra esses dados para cada regio (em milhares). Os animais no podem ser removidos de sua regio, e
cada reserva deve conter entre 80 mil e 130 mil animais. Sabe-se que o ideal que o nmero de
presas deve ser maior que o nmero de predadores em uma reserva, para garantir o equilbrio entre as espcies. Formule um problema para ajudar o ecologista a formar as cinco reservas garantindo o mximo equilbrio ambiental.

Tabela 3.27
Turbina

Mnimo (ton)

Mximo (ton)

Kwh por tonelada


de vapor

Custo por tonelada


processada (R$)

300

600

500

800

600

900

Tabela 3.28
Regio

Predadores

Presas

40

17

29

24

20

22

25

22

20

57

19

32

37

10

11

35

27

10

35

32

Captulo 3: Otimizao discreta

287

Exerccio 3.25 Resolva o problema de programao inteira:


z = max x1 + x2
2 x1 + 2 x 2 3
7 x1 + 3 x2 22
x Z +2
a) De forma grfica.
b) Pelo mtodo branch-and-bound, utilizando duas estratgias de escolha de n: em profundidade e maior limitante superior (no n raiz, ramifique na varivel x1).
c) Pelo mtodo de Gomory.
Exerccio 3.26 Resolva o problema da mochila 0-1 pelo mtodo branch-and-bound:
z = max10 x1 + 15 x2 + 36 x3 + 20 x4 + 15 x5 + 18 x6 + 20 x7
10 x1 + 17 x2 + 49 x3 + 30 x4 + 11x5 + 21x6 + 31x7 100

x B7
a) Aplique a estratgia do n com maior limitante superior.
b) Aplique a estratgia de busca em profundidade, escolhendo o n com a restrio .
Exerccio 3.27 Considere o problema 0-1:
z = max 5 x1 7 x2 10 x3 + 3 x4 5 x5
x1 + 3 x2 5 x3 + x4 + 4 x5 0
2 x1 6 x2 + 3 x3 2 x4 2 x5 4
2 x2 2 x3 x4 + x5 2
Simplifique usando desigualdades lgicas.

x B5

Exerccio 3.28 Para cada um dos quatro conjuntos abaixo, determine graficamente conv(X).
a) X = {x B 2 : 5 x1 7 x2 2}
b) X = {( x, y ), x R+1 , y B1 : x 15 y, x 8}
c) X = {( x, y ), x R1+ , y Z1+ : x 5 y, x 12}
d) X = {x Z +2 : 2 x1 + 7 x2 18, x2 x1 5, 2 x1 + 9 x2 20}
Exerccio 3.29 Para o conjunto X = {x Z +4 : 2 x1 + 6 x2 + 15 x3 + 10 x4 20} , identifique uma de4
sigualdade vlida que corte o ponto x = (0, 0, , 0) .
3
Exerccio 3.30 Mostre que a desigualdade x2 + x3 + 2 x4 6 vlida para
X = {x Z +4 : 6 x1 + 7 x2 + 10 x3 + 14 x5 40}
Exerccio 3.31 Considere os problemas de localizao de facilidades com capacidade limitada sem/
com fonte nica, descritos na Seo 3.5.2. Mostre que a desigualdade

Qi yi q j
iI

vlida.

jJ

Pgina deixada intencionalmente em branco

Otimizao em redes

Muitos problemas prticos de otimizao podem ser melhor analisados utilizando-se uma estrutura
especial denominada grafo ou rede. Problemas de otimizao em redes aparecem em diversas aplicaes e em diversas formas. Algumas delas envolvem o transporte ou fluxo de um item ou itens
de um n a outro na rede com um determinado objetivo. As aplicaes surgem na transmisso de
mensagens em redes de comunicao de dados, no envio de gua em uma rede de distribuio de
gua, no transporte de carga em uma rede viria etc. Em outras aplicaes, primeira vista, no
se observa relao direta com grafos ou redes, como no planejamento e na programao da produo, programao de projetos, programao de mquinas e de pessoal, distribuio de bens etc.
Exemplos de otimizao em redes nos captulos anteriores aparecem nas Sees 2.2.2 (transporte,
transbordo e designao), 2.2.4 (programao de projetos), 2.2.5 (fluxo de caixa), 3.4.5 (caixeiro-viajante), 3.4.6 (carteiro chins), 3.5.1 (roteamento de veculos), entre outros.
Neste captulo, apresentamos alguns problemas que exibem esta estrutura especial, que pode
ser explorada para o desenvolvimento de mtodos mais eficientes de resoluo. Iniciamos o captulo apresentando algumas noes bsicas de redes.

4.1 NOES BSICAS DE REDES E GRAFOS


Em muitos problemas podemos identificar conjuntos de elementos fundamentais, os quais mantm uma relao entre si, como, por exemplo, um conjunto de cidades e um conjunto de estradas
que ligam as cidades diretamente, ou um conjunto de reservatrios e bairros em uma cidade e a
rede de aquedutos ligando-os, ou um conjunto de tarefas e a relao de precedncia entre elas etc.
Supomos neste livro que o nmero de elementos fundamentais finito, de modo que podemos enumer-los, v1, v2, ..., vn ou, simplesmente, 1, 2, ..., n. Estes elementos fundamentais so
chamamos de vrtices ou ns. Para indicar que o vrtice i se relaciona com o vrtice j, usamos o
par (vi, vj) ou, simplesmente, (i,j).
Definio 4.1 (grafo e rede) Seja N um conjunto finito, cujos elementos so chamados ns (ou vrtices) e E um conjunto de pares de ns, cujos elementos (i,j) so chamados arestas. O par
G=(N, E) chamado grafo. Uma rede um grafo cujos ns e/ou arestas tm valores associados.
Por simplicidade, a menos que possa haver alguma confuso para o entendimento, neste livro
no fazemos distino entre os termos grafos e redes. Os dois termos so usados como sinnimos.
O nmero de elementos de um conjunto X chamado cardinalidade de X e denotamos por
|X|. Assim, se um grafo G = (N, E) tem n ns e m arestas, significa que |N| = n e |E| = m (isto
, a cardinalidade de N n e a cardinalidade de E m).
289

290

Pesquisa Operacional

Um grafo G = (N, E) pode ser representado graficamente da seguinte maneira. Cada n i


representado por um crculo com o rtulo i, e cada aresta (i,j) por uma linha conectando os dois
crculos rotulados de i e j.
Exemplo 4.1 Considere o conjunto de ns N = {1, 2, 3, 4} e o conjunto de arestas E={(1, 2),
(1, 4), (4, 3), (2, 3), (2, 4)}. A representao grfica do grafo G = (N, E) ilustrada na Figura 4.1.
n

Neste exemplo, os ns {1, 2, 3, 4} podem representar quatro cidades e as arestas representar


as estradas ligando-as diretamente, ou podem representar quatro computadores e as arestas, cabos de fibra ptica conectando-os, ou podem representar quatro componentes eletrnicos em um
circuito integrado e as arestas, as ligaes entre eles etc.
Se uma aresta (i, j) pertence a E, dizemos que a aresta (i, j) incidente nos ns i e j, e estes
ns so adjacentes. Por exemplo, no grafo do Exemplo 4.1, os ns 1 e 4 so adjacentes, a aresta
(1, 4) incidente nos ns 1 e 4; e os ns 1 e 3 no so adjacentes.
As arestas que representam as relaes entre os ns podem ser orientadas ou no. Nos exemplos apresentados anteriormente, as orientaes so irrelevantes. o caso, por exemplo, de uma
aresta que representa uma estrada de mo dupla entre duas cidades em que possvel ir de uma
cidade a outra, e vice-versa. O mesmo no se poderia dizer se a estrada fosse de mo nica. O
grafo cujas arestas no tm orientao denominado grafo no orientado, em contrapartida ao grafo
cujas arestas so todas orientadas, que denominado grafo orientado, formalizado a seguir.
Definio 4.2 (grafo orientado e rede orientada) Um grafo G = (N, E) no qual as arestas so pares
ordenados (subconjunto de N N) chamado grafo orientado ou dgrafo. Neste caso, o par ordenado (i,j) chamado arco, e i o n inicial e j o n final.1 Uma rede orientada um grafo orientado cujos ns e/ou arcos tm valores associados.
Um grafo orientado representado graficamente de forma anloga ao grafo, porm, o arco (i,j)
representado por uma flecha de i para j, indicando a orientao relevante. Dada a orientao
do arco (i,j), dizemos que o arco de sada (ou emergente) do n i e de entrada no n j. O n
inicial i chamado de n cauda do arco (i,j) e o n final j chamado de n cabea do arco (i,j).
O arco (i,j) incidente nos ns i e j, e o n j adjacente ao n i, mas no o reverso, a no ser
que o arco (j,i) tambm pertena a E.
A cada aresta ou arco (i,j) E pode existir um ou mais valores numricos associados (por
exemplo, cij, lij, uij, ) representando parmetros relativos aresta ou ao arco, por exemplo, custo ou comprimento da aresta ou do arco, limite inferior do fluxo sobre a aresta ou o arco, limite
superior do fluxo sobre a aresta ou o arco etc. A cada n i N pode existir um ou mais valores
numricos associados di, por exemplo, a demanda ou suprimento, a capacidade do n etc. Os va-

Figura 4.1

Exemplo de representao de um grafo.

1 Neste caso, alguns autores preferem a notao G(N, A), em que A o conjunto de arcos (i, j). Por simplicidade, neste livro usamos a notao G(N, E) para grafos orientados e no-orientados.

Captulo 4: Otimizao em redes

291

lores associados s arestas ou aos arcos podem ser indicados sobre eles, e os valores associados aos
ns podem ser indicados ao lado deles em uma representao grfica.
Exemplo 4.2 Considere o conjunto de vrtices N = {1, 2, 3, 4}, o conjunto de arcos E = {(1, 2),
(1, 4), (4, 3), (2, 3), (2, 4)} e os valores associados a cada arco, c12 = 2, c14 = 5, c23 = 1, c24 = 1 e c43
= 3. A representao grfica da rede orientada ilustrada na Figura 4.2.
n
Os ns do Exemplo 4.2 podem representar quatro tarefas que devem ser executadas, e os arcos, a relao de precedncia entre elas (por exemplo, a tarefa 2 s pode ser executada depois que
a tarefa 1 for concluda). Os valores associados aos arcos podem representar tempos de espera,
ou seja, para que uma tarefa possa ser executada, preciso esperar um tempo aps o trmino da
tarefa que a precede (por exemplo, preciso esperar a parede secar aps a tarefa pintura, antes de comear a tarefa colocar os lustres, na construo de uma casa).
Definio 4.3 (caminho) Um caminho de um n i0 a um n ik uma seqncia de arcos C = {(i0,i1),
(i1,i2), (i2,i3), , (ik-1,ik)}, no qual o n inicial de cada arco o n final do arco imediatamente
anterior na seqncia, e i0, i1, i2, i3, , ik so todos ns distintos. Portanto, todos os arcos em um
caminho esto direcionados coerentemente, apontando do n i0 ao n ik (n cabea do arco precedente para o n cauda do arco seguinte).
Por exemplo, no grafo da Figura 4.2, um caminho possvel do n 1 ao n 3 seria {(1, 2),
(2, 4), (4, 3)}.
Definio 4.4 (cadeia) Uma cadeia uma estrutura similar de um caminho, exceto que os arcos no
precisam estar coerentemente orientados, ou seja, uma cadeia uma seqncia de arcos de modo que
cada arco tem exatamente um n em comum com o arco imediatamente anterior na seqncia.
Por exemplo, no grafo da Figura 4.2, uma cadeia do n 1 ao n 4 poderia ser {(1, 2), (2, 3),
(4, 3)}. Note que todo caminho uma cadeia, mas nem toda cadeia um caminho.
Definio 4.5 (circuito, ciclo) Um circuito um caminho fechado, ou seja, um caminho de um
n i0 a um n ik, em que ik= i0. O correspondente ao circuito, no caso da cadeia, denominado
ciclo, ou seja, o ciclo uma cadeia fechada (um n, inicial ou final, do primeiro arco da seqncia coincide com um n, inicial ou final, do ltimo arco da seqncia).
Na Figura 4.2, no h nenhum circuito, mas apenas ciclos, por exemplo, os ciclos {(2, 3), (4,
3), (2, 4)} e {(1, 4), (2, 4), (1, 2)}. Neste caso, dizemos que o grafo acclico, caso contrrio seria cclico. As definies anteriores so para caminhos, cadeias, ciclos e circuitos simples. Existem extenses para casos mais complexos mas no so consideradas neste livro.2

Figura 4.2

Exemplo da representao grfica de uma rede orientada.

2 Estas definies podem ser encontradas, por exemplo, em Boaventura Netto (2003).

292

Pesquisa Operacional

Definio 4.6 (grafos fraca e fortemente conectados) Um grafo fracamente conectado (ou simplesmente
conectado) se existe pelo menos uma cadeia entre quaisquer dois de seus ns, e fortemente conectado
se existe pelo menos um caminho de cada n a todos os demais ns do grafo.
Para facilitar a apresentao e sem perda de generalidade, admite-se que os grafos considerados neste livro so sempre fracamente conectados.
Definio 4.7 (rvore, subgrafo e rvore geradora de um grafo) Uma rvore um grafo conectado sem
ciclos. Diz-se que um grafo G = (N, E) um subgrafo de G = (N, E) se N N e E E, com
a condio de que, se (i,j) E, ento i e j tambm devem pertencer a N. Uma rvore geradora
de um grafo G um subgrafo de G que uma rvore e inclui todos os ns do grafo G.
rvores geradoras so de grande interesse no estudo de fluxos em redes e a seguir apresentamos algumas propriedades teis para caracteriz-las.
Propriedade 4.1 (rvores geradoras) Considere um grafo G = (N, E), com |N| = n (isto , G tem
n ns), e um subgrafo G = (N, E) de G. As seguintes afirmaes so equivalentes:
i) G = (N, E) uma rvore geradora de G
ii) |E| = n 1 (isto , G tem n 1 arcos) e G conectado
iii) |E| = n 1 e G no tem ciclos
Em palavras, toda rvore geradora de um grafo com n ns tem n 1 arcos e basta que seja um
subgrafo conectado ou sem ciclos.
Exemplo 4.3 Na Figura 4.3, ilustramos algumas rvores geradoras do grafo apresentado na Figura
4.2. O leitor pode verificar a validade das propriedades de rvores geradoras.

Figura 4.3

Exemplos de rvores geradoras do grafo da Figura 4.2.

Captulo 4: Otimizao em redes

293

Para evidenciar as propriedades das rvores geradoras, na Figura 4.4, ilustramos alguns subgrafos
do grafo apresentado na Figura 4.2, com n 1 = 3 arcos, mas que no so rvores (note que necessariamente formam ciclos e so desconectados. Por qu?).
Representao matricial de grafos

Um grafo tambm pode ser representado por matrizes de diversas formas. Essas matrizes so teis na
formalizao de modelos matemticos de certos problemas que podem ser representados por grafos.
Tais representaes tambm podem ser teis para armazenar o grafo (ou rede) no computador.
Definio 4.8 (Matriz de adjacncias) Seja G = (N, E) um grafo em que |N| = n. A matriz M = [mij]
n n tal que mij = 1 se (i,j) E e mij = 0, caso contrrio chamada matriz de adjacncias.
Exemplo 4.4 Os grafos nos Exemplos 4.1 (no orientado) e 4.2 (orientado) so representados, respectivamente, pelas seguintes matrizes de adjacncias:
1 2
0
1

M = 0

3 4

1 0 1
0 1 1
1 0 1

1 1 0

1 2
1
2
3
4

0
0

M = 0

3 4

1 0 1
0 1 1
0 0 0

0 1 0

1
2
3
4

Note que a matriz de adjacncias de grafos no orientados sempre simtrica (M = M ). No


caso de uma rede, com o valor cij 0 associado ao arco (i, j), podemos colocar essa informao
em M, fazendo mij = cij para todo (i,j) E e mij = 0 em caso contrrio.
Uma outra forma bastante utilizada para representao de um grafo a matriz de incidncia naresta ou n-arco.
T

Definio 4.9 (Matriz de incidncia n-aresta) Seja G = (N, E) um grafo no orientado em que |N|
= n e |E| = m. A matriz P=[pik], n m, tal que
pik = 1 se a aresta k definida por (i,j) E ou (j,i) E (ou seja, a aresta k incidente ao
n i) e
pik = 0 caso contrrio
chamada matriz de incidncia n-aresta.

Figura 4.4 Exemplos de subgrafos com trs arcos que no so rvores geradoras do grafo da Figura 4.2.

294

Pesquisa Operacional

Definio 4.10 (Matriz de incidncia n-arco) Seja G = (N, E) um grafo orientado em que |N|=n
e |E|=m. A matriz P = [pik], n m, tal que
pik = +1 se o arco k (i,j) (isto , o arco k sai do n i)
pik = 1 se o arco k (j,i) (isto , o arco k entra no n i) e
pik = 0 caso contrrio
chamada matriz de incidncia n-arco.
Exemplo 4.5 Os grafos dos Exemplos 4.1 e 4.2 podem ser representados, respectivamente, pelas
seguintes matrizes de incidncia n-aresta e n-arco:
(1,2) (1,4) (2,3) (2,4) (3,4)

1
1
P= 0

1
0

0
1

0
1

0
1

1
0

0
1

0 1
0 2

1 3

1 4

(1,2)

1
-1
P= 0

(1,4)

(2,3) (2,4)

0
0
-1

1
-1
0

1
0
-1

(4,3)
0
0

-1

1
2
3
4
n

Outras representaes de redes*

Uma representao adequada de redes pode influenciar o tempo que um algoritmo requer para
resolver o problema em um computador. Assim, existem outras representaes de grafos (redes)
em computadores que economizam espao de memria e recuperam rapidamente informaes
de adjacncia entre ns.3
Uma delas por listas de adjacncias de ns. Uma lista de adjacncia de ns, A(i), do n i,
o conjunto de ns adjacentes ao n i, ou seja, A(i) = {j N tal que (i,j) E}. Uma representao da lista de adjacncia de ns armazena, simplesmente, a lista de adjacncia de cada n utilizando uma lista encadeada simples. A lista encadeada referente lista A(i) encadeia |A(i)| clulas,
cada uma delas com vrios campos. Nestes campos, todos os dados de interesse do arco que liga
o n i ao n em A(i) so armazenados. Cada clula representa um arco (i,j) em que j A(i). Em
um dos campos da clula, armazena-se o n j correspondente ao arco (i,j); em outro campo da
clula, armazena-se um ponteiro que aponta para o endereo da prxima clula da lista. Se no
existem mais clulas, o ponteiro aponta para o endereo 0. A lista inicia com uma clula mais simples, com apenas dois campos. No primeiro campo, armazena-se o prprio n i e, no segundo
campo, armazena-se um ponteiro que aponta para a primeira clula da lista de adjacncias de i.
Se a lista de adjacncias vazia, aponta-se para o endereo 0. A Figura 4.5 esquematiza a lista
encadeada simples referente a um determinado n i, em que A(i)={j,k, , s}.
A seguir, apresentamos um exemplo de representao por lista de adjacncia de um grafo.

Figura 4.5 Lista encadeada simples de um n i.


3 Ver, por exemplo, Ahuja et al. (1993).

Captulo 4: Otimizao em redes

295

Exemplo 4.6 A representao por lista de adjacncia da rede do Exemplo 4.2 apresentada na
n
Figura 4.6.
Uma outra representao similar lista de adjacncia de ns a representao por ns sucessores e predecessores. Esta representao no utiliza listas encadeadas, mas simplesmente tabelas. Inicialmente, associa-se uma seqncia nica de nmeros a cada arco do grafo, iniciando pelo
nmero 1, e determinando uma ordem dos arcos. Estes so numerados em ordem: primeiro todos os arcos que emergem do n 1, depois todos os arcos que emergem do n 2, e assim por diante, at o n n (admitindo-se um grafo com n ns, ou seja, |N| = n). Com isso, todos os arcos que
emergem de um mesmo n tm numerao sucessiva. A ordem de numerao dos arcos que
emergem de um mesmo n no importante. Se |E| = m, isto , o nmero de arcos do grafo m,
armazenam-se as informaes em uma tabela T de tamanho (m (k + 2)), em que k o nmero
de informaes de interesse associadas aos arcos. Cada linha da tabela T armazena as informaes sobre cada arco da lista de arcos, conforme a sua numerao; a linha 1 da tabela armazena
as informaes do arco 1, a linha 2 da tabela armazena as informaes do arco 2, e assim por diante.
A tabela T possui k + 2 colunas, contendo as seguintes informaes relevantes dos arcos: o n
cauda, o n cabea, a informao tipo 1 de interesse do arco, a informao tipo 2 de interesse do
arco, , a informao tipo k de interesse do arco. Em um vetor s, com n+1 elementos, faz-se
si (correspondente ao n i) igual ao menor nmero do arco dentre todos aqueles que emergem
do n i. Com isso, as informaes relevantes dos arcos que emergem do n i (conseqentemente, os ns sucessores de i) podem ser obtidas da tabela T diretamente de suas linhas si at si+1 1,
em que se define que sn+1 = m+1. Se si+1 1 for menor que si, ento no h arcos emergindo
de i. Essa representao apresentada por ns sucessores pelo fato de considerar os arcos que
emergem de cada n na rede. Um exemplo dessa representao apresentado a seguir.
Exemplo 4.7 Para representar a rede do Exemplo 4.2 por ns sucessores, precisamos numerar
os arcos. Enumeremos os arcos do grafo da seguinte forma: (1, 2) arco 1; (1, 4) arco 2;
(2, 4) arco 3; (2, 3) arco 4; (4, 3) arco 5, ou seja, m = 5. A tabela T correspondente rede
do Exemplo 4.2 fica, portanto,

1
1
T = 2

2
4

2
4
4
3

2
5

3 3

Figura 4.6 Lista de adjacncia da rede do Exemplo 4.2.

296

Pesquisa Operacional

em que temos apenas trs colunas, pois h apenas uma informao de interesse correspondente
a cada arco no grafo, indicado na coluna 3 de T. Neste exemplo, temos 4 ns, portanto, n = 4.
O vetor s, com n+1 = 5 elementos, fica, portanto, s = [1 3 5 5 6]T, ou seja, s1 = 1, s2 = 3,
s3 = 5, s4 = 5 e s6 = 6. Com o vetor s, sabemos que os dados dos arcos que emergem do n 1 esto
nas linhas s1 at s2 1 da tabela T, isto , linhas 1 e 2; os dados dos arcos que emergem do n
2 esto nas linhas s2 at s3 1, ou seja, linhas 3 e 4 da tabela T; os dados dos arcos que emergem
do n 3 esto nas linhas s3 at s4 1, ou seja, no h arcos emergindo do n 3, pois s3 = 5 e
s4 1 = 4; os dados dos arcos que emergem do n 4 esto nas linhas s4 at s5 1, ou seja, linha 5
n
da tabela T.
A coluna 1 da tabela T (ns cauda) nesta representao por ns sucessores desnecessria
(redundante), pois os ns cauda podem ser obtidos pelo vetor s. Entretanto, por convenincia,
mantivemos essa coluna porque utilizaremos essa matriz T mais adiante em uma representao mais geral.
A representao por tabelas apresentada foi por ns sucessores. De maneira similar, podemos
fazer uma representao por tabelas por ns predecessores. Neste caso, a numerao dos arcos
feita pelos ns que chegam a cada n i. Os arcos so numerados em ordem: primeiro todos os
arcos que chegam ao n 1, depois todos os arcos que chegam ao n 2, e assim por diante, at o
n n. Com isso, todos os arcos que chegam a um mesmo n tm numerao sucessiva. A ordem
de numerao dos arcos que chegam a um mesmo n no importante. Uma matriz T de informaes dos arcos construda, similar matriz T. No vetor p, similar a s, com n+1 elementos, faz-se pi (correspondente ao n i) igual ao menor nmero do arco dentre todos os que chegam
ao n i. Com isso, as informaes relevantes dos arcos que chegam ao n i podem ser obtidas da
tabela T nas linhas pi at pi+1 1, definindo-se pn+1 = m+1. Se pi+1 1 < pi, ento no h arcos
chegando ao n i.
Exemplo 4.8 Para representar a rede do Exemplo 4.2 por ns predecessores, precisamos numerar os arcos. Enumeremos os arcos do grafo da seguinte forma: (1,2) arco 1; (2,3) arco 2;
(4,3) arco 3; (1,4) arco 4; (2,4) arco 5. A tabela T correspondente rede fica, portanto,

1
2

T = 4
1
2

2
3
3
4

2
1

4 1

e o vetor p fica p = [1 1 2 4 6]T, ou seja, deste vetor, sabemos que no h arcos chegando ao n
1, pois p1 = 1 e p2 1 = 0; os dados dos arcos que chegam ao n 2 esto nas linhas p2 at p3 1,
ou seja, linha 1 da tabela T; os dados dos arcos que chegam ao n 3 esto nas linhas p3 at
p4 1, ou seja, linhas 2 e 3 da tabela T; os dados dos arcos que chegam ao n 4 esto nas linhas
p4 at p5 1, ou seja, linhas 4 e 5 da tabela T.
n
Da representao por ns sucessores, podem ser derivados os ns predecessores de cada n
no grafo, e vice-versa. Em um algoritmo, para que se ganhe em eficincia (tempo de execuo),
pode ser interessante ter-se rapidamente essa informao dos ns predecessores e sucessores dos
ns do grafo, sem que elas precisem ser derivadas quando necessrias. Assim, para ter esse ganho
de eficincia, poderamos armazenar ambas as representaes apresentadas anteriormente. Observe, pelos Exemplos 4.7 e 4.8, que as tabelas T e T contm os mesmos dados, apenas em linhas diferentes. Assim, possvel fazer uma representao compacta dessas duas representaes
(por ns sucessores e predecessores), armazenando a tabela T, os vetores p e s e mais um vetor
de converso que identifica as linhas trocadas entre T e T.

Captulo 4: Otimizao em redes

297

Exemplo 4.9 O vetor de converso das representaes apresentadas nos Exemplos 4.7 e 4.8 c
= [1 4 5 2 3]T, ou seja, a linha 1 da tabela T a linha c1 da tabela T, ou seja, a prpria linha 1; a
linha 2 da tabela T a linha c2 da tabela T, ou seja, a linha 4; a linha 3 da tabela T a linha c3
da tabela T, ou seja, a linha 5; a linha 4 da tabela T a linha c4 da tabela T, ou seja, a linha 2; e
n
a linha 5 da tabela T a linha c5 da tabela T, ou seja, a linha 3.

4.2 ALGUMAS APLICAES E MTODOS DE RESOLUO


Muitas aplicaes prticas importantes podem ser modeladas como problemas de otimizao em
grafos e mtodos de soluo eficientes podem ser desenvolvidos. A seguir apresentamos alguns
exemplos.
4.2.1 O problema de caminho mnimo

Um dos problemas mais simples em grafos o de determinar o caminho mnimo entre dois ns no
grafo. Este problema aparece com freqncia em aplicaes prticas, tanto diretamente quanto
como um subproblema de outros mais difceis.4 Para introduzir o problema, apresentamos alguns
exemplos.
Exemplo 4.10 Suponha a entrega de uma mercadoria do depsito de uma fbrica at o endereo
do cliente. Qual o menor caminho a percorrer? Este problema pode ser modelado como um problema de otimizao em redes. Construa um grafo cujos ns correspondem s esquinas das ruas
da cidade e inclua mais dois ns correspondentes ao depsito e ao endereo do cliente. Os arcos do grafo correspondem s ruas que ligam as esquinas, e o depsito e o endereo do cliente
s esquinas de suas ruas. Qualquer caminho no grafo partindo do n do depsito ao n do endereo do cliente corresponde a um caminho real pela cidade, do depsito ao endereo do cliente. Definindo um valor para cada arco igual ao comprimento do trecho correspondente de cada
rua, ento o valor do caminho a soma dos valores dos arcos no caminho. O menor caminho a
percorrer equivale, ento, a encontrar no grafo o caminho de menor valor entre o n do depsito ao n do endereo do cliente.
n
Exemplo 4.11 Suponha que um vendedor de material hospitalar da cidade de So Paulo pretenda viajar a Fortaleza para visitar um cliente importante. Ele deve ir de carro, utilizar as estradas
principais e visitar outros clientes ao longo do caminho. O vendedor tem uma estimativa mdia
da comisso que deve ganhar de cada um de seus clientes no caminho e deve atingir seu objetivo.
Que rota ele deve escolher entre So Paulo e Fortaleza? Construa um grafo cujos ns correspondem s junes das estradas principais e os arcos correspondem s estradas que unem os respectivos ns. Faa o comprimento de cada arco no grafo igual ao custo lquido esperado naquele
trecho de estrada correspondente. O custo lquido esperado igual ao custo das despesas rodovirias (supostamente conhecidas: gasolina, pedgios, manuteno etc.), menos a comisso esperada naquele trecho de estrada. O vendedor deve escolher a rota correspondente ao menor
caminho neste grafo do n que representa a juno da estrada em So Paulo ao n que representa
a juno da estrada em Fortaleza. Os valores de alguns dos arcos podem ser negativos, indicando que o vendedor espera ter lucros ao passar naqueles trechos.
n
Exemplo 4.12 Considere uma empresa que produz determinado produto em lotes. A produo
feita em lotes pois h um custo fixo de preparao cada vez que se inicia a produo, independen4 Ver, por exemplo, Ahuja et al. (1993) para uma discusso de diversas aplicaes deste problema.

298

Pesquisa Operacional

temente da quantidade a ser produzida. Admita que se pretende determinar o plano de fabricao
desse produto nos prximos T perodos e que o custo unitrio de produo nesses T perodos
constante. Considere, tambm, que h um custo para cada item do produto estocado de um perodo para outro. As demandas do produto em cada um dos T perodos so conhecidas e o estoque inicial do produto nulo. Qual deve ser o plano de produo de custo mnimo desse produto?
primeira vista, no parece ser um problema de otimizao em redes. necessria uma anlise preliminar do problema para que possamos compreender que ele pode ser transformado em
um problema em grafos. Observe que, como o custo de produo igual em todos os perodos,
ento, se houver produo em algum perodo, no deve haver nada em estoque.5 Isso porque
sairia mais barato deixar de produzir esse excesso em algum perodo anterior e produzi-lo no perodo, uma vez que se reduziria o custo de estocagem e o custo de produo permaneceria no
mesmo valor.
Tendo em vista essa observao, a produo em um determinado perodo i, se houver produo
neste perodo, dever ser igual a algumas destas possibilidades: a prpria demanda do perodo i,
ou a demanda do perodo i e a do perodo i+1 (neste caso, no teramos produo no perodo
i+1), ou a demanda dos perodos i, i+1, i+2 (neste caso, no teramos produo nos perodos i+1, i+2), , ou a demanda dos perodos i, i+1, i+2, , T (neste caso, no teramos produo nos perodos i+1, i+2, , T). Correspondentemente a cada uma dessas
possibilidades, incorre-se em um determinado custo dado pela soma dos custos de produo e
de estocagem, dependendo de quanto for produzido.
Com as observaes anteriores, possvel construir um grafo com T+1 ns (ver Figura 4.7),
um para cada perodo e mais um n T+1, em que os arcos (i,j) correspondem produo no
perodo i de um lote de tamanho igual s demandas correspondentes aos perodos i, i+1,
i+2, , j1. Cada um desses arcos tem um custo associado, que o custo de produo dessa
quantidade, mais o custo de estocagem nos perodos i+1, i+2, , j2. O plano de produo dado pelo caminho mais curto do n 1 ao n T+1 neste grafo.6
Ilustremos a obteno do grafo para este problema utilizando um exemplo numrico. Suponha que temos quatro perodos, o estoque inicial do produto 0, o custo de produo constante durante esses quatro perodos e igual a $2 por tonelada produzida e incorre-se em um
custo fixo de preparao de $10 cada vez que o produto fabricado. O custo de estocagem de
um ms para outro de $0,2 por unidade de produto armazenada. As demandas de cada perodo so conforme indicado na Tabela 4.1.

Figura 4.7 Problema de planejamento da produo em lote como um problema de caminho mnimo.
5 Tambm vlida para custos variantes no tempo; ver Wagner e Whitin (1958).
6 Esta estratgia usada para resolver vrios problemas de produo; ver, por exemplo, Wagner e Whitin (1958) e Gramani e
Frana (2006).

Captulo 4: Otimizao em redes

299

Tabela 4.1
Demanda em cada perodo (em toneladas).
Perodo

Demanda (toneladas)

30

20

60

10

Com esses dados, o grafo correspondente tem cinco ns e os custos associados aos arcos (i,j)
so calculados conforme explicao anterior. O arco (i,j), j=i+1, i+2, , 5, corresponde
produo no perodo i (i = 1, 2, , 4) de um lote de tamanho igual s demandas correspondentes aos perodos i, i+1, i+2, , j1, e tem um custo associado cij igual ao custo fixo
de produo, mais o custo da produo dessa quantidade, mais o custo de estocagem nos perodos i, i + 1, i + 2, , j 2, ou seja,
cij = $10 + $2(di + di+1+ ... + dj-1) + $0,2(di+1+ ... + dj-1) + $0,2(di+2+ ... + dj-1) + ... +
$0,2(dj-1)
em que di a demanda do produto no perodo i. Assim, para i = 1, temos
c12 = $10 + $2 (30) + $0,2(0) = $70
c13 = $10 + $2 (50) + $0,2(20) = $114
c14 = $10 + $2 (110) + $0,2(80) + $0,2(60) = $258
c15 = $10 + $2 (120) + $0,2(90) + $0,2(70) + $0,2(10) = $284
De forma similar, calculamos c23 = $50, c24 = $182, c25 = $206, c34 = $130, c35 = $152, c45 = $20.
Com isso, temos determinado o grafo em que cada caminho que liga o n 1 ao n 5 representa
um plano de produo e o menor caminho (isto , o menos custoso) o plano desejado.
n

Exemplo 4.13 Considere uma empresa que tem uma linha de produo em lotes que consiste em
t estgios ordenados de produo (estgio 1, estgio 2, , estgio t). A fabricao de cada lote do
produto inicia no estgio 1 e, sucessivamente, passa em cada um dos estgios at chegar ao tsimo estgio, quando o produto final obtido. Em cada estgio, diversas operaes/montagens
so realizadas e, caso desejado, pode ser feita uma inspeo do produto semi-acabado naquele
estgio. No ltimo estgio, o produto acabado sempre testado. As inspees servem para detectar defeitos no produto. A probabilidade de se produzir um defeito conhecida para cada estgio e produtos defeituosos so imediatamente descartados, uma vez que no possvel
recuper-los. Assim, se a inspeo em um estgio no for feita e o produto for defeituoso, as operaes/montagens realizadas nos estgios subseqentes desses produtos defeituosos so perdidas
e constituem despesas adicionais que poderiam ter sido evitadas caso a inspeo fosse feita. No
entanto, a inspeo em cada estgio tem custos significativos. Assim, deseja-se saber em quais estgios as inspees devem ser feitas para se incorrer no menor custo total de produo.
Novamente, o Exemplo 4.13 no parece ser um problema de otimizao em redes. Mas pode
ser transformado em um problema de fluxo em redes. Para este problema, pode-se construir um
grafo com t+1 ns (ver Figura 4.8), um para cada estgio, e um n 0 indicando o incio da produo, antes de passar pelo estgio 1. Neste grafo, os arcos (i,j) correspondem a intervalos em
que nenhuma inspeo feita ou, de forma equivalente, aos estgios de inspees sucessivas, ou
seja, uma inspeo feita no estgio i e a prxima inspeo feita no estgio j e nenhuma inspeo feita entre esses dois estgios. Temos arcos ligando cada n i, i = 0, 1, 2, , t1, a todos os ns i+1, i+2, , t, correspondendo a todas as possibilidades e cada caminho ligando
o n 0 ao n t define as inspees em cada n (estgio) do caminho.

300

Pesquisa Operacional

Figura 4.8

Problema de produo em estgios transformado em um problema de fluxo.

A cada um desses arcos (i, j) associamos um custo cij, dado pela soma do custo de inspeo
do lote no estgio j e dos custos de processamento do lote nos estgios i+1, i+2, , j. Observe que o tamanho do lote nestes estgios i+1, i+2, , j no se altera, uma vez que nenhuma inspeo feita, portanto, nenhum produto defeituoso detectado. Com isso, o custo
de produo mais baixo dado pelo caminho mais curto que vai do n 0 ao n t nesse grafo.
Admitindo-se que o custo de inspecionar os itens existentes no estgio j e o custo de
processamento dos itens em cada um dos estgios i+1, i+2, , j sejam proporcionais ao
nmero de itens processados nesses estgios, precisamos determinar qual o tamanho do lote
nesses estgios para determinar esses custos.
Seja pi a probabilidade de produo de um defeito no estgio i. Assim, se L o tamanho do lote
inicial, aps o estgio 1 temos, em mdia, Lp1 produtos semi-acabados defeituosos, portanto, restariam L(1p1) produtos sem defeito. Estes L(1p1) produtos semi-acabados sem defeito passam
agora pelo estgio 2, em que, em mdia, L(1p1)p2 deles resultam defeituosos, portanto, restam
L(1p1)(1p2) produtos sem defeito aps o estgio 2. Computando-se de forma similar, para os
demais estgios sucessivos, temos que, no estgio k, em mdia, L(1p1)(1p2) (1pk-1)(1pk)
produtos resultam sem defeito. Assim, para o clculo de cij, o tamanho do lote processado nos
estgios i+1, i+2, , j igual ao nmero de produtos sem defeito aps o estgio i, ou seja,
L(1p1)(1p2) (1pi-1)(1pi), uma vez que nenhuma inspeo feita entre os estgios
i e j. Com isso, os custos decorrentes podem ser computados.
Ilustremos a obteno do grafo para este problema utilizando um exemplo numrico. Suponha que temos t = 4 estgios, o lote inicial do produto de L = 1.000 unidades. As probabilidades de produo de um defeito e os custos unitrios de produo em cada estgio (ui) esto
indicados na Tabela 4.2.

Tabela 4.2
Probabilidade de defeito em cada perodo e custos unitrios de produo.
Estgio

Probabilidade de produo de um defeito (pi)

0,03

0,02

0,06

0,01

Custo unitrio de produo (ui)

Captulo 4: Otimizao em redes

301

O custo de inspeo no estgio j depende de quando foi feita a ltima inspeo (quanto mais
recente, menor o custo). Portanto, se a ltima inspeo ocorreu no estgio i, o custo unitrio de
inspeo denotado por hij. Admitimos que, alm desse custo varivel de inspeo, incorre-se em
um custo fixo de kij para se realizar essa inspeo no estgio j. As Tabelas 4.3 e 4.4 fornecem os
valores desses custos.
Com esses dados, o grafo correspondente teria cinco ns e os custos associados aos arcos (i, j)
seriam calculados conforme explicao anterior. O arco (i,j), j = i+1, i+ 2, , 4,
corresponde inspeo do lote no estgio j (j = 1, 2, 3, 4), nenhuma inspeo deste lote ocorreu nos estgios i+1, i+2, , j1, e a ltima inspeo ocorreu no estgio i. Ento, cij (soma
dos custos de inspeo do lote no estgio j e dos custos de processamento do lote nos estgios
i+1, i+2, , j) dado por
cij = (kij + hij L(1p1)(1p2) (1pi-1) (1pi)) +
L(1p1)(1p2) (1pi-1)(1pi) (ui+1 + ui+2 + ... + uj) =
= (kij + hij 1.000(10,03) (1pi-1) (1pi)) +
1.000(10,03) (1pi-1)(1pi) (ui+1 + ui+2 + ... + uj)
para i = 1, 2, 3 e j = i + 1, , 4. Para i = 0 e j = 1, , 4, temos
c0j = (k0j + h0j L) + L (u1 + u2 + ... + uj) =
= (k0j + h0j 1.000) + 1.000 (u1 + u2 + ... + uj)

Tabela 4.3
Custos de inspeo conforme perodos.
hij

0,3

0,6

1,1

1,3

0,3

0,9

1,3

0,6

1,0

0,3

Tabela 4.4
Custos fixos de inspeo conforme perodos.
kij

100

200

310

390

110

210

300

90

190

120

302

Pesquisa Operacional

Desta forma,
c01 = (k01 + h01 1.000) + 1.000(u1) = (100 + $0,3 1.000) + 1.000 ($4) = $4.400
c02 = (k02 + h02 1.000) + 1.000 (u1+ u2) = (200 + $0,6 1.000) + 1.000 ($4 + $3) = $7.800
e, de maneira similar, obtemos c03 = $ 15.410, c04 = $ 18.690.
Para i = 1, temos:
c12 = (k12 + h12 1.000(10,03)) + 1.000(10,03)(u2) = (110 + $0,3 (970))
+ 970$3 = $3.311
c13 = (k13 + h13 1.000(10,03)) + 1.000(10,03)(u2 + u3) = (210 + $0,9 (970))
+ 970($3 + $7) = $10.783
e, de maneira similar, obtemos c14 = $ 14.171. Prosseguindo com os clculos para os demais valores de i, obtemos c23 = $7.314,56, c24 = $10.646,6, c34 = $3.068,7612. Com isso, temos determinado o grafo em que cada caminho que liga o n 1 ao n 5 representa um plano de inspeo
n
e o menor caminho (isto , o menos custoso) o plano desejado.
Exemplo 4.14 Um viajante deve decidir que itens levar para sua viagem Europa. Ele j fez a mala
que vai despachar no avio, na qual colocou todos os itens que julga indispensveis, mas ainda
restaram outros n itens que gostaria de levar, cada um deles com um certo valor de utilidade. O
problema que a companhia area permite apenas mais uma bagagem de mo com um limite
de no mximo U quilos. O viajante pretende levar uma mochila como bagagem de mo e seu problema agora decidir que itens deve levar nessa mochila de modo a maximizar o valor de utilidade total e no violar a restrio de peso da companhia area. Apenas uma unidade de cada item
deve ser includa na mochila (ver problema da mochila 0-1, Seo 3.4.1 Captulo 3), embora o
viajante possa considerar a duplicao de um item como um novo item, o qual pode ter valor de
utilidade igual ou menor.
primeira vista, este exemplo tambm no parece ser um problema de otimizao em redes.
Como nos dois exemplos anteriores, necessrio um pouco de experincia na resoluo de problemas de otimizao e de problemas de rede para transformar este problema da mochila em um problema em grafos.
Admite-se que todos os pesos dos itens e o limite mximo U sejam inteiros. Pode-se construir
um grafo com U+1 ns, um para cada unidade de capacidade preenchida da mochila e mais
um n 0 que representa a mochila vazia. A incluso de um item na mochila representada com
um arco que une dois ns. Mais precisamente, um item de peso wi includo na mochila que j tem
o peso acumulado r de outras incluses representado por um arco (r, s), em que s=r+wi e
contribui com o valor de utilidade ui para o viajante. Entretanto, este arco s ser considerado
se r+wi U, pois U r o espao restante a ser preenchido.
Para a construo dos arcos do grafo, considere os itens i = 1, 2, , n, um item de cada vez
de forma ordenada. Iniciamos sem nenhum arco no grafo, s os U+1 ns. Para cada item i em
considerao, com exceo do n 0, consideramos arcos apenas que emergem de ns que j tenham algum arco incidente nele (isto , que sejam n cabea de algum arco j existente) da
iterao anterior. Isso quer dizer que adicionamos a algum preenchimento j realizado da mochila
(com os itens 1, 2, , i 1), mais aquele item i. Lembre-se de que apenas uma unidade de cada
item pode ser includa na mochila. Do n 0, sempre emergem arcos para qualquer item (equivale a iniciar o preenchimento da mochila com o item i, sem colocar nenhum dos itens anteriores).
Portanto, para i = 1, apenas um arco ser definido com cauda no n 0 e o n cabea em (0+w1)
e utilidade u1. Ao considerar o item i e um n r (na ordem, r = 0, 1, ..., U) que j tenha algum
arco incidente nele (isto , algum preenchimento com itens considerados anteriormente), ento

Captulo 4: Otimizao em redes

303

definido um arco com cauda em r e com n cabea em (r+wi), se (r+wi) U (ou seja, se
este item ainda no ultrapassa o limite de peso da mochila) e utilidade ui. Se (r+wi) > U, ento o arco no considerado. Um n r em que no incide nenhum arco significa que no houve
nenhum preenchimento da mochila com combinao de itens 1, 2, , i 1, que soma r. Portanto,
nenhum arco precisa ser definido a partir deste n.
Aps o n-simo item ser considerado, todos os ns do grafo que so cabea de algum arco
representam preenchimentos possveis da mochila. Admitindo-se que as utilidades dos itens sejam todas no-negativas, sempre vale a pena colocar mais um item, se isso for possvel. Assim,
os enchimentos de interesse so apenas aqueles correspondentes aos ns do grafo que so cabea de algum arco e no tm nenhum n sucessor. Isso porque um n que no seja n cabea corresponde a um preenchimento possvel da mochila que ainda pode ser melhorado com
a incluso de mais um item. A todo n que seja cabea de algum arco e no tenha sucessor, um
arco artificial ligando a cabea ao n U com valor de utilidade zero definido (representa um
espao vazio na mochila). O problema da mochila do viajante pode ser resolvido determinando-se o caminho de maior utilidade (ou caminho mximo, conforme Seo 4.2.2, adiante) entre
o n 0 e o n U no grafo, obedecendo a algumas restries adicionais.
Ilustremos a construo do grafo para este problema utilizando um exemplo numrico. Suponha que temos quatro itens que o viajante gostaria de levar, conforme indica a Tabela 4.5.
Suponha que o limite da bagagem seja de 6 quilos. Com isso, o grafo correspondente seria
construdo, passo a passo, conforme a Figura 4.9 (a), (b), (c), (d), (e) e (f). A notao (i,ui) em cada
arco da figura significa item i com utilidade ui.
Este problema da mochila pode ser resolvido achando-se o caminho mais longo (caminho
mximo) nesse grafo, do n 0 ao n 6, obedecendo a algumas restries. Observe que nesse grafo
existem arcos paralelos, ou seja, arcos adjacentes ao mesmo par de ns e, tambm, caminhos alternativos do n 0 aos demais ns do grafo indicando que existem preenchimentos diferentes da
mochila com o mesmo peso total. No caso de arcos paralelos, como o interesse determinar o
caminho mximo, o arco mais valioso adjacente ao par de ns ser o utilizado caso algum arco
que une esse par de ns faa parte do caminho.
Com o grafo construdo possvel que o caminho mais longo do n 0 ao n 6 no seja uma
soluo factvel para o problema da mochila pois pode ocorrer de essa soluo utilizar mais de
uma unidade de um determinado item. Por exemplo, se o limite da bagagem fosse de 4 quilos,
o caminho mais longo do n 0 ao n 4 (ver grafo (f) da Figura 4.9) tem valor 32 e obtido com
os arcos (0,2) e (2,4) com valores utilidades de 16 cada, correspondentes ao item 3. Essa soluo
no factvel pois o viajante utiliza duas unidades do item 3 e dispe-se apenas de uma unidade para incluir na mochila.

Tabela 4.5
Pesos dos itens e utilidades correspondentes.
Item

Peso

25

15

16

30

Utilidade

304

Pesquisa Operacional

Para achar a soluo da mochila utilizando o grafo construdo precisamos achar o caminho mximo do n 0 ao n 6 que utiliza no mximo uma unidade de cada item. Uma maneira de obter essa soluo enumerar, em ordem no crescente de utilidade, os caminhos
mximos do n 0 ao n 6 no grafo (f) da Figura 4.9 at que algum deles satisfaa s condies desejadas.
possvel utilizar, entretanto, um outro grafo, similar ao construdo anteriormente, mas com
um nmero maior de ns, em que a soluo do caminho mximo do n 0 ao n 6 nos fornece diretamente uma soluo para o problema da mochila. Esse grafo construdo seguindose os mesmos passos de construo do grafo anterior, diferindo apenas na fase de incluso dos
arcos. Considere a incluso de um arco correspondente a um item de peso wi, a partir de um
n r que n cabea de algum arco incidente nele, incluso em uma iterao anterior. A incluso do arco (r, s), em que s = r + wi , s < U, (e contribui com o valor de utilidade ui) feita somente se o n s no for n cabea de nenhum arco j includo em iteraes anteriores. Caso o
n s j seja um n cabea de algum arco, um novo n introduzido no grafo que uma cpia
de n s. Denotamos essa cpia do n s por si em que i = 1, 2, .., indica o nmero da cpia introduzida, e inclui-se o arco (r, si).
Procedendo-se dessa forma, obtm-se um grafo sem arcos paralelos em que a soluo do problema da mochila obtida diretamente pelo caminho mais longo do n 0 ao n 6 ou uma de
suas cpias. O grafo resultante correspondente ao exemplo numrico da mochila o da Figura 4.10.
Transformamos o problema da mochila em um problema de caminho mximo no grafo. Esse
grafo no tem circuitos, portanto pode ser facilmente transformado em um problema de caminho mais curto. Para isso, basta definir todos os custos no novo problema como o negativo das
utilidades dos arcos. Alguns algoritmos para resoluo do caminho mnimo em um grafo que
apresentamos mais adiante, por exemplo o algoritmo de Dijkstra, admitem que todos os comprimentos dos arcos so no-negativos. Portanto, eles no podem ser utilizados para resolver essa
classe de problemas.
A transformao do problema da mochila em um problema de caminho mais curto em um
grafo pode dar a impresso de que o problema da mochila fcil de ser resolvido, visto que o
problema de caminho mais curto, como vemos adiante, pode ser resolvido com o uso de um
algoritmo relativamente simples. O esforo computacional desse algoritmo depende do tamanho
do grafo (o tamanho de um grafo pode ser medido pelo nmero de ns e arcos), isto , quanto
maior o grafo, mais computaes tero de ser feitas para encontrar uma soluo para o problema. Isso quer dizer que podemos incorrer em tempos computacionais excessivamente longos na
resoluo de problemas da mochila com capacidade mxima U grandes, uma vez que o grafo
obtido da transformao tem U+1 ns.
n
Formulao matemtica do problema de caminho mais curto entre dois ns

Para escrever um modelo matemtico para o problema de caminho mais curto do n 1 ao n


n de um grafo G = (N, E), N = {1, 2, ..., n}, observamos que este problema um caso especial
do problema de transbordo (Seo 2.2 Captulo 2), em que se quer transportar, ao menor custo, uma unidade de um produto produzido no n 1 ao n n. Os demais ns do grafo so todos de transbordo. Define-se o comprimento de cada arco como o custo no problema de
transbordo e, com isso, temos a seguinte formulao para o problema de caminho mais curto.
Sem perda de generalidade, consideramos o n origem como o n 1 e o n destino o n n, mas
a formulao e os algoritmos que se seguem podem ser estendidos para quaisquer dois ns
da rede.

Captulo 4: Otimizao em redes

305

(a)

(b)

(c)

(d)

Figura 4.9 (a) Grafo inicial; (b) Arcos devido insero do item 1; (c) Arcos devido insero do item 2; (d) Arcos devido
insero do item 3; (e) Arcos devido insero do item 4; (f) Introduo de arcos artificiais para simplificao do problema.

306

Pesquisa Operacional

(e)

(f)

Figura 4.9 cont. (a) Grafo inicial; (b) Arcos devido insero do item 1; (c) Arcos devido insero do item 2; (d) Arcos devido
insero do item 3; (e) Arcos devido insero do item 4; (f) Introduo de arcos artificiais para simplificao do problema.

Minimizar f(x) =

c x

ij ij

i =1 jS ( i )

1j

=1

jS (1)

xin = 1

xij =

i P( n )

i P( j )

xij 0,

k S ( j )

x jk ,

j = 2 ,, n 1
i = 1,, n e j = 1,, n

Captulo 4: Otimizao em redes

307

Figura 4.10 Grafo resultante para o problema da mochila.

em que
S(j) o conjunto dos ns sucessores de j
P(j) o conjunto dos ns predecessores de j
xij a quantidade transportada do produto da origem i para o destino j utilizando o arco (i, j)
cij o custo incorrido por usar o arco (i, j)
No modelo anterior, para sermos rigorosos, deveramos impor que as quantidades transportadas nos diversos arcos fossem inteiras, para que a soluo do problema realmente indicasse um
caminho, ou seja, xij = 1 se e somente o arco (i, j) pertencesse ao caminho. Entretanto, essa restrio no precisa ser explicitada, pois, se o modelo anterior for resolvido pelo mtodo simplex
(Captulo 2), a soluo ser inteira (os valores das variveis sero 0 ou 1) devido estrutura particular desse modelo, como vemos mais adiante.
Para a resoluo do problema de caminho mais curto, existem algoritmos alternativos mais simples e mais eficientes (tempo de execuo menor no computador para se encontrar uma soluo) que o mtodo simplex e so descritos a seguir.
O algoritmo de Dijkstra para determinao do caminho mnimo entre dois ns no grafo

O algoritmo de Dijkstra encontra o menor caminho entre quaisquer dois ns da rede, quando
todos os arcos tm comprimentos no-negativos. O algoritmo de Dijkstra utiliza um procedimento iterativo, determinando, na iterao 1, o n mais prximo do n 1, na segunda iterao,
o segundo n mais prximo do n 1, e assim sucessivamente, at que em alguma iterao o n
n seja atingido.
Suponha que estamos em alguma iterao t (isto , j determinamos o n mais prximo do n
1, o segundo n mais prximo, ..., o (t1)-simo n mais prximo). Como determinar o t-simo
n mais prximo do n 1? O menor caminho do n 1 a esse t-simo n mais prximo, digamos,
o n k (o qual desconhecido) deve ser um caminho que passa por algum dos t1 ns mais
prximos de 1, ou um caminho direto do n 1 ao n k (naturalmente, se houver o arco (1, k)).
Observe que no pode ser um caminho que passe por algum outro n que no os t1 ns mais

308

Pesquisa Operacional

prximos pois, caso contrrio, o n k no seria o t-simo n mais prximo de 1, pois o n imediatamente anterior no caminho do n k estaria mais prximo (ou a uma mesma distncia) do
n 1, uma vez que todos os arcos tm comprimentos no-negativos. A Figura 4.11 ilustra essa argumentao.
O algoritmo de menor caminho de Dijkstra descrito a seguir. Separaremos os ns em rotulados (conjunto R) e no-rotulados (conjunto NR). Os ns rotulados so aqueles cuja ordenao
j foi definida, ou seja, o n mais prximo, o segundo n mais prximo etc. Para recuperar o caminho mais curto at um determinado n k, guardaremos o n anterior ao n k no caminho, que
denotamos por p(k), isto , o caminho de 1 ao n k constitudo do caminho de 1 ao n p(k) e o
arco (p(k), k). Se p(k) = 1, ento o menor caminho que liga o n 1 ao n k constitudo tosomente do arco (1, k).
Algoritmo de Dijkstra
Dados:
G (N, E): grafo em que N = {1, 2, , n}
1
: n inicial do caminho
n
: n final do caminho
c(i, j)
: comprimento do arco (i, j) E (hiptese: c(i, j) 0)
Sada:
d(n)
: menor distncia do n 1 ao n n
C
: caminho mnimo entre o n 1 e o n n
Passo 1: Incio
R = {1}
: inicialmente o n 1 rotulado
NR = {2, , n} : os demais ns no so rotulados
d(1) = 0
: a distncia do n 1 ao n 1 zero
p(1) = 0
: o n 1 o n inicial
Para iNR,
: a distncia do n 1 aos ns no rotulados +
d(i) = +
p(i) = n + 1 : o n i no tem predecessor (observe que no existe n n + 1 no grafo)
a=1
: ltimo n includo em R
Passo 2: Para todo i NR, determine d(i) = mnimo{d(i), d(a) + c(a,i)} e faa p(i) = a, caso
d(i)=d(a)+ c(a, i).
Se d(i) = + para todo i NR, ento pare {no existe caminho de 1 a qualquer um dos
ns em NR}.
Se no, determine k NR tal que d(k) = mnimo {d(i), i NR}. Exclua o n k de NR
(isto , NR NR {k}) e inclua-o em R (isto , R R U {k}) e faa a = k.

Figura 4.11 O n p est necessariamente mais prximo de 1 do que o n k.

Captulo 4: Otimizao em redes

309

Passo 3: Se a=n, ento recupere o caminho mnimo C a partir dos valores armazenados em
p(.), iniciando por k1=p(n), em seguida, k2=p(k1), at que o n 1 seja atingido. Se no
(isto , an), retorne ao Passo 2.
Exemplo 4.15 Ilustramos o algoritmo de Dijkstra para achar o menor caminho do n 5 ao n 2
no grafo da Figura 4.12. Os valores respectivos dos comprimentos dos arcos esto indicados ao
lado de cada arco.
Passo 1:
R = {5} (ver Figura 4.13)
NR = {1, 2, 3, 4, 6}
d(5) = 0, p(5) = 0 e d(i) = + , p(i) = 7, i = 1, 2, 3, 4, 6
a=5
Na Figura 4.13, o n rotulado no passo 1 indicado com um J prximo ao n. O n 6 o
prximo n a ser rotulado e est indicado com um . Esses mesmos smbolos so empregados
nas figuras subseqentes para indicar ns rotulados e no rotulados.
Passo 2:
d(1) = min {d(1), d(5) + c(5, 1)} = min {+ , 0 + } = +

Figura 4.12 Encontrar o caminho mnimo do n 5 ao n 2.

Figura 4.13 N rotulado: 5.

310

Pesquisa Operacional

d(2) = min {d(2), d(5) + c(5, 2)} = min {+ , 0 + } = +


d(3) = min {d(3), d(5) + c(5, 3)} = min {+ , 0 +10} = 10 e p(3) = 5
d(4) = min {d(4), d(5) + c(5, 4)} = min {+ , 0 + 5} = 5 e p(4) = 5
d(6) = min {d(6), d(5) + c(5, 6)} = min {+ , 0 + 4} = 4 e p(6) = 5
k=6
R = {5, 6} (ver Figura 4.14)
NR = {1, 2, 3, 4}
a=6
Passo 3: O n 2 (n = 2, neste exemplo) no foi rotulado, portanto, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(6) + c(6, 1)} = min {+ , 4 + 5} = 9 e p(1) = 6
d(2) = min {d(2), d(6) + c(6, 2)} = min {+ , 4 + } = +
d(3) = min {d(3), d(6) + c(6, 3)} = min {10, 4 + } = 10
d(4) = min {d(4), d(6) + c(6, 4)} = min {5, 4 + 1} = 5
k=4
R = {5, 6, 4} (ver Figura 4.15)
NR = {1, 2, 3}
a=4
Passo 3: O n 2 no foi rotulado, portanto, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(4) + c(4, 1)} = min {9, 5 + 2} = 7 e p(1) = 4
d(2) = min {d(2), d(4) + c(4, 2)} = min {+ , 5 + } = +
d(3) = min {d(3), d(4) + c(4, 3)} = min {10, 5 +2} = 7 e p(3) = 4
k=3
R = {5, 6, 4, 3} (ver Figura 4.16)
NR = {1, 2}
a=3

Figura 4.14 Ns rotulados: 5 e 6; caminho mnimo do n 5 ao n 6.

Captulo 4: Otimizao em redes

Passo 3: O n 2 no foi rotulado, portanto, retorna-se ao Passo 2.


Passo 2:
d(1) = min {d(1), d(3) + c(3, 1)} = min {7, 7 + 1} = 7
d(2) = min {d(2), d(3) + c(3, 2)} = min {+ , 7 + 3} = 10 e p(2) = 3
k=1
R = {5, 6, 4, 3, 1} (ver Figura 4.17)
NR = {2}
a=1
Passo 3: O n 2 no foi rotulado, portanto, retorna-se ao Passo 2.
Passo 2:
d(2) = min {d(2), d(1) + c(1, 2)} = min {10, 7 + 2} = 9, e p(2) = 1
k=2
R = {5, 6, 4, 1, 3, 2} (ver Figura 4.18)
NR =
a=2

Figura 4.15 Ns rotulados: 5, 6 e 4; caminho mnimo do n 5 ao n 4.

Figura 4.16 Ns rotulados: 5, 6, 4 e 3; caminho mnimo do n 5 ao n 3.

311

312

Pesquisa Operacional

Passo 3: O n 2 foi rotulado, portanto, temos:


p(2) = 1, p(1) = 4, p(4) = 5, p(5) = 0
e o caminho mnimo do n 5 ao n 2 dado por:
C = {(5, 4), (4, 1), (1, 2)}
pare

No caso de empates, em que existem dois ns no rotulados de mesma distncia mnima, a


escolha pode ser feita de maneira arbitrria. O n no escolhido inicialmente dever ser rotulado na iterao seguinte do Passo 2. Na Figura 4.19, apresentamos a rvore que contm todos os
caminhos mnimos a partir do n 5. Tais rvores so denominadas rvores de caminho mnimo.
Quando existem arcos com comprimentos negativos, o algoritmo de Dijkstra falha, uma vez que
um caminho mais curto pode passar inicialmente por algum n mais distante e, depois, passar por
arcos negativos, de modo que, no total, a distncia percorrida menor. Por exemplo, considere a
rede da Figura 4.20, em que os valores respectivos dos comprimentos dos arcos esto indicados ao
lado de cada arco. Deseja-se encontrar o caminho mnimo do n 5 ao n 2, como antes. Pelo

Figura 4.17 Ns rotulados: 5, 6, 4, 3 e 1; caminho mnimo do n 5 ao n 1.

Figura 4.18 Ns rotulados: 5, 6, 4, 3, 1 e 2; caminho mnimo do n 5 ao n 2.

Captulo 4: Otimizao em redes

313

algoritmo de Dijkstra, o n 4 seria rotulado com d(4) = 5, indicando erroneamente que o menor
caminho do n 1 ao n 4 tem comprimento 5. Note que o menor caminho ir do n 1 ao n 3
(de comprimento 10), para ento atingir o n 4 por um caminho de comprimento total igual a 3.
O algoritmo de Ford para determinao do caminho mais curto entre dois ns no grafo

O algoritmo de Ford encontra o caminho mais curto entre dois ns, mesmo que haja arcos com
comprimentos negativos. Este algoritmo uma generalizao do algoritmo de Dijkstra, diferindo em alguns dos seus passos.
Algoritmo de Ford
Dados:
G (N, E): grafo em que N = {1, 2, , n}
1
n inicial do caminho
n
n final do caminho
c(i,j)
comprimento do arco (i,j), (i,j) E
Sada:
d(n)
menor distncia do n 1 ao n n
C
caminho mais curto entre o n 1 e o n n

Figura 4.19 rvores que contm todos os caminhos mnimos a partir do n 5.

Figura 4.20 Grafo com arcos com comprimentos negativos.

314

Pesquisa Operacional

Passo 1: Incio
R = {1}
NR = {2, ..., n}
d(1) = 0, p(1) = 0 e d(i) = + , p(i) = n + 1, i NR
r(i) = 0, i NR, r(1) = 1
a=1
sinal = 1 (sinal uma varivel indicadora que igual a 0 quando todos os ns do grafo so
rotulados, e igual a 1 em caso contrrio)
Passo 2: Para todo v N,
Calcule d(v) = min {d(v), d(a) + c(a, v)} e faa p(v) = a, caso d(v) = d(a) + c(a, v).
Se d(v) = + para todo v NR, ento pare (no existe nenhum caminho de 1 a qualquer
um dos ns em NR).
Se para algum v R, d(v) decresceu de valor, ento exclua o n v de R (isto , R R
{k}) e inclua-o em NR (isto , NR NR {k}).
Se NR , ento:
a. Determine k tal que d(k) = mnimo {d(v), v NR}
b. Exclua o n k de NR (isto , NR NR {k}) e inclua-o em R (isto , R R {k})
c. a = k
d. r(a) r(a) +1
Se no (isto , NR = ), faa sinal = 0.
Passo 3: Se sinal = 0, ento recupere o caminho mnimo C a partir dos valores armazenados
em p(.), iniciando por k1 = p(n), em seguida, k2 = p(k1), at que o n 1 seja atingido e pare.
Se existe r(i) maior ou igual a n, ento pare; existe um circuito no grafo com comprimento total negativo. Caso contrrio, retorne ao Passo 2.
As diferenas com relao ao algoritmo de Dijkstra podem ser observadas no Passo 2, em que
as distncias d(v) so atualizadas para todos os ns, e no somente para os ns no rotulados.
Com isso, as distncias de alguns dos ns j rotulados podem diminuir. Caso isso ocorra, estes
ns deixam de ser ns rotulados, passando a ser novamente ns no rotulados. Uma outra diferena est no Passo 3. O valor de sinal muda para 0 se todos os ns estiverem em R e no h mais
nenhuma mudana nos valores de d(v) para todo v N. Observe que tambm foi includo um
contador r(i) para cada n i, que marca quantas vezes o n j foi rotulado. Isso porque, caso houvesse um circuito no grafo com comprimento total negativo, o algoritmo no terminaria, pois um
n i pertencente a esse circuito seria rotulado infinitas vezes, dado que sua distncia d(i) sempre
diminuiria aps um nmero fixo de passos. Pode-se mostrar que, se no houver circuitos negativos em um grafo com n ns, nenhum de seus ns ser rotulado mais do que n1 vezes. Assim, se um n rotulado n vezes (ou mais), ento existe um circuito com comprimento total
negativo no grafo e o algoritmo interrompido.
Exemplo 4.16 Ilustramos o algoritmo de Ford para achar o menor caminho do n 5 ao n 2 do
grafo da Figura 4.20.
Passo 1:
R = {5}
NR = {1, 2, 3, 4, 6}
d(5) = 0, p(5) = 0 e d(i) = + , p(i) = 7, i = 1, 2, 3, 4, 6
r(5) = 1, r(i) = 0, i = 1, 2, 3, 4, 6

Captulo 4: Otimizao em redes

a=5
sinal = 1
Passo 2:
d(1) = min {d(1), d(5) + c(5,1)} = min {+ , 0 + } = +
d(2) = min {d(2), d(5) + c(5,2)} = min {+ , 0 + } = +
d(3) = min {d(3), d(5) + c(5,3)} = min {+ , 0 +10} = 10, e p(3) = 5
d(4) = min {d(4), d(5) + c(5,4)} = min {+ , 0 + 5} = 5, e p(4) = 5
d(5) = min {d(5)} = min {(0)} = 0
d(6) = min {d(6), d(5) + c(5,6)} = min {+ , 0 + 4} = 4, e p(6) = 5
k=6
R = {5, 6}
r(6) = 1
NR = {1, 2, 3, 4}
a=6
Passo 3: Como sinal = 1 e r(i) < 6 para i = 1, 2, 3, 4, 5 e 6, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(6) + c(6, 1)} = min {+ , 4 + 5} = 9 e p(1) = 6
d(2) = min {d(2), d(6) + c(6, 2)} = min {+ , 4 + } = +
d(3) = min {d(3), d(6) + c(6, 3)} = min {10, 4 + } = 10
d(4) = min {d(4), d(6) + c(6, 4)} = min {5, 4 + 1} = 5
d(5) = min {d(5), d(6) + c(6, 5)} = min {0, 4 + } = 0
d(6) = min {d(6)} = min {4) = 4
k=4
r(4) = 1
R = {5, 6, 4}
NR = {1, 2, 3}
a=4
Passo 3: Como sinal = 1 e r(i) < 6 para i = 1, 2, 3, 4, 5 e 6, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(4) + c(4, 1)} = min {9, 5 + 2} = 7 e p(1) = 4
d(2) = min {d(2), d(4) + c(4, 2)} = min {+ , 5 + } = +
d(3) = min {d(3), d(4) + c(4, 3)} = min {10, 5 + } = 10
d(4) = min {d(4)} = min {5} = 5
d(5) = min {d(5), d(4) + c(4, 5)} = min {0, 5 + } = 0
d(6) = min {d(6), d(4) + c(4, 6)} = min {4, 5 + } = 4
k=1
r(1) = 1
R = {5, 6, 4, 1}
NR = {2, 3}
a=1
Passo 3: Como sinal = 1 e r(i) < 6 para i = 1, 2, 3, 4, 5 e 6, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1)} = min {7} = 7

315

316

Pesquisa Operacional

d(2) = min {d(2), d(1) + c(1, 2)} = min {+ , 7 + 2} = 9 e p(2) = 1


d(3) = min {d(3), d(1) + c(1, 3)} = min {10, 7 + } = 10
d(4) = min {d(4), d(1) + c(1, 4)} = min {5, 7 + } = 5
d(5) = min {d(5), d(1) + c(1, 5)} = min {0, 7 + } = 0
d(6) = min {d(6), d(1) + c(1, 6)} = min {4, 7 + } = 4
k=2
r(2) = 1
R = {5, 6, 4, 1, 2}
NR = {3}
a=2
Passo 3: Como sinal = 1 e r(i) < 6 para i = 1, 2, 3, 4, 5 e 6, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(2)+ c(2, 1)} = min {7, 9 + } = 7
d(2) = min {d(2)} = min {9} = 9
d(3) = min {d(3), d(2) + c(2, 3)} = min {10, 9 + } = 10
d(4) = min {d(4), d(2) + c(2, 4)} = min {5, 9 + } = 5
d(5) = min {d(5), d(2) + c(2, 5)} = min {0, 9 + } = 0
d(6) = min {d(6), d(2) + c(2, 6)} = min {4, 9 + } = 4
k=3
r(3) = 1
R = {5, 6, 4, 1, 2, 3}
NR =
a=3
Passo 3: Como sinal = 1 e r(i) < 6 para i = 1, 2, 3, 4, 5 e 6, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(3)+ c(3, 1)} = min {7, 10 4} = 6 e p(1) = 3
d(2) = min {d(2), d(3) + c(3, 2)} = min {9, 10 + 2} = 9
d(3) = min {d(3)} = min {10) = 10
d(4) = min {d(4), d(3) + c(3, 4)} = min {5, 10 7} = 3 e p(4) = 3
d(5) = min {d(5), d(3) + c(3, 5)} = min {0, 10 + } = 0
d(6) = min {d(6), d(3) + c(3, 6)} = min {4, 10 + } = 4
R = {5, 6, 2, 3}
NR = {1, 4}
k=4
r(4) = 2
R = {5, 6, 2, 3, 4}
NR = {1}
a=4
Passo 3: Como sinal = 1 e r(i) < 6 para i = 1, 2, 3, 4, 5 e 6, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(4)+ c(4, 1)} = min {6, 3 + 2} = 5 e p(1) = 4
d(2) = min {d(2), d(4) + c(4, 2)} = min {9, 3 + } = 9

Captulo 4: Otimizao em redes

317

d(3) = min {d(3), d(4) + c(4, 3)} = min {10, 3 + } = 10


d(4) = min {d(4)} = min {3} = 3
d(5) = min {d(5), d(4) + c(4, 5)} = min {0, 3 + } = 0
d(6) = min {d(6), d(4) + c(4, 6)} = min {4, 3 + } = 4
k=1
r(1) = 2
R = {5, 6, 2, 3, 4, 1}
NR =
a=1
Passo 3: Como sinal = 1 e r(i) < 6 para i = 1, 2, 3, 4, 5 e 6, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1)} = min {5} = 5
d(2) = min {d(2), d(1) + c(1, 2)} = min {9, 5 + 2} = 7 e p(2) = 1
d(3) = min {d(3), d(1) + c(1, 3)} = min {10, 5 + } = 10
d(4) = min {d(4), d(1) + c(1, 4)} = min {3, 5 + } = 3
d(5) = min {d(5), d(1) + c(1, 5)} = min {0, 5 + } = 0
d(6) = min {d(6), d(1) + c(1, 6)} = min {4, 5 + } = 4
R = {5, 6, 3, 4, 1}
NR = {2}
k=2
r(2) = 2
R = {5, 6, 3, 4, 1, 2}
NR =
a=2
Passo 3: Como sinal = 1 e r(i) < 6 para i = 1, 2, 3, 4, 5 e 6, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(2) + c(2, 1)} = min {5, 7 + } = 5
d(2) = min {d(2)} = min {7} = 7
d(3) = min {d(3), d(2) + c(2, 3)} = min {10, 7 + } = 10
d(4) = min {d(4), d(2) + c(2, 4)} = min {3, 7 + } = 3
d(5) = min {d(5), d(2) + c(2, 5)} = min {0, 7 + } = 0
d(6) = min {d(6), d(2) + c(2, 6)} = min {4, 7 + } = 4
sinal = 0
Passo 3: Como sinal = 0, temos: p(2) = 1, p(1) = 4, p(4) = 3, p(3) = 5, p(5) = 0, e o caminho
mnimo do n 5 ao n 2 dado por: C = {(5, 3), (3, 4), (4, 1), (1, 2)}.
pare

Consideramos, a seguir, um exemplo em que existe um circuito com comprimento total negativo no grafo.
Exemplo 4.17 Ilustramos o algoritmo de Ford para achar o menor caminho do n 5 ao n 2 do
grafo da Figura 4.21. Observe que existe um circuito com comprimento total negativo neste grafo.

318

Pesquisa Operacional

Passo 1:
R = {5}
NR = {1, 2, 3, 4}
d(5) = 0, p(5) = 0 e d(i) = + , p(i) = 6, i = 1, 2, 3, 4
r(5) = 1, r(i) = 0, i = 1, 2, 3, 4
a=5
sinal = 1
Passo 2:
d(1) = min {d(1), d(1) + c(5, 1)} = min {+ , 0 + } = +
d(2) = min {d(2), d(5) + c(5, 2)} = min {+ , 0 + } = +
d(3) = min {d(3), d(5) + c(5, 3)} = min {+ , 0 + 4} = 4 e p(3) = 5
d(4) = min {d(4), d(5) + c(5, 4)} = min {+ , 0 + } = +
d(5) = min {d(5)} = min {0)} = 0
k=3
R = {5, 3}
r(3) = 1
NR = {1, 2, 4}
a=3
Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(3) + c(3, 1)} = min {+ , 4 + } = +
d(2) = min {d(2), d(3) + c(3, 2)} = min {+ , 4 + } = +
d(3) = min {d(3)} = 3
d(4) = min {d(4), d(3) + c(3, 4)} = min {+ , 4 + 1} = 5 e p(4) = 3
d(5) = min {d(5), d(3) + c(3, 5)} = min {0, 4 + } = 0
k=4
r(4) = 1
R = {5, 3, 4}
NR = {1, 2}
a=4

Figura 4.21 Grafo com circuito negativo.

Captulo 4: Otimizao em redes

Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.


Passo 2:
d(1) = min {d(1), d(4) + c(4, 1)} = min {+ , 5 + 2} = 7 e p(1) = 4
d(2) = min {d(2), d(4) + c(4, 2)} = min {+ , 5 + } = +
d(3) = min {d(3), d(4) + c(4, 3)} = min {4, 5 + } = 4
d(4) = min {d(4)} = min {5} = 5
d(5) = min {d(5), d(4) + c(4, 5)} = min {0, 5 + } = 0
k=1
r(1) = 1
R = {5, 3, 4, 1}
NR = {2}
a=1
Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1)} = min {7} = 7
d(2) = min {d(2), d(1) + c(1, 2)} = min {+ , 7 + 2} = 9 e p(2) = 1
d(3) = min {d(3), d(1) + c(1, 3)} = min {4, 7 5} = 2 e p(3) = 1
d(4) = min {d(4), d(1) + c(1, 4)} = min {5, 7 + } = 5
d(5) = min {d(5), d(1) + c(1, 5)} = min {0, 7 + } = 0
R = {5, 4, 1}
NR = {2, 3}
k=3
r(3) = 2
R = {5, 4, 1, 3}
NR = {2}
a=3
Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(3)+ c(3, 1)} = min {7, 2 + } = 7
d(2) = min {d(2), d(3)+ c(3, 2)} = min {9, 2 + } = 9
d(3) = min {d(3)} = min {2} = 2
d(4) = min {d(4), d(3) + c(3, 4)} = min {5, 2 +1} = 3
d(5) = min {d(5), d(3) + c(3, 5)} = min {0, 2 + } = 0
R = {5, 1, 3}
NR = {2, 4}
k=4
r(4) = 2
R = {5, 1, 4, 3}
NR = {2}
a=4

319

320

Pesquisa Operacional

Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.


Passo 2:
d(1) = min {d(1), d(4}+ c(4, 1)} = min {7, 3 + 2} = 5 e p(1) = 4
d(2) = min {d(2), d(4) + c(4, 2)} = min {9, 3 + } = 9
d(3) = min {d(3), d(4) + c(4, 3)} = min {2, 3 + } = 2
d(4) = min {d(4)} = min {3} = 3
d(5) = min {d(5), d(4) + c(4, 5)} = min {0, 3 + } = 0
R = {5, 4, 3}
NR = {1, 2}
k=1
r(1) = 3
R = {5, 1, 3, 4}
NR = {2}
a=1
Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1)} = min {5} = 5
d(2) = min {d(2), d(1) + c(1, 2)} = min {9, 5 + 2} = 7
d(3) = min {d(3), d(1) + c(1, 3)} = min {2, 5 5} = 0
d(4) = min {d(4), d(1) + c(1, 4)} = min {3, 5 + } = 3
d(5) = min {d(5), d(1) + c(1, 5)} = min {0, 5 + } = 0
R = {5, 1, 4}
NR = {3, 2}
k=3
r(3) = 3
R = {5, 3, 4, 1}
NR = {2}
a=3
Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(3)+ c(3, 1)} = min {5, 0 + } = 5
d(2) = min {d(2), d(3)+ c(3, 2)} = min {7, 0 + } = 7
d(3) = min {d(3)} = min {0} = 0
d(4) = min {d(4), d(3) + c(3, 4)} = min {3, 0 + 1} = 1
d(5) = min {d(5), d(3) + c(3, 5)} = min {0, 0 + } = 0
R = {5, 1, 3}
NR = {2, 4}
k=4
r(4) = 3
R = {5, 1, 4, 3}
NR = {2}
a=4

Captulo 4: Otimizao em redes

Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.


Passo 2:
d(1) = min {d(1), d(4)+ c(4, 1)} = min {5, 1 + 2} = 3 e p(1) = 4
d(2) = min {d(2), d(4) + c(4, 2)} = min {7, 1 + } = 7
d(3) = min {d(3), d(4) + c(4, 3)} = min {0, 1 + } = 0
d(4) = min {d(4)} = min {1} = 1
d(5) = min {d(5), d(4) + c(4, 5)} = min {0, 1 + } = 0
R = {5, 4, 3}
NR = {1, 2}
k=1
r(1) = 4
R = {5, 1, 3, 4}
NR = {2}
a=1
Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1)} = min {3} = 3
d(2) = min {d(2), d(1) + c(1, 2)} = min {7, 3 + 2} = 5
d(3) = min {d(3), d(1) + c(1, 3)} = min {0, 3 5} = 2
d(4) = min {d(4), d(1) + c(1, 4)} = min {1, 3 + } = 1
d(5) = min {d(5), d(1) + c(1, 5)} = min {0, 3 + } = 0
R = {5, 1, 4}
NR = {3, 2}
k=3
r(3) = 4
R = {5, 3, 4, 1}
NR = {2}
a=3
Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.
Passo 2:
d(1) = min {d(1), d(3)+ c(3, 1)} = min {3, 0 + } = 3
d(2) = min {d(2), d(3)+ c(3, 2)} = min {5, 0 + } = 5
d(3) = min {d(3)} = min {2) = 2
d(4) = min {d(4), d(3) + c(3, 4)} = min {1, 2 +1} = 1
d(5) = min {d(5), d(3) + c(3, 5)} = min {0, 2 + } = 0
R = {5, 1, 3}
NR = {2, 4}
k=4
r(4) = 4
R = {5, 1, 4, 3}
NR = {2}
a=4

321

322

Pesquisa Operacional

Passo 3: Como sinal = 1 e r(i) < 5 para i = 1, 2, 3, 4 e 5, retorna-se ao Passo 2.


Passo 2:
d(1) = min {d(1), d(4)+ c(4, 1)} = min {3, 1 + 2} = 1 e p(1) = 4
d(2) = min {d(2), d(4) + c(4, 2)} = min {5, 1 + } = 5
d(3) = min {d(3), d(4) + c(4, 3)} = min {2, 1+ } = 2
d(4) = min {d(4)} = min {1} = 1
d(5) = min {d(5), d(4) + c(4, 5)} = min {0, 1 + } = 0
R = {5, 4, 3}
NR = {1, 2}
k=1
r(1) = 5
R = {5, 1, 3, 4}
NR = {2}
a=1
Passo 3: Como r(1) = 5, pare. Existe um circuito no grafo com comprimento total negativo e
o algoritmo termina sem encontrar uma soluo para o problema.
n

Observe que o fato de o algoritmo terminar sem encontrar uma soluo do problema indica
apenas que foi detectado no grafo um circuito com comprimento total negativo. Isso no quer
dizer que no exista caminho mnimo entre os ns da rede. Pode ser que exista um caminho mnimo (soluo tima finita), mas o algoritmo no capaz de encontr-lo ou assegurar que algum
encontrado durante a execuo seja o timo, ou pode ser que o problema no tenha soluo tima,
pois o caminho entre os dois ns passa pelo circuito e, portanto, pode decrescer de valor tanto
quanto se queira. No caso do Exemplo 4.17 anterior, o problema no tem soluo tima.
Em alguns casos, h interesse em determinar as distncias mnimas entre todos os pares de
ns do grafo. Os algoritmos de Dijkstra e Ford podem ser utilizados repetidamente para se fazer essa determinao, mas apresentamos a seguir um outro algoritmo que utiliza uma abordagem diferente, recursiva, de programao dinmica (estudada em detalhes no Captulo 5).
O algoritmo de Floyd para determinao do caminho mais curto entre todos os pares de ns no grafo*

O algoritmo de Floyd encontra as distncias mnimas (e os caminhos mnimos) entre todos os pares de ns do grafo. O algoritmo funciona mesmo que haja arcos com comprimentos negativos, mas no devem existir circuitos com comprimentos negativos. O algoritmo de Floyd
determina as distncias mnimas entre os pares de ns do grafo de maneira recursiva. Na
iterao k, determinado o caminho mnimo entre dois ns quaisquer utilizando somente os
k primeiros ns.
Denotamos por dk(i,j) a menor distncia entre os ns i e j, dentre todos os caminhos que passam pelos primeiros k ns. Seja d0(i,j) a distncia mnima de i a j no passando por nenhum
n, ou seja d0(i,j) = c(i,j), caso o arco (i,j) exista; caso contrrio, d0(i,j) = + . Note que
dk(i,j) = + se no houver nenhum caminho entre i e j que passe apenas pelos primeiros k ns.
Por definio, d0(i,i) = 0 para todo i. Como existem n ns no grafo, dn(i,j) a menor distncia
procurada entre os ns i e j.
O menor caminho de i a j que pode passar apenas pelos primeiros k ns passa ou no pelo ksimo n. Se no passa pelo k-simo n, ento a menor distncia de i a j que pode passar pelos
primeiros k ns igual menor distncia de i a j que pode passar pelos primeiros k1 ns. Por

Captulo 4: Otimizao em redes

323

outro lado, se o menor caminho passa pelo k-simo n, ento (como no h ciclos com comprimentos negativos, por hiptese) o caminho mnimo que passa pelo k-simo n composto do
caminho mnimo de i a k que pode passar apenas pelos primeiros k1 ns, com o caminho
mnimo de k a j que pode passar pelos primeiros k1 ns. Temos, portanto, que
dk(i,j) = min{dk-1(i,j), dk-1(i,k) + dk-1(k,j)}
Essa frmula recursiva mostra que podemos determinar dk(i,j) a partir de dk-1(i,j), dk-1(i,k)
e dk-1(k,j), e define o algoritmo de Floyd. A frmula recursiva anterior, utilizada para resolver o
problema de caminho mnimo entre todos os pares de ns, derivada da aplicao da tcnica de
programao dinmica (apresentada no Captulo 5) para resoluo de problemas de otimizao.
Como d0(i,j) = c(i,j) para (i,j) E e d0(i,j) = + para (i, j) E, possvel calcular d1(i,j)
para todo par (i,j), depois d2(i,j) a partir de d1(i,j), depois d3(i,j) a partir de d2(i,j), e assim
sucessivamente, at dn(i,j).
Para recuperar o caminho mnimo do n i ao n j, basta armazenar durante os clculos o penltimo n (o n anterior ao n j, denotado por p(i,j)) do caminho que fornece a menor distncia. Isto , na frmula recursiva anterior, se dk(i,j) = dk-1(i,k) + dk-1(k,j), ento p(i,j)=p(k,j). Por
exemplo, p(5, 2) = 3 significa que o caminho mnimo de 5 a 2 (ainda desconhecido) passa pelo
n 3 antes de chegar no n 2 e p(5, 3) fornece o n anterior a 3, e assim por diante. Recuperando passo a passo os ns anteriores, recupera-se todo o caminho mnimo.
Algoritmo de Floyd
Dados:
G (N, E): grafo em que N = {1, 2, , n}
c(i, j)
comprimento do arco (i,j), (i,j) E (c(i, j) pode ser negativo, mas o grafo no
pode possuir circuito com comprimento negativo)
Sada:
d(i, j)
menor distncia do n i ao n j
p(i, j)
penltimo n intermedirio no caminho mnimo do n i ao n j
0
se (i,j) E
Passo 1: d (i,j) = c(i,j)
0
se (i, j) E, i j
d (i,j) = +
0
para i = 1, 2, , n
d (i,i) = 0
p(i,j) = i
para i, j = 1, 2, ..., n
Passo 2: Para k = 1, 2, , n, faa:
dk(i,j) = min{dk-1(i,j), dk-1(i,k) + dk-1(k,j)}
e, se {dk(i,j) = dk-1(i,k) + dk-1(k,j)}, ento p(i,j) p(k,j)
Exemplo 4.18 Ilustramos o algoritmo de Floyd para o grafo da Figura 4.20. Denotemos por Dk a
matriz n n cujo elemento (i,j) dk(i,j), e por P a matriz dos elementos p(i,j).
Passo 1:
0 2
0

4 3 0 7
D0 = 2 0
10 5

5 1

324

Pesquisa Operacional

1
2

3
P=
4
5

1 1 1 1 1
2 2 2 2 2
3 3 3 3 3

4 4 4 4 4
5 5 5 5 5

6 6 6 6 6

Passo 2:
k = 1, d1(i,j) = min {d0(i,j), d0(i,1) + d0(1,j)}
d1(1, 1) = d0(1, 1) = 0
d1(1, 2) = d0(1, 2) = 2
d1(1, 3) = d0(1, 3) =
d1(1, 4) = d0(1, 4) =
d1(1, 5) = d0(1, 5) =
d1(1, 6) = d0(1, 6) =
d1(2, 1) = d0(2, 1) =
d1(2, 2) = d0(2, 2) = 0
d1(2, 3) = min {d0(2, 3), d0(2, 1) + d0(1, 3)} = min { , + } =
d1(2, 4) = min {d0(2, 4), d0(2, 1) + d0(1, 4)} = min { , + } =
d1(2, 5) = min {d0(2, 5), d0(2, 1) + d0(1, 5)} = min { , + } =
d1(2, 3) = min {d0(2, 6), d0(2, 1) + d0(1, 6)} = min { , + } =
d1(3, 1) = d0(3,1) = 4
d1(3, 2) = min {d0(3, 2), d0(3, 1) + d0(1, 2)} = min {3, 4 + 2} = 2
e p(3, 2) = p(1, 2) = 1
d1(3, 3) = d0(3, 3) = 0
d1(3, 4) = min {d0(3, 4), d0(3, 1) + d0(1, 4)} = min { 7, 4 + } = 7
d1(3, 5) = min {d0(3, 5), d0(3, 1) + d0(1, 5)} = min { , 4 + } =
d1(3, 6) = min {d0(3, 6), d0(3, 1) + d0(1, 6)} = min { , 4 + } =
d1(4, 1) = d0(4, 1) = 2
d1(4, 2) = min {d0(4, 2), d0(4, 1) + d0(1, 2)} = min { , 2 + 2} = 4
e p(4, 2) = p(1, 2) = 1
d1(4, 3) = min {d0(4, 3), d0(4, 1) + d0(1, 3)} = min { , 2 + } =
d1(4, 4) = d0(4, 4) = 0
d1(4, 5) = min {d0(4, 5), d0(4, 1) + d0(1, 5)} = min { , 2 + } =
d1(4, 6) = min {d0(4, 6), d 0(4, 1) + d0(1, 6)} = min { , 2 + } =
d1(5, 1) = d0(5, 1) =
d1(5, 2) = min {d0(5, 2), d0(5, 1) + d0(1, 2)} = min { , + 2} =
d1(5, 3) = min {d0(5, 3), d0(5, 1) + d0(1, 3)} = min {10, + } = 10
d1(5, 4) = min {d0(5, 4), d0(5, 1) + d0(1, 4)} = min {5, + } = 5
d1(5, 5) = d0(5, 5) = 0
d1(5, 6) = min {d0(5, 6), d0(5, 1) + d0(1, 6)} = min {4, + } = 4
d1(6, 1) = d0(6, 1) = 5
d1(6, 2) = min {d0(6, 2), d0(6, 1) + d0(1, 2)} = min { , 5 + 2} = 7

Captulo 4: Otimizao em redes

e p(6, 2) = p(1, 2) = 1
d1(6, 3) = min {d0(6, 3), d0(6, 1) + d0(1, 3)} = min { , 5 + } =
d1(6, 4) = min {d0(6, 4), d0(6, 1) + d0(1, 4)} = min {1, 5 + } = 1
d1(6, 5) = min {d0(6, 5), d0(6, 1) + d0(1, 5)} = min { , 5 + } =
d1(6, 6) = d0(6, 6) = 0
De maneira similar, calcula-se para k = 2, d2(i,j) = min {d1(i,j), d1(i, 2) + d1(2, j)}
2
0

4 2 0 7
D2 =
4 0
2
10 5

7 1
5
1
2

3
P = 4

1
2
1
1
5
1

1
2
3
4
5
6

1
2
3
4
5
6

1
2
3
4
5
6

1
2
3

4
5

Para k = 3, d3(i,j) = min {d2(i,j), d2(i, 3) + d2(3, j)}


2
0

4
2 0 7

D3 =
4 0
2
6
8 10 3

7 1
5
1
2

3
P=
4
3

1
2
1
1
1
1

1
2
3
4
5
6

1
2
3
4
3
6

1
2
3
4
5
6

1
2
3

4
5

Para k = 4, d4(i,j) = min {d3(i,j), d3(i, 4) + d3(4, j)}


2
0
0

5 3
4
D =
4
2
5
7

5
3

0
10 3 0 4

1 0

325

326

Pesquisa Operacional

1
2

4
P=
4
4

1
2
1
1
1
1

1
2
3
4
5
6

1
2
3
4
3
6

1
2
3
4
5
6

1
2
3

4
5

Para k = 5, d5(i,j) = min {d4(i,j), d4(i, 5) + d4(5, j)}


2
0
0

5 3
D5 = 2 4

5
7

3
5

1
2

4
P=
4
4

1
2
1
1
1
1



0 7
0
10 3
1

1
2
3
4
5
6

1
2
3

4
5

1
2
3
4
3
6

1
2
3
4
5
6

Para k = 6, d6(i,j) = min {d5(i,j), d5(i, 6) + d5(6, j)}


2
0
0

5 3
D6 =
4
2
5
7

3
5

1
2

4
P=
4
4

0
10 3 0 4

1 0

1 1 1 1 1
2 2 2 2 2
1 3 3 3 3

1 4 4 4 4
1 5 3 5 5

1 6 6 6 6

Na matriz D6, temos todas as menores distncias entre pares de ns do grafo da Figura 4.20.
Por exemplo, a menor distncia do n 3 ao n 1 5, a menor distncia do n 5 ao n 2 7 etc.
Para recuperar o caminho mnimo, fazemos uso da matriz P. No caso, por exemplo, no caminho
mnimo do n 3 ao n 1, temos que o ltimo n intermedirio no caminho o n p(3, 1) = 4.
Do caminho mnimo do n 4 ao n 1, temos que o ltimo n intermedirio no caminho o n
p(4, 1) = 4. Portanto, o ltimo (e nico) arco do menor caminho do n 4 ao n 1 (4,1). O ltimo n intermedirio do menor caminho do n 3 ao n 4 p(3, 4) = 3. Portanto, o ltimo (e nico) arco do menor caminho do n 3 ao n 4 (3, 4). Determinamos, assim, o caminho mais curto
do n 3 ao n 1 dado por C = {(3, 4), (4, 1)}.

Captulo 4: Otimizao em redes

327

De maneira similar, o ltimo n intermedirio do caminho mais curto do n 5 ao n 2 p(5, 2)


= 1. O ltimo n intermedirio do caminho mais curto do n 1 ao n 2 1. Portanto, o ltimo (e
nico) arco do menor caminho do n 1 ao n 2 (1, 2). O ltimo n intermedirio do menor caminho do n 5 ao n 1 p(5, 1) = 4. O ltimo n intermedirio do menor caminho do n 4 ao n
1 p(4, 1) = 4. Portanto, o ltimo (e nico) arco do menor caminho do n 4 ao n 1 (4, 1). O
ltimo n intermedirio do menor caminho do n 5 ao n 4 p(5, 4) = 3. O ltimo n intermedirio do menor caminho do n 3 ao n 4 p(3, 4) = 3. Portanto, o ltimo (e nico) arco do menor
caminho do n 3 ao n 4 (3, 4). O ltimo n intermedirio do menor caminho do n 5 ao n 3
p(5, 3) = 5. Portanto, o ltimo (e nico) arco do menor caminho do n 5 ao n 3 (5, 3). Assim,
o caminho mais curto do n 5 ao n 2 dado por C = {(5, 3), (3, 4), (4, 1), (1, 2)}.
n

4.2.2 O problema de caminho mximo

Um outro problema simples em grafos o de determinar o caminho mximo entre dois ns no


grafo. A formulao matemtica deste problema igual do problema de caminho mais curto, exceto que na funo objetivo temos uma maximizao, ao invs de minimizao. O problema de caminho mximo aparece com freqncia em aplicaes prticas, por exemplo, no
problema da mochila (ver Seo 3.4 do Captulo 3 e Seo 4.2.1, Exemplo 4.14), na programao de projetos (ver exemplo na Seo 2.2 do Captulo 2), entre outros. Os algoritmos da Seo 4.2.1 obedecidas s condies para os quais foram desenvolvidos, podem ser utilizados para
resolver o problema de caminho mximo. Observe que maximizar uma funo objetivo equivalente a minimizar o negativo desta funo, portanto, o problema de caminho mximo entre
dois ns no grafo pode ser transformado em um problema de caminho mnimo entre esses
mesmos ns.
Considere um problema de programao de um projeto (como o exemplificado na Seo 2.2
Captulo 2). Considere que cada arco (i,j) no grafo corresponde a uma atividade do projeto.
Assim, o n cauda i desse arco indica o incio da atividade e o n cabea j, o fim da atividade, e
o comprimento do arco a durao da atividade.
Iniciamos a construo do grafo com o n 0 representando o incio do projeto e um n F que
representa o final do projeto. Todos os arcos correspondentes a atividades que no exigem o trmino de nenhuma outra atividade anterior (isto , atividade sem pr-requisito) tm seu n cauda em 0. Todos os arcos correspondentes a atividades que no tm necessidade de serem
completadas para que alguma outra atividade seja executada tm o seu n cabea em F. Os demais ns do grafo so definidos da seguinte forma. O n cabea de um arco correspondente a
uma atividade, digamos, A, que necessariamente precisa estar completada para que uma outra
atividade, digamos, B, seja iniciada, dever ser o n cauda da atividade B nesse grafo. Desta forma, o grafo referente s atividades do projeto fica completamente definido. O trmino do projeto se d pela distncia do caminho mximo do n 0 ao n F.
O caminho mximo nesse grafo do n 0 ao n F denominado caminho crtico, pois qualquer
atraso em alguma das atividades desse caminho implica atraso no trmino do projeto. Portanto,
qualquer atividade desse caminho crtico uma atividade crtica. A determinao do caminho
crtico pode ser feita de maneira recursiva, a partir de um conjunto de ns cujos caminhos mximos, do n 0 a estes ns, j tenham sido determinados.
Seja t(i) o comprimento do caminho mais longo do n 0 ao n i. Chamemos de n rotulado
aquele n cujo caminho mais longo do n 0 at ele j tenha sido determinado. Os demais ns
so denominados no rotulados. Comeamos com o n 0 com t(0) = 0, ou seja, o incio do projeto. O n 0, ento, o primeiro n rotulado. Calcula-se a seguir, sucessivamente, t(k) de algum
n k ainda no rotulado que seja n cabea de arcos cujos ns caudas j tenham sido todos rotulados.

328

Pesquisa Operacional

Seja
P(k) o conjunto dos ns predecessores do n k , ou seja, P(k) ={i tal que (i, k) E}
R o conjunto dos ns rotulados
Inicialmente, R = {0}, P(0) = (o n inicial no tem predecessores). Se P(k) R (isto , todos os predecessores do n k esto rotulados) e k R, ento
{t(i)+c(i,k)}
t(k) = max
iP (k )
ou seja, o caminho mximo de 0 at k igual ao caminho mximo dentre todos aqueles que passam por ns caudas cujos arcos tm como n cabea o n k. O procedimento continua at o momento em que no existem mais ns a rotular. O n F o ltimo n a ser rotulado, pois este n
corresponde ao final do projeto. A frmula recursiva anterior, utilizada para resolver o problema
de caminho mximo, derivada da aplicao da tcnica de programao dinmica (apresentada
no Captulo 5) para resoluo de problemas de otimizao.
Deve-se ter em mente que este algoritmo no funciona para qualquer grafo. Por exemplo, em
grafos com circuitos no se consegue rotular os ns pertencentes a um circuito, portanto, no
possvel utilizar a frmula recursiva nesses ns. Entretanto, o algoritmo suficiente para grafos
obtidos de projetos com atividades que obedecem a uma relao de ordem coerente, ou seja, um
grafo sem circuitos.
Exemplo 4.19 Ilustramos a aplicao do algoritmo de caminho mais longo para o grafo da Figura 4.22.
Temos, inicialmente, t(0) = 0, R = {0} e NR = {1, 2, 3, 4, F}, em que R o conjunto dos ns
rotulados e NR o conjunto dos ns no rotulados, respectivamente. Dentre os ns em NR, selecionemos algum n k que seja n cabea de arcos cujos ns cauda j tenham sido todos rotulados. Temos, ento, como candidatos, os ns 1, 2 e 3. Podemos escolher, por exemplo, os ns 1
ou 2. O n 3 no poderia ser escolhido neste momento, pois P(3) = {0, 1, 2} R, ou seja, ele
no n cabea de arcos cujos ns cauda j tenham sido todos rotulados.
Calculamos, inicialmente,
t(1) = {t(0) + 4} = 4, R = {0, 1} e NR = {2, 3, 4, F}

Figura 4.22 Encontrar caminho mais longo (caminho crtico) entre os ns 0 e F.

Captulo 4: Otimizao em redes

329

Em seguida, calculamos,
t(2) = {t(0) + 10} = 10, R = {0, 1, 2} e NR = {3, 4, F}
Podemos, agora, determinar
t(3) = max {t(0) + 5, t(1) + 1, t(2) + 7} = 17, R = {0, 1, 2, 3} e NR = {4, F}
depois, determinar
t(4) = max {t(1) + 5, t(2) + 4, t(3) + 2} = 19, R = {0, 1, 2, 3, 4} e NR = {F}
e, finalmente, determinamos
t(F) = max {t(2) + 3, t(4) + 2} = 21, R = {0, 1, 2, 3, 4, F} e NR =
Portanto, o caminho mais longo de 0 a F tem comprimento 21 e dado por C={(0, 2),
(2, 3), (3, 4), (4, F)}. Qualquer atraso em alguma das atividades nesse caminho (atividades crticas) implica um atraso do projeto. O caminho crtico do grfico da Figura 4.22 est indicado
na Figura 4.23.
Conforme mencionado na Seo 3.6.4, o algoritmo de caminho mais longo de um grafo
de atividades de um projeto conhecido como o mtodo de caminho crtico ou CPM (do ingls, critical path method). Com o CPM possvel determinar o quanto cada atividade fora do
caminho crtico de um projeto pode atrasar sem que isso afete o prazo de encerramento do
projeto.
O comprimento t(i) do caminho mximo do n 0 at um n qualquer i de um grafo de atividades de um projeto tambm conhecido como o instante mais cedo do evento i (earliest event time),
ou seja, o tempo mais curto no qual o evento correspondente ao n i pode ocorrer. Por exemplo,
t(1) = 4 significa que o evento 1 (fim da atividade (0, 1) e incio das atividades (1, 3) e (1, 4)) no
pode ser realizado antes do instante 4.
Tendo disponvel t(i), possvel determinar o instante mais tarde que uma atividade que precede imediatamente o evento i pode ocorrer sem que o evento i atrase. Considere, por exemplo,
o n 3 do grafo de atividades da Figura 4.22. Como t(3) = 17, a atividade correspondente ao arco
(1, 3) que precede imediatamente o n 3 pode iniciar em qualquer instante anterior ou igual a
t(3) 1 sem que haja atrasos no encerramento do projeto. Portanto, o evento correspondente ao
n 1 pode ocorrer em qualquer instante anterior ou igual a t(3) 1 = 16 e, com isso, no haver
atrasos no encerramento do projeto.

Figura 4.23 Caminho mais longo (caminho crtico) do n 0 ao n F.

330

Pesquisa Operacional

O quanto a durao de uma atividade (i,j) pode aumentar sem que, com isso, haja um atraso no incio de qualquer outra atividade posterior a ela denominada flutuao livre ou folga da
atividade (i,j) e denotada por FL(i,j) no encerramento do projeto. Se c(i,j) a durao da
atividade (i,j), FL(i,j) dado por
FL(i,j) = t(j) t(i) c(i,j)
pois o tempo mais cedo do evento j no se altera se a durao de uma atividade (i,j) aumentar
de , desde que t(i) + c(i,j) + t(j) ou t(j) t(i) c(i,j). Considere, por exemplo, a atividade (1, 3) da Figura 4.22. A flutuao livre de (1, 3) igual a
FL(1, 3) = t(3) t(1) c(1, 3) = 17 4 1 = 12
ou seja, a durao da atividade (1, 3) pode aumentar de 12 unidades sem que com isso atrase
o evento correspondente ao n 3 (isto , incio da atividade (3, 4) e trmino das atividades
(0, 3), (1, 3) e (2, 3)).
O tempo mais tarde que um evento correspondente a um n i pode ocorrer sem que com isso
haja atrasos no encerramento do projeto denominado o instante mais tarde do evento (late event
time), e denotado por LT(i). Esse tempo definido pelo menor dos tempos de todas as atividades que tm i como n cauda. Por exemplo, LT(1) do grafo de atividades da Figura 4.22
dado por:
LT(1) = min {LT(3) 1, LT(4) 5}
Assim, para calcular LT(1), precisamos dos valores de LT(3) e LT(4), que no esto disponveis e precisam ser calculados. Desta forma, para calcular LT(.) para os diversos ns do grafo,
precisamos iniciar de trs para a frente, a partir de F, fazendo LT(F) = t(F). Temos, para o grafo
da Figura 4.22, que LT(F) = t(F) = 21. De posse de LT(F), podemos calcular
LT(4) = min {LT(F) 2} = min {212} = 19
De posse de LT(F) e LT(4), podemos calcular
LT(3) = min {LT(4) 2} = min {192} = 17
De posse de LT(F), LT(4) e LT(3), podemos calcular
LT(2) = min {LT(F) 3, LT(4) 4, LT(3) 7} = min {213, 194, 177} = 10,
LT(1) = min {LT(3) 1, LT(4) 5} = min{171, 195} = 14
De posse de LT(F), LT(4), LT(3), LT(2) e LT(1), podemos calcular
LT(0) = min {LT(3) 5, LT(2) 10, LT(1) 4} = min {175, 1010, 144} = 0
o que j era esperado. De fato, para todos os ns i que pertencem ao caminho crtico, devemos
ter LT(i) = t(i) pela prpria definio de caminho crtico. Encontramos que LT(1) = 14, portanto, o evento correspondente ao n 1 deve ocorrer no mximo at o instante 14 para que no haja
atrasos no encerramento do projeto.
Tendo em mos os valores de t(i) e LT(i) dos ns do grafo, possvel determinar agora a
flutuao total de uma atividade (i,j) (denotada por FT(i,j)), ou seja, quanto tempo a durao
de uma atividade (i,j) pode aumentar sem que com isso haja um atraso no encerramento do
projeto. FT(i,j) definido por
FT(i,j) = LT(j) t(i) c(i,j)
uma vez que o encerramento de um projeto no se altera se a durao de uma atividade (i,j)
aumentar de , desde que t(i) + c(i,j) + LT(j) ou LT(j) t(i) c(i,j). Considere, por exemplo, a atividade (0,1) do projeto. A flutuao total de (0,1)
FT(0,1) = LT(1) t(0) c(0, 1) = 14 0 4 = 10
ou seja, a durao da atividade (0, 1) pode aumentar de 10 unidades sem que com isso o encerramento do projeto se altere.

Captulo 4: Otimizao em redes

331

Na prtica, a durao das atividades nem sempre conhecida com certeza. Assim, h incertezas de que o projeto se encerrar em um determinado tempo. A tcnica de avaliao e reviso de programa PERT (do ingls, program evaluation and review technique) modela cada uma
das duraes das atividades do projeto como uma varivel aleatria e utiliza a teoria de probabilidades para determinar, por exemplo, as chances de um projeto ser encerrado at um determinado prazo de tempo, uma vez que no se pode ter certeza de que o projeto realmente se
encerrar em uma determinada data, dada a incerteza na durao de diversas das atividades
nele envolvidas.
As duraes dos caminhos do n 0 ao n F so somas de variveis aleatrias cuja distribuio pode ser, geralmente, aproximada por uma distribuio normal. Para determinar as chances
de um projeto ser encerrado at um certo prazo necessrio obter pelo menos a mdia e a
varincia das variveis aleatrias correspondentes s somas dos caminhos do n 0 ao n F. O
clculo da varincia de uma varivel aleatria, que a soma de variveis aleatrias, pode ser
complicado, a menos que hipteses simplificadoras sejam feitas. Por exemplo, pode-se admitir que as variveis aleatrias so independentes. Essa suposio, entretanto, nem sempre condiz
com a realidade.
Mesmo que se consigam determinar esses valores, dada a aleatoriedade das variveis, no
existe mais a certeza de qual dever ser o caminho crtico. Uma suposio que normalmente
feita de que o caminho crtico dado pelo CPM (utilizando-se o valor mdio de cada uma
das atividades) permanecer crtico para o projeto. Essa suposio, entretanto, carece de suporte terico.
4.2.3 O problema da rvore geradora mnima

Um problema de interesse em grafos, tambm relacionado menor distncia, o problema de


determinao da rvore geradora de custo mnimo ou, simplesmente, rvore geradora mnima de
um grafo. Este problema tambm aparece em vrias aplicaes prticas diretamente ou como
subproblemas de outros problemas mais complexos.
Exemplo 4.20 Considere uma empresa que deseja conectar entre si todos os diversos departamentos de sua fbrica por cabos de fibra ptica. Com isso, pretende-se ter uma transferncia
de dados rpida, segura e gil entre os diversos departamentos. A empresa deseja instalar essa
conexo ao menor custo possvel e sabe que as despesas so proporcionais ao comprimento total
do cabo de fibra ptica necessrio para se realizar essas conexes. Se cada n do grafo representa um departamento da empresa e as arestas que unem dois ns representam o cabo de fibra ptica entre os dois departamentos correspondentes, desejamos determinar apenas o
conjunto de arestas na rede que conecta todos os ns e cujo comprimento total seja o menor
possvel.
n

Formulao matemtica do problema da rvore geradora mnima

Para escrever um modelo matemtico para o problema da rvore geradora mnima de um grafo
no direcionado com n ns, podemos imaginar um problema de transporte em que existe suprimento de n-1 unidades de um produto em apenas um dos ns do grafo, digamos o n 1, e existe uma demanda de exatamente 1 unidade do produto em cada um dos demais n-1 ns. O custo
de transporte em cada aresta (i, j) no grafo, entretanto, diferente do que ocorre no caso do problema de transporte, independe do volume transportado do produto na aresta. Ele zero se a

332

Pesquisa Operacional

aresta no utilizada no transporte ou cij (a distncia da aresta), se a aresta utilizada (admite-se,


sem perda de generalidade, que cij 0 para toda aresta (i, j) E). Devido a essa caracterstica peculiar do custo na aresta tomar dois valores apenas, precisamos utilizar no modelo uma varivel
binria, ou seja, uma varivel que toma apenas dois valores, 0 ou 1. No caso, consideraremos que
essa varivel toma o valor 0 quando no h fluxo na aresta e, o valor 1,caso contrrio.
Adicionalmente, observe que, devido ao custo depender apenas da utilizao ou no de uma
aresta no grafo, qualquer um dos ns do grafo pode ser escolhido como o n onde todo o suprimento n-1 do produto est concentrado, pois a soluo do problema (a rvore geradora mnima) ser a mesma, independente do n escolhido. Assim, sem perda de generalidade,
apresentamos, a seguir, o modelo matemtico para o problema da rvore geradora mnima considerando que o suprimento est todo concentrado no n 1. O modelo fica,
min f(N,O) =

cij yij

( i , j )E

x1 j = n 1

xij

{ j:(1, j )E }

{i:( i , j )E }

x jk = 1,

j = 2,..., n

{ k :( j , k )E }

xij 0,

(i, j) E

(n-1)yij xij,

(i, j) E

yij xij,

(i, j) E

yij {0,1},

(i, j) E

em que
a quantidade transportada do produto do n i para o n j utilizando a aresta (i, j)
xij
a varivel binria que indica se a aresta (i, j) utilizada para transportar o produto
yij
do n i para o n j. Ela toma o valor 1 se a aresta (i, j) utilizada e 0, caso contrrio
o custo incorrido caso a aresta (i, j) seja utilizada para se realizar este transporte
cij
do produto do n i para o n j.
A soluo do modelo eventualmente pode no ser uma rvore, mas fcil obter a partir dela
uma soluo rvore alternativa. Para outro modelo, cuja soluo sempre uma rvore, mas envolve um nmero exponencial de restries, veja Bertsimas e Tsitsiklis (1997).
Observe que alm da mudana da funo objetivo, introduzimos mais 3 restries (as 3 ltimas) ao modelo de fluxo em redes a ser apresentado mais adiante neste captulo. Essas restries
relacionam a varivel xij com a varivel correspondente yij, de modo que, yij seja 1 sempre que xij
for positivo e, seja 0, caso contrrio.
De fato, se xij for positivo, ento para que a restrio
(n-1)yij xij,

Captulo 4: Otimizao em redes

333

seja satisfeita, yij tem de ser positivo, ou seja, yij 1. Como temos no mximo n-1 itens a transportar do n 1 aos demais ns, em nenhum arco transportaremos mais do que n-1 unidades e,
portanto, essa restrio ser satisfeita. Por outro lado, a restrio
yij xij,
assegura que yij zero quando xij zero. Essa restrio tambm garante que se yij 1, a quantidade transportada no arco (i, j) no mnimo 1, ou seja, esse arco ser includo na soluo.
O modelo apresentado tem variveis reais e variveis inteiras. O mtodo simplex poder ser
aplicado relaxao7 linear do problema, isto , o mesmo problema sem as restries de que as
variveis yij devam ser inteiras iguais a 0 ou 1, mas apenas que devam estar no intervalo entre 0
e 1, ou seja, 0 yij 1. Entretanto, no se tm garantias de obteno de uma soluo inteira para
as variveis yij.
n

O problema da rvore geradora mnima pode ser resolvido otimamente utilizando-se um procedimento guloso no sentido de sempre escolher, sucessivamente, as arestas de menor comprimento. Este procedimento conhecido como o algoritmo de Kruskal.
Algoritmo de Kruskal para gerao de rvore mnima

Dados:
G (N, E), em que N = {1, 2, , n}
c(i,j) comprimento da aresta (i,j)
Sada:
ST rvore geradora mnima
LST comprimento da rvore geradora mnima.
Passo 1: LST = 0
C = {1} (escolha do n 1 arbitrria)
C = N C
ST =

Figura 4.24

Grafo ilustrativo para determinao da rvore geradora mnima.

7 O termo relaxao vem do fato de se relaxar alguma restrio do problema, no caso, a restrio de integralidade das variveis deixou de ser exigida.

334

Pesquisa Operacional

Figura 4.25 N inicial da rvore geradora mnima.

Passo 2: Enquanto (C ), faa


Incio_Enquanto
Selecione j C tal que c(k,j) = min {c(r,s) tal que (r,s) E, r C e s C}, isto
, o n em C mais prximo de qualquer n em C. Seja k o n em C mais
prximo de j.
C C {j}
C C {j}
LST LST + c(k,j)
ST ST {(k,j)}
Fim_Enquanto
Ilustremos a aplicao do algoritmo de gerao de rvore mnima para o grafo da Figura 4.24.
Os comprimentos dos arcos c(i,j) esto indicados na figura.
Passo 1: LST = 0
i=1
C = {1}
C = {2, 3, 4}
ST =

Figura 4.26 N 2 o mais prximo dos ns em C.

Captulo 4: Otimizao em redes

335

Na Figura 4.25, o n selecionado indicado com um J. O n que no est em C e o mais


prximo de qualquer n no conjunto C o prximo n a ser inserido nesse conjunto, e est indicado com um . Esses mesmos smbolos so empregados nas figuras subseqentes para indicar ns em C e o n mais prximo de qualquer n desse conjunto.
Passo 2: O n 2 o mais prximo de qualquer n em C e o n 1 o n em C que o mais
prximo de 2.
C = {1, 2} (ver Figura 4.26)
C = {3, 4}
LST = 0 + c(1, 2) = 1
ST = {(1, 2)}
O n 4 o mais prximo de qualquer n em C e o n 1 o n em C que o mais prximo de 4.
C = {1, 2, 4} (ver Figura 4.27)
C = {4}
LST = 1 + c(1, 4) = 3
ST = {(1, 2), (1, 4)}
O n 3 o mais prximo de qualquer n em C e o n 2 o n em C que o mais prximo de 3.
C = {1, 2, 4, 3} (ver Figura 4.28)
C =
LST = 3 + 3 = 6
ST = {(1, 2), (1, 4), (2, 3)}
A rvore geradora mnima do grafo da Figura 4.24 ST = {(1, 2), (1, 4), (2, 3)}, ilustrado na Figura 4.28, com comprimento total (soma dos comprimentos das arestas na rvore)
igual a 6.
4.2.4 Problemas de fluxo

Vrios outros problemas de otimizao em redes envolvem o transporte ou fluxo de algum item
ou itens de um n a outro na rede com um determinado objetivo. Problemas de fluxo podem ser

Figura 4.27 N 4 o mais prximo dos ns em C.

336

Pesquisa Operacional

Figura 4.28 N 3 o mais prximo dos ns em C e rvore geradora mnima do grafo da Figura 4.24.

encontrados em diversas situaes prticas, por exemplo, na transmisso de mensagens em redes de comunicao de dados, no envio de gua em uma rede de distribuio de gua, no transporte de carga em uma rede viria etc.
Considere uma rede G (N, E). Problemas de fluxo em rede normalmente apresentam as seguintes caractersticas:
Um nvel mximo de fluxo tolerado para cada arco do grafo.
Um nvel mnimo de fluxo imprescindvel para cada arco do grafo.
Um custo por unidade de fluxo enviada para cada arco do grafo.
Demanda ou produo (suprimento) do item (bem ou produto) em cada n do grafo.
No caso de o objetivo ser a minimizao de custos, o problema conhecido como problema
de fluxo de custo mnimo, que pode ser modelado como um problema de otimizao linear. As variveis de deciso so:
xij fluxo (ou quantidade de itens) no arco (i,j)
e os parmetros:
cij custo por unidade de fluxo no arco (i,j)
di demanda (se negativo; a rigor, di a demanda) ou suprimento (se positivo) de itens no n i
uij limite mximo de fluxo no arco (i,j)
l ij limite inferior, valor mnimo de fluxo no arco (i,j)
Em cada n da rede (ver Figura 4.29), o fluxo de material deve ser conservado, ou seja, o
fluxo total que entra no n i (isto ,

ki

kP (i )

), mais a oferta (se di > 0) ou menos a demanda (se

di< 0), igual ao fluxo total que sai do n i (isto ,

kP (i )

ki

ij

), ou seja,

jS (i )

+ di =

ij

jS (i )

em que, como j definido anteriormente,


S(i) o conjunto dos ns sucessores de i, ou seja, S(i) = {j N, tal que (i,j) E}
P(i) o conjunto de ns predecesores de i, ou seja, P(i) = {k N, tal que (k,i) E}
Assim, o problema de fluxo a custo mnimo em uma rede de n ns pode ser modelado da seguinte forma:

Captulo 4: Otimizao em redes

337

Figura 4.29 Conservao do fluxo no n i.

Minimizar f(x) =

(4.1)

ij ij

( i , j )E

ij

jS (i )

kP (i )

l ij xij uij

ki

= di

i = 1, 2, , n

(4.2)

para todo (i, j) E

(4.3)

A funo f(x) em (4.1) nos d o custo total referente aos fluxos por todos os arcos do grafo.
As restries em (4.2) asseguram a conservao de fluxo em todos os ns, como explicado anteriormente. As restries em (4.3) limitam os fluxos nos arcos entre os valores mnimos e suas capacidades mximas. Podemos considerar, sem perda de generalidade, que l ij = 0 para todo arco
(i,j), uma vez que caso este valor seja diferente de zero, podemos simplesmente realizar uma
mudana de varivel e considerar uma nova varivel yij, em que yij = xij l ij , de modo que 0 yij
uij l ij . Com isso, obtemos um modelo equivalente e com a mesma forma que o anterior, porm, o limitante inferior l ij para a varivel yij , agora, igual a 0 para todo i, j. Note que o modelo (4.1)-(4.3) pode ser visto como um caso particular do modelo (LF16)-(LF19) da Seo 3.5.2
em que foram considerados custos fixos associados ao uso de um arco.
Cabe observar que, se colocarmos as restries (4.2) na forma matricial Ax = d, a matriz A
a matriz de incidncia n-arco do grafo (ver Seo 4.1, Definio 4.10). O exemplo a seguir ilustra as restries (4.2) na forma matricial. Considere o grafo da Figura 4.30, que idntico ao da

Figura 4.30 Grafo exemplo de problema de fluxo.

338

Pesquisa Operacional

Figura 4.2, em que admitimos que existam suprimentos e/ou demandas nos ns, conforme valores indicados na figura.
As restries (4.2) para este problema ficam:
=7
n (1):
x12 + x14
+ x23 + x24
=4
n (2):
x12
n (3):
x23
x43 = 5
x24 + x43 = 2
n (4):
x14
ou

1
1
0

x12
1
0
0
0
7
x14

0
1
1
0
x23

0 1 0 1
x24 = 5
1 0 1 1
2
x43

A matriz

1 1 0 0 0
1 0 1 1 0

A = 0 0 1 0 1
0 1 0 1 1
uma matriz de incidncia n-arco do grafo da Figura 4.30, que a mesma encontrada no
Exemplo 4.5.
Em alguns problemas de otimizao em redes, deparamos com limitaes de fluxo nos ns,
juntamente com as limitaes nos arcos. Nestes casos, podemos reescrever o problema em um
outro equivalente, no qual as limitaes de fluxo esto somente nos arcos. Para isso, pegue cada
n i com limitaes de fluxo no grafo original e substitua-o por dois ns i1 e i2. No novo grafo,
o arco (k, i) do grafo original substitudo por um arco (k, i1), exatamente com os mesmos
parmetros de custos, limitaes de capacidade etc., o arco (i, f) do grafo original substitudo
por um arco (i2, f), exatamente com os mesmos parmetros de custos, limitaes de capacidade
etc., e adicionamos um arco (i1, i2) com custo 0 e com as limitaes de capacidade do n i (ver
Figura 4.31). Observe no novo grafo que o arco (i1, i2) restringe o fluxo do n i conforme desejado. Assim, podemos desenvolver mtodos de soluo para problemas de otimizao em redes
apenas com limitaes de capacidade nos arcos, sem perda de generalidade.
O problema de caminho mnimo

O problema de caminho mais curto entre dois ns i e j em um grafo, discutido na Seo 4.2.1,
um caso particular do problema de fluxo a custo mnimo em uma rede em que se deseja enviar
uma unidade de um produto do n 1 ao n n e cij o comprimento do arco (i,j). A fomulao
matemtica deste problema foi apresentada na Seo 4.2.1. Neste modelo, se alterarmos o objetivo para maximizao, temos a formulao matemtica do problema de caminho mximo entre
os ns 1 e n discutido na Seo 4.2.2.
A formulao matemtica do problema do caminho mais curto do n 1 a todos os demais
ns da rede tambm um caso particular do problema de fluxo. Este problema pode ser formulado considerando o problema de fluxo em que se tem um suprimento de exatamente n
1 unidades no n 1 e uma demanda de exatamente 1 unidade em cada um dos demais ns.
O modelo fica:

Captulo 4: Otimizao em redes

Minimizar f(x) =

339

ij ij

( i , j )E

x1 j

j S (1)

sS ( j )

xij 0

xk1 = n1

k P (1)
js

kj

= 1,

j = 2, , n

kP ( j )

para todo (i,j) E

Os algoritmos para a resoluo desses problemas foram apresentados nas Sees 4.2.1 e
4.2.2.
O problema de fluxo mximo

Um outro problema muito comum de fluxo o problema de fluxo mximo, que consiste em determinar o valor do maior fluxo possvel que pode ser enviado de um n a outro da rede. O problema de fluxo mximo aparece em uma empresa, por exemplo, quando se deseja determinar qual
a capacidade mxima de produo de um determinado produto. O produto pode ser fabricado
utilizando-se roteiros diferentes, que podem passar por diferentes centros de fabricao, cada um
deles com uma certa capacidade instalada.
Sem perda de generalidade, consideramos o n 1 como o n origem (ou n fonte), e o n n
como o n para o qual se deseja enviar o fluxo mximo (o n sorvedouro). Se denotamos por y
a quantidade do produto que est sendo enviado do n 1 ao n n, o modelo de otimizao linear
para este problema dado por:

Figura 4.31 Construo de grafo equivalente com limitaes de fluxo apenas nos arcos.

340

Pesquisa Operacional

Maximizar y

1j

jS (1)

ij

jS (i )

k1

=y

(n fonte 1)

kP (1)

ki

=0

i = 2, 3, ..., n 1

kP (i )

nj

kn

= y

(n sorvedouro n)

kP (n )

jS (n )

0 xij uij

para todo (i,j) E

As equaes do modelo anterior podem ser escritas com todas as variveis no lado esquerdo:

1j

ij

jS (1)

jS (i )

k1

y=0

kP (1)

=0

ki

i = 2, 3, ..., n 1

kP (i )

nj

jS (n )

kn

+y=0

kP (n )

do que conclumos que a coluna da varivel fluxo y pode ser vista como associada a um arco (n, 1),
chamado arco de retorno. O arco (n, 1) passa a pertencer ao grafo e basta redefinir S(n) = S(n) + {1}.
O problema de fluxo mximo pode ser equivalentemente escrito com se segue.
Maximizar xn1

ij

jS (i )

ki

=0

i = 1, 2, 3, ..., n

kP (i )

0 xij uij

para todo (i, j) E

O algoritmo de Ford e Fulkerson para resoluo do problema de fluxo mximo

Um algoritmo simples para resoluo do problema de fluxo mximo tenta construir uma soluo melhor para o problema a partir de uma soluo j existente. Sem perda de generalidade,
admitimos que o n 1 o n fonte e o n n o n sorvedouro do grafo, e que todos os arcos no
grafo tm capacidade uij > 0. Os arcos com uij = 0 obrigam que xij = 0 para toda soluo factvel,
portanto, podem ser eliminados do problema.
Suponha que temos disponvel alguma soluo factvel com um fluxo x* indo do n 1 ao n
n (por exemplo, x* = 0). Para melhorar essa soluo x*, preciso encontrar algum caminho no
grafo do n 1 ao n n por onde o fluxo atual pode ser incrementado. Para determinar caminhos
por onde o fluxo pode ser incrementado, conveniente classificar os arcos do grafo em duas classes:
*
Classe A: arcos que podem ter seu fluxo aumentado (isto , xij < uij )
*
Classe B: arcos que podem ter seu fluxo diminudo (isto , 0 < xij )
Com isso, podemos construir um grafo auxiliar com os mesmos ns do grafo original e arcos
definidos por:
Para cada arco (i,j) classificado na classe A, temos um arco (i,j) no grafo auxiliar com ca*
pacidade (uij xij), ou seja, o fluxo neste arco no grafo auxiliar pode ser aumentado de at
*
(uij xij).

Captulo 4: Otimizao em redes

341

Para cada arco (i,j) classificado na classe B, temos um arco (j,i) no grafo auxiliar com capacidade xij* , ou seja, o fluxo neste arco pode ser diminudo de at xij* .
Um arco (i,j) pode estar ao mesmo tempo nas classes A e B. Isso ocorre quando 0< xij* <uij,
de modo que, neste caso, dois arcos, (i,j) e (j,i), so criados no grafo auxiliar.
Suponha que neste grafo auxiliar existe um caminho do n 1 ao n n, como ilustrado na Figura 4.32, em que os nmeros ao lado de cada arco indicam a capacidade mxima.
Neste caminho do grafo auxiliar, temos que o fluxo no arco (1,i) pode aumentar de cinco
unidades, no arco (i,j) o fluxo pode aumentar de duas unidades, no arco (j,k) o fluxo pode aumentar de quatro unidades e, no arco (k,n) o fluxo pode aumentar de trs unidades. Assim,
possvel aumentar o fluxo do n 1 ao n n da menor das capacidades-limite dos arcos deste caminho, ou seja, duas unidades, sem que com isso se viole qualquer restrio do problema.
Suponha que esse grafo auxiliar tenha sido gerado a partir dos arcos de parte do grafo original,
ilustrados na Figura 4.33. O possvel aumento do fluxo descoberto a partir do grafo auxiliar da Figura
4.33 significa que no grafo original podemos incrementar de duas unidades o fluxo de 1 a n, aumentando o fluxo nos arcos (1,i), (i,j), (k,n) e diminuindo o fluxo de duas unidades no arco (k,j).
Basicamente, o procedimento para construir solues melhores a partir de solues anteriores para o problema gera, a partir de um fluxo dado, o grafo auxiliar correspondente. Neste grafo
auxiliar, procura-se algum caminho do n 1 ao n n. Determina-se o mnimo das capacidades dos
arcos neste caminho (cadeia no grafo original) que nos d o aumento possvel de fluxo utilizando apenas os arcos daquela cadeia e sem que nenhuma das restries de capacidade do problema seja violada. Aplica-se iterativamente este procedimento at que nenhum caminho do n 1
ao n n seja encontrado no grafo auxiliar.
No preciso construir explicitamente o grafo auxiliar e pode-se utilizar o grafo original, no
qual se busca uma cadeia (em vez de um caminho) do n 1 ao n n, mas tendo em mente as caractersticas do grafo auxiliar apresentado anteriormente. A procura por uma cadeia no grafo
original pode ser feita rotulando-se ns de maneira sucessiva, a partir do n 1. Um n j rotulado se existir algum n i j rotulado e existir um arco (i,j), com a condio de que o fluxo no
arco (i,j) ainda possa ser aumentado (isto , o arco (i,j) pertence classe A), ou se existir um
arco (j,i) com a condio de que o fluxo no arco (j,i) possa ser diminudo (o arco (j, i) pertence classe B). Rotulando sucessivamente os ns a partir do n 1, se em algum momento rotularmos o n n, teremos achado uma cadeia do n 1 ao n n por onde o fluxo pode ser aumentado.
Para recuperar essa cadeia descoberta, armazenamos, no momento que um n j rotulado, o
n i a partir do qual o n j foi rotulado. Guardamos este n i em p(j). Armazenamos tambm no

Figura 4.32 Um caminho do n 1 ao n n.

342

Pesquisa Operacional

Figura 4.33 Subgrafo original.

n j se o fluxo ser aumentado ou diminudo no arco, ou seja, se um arco (i,j) ou (j,i), respectivamente. Isso guardado em sinal(j), que feito igual a +1 no caso de arco (i,j) e 1 no
caso de (j,i). Na Figura 4.33, os valores de p(j) e sinal(j) para cada um dos ns da cadeia esto
indicados. Para o n 1, fazemos p(1) = 0, indicando que nenhum n o precede.
As idias apresentadas anteriormente so as bases para o algoritmo de Ford e Fulkerson para
o problema de fluxo mximo. Sem perda de generalidade, na apresentao do algoritmo, consideramos o n 1 como o n fonte e o n n como o n sorvedouro.
Algoritmo de Ford e Fulkerson

Dados:
G (N, E), em que N = {1, 2, , n}
u(i,j) capacidade mxima do arco (i,j) (u(i,j) > 0)
1
n fonte
n
n sorvedouro
Sada:
Fluxo mximo y do n 1 ao n n
Passo 1: Incio
y = 0 (fluxo inicial x* = 0)
v+(i,j) = u(i,j) para todos os arcos (i,j) E
v-(i,j) = 0 para todos os arcos (i,j) E
R = {n}: conjunto de ns rotulados (artifcio para que a primeira iterao a seguir
seja executada. A rigor, nenhum n est rotulado inicialmente).
Passo 2: Enquanto n R, faa
Incio_Enquanto
R (nenhum n est rotulado inicialmente)
p(i) = 0 para i N (p(i) fornece o predecessor do n na cadeia)
R = {1} e Lista = {1}

Captulo 4: Otimizao em redes

343

Enquanto (Lista ) ou (n R), faa


Incio_enquanto
Escolha i Lista e faa Lista Lista {i}
Para todo arco (i,j) com (v+(i,j) > 0) e (j R), faa
p(j) = i
sinal(j) = +1
R R {j}
Lista Lista {j}
Para todo arco (j,i) com (v-(j,i) > 0) e (j R), faa
p(j) = i
sinal(j)= 1
R R {j}
Lista Lista {j}
Fim_enquanto
Se (n R), ento execute o procedimento aumente_o_fluxo_ e_atualize_ fluxo_ nos_arcos
Fim_Enquanto
Procedimento aumente_o_fluxo_e_atualize_ fluxo_nos_arcos
Dados:
G (N, E): grafo em que N = {1, 2, , n}
v+(i,j) capacidade mxima de aumento de fluxo no arco (i,j)
v-(i,j) capacidade mxima de diminuio de fluxo no arco (i,j)
1
n fonte
n
n sorvedouro
y
fluxo atual
p(i)
n a partir do qual o n i foi rotulado
sinal(i) se igual a +1, indica que o arco que deve ser recuperado para determinar a cadeia C
ser da forma (p(i),i); se igual a 1, indica que o arco que deve ser recuperado para determinar a cadeia C ser da forma (i, p(i)).
Sada:
Fluxo aumentado y do n 1 ao n n
v+(i,j) valor atualizado da capacidade mxima de aumento de fluxo no arco (i,j)
v-(i,j) valor atualizado da capacidade mxima de diminuio de fluxo no arco (i,j)
Incio_procedimento
Passo 1: (Como o n n est rotulado (n R), ento existe uma cadeia ligando o n 1 ao n n,
a qual pode ser construda a partir dos vetores p(.) e sinal(.). O mximo de fluxo nessa cadeia calculado durante a busca pela cadeia).
r=n
C=
= +
Enquanto r 1, faa
Incio_Enquanto

344

Pesquisa Operacional

Se sinal(r) = +1 ento C C {(p(r), r)} e = mnimo{, v+(p(r), r)}


seno C C {(r, p(r))} e = mnimo{, v(r, p(r))}
r p(r)
Fim_Enquanto
Passo 2: y y +
Para todo (i,j) C, se sinal(j) = +1, ento
v+(i, j) v+(i, j)
v(i, j) v(i, j) +
se no (isto , sinal(j) = 1)
v(i, j) v(i, j)
v+(i, j) v+(i, j) +
Fim_procedimento
Exemplo 4.21 Ilustramos a aplicao do algoritmo de Ford e Fulkerson para o grafo da Figura 4.34.
Desejamos determinar qual o maior fluxo que se pode enviar do n 1 ao n 6 neste grafo.
Passo 1: Incio
y=0
v+(1, 5) = 4, v+(1, 2) = 10, v+(1, 3) = 5, v+(5, 3) = 1, v+(5, 4) = 5
v+(2, 3) = 7, v+(2, 4) = 4, v+(2, 6) = 3, v+(3, 4) = 2, v+(4, 6) = 2
v(1, 5) = 0, v(1, 2) = 0, v(1, 3) = 0, v(5, 3) = 0, v(5, 4) = 0
v(2, 3) = 0, v(2, 4) = 0, v(2, 6) = 0, v(3, 4) = 0, v(4, 6) = 0
R = {6}
A Figura 4.35 apresenta esses valores nos arcos dos grafos.
Passo 2:
R
p(1) = 0, p(5) = 0, p(2) = 0, p(3) = 0, p(4) = 0, p(6) = 0
R = {1} e Lista = {1}

Figura 4.34 Grafo ilustrativo para aplicao do algoritmo de Ford e Fulkerson.

Captulo 4: Otimizao em redes

Lista =
p(5) = 1
sinal(5) = +1
R = {1, 5}
Lista = {5}
p(2) = 1
sinal(2) = +1
R = {1, 5, 2}
Lista = {5, 2}
p(3) = 1
sinal(3) = +1
R = {1, 5, 2, 3}
Lista = {5, 2, 3}
Lista = {2, 3}
p(4) = 5
sinal(4) = +1
R = {5, 1, 2, 3, 4}
Lista = {2, 3, 4}
Lista = {3, 4}
p(6) = 2
sinal(6) = +1
R = {5, 1, 2, 3, 4, 6}
Lista = {3, 4, 6}
Procedimento aumente o fluxo e atualize os valores de variao de fluxo nos arcos
Incio
Passo 1:
p(6) = 2, sinal(6) = +1
p(2) = 1, sinal(2) = +1

Figura 4.35 Grafo da Figura 4.34 com os limites iniciais de v(i, j) e v+(i, j).

345

346

Pesquisa Operacional

Cadeia C = {(2, 6), (1, 2)}


Passo 2:
= min{v+(2, 6), v+(1, 2)} = 3
y=0+3=3
v+(1, 2) = 10 3 = 7
v(1, 2) = 0 + 3 = 3
v+(2, 6) = 3 3 = 0
v(2, 6) = 0 + 3 = 3
Fim
R = {1, 5, 2, 3, 6, 4}
R
p(1) = 0, p(5) = 0, p(2) = 0, p(3) = 0, p(4) = 0, p(6) = 0
R = {1} e Lista = {1}
Lista =
p(5) = 1
sinal(5) = +1
R = {1, 5}
Lista = {5}
p(2) = 1
sinal(2) = +1
R = {1, 5, 2}
Lista = {5, 2}
p(3) = 1
sinal(3) = +1
R = {1, 5, 2, 3}
Lista = {5, 2, 3}
Lista = {2, 3}
p(4) = 5
sinal(4) = +1
R = {1, 5, 2, 3, 4}
Lista = {2, 3, 4}
Lista = {2, 3}
p(6) = 4
sinal(6) = +1
R = {1, 5, 2, 3, 4, 6}
Lista = {2, 3, 6}
Procedimento aumente o fluxo e atualize os valores de variao de fluxo nos arcos
Incio
Passo 1:
p(6) = 4, sinal(6) = +1
p(4) = 5, sinal(4) = +1

Captulo 4: Otimizao em redes

347

p(5) = 1, sinal(5) = +1
Cadeia C = {(1, 5), (5, 4), (4, 6)}
Passo 2:
= min {v+(1, 5), v+(5, 4), v+(4, 6)} = 2
y=3+2=5
v+(1, 5) = 4 2 = 2
v(1, 5) = 0 + 2 = 2
v+(5, 4) = 5 2 = 3
v(5, 4) = 0 + 2 = 2
v+(4, 6) = 2 2 = 0
v(4, 6) = 0 + 2 = 2
Fim
R = {1, 5, 2, 3, 4, 6}
R
p(1) = 0, p(5) = 0, p(2) = 0, p(3) = 0, p(4) = 0, p(6) = 0
R = {1} e Lista = {1}
Lista =
p(5) = 1
sinal(5) = +1
R = {1, 5}
Lista = {5}
p(2) = 1
sinal(2) = +1
R = {1, 5, 2}
Lista = {5, 2}
p(3) = 1
sinal(3) = +1
R = {1, 5, 2, 3}
Lista = {5, 2, 3}
Lista = {2, 3}
p(4) = 5
sinal(4) = +1
R = {1, 5, 2, 3, 4}
Lista = {2, 3, 4}
Lista = {3, 4}
Lista = {4}
Lista =
Fim
O fluxo mximo encontrado do n 1 ao n 6 y = 5.
n
No algoritmo de Ford e Fulkerson, o trmino ocorre quando, aps algumas iteraes, no se
consegue mais rotular o n n, ou seja, no se encontra mais nenhuma cadeia do n 1 ao n n.

348

Pesquisa Operacional

Isso quer dizer que no se pode mais aumentar o fluxo em quaisquer dos arcos que tenham os
ns caudas rotulados e os ns cabeas no rotulados. Esta observao relaciona o fluxo mximo
ao conceito de corte em grafos.
Definio 4.11 (corte) Um corte no grafo G (N, E) uma partio do conjunto de ns N em dois
subconjuntos R e N R, o qual denotamos por [R, N R].
Cada corte define um conjunto de arcos que tem uma de suas extremidades (cabea ou cauda) no conjunto R e a outra no conjunto N R (cauda ou cabea). Alternativamente, este conjunto de arcos tambm define um corte, uma vez que, se excluirmos todos esses arcos de G (N, E),
o grafo se divide em dois grafos desconexos, o primeiro com o conjunto R de ns e o segundo
com o conjunto N R de ns.
Exemplo 4.22 Considere o grafo da Figura 4.34. Seja R = {1, 5, 3}; conseqentemente, N R
= {2, 4, 6}. Essa partio um corte deste grafo. O conjunto de arcos desse corte [R, N R]
{(5, 4), (1, 2), (3, 4), (2, 3)}. Observe que, se excluirmos do grafo da Figura 4.34 apenas alguns
n
desses arcos, mas no todos, o grafo no se desconecta.
Definio 4.12 (corte 1 n) Um corte [R, N R] chamado 1 n se 1 R e n N R, em que o
n 1 o n fonte e o n n o n sorvedouro.
Um corte 1 n divide o grafo em dois subgrafos em que o n 1 (fonte) est em um subgrafo
e o n n (sorvedouro) no outro. O corte do Exemplo 4.22 um corte 16.
Seja (R, N R) o subconjunto de arcos de E dado por (R, N R) = {(i,j) E tal que i R
e j R}, isto , os arcos no corte orientados de R para N R. A capacidade de um corte 1 n
[R, N R] dada por:
U[R, N R] =

( i , j )( R , N R )

uij

isto , a soma das capacidades dos arcos no corte orientados de R para N R. Por exemplo, o
corte 16 do Exemplo 4.22 tem capacidade U[{1, 5, 3},{2, 4, 6}] = u12 + u54 + u34 = 17.
Seja [R, N R] um corte 1 n. Qualquer fluxo do n 1 para o n n tem de passar por pelo
menos um arco de (R, N R). Desta forma, vale a seguinte propriedade.
Propriedade 4.2 Seja R N tal que 1 R e n R. Ento, o fluxo mximo factvel de 1 a n neste
grafo menor ou igual a U[R, N R].
Observe que, se todos os arcos em (R, N R) forem excludos do grafo G (N, E), no haveria
nenhum caminho de 1 para n e, portanto, o fluxo mximo de 1 para n seria nulo. A propriedade 4.2 vlida para qualquer corte que separa 1 de n, inclusive para o corte de capacidade mnima desse grafo. Portanto, o mximo fluxo de 1 a n tem como limitante superior a menor
capacidade dentre os cortes que separam esses dois ns.
Propriedade 4.3 O fluxo mximo de 1 a n no grafo G (N, E) igual menor capacidade de todos os cortes 1 n de G (N, E).
O algoritmo de Ford e Fulkerson determina esse corte mnimo quando no consegue mais rotular o n n. Ao final do algoritmo, temos um conjunto de ns rotulados que contm o n 1 e um
conjunto de ns no rotulados que contm o n n, e no possvel aumentar o fluxo em nenhum
dos arcos com cauda no conjunto rotulado e cabea no conjunto no rotulado. Logo, todos esses arcos esto com o fluxo na sua capacidade mxima. Com o conjunto de ns rotulados e o con-

Captulo 4: Otimizao em redes

349

junto de ns no rotulados, identificamos facilmente os arcos desse corte no grafo que esto com
o fluxo em sua capacidade mxima e que constituem um corte 1 n com capacidade mnima.
Por exemplo, no caso ilustrado anteriormente, o algoritmo terminou rotulando os ns
{1,5,2,3,4}, ou seja, R = {1, 2, 3, 4, 5}. Portanto, o n no rotulado apenas o n 6, ou
seja, N R = {6}. Os arcos em ({1, 2, 3, 4, 5},{6}) so, portanto, {(2, 6), (4, 6)}. A capacidade
U[{1, 2, 3, 4, 5},{6}] desse corte 3 + 2 = 5, exatamente o fluxo mximo encontrado.
O problema de transporte

Um outro problema comum de fluxo o problema de transporte, apresentado na Seo 2.2.2 do


Captulo 2. O problema de transporte um caso particular do problema de fluxo em redes a um
custo mnimo (4.1) (4.3), no qual os ns do grafo so particionados em dois grupos: o primeiro formado apenas de ns caudas (chamados ns produtores) e o segundo apenas de ns cabeas (chamados ns consumidores), conforme a Figura 4.36. No problema de transporte (ver
Figura 4.36), no existem ns intermedirios no grafo, isto , ns por onde apenas o fluxo de produtos passa (ns sem demanda ou suprimento de itens).
A formulao matemtica do problema de transporte apresentado no Captulo 2 :
m

Minimizar f(x) =

c x

ij ij

i =1 j =1

ij

ai

i = 1 , , m

= bj

j = 1 , , n

j =1

ij

i =1

xij 0,
i = 1, , m e j = 1, , n
em que temos m origens e n destinos; o custo de transportar uma unidade da origem i para o
destino j cij; a disponibilidade do produto na localidade i ai; e a demanda no destino j bj.
Se

i =1

j =1

ai = b j, ento tudo que se dispe nas diversas origens ter de ser transportado aos

destinos. Portanto, a desigualdade na formulao matemtica pode ser trocada por uma igualdade,
ficando o modelo em conformidade com a formulao geral do problema de fluxo apresentada

Figura 4.36

Grafo do problema de transporte.

350

Pesquisa Operacional

anteriormente. Caso o total da quantidade ofertada seja superior ao total da quantidade demandada (razo da desigualdade na formulao do problema de transporte apresentado), pode-se, sem
perda de generalidade, introduzir um novo ponto destino fictcio, n n+1, com demanda
m

i =1

j =1

( ai b j ) > 0, com os custos dos diversos pontos de suprimento a este ponto destino fictcio
n+1 iguais a zero (isto , ci(n+1) = 0 para i = 1, 2, ..., m).
Assim, temos assegurado, neste novo problema, que o total da quantidade ofertada igual ao total
da quantidade demandada. Portanto, a desigualdade nas restries pode ser trocada por uma igualdade. A quantidade xi(n+1) > 0, isto , o fluxo do n i para o n fictcio n + 1 pode ser interpretada
como um excesso de oferta no n i que no enviada e, portanto, permanece estocado no n i.
Dada a estrutura especial do problema de transporte, o mtodo simplex (da Seo 2.6) aplicado a este problema simplificado limitando-se os clculos a operaes de subtrao e adio.
Um algoritmo especializado (baseado no simplex) para a resoluo do problema de transporte
pode ser encontrado em Bazaraa et al. (1990).
Quando existem ns intermedirios no grafo, temos o chamado problema de transbordo, que tambm foi descrito na Seo 2.2.2 do Captulo 2. O problema de transbordo tambm um problema
de fluxo em redes. Nos ns de transbordo, os produtos apenas passam, ou seja, a quantidade transportada destes ns aos demais ns do grafo igual quantidade de produto que chega a este n.
Matematicamente, i xij = k x jk, para toda localidade j de transbordo. Essas restries adicionadas
formulao matemtica do problema esto em conformidade com a formulao geral do problema de fluxo em rede (4.1)(4.3). Usando um artifcio, sempre possvel transformar o problema
do transbordo em um problema de transporte, conforme discutido em Bazaraa et al. (1990).

4.3* O MTODO SIMPLEX PARA REDES8


Como vimos, o modelo linear geral para o problema de fluxo a custo mnimo em uma rede dado
por (4.1)(4.3) e a matriz A associada ao conjunto de restries (4.2) uma matriz de incidncia n-arco do grafo, cada linha corresponde a um n da rede e cada coluna a um arco da rede.
Cada coluna correspondente a um arco (i,j) possui apenas dois coeficientes no nulos, um coeficiente igual a +1 na linha correspondente ao n i e o outro igual a 1 na linha correspondente
ao n j. Portanto, a coluna k, correspondente ao arco (i,j) nessa matriz A, igual a ei ej, em
que ei corresponde a uma coluna de n elementos com todos eles iguais a zero, exceto o elemento i, que tem valor igual a 1.
Tomemos, por exemplo, A como a matriz de incidncia n-arco P do grafo da Figura 4.2, dada
no Exemplo 4.4:

1 1 0 0 0
1 0 1 1 0
A=

0 0 1 0 1
0 1 0 1 1
O arco (1, 4) do grafo da Figura 4.2, por exemplo, corresponde segunda coluna de A. Essa
coluna, correspondente a esse arco e denotada por a(1,4), igual a
1
1 0


a(1,4) = 0 = 0 0 = e1 e4
0
0 0
1
0 1
8 aconselhvel a leitura prvia das Sees 2.6.1 e 2.6.2.

Captulo 4: Otimizao em redes

351

Devido particularidade da matriz A, se somarmos todas as suas n linhas, temos como resultado uma linha de zeros, o que implica que o conjunto das n linhas desta matriz linearmente
dependente (uma das linhas pode ser escrita como uma combinao no-nula das demais n 1
linhas). Conseqentemente, uma base da matriz A no tem n colunas; uma base desta matriz A
poder ter no mximo n 1 colunas (lembre-se que n o nmero de ns do grafo, igual ao nmero de linhas da matriz de incidncia n-arco).
Admitimos de incio, sem perda de generalidade, que os grafos considerados neste captulo
so conectados. Uma rvore geradora de G formada de (n 1) arcos. Um grafo conectado G
possui sempre uma rvore geradora. Para mostrar isso, basta eliminar sucessivamente arcos do
grafo, de modo que o grafo resultante no se desconecte (sempre que houver ciclos isto possvel) e at que resultem apenas n 1 arcos, o que forma uma rvore.
Tomemos qualquer rvore geradora desse grafo G. Se pegarmos a submatriz B de A correspondente aos arcos desta rvore geradora, B uma matriz de tamanho n (n 1). Como os arcos de uma rvore geradora no formam ciclos, existe, portanto, pelo menos um n nesta rvore
com apenas um arco nele incidente. Se r1 for este n, na linha correspondente a r1 da matriz B
temos apenas um elemento diferente de 0, ou seja, B tem a forma

1
:

B= 0
:
0

.. 0
.. :
.. 1
.. :

.. 1
.. :

.. 0 r1-sima linha com um elemento

.. :

.. m 1 .. m 1

j-sima coluna
Com a notao utilizada 1 , queremos indicar que este elemento tem valor +1 ou 1, dependendo do arco ter este n correspondente linha da matriz como n cauda ou n cabea, respectivamente. Como o outro elemento no-nulo na mesma coluna da matriz tem o sinal trocado,
ele est denotado por m 1.
Podemos, ento, permutar as linhas e colunas de B de modo a obter uma nova matriz B1, em
que esse elemento diferente de zero fique posicionado em sua primeira linha e primeira coluna,
ou seja, B1 tem a forma

1 0 .. .. 0
: : .. .. :

1
B = 0 1 .. .. 1
: : .. .. :
m 1 0 .. .. m 1

r1-sima linha foi para a 1a linha

j-sima coluna foi para a 1a coluna


Por convenincia, reescrevemos essa matriz na forma

1 0
B1 =
1*
s B
Se eliminarmos da rvore geradora o n r1 e o arco incidente nele, o grafo resultante continua
sendo uma rvore. A matriz n-arco correspondente a esta nova rvore (com n 1 ns) obtida
simplesmente eliminando-se a primeira linha e a primeira coluna de B1. Portanto, essa matriz
dada por B1*.

352

Pesquisa Operacional

Nessa nova rvore, similarmente ao exposto anteriormente, existe pelo menos um n com apenas um arco que nele incide. Se r2 for este n, na linha correspondente a r2 da matriz B1* temos
apenas um elemento diferente de 0. Assim, podemos permutar as linhas e colunas de B1* de modo
a obter uma matriz em que esse elemento diferente de zero esteja em sua primeira linha e primeira coluna. Na matriz inicial, essas permutaes colocam esse elemento diferente de zero na
segunda linha e segunda coluna, formando uma matriz B2 com a forma:
1 0 0

B2 = s1 1 0
2*
s 2 p B
Prosseguindo de maneira similar, eliminando linhas e colunas, obtemos B3*, B4* chegan 1

do finalmente a uma matriz B(n-2)* com a forma m 1 . Ao realizarmos essas permutaes de linhas

e colunas na matriz B em correspondncia quelas feitas nas diversas iteraes anteriores, chegamos a uma matriz da forma
0
.. 0
1
s
1 .. 0
1

..
.. 0
Bn-1 = ..

sn2 pn3 .. 1

s
n1 pn2 .. m 1
Se eliminarmos a ltima linha dessa matriz, obtemos uma matriz triangular inferior com uma
diagonal com todos os elementos diferentes de 0. Essa matriz tem, portanto, determinante diferente de zero, ou seja, tem posto n 1 ou, em outras palavras, o conjunto formado pelas n 1
colunas linearmente independente.
Para fins de ilustrao, consideremos novamente a matriz de incidncia n-arco P do grafo da
Figura 4.2.
1 1 0 0 0
1 0 1 1 0
P = 0 0 1 0 1

0 1 0 1 1
Tomemos, por exemplo, a rvore geradora do grafo correspondente matriz P ilustrada na
Figura 4.37. A submatriz B de P correspondente aos arcos dessa rvore geradora

1 0 0
0 1 0
B=

0 1 1
1 0 1
Selecionemos um n nessa rvore com apenas um arco nele incidente, o n 1, por exemplo.
Na linha correspondente ao n 1 (linha 1), temos apenas um elemento diferente de 0, que j est
na coluna 1. Portanto, no precisamos permutar linhas e colunas neste caso. A matriz B1 a prpria matriz B.
Eliminamos da rvore geradora o n 1 (ver Figura 4.38) e o arco incidente nele (1, 4), e observamos que o grafo resultante continua sendo uma rvore. A matriz n-arco correspondente a
essa nova rvore obtida simplesmente eliminando-se a primeira linha e a primeira coluna de B1.
De modo semelhante ao ocorrido anteriormente, existe pelo menos um n nessa rvore com
apenas um arco que nele incide, por exemplo, o n 2. Na linha correspondente ao n 2, temos
apenas um elemento diferente de 0, que j est na linha 1 e coluna 1 da submatriz. Portanto, novamente no precisamos permutar linhas e colunas neste caso.

Captulo 4: Otimizao em redes

353

Eliminamos da rvore geradora o n 2 (ver Figura 4.39) e o arco incidente nele (2, 3), e observamos que o grafo resultante continua sendo uma rvore. A matriz n-arco correspondente a essa
nova rvore obtida simplesmente eliminando-se a primeira linha e a primeira coluna da
submatriz.
De modo semelhante ao ocorrido anteriormente, existe pelo menos um n nessa rvore com
apenas um arco que nele incide, por exemplo, o n 2. Na linha correspondente ao n 2, temos
apenas um elemento diferente de 0, que j est na linha 1 e coluna 1 da submatriz. Portanto,
novamente no precisamos permutar linhas e colunas neste caso e chegamos submatriz
1

B(n-2)* = B2* = 1 .

Ao realizarmos as mesmas operaes de permutao de linhas e colunas na matriz B, em correspondncia quelas feitas nas diversas iteraes anteriores (no caso, nenhuma permutao foi
realizada) e eliminarmos a ltima linha desta matriz, obtemos uma matriz triangular inferior com
a diagonal com todos os elementos diferentes de 0:

1 0 0
0 1 0
0 1 1

* * *
Essa matriz tem determinante igual a 1 (diferente de zero), ou seja, a matriz tem posto 3 (n1).
Conseqentemente, as trs colunas de B formam um conjunto linearmente independente.

Figura 4.37 Uma rvore geradora do grafo da Figura 4.2.

Figura 4.38 Eliminao do n 1 da rvore geradora da Figura 4.37.

354

Pesquisa Operacional

Vimos que a matriz de incidncia n-arco de um grafo conectado com n ns tem posto n 1,
ou, em outras palavras, no mximo n 1 colunas formam um conjunto linearmente independente. Por convenincia, adicionamos matriz de incidncia n-arco do grafo mais uma coluna da
matriz identidade, por exemplo, e1. Podemos imaginar que esta coluna representa mais um arco
do grafo, cujo n cabea algum lugar indefinido no espao e cujo n cauda o n 1 (no caso
de adicionarmos a coluna e1). Este n, no qual esse arco artificial incide, denominado n raiz.
Assim, se adicionamos a coluna e1, o n raiz o n 1, se adicionamos a coluna ei, o n raiz ser
o n i. A incluso desta nova coluna no afeta em nada a soluo do problema, pois o fluxo nesse arco sempre igual a zero e seu custo correspondente nulo.
A nova matriz A aumentada com mais essa coluna tem a vantagem de ter sempre n colunas
linearmente independentes e, mais ainda, essa nova coluna est sempre entre as n colunas linearmente independentes. Se repetirmos o mesmo procedimento visto, pegando as colunas correspondentes a qualquer rvore geradora do grafo mais a coluna e1 e realizarmos as mesmas
operaes para obteno da matriz triangular inferior, verificamos novamente que o determinante
desta matriz quadrada n n (n linhas e n colunas) diferente de zero. A rvore geradora considerada foi qualquer uma; desta forma, conclumos que qualquer rvore geradora de G
corresponde a uma base de A aumentada e, portanto, corresponde a uma soluo bsica do mtodo simplex para redes.
Pode-se mostrar tambm o inverso, ou seja, qualquer base de A aumentada tambm
corresponde a uma rvore geradora de G. Uma base de A aumentada composta de n colunas
linearmente independentes, sendo uma delas e1, e mais n1 colunas que formam um conjunto
linearmente independente. Considere as n1 colunas de A pertencentes base. Os arcos associados a essas colunas podem ou no formar ciclos. Caso no formem ciclos, como temos n ns,
eles formam uma rvore geradora de G, por definio. Caso formem algum ciclo, pode-se mostrar que as colunas dos arcos que formam este ciclo constituem um conjunto linearmente dependente, pois qualquer um dos arcos pode ser posto como uma combinao dos demais arcos do
ciclo, contrariando a hiptese de serem parte de uma base.
Considere, por exemplo, o ciclo da Figura 4.40. Se estipularmos uma orientao qualquer ao
ciclo, por exemplo, a horria, podemos escrever a seguinte combinao linear das colunas da
matriz de incidncia n arco correspondentes aos arcos deste grafo, em que multiplicamos por
+1 o arco que segue a mesma orientao do ciclo e por 1 em caso contrrio. Temos a(5,3) a(2,3)
+ a(2,6) a(4,6) a(1,4) a(5,1) = (e5 e3) (e2 e3) + (e2 e6) (e4 e6) (e1 e4) (e5 e1) = 0.
Portanto, o conjunto formado por essas colunas linearmente dependente. Sempre que um
conjunto de arcos forma um ciclo possvel escrever uma relao de dependncia como a ilustrada no caso particular citado.
Como vimos no Captulo 2, o mtodo simplex inicia com uma soluo bsica factvel, determinada por uma partio bsica factvel A = [B N] ou, em outras palavras, as colunas de B so

Figura 4.39 Eliminao do n 2 da rvore geradora da Figura 4.38.

Captulo 4: Otimizao em redes

355

Figura 4.40 Um ciclo.

linearmente independentes e a soluo bsica dada pela soluo do sistema B x B = b, e x N = 0.


Se x B 0, ento a soluo bsica factvel, isto , satisfaz todas as restries do problema. Estendemos o mtodo simplex desenvolvido no Captulo 2 para o modelo de fluxo em redes a custo mnimo (4.1)(4.3), cujas variveis so canalizadas: l k xk uk . As variveis no-bsicas so
fixadas em um de seus limites: xk = l k ou uk e as variveis bsicas so determinadas pela soluo do sistema: B x B = b N x N (a soluo deste sistema bsico para o clculo das variveis
bsicas feito por simples substituies, devido estrutura triangular de B). Se as variveis
bsicas estiverem entre seus limites (isto , se xi uma varivel bsica e l i xi ui ), ento a soluo bsica factvel (de modo semelhante ao caso estudado no Captulo 2, em que x 0; esta
soluo bsica factvel corresponde a um vrtice da regio factvel quando se tem a canalizao
das variveis).
A cada iterao do simplex verifica-se se a soluo bsica factvel atual tima, isto , se satisfaz as condies de otimalidade. Para testar a otimalidade da soluo, necessrio o clculo
dos custos relativos ck Tak das variveis no-bsicas, em que o vetor multiplicador do simplex
dado pela soluo do sistema BT = cB (o vetor multiplicador simplex calculado por simples
substituies, devido estrutura triangular de B). Se as condies de otimalidade no forem satisfeitas por alguma varivel no-bsica, digamos, xk, ento a soluo atual pode ser melhorada
ao se alterar o valor dessa varivel, que pode ser aumentada ou diminuda.
A variao mxima no valor de xk, que denotamos por , isto , xk = xk , depende da direo simplex que soluo do sistema By = ak, que indica como as variveis bsicas so alteradas:
se xk = xk + , ento xB = x B y ou, se xk = xk , ento xB = x B + y (a direo simplex y
pode ser facilmente calculada devido estrutura triangular de B, mas implicitamente calculada, como veremos adiante). A varivel que atinge primeiro o seu limite (inferior ou superior)
estabelece a mxima variao possvel para e torna-se uma varivel no-bsica. Aps mudar os
valores das variveis conforme a mxima variao possvel determinada, obtm-se uma nova soluo bsica factvel melhor que a anterior. Este ciclo corresponde a uma iterao simplex. A partir
dessa nova soluo bsica, uma nova iterao simplex realizada at que as condies de
otimalidade sejam verificadas ou uma soluo ilimitada seja identificada.
No caso do modelo de fluxos em redes (4.1) (4.3), dada uma soluo bsica factvel (como
vimos, ela est associada a uma rvore geradora do grafo), devemos calcular os multiplicadores
simplex para determinar o custo relativo das variveis no-bsicas. Seja T = [1 2 ... n] o vetor
de multiplicadores simplex relativo base factvel atual. Em uma iterao qualquer do simplex,
o custo relativo da varivel xij dado por cij = cij Taij ou, simplesmente, cij = cij i + j, uma
vez que aij = ei ej.

356

Pesquisa Operacional

Por definio, o vetor multiplicador simplex dado por BT = cB ou cB BT = 0. Em outras palavras, os custos relativos das variveis bsicas so iguais a zero, ou seja,
cij = cij i + j = 0
(4.4)
para cada varivel bsica. Lembre-se de que uma das colunas de B o vetor e1, que introduzimos para completar a base. A essa coluna associamos uma varivel (fluxo sobre o arco raiz, que
ser sempre zero), que denotamos por xa e seu custo definido por ca = 0 (este valor arbitrrio e pode ser qualquer valor, sem que os clculos dos custos relativos das variveis no-bsicas
sejam alterados). Para a coluna bsica e1, temos ca = ca Te1 = 0 1 = 0, ou seja, 1 = 0. Com
o valor de 1 = 0, os demais valores de j, j 1, ficam univocamente determinados pelo sistema
de equaes (4.4). Note, de (4.4), que a varivel i facilmente determinada se o valor de j j tiver sido determinado, ou vice-versa. Ou seja, o vetor multiplicador simplex determinado por
substituies recursivas, comeando pelo n raiz que tem a varivel 1 = 0. Isso possvel porque a base triangular (veja argumentao anterior para mostrar que as colunas associadas a uma
rvore geradora formam um conjunto linearmente independente). A resoluo do exemplo numrico adiante esclarece este assunto.
De posse de , os custos relativos das variveis no-bsicas (correspondentes a arcos no pertencentes rvore geradora) podem ser facilmente calculados. O custo relativo da varivel nobsica indica se ou no vantajoso introduzir essa varivel (esse arco) na base. As condies para
verificar se vantajoso introduzir uma determinada varivel no-bsica na base atual so (estratgia simplex para variveis canalizadas):
Se cij < 0 e xij = l ij , ento aumentar a varivel xij: xij = xij + , 0, mantendo as demais
variveis no-bsicas inalteradas, faz decrescer a funo objetivo: f(x) = f( x ) + cij (anlogo a (2.36) no Captulo 2).
Se cij > 0 e xij = uij, ento diminuir a varivel xij: xij = xij , 0, mantendo as demais
variveis no-bsicas inalteradas, faz decrescer a funo objetivo: f(x) = f( x ) cij .
A condio de otimalidade satisfeita por uma soluo bsica factvel se, para todo arco no seu
limite inferior (ou seja, xij = l ij ), ento cij 0 e, para todo arco no seu limite superior (ou seja,
xij = u ), ento cij 0 (esta a extenso da condio de otimalidade na propriedade 2.3 do Caij
ptulo 2, para variveis canalizadas).
Troca de base no mtodo simplex em redes

No simplex (Seo 2.6 Captulo 2), substitumos uma coluna bsica por uma no-bsica, formando uma nova base. Vimos que o vetor multiplicador simplex facilmente calculado e podemos identificar qual coluna (arco) deve entrar na base (rvore). Precisamos calcular qual a direo
simplex e, a partir dela, o novo valor da varivel no-bsica que entra na base, alm da varivel
bsica que deixa a base.
Essas operaes a realizar, no caso de um grafo, so bem simples. Sabemos que, no grafo, cada
base corresponde a uma rvore geradora e cada coluna corresponde a um arco. A introduo de
um arco (a varivel no-bsica a entrar) na rvore geradora atual (base atual) forma um ciclo que
precisa ser desfeito, pois a uma base corresponde sempre uma rvore geradora, que no possui
ciclos. Assim, a varivel a sair da base deve ser um dos arcos desse ciclo (nico) formado, uma
vez que o ciclo indica que os arcos so linearmente dependentes (dizemos que um conjunto de
arcos linearmente dependente se as colunas associadas a eles formam um conjunto de vetores
linearmente dependentes). Para determinar qual deles dever sair, basta garantir o balanceamento
de fluxo em cada n.
Se orientarmos o ciclo formado de acordo com o novo arco introduzido (nova coluna no-bsica), se o fluxo neste novo arco aumenta de , ento todos os arcos que tm a mesma orienta-

Captulo 4: Otimizao em redes

357

o do ciclo tm o valor aumentado de (isto , yi = 1) e os arcos com orientao contrria


do ciclo tm o fluxo diminudo de (isto , yi = 1). Os demais arcos permanecem com seus fluxos inalterados. Com isso, a conservao de fluxo em todos os ns do grafo mantida (o sistema Ax = b satisfeito). O aumento do fluxo no novo arco limitado pelo fluxo adicional que
pode ser enviado pelos arcos que tm a mesma orientao do ciclo ou pelo mximo valor de fluxo
que pode ser diminudo dos arcos com orientao contrria ao ciclo. O arco que atinge primeiro algum desses limitantes o arco que sai da base (o ciclo quebrado e o fluxo sobre o arco que
sai da base est em um de seus limites) e os demais arcos formam uma nova rvore geradora (a
nova base). Essa variao mxima define o novo valor da varivel que entra na base.
Considere, por exemplo, que a base atual de um determinado problema de fluxo corresponde arvore geradora indicada na Figura 4.37 e que a varivel a entrar na base corresponde ao arco
(2, 4), indicado de forma tracejada na Figura 4.41.
Com a introduo desse arco, forma-se o ciclo {(2, 4), (4, 3), (2, 3)} e preciso retirar algum
arco do grafo para que uma nova base seja formada. Como vimos anteriormente, os arcos que
formam ciclos no grafo so linearmente dependentes (isto , as colunas correspondentes formam
um conjunto de vetores linearmente dependentes). Portanto, algum arco do ciclo dever ser retirado com a entrada do novo arco (2, 4).
Aumentando o fluxo no arco (2, 4) de , para que o equilbrio de fluxo seja mantido no n 4,
preciso aumentar de o fluxo no arco (4, 3). Com isso, para que o equilbrio de fluxo seja mantido no n 3, preciso diminuir de o fluxo no arco (2, 3). Com isso, obtemos o equilbrio de
fluxo tambm no n 2. O valor de pode ser aumentado desde que no ultrapasse a capacidade mxima no arco (2, 4) ou a capacidade mxima no arco (4, 3) e tambm no reduza alm do
mnimo tolervel a capacidade mnima no arco (2, 3). O limite mais restrito fornece o valor da
variao de fluxo no ciclo, bem como a varivel a sair da base (o arco a ser eliminado para que
se obtenha uma nova rvore geradora). O arco eliminado tem o fluxo em um de seus limites: mximo ou mnimo. Com a nova base, novos custos relativos so calculados e o processo repetido at que a condio de otimalidade seja satisfeita.
Base inicial

No mtodo simplex, move-se de uma soluo bsica para outra melhor at que no existam