Escolar Documentos
Profissional Documentos
Cultura Documentos
e Fluxos em Redes
9 Modelos de Programação Linear. 9 Modelos de Fluxos em Rede.
9 Algoritmos Simplex. 9 Métodos de Decomposição.
9 Exercícios.
© 2015, Elsevier Editora Ltda.
Todos os direitos reservados e protegidos pela Lei no 9.610, de 19/02/1998.
Nenhuma parte deste livro, sem autorização prévia por escrito da editora, poderá ser
reproduzida ou transmitida sejam quais forem os meios empregados: eletrônicos,
mecânicos, fotográ¿cos, gravação ou quaisquer outros.
ISBN: 978-85-352-7814-9
ISBN (versão digital): 978-85-352-7815-6
Nota: Muito zelo e técnica foram empregados na edição desta obra. No entanto, podem ocorrer erros de digitação, impres-
são ou dúvida conceitual. Em qualquer das hipóteses, solicitamos a comunicação ao nosso Serviço de Atendimento ao
Cliente, para que possamos esclarecer ou encaminhar a questão. Nem a editora nem o autor assumem qualquer responsa-
bilidade por eventuais danos ou perdas a pessoas ou bens, originados do uso desta publicação.
G564p
Goldbarg, Marco César
Programação linear e Àuxos em redes / Marco César Goldbarg, Henrique Pacca
Loureiro Luna, Elizabeth Ferreira Gouvêa Goldbarg. - 1. ed. - Rio de Janeiro : Elsevier,
2015.
: il. ; 28 cm.
ISBN 978-85-352-7814-9
1. Linguagem de programação (Computadores). 2. Programação orientada a
objetos (Computação). I. Goldbarg, Elizabeth Ferreira Gouvêa. II. Luna, Henrique Pacca
Loureiro. III. Título.
A Proposta do Livro
O presente texto objetiva dar suporte ao ensino e ao estudo dos conceitos básicos de Programação Linear e Fluxos
em Redes, mantendo uma estrita conexão com a Otimização Combinatória e com Aplicações Reais. Cinco focos que de¿-
nem a proposta estão exibidos na ¿gura 1:
1º foco
Modelos de Programação Linear. O foco percorre os sete capítulos do livro. São apresentados, sempre que possível,
modelos de programação linear associados aos problemas objeto do texto. Adicionalmente, o livro é rico em exemplos de
modelagem que varrem um amplo espectro de aplicações, cobrindo as áreas de Administração, Computação, Economia e
Engenharias. Cada aplicação é vista em seus aspectos técnicos e com sua interpretação econômica.
2º foco
Algoritmos Simplex. O texto descreve os algoritmos Simplex Primal, Simplex Dual e Simplex Revisado. Aborda-se casos
especiais do funcionamento do método Simplex e de algumas especializações do algoritmo básico. A igualdade dos valores
das funções objetivo dos problemas primal e dual é vista como condição de equilíbrio entre custo e receita. A análise de
sensibilidade é feita com interpretação de custos marginais de recursos e de atividades.
3º foco
Exercícios. O projeto pedagógico do livro utiliza intensamente os exercícios como ferramenta de raciocínio por analogia,
servindo tanto à autoaprendizagem quanto ao esclarecimento de aspectos particulares da fundamentação teórica. A maioria
dos exercícios está resolvida, embora alguns não sejam solucionados, para permitir ao professor o uso como ferramenta
complementar em listas de exercícios ou como fonte de incentivo à motivação.
vi Programação Linear e Fluxo em Redes
4º Foco
Modelos de Fluxos em Rede.
O texto destaca os modelos de Àuxos em redes como ferramentas para solução exata de diversos problemas de programa-
ção linear de grande porte. O caráter espacial de muitas aplicações do mundo real é propicio ao uso de modelos de Àuxos,
cobrindo-se aplicações em logística e em diversas redes de utilidade publica. Esse foco evidencia a estreita ligação existen-
te entre a Programação Linear e a Otimização Combinatória.
5º foco
Métodos de Decomposição
Estratégias de dividir para conquistar são concebidas para problemas de programação linear de grande porte. Os méto-
dos de decomposição são vistos como instrumentos de cálculo com descentralização da informação. Incluindo o princípio
de Dantzig-Wolfe e a partição de Benders, o livro discute técnicas de transformação de problemas decomponíveis e
suas estratégias de resolução. Foca-se na interpretação econômica de mecanismos de coordenação pelos preços ou de
coordenação pelas quotas.
A Metodologia
O texto é introdutório. O livro é dirigido para cursos de graduação em Administração, Computação, Economia, Engenha-
rias e Matemática. O texto cobre, geralmente, o conteúdo tradicional de disciplinas básicas como Introdução à Programação
Linear, Programação Linear, Fluxos em Redes, Modelos de Programação Linear, Programação Linear e Fluxos em Redes,
Introdução à Otimização, Pesquisa Operacional. Aborda parte dos conteúdos de disciplinas avançadas como Programação
Discreta, Programação Inteira, Introdução à Otimização Combinatória. O capítulo 7 apresenta a possibilidade de ligação com
interesses de disciplinas mais avançados ou de iniciação à pós-graduação.
A atenção está centrada principalmente nos conceitos básicos da Programação Linear, no desenvolvimento de algoritmos
para a solução dos modelos formulados e na possibilidade de exercitação dos conceitos.
A proposta didática do texto contempla, para o esclarecimento de diversos conceitos, a apresentação de exemplos, exer-
cícios com solução e exercícios desa¿os. Uma signi¿cativa parte dos exercícios do livro possui solução sugerida. Todavia,
alguns exercícios foram pensados no sentido de permitirem seu uso em listas de exercício e como desa¿os que incentivam
a motivação e completam o processo de aprendizagem. Os autores entendem que a utilização de questões que desa¿am
o pensamento é indispensável e faz parte indissolúvel do processo de ensino. Dentro da proposta didática do livro, não se
sugere e nem serão disponibilizadas soluções para tais exercícios.
O livro aborda temas pertinentes à Programação Linear, Fluxos em Rede e Métodos de Decomposição. Os grandes temas
do livro são:
Introdução vii
No sentido de exempli¿car o alcance do conteúdo disponibilizado, abaixo é transcrito o conteúdo do livro capaz de ser asso-
ciado a possíveis ementas de disciplinas no tema.
Tópicos em Álgebra Linear. Tópicos em Grafos. Tópicos em Complexidade de Algoritmos. Princípios do Processo de Mode-
lagem. Modelos de Otimização. O Processo de Modelagem. Modelagem Matemática. O Papel dos Modelos Quantitativos
na Gestão Moderna. Características dos Modelos de Programação Linear. Fundamentos da Modelagem em Programação
Linear. Exemplos de Modelagem Matemática. Fundamentos Matemáticos do Método Simplex. Método Primal Simplex. Mé-
todo das Duas Fases. Degeneração. Conceito de Dualidade em Programação Matemática. Propriedades da Dualidade e
Condições de Otimalidade. Algoritmo Dual Simplex. Simplex Revisado. Interpretação Econômica. Análise de Sensibilidade.
O Problema da Conexão Simples. O Problema do Caminho mais Curto (PCMC). O Problema da Árvore Geradora Mínima
(AGM). O Problema de Emparelhamento (PE). Problema do Caminho Crítico, PERT ou CPM (Critical-Path Method). Modelos
Especiais de Redes. O Problema de Transporte: Abordagem Primal de Solução. Método do Canto Noroeste. Método de Vo-
gel. Problema de Designação: Algoritmo Húngaro. O PCMC em Modelo de Rede s-t. Formulação de Fluxo em Rede para a
AGM. Formulação por Fluxo em Rede para a AGM Capacitada. Problema de Localização Capacitado. Problemas Multiestá-
gio. Decomposição e Descentralização da Informação. Técnicas de Transformação de Problema Decomponível. Relaxação
Lagrangeana e Otimização por Subgradientes. Princípio de Decomposição de Dantzig-Wolfe. Decomposição Paramétrica.
Método de Partição de Benders. Propriedades dos Algoritmos em Procedimentos Descentralizados.
Seguem-se, a título de exemplo, três possíveis ementas derivadas do conteúdo do livro.
Tópicos em Álgebra Linear. Tópicos em Grafos. Princípios do Processo de Modelagem. Características dos Modelos de Progra-
mação Linear. Fundamentos matemáticos do método Simplex. Método Primal Simplex. Método das Duas Fases. Degeneração.
Conceito de Dualidade em Programação Matemática. Propriedades da Dualidade e Condições de Otimalidade. Algoritmo Dual
Simplex. Simplex Revisado. Interpretação Econômica. Análise de Sensibilidade. Modelos Especiais de Redes: Problema de
Localização Capacitado. O Problema de Transporte: Abordagem Primal de Solução. Método do Canto Noroeste. Problema de
Designação: Algoritmo Húngaro. Abordagem Utilizando a Variável Dual. Modelos de Circulação de Fluxo.
Tópicos em álgebra linear. Tópicos em Grafos. Tópicos em Complexidade de Algoritmos. Princípios do Processo de Modela-
gem. Características dos Modelos de Programação Linear. Fundamentos matemáticos do método Simplex. Método Primal
Simplex. Método das Duas Fases. Degeneração. Conceito de Dualidade em Programação Matemática. Propriedades da
viii Programação Linear e Fluxo em Redes
Dualidade e Condições de Otimalidade. Algoritmo Dual Simplex. Simplex Revisado. Interpretação Econômica. Análise de
Sensibilidade. O Problema do Caminho mais Curto. O Problema da Árvore Geradora Mínima (AGM). Problema do Caminho
Crítico, PERT ou CPM (Critical-Path Method). Modelos Especiais de Redes: O Problema de Transporte: Abordagem Primal
de Solução. Método do Canto Noroeste. Problema de Designação: Algoritmo Húngaro. Problema de Designação e o 1-Mat-
ching Ponderado. Problema do Caminho mais Curto em Modelo de Rede s-t. Questionário. Formulações de Fluxo em Rede
para a AGM e a AGM Capacitada. Problema de Localização Capacitado. Problemas Multiestágio.
Tópicos em Álgebra Linear. Princípios do Processo de Modelagem. Características dos Modelos de Programação Linear.
Fundamentos Matemáticos do Método Simplex. Método Primal Simplex. Método das Duas Fases. Degeneração. Conceito de
Dualidade em Programação Matemática. Propriedades da Dualidade e Condições de Otimalidade. Algoritmo Dual Simplex.
Simplex Revisado. Interpretação Econômica. Análise de Sensibilidade. Problemas Multiestágio. Decomposição e Descentra-
lização da Informação. Técnicas de Transformação de Problema Decomponível. Relaxação Lagrangeana e Otimização por
Subgradientes. Princípio de Decomposição de Dantzig-Wolfe. Métodos de Partição de Benders e de Rosen. Decomposição
Paramétrica. Propriedades dos Algoritmos em Procedimentos Descentralizados.
Currículo dos autores
MARCO CESAR GOLDBARG
Graduado pela Academia Militar de Agulhas Negras (1975) e pelo Instituto Militar de Engenharia – Engenheiro de Forti-
¿cação e Construção (1982). É mestre em Sistemas e Computação pelo Instituto Militar de Engenharia (1987) e doutor
em Engenharia de Sistemas e Computação pela COPPE – Sistemas/UFRJ (1990). Possui pós-doutorado pela Univer-
sidade Federal de Minas Gerais (1999). Foi professor visitante em San Jose State University em 1994. É Professor Ti-
tular no Departamento de Informática e Matemática Aplicada da Universidade Federal do Rio Grande do Norte e atua
no Programa de Pós-graduação em Sistemas e Computação (PPgSC) da UFRN na linha de Algoritmos Experimentais.
Atualmente é pesquisador do CNPq e desenvolve pesquisa em Algoritmos Experimentais e Otimização Combinatória.
Possui os diplomas de Engenheiro Mecânico pelo Instituto Tecnológico de Aeronáutica (1969), de Mestre em Informática
pela Pontifícia Universidade Católica do Rio de Janeiro (1972) e de Docteur d´État em Automática-Otimização pela Univer-
sité de Toulouse III (Paul Sabatier) (1978). Atualmente é professor titular em atividade no Instituto de Computação da Uni-
versidade Federal de Alagoas, sendo também professor titular aposentado do Departamento de Ciência da Computação da
Universidade Federal de Minas Gerais. Entre suas atividades de administração acadêmica se destacam: na UFAL, em 2004,
a criação do Mestrado em Modelagem Computacional de Conhecimento e, na UFMG, em 1991, a criação do Doutorado em
Ciência da Computação. Desde 2003 lidera na UFAL o grupo de pesquisa NExOS (Núcleo de Excelência em Otimização
de Sistemas Complexos), atuando em modelagem computacional de conhecimento e em desenvolvimento de métodos de
decomposição aplicados a problemas de: otimização topológica de redes; localização de hubs; atribuição de capacidade,
roteamento e tarifação em redes; e em logística de produção e transporte.
É Professora Associada na Universidade Federal do Rio Grande do Norte no Departamento de Informática e Matemática
Aplicada. Ministra disciplinas da área de estrutura de dados e algoritmos em grafos. Atua no Programa de Pós-graduação
em Sistemas e Computação (PPgSC) da UFRN na linha de Algoritmos Experimentais. Possui graduação em Engenharia
Industrial Mecânica pelo Centro Federal de Educação Tecnológica Celso Suckow da Fonseca (1985), mestrado em Sistemas
e Computação pelo Instituto Militar de Engenharia (1993) e doutorado em Engenharia de Produção pela COPPE-Produção /
UFRJ (2001). Atualmente é pesquisadora do CNPq e desenvolve pesquisas em Metaheurísticas e Otimização Combinatória.
Capítulo 1
Modelagem de Problemas
Objetivos
O presente capítulo objetiva:
1.1
Princípios do Processo de Modelagem
natural para o homem que pode independer, inclusive, da consciência sobre a di¿culdade ou mesmo complexidade do que
se está fazendo.
Fotogra¿as, grá¿cos e equações matemáticas, por exemplo, podem representar elementos do mundo real extremamente
mais complexos, todavia transmitindo informações su¿cientes para permitir alcançar conclusões decisivas sobre o compor-
tamento de entidades reais.
Alguns modelos são estruturados em vários níveis de complexidade, inclusive níveis que formalizam o funcionamento
do próprio modelo. A Geometria Euclidiana é um modelo que satisfaz a um conjunto de axiomas, ou um modelo de
contexto axiomático. Os modelos axiomáticos vão desde as transformadas de Laplace e sua Mécanique Céleste até a
Teoria Quântica e o átomo de Bohr. Certamente existem modelos que não lidam com elementos concretos. O contexto
epistemológico, por exemplo, está aparelhado para representar tanto objetos concretos quanto imaginários. Os modelos
são, portanto, tipicamente estruturas abstratas de construção cognitiva que visam facilitar o raciocínio, as conclusões e
a tomada de decisão.
• DeÀnição de modelo
O presente texto de¿ne modelo da seguinte forma:
DeÀnição
Um modelo é a representação de uma entidade detectada pelo cérebro humano empregando um
sistema físico ou conceitual.
DeÀnição
É possível denominar por modelo a cada interpretação de um sistema formal criado
axiomaticamente.
Os modelos, para alcançar utilidade prática, devem ser livres de detalhes pequenos, pouco signi¿cativos ou onerosos. Mo-
delar é uma atividade cognitiva de alto nível que busca alguma vantagem através da representação simpli¿cada dos elemen-
tos e fenômenos que o cérebro lida. Assim, a atividade de modelagem procura o equilíbrio entre o benefício da simpli¿cação
e o ônus da redução do alcance da aplicação da representação realizada. Conclui-se que:
DeÀnição
Os modelos são representações simpliÀcadas da realidade que preservam, para determinadas
situações e enfoques, uma equivalência adequada.
Por de¿nição, os modelos não objetivam simplesmente replicar o que o cérebro percebe. A representação abstrata visa
alcançar uma dada vantagem sobre a simples observação direta do fenômeno natural. Mesmo uma fotogra¿a ¿ltra certas
Modelagem de Problemas 3
informações e ressalta outras. A capacidade de substituir a realidade nos aspectos que são julgados mais importantes é
a característica do modelo que o torna desejável. A capacidade de simpli¿cação útil é a chave da construção de modelos
operacionalmente factíveis e viáveis, não sua perfeita aderência à realidade.
DeÀnição
Os modelos estão sempre “errados”, todavia, quando cuidadosamente aplicados, podem levar a
resultados que atendam aos objetivos desejados.
Existem vários critérios de medida da adequação ou aderência do modelo à realidade representada. Em diversas ocasiões,
a representatividade do modelo pode ser aperfeiçoada de forma interativa. O processo de veri¿cação da representatividade
é denominado validação do modelo, sendo uma etapa indispensável em qualquer procedimento cientí¿co. Como os modelos
se afastam, obrigatoriamente, do fenômeno representado, validar um modelo é testar sua e¿cácia (capacidade de bem re-
presentar o que se propõe a representar) e sua e¿ciência (capacidade de possuir uma construção e operação factível diante
de restrições reais de uso de recursos como o tempo, espaço de memória ou número de variáveis envolvidas).
• A dimensão da eÀcácia
A e¿cácia representa a capacidade de alcançar os resultados planejados, de atingir os objetivos ou metas de¿nidas. O as-
pecto da e¿cácia ressalta a necessidade de que os modelos possuam pelo menos três características:
9 Foco holístico
O termo holístico signi¿ca totalidade. Quer dizer, considerar o todo de um fenômeno levando em consideração as partes e
suas inter-relações. Contudo, modelar é simpli¿car, transportar o fenômeno do todo para um contexto de mais fácil entendi-
mento para o cérebro humano. O foco holístico, quando visto no processo de modelagem, diz que a mudança de contexto
promovida pela modelagem deverá garantir a representação das inter-relações julgadas indispensáveis, sob pena de cor-
romper o entendimento do fenômeno.
9 Dimensão da análise com características ecléticas
Epistemologia vem do grego episteme (ciência), é a Teoria
Conhecimento. Axiologia, do grego axía (preço, valor de Proposição Geral Teórica
algo), é conhecida também como a Teoria dos Valores. Não MODELO
pode haver dicotomia entre conhecimento (permitindo a aná-
lise de sua correção) e o valor (permitindo a análise de sua Indução Dedução
(Probabilidade) (Lógica)
contribuição). Como o deus Jano da mitologia romana, os
modelos possuem duas faces: o rosto que articula a teo-
ria (hipotético-dedutivo) e a face que representa a validade Caso Particular
da dedução na prática (indutiva). A Figura 1.1 exempli¿ca o EXEMPLO
Àuxo do particular para o geral e do geral para o particular,
que é peculiar à atividade cientí¿ca. Na dedutiva, o principal
instrumento conceitual é a lógica, enquanto na face indutiva Figura 1.1: Modelo circular da atividade cientí¿ca
a ferramenta central é a probabilidade.
9 Tradução adequada
Um bom modelo exige uma conveniente tradução contextual. Uma boa tradução contextual pode ser expressa através de
um correto isomor¿smo entre o fenômeno e seu modelo. A Figura 1.2 esclarece o processo de tradução, ressaltando seu
aspecto simpli¿cador e estruturador.
4 Programação Linear e Fluxos em Redes
Foco Entradas
SimpliÀcador
Tradução
Saídas
Entradas Saídas
Realidade
Complexa
Modelo
Certamente os vários problemas que serão representados pelos modelos possuirão características, natureza e propriedades
desiguais. O processo de tradução contextual, em todos os casos, deve ser capaz de identi¿car os elementos fundamentais
da questão e transportá-los para uma representação passível de ser manipulada vantajosamente através de estratégias,
artifícios ou métodos de solução conhecidos ou que possam ser criados para o modelo.
A di¿culdade do processo de tradução e a solução do modelo, em si, possuem diferentes naturezas, contudo preservam
forte inter-relação.
A tradução deve cooperar, em princípio, com a abordagem de solução do modelo. A utilizabilidade do modelo é de¿nida na
medida em que o processo de tradução é capaz de produzir uma representação tratável por um método de solução.
O conceito que representa a interferência da tradução na possibilidade de solução é denominado complexidade.
Complexo e complicado são conceitos diferentes. O complicado pode ser organizado em várias classes, sendo que cada
classe tem vários itens. Por sua vez o complexo tem muitos itens, muitas partes, mas em poucas classes. Um modelo
complicado é difícil de ser entendido. A demonstração de um teorema pode ser uma tarefa complicada. Um modelo é dito
complexo na medida em que o fenômeno representado depende de traduções que não estão disponíveis no estado da arte
ou não é possível alcançar um adequado grau de simpli¿cação para o fenômeno. Propriedades emergentes, não linearidade
e muitas partes independentes e interatuantes são, tipicamente, elementos que transportam complexidade. Modelos “menos
complexos” ou “simples” são mais facilmente abordados por métodos empíricos, enquanto modelos complexos di¿cilmente
deixarão de necessitar do apoio das técnicas hipotético-dedutivas. Observe-se que a facilidade de compreensão do modelo
e inteligibilidade não pode ser confundida com a viabilidade de sua solução prática. Alguns dos mais difíceis problemas
combinatórios possuem modelos de facílimo entendimento e representação extremamente simples. Nesse sentido, é indis-
pensável esclarecer melhor o fenômeno da complexidade.
• O tratamento da complexidade
A análise da e¿ciência e e¿cácia dos modelos pode ser encaminhada através do entendi-
mento da complexidade dos modelos. O entendimento da complexidade dos modelos pode
ser re¿nado na medida em que se identi¿cam as propriedades que ocasionam ou interferem
no comportamento do modelo. Essa opção permite uma visão que equilibra as necessidades
Modelagem de Problemas 5
operacionais veri¿cadas na construção dos modelos com as reclamadas pelo embasamento teórico. O presente texto
propõe que a complexidade de um modelo seja examinada à luz das três dimensões exibidas na ¿gura ao lado:
O Meio Ambiente destaca o aspecto de que os modelos possuem diferentes graduações de permeabilidade em relação ao
meio ambiente circunvizinho. Um modelo simples possui um perímetro de interferência claro e bem de¿nido. Quanto mais
permeável ao meio ambiente for o modelo, mais complexo será. Quanto mais imprecisos forem os limites entre o modelo e
o meio ambiente, mais complexo o modelo será. O Domínio diz respeito à estrutura interna do modelo. Um modelo simples
possui uma estrutura homogênea, uma morfologia uniforme e um número reduzido de variáveis. A Dinâmica mensura como
a estrutura interna do modelo se altera ao longo do tempo e como o modelo responde ao seu histórico comportamental. Um
modelo que não guarda correlação de comportamento com seu histórico é mais complexo do que um modelo cujo compor-
tamento pode ser fortemente previsto através dessa análise. De modo geral, um modelo simples é pouco inÀuenciado pelas
variações em seu meio ambiente, é estruturalmente estável, homogêneo e possui poucas variáveis e, ¿nalmente, possui
comportamento historicamente determinado ou facilmente previsível.
1.2
Meta Modelo Sistêmico
Não existe um modelo que permita representar detalhadamente o próprio processo de modelagem. Todavia, é possível guiar
a modelagem de forma bastante geral com o uso da abordagem sistêmica.
• Conceito de sistema
Como o objetivo da modelagem é o de destacar partes de um todo para representá-las e entendê-las, faz senso conceber
o todo como um projeto que busca determinada ¿nalidade e composto por partes que se relacionam ou comunicam através
da troca de informações, matéria, energia e outros elementos. O conceito de sistema permite uma boa via para representar,
de forma genérica, tanto o universo do qual será destacada a parte representada pelo modelo, quanto as ligações entre o
universo e a parte destacada no modelo.
DeÀnição
Um sistema é uma unidade conceitual ou física, composta por partes inter-relacionadas,
interatuantes e interdependentes.
Através do conceito de sistema, é possível a con¿guração de uma forma de mapeamento prévio e generalista entre a rea-
lidade universal e a parte que será objeto de modelagem. O mapeamento do modelo sistêmico pode ser extremamente útil
e estruturante. Pensando de forma sistêmica, o verbo modelar é entendido como a atividade de criar sistemas simpli¿cados
que podem substituir, com vantagens especí¿cas, os sistemas reais.
Sistemas são componentes não atômicos (sob o ponto de vista da observação) de um determinado universo. Os sistemas,
de forma geral, podem possuir as seguintes propriedades:
9 Simbiose interna: Propriedade de compartilhar funções que torna cada parte indispensável dentro da constituição do sistema.
9 Simbiose externa: Propriedade de o sistema ser um componente participante e indispensável (pelo menos em tese) de
um ecossistema maior e que contém o sistema considerado.
6 Programação Linear e Fluxos em Redes
9 Sinergia: Efeito que permite ao sistema alcançar patamares de desempenho superior ao obtido pela soma do desempe-
nho de cada parte isolada. O desempenho que é despertado no sistema e que não pode ser completamente justi¿cado
pelas propriedades das partes é dito emergente.
9 Homeostase: Capacidade de conservar seu estado de equilíbrio.
9 Entropia negativa: Capacidade de importar a energia necessária do ecossistema exterior para compensar a natural
degradação entrópica e realizar autoajustes em direção ao equilíbrio entre o sistema e o meio ambiente.
9 Aninhamento: Um conceito próprio aos sistemas é sua propriedade de replicar, de forma recursiva, as propriedades
fundamentais do todo em suas componentes. Um sistema é composto por partes que herdam a condição de também
serem sistemas. Essa propriedade permite Àexibilidade e elegância na modelagem. O aninhamento permite auxiliar a
representação de estruturas complexas.
Além do ideal da captura dos elementos fundamentais do fenômeno representado, os modelos provavelmente revelarão
relacionamentos não aparentes, bem como facilitarão a experimentação (ou o aprendizado por tentativa e erro controlado),
o que não é, normalmente, de prática razoável em boa parte dos sistemas reais.
1.3
Modelos de Otimização
O plano de¿nido pelo Domínio x Meio Ambiente permite a análise da viabilidade de o modelo quantitativo ser solucionado
através de uma computação em máquina de Turing. O plano Dinâmica x Meio Ambiente expressa o tipo de solução esperada
para o modelo. O plano de¿nido pelos eixos da Dinâmica x Domínio de¿ne a constituição das equações matemáticas de
representação do modelo (variáveis, função-objetivo e restrições). Quando as três dimensões do modelo são pouco desen-
volvidas, como no caso do meio ambiente tratável, o domínio homogêneo, com poucas variáveis e a dinâmica determinística,
o modelo habita um plano que se denomina dos mecanismos, como mostra a Figura 1.3.
O plano mais complexo é denominado da Gestalt — termo em alemão usado para denominar a forma observada do todo. A Fi-
gura 1.3(b) de¿ne, no plano do Mecanismo, o espaço ideal para modelagem matemática ideal. Na medida em que o modelo se
aproxima do plano da Gestalt ele se afasta de uma possibilidade de solução prática e, mesmo, de uma representação e¿ciente.
A estrutura relacional dos sistemas modelados pode ser representada por desenhos ou símbolos. O comportamento fun-
cional pode ser representado através de funções de desempenho em que as possíveis entradas para os subsistemas são
associadas às saídas dos demais subsistemas.
O comportamento do sistema representado pode ser induzido a partir das seguintes propriedades observadas no funciona-
mento do modelo:
9 propriedades analíticas observadas no modelo de otimização;
9 melhoria mensurável no processo;
9 reconhecimento explícito das interações veri¿cadas no modelo e entre o modelo e seu meio ambiente.
e uma função-objetivo:
Um problema de otimização discreta, pode ser entendido como o desejo de obter um conjunto satisfazendo
(problema de maximização)
(problema de minimização)
e sujeito a uma série de restrições.
S é também denominada con¿guração do problema. S* é chamada a melhor dentre todas as con¿gurações, segundo o
critério de otimização c(S). F é o espaço das con¿gurações. C é a função-objetivo. Essa formalização é bastante geral,
obviamente voltaremos a esse modelo adotando as nomenclaturas clássicas para as con¿gurações S (denominadas tam-
bém soluções viáveis) e F (espaço das soluções viáveis).
• Similaridade de sistemas
De forma geral, um sistema de representação ou modelo pode ter sua similaridade em relação ao sistema real comprovada
ou mensurada através da confrontação de suas propriedades e comportamento. É visível que a análise de similaridade pode
ser di¿cultada ou mesmo impedida quando os elementos do sistema real são de difícil caracterização. A teoria clássica de
similaridade trata de sistemas físicos. Diz-se que dois sistemas físicos são similares quando podem ser descritos pelas mes-
mas equações matemáticas. Observe-se que a correspondência entre as constantes e as variáveis que formam o modelo é
capaz de não compartilhar a mesma natureza das constantes e variáveis que são veri¿cadas no fenômeno físico.
Um modelo pode alcançar similaridade de comportamento e propriedades com o sistema real utilizando variáveis de natu-
reza diferente daquelas existentes no sistema real. Um modelo de um circuito elétrico pode ser construído através de uma
representação envolvendo, por exemplo, os princípios da hidráulica. Variáveis como a corrente elétrica e a diferença de
potencial elétrico poderão ser representadas através do Àuxo de água e da pressão hidrostática, respectivamente.
Apesar da correspondência entre variáveis e constantes do modelo e do sistema real não preservarem obrigatoriamente a
mesma natureza física, cada elemento-chave do sistema real deverá possuir um correspondente no sistema modelo. Essa
condição de similaridade é denominada IsomorÀsmo. Supondo que um sistema S1 possa ser expresso pelo seguinte con-
junto de equações:
Diz-se que:
IsomorÀsmo 1
S1 é Isomorfo a S2 se e somente se f1 é Isomorfo a I1 para qualquer iM, sendo M = {1,2,...m}.
Como consequência da de¿nição de isomor¿smo de sistemas decorre o fato de que sistemas ¿nitos só serão isomorfos se
possuírem o mesmo número de elementos. A condição de isomor¿smo é necessária, mas não su¿ciente para garantir que
dois sistemas sejam similares. Conclusivamente não basta que a estrutura do modelo seja similar à estrutura do sistema
real. Impõe-se que o comportamento do modelo seja também similar ao real. Da teoria de similaridade, uma condição que
garante um comportamento similar de dois sistemas isomorfos, representados por suas variáveis xi1 para o modelo 1, e xi2
para o modelo 2, é que:
IsomorÀsmo 3
O sistema S2 = {A2, R2} é um modelo de S1 = {A1, R1} se e somente se ambos os sistemas são
Isomorfos e o mapeamento de R1 é tal que para uma mesma entrada em ambos os sistemas,
para todos os elementos associados em A1 e A2 e preservadas as constantes de similaridade, as
saídas são as mesmas.
Questão
Quais são os principais obstáculos que diÀcultam a garantia de similaridade entre um modelo e
um sistema real?
O primeiro obstáculo reside na imprecisão do processo de de¿nição das correlações que constarão da representação. Pro-
vavelmente, para a maioria dos casos reais, serão sempre possíveis diversas abordagens igualmente corretas sob o aspecto
da similaridade focalizada no modelo, contudo, completamente diferentes em número e natureza de variáveis e mesmo em
consumo de recursos para a execução ou solução do modelo.
Uma segunda questão diz respeito à manipulação do concreto. O desempenho do modelo deve ser comparado ao desem-
penho do sistema real nas condições normais de funcionamento do sistema real. Em várias ocasiões isso pode ser pratica-
mente impossível ou extremamente arriscado. De fato, boa parte da utilidade de um modelo consiste exatamente em tratar
esse tipo de situação em que o sistema real não pode ou não deve funcionar nas condições do teste de similaridade. Essa
situação induz à necessidade de extrapolação de resultados, di¿cultando a certeza da similaridade.
Finalmente, a arquitetura de um modelo é, normalmente, resultado de um esforço cognitivo que pode não admitir formaliza-
ção. Em consequência, a similaridade do modelo com o sistema real pode, em alguns casos, ser fracamente mensurável ou
pouco controlável em virtude da natureza do modelo.
Modelagem de Problemas 11
1.4
ClassiÀcação dos Modelos
1. Conceitual
São qualitativos e permitem destacar principalmente as conexões entre os componentes internos e externos.
2. Interativos
São modelos físicos que podem ser facilmente observados. Trabalham com uma boa proximidade entre o modelo con-
ceitual e a realidade.
3. Matemáticos ou estatísticos
Envolvem equações e expressões exatas e são quanti¿cáveis.
4. De visualização
São compostos por mapas, maquetes, esquemas, desenhos, etc.
Modelo
Concreto Abstrato
A classi¿cação divide os modelos entre aqueles que são representados materialmente, e aqueles que são conceituais e
formados por ideias.
12 Programação Linear e Fluxos em Redes
Pode-se abordar a classi¿cação dos modelos pelas propriedades que eles são capazes de representar. Sob esse aspecto,
segundo Ackoff e Sasieni (1971), destacam-se os seguintes grupos:
1. Modelos Icônicos.
2. Modelos Analógicos.
3. Modelos Simbólicos.
Nos Modelos Icônicos, as propriedades relevantes dos objetos reais são representadas como tais. Nesse tipo de modelo,
uma das mais signi¿cativas diferenças entre a realidade e o modelo consiste na escala. Os modelos Icônicos são imagens
da realidade. Alguns exemplos desse tipo de modelo são as fotogra¿as e os mapas. Os modelos Icônicos são, geralmente,
concretos e de manipulação experimental difícil.
Os Modelos Analógicos usam um conjunto de propriedades inerentes ao modelo para representar o conjunto de proprie-
dades da realidade. Um exemplo clássico é a substituição de sistemas hidráulicos por elétricos. Os grafos são modelos
analógicos que utilizam grandezas geométricas e posições no plano para representar diversas variáveis e suas relações,
representando, em muitas situações, problemas de decisão.
Os Modelos Simbólicos usam letras, números e outros símbolos para representar as variáveis e suas relações. Os modelos
simbólicos, em grande parte dos casos, tomam a forma de relações lógicas ou matemáticas (equações). De forma geral,
todos os modelos e, em especial, os modelos simbólicos são desenvolvidos de forma interativa e por aproximações. Os
Àuxogramas e os DFDs (Diagramas de Fluxo de Dados) são típicos modelos simbólicos desenvolvidos, normalmente, em
etapas de aproximação. Os modelos elaborados nas primeiras fases da modelagem são, muitas vezes, denominados Mo-
delos Conceituais. Nos Modelos Conceituais, não raro as relações entre os elementos do sistema são descritas de forma
qualitativa. Os DFDs e as Redes de Petri são exemplos disso. Em Otimização objetiva-se, sempre que possível, a constru-
ção de modelos simbólicos porque permitem o tratamento quantitativo do sistema e de suas propriedades.
Uma importante distinção pode ser feita entre os modelos através da natureza das variáveis envolvidas. Alguns modelos
possuem variáveis controláveis, outros não. Em geral os modelos com variáveis controladas são Explanatórios. Os demais
são Descritivos.
Emshoff (1970) sugere uma classi¿cação que divide os modelos ditos Explanatórios em quatro classes, da seguinte forma:
Os modelos Descritivos são expressos em linguagem corrente. São muito limitados, uma vez que seu método de pre-
dição é interno. Os modelos Físicos variam desde as representações em miniatura para organização de leiaute até os
Modelagem de Problemas 13
túneis de vento. Possuem alto custo e são muito especí¿cos. Os modelos Procedimentais podem ser também denomi-
nados de simulação.
Modelos
A classi¿cação mista destaca ele-
mentos da natureza dos modelos
(físicos e matemáticos), do caráter
Físico Matemático
temporal dos modelos (estáticos e
dinâmicos), do tipo de saída dispo-
nível (numérica ou analítica) e, ¿nal-
Estático Dinâmico Estático Dinâmico
mente, sobre o método de solução
do modelo (simulação ou não).
Numérico Analítico Numérico
A classi¿cação da Figura 1.5 não
detalha o caráter discreto ou con-
tínuo do problema, elementos que Simulação Simulação
podem também ser contemplados
nas classi¿cações. Figura 1.5: Classi¿cação mista
1.5
O Processo de Modelagem
inter-relacionamento. O problema, em modelos de programação matemática, deve ser traduzido em elementos palpá-
veis englobando:
9 Objetivos.
9 Variáveis de decisão e controle.
9 Restrições.
9 Níveis de detalhe.
9 Horizonte de tempo do planejamento.
9 A entrada e saída do modelo.
9 Formulação e construção do modelo inicial
O sucesso do modelo de otimização depende de quão se mostre adequada a sua tradução, também denominada formula-
ção. O próprio termo formular, largamente empregado para exprimir o processo de construção de modelos de otimização,
traz consigo uma signi¿cativa carga quantitativa e matemática. Todavia, a adequação da tradução igualmente depende de
elementos que escapam ao conteúdo estritamente matemático, envolvendo a percepção do elaborador do modelo (ou equi-
pe de elaboração), uma faculdade cognitiva de alto nível. As fórmulas ou equações do modelo são aproximações das regras
mais complexas do mundo real. De fato, uma tradução rigorosa é fundamentada em habilidades cognitivas que di¿cilmente
podem ser de¿nidas com rigor, como:
9 intuição;
9 experiência;
9 criatividade;
9 poder de síntese e outras.
O fato de a boa formulação de um problema real depender da mescla de habilidades técnicas bem de¿nidas e habilidades
cognitivas complexas resulta em pelo menos duas consequências para o processo de formulação:
9Existe uma importante di¿culdade de regrar, de forma geral, um processo de formulação.
9 Como um processo desprovido de regras quantitativas explícitas, bem como intensamente dependente do uso de abstra-
ção, cognição e mesmo criatividade, não é raro nem sem sentido considerar essa atividade de formulação como uma arte.
O entendimento da formulação como uma atividade artística tem suas justi¿cativas, contudo, pode conduzir a um beco
sem saída, na medida em que deixa de apontar um caminho objetivo para auxiliar o processo. Adicionalmente, como efeito
colateral, desloca o foco do desenvolvimento das técnicas de modelagem para um contexto pessoal e subjetivo. Se, por um
lado, inegavelmente a construção de um modelo é uma atividade que exige características inatas do modelador, por outro,
na maioria das ocasiões, a modelagem matemática implicará um esforço predominantemente técnico. Apesar de o lado da
inspiração nunca ser passível de afastamento, na prática real os fatores-chave do sucesso estarão associados a conheci-
mentos e habilidades cuja aprendizagem e aperfeiçoamento estarão, supostamente, ao alcance das pessoas. Na fase de
formulação do modelo de otimização são estabelecidos(as):
1. O tipo e a natureza das variáveis utilizadas na representação, bem como o nível de agregação e correlação entre
essas variáveis. A modulação da correlação é realizada através de parâmetros e constantes.
2. As restrições do problema, tanto as quantitativas quanto às de natureza lógica.
3. A adequação do modelo à natureza dos dados de entrada e de saída.
4. A representação das funções de desempenho que possivelmente serão exigidas no processo de otimização. Essas
funções, via de regra, serão denominadas funções-objetivo.
5. As hipóteses referentes às possíveis técnicas de solução (exatas, heurísticas, etc.) para o caso.
A fase de validação do modelo visa comparar o seu comportamento com o comportamento do sistema real. Em caso de
discrepâncias, os componentes do modelo são reajustados, alterados ou transformados até que o comportamento similar
seja alcançado.
Modelagem de Problemas 15
9 Validação do modelo
A etapa de validação do modelo é composta por duas atividades.
1. Validação do comportamento da modelagem
Visa alcançar a garantia de que o modelo tem comportamento similar ao sistema real, consideradas válidas e adequadas às
simpli¿cações e hipóteses adotadas na modelagem. Observe-se que a validação do modelo não representa exatamente uma
garantia de que o modelo é útil para a solução do problema proposto ou mesmo para aumentar o conhecimento sobre o sistema
real. O que se busca na validação do comportamento do modelo é a certeza de que as variáveis de decisão do modelo exibem
realmente o comportamento que se imaginou necessário e se restrições e funções-objetivo cumprem seu papel previsto.
2. Validação da utilidade da modelagem
A etapa visa garantir que as simpli¿cações e demais hipóteses que suportaram a construção do modelo são adequadas à
utilidade do modelo em auxiliar a tomada de decisão. Essa fase compreende:
9 Análise da e¿cácia das soluções alcançadas.
9 Sensibilidade dessas soluções.
9 Levantamento da precisão dos dados.
9 Estudo da estabilidade computacional do modelo.
9 Análise da importância e e¿cácia das especi¿cações do modelo.
9 Simulação do Modelo
Consiste em fazer o modelo ser executado em condições controladas e com resultados conhecidos e comparáveis aos resulta-
dos do sistema real. Aspectos como o comportamento e resultado ¿nal das variáveis de decisão, comportamento das restrições
e da função-objetivo, admissibilidade das condições iniciais da simulação, estados intermediários alcançados pelo sistema
modelo e outros aspectos são condicionantes que podem ser empregadas para o monitoramento dessa etapa. A simulação do
modelo visa tanto garantir a validação de comportamento do modelo quanto fornecer informações sobre o uso de recursos (tem-
po de processamento, exigência de hardware, supervisão e interferência humana) necessários para seu funcionamento prático.
9 Reformulação do modelo
A reformulação do modelo é uma etapa que somente ocorre se o modelo não atende adequadamente a uma ou às duas vali-
dações descritas no tópico anterior. A etapa representa uma volta ao passo de modelagem transportando novas informações
ou conhecimentos acerca do sistema a ser modelado.
9 Aplicação do modelo
Consiste em seu uso em casos reais. Concluídas com sucesso as
etapas anteriores, a aplicação é o ¿m do ciclo de vida do modelo.
Sistema Real
Isso não signi¿ca que o modelo não possa ser aperfeiçoado. To-
davia, esse processo muito provavelmente deverá iniciar um novo
ciclo de vida para o modelo. Dados Aplicação do modelo
Informações
os passos indispensáveis para o sucesso da modelagem de um sistema genérico. Portanto, as sugestões que se se-
guirão são Àexíveis e associadas às diferentes situações de modelagem. Segundo Ackoff e Sasieni (1971), poderão ser
considerados cinco padrões de construção de modelos:
Padrão 1: Quando a estrutura do sistema é su¿cientemente simples e evidente para ser compreendida por inspeção. Nesse
caso, o modelo pode ser construído com facilidade, o que não signi¿ca que não possa ser muito difícil ou até mesmo impos-
sível avaliar as variáveis não controladas e diversos outros parâmetros. O número de variáveis controladas pode também
tornar impossível a solução prática do problema. O Padrão 1 de modelagem aplica-se claramente aos sistemas pertencentes
ao plano do mecanismo do iconógrafo da Figura 1.3.
Padrão 2: Quando a estrutura do sistema é relativamente aparente mas a representação simbólica não é tão aparente.
Nessa situação, a busca de um sistema análogo com estrutura já conhecida é uma boa opção. O sistema análogo poderá
auxiliar na descoberta das propriedades do sistema em estudo. Exempli¿ca a aplicação do Padrão 2 no caso do modelo de
Simulated Annealing em que os máximos ou mínimos de uma função matemática são pesquisados através de uma analogia
com o processo de recozimento de certos materiais metálicos.
Padrão 3: Quando a estrutura do sistema não é aparente, contudo uma análise estatística do mesmo pode atender ao de-
sejado. Nesse caso, o sistema é considerado como uma caixa preta onde conhecemos, com segurança, as respostas para
determinados estímulos.
Padrão 4: Quando a estrutura do sistema não é aparente nem é possível isolar os efeitos das diversas variáveis através de
uma análise estatística. Nessa hipótese, uma boa política será o projeto
de experimentos de forma a determinar variáveis e correlações relevan-
tes e reduzir o caso ao Padrão 3.
Conceito
Padrão 5: Quando veri¿camos as situações do Padrão 4, as experi-
mentações possíveis sobre o modelo são limitadas para o ¿m desejado.
Será o ¿m da linha? Nesse caso existem ainda os modelos de ConÀitos Similaridades Formulação
Necessárias Precisa
e Jogos de Operações (Ackoff e Sasieni, 1971). Se isso ainda não for
su¿ciente, é necessário evocar a criatividade.
A Figura 1.8 resume atividades necessárias para a elaboração de um
modelo matemático. O conceito preside as atividades. Similaridades
desejadas e a formulação se encontram no mesmo nível de importân- Aspectos Resultados e
Estatísticos Visualização
cia. Os modelos quantitativos devem permitir análises precisas, desse
modo, os aspectos estatísticos a serem considerados e a forma de apre-
sentação e visualização dos resultados completam o rol das atividades. Figura 1.8: Atividades de modelagem
1.6
Modelagem Matemática
9 Conceitos básicos
As técnicas e algoritmos abordados no presente trabalho destinam-se a estruturar e solucionar modelos quantitativos que
podem ser expressos matematicamente. Nesse ramo do conhecimento humano destaca-se a Pesquisa Operacional (PO),
uma tradicional disciplina que congrega diversas das mais consagradas técnicas da modelagem matemática. Os modelos de
Modelagem de Problemas 17
PO são estruturados de forma lógica e formal, objetivando a otimização do funcionamento dos sistemas representados. Os
modelos de Programação Matemática estão entre os principais da PO e constituem uma das mais importantes variedades
dos modelos quantitativos.
Uma pequena dúvida pode decorrer do uso da palavra programação. Programação Matemática é entendida no sentido de
planejamento. Apesar da palavra programação atualmente possuir intensa associação ao processo de criação de coman-
dos computacionais ou programação computacional, ela é igualmente adequada para expressar atividades genéricas de
planejamento e coordenação de atividades, por exemplo. Nos dias de hoje, inevitavelmente a Programação Matemática irá
implicar alguma forma de programação computacional, uma vez que o porte dos modelos reais da atualidade não permitem
soluções manuais. Sem dúvida a importância do uso da ferramenta computacional é, inclusive, levada em conta no próprio
processo de modelagem. No momento oportuno o fato será destacado.
O campo da Programação Matemática é amplo. As técnicas de modelagem matemática e de solução de modelos mate-
máticos consagraram-se face à sua utilidade na solução de problemas de otimização nas áreas de produção industrial,
investimento, comércio, comunicação, transporte e segurança, entre outras. Em virtude das várias peculiaridades ineren-
tes aos diversos contextos de programação (planejamento), os métodos de solução dos modelos matemáticos sofrem
constantes avanços e reformulações. Por outro lado, o processo de modelagem matemática, entendido estritamente
como um processo cognitivo de tradução do sistema real em um sistema modelo, poucas modi¿cações tem exibido ao
longo dos anos. Os modelos de programação matemática são tradicionalmente classi¿cados em função do tipo de equa-
ções e variáveis do modelo.
9 Programação linear
Um caso particular dos modelos de programação em que as variáveis de decisão são contínuas e apresentam comporta-
mento linear, tanto em relação às restrições quanto à função-objetivo. Caso extremamente importante devido não só ao largo
emprego prático, quanto à e¿ciência dos algoritmos de solução existentes e à possibilidade da transformação dos modelos
de Programação Não Linear em modelos de Programação Linear.
9 Programação não linear
Um modelo de otimização constitui um problema de Programação Não Linear se exibir qualquer tipo de não linearidade,
seja na função objetivo ou em qualquer de suas restrições. A introdução de não linearidade é bem tratável nos casos de
convexidade, situação em que se preservam propriedades importantes tanto sob a ótica de Programação Matemática como
da teoria econômica. Em tais casos, algoritmos e¿cientes podem resolver grandes problemas reais, e o comportamento
descentralizado de maximização de lucros nesses casos ¿ca sintonizado com a maximização do benefício social líquido no
setor econômico em questão.
9 Programação inteira
Um modelo de otimização constitui um problema de Programação Inteira se qualquer variável não puder assumir
valores contínuos, ficando condicionada a assumir valores discretos. O requisito de que variáveis tenham que ser
inteiras normalmente implica maior complexidade computacional do que a oriunda de situações de não linearidade
de funções.
Cada área acima relacionada possui técnicas e modelos especí¿cos de solução. Muitas dessas técnicas de solução en-
contram abordagens similares em outros campos do conhecimento. Um exemplo disso são algumas técnicas de busca da
Programação Inteira que utilizam metáforas como a da evolução genética ou do recozimento de metais.
Questão
A Programação Matemática, na prática, está associada diretamente ao apoio à tomada de decisão. Pode suportar tanto
decisões eminentemente técnicas, quanto complexas situações de gerenciamento. A Programação Matemática reúne uma
série de técnicas que auxiliam na tradução quantitativa de sistemas de grande porte e no exame de seu comportamento sob
condições controladas. Destaca-se o fato de permitir tratar inter-relações entre variáveis que di¿cilmente seriam visíveis de
forma intuitiva. Com a utilização dos meios de processamento automático de dados, os chamados programas de Progra-
mação Matemática podem examinar direta ou implicitamente um número exponencial de con¿gurações possíveis para a
solução do modelo formulado — con¿gurações viáveis, encontrando aquelas que otimizam os critérios estabelecidos pelas
funções-objetivo, também ditas soluções ótimas.
A tomada de decisão é um tema que assume importância crescente na justa medida em que o porte e alcance dos siste-
mas modernos crescem e se tornam complexos. Decisões e ações são o produto ¿nal do trabalho de gerentes, executivos,
engenheiros e políticos. A tomada de decisão é o ato de selecionar, dentre várias decisões possíveis, a mais adequada ao
alcance de certos objetivos. Precede a essa escolha normalmente um processo elaborado de:
9 representação adequada das variáveis e restrições do problema;
9 levantamento das alternativas viáveis;
9 estabelecimento de critérios de avaliação dessas alternativas;
9 comparação das alternativas;
9 análise de impacto da tomada de decisão.
Observe-se como os passos citados acima são semelhantes aos passos necessários à modelagem e à solução de proble-
mas, etapas tipicamente tratadas de forma quantitativa pela Programação Matemática. A formulação quantitativa e precisa
da Programação Matemática pode atuar sobre os problemas de decisão que possuem a natureza, as informações e o
conhecimento disponível compatíveis com os modelos quantitativos desenvolvidos pela Programação Matemática. Tipica-
mente o plano dos mecanismos da Figura 1.3(b) pertence ao escopo da Programação Matemática, permitindo-se ainda o
tratamento de sistemas que desloquem seu plano ao longo do eixo do domínio.
Em uma visão mais ampla, os sistemas reais que se afastam do plano dos mecanismos, como no caso em que a informação
histórica é imprecisa ou insu¿ciente, o comportamento do meio ambiente ou das variáveis do sistema é de difícil determina-
ção, tende a escapar ao contexto da Programação Matemática.
Para enfrentar os problemas de¿nidos no contexto da Programação Matemática e em situações mais adversas surgiu a
Teoria da Decisão, uma disciplina orientada para a tomada de decisão através de uma abordagem sistemática, quantitativa
e normativa. Assim, a teoria da decisão procura desenvolver soluções racionais através da aplicação de métodos e técnicas
capazes de auxiliar os tomadores de decisão a realizarem escolhas de forma e¿ciente e e¿caz. De forma geral, a Teoria da
Decisão é uma disciplina que incorpora a Teoria de Utilidade, a Teoria de Probabilidade e a Pesquisa Operacional. A Teoria
da Utilidade visa ao estudo de uma base comum para a comparação de valores e riscos diferentes, propiciando o conheci-
mento de preferências de agentes econômicos. A Teoria da Probabilidade busca mecanismos para lidar com incerteza ou
com informações incompletas. Finalmente, a Pesquisa Operacional visa ao desenvolvimento de métodos e técnicas para
resolução de problemas e tomada de decisão. Os seguintes elementos são comuns em tomada de decisões, independen-
temente da natureza ou situação:
9 Tomador de decisão: refere-se ao indivíduo ou grupo de indivíduos responsável pela escolha da estratégia a seguir.
9 Objetivo: é a especi¿cação do que se pretende alcançar.
Modelagem de Problemas 19
9 Escala de valor ou preferência: refere-se ao critério adotado pelo tomador de decisão para selecionar alguma alter-
nativa, medindo a situação ou valor de utilidade que o tomador de decisão associa a cada resultado;
9 Soluções ou estratégias alternativas: correspondem às diferentes alternativas de ação que o tomador de decisão
pode escolher.
9 Estado da natureza ou ambiente: refere-se à condição do ambiente em que as decisões estão, geralmente, fora do
controle do tomador de decisão.
9 Resultado ou consequência: refere-se ao resultado que pode ocorrer na implementação de uma determinada estra-
tégia num determinado estado da natureza ou ambiente.
O objetivo central da tomada de decisão empresarial é a maximização da utilidade, conforme de¿nida pelo tomador de deci-
são. Na prática, essa utilidade é traduzida, muito provavelmente, pela maximização de lucro ou pela minimização de custo.
Esse objetivo ocorre em qualquer das seguintes situações:
9 Situação de certeza: São disponíveis informações completas, conhecendo-se, a priori, o resultado associado a cada
ação do sistema. Na condição em que o sistema real tem seu comportamento bem conhecido e as variáveis desse sistema
são quantitativamente representáveis, a situação é tipicamente indicada para o uso das técnicas de Programação Mate-
mática. Nas situações anteriormente caracterizadas, a Programação Matemática poderá ser uma técnica bastante indicada
para a modelagem ainda que, provavelmente, sensível ao porte (número de variáveis, número de restrições ou número de
funções objetivo) e à natureza de seus componentes (lineares, inteiros ou não lineares) do sistema modelo.
9 Situação de risco ou incerteza: Trata-se de um contexto de tomada de decisão em que as informações disponíveis
sobre o sistema e suas variáveis são parcialmente conhecidas ou probabilísticas. Nessa classe de problemas de decisão
é conhecido o universo das consequências das ações do sistema ou estados possíveis para o sistema. São conhecidas
as probabilidades da ocorrência das ações e das transições de estado do sistema. A complexidade computacional imposta
para a solução desses modelos pode sugerir o uso de métodos heurísticos ou de simulação, em detrimento das técnicas de
Programação Matemática.
9 Situação de conÁito: Trata-se de um caso em que dois diferentes tomadores de decisão atuam sobre um mesmo
sistema. Supõe-se que cada tomador de decisão possua uma função de utilidade própria e incompatível com a função de
utilidade do outro tomador de decisão que é denominado adversário. A decisão racional buscada visa, simultaneamente,
maximizar a utilidade do tomador de decisão e minimizar a utilidade de seu adversário. Tomada de decisão em situação de
conÀito é estudada principalmente pela Teoria dos Jogos.
A Programação Matemática tipicamente ampara a Pesquisa Operacional para a modelagem e solução dos sistemas loca-
lizados no plano dos mecanismos ou em planos que se desloquem moderadamente nos eixos do domínio, da dinâmica ou
do meio ambiente. De forma geral, podemos dizer que a contribuição da Programação Matemática dentro da modelagem
e solução de problemas de decisão direciona-se preferencialmente às situações de certeza, permitindo, em casos reais:
9 Estabelecer melhorias mensuráveis na operação do sistema.
9 Automatizar processos e identi¿car gargalos operacionais.
9 Fornecer pontos de referência para a análise e avaliação da adequação de planos diretores e operacionais elaborados.
9 Ajudar nas tomadas de decisões sobre as necessidades de expansão de instalações ou implantação de novas infra-
estruturas.
9 Desenvolver análises comparativas de desempenho operacional.
9 Determinar valores de referência para os diversos produtos em diferentes estágios da cadeia de produção, proces-
samento, estocagem e transporte.
Como ¿cará visível nos próximos capítulos, a Programação Matemática possui aplicação e utilidade em quase todas as áreas
das atividades produtivas. A Figura 1.9 complementa o Àuxograma da Figura 1.6 e o esquema da Figura 1.7, destacando como
as técnicas de modelagem permitem a evolução do conhecimento acerca do sistema real e o auxílio da tomada de decisão.
20 Programação Linear e Fluxos em Redes
Sistema Real
Realimentação Decisão
Sistema Real
Realimentação
Análise
A tomada de decisão é um processo cognitivo e emocional que resulta na escolha de um curso de ação entre diferentes
possíveis. O processo de decisão implica opções de escolha, ainda que a escolha possível seja nada fazer. As decisões são
de diversas e diferentes naturezas e podem ser sujeitas a circunstâncias extremamente variáveis.
No contexto produtivo, as decisões são predominantemente fundamentadas em argumentos racionais. As decisões racio-
nais podem ser guiadas em função de objetivos previamente conhecidos. A boa decisão está irremediavelmente associada
ao bom conhecimento da questão que está sendo decidida.
A tomada de decisão, portanto, é um processo que está relacionado diretamente com o conhecimento do problema, como
forma de modelar e representar as alternativas ou escolhas possíveis, bem como relacioná-las com os objetivos do tomador
de decisão, com a cultura e as consequências que envolvem a seleção de uma dada alternativa.
A Figura 1.9 auxilia o esclarecimento de como os modelos de Programação Matemática podem contribuir para o processo
de tomada de decisão enriquecendo o conhecimento acerca da questão que cabe decidir.
A fase inicial do processo de aplicação da modelagem matemática proporciona a análise do sistema real e a transformação
dos dados do sistema real em informações. O exercício do modelo a partir das informações obtidas na fase inicial permitirá
consolidar, estruturar e sintetizar tais informações e alcançar o conhecimento. De posse de conhecimento amplo, espera-se
que o tomador de decisão seja capaz de tomar decisões sábias.
Missão Principal
Auxiliar na programação do uso eÀciente e eÀcaz de recursos limitados e que são disputados por
atividades distintas.
Nos modelos matemáticos a representação de determinado sistema é geralmente realizada por um conjunto de equações
ou expressões matemáticas. Se existem “n” decisões quanti¿cáveis a serem tomadas, então é possível associar a cada
decisão uma variável do modelo denominada forma mnemônica de Variável de Decisão, cujos valores o próprio modelo
deverá determinar. Simbolicamente, as Variáveis de Decisão são representadas por letras minúsculas com índices como:
xi , i = 1,2,...,n.
Uma Função Numérica associada às variáveis de decisão quanti¿ca a e¿cácia de cada uma delas. Considerando que a
função z = f (xi ,...., xn) represente essa função de quanti¿cação, normalmente será denominada Função Objetivo. Nos mo-
delos de Programação Matemática não existe, a priori, qualquer restrição ao comportamento matemático dessa função. Na
Programação Linear, a função-objetivo, bem como todas as restrições do modelo, é expressão linear.
As limitações impostas aos recursos, como também a disputa desses recursos pelas diferentes atividades, podem ser mo-
deladas através de equações que atuam como restrições aos valores das variáveis. Os valores assumidos pelas variáveis
de decisão podem ser expressos matematicamente por meio de equações e inequações.
Um modelo construído da forma anteriormente descrita é também denominado Modelo de Otimização. É interessante ob-
servar ainda que os Modelos de Otimização, por objetivarem a redução do contexto em busca da simpli¿cação, podem ser
caracterizados pelas seguintes dicotomias:
Determinístico Probabilístico
Restrito Irrestrito
Monocritério Multicritério
Contínuo Discreto
Unidecisor Diversos decisores
Univariável Multivariável
Linear Não Linear
Uniobjetivo Multiobjetivo
9 Descrição Visual
9 Equações Matemáticas 9 Código Computacional
9 Linguagem comum
As di¿culdades anteriormente relacionadas implicam várias possibilidades de afastamento do objetivo buscado pela oti-
mização ou na complicação do processo de modelagem. Cada um dos hiatos possui diferentes estratégias de redução
ou eliminação. O hiato ferramental pode ser minimizado, por exemplo, através da técnica de solução utilizada no modelo.
Uma solução heurística pode substituir a abordagem exata em problemas mais complexos, visando diminuir o esforço com-
putacional. Em alguns casos, é razoável admitir sacri¿car o ideal de perfeição perseguido pela solução exata em troca da
melhoria do hiato ferramental. Em outras ocasiões, é razoável admitir um modelo menos preciso, desde que a tradução para
o modelo lógico seja mais fácil de ser realizada ou garantida.
Modelagem de Problemas 23
Murphy e Panchanadam (1997) apresentam uma interessante revisão e taxonomia da evolução dos modelos de Programa-
ção Linear. Trata-se de um texto de referência para quem deseja iniciar o aprofundamento no tema.
1.7
O Papel dos Modelos Quantitativos na Gestão Moderna
Apesar do conteúdo predominantemente quantitativo do presente livro, é oportuno debater, mesmo que rapidamente, o
contexto em que a so¿sticada tecnologia da modelagem matemática será aplicada. Essa é uma tendência cada vez mais
visível na ciência moderna: questionar sua contribuição e alinhar seu esforço em favor do ¿m maior que é o homem e sua
qualidade de vida. A consciência do impacto e da importância do uso das ferramentas quantitativas em apoio à tomada de
decisão tem potencial para promover mudanças extremamente positivas no processo de operação e aperfeiçoamento dos
sistemas produtivos modernos.
Conceito
Não faz sentido tratar o problema errado com a técnica certa, ou o problema certo com a técnica
errada.
Os problemas surgirão em função do contexto, das exigências do cliente ou dos objetivos e planos do próprio negócio. Ad-
ministrar é enfrentar conÀitos e tomar decisões no sentido de transformá-los em oportunidades.
É certo que a modelagem matemática não é capaz de abordar importantes problemas organizacionais. É igualmente correto
o entendimento de que a criatividade e a inovação são pilares fundamentais da sobrevivência organizacional. Apesar desses
limitantes é seguro a¿rmar:
Modelagem de Problemas 25
AÀrmação
Nos casos em que a modelagem quantitativa é aplicável, sua ausência muito provavelmente
implicará signiÀcativas perdas em recursos e oportunidades.
Um bom gestor entende que a primeira prioridade organizacional deve ser focada no ser humano. O maior patrimônio de
uma organização são suas pessoas. A chance de sucesso de um negócio é mensurada na justa capacidade de seus cola-
boradores alcançarem sucesso. Ainda que, reconhecidamente, seja na dimensão humana que se instala a maior esperança
da organização, é através de competência e trabalho que a dimensão humana realiza o que deve realizar. Cabe o destaque:
Conceito
Sem fazer certo as coisas, não há como fazer as coisas certas de modo economicamente
aceitável.
É exatamente a modelagem quantitativa a técnica habilitada para auxiliar o domínio e controle da ação racional no con-
texto da competência. No longo prazo, a sobrevivência organizacional depende profundamente da visão de futuro e das
estratégias de mercado aplicadas, contudo, o dia a dia pode e deve ser conduzido de forma racional e otimizada. Sem uma
fundamentação construída sobre excelentes decisões operacionais e táticas, a plataforma da criatividade e da visão empre-
endedora não encontra sustentação prática.
Dentro do entendimento da solução via Qualidade e Produtividade, os modelos quantitativos estariam mais fortemente asso-
ciados ao aspecto da Produtividade do que ao da Qualidade. Pensando assim, alguns até seriam tentados a arriscar a velha
e enganada máxima: “qualidade custa mais”. À Produtividade cabia a missão de redução do custo unitário. À Qualidade
caberia ¿xar o custo da exigência do cliente. Mais exigências determinariam “mais qualidade” e maior custo, justi¿cando-se
o entendimento de que qualidade poderia custar caro.
Edward Deming e outros gurus da qualidade como Philip Crosby, através de uma capacidade de visão bem adiante de seu
tempo, já na década de 1970 sugeriam a inadequação da dicotomia entre Qualidade e Produtividade, bem como sua insu-
¿ciência para resumir o objetivo da sobrevivência organizacional. Adicionalmente a¿rmavam que Qualidade não residia no
produto e sim no processo de gestão. Portanto, poderia ser gratuita e associada, por exemplo, aos custos do retrabalho ou
da denominada não qualidade.
26 Programação Linear e Fluxos em Redes
Conceito
Os modelos traduzem simpliÀcadamente a realidade e a substituem por essa tradução.
O conceito anterior ressalta que, de certa forma, os modelos recriam o mundo. Ao recriarem o mundo, não o podem fazer
de forma neutra. O entendimento, por exemplo, de que qualidade e produtividade são a garantia da sobrevivência organi-
zacional é uma tradução simplista do mundo. Uma visão simplista recria a realidade e contribui para o alcance de respostas
igualmente simplistas. Uma empresa pensada sob um ponto de vista restrito, realmente acaba reduzida ao que se imaginou.
De fato uma empresa é um sistema complexo e resiste a simpli¿cações milagrosas. Sua sobrevivência depende da pre-
servação sustentável de relações com o meio ambiente capazes de garantir a manutenção de suas atividades internas e
despertar a aceitação e a atração externa. A organização presta serviços ao meio ambiente e dele recolhe contrapartidas.
As contrapartidas devem alimentar as exigências dos subsistemas internos. Basicamente, os colaboradores internos e os
clientes externos são incentivados e ¿delizados na medida em que têm suas necessidades e expectativas atendidas através
da organização. A sobrevivência organizacional é, portanto, garantida em um processo dinâmico de contribuição para a
solução de problemas dos colaboradores internos, clientes diretos e indiretos da atividade e sociedade em geral.
Um dos problemas centrais da manutenção do equilíbrio dinâmico da organização é que as necessidades e expectativas de
colaboradores e clientes estão em constante mudança. Como o laço das exigências torna difícil acompanhar as transforma-
ções e di¿cílimo antecipá-las, o espaço da solução da sobrevivência é cada vez menor. Adicionalmente, o valor da atividade
prestada — o produto ou serviço oferecido — Àutua no mercado da oferta e procura e está sujeito às reformulações impostas
pelas inovações.
A dinâmica necessária para manter a sobrevivência organizacional mostra preponderante a necessidade do exame das
estratégias de compatibilização das respostas organizacionais diante das mudanças ambientais. Para tal, sugere-se um
modelo de modulação de respostas em seis áreas:
1. Conformidades de processos
A preocupação com os aspectos técnicos e conformidade de processos garante o espaço da e¿ciência e da redução de
custos. Essa prioridade contempla os aspectos racionais da produção ou serviço, de forma a produzir o máximo pelo menor
custo.
2. Adequação de produtos
A adequação de produtos e serviços garante o atendimento e ¿delização do cliente. Produzir o que deveria ser produzido
ofertando um produto ou serviço valorizado pelo cliente.
3. Gestão de oportunidades
A gestão de oportunidades é a função que busca harmonizar e equilibrar o investimento da energia organizacional. A inova-
ção é um dos principais motores de oportunidades. A antecipação de cenários é outro.
4. Impacto social positivo
O processo organizacional é justi¿cado pela solução de problemas do meio ambiente externo à organização. Além do mais,
uma organização deve solucionar problemas sem criar, no processo, outros problemas para a sociedade solucionar. O im-
pacto social positivo estabelece a ancoragem social com a redução de várias ameaças externas.
Modelagem de Problemas 27
5. Qualidade de vida
A qualidade de vida é a cola que liga a atividade produtiva à realização pessoal e pro¿ssional dos colaboradores.
6. Maximização da sinergia
O processo produtivo deve ser colaborativo e coordenado. As atividades colaborativas, quando bem coordenadas, produ-
zem resultados que não podem ser expressos pela soma das partes e que oferecem vantagens competitivas signi¿cativas.
Conclusões
Nos dias de hoje o tomador de decisão encontra bem mais dúvidas do que certezas em seu
processo de escolha. Manter a estabilidade e sustentabilidade de um processo organizacional
é tarefa crescentemente desaÀadora. O laço das exigências, entretanto, não parece sensibilizado
com as diÀculdades do gestor. A realidade é que os modelos quantitativos permitem a ampliação da
capacidade de os tomadores de decisão abordarem racionalmente aquilo que pertence ao contexto
racional. Os modelos quantitativos igualmente permitem ao tomador de decisão ampliar seus sentidos
e percepção, economizando energias para direcionar no rumo das oportunidades do negócio.
Referências BibliográÀcas
Ackoff, R. L. & Sasieni, M. W. (1971). Pesquisa Operacional. Rio de Janeiro: Livros Técnicos e Cientí¿cos.
Bertalanffy, L. (1968). General System Theory. Nova York: George Braziller.
Emery, F. (1969). Systems Thinking. Harmondsworth: Penguin.
Emshoff, J. R. (1970). A computer simulation model of the Prisoner’s Dilemma. System Research, 15 (4):304–317
LeDoux, J. (1996). O cérebro emocional. Rio de Janeiro: Objetiva LTDA.
Luenberger, D. G. (1984). Linear and Nonlinear Programming. Addison-Wesley.
Murphy F. H. & Panchanadam, V. (1997). Understanding Linear Programming Modeling Through an Examination of the Early
Papers on Model Formulation, Operations Research 45 (3):341-356.
Neisser, U. (1976). Cognition and Reality. São Francisco, W. H. Freeman.
Pribram, K. (1976). Problems Concerning the Structure of Consciousness. In G. Globus et al. (eds.) Consciousness and the
Brain. Nova York: Plenum.
Suntherland, J. W. (1975). Systems Analisys, Administration and Architecture. Nova York: Van Nostrand Reinhold Company.
Teuber, H. L. (1972). Unity and diversity of frontal lobe functions. Acta Neurobiologiae Experimentalis, 32:615-656.
Teuber, H. L. (1974). Why two brains. The neurosciences: Third study program: 71-74.
Capítulo 2
Modelos de Programação Linear
Objetivos
O presente capítulo objetiva:
2.1
Características dos Modelos de Programação Linear
Um Modelo de Programação Linear é um modelo matemático de otimização no qual todas as funções e restrições são
lineares.
Sujeito a:
A formulação anterior é denominada mista, uma vez que uma parte das variáveis do modelo pertence ao conjunto dos Reais,
enquanto um segundo grupo de variáveis pertence ao conjunto dos Inteiros. Serão adotadas as seguintes notações:
M = {1, 2, ..., m} o conjunto dos índices das restrições do problema;
N = {1, 2, ..., n} o conjunto dos índices das variáveis.
M1 ⊂ M e N1 ⊂ N;
A = {aij } ≡ matriz de restrições;
aj ≡ j-ésima coluna de A;
x = (xj ), j N ≡ vetor coluna de n componentes;
c = (cj ), j N ≡ vetor linha de n componentes;
d = (di ), i M ≡ vetor coluna de m componentes.
O termo otimizar é utilizado aqui para, genericamente, representar as possibilidades de maximizar ou minimizar a função objetivo.
• Formulações equivalentes
Além da forma mista, existem mais duas formas distintas de se desenvolver um PPL:
Otimizar Z = cx Otimizar Z = cx
Sujeito a: Sujeito a:
⎧≤⎫ Ax = d
⎨ ⎬
⎩≥⎭ x!0
x!0 d!0
As formulações são absolutamente equivalentes, pois através de operações elementares podem ser transformadas, confor-
me a Figura 2.1.
9 Operações elementares
Canônica Padrão
Um mesmo modelo de PL, composto pelo conjunto de equações anterior-
mente apresentadas, pode, sem qualquer perda em suas propriedades ma-
temáticas, ser reescrito em cada uma das formas básicas. Esse processo
de tradução é realizado através das três operações elementares que serão Mista
descritas a seguir:
Figura 2.1: Transformações de formulações
Operação 1: Mudança no critério de otimização, ou seja, transformação de maximização para minimização e vice-versa.
Essa mudança pode ser realizada através das seguintes propriedades:
Maximizar (f(x)) corresponde a Minimizar (-f(x)); e
Minimizar (f(x)) corresponde a Maximizar (-f(x)).
Operação 2: Transformação de uma variável livre (xj ), em variável não negativa. Nesse caso, a mudança exigirá a
substituição da variável em transformação por duas variáveis auxiliares, ambas maiores ou iguais a zero, mas cuja soma é
igual à variável original, ou seja:
x j = x 1j − x 2j e x 1j ≥ 0, x 2j ≥ 0
Operação 3: Transformação de desigualdades em igualdades e vice-versa. Nessa situação, temos dois casos a examinar:
9 Caso de transformação de restrições de menor ou igual em restrições de igualdade
Supondo a restrição que se segue:
Para transformá-la em uma restrição de igualdade podemos introduzir uma variável de folga xn+1 capaz de “completar” a
desigualdade, o que permite representar a restrição da seguinte forma:
Para transformá-la em uma restrição de igualdade, podemos introduzir uma variável de folga com valor negativo xn+1 . Essa
variável será capaz de atender a possível parcela correspondente à desigualdade, passando a representar a restrição da
seguinte forma:
32 Programação Linear e Fluxos em Redes
2.2
Fundamentos da Modelagem em Programação Linear
Modelar problemas através de Programação Linear pode se revelar, em alguns casos, uma tarefa desa¿adora. Não existe
uma agenda de cuidados que garanta sucesso para qualquer situação, contudo, é possível sistematizar os principais passos
que estarão presentes no processo.
Trata-se de uma graduação subjetiva que visa orientar o leitor em relação ao esforço supostamente necessário para a ela-
boração do modelo. Alguns dos exemplos que se seguirão, a rigor, são casos em que a variável de decisão deverá assumir
um valor inteiro, caracterizando-se como modelos de Programação Linear Inteira. Tais exemplos serão ressaltados com
a letra (I). Nos exercícios e exemplos, as abreviações mais frequentes são: (U) abreviação utilizada para uma unidade ge-
Modelos de Programação Linear 33
nérica de um insumo ou produto; (UM) para unidade monetária; (UT) para unidade de tempo; (hxh) utilizada para homem x
hora; (Kg) para quilo; (ton) para tonelada e (g) para grama.
Na maioria desses casos, a aproximação dos resultados contínuos para os valores inteiros mais próximos é válida. Quando
os valores inteiros são números muito pequenos, essa aproximação pode levar a valores não ótimos, situação em que se é
obrigado a recorrer às técnicas inteiras mais so¿sticadas de otimização combinatória.
2.3
Exemplos de Modelagem Matemática - Série Introdutória
No presente texto, a função objetivo do modelo de programação poderá ser representada por f(x) ou por z.
Análise do Modelo
O pedido do problema é programar (planejar) o quantitativo das ligas metálicas produzidas de forma a maximizar a recei-
ta alcançada. Receita é um valor obtido pela soma de toda a arrecadação obtida na atividade a realizar. A arrecadação,
no caso, é calculada pelo produto da quantidade de toneladas comercializadas de cada liga vezes o preço de venda.
A quantidade de metais é limitada, de forma que a produção de liga será igualmente limitada e sujeita a inequações
de valor menor ou igual. A quantidade consumida dos metais em cada liga é calculada pela proporção do metal na liga
vezes a quantidade de liga produzida.
Modelo de solução
Geralmente, o primeiro passo para a construção de um Modelo de Programação Matemática corresponde à de¿nição das
variáveis de decisão. Isso pode ser realizado com mais facilidade quando a função objetivo e as restrições estão diretamente
associadas às variáveis de decisão. No exemplo, o elemento de decisão controlável no modelo é a quantidade (em tone-
ladas) das ligas produzidas. Portanto, nada mais natural que a variável de decisão seja escolhida em resposta ao pedido,
expressando a quantidade em toneladas produzidas das ligas. Assim:
1. Escolha da variável de decisão
xi ≡ quantidade em toneladas produzidas da liga especial de baixa resistência (i = 1) e especial de alta resistência (i = 2).
Como a função objetivo deve ser expressa, sempre que possível, em função das variáveis de decisão, tem-se:
2. Elaboração da função objetivo Maximizar f(x) = 3 000x1 + 5 000x2
Receita bruta em reais em função da quantidade produzida em toneladas de ligas especiais de baixa e alta resistência.
Considerando que cada diferente metal possui um nível de estoque máximo, existem três restrições de disponibilidade de
material. Eventualmente, uma restrição pode englobar mais de uma exigência do enunciado, outras vezes uma exigência
poderá resultar em várias restrições tecnológicas para o modelo.
3. Formulação das restrições tecnológicas
a) Restrição associada à disponibilidade de cobre:
0,5x1 + 0,2x2 d 16
b) Restrição associada à disponibilidade de zinco:
0,25x1 + 0,3x2 d 11
c) Restrição associada à disponibilidade de chumbo:
0,25x1 + 0,5x2 d 15
4. Restrições de não negatividade, impondo a exigência do valor não negativo
x1 > 0, x2 > 0.
Obtendo-se, ¿nalmente, o problema completo:
Maximizar z = 3000 x1 +5000 x 2
Sujeito a :
0 ,5 x1 +0 , 2 x 2 ≤16
0 , 25 x1 +0 ,3 x 2 ≤11
0 , 25 x1 +0,5 x 2 ≤15
x1 ≥ 0 , x 2 ≥ 0
π
Solução GráÀca
Alta Resistência
Alta Resistência
x2
x2
48
48
44
44
40
40
36
z = 3000 x 1 +5000 x 2 36
32
32
28
28
24 Cobre
24 z = 3000 x 1 +5000 x 2
20
20
16 Zinco 16
12 Região Viável
12 Região Viável
8
Chumbo 8
4 Baixa Resistência
4 Baixa Resistência
x1
x1
4 8 12 16 20 24 28 32 36 40 44
4 8 12 16 20 24 28 32 36 40 44
Análise do Modelo
O pedido do problema é programar o quantitativo de produção de quatro diferentes tipos de móveis. O objetivo é maximizar
a receita. A quantidade dos insumos de cada móvel é limitada. Uma restrição de integralidade é introduzida implicitamente.
Modelo de solução
Neste exemplo, a escolha das variáveis de decisão segue o raciocínio do modelo anterior. O objetivo continua sendo maxi-
mizar a receita de uma produção cujos quantitativos relativos são passíveis de controle direto. A diferença corre por conta
do maior número de quantitativos (ou variáveis de planejamento), além do fato de que os valores de xi devem ser inteiros,
já que os produtos são indivisíveis.
1. Escolha da variável de decisão
xi ≡ quantidade em unidades a ser produzida do produto escrivaninha (i = 1), mesa (i = 2), armário (i = 3), prateleira (i = 4).
Com as variáveis de decisão escolhidas, devemos expressar a função objetivo como uma função dessas variáveis:
2. Elaboração da função objetivo
Maximizar f(x) = 100x1 + 80x2 + 120x3 + 20x4
Receita bruta em unidades monetárias em função do número de unidades produzidas de cada tipo de móvel.
3. Formulação das restrições tecnológicas
a) Restrição associada à disponibilidade de tábuas:
x1 + x2 + x3 + 4x4 d 250
b) Restrição associada à disponibilidade de pranchas:
x2 + x3 + 2x4 d 600
c) Restrição associada à disponibilidade de painéis:
3x1 + 2x2 + 4x3 d 500
4. Restrições de não negatividade e integralidade
{x1, x2, x3, x4} Z+ (conjunto dos inteiros positivos).
Análise do Modelo
O modelo aborda o planejamento de atividades. A questão a decidir é o número de diferentes atividades que poderão ser
realizadas de forma a não esgotar os recursos disponíveis e maximizar a satisfação do atleta. Os recursos estabelecem
limites que não podem ser ultrapassados, portanto serão associados a inequações de valor menor ou igual. A satisfação
é expressa pelo número de atividades realizadas, uma vez que elas são indistintas para o atleta. Uma restrição de inte-
gralidade é implícita, uma vez que não se admite um número fracionário de atividades.
Modelos de Programação Linear 37
Modelo de solução
Considerando que o problema se propõe a planejar o tipo de seção esportiva realizada e o objetivo é maximizar a quantidade
dessas seções, faz-se:
1. Escolha das variáveis de decisão
xi ≡ número de práticas de natação (i = 1) e de ciclismo (i = 2).
2. Elaboração da função objetivo
Maximizar f(x) = x1 + x2
Número total de seções de prática desportiva.
Em relação às restrições, o presente problema trata de energia, tempo e recursos ¿nanceiros, aspectos associados à prática
desportiva do rapaz.
3. Formulação das restrições tecnológicas
a) Restrição associada aos recursos ¿nanceiros do rapaz:
3x1 + 2x2 d 70
b) Restrição associada à disponibilidade de energia:
1500x1 +1000x2 d 80000
c) Restrição associada à disponibilidade de tempo:
2x1 + 2x2 d 18
4. Restrição de não negatividade e de integralidade
x1 > 0, x2 > 0; {x1, x2 } Z ou {x1, x2} Z+ (conjunto dos inteiros positivos).
Análise do Modelo
O modelo aborda o planejamento da produção de dois produtos através de uma máquina e com restrições de maté-
ria-prima. É possível que um enunciado não deixe explícita a função objetivo. Por se tratar de lucro, é implícito que a
função objetivo seja de maximização. O lucro é obtido pela diferença entre receita e despesa. No exemplo o lucro obtido
na comercialização de cada produto é fornecido no enunciado. As restrições tecnológicas não podem ser ultrapassadas,
portando devem ser associadas a inequações de valor menor ou igual. A questão a decidir é o número de unidades que
serão produzidas de cada tipo de produto, o que sugere a variável de decisão. A restrição de integralidade é implícita.
38 Programação Linear e Fluxos em Redes
Modelo de solução
1. Escolha da variável de decisão
xi ≡ quantidade de unidades do produto_1 (i = 1) e do produto_2 (i = 2) fabricadas.
2. Elaboração da função objetivo
Maximizar f(x) = 2x1 + 5x2
Número total de unidades monetárias obtidas como lucro pela venda dos produtos 1 e 2.
3. Formulação das restrições tecnológicas
a) Restrição associada à disponibilidade do tempo de máquina:
8x1 + 30x2 < 320
b) Restrição associada à disponibilidade de matéria-prima:
8x1 + 10x2 < 240
4. Restrições de não negatividade e integralidade
{x1, x2} Z+ (conjunto dos inteiros positivos).
Solução GráÀca
Produto 2 Produto 2
x2 x2
24 z = 2x1+5x 2
8 x1 +30 x 2 ≤ 320
20
16
12
z = 2 x 1 +5 x 2
8 8 x 1+10 x 2 ≤ 240
4 Região Viável Produto 1 4 Região Viável Produto 1
x1 x1
4 8 12 16 20 24 28 32 36 40 25
Análise do Modelo
A novidade introduzida pelo presente exemplo é a existência de uma restrição de acoplamento linear de variáveis.
Duas restrições tecnológicas estabelecem limites para a produção máxima de cada uma das camisas em um sentido
semelhante aos exemplos anteriores. Uma terceira restrição, referente à mão de obra, trata da produção simultânea
das duas camisas. O enunciado do problema fornece o termo independentemente da equação geral da reta de aco-
plamento, uma vez que a restrição é linear, através do ponto (400) em que a produção de camisas de manga longa
é nula. O segundo ponto necessário à determinação da equação vem da relação entre os coe¿cientes das variáveis
(a camisa de manga longa consome 50% a mais de mão de obra do que a de manga curta) 1 e 1+ 0,5 ou seja,1 e
3/2. A restrição de acoplamento é associada a uma equação de valor de¿nido pela reta, portanto, com restrição em
estrita igualdade.
Modelo de solução
1. Escolha da variável de decisão
xi ≡ quantidade de unidades de camisas de manga longa (i = 1) e de manga curta (i = 2) a serem fabricadas.
2. Elaboração da função objetivo
Maximizar f(x) = 5x1 + 3,5x2
Número total de unidades monetárias obtidas como lucro pela venda das camisas.
3. Formulação das restrições tecnológicas
a) Restrição associada à demanda de mercado:
x1 < 150
x2 < 300
b) Restrição associada ao acoplamento das variáveis:
3/2x1 + x2 = 400
4. Restrições de não negatividade e integralidade
{x1, x2} Z+ (conjunto dos inteiros positivos).
S 6 - O Problema da Dieta
☺
Suponha-se que, por motivos justi¿cáveis, uma dieta alimentar esteja restrita a leite desnatado, carne magra de boi, carne
de peixe e uma salada de composição bem conhecida. Sabe-se ainda que os requisitos nutricionais serão expressos em
termos de vitaminas A, C e D e controlados por suas quantidades mínimas (em miligramas), uma vez que são indispensáveis
40 Programação Linear e Fluxos em Redes
à preservação da saúde da pessoa que estará se submetendo à dieta. A Tabela 2.3 resume a quantidade de cada vitamina
em disponibilidade nos alimentos e a sua necessidade diária para a boa saúde de uma pessoa. Formular o programa para
a otimização dos recursos envolvidos:
Análise do Modelo
O problema da dieta é um modelo clássico de programação de uma restrição alimentar (via de regra, de redução ca-
lórica) que garanta certos nutrientes e controle outros. No caso, o objetivo é a minimização do custo necessário para
compor a dieta. Os nutrientes que devem ser garantidos são as vitaminas, portanto, tais restrições estarão associadas
a valores com sentido maior ou igual. A decisão é a quantidade de cada tipo de alimento que será programada na dieta.
Modelo de solução
1. Escolha da variável de decisão
xi ≡ quantidade de unidades do alimento do tipo i = (l – leite, c – carne, p – peixe, s – salada) a serem utilizadas na
dieta escolhida
2. Elaboração da função objetivo
Minimizar f(x) = 2xl + 4xc + 1,5xp + xs
Número total de unidades monetárias gastas com a dieta.
3. Formulação das restrições tecnológicas
a) Restrição associada à demanda de vitamina A:
2xl + 2xc + 10xp + 20xs > 11
b) Restrição associada à demanda de vitamina C:
50xl + 20xc + 10xp + 30xs > 70
c) Restrição associada à demanda de vitamina D:
80xl + 70xc + 10xp + 80xs > 250
4. Restrições de não negatividade
x1 > 0, x2 > 0.
Modelos de Programação Linear 41
Análise do Modelo
O objetivo do modelo é decidir a quantidade de cada um dos dois tipos de combustíveis que a re¿naria produz. Existem
restrições de escala de produção que serão representadas por inequações de valor maior ou igual. As demais restrições
são de continência e serão representadas por inequações de valor menor ou igual. A função objetivo é de maximização
e pode ser calculada em função da quantidade de cada combustível re¿nado.
Modelo de solução
1. Escolha da variável de decisão
xi ≡ Número de galões produzidos por tipo de combustível do tipo (i = G – gasolina, N – nafta)
2. Elaboração da função objetivo
Minimizar f(x) = 3xG + 4,5xN
Número total de unidades monetárias recebidas com a venda.
42 Programação Linear e Fluxos em Redes
Solução GráÀca
xN - Nafta xN - Nafta
600 600
x G ≥ 150
3 x G + 4,5 x N x G ≤ 600
550 550
500 500
450 450
0,4 x G + 0,5 x N ≤ 300
400 400
x N ≤ 375
350
350
z = 3 xG + 4,5 xN
300 300
250 250
Região Viável Região Viável
200 200
50 50
0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950
xG - Gasolina xG - Gasolina
Análise do Modelo
Pectina Cítrica Glucose Mirtilo
O esquema de mistura do mirtilo pode ser esclarecido
através do grá¿co ao lado.
Como o que se deseja é conhecer o número de barris
de cada tipo de mirtilo produzido, a variável de decisão
indicada é, naturalmente, o número de barris produzi-
do de cada tipo de suco de mirtilo.
Cada barril do tipo dark exige 5Kg de pectina, 4Kg de 5 kg - Pectina 15 kg - Pectina
Modelo de solução
1. Escolha da variável de decisão
xi ≡ Número de barris produzidos do tipo de Mirtilo Mel (i = D - dark, L- light).
2. Elaboração da função objetivo
Maximizar f(x) = 10xD + 25xL
Número total de unidades monetárias recebidas com a venda.
3. Formulação das restrições tecnológicas
a) Restrição associada à disponibilidade da pectina cítrica:
5xD + 15xL < 480
b) Restrição associada à disponibilidade da glucose:
4xD + 4xL < 160
c) Restrição associada à demanda de polpa de mirtilo:
35xD + 20xL < 1.190
4. Restrições de não negatividade
{x1, x2} Z+ (conjunto dos inteiros positivos).
44 Programação Linear e Fluxos em Redes
Solução GráÀca
Glucose
4 x D + 4 x L ≤ 160
Mirtilo
(26, 14) 5 x D + 15 x L ≤ 480 (26, 14)
Região Viável Região Viável
Observe-se que a solução inteira desse problema coincide com a solução linear relaxada, uma vez que todos os pontos
extremos da região viável são soluções inteiras.
O horário de trabalho de um enfermeiro é de oito horas. O enfermeiro que entra no turno 4 recebe uma grati¿cação de 50%
sobre o salário, e o enfermeiro que entra no turno 5 trabalha somente quatro horas. Elaborar o Modelo de Programação
Linear inteira que minimiza o gasto com a mão de obra.
Análise do Modelo
A maioria dos enfermeiros ganha o mesmo salário, sendo possível ponderar os salários dos enfermeiros dos turnos 4
e 5 na exata medida da diferença da compensação salarial. Portanto, pode-se considerar que minimizar o gasto com a
mão de obra será equivalente a minimizar o número total ponderado de trabalhadores.
Modelos de Programação Linear 45
Modelo de solução
1. Escolha da variável de decisão
xi ≡ número de enfermeiros que entra em serviço no início do turno i, (i = 1, 2, ..., 6).
2. Elaboração da função objetivo
Minimizar f(x) = x1 + x2 + x3 + 1,5x4 + 2x5 + x6
O objetivo será minimizar os enfermeiros trabalhando em um dia corrigindo-se o turno 4 em 1,5 e o turno 5 em 2,
para levar em conta a diferente despesa da contratação de enfermeiros nos turnos.
3. Formulação das restrições tecnológicas
a) Restrição associada aos 6 turnos:
9 1o Turno:
x6 + x1 > 50
9 2o Turno:
x1 + x2 > 60
9 3o Turno:
x2 + x3 > 50
9 4o Turno:
x3 + x4 > 40
9 5o Turno:
x4 + x5 > 30
9 6o Turno:
x6 > 20
4. Condições de integralidade e não negatividade
x 1, x 2, x 3, x 4, x 5, x 6 Z+ (conjunto dos inteiros positivos).
Análise do Modelo
O objetivo do imperador não é perfeitamente claro no enunciado. Supostamente deseja maximizar o número de convi-
dados envenenados, ainda que o veneno seja “caro”. Todavia, poderia desejar matar o número de inimigos declarado
economizando o gasto com os venenos. O modelo proposto seguirá atendendo a primeira suposição, deixando a segun-
da hipótese para ser solucionada como exercício.
Modelo de solução:
1. Escolha da variável de decisão
xij ≡ número de envenenados i, do sexo masculino (i = 1), do feminino (i = 2), pelo veneno j, veneno alfa (j = A),
veneno beta (j = B).
2. Elaboração da função objetivo
Maximizar f(x) = x1A + x2A + x1B + x2B
Número total de envenenados.
3. Formulação das restrições tecnológicas
a) Restrições de disponibilidade de veneno:
9 Tipo alfa:
12x1A + 6x2A < 500
9 Tipo beta:
6x1B + 3x2B < 2000
b) Restrição devida ao paladar:
12x1A + 6x2A
=3
6x1B + 3x2B
c) Restrições de demanda:
9 Homens envenenados:
x1A + x1B > 20
9 Mulheres envenenadas
x2A + x2B > 10
4. Condições de integralidade e não negatividade
{x1A , x2A , x1B , x2B } Z+ (conjunto dos inteiros positivos).
Observe-se que a restrição 3, item b, pode ser transformada em uma restrição linear, através da multiplicação de ambos os
termos pela expressão 6x1B + 3x2B, resultando em 12x1A + 6x2A = 18x1B + 9x2B.
Modelos de Programação Linear 47
Análise do Modelo
O objetivo é determinar o número de cirurgias de cada especialidade de forma a maximizar o retorno esperado.
Modelo de solução:
1. Escolha da variável de decisão
xij ≡ número de cirurgias i, Estéticas (i = E), Ortopédicas (i = O).
2. Elaboração da função objetivo
Maximizar f(x) = 30xE + 10xO
Receita Total.
3. Formulação das restrições tecnológicas
a) Restrições de disponibilidade de salas de consulta:
2xE + 2xO < 36
b) Restrição de disponibilidade no centro cirúrgico:
2xE + xO < 24
Solução GráÀca
Cirurgias Cirurgias
Estéticas xE Estéticas xE
24 24
22 Escala da Ortopedia 22
x0 ≥ 4
20 30 x E + 10 x 0 20
18 18
16 16
Consultas
14 2 x E + 2 x 0 ≤ 36 14
12 12 B
B
10 10 z = 30 x E + 10 x 0
8 C 8 C
Centro Cirúrgico
6 2 x E + x 0 ≤ 24 6
4 Região Viável Escala da Estética 4 Região Viável
A D x0 ≥ 2 A D
2 2
Cirurgias Cirurgias
Ortopédicas xO Ortopédicas xO
2 4 6 8 10 12 14 16 18 20 22 24 2 4 6 8 10 12 14 16 18 20 22 24
c) Restrições de demanda:
9 Cirurgias Estéticas: xE > 2 9 Cirurgias Ortopédicas: xO > 4
4. Condições de integralidade e não negatividade
{xE, xO } Z+ (conjunto dos inteiros positivos).
Um pequeno artesão de joias fabrica anéis e braceletes para vender no comércio de sua cidade. Pode vender, no atacado,
para uma loja de um shopping local. A loja vende, semanalmente, no máximo 30 anéis e no mínimo 8 braceletes. A loja se
interessa mais por braceletes do que por anéis, de modo que compra pelo menos duas vezes mais braceletes do que anéis.
Se o artesão produz somente anéis, ele consegue fazer 50 unidades na semana. Se ele se dedica somente a fabricar bra-
celetes, manufatura 40 unidades. Quando o artesão vende para a loja, seu lucro com os anéis é de R$ 20, e de R$ 30, com
os braceletes. Se o artesão desejar, contudo, pode vender todas as peças que conseguir fabricar em uma feirinha, desde
que venda conjuntos com um anel e um bracelete lucrando R$ 45. Elabore um Modelo de Programação Linear para otimizar
a fabricação e venda das peças do artesão. O modelo deve decidir quais peças serão fabricadas e onde serão vendidas de
forma a otimizar o lucro do trabalhador.
Análise do Modelo
Este modelo trata de uma decisão com duas diferentes funções-objetivo. As funções são exclusivas, ou seja, ou se usa
uma função objetivo vendendo toda a produção na feirinha, ou a outra função é utilizada para a venda no atacado para a
loja do shopping. Realmente são dois cenários diferentes onde o artesão vai escolher o que lhe oferecer o melhor lucro. A
produção do artesão é informada isoladamente para cada tipo de joia manufaturada. Em um modelo linear é lícito supor
que a restrição que relacionará o esforço de trabalho combinado entre diferentes joias seja linear. Portanto, a produção
isolada de cada tipo de joia representará um diferente ponto de uma restrição que deverá ser calculada.
Modelo de solução:
1. Escolha da variável de decisão
xij ≡ número de joias fabricadas i, Anel (i = A), Bracelete (i = B).
2. Elaboração da função objetivo
9 Função objetivo para a venda no atacado visando lucro total
Maximizar z1 = f(x) = 20xA + 30xB.
9 Função objetivo para a venda na feirinha visando lucro total
Maximizar z2 = f(x) = 22,5 (xA + xB).
3. Formulação das restrições tecnológicas gerais — produção do artesão (independe do local de venda)
4. Formulação das restrições tecnológicas do cenário de venda no atacado para a loja do shopping
a) Restrições de compra mínima e máxima da loja:
xA < 30
Modelos de Programação Linear 49
Solução GráÀca
Braceletes Braceletes
xB xB 2x A ≥ x B
40 40
z = 22,5( x A +x B ) 4 x A +5x B ≤ 200
36 36
x A ≤ 30
32 x A = xB 32
z = 20 x A +30 x B
28 28
24 24
20 20
16 4 x A +5x B ≤ 200
16
12 12 Região Viável
8 8 xB ≥ 8
4 Anéis 4
Anéis
xA xA
4 8 12 16 20 24 28 32 36 40 44 48 52 4 8 12 16 20 24 28 32 36 40 44 48 52
Solução para a venda na feirinha xa = xb = 200/9 com z = 1000. Solução para a venda na loja xa = 14,28 xb = 28,57 com z =
O caso é que não existe um número fracionado de objetos. O 1142,86. A solução inteira mais próxima é xa = 14 e xb = 28,
número inteiro mais próximo é xa = xb = 22, com lucro de 990. com z = 1120.
A melhor opção para o artesão é fabricar 14 anéis e 28 braceletes e os vender no atacado para a loja.
50 Programação Linear e Fluxos em Redes
S 13 - O Problema do Sítio
Um sitiante está planejando sua estratégia de plantio para o próximo ano. Por informações obtidas nos órgãos governa-
mentais, sabe que as culturas de trigo, arroz e milho serão as mais rentáveis na próxima safra. Por experiência, sabe que a
produtividade de sua terra para as culturas desejadas é a constante na Tabela 2.7.
Por falta de um local de armazenamento próprio, a produção máxima em toneladas está limitada a 60. A área cultivável
do sítio é de 200 000m2. Para atender às demandas de seu próprio sítio é imperativo que se plante 400m2 de trigo, 800m2
de arroz e 10.000m2 de milho. Pede-se formular o problema de otimizar a escolha das áreas a serem cultivadas em cada
diferente tipo de cultura.
Análise do Modelo
Neste exemplo, a formulação pode seguir, naturalmente, escolhendo diferentes variáveis de decisão. Uma opção seria
decidir diretamente sobre a quantidade de quilos a ser produzida em cada cultura ou área plantada. A opção adotada
será outra, decidindo-se a área plantada em cada cultura. Assim, as variáveis de decisão serão expressas em área
plantada e será necessário calcular na função objetivo a produção alcançada. O valor dos coe¿cientes da função obje-
tivo é encontrado do produto da produtividade por m2, resultado em quilo, com o lucro por quilo de produção. Algumas
inequações serão do tipo maior ou igual, no caso das demandas para o atendimento do próprio sítio. Outras inequações
de menor ou igual, como no caso da área plantada.
Modelo de solução
1. Escolha da variável de decisão
xi ≡ quantidade de unidades de área a serem plantadas na cultura do tipo (i = T- trigo, A-arroz, M-milho.)
2. Elaboração da função objetivo
Os coe¿cientes da função objetivo deverão ser calculados multiplicando-se a produtividade por quilo pelo lucro
previsto para cada quilo. O resultado do coe¿ciente será uma unidade monetária, no caso, o centavo.
Minimizar f(x) = 2,16xT + 1,26xA + 0,812xM 2,16 = 0,2 3 10,8; 1,26 = 0,3 3 4,2;
Lucro em centavos 0,812 = 0,4 3 2,03.
3. Formulação das restrições tecnológicas
a) Restrições associadas à demanda do Sítio (em unidade de área - m2):
xT > 400
Modelos de Programação Linear 51
xA > 800
xM > 10 000
b) Restrição associada à área total disponível:
xT + xA + xM < 200 000
c) Restrição associada ao armazenamento (em quilos)
Serão utilizados coe¿cientes da produtividade por unidade de área para obter um valor ¿nal em quilos:
0,2xT + 0,3xA + 0,4xM < 60. 000
4. Restrições de não negatividade
xT > 0, xA > 0, xM > 0
Uma cooperativa agrícola opera 3 fazendas que possuem produtividades aproximadamente iguais entre si. A produção total
por fazenda depende fundamentalmente da área disponível para o plantio e da água de irrigação. A cooperativa procura
diversi¿car sua produção, de modo que vai plantar este ano três tipos de cultura em cada fazenda, a saber: milho, arroz e
feijão. Cada tipo de cultura demanda por especí¿ca quantidade de água. Para reduzir o conÀito no uso das colheitadeiras,
que são alugadas pela cooperativa, estabeleceram-se limites de área de produção dentro de cada tipo de cultura. Para evitar
a concorrência entre os cooperados, acordou-se que a proporção de área cultivada seja a mesma para cada uma das fazen-
das. As Tabelas 2.8 e 2.9 resumem os dados tecnológicos. Pede-se a elaboração de um programa de produção que de¿na
a área de cada cultura que será plantada em cada fazenda, de modo a otimizar o lucro total da produção da cooperativa.
Análise do Modelo
Sugere-se para o presente modelo uma variável de decisão que in-
corpora duas condições: a quantidade de uma cultura i produzida em
Área da Fazenda 1
uma fazenda j. A ¿gura ao lado esclarece a variável. Portanto, a produ-
ção total de uma fazenda é a soma das parcelas alocadas para cada 1M x M A F
cultura. A escolha da variável decorre de que cada diferente cultura
encontra diferentes condições de água e de área disponível nas fazendas. Para considerar as condições especí¿cas do
problema, uma boa opção é embuti-las na variável de decisão adotada.
Modelo de solução
1. Escolha da variável de decisão
A variável de decisão está imposta no próprio enunciado.
xij ≡ quantidade de unidades de acres que, na fazenda i (i = 1,2,3), será destinada à cultura j [j = M (milho), A (arroz),
F (feijão)].
2. Elaboração da função objetivo
Maximizar f(x) = 5000 (x1M + x2M + x3M ) + 4000 (x1A + x2A + x3A ) + 1800 (x1F + x2F + x3F)
Soma dos lucros em cada cultura em cada fazenda.
3. Formulação das restrições tecnológicas
a) Restrições associadas à área de cultivo:
9 Fazenda 1
x1M + x1A + x1F < 400
9 Fazenda 2
x2M + x2A + x2F < 650
9 Fazenda 3
x3M + x3A + x3F < 350
b) Restrições associadas ao consumo de água:
9 Fazenda 1
5,5x1M + 4x1A + 3,5x1F < 1800
9 Fazenda 2
5,5x2M + 4x2A + 3,5x3F < 2200
9 Fazenda 3
5,5x3M + 4x3A + 3,5x3F < 950
c) Restrições associadas ao plantio por cultura:
9 Milho
x1M + x2M + x3M < 660
Modelos de Programação Linear 53
9 Arroz
x1A + x2A + x3A < 880
9 Feijão
x1F + x2F + x3F < 400
d) Restrições associadas à proporção de área cultivada:
x1M + x2M + x3M x1A + x2A + x3A x1F + x2F + x3F
= =
400 650 350
Uma re¿naria processa vários tipos de petróleo. Cada tipo de petróleo possui uma planilha de custos diferente, expressando
condições de transporte e preços na origem. Por outro lado, cada tipo de petróleo representa uma con¿guração diferente de
subprodutos para a gasolina. Na medida em que um diferente tipo de petróleo é utilizado na produção da gasolina, é pos-
sível a programação de condições especí¿cas de octanagem e outros requisitos. Esses requisitos implicam a classi¿cação
do tipo da gasolina obtida. Supondo que a re¿naria trabalhe com uma linha de quatro tipos diferentes de petróleo e deseje
produzir três diferentes tipos de gasolina denominados: Amarela, Azul e Superazul. Pede-se programar as misturas dos
tipos de petróleo atendendo às condições que se seguem nas Tabelas 2.10 e 2.11.
Análise do Modelo
O esquema que se segue é útil para o entendimento da variável de decisão que será adotada no modelo. Ele ressalta
a formação da gasolina Azul. O esquema mostra que cada tipo de gasolina é formado por uma mistura dos tipos de
petróleo existentes.
Petróleo tipo 1 1
Petróleo tipo 2 2
Gasolina
Azul
Petróleo tipo 3 3
Petróleo tipo 4 4
Modelo de solução
1. Escolha da variável de decisão
xij { número de barris de petróleo do tipo j, j = 1,2,3,4, que serão destinados à produção da gasolina i, (i = A – ga-
solina Amarela, Z – gasolina Azul, S – gasolina Superazul).
2. Elaboração da função objetivo
Maximizar f(x) = 22 (xA1 + xA2 + xA3 + xA4) + 28 (xZ1 + xZ2 + xZ3 + xZ4 ) + 35 (xS1 + xS2 + xS3 + xS4 ) - 19 (xA1 + xZ1 +
xS1 ) - 24 (xA2 + xZ2 + xS2 ) - 20 (xA3 + xZ3 + xS3 ) - 27 (xA4 + xZ4 + xS4 )
Soma do lucro resultante da venda dos diversos tipos de gasolina, abatidos os custos dos diversos tipos de petróleo
utilizados.
3. Formulação das restrições tecnológicas
a) Restrições associadas à quantidade de petróleo disponível:
9 Tipo 1
xA1 + xZ1 + xS1 d 3500
9 Tipo 2
xA2 + xZ2 + xS2 d 2200
9 Tipo 3
xA3 + xZ3 + xS3 d 4200
9 Tipo 4
xA4 + xZ4 + xS4 d 1800
b) Restrições associadas às especi¿cações da mistura:
9 Para a gasolina Superazul
xS1 d 0,3 (xS1 + xS2 + xS3 + xS4 )
Modelos de Programação Linear 55
Uma re¿naria produz dois tipos de óleo, I e II, que passam por re¿no em quatro centros de processamento, conforme a
Figura 2.2. As linhas do grá¿co indicam o Àuxo normal de re¿no para os óleos do tipo I e II. Havendo capacidade ociosa, é
possível processar o tipo de óleo I através do esquema alternativo representado pela linha tracejada.
Fluxo I Ordinário
Óleo I
Centro 2
Fluxo Tipo 1
Centro 1 Centro 4
Fluxo Tipo 2 Óleo II
Centro 3
Óleo I
Fluxo I Alternativo
No esquema de produção, sabe-se que a distribuição custo versus capacidade de produção é a descrita na Tabela 2.12.
A Tabela 2.13 resume o custo da matéria-prima o preço de venda e a máxima venda diária dos tipos de óleos.
Os centros 1 e 4 operam 16 horas por dia. Os centros 2 e 3 operam 12 horas por dia. A re¿naria possui a capacidade de
transportar somente 2.500 metros cúbicos por dia, pois seu oleoduto está em manutenção. Formular matematicamente o
problema de otimizar a produção dos dois tipos de óleo.
Análise do Modelo
O problema possui um Àuxo que se desdobra em dois. Assim, será necessário formular uma variável de decisão que
represente a primeira etapa de processamento nos centros 1, 2 e 4, e duas variáveis de re¿no que atravessem os cen-
tros 2 e 3, respectivamente, e que somadas sejam o Àuxo da primeira etapa (consideradas as perdas). Nesse problema
também existe uma perda de Àuxo acumulativa.
Modelo de solução
1. Escolha da variável de decisão
xi { número de metros cúbicos do óleo do tipo i (i = I para o óleo do tipo I), (i = II para o óleo do tipo II) re¿nados dia-
riamente. O esquema de re¿no deverá ser expresso na variável de decisão, assim, a variável xI será desdobrada em
uma soma de duas parcelas: a parcela do Àuxo tipo I normal, xI N, e a parcela obtida via Àuxo tipo I alternativo, xI A:
Centro 2:
Centro 3:
Centro 4:
d) Restrição de transporte
(0,9)(0,95)(0,85)(0,8) xI N + (0,9)(0,95)(0,85)(0,75)xI A + (0,9)(0,85)(0,8)xII d 2500
e) Restrição de venda
9 Óleo tipo I
(0,9)(0,95)(0,85)(0,8) xI N + (0,9)(0,95)(0,85)(0,75)xI A d 1700
9 Óleo tipo II
(0,9)(0,85)(0,8) xII d 1500
3. Restrições de não negatividade
xI t0, xNI t0, xIA t0
4. Elaboração da função objetivo
Denominando por:
Despesa:
9 Matéria-prima
9 Custos Operacionais:
Centro 1:
58 Programação Linear e Fluxos em Redes
Centro 2:
Centro 3:
Centro 4:
Uma fábrica produz panelas de metal médias e grandes a partir de elementos circulares com diâmetros de 0,25 e 0,40m,
respectivamente. A primeira operação para obter as panelas consiste em cortar os elementos circulares em chapas de
dimensão de 1,40 x 0,50m. Os elementos planos circulares são transformados em panelas em uma segunda operação de
estamparia. As máquinas de corte podem ser programadas para realizarem quatro diferentes tipos de corte, como mostra a
Figura 2.3. A fábrica deseja uma produção diária mínima de 500 panelas pequenas (obtidas do elemento circular de diâmetro
0,25) e 350 grandes (obtidas do elemento circular de diâmetro de 0,40). Os custos em reais por chapa pelo uso dos padrões
de corte de 1 a 4 são, respectivamente, 1, 2, 3, 4. Elaborar o Modelo de Programação Linear que planeje a produção de
modo a minimizar o custo com o uso das chapas.
Análise do Modelo
Nos problemas em que a tomada de decisão consiste na escolha do número de vezes que uma con¿guração será apli-
cada ou executada, a matriz de restrição, também denominada matriz dos termos tecnológicos, deve ser calculada a
partir das con¿gurações. Por exemplo, caso o padrão 1 seja utilizado uma vez, produzirá oito panelas obtidas de chapas
de diâmetro 25cm. Consequentemente, se a variável de decisão for o número de chapas cortadas segundo o padrão 1,
a cada corte desse padrão a matriz de termos tecnológicos fornecerá oito panelas pequenas.
Modelo de solução
1. Escolha da Variável de Decisão
xi { quantidade de chapas cortadas de acordo com o padrão i, (i = l, 2, 3, 4).
2. Elaboração da função objetivo
Minimizar f(x) = x1 + 2x2 + 3x3 + 2x4
Número total de reais gastos com a produção.
3. Formulação das restrições tecnológicas
a) Restrição associada à demanda de panelas pequenas (oriundas de chapas de 0,25m de diâmetro):
8x1 + 4x2 + 2x3 t 500
b) Restrição associada à demanda de panelas grandes (oriundas de chapas de 0,5m de diâmetro):
x2 + 2x3 + 3x4 t 350
4. Restrições de não negatividade e integralidade
x1 t0, x2 t0, x3 t0, x4 t0 e inteiros.
Uma fábrica necessita cortar uma ¿ta de aço de 12cm de largura em tiras de 2,4cm, 3,4cm e 4,5cm de largura. As necessi-
dades globais das tiras estão expressas na Tabela 2.14.
Formular o problema que permite otimizar o consumo da ¿ta a ser cortada minimizando a perda de material.
60 Programação Linear e Fluxos em Redes
Análise do Modelo
O presente caso é uma variante do caso do problema 17, todavia, não se conhecendo previamente os possíveis padrões
de corte nem tampouco o custo associado a cada padrão. Portanto, os padrões de corte devem ser elaborados e a perda
associada a cada padrão deve ser calculada como parte da formulação.
12 cm
Modelo de solução
X5
Comprimento do
Tira Tipo I Corte no padrão 5
x3 + 2x5 + x7 t 8000
Chamando por x8, x9 e x10 (em metros) as folgas das restrições a, b e c, respectivamente, tem-se:
x1 t 0, x2 t 0, x3 t 0, x4 t 0, x5 t 0, x6 t 0, x7 t 0, x8 t 0, x9 t 0, x10 t 0 e inteiros.
Uma empresa possui quatro equipes de montagem que foram treinadas para montar três diferentes tipos de produtos. Cada
equipe possui um desempenho especí¿co em tempo na montagem (em minutos) dos produtos, conforme resumido no
Quadro 2.1.
O produto montado pelas equipes é avaliado em função de sua agregação de valor, con¿abilidade, eliminação de futuros
retrabalhos, e outros elementos, conforme o Quadro 2.2.
62 Programação Linear e Fluxos em Redes
Se cada equipe de montagem possui 1.800 minutos de trabalho útil na semana, e sendo necessário produzir, no mínimo, 90
unidades do produto 1, 160 do produto 2, 110 do produto 3, formule o Modelo de Programação Linear que otimiza o emprego
das equipes de montagem.
Análise do Modelo
A função objetivo é implícita, mas pode ser naturalmente de¿nida no sentido de maximizar o valor agregado aos produ-
tos. A programação da produção induz que a decisão seja o quanto de cada produto será realizado em cada equipe de
montagem.
Modelo de solução
1. Escolha da Variável de Decisão
xij { quantidade do produto i (i = 1,2,3) que será realizada pela equipe j (j = 1,2,3,4).
2. Elaboração da função objetivo
Maximizar f(x) = 6x11 + 4x12 + 4x13 + 7x14 + 7x21 + 10x22 + 8x23 + 10x24 + 8x31 + 10x32 + 10x33 + 11x34
Total de valor agregado aos produtos.
3. Formulação das restrições tecnológicas
a) Restrição associada ao tempo disponível de trabalho para as equipes:
9x11 + 4x21 + 9x31 < 1800
5x12 + 10x22 + 12x32 < 1800
3x13 + 7x23 + 15x33 < 1800
11x14 + 12x24 + 16x34 < 1800
b) Restrição associada à demanda dos produtos:
x11 + x12 + x13 + x14 < 90
x21 + x22 + x23 + x24 < 160
x31 + x32 + x33 + x34 < 110
4. Restrições de integralidade
{x11, x12, x13, x14, x21, x22, x23, x24, x31, x32, x33, x34 } Z+ (conjunto dos inteiros positivos).
Modelos de Programação Linear 63
Uma pequena metalúrgica produz, sob encomenda, ligas especiais. O processo aproveita o teor metálico de minério contido
em refugos especiais de mineradoras. Os refugos são misturados em proporções adequadas e, quando necessário, enrique-
cidos até que se transformem em material adequado à fundição da liga. A Tabela 2.16 exibe a composição de dois refugos
que poderão ser utilizados para compor uma liga especial de tálio. As exigências do material de fundição que forma a liga
são descritas na Tabela 2.17.
O enriquecimento ocorre quando os refugos misturados não contêm as unidades metálicas necessárias (por tonelada) exi-
gidas pela liga. Nesse caso é possível adicionar elementos metálicos puros diretamente sobre o refugo, aumentando seu
teor e transformando-o em um material adequado. Os metais são adicionados a granel. Seu peso é desprezível na formação
da liga, sendo possível expressar a quantidade diretamente em Unidades (U) por tonelada de liga, considerando seu custo
adicional, conforme a Tabela 2.18.
Considerando que uma tonelada de material de fundição adequado é transformada em 200 quilos de liga, programar a pro-
dução de forma a, otimizando os custos, produzir pelo menos 600 quilos de liga.
Análise do Modelo
O problema consiste em misturar minérios até que uma determinada quantidade de metais esteja disponível por tonela-
da de minério de fundição. Quando isso não for alcançável através de uma mistura de refugos, o metal necessário deve
ser acrescentado diretamente à mistura até que se alcance o percentual necessário. Observa-se que o refugo tipo 3 se-
quer possui os metais desejados. O objetivo é aproveitar, a baixo custo, os metais necessários e existentes nos refugos.
64 Programação Linear e Fluxos em Redes
Modelo de solução:
1. Escolha da Variável de Decisão
xi { Quantidade do refugo i (i = 1 – tipo 1, i = 2 – tipo 2, i = 3 – tipo 3) que será usada para formar minério de fundição.
yi { Unidades do metal puro i (i = 1 – tálio, i = 2 – prata, i = 3 – mercúrio) que serão adicionadas na mistura.
2. Elaboração da função objetivo
Maximizar f(x) = x1 + 5x2 + 0,01x3 + 0,25y1 + 0,05y2 + 0,125y3
Total de valor agregado aos produtos.
3. Formulação das restrições tecnológicas
a) Restrição associada ao teor de tálio na mistura:
2.4
Exemplos de Modelagem Matemática - Série Avançada
Solução:
xij { número de vezes que o padrão i (i = 1 – padrão 1, i = 2 – padrão 2, i = 3 – padrão 3) de corte será aplicado
sobre a tira j (j = A – tira de 15cm x 2000cm; j = B – tira de 14cm x 3000cm). Observar que x2B não existe.
pij { perdas da con¿guração i aplicada na tira j - p1A= 1; p1B = 0; p2A= 0; p3A= 2; p3B= 1.
a) Restrições de demanda:
9 Placa 2 x 4 cm2
9 Placa 4 x 11 cm2
Uma clínica de repouso recebe cerca de 50 pacientes em um ¿m de semana para exercícios e desintoxicação alimentar. Um
dos pontos fundamentais do planejamento da clínica é a escolha das dietas e preparação das refeições. Devido à escala
de consumo de alimentos, a clínica compra, normalmente, no atacado. A Tabela 2.19 descreve a constituição nutritiva das
refeições que poderão ser preparadas segundo as dietas escolhidas para os próximos grupos de visitantes.
66 Programação Linear e Fluxos em Redes
Para a execução do programa de treinamento, a clínica deve escolher uma dieta dentro de cada grupo (dejejum, almoço e
jantar), para dar condições ao cozinheiro de preparar as refeições.
Pedido 1: Sabendo-se que existem dois programas de treinamento, e que para cada programa as necessidades em nutrien-
tes diárias por pessoa está abaixo relacionada, programar a compra de ingredientes de forma a minimizar os gastos com
alimentação. Os dois programas de treinamento estão resumidos na Tabela 2.21.
TABELA 2.21: Demanda dos programas de treinamento. Quantitativos em gramas, vitaminas em unidades e mine-
rais em miligramas.
Programa de Trei- Carboidra- Pessoas Matri-
Proteínas Minerais Vitaminas Fibras
namento tos culadas
30 – A
Programa 1 150 200 400 250 20
40 – C
20 – A
Programa 2 180 220 500 300 30
60 – C
Modelos de Programação Linear 67
Pedido 2: Por um problema logístico, sabe-se que não é desejável preparar menos de 10 refeições com base na dieta do
tipo 4, caso ela seja escolhida. Reformular o problema anterior levando-se isso em conta.
Pedido 3: Após uma rápida análise do nutricionista, descobriu-se que a dieta 1 e a dieta 9 eram incompatíveis, e a dieta 2
deveria ser acompanhada da dieta 8. Reformular o pedido 1 levando em conta a nova informação.
Análise do Modelo
Os problemas de programação linear mais complexos provavelmente possuirão, além das variáveis de decisão, variáveis
lógicas de modelagem. O presente caso exempli¿ca essa situação. Por outro lado, a complexidade do modelo também
pode ser expressa na possibilidade de mais de uma interpretação sobre a de¿nição dos objetivos do modelo. O exemplo
atual explora as possibilidades de de¿nição de diferentes objetivos através de três diferentes pedidos de formulação.
A demanda dos programas deverá ser atendida por três refeições diárias, uma dentro de cada grupo. Para o caso da
proteína, por exemplo, as 3.000g + 5.400g = 8.400g serão atendidas com as seguintes refeições:
60y1 + 80y2 + 80y3 + 100y4 + 40y5 + 50y6 + 40y8 + 80y9 t 8.400
Considerando o conjunto dos nutrientes /, /= {Pr, Cr, Mi, Vi, Fi} e utilizando a notação matricial tem-se:
9 2
∑
i =1
aij yi ≥ ∑N
s =1
sj , j ∈Λ
∑b y ,
i =1
ij i j ∈ Ω . Daí:
9
Minimizar f(x) = ∑ ∑b y
j∈Ω
cj
i =1
ij i
Uma agência de casamento procura promover a melhor união possível entre os casais de seu banco de dados, com R =
{1,...,r} homens e M = {1,...,m} mulheres. A solução do casamento ideal deve atender certos critérios. O índice de compatibi-
lidade ¿nal, que é calculado levando em conta várias condicionantes, é o fator preponderante para a tomada de decisão. O
sistema de dados da agência pode obter a adequação feminina fij, ou seja, a variável que quanti¿ca o grau de adequação da
mulher i ao homem j. De forma semelhante, também é possível calcular a adequação masculina hij, que expressa a situação
inversa. A metodologia da agência aceita formar um casal quando os valores de f e h estão entre determinados limites. A
formação do casal é cada vez mais adequada na medida direta do crescimento da soma desses fatores. Além desse indi-
cador, existe uma signi¿cativa condicionante econômica a ser levada em conta: a casa própria. As experiências da agência
dizem que um casal deve ter interesse pela mesma casa, ela estar disponível para o casal e seu preço estar dentro do poder
aquisitivo do casal. Existem W = {1,..., w} casas no banco de dados. Formular o problema de maximizar o número de uniões
estáveis dentro do banco de dados.
Análise do Modelo
Os problemas de programação linear mais complexos podem permitir uma ampla liberdade de intepretação e formula-
ção. Além das variáveis e função objetivo, as próprias restrições do problema podem ter seu grau de rigidez em aberto,
dependendo da interpretação que se ofereça ao modelo. O exemplo atual realiza uma interpretação especí¿ca do “sig-
ni¿cado” da necessidade de uma casa disponível para o casal, considerando que dois casais do cadastro não podem
ser alocados a uma mesma casa do banco de dados da empresa. Quando não for possível alocar uma casa ao casal,
o casal será considerado inviável. A interpretação poderia ser outra, apenas penalizando a inexistência de uma casa
disponível e adequada, mas obrigando o interesse pela mesma casa.
Modelo de solução
x ijk ⎧⎨ − i j k ⎫
⎬ i = 1,...,m; j = 1,...,r ; k = 1,..., s
⎩ − ⎭
Modelos de Programação Linear 71
∑∑ = =
≤ =
∑∑ = =
≤ =
c) Restrição associada à restrição da capacidade ¿nanceira. A condição pode ser expressa como:
∑∑ (
= =
+ w )≥ =
d) Restrição associada à disponibilidade da casa. A condição garante que dois casais não são designados a uma
mesma casa:
∑∑ = =
≤ =
3. Função objetivo
Maximizar f(x) = ∑∑ ∑
= = =
Número total de uniões
4. Restrições de não negatividade
72 Programação Linear e Fluxos em Redes
Um laboratório biológico está construindo uma sala de desinfeção e segurança para proteger a entrada de suas instalações
mais perigosas. A sala é composta de três câmaras visando aumentar a segurança, conforme Figura 2.7.
Espaço
Câmara 1 Câmara 2 Câmara 3 de Alocação
Unidade de
Desinfecção
Acesso àa Acesso
área aos Área de
Externa Laboratórios Atuação
Forro
Efetiva
Perfil
Possíveis Posições
de Alocação das
Planta
Unidades nas Câmaras
A ¿nalidade da sala é isolar os agentes biológicos como vírus e bactérias que são manipulados em instalações hermetica-
mente fechadas permitindo, contudo, o trânsito dos pesquisadores e demais materiais. A desinfeção é basicamente realiza-
da através de uma so¿sticada unidade de irradiação. Como essa unidade é extremamente sensível e o objeto em trânsito
pode ter um comportamento inesperado, existe uma probabilidade de falha da atuação de uma unidade isolada de desinfe-
ção. Essa probabilidade varia basicamente em função da câmara em que a unidade esteja localizada. Existem restrições de
espaço e peso para a distribuição das unidades de desinfeção no teto das câmaras. Os custos das unidades também variam
por câmara, devido à variação de temperatura e isolamento de umidade, tudo conforme a Tabela 2.22.
Formular o problema de minimizar a probabilidade da ocorrência de um trânsito na sala de desinfeção sem que ocorra
uma perfeita desinfeção, considerando-se inaceitável mais que 3% na probabilidade de que uma câmara isolada falhe na
desinfeção.
1. Escolha da variável de decisão
xj { número de unidades de desinfeção alocadas na câmara j, (j = 1, 2, 3).
x
pj j { probabilidade de falha (j = 1, 2, 3).
2. Formulação das restrições tecnológicas:
a) Restrições de espaço:
2,5x1 + 4x2 + 3x3 d 60
Modelos de Programação Linear 73
b) Restrição de peso:
150x1 + 130x2 + 100x3 d 1500
c) Restrição de custo:
30x1 + 70x2 + 40x3 d 600
d) Restrição de falha de uma câmara com p1 = 0,2; p2 = 0,15; p3 = 0,3.
x
pj j d 0,03, j = 1,2,3
3. Elaboração da Função objetivo
x x x
Minimizar f(x) = p11 p22 p33
Probabilidade de falha total
4. Condições de integralidade e não negatividade
x1 , x2 , x3 Z+ (conjunto dos inteiros positivos)
5. Transformações de linearização
x
pj j d 0,03 , j = 1,2,3 o (ln pj) xj d ln(0,03)
3
f(x) = p11 p22 p33 o ln (f(x) ) =∑ ( ln pj ) xj
x x x
j =1
Um avião de transporte possui quatro compartimentos para carga, a saber: compartimento frontal, compartimento central,
compartimento da cauda e porão de granel. Os três primeiros compartimentos só podem receber carga em containers, en-
quanto o porão recebe material a granel. A Tabela 2.23 resume a capacidade do aparelho.
Objetivando o equilíbrio de voo, é indispensável que a distribuição da carga seja proporcional entre os compartimentos. Para
carregar o avião existem três tipos de containers e dois tipos de cargas a granel. Os dois tipos de carga a granel podem ser
transportados conjuntamente. A distribuição das cargas deve atender às restrições de capacidade do avião.
74 Programação Linear e Fluxos em Redes
Elaborar o Problema de Programação Linear que otimize a distribuição da carga de forma a maximizar o lucro do voo do
cargueiro.
∑ ≤
12x4j + 1,7x5j d 7, j = 4
b) Restrições de espaço
35, j = 1
0,5x1j + x2j + 0,25x3j d 55, j = 2
30, j = 3
x4j + x5j d 30 j = 4 (*) os coe¿cientes volumétricos dos granéis são considerados iguais a 1, por segurança.
∑p x
i= 1
1 i1 ∑p x
i= 1
2 i2 ∑p x
i= 1
3 i3
1,2 x 44 + 1,7 x54
= = =
5 7 6 7
Modelos de Programação Linear 75
Cabe aqui observar que a restrição do item c carece de limites de tolerância, uma vez que as variáveis envolvidas no so-
matório são inteiras, o que tornaria, possivelmente, inviável o atendimento simultâneo desse conjunto de restrições. Essa
tolerância é perfeitamente justi¿cada na visão prática do carregamento de aeronaves. Nesse caso uma das possibilidades
de representar a restrição seria incluir parâmetros de tolerância w¿ que serão estipulados pelo analista considerando, na
prática, valores adequados para as variáveis w¿ , i = {1,..,4}.
3 3 3
∑p x
i =1
1 i1 ∑p
i =1
2 xi 2 ∑p x
i =1
3 i3
1, 2 x 44 + 1,7 x 54
+ xf1 = + x f2 = + xf 3 = + xf4
5 7 6 7
Cada auditor contratado como funcionário do banco, apesar de formado e aprovado em concurso, tem que ser treinado por
um mês antes de ser habilitado a atuar plenamente em sua função. Nesse treinamento são utilizados auditores experientes
do próprio banco que, deixando de trabalhar na auditoria normal, dedicam 100 horas para formar um auditor em treinamento.
Um auditor do banco trabalha 150 horas por mês. Em 1o de fevereiro, o banco dispõe de 60 auditores experientes. O programa
de contratação terá início em 1o de março.
Sabe-se também que o mercado de trabalho para os auditores está muito instável, de forma que 10% dos pro¿ssionais
experientes do banco deixam, a cada mês, o emprego em busca de melhores salários no mercado. Um auditor experiente
recebe do banco cerca de R$ 2.000,00 por mês, enquanto o auditor em treinamento só recebe uma ajuda de custo
de R$ 150,00. Quando o número de auditores excede as necessidades, a carga de trabalho é reduzida, mas não são feitas
demissões devido ao elevado custo do processo trabalhista. A empresa prefere deixar que a evasão equilibre a força de
trabalho. Formular o problema objetivando minimizar os custos de operação do sistema de auditoria.
76 Programação Linear e Fluxos em Redes
DesaÀo a ser solucionado pelo leitor: Reformule o problema para o caso de a empresa Burocráticos passar a exigir
uma garantia mínima de 3 meses de emprego para contratar seus auditores e pague um incentivo mensal (somado ao
salário) proporcional a K vezes o número de meses trabalhados na empresa, para o período que ultrapassar 3 meses
de trabalho na Burocráticos.
Solução – Fase 1
1. Escolha da variável de decisão
xj { quantidade de auditores em treinamento no mês j, (j = 0, ..., 6) – o programa inicia no mês anterior ao mês 1.
i será utilizado como um índice auxiliar, i = 1, ..., 6.
di { vetor demanda = (7.000, 8.000, 10.000, 11.000, 7.000, 11.000)
2. Formulação das restrições tecnológicas
a) Restrições de demanda:
xo = 60
i −1
150 ∑ 0 ,9
j =0
i− j
xj − 100 x i ≥ d i i = 1,..., 6
Em termos de modelagem, o número de auditores experientes que inicializa o processo de planejamento pode ser conside-
rado como treinado em fevereiro. Um auditor treinado, ou seja, experiente, incorpora-se ao contingente de evasão ao ¿m do
mês. Em resumo, 10% dos pro¿ssionais treinados deixam, ao ¿m de cada mês de trabalho, a empresa. Para ¿ns de força
de trabalho serão contados os auditores treinados como auditores experientes. É necessário lembrar que eles só recebem
uma ajuda de custo nesse primeiro mês de trabalho.
b) Restrições de capacidade de treinamento:
Considerando a restrição a, que estabelece as condições iniciais para o número de auditores seniores, então:
i −1
∑ 0 ,9
j=0
i− j
x j ≥ 1,5 x i i = 1,..., 6
3. Função objetivo
6 i −1
Minimizar f(x) = ∑ 2000 ( ∑ 0 ,9 i − j x j ) + 150 x i
i =1 j=0
Modelos de Programação Linear 77
Solução – Fase 2
1. Escolha da variável de decisão
As de¿nições da solução 1 são mantidas e acrescentadas:
yi { número de auditores juramentados contratados para trabalhar no mês i, i = 1, ..., 6
2. Formulação das restrições tecnológicas
a) Restrições de demanda:
xo = 60
i −1
150 ∑ 0 ,9
j=0
i− j
x j +y i − 100 x i ≥ d i i = 1,... 6
∑ 0 ,9
j=0
i− j
x j ≥ 1,5 x i i = 1,..., 6
A área de Àoresta a ser coberta pelo combate ao fogo é de 3.000.000m2, envolvendo a frente de fogo (para paralisação do
avanço do dano), áreas já queimadas que necessitam de rescaldo (para proteção de animais e segurança contra recrudes-
cimento) e áreas de acero (proteção preventiva indispensável). Nas bases de apoio estão disponíveis 14 pilotos de avião e
10 de helicóptero, bem como 22 operadores especializados em combate aéreo de fogo. Formular o problema objetivando
minimizar os custos da operação.
Solução – Fase 1
1. Escolha da variável de decisão
xi { número de aparelhos a serem empregados i, (i = 1 – Helicóptero; i = 2 – Avião Tanque; i = 3 – Avião B67).
2. Formulação das restrições tecnológicas
a) Restrição de demanda da área de fogo:
Como a operação deve ser concluída em três horas pode-se imaginar um horizonte de planejamento ótimo para
uma hora sendo repetido três vezes, então:
15x1 + 40x2 + 85x3 t 1000000
b) Restrição de disponibilidade de mão de obra:
9Helicóptero
2x1 d 10 (pilotos)
9Aviões
2x2 + 2x3 d 14 (pilotos)
x2 + 3x3 d 22 (operadores)
3. Elaboração da função objetivo
Minimizar f(x) = 2000x1 + 4000x2 + 10000x3
4. Condições de integralidade e não negatividade
xj Z+, j = 1,2,3
∑∑x
i =1 j =1
ij =k
c) Restrição de disparo que evita que um alvo seja designado a mais de uma arma:
n
∑x
i =1
ij ≤ 1, j = 1,..., m
d) Restrição de disparo que evita que uma arma seja designada a mais de um alvo:
m
∑ x ≤ 1,
j= 1
ij i = 1,... , n
Maximizar f(x) =
80 Programação Linear e Fluxos em Redes
Uma rede de televisão resolveu estabelecer preços competitivos para o tempo de comercial em certos horários. Existem 3
horários para a propaganda em promoção na rede: horário nobre noturno (horário 1), horário da tarde em ¿ns de semana
(horário 2) e horário da tarde em dias da semana (horário 3). O preço de um módulo mínimo de propaganda em cada horário
é p1, p2 e p3, respectivamente. A rede vende grandes espaços de tempo dentro da programação, denominados pacotes pro-
mocionais. Os anunciantes desejam entrar no programa de pacotes de propaganda promocional porque podem obter, com
isso, melhores preços unitários. Um pacote representa um esquema de desconto visando à economia de escala. Existem 3
faixas de preços sendo praticadas nos pacotes. A faixa 1, ou de desconto zero, a faixa 2, em que o desconto é de 10 UM, e
a faixa 3, com desconto de 30 UM . A Tabela 2.27 resume as regras da promoção.
Os anunciantes que competem na disputa do uso da mídia são n e dispõem, cada um deles, de sn unidades monetárias
para investir em propaganda. Os anunciantes, reunidos em uma associação, desejam estabelecer a melhor estratégia de
negociação com a rede. O objetivo da associação é maximizar, dentro das disponibilidades orçamentárias de cada cliente,
o tempo global de utilização da mídia.
Solução
Sob o ponto de vista dos anunciantes é razoável imaginar o objetivo de maximizar o desconto, atendidas as restrições pró-
prias de cada anunciante.
1. Escolha da variável de decisão
ti { tempo disponível para propaganda no horário i, i = 1, 2, 3.
xik { tempo adquirido no horário i, i = 1, 2, 3, pelo anunciante k, k = 1, ..., n.
∑x
k= 1
ik ≤ t i i = 1, 2, 3
Maximizar f(x) = ∑ ∑ x ik
i =1 k =1
Análise do Modelo
O problema proposto aborda um tipo de problema cuja formulação, em suas diversas variantes, exige várias hipóteses
de encaminhamento da solução. De modo geral, esse tipo de problema admite mais de um modelo de solução, em
função do enfoque adotado. As soluções que serão presentemente encaminhadas representam uma dentre várias pos-
sibilidades.
∑x
i= 1
ij = 1 j ∈ {P, C, B, L }
b) Restrição que garante que um nadador não será alocado a mais de um estilo:
L
∑x
j= P
ij ≤ 1 i = 1,... ,100
Modelos de Programação Linear 83
4. Condições de integralidade e não negatividade (ressaltando a condição binária, apesar da restrição implícita)
xij ∈ {0,1}
tij { tempo do nadador i no estilo j (para 200m), supostamente conhecido para todo par (i, j).
2. Formulação das restrições tecnológicas
a) Restrição que garante que todos os estilos em cada equipe terão um nadador designado:
100
∑x
i=1
k
ij = 1 j ∈ {P, C, B, L }; k = 1,2,3,4
b) Restrição que garante que um nadador não será alocado a mais de um estilo:
L
∑x
j= P
k
ij ≤ 1 i = 1,... ,100 ; k = 1,2,3,4
c) Restrição que garante que cada nadador será alocado a apenas uma equipe:
4
∑x
k= 1
k
ij = 1 i = 1,... ,100 j ∈ {P, C, B, L };
k = 1 i= 1 j = P
tij { tempo do nadador i no estilo j (para 200m), supostamente conhecido para todo par (i,j).
Função objetivo
100 L
Minimizar f(x) = ∑∑ t ij y i
i =1 j =P
84 Programação Linear e Fluxos em Redes
tij , tempo do nadador i no estilo j (para 200m), supostamente conhecido para todo par (i,j).
Considerando o índice dos nadadores selecionados pelo critério dos especialistas como D, E, I, T:
2. Formulação das restrições tecnológicas
a) Restrição que garante que um nadador é indicado como reserva:
3. Con¿guração da função objetivo que minimiza a redução do tempo pela substituição de um dos nadadores.
Minimizar f(x) =
Esgoto
Lagoa 1
Doméstico
Esgoto
Doméstico
g ç
Canal de Ligação
Efluentes
Industriais Lagoa 2
Litoral
Emissário
Efluentes
Industriais
As normas de proteção ambiental exigem que as águas lançadas pelo emissário no mar tenham no máximo 2% de resí-
duos não processados pelas lagoas e canal do sistema de tratamento. Ambas as lagoas recebem carga de esgoto bruto e
de eÀuentes industriais não tratados. O volume de poluição a ser tratado em cada descarga Pi, varia percentualmente em
função do tipo de descarga. O tratamento consiste em uma decomposição da poluição através de bactérias e aeração. Ba-
sicamente, os elementos principais do processo são: profundidade conveniente nas lagoas (elemento garantido pela enge-
nharia) e tempo adequado de retenção do poluente para que a aeração e os elementos biológicos façam sua decomposição.
A aeração será garantida pela declividade do canal (possuirá degraus de aeração). A retenção será garantida pelo volume
de cada lagoa. Considerando que as descargas industriais possuam um percentual de poluição de 40% em volume e os
esgotos domésticos de 10%. Considerando ainda que as descargas de in¿ltração do lençol freático não possuam percentual
de poluição. Levando em conta que a cada hora de retenção nas lagoas o eÀuente perde, por decomposição biológica, cer-
ca de 3% de seu conteúdo de poluição. Sabendo que a cada quilômetro do canal de aeração o eÀuente é reduzido em 2%
em poluição, formular o problema para determinar os volumes das duas lagoas e o comprimento do canal. Outros dados:
o comprimento do canal pode variar entre 1.500m e 3.000m. O volume das lagoas pode variar entre 106m3 e 108m3. Cada
metro do canal custa R$ 1.200,00. Cada m3 da primeira lagoa custa R$ 1,02, e da segunda, R$ 1,10. As vazões de eÀuentes
estão descritos na Tabela 2.28.
As leis ambientais determinam que na primeira lagoa o índice de poluição não ultrapasse 5% e, na ocasião do lançamento
das águas ao mar, não exista mais de 1% de poluição no eÀuente.
Solução
1. Escolha das variáveis de decisão
vi { o volume da Lagoa i, i = 1, 2.
L { comprimento do canal de ligação em quilômetros.
pj { volume da descarga de eÀuentes j, j = 1, ..., 6.
hi { tempo de retenção na lagoa i, i = 1, 2.
2. Formulação das restrições tecnológicas
a) Restrição relativa aos volumes das lagoas:
106 dvi d108 i = 1,2
b) Restrição relativa ao comprimento do canal de aeração:
1500 dL d3000
86 Programação Linear e Fluxos em Redes
c) Restrições de retenção:
v1 = h1 (p1 + p2+ p3)
v2 = h2 (p1 + p2+ p3+ p4+ p5+ p6)
d) Restrições de depuração biológica na primeira lagoa:
Os pro¿ssionais desejam um equilíbrio no número de chamadas direcionadas para cada táxi, em cada área, de modo que
fatores como engarrafamento, riscos de segurança, “corridas longas”, e outros, sejam aproximadamente os mesmos para
todos. Outro critério a ser considerado é que os carros não tenham que realizar longos deslocamentos para atender “corridas
curtas”. Formular o problema de designação dos táxis às chamadas como um Problema de Programação Linear.
Informação adicional: o objetivo do sistema computacional de designação deverá ser otimizar os ganhos com os atendimen-
tos. Os ganhos são diretamente proporcionais ao número de quilômetros rodados e pagos a R$ 1,00 por quilômetro, sendo
que a bandeirada é de R$ 1,50. Considere-se a operação em horário comercial para todos os 120 carros em disponibilidade.
Solução
1. Escolha das variáveis de decisão
tij { o tempo para o táxi livre localizado no ponto i, i = 1, ...., s, atender à demanda no ponto j, j = 1, ..., n.
cij { a distância do táxi livre localizado no ponto i, i = 1, ...., s ao ponto j, j = 1, ..., n, de localização da demanda.
djk { a distância do ponto da demanda no ponto j, ao destino k, k = 1, ..., n.
rj { tempo máximo para o atendimento no ponto j.
xij { variável binária que assume valor 1 se o táxi i é designado à demanda no ponto j, e 0, em caso contrário.
wil { variável binária que assume valor 1 se o táxi i está sendo designado para um atendimento na área l, e 0, em
caso contrário. I = 1 correspondendo à área a1, 2 correspondendo à a2, 3 à a3, 4 à a4.
sil { soma do número de atendimentos efetuados pelo táxi i na área l, l = 1, 2, 3, 4
yi { variável binária que assume valor 1 se o táxi i está livre, e 0, em caso contrário. Essa variável é dado de
entrada do sistema que possui o controle dos táxis, reÀetindo o estado presente do sistema de atendimento.
2. Formulação das restrições tecnológicas
a) Restrição relativa ao controle da designação de táxis livres:
yi = 1 xij = 0 ou 1
yi = 0 xij = 0
O que conduz a:
xij d yi
b) Restrições relativas ao equilíbrio entre o deslocamento até o ponto de demanda (não indenizável) e a extensão
da corrida:
cij
f2 ≤ xij ≤ f1 ∀i, j, k , onde são limites de equilíbrio convenientemente escolhidos.
djk
equilíbrio, ou seja: para que a designação de um determinado táxi ultrapasse a média de atendimento na área, será
necessário que haja uma compensação econômica que justi¿que o fato. Serão considerados os seguintes valores:
mil __ ml > 0
Quanto a média de atendimento do
carro designado para a área I se Condição em que a média de
diferencia da média dos demais táxis atendimento do carro i é maior que a
Média de atendimentos na área l. da cooperativa nessa mesma área. média dos demais carros na área I.
Para o problema, se wil =1 e , i = 1,2,3,4 convém que exista uma conveniente penalidade econômica pij, associada à
designação i para j, para justi¿car economicamente a violação do equilíbrio de trabalho, evitando o prejuízo global. A variável μil
binária (0,1) será responsável por controlar a ativação da penalidade. Quando Pil = 1, será exigida a inclusão da penalidade no
valor da função objetivo. Considerando h um valor grande como h t1000, o controle de violações de equilíbrio de atendimento
entre os táxis exige que:
ou ganhando sua posição nas retas. Com a melhoria tecnológica, a Equipe A passou a vencer cerca de 80% das corridas.
Vendo o desastre se aproximar, os engenheiros da Equipe B contra-atacaram criando um estabilizador de suspensão, para
melhorar as manobras nas curvas. O resultado anulou a habilidade do piloto da Equipe A em bloquear o carro da Equipe
B nas curvas, e essa passou a vencer cerca de 80% das provas. Acuada e sem ter como aumentar mais a aderência do
carro nas curvas, a Equipe A, em uma reunião de emergência, tentou uma estratégia suicida: retirar o aerofólio para ganhar
com o alívio de peso e tentar compensar nas retas o que fatalmente perderia nas curvas. Surpreendentemente, com essa
estratégia, passou a ganhar 80% das provas, pois o estabilizador de suspensão especial dos carros da Equipe B era muito
pesado e inútil nas retas, reduzindo signi¿cativamente o desempenho do carro fora das curvas. Imediatamente a Equipe B
retirou seu equipamento e as escuderias e voltou ao ponto de partida com vantagem novamente para a Equipe B. A essa
altura do campeonato, as duas equipes estavam rigorosamente empatadas em número de vitórias. O chefe da Equipe A
resolveu contratar um assessor de Pesquisa Operacional para decidir a melhor política para sua equipe e, quem sabe, dar-
lhe o título daquele conturbado ano. Formule e solucione o problema para encontrar a política ótima de equipagem para o
carro da Equipe A. Sabe-se que a instalação do estabilizador especial e do aerofólio leva cerca de 4 horas e não pode ser
desfeita ao longo da corrida, e que os boxes de cada equipe podem ser fechados, de forma que a equipe concorrente não
saiba qual a con¿guração que será adotada em uma corrida pela sua inimiga.
Modelo de solução
O que o consultor de Pesquisa Operacional deverá ser capaz de responder é a frequência com a qual os carros da Equipe
A, sua contratante, deverão ser equipados com o aerofólio.
1. Escolha da variável de decisão
Seja x1 a probabilidade da Equipe A resolver equipar seu carro sem o aerofólio. Nesse caso, x2 = 1 - x1 será a
probabilidade de o aerofólio ser empregado. Pelas experiências declaradas no enunciado, a situação do confronto
tecnológico pode ser resumida como na matriz que se segue.
Equipe B
Estratégia Sem Estabilizador Com Estabilizador
Equipe A Sem Aerofólio 40% 80%
Com Aerofólio 80% 20%
A variável de decisão deve ser avaliada pelo valor esperado E(...) do “ganho” obtido pela Equipe A nas condições de resposta
da Equipe B, ou seja, com ou sem estabilizador. Inicialmente, considerando o evento S1, a condição de ganho da Equipe A
quando a Equipe B permanece sem seu estabilizador de suspensão, a esperança de vitória da Equipe A será:
E(S1) = 40x1 + 80(1-x1 ) = 80 - 40x1
Uma segunda condição deve ser levada em conta: o caso de a Equipe B estar utilizando seu estabilizador, evento que será
denominado de S2. Nessa alternativa, a esperança de vitória da Equipe A torna-se:
E(S2) = 80x1 + 20(1-x1 ) = 60x1 + 20
2. Formulação das restrições tecnológicas
Seja G, o menor “ganho” obtido pela Equipe A quando usar sua política. Nesse caso:
E(S1 ) t G
E(S2 ) t G
90 Programação Linear e Fluxos em Redes
ou seja:
40x1 + G d 80
60x1 + G d 20
As equações acima podem ser consideradas restrições de um programa linear em que a variável de decisão é a probabilidade
de a Equipe A utilizar seu aerofólio. Elas representam o conjunto das possibilidades para o valor do ganho G.
3. Função objetivo
G
É esperado que a equipe A deseje maximizar
seu “ganho”, ou seja:
Maximizar f(x) = G − 60x1 + G = 20
80
4. Restrição de não negatividade e de¿nição do valor
probabilístico. Como é conhecido que a probabilidade
60
varia entre 0 e 1: G * = 56%
x1 = 1
1 t x1 t 0 40
Existem também severas limitações para o uso do simulador de voo, um equipamento muito caro e que não possui capaci-
dade para ser ampliado. Até o lançamento estarão disponíveis de fato 10.000 horas para treinamento. A Tabela 2.30 resume
o tempo ainda necessário para treinar cada componente do grupo em análise. Conforme estudos clínicos de contágio e
progressão epidemiológica em populações isoladas, para proteger a missão, nenhum subgrupo de 3 tripulantes pode somar
menos de 290 pontos no teste de saúde.
Se o consumo energético da tripulação e de suas atividades pro¿ssionais ultrapassar 150 Kcal/dia, serão possíveis duas
soluções: equipar a nave com uma bateria extra de energia, a um custo de R$ 10 milhões, ou com um módulo biológico de
equilíbrio e reciclagem de energia em que cada Kcal que ultrapassar a demanda de 150Kcal custará R$ 55.000,00.
Formule o problema para escolher a tripulação de modo a minimizar os custos totais.
Análise do Modelo
Um modelo é uma aproximação do problema real. Quanto mais complexo for o problema, mais exigirá o estabelecimento
de decisões a priori visando esclarecer e simpli¿car a modelagem. O enunciado anterior é su¿cientemente amplo para
exigir informações adicionais. Diante de várias inde¿nições de modelagem, o comando da missão resolveu esclarecer
aspectos em aberto na formação da tripulação empregando conhecimentos de psicologia e do objetivo da missão.
1. Com base em um estudo da psicologia do trabalho em equipes:
z Se o número de homens na tripulação ultrapassar o de mulheres em mais de duas pessoas, o comandante da
z As pessoas que possuem habilitação ao comando, mas que não foram designadas para tal, são capazes de
sável na tripulação.
92 Programação Linear e Fluxos em Redes
Observação: Ressalta-se que o enunciado não deixa claro por que o número de vagas mínimo para cada sexo possui uma
distribuição aparentemente discriminatória.
b) Restrição associada à exigência da habilidade de comando:
hF + hG + hJ + hB + m D t 2
c) Restrição associada à exigência da habilidade de Psicologia:
m D + mc t 1
d) Restrição associada à exigência da habilidade de Astronomia:
hP + hB + hS t 1
e) Restrição associada à exigência da habilidade de Informática:
hF + hJ + mM + mL + mD t 1
f) Restrição associada ao uso do simulador:
15hF + 20hG + 18hJ + 24hP + 22hJ + 10hB + 20mM + 25mA + 20mL + 18mD + 10mC d 1000
g) Restrição de compatibilidade pessoal:
hF + hJ d 1 (Fábio e José)
hB + mL d 1 (Bruno e Linda)
mD + mA d 1 (Dina e Ana)
h) Restrição associada aos aspectos epidemiológicos:
Essa restrição pode ser um problema signi¿cativo para o modelo, pois seu número é basicamente explosivo. Para repre-
sentar todos os subconjuntos de 3 pessoas que são possíveis formar com 11 candidatos, teríamos grande trabalho. No
Modelos de Programação Linear 93
exemplo em pauta podemos reduzir o número de candidatos ao exame por inspeção. Fábio, Gallo, Paulo, Maria, Ana e
Dina gerariam restrições redundantes. Nesse caso, teríamos que examinar subconjuntos de três elementos com: Saulo,
José, Bruno, Linda e Carla. Mesmo assim teríamos 10 restrições resultantes da combinação das cinco pessoas em gru-
pos de três. Uma delas seria:
95hs + 90hJ + 105hB t 290
No presente caso, é visível que várias das restrições anteriores seriam redundantes, o que permitiria não as enumerar no
modelo. Nem sempre uma simpli¿cação semelhante a essa poderá ser feita.
i) Restrição associada ao tamanho da equipe:
B C
∑ ∑m = 5
i =F
hi +
j =M
j
Se [¦pesos > 1000] V = 1 (1000-¦pesos) + MV > 0, para V uma variável binária {0,1}.
Se [¦pesos d 1000] V = 0 (¦pesos -1000) V t 0, para V uma variável binária {0,1}.
Com a variável binária é possível controlar a condição de ativação da parcela de R$ 10 milhões na função objetivo.
Nesse caso: B = 107 V. A restrição que será acrescentada ao conjunto das restrições do problema para controlar
o valor de V é:
[1000 - (115hF +110hG +100hS +105hP +107hJ +115hB +80mM + 85mA + 85mL + 80mD + 95mC)]+ MV >0
[(115hF +110hG +100hS +105hP +107hJ +115hB +80mM + 85mA + 85mL + 80mD + 95mC) – 1000]V ³0
94 Programação Linear e Fluxos em Redes
9Parcela C
A parcela C exige um controle da condição de ativação para duas situações diferentes. Quando o somatório do
dispêndio de energia ultrapassa 150Kcal/dia, duas hipóteses podem ser possíveis: a ativação de um módulo de
reciclagem biológica ou um módulo-bateria. Nesse caso são necessárias duas variáveis binárias de controle, e a
condição da decisão lógica da modelagem pode ser descrita como se segue:
D
E
Condição que pode ser formulada como:
R=
Então:
Se R ! 0 pelo menos uma mulher será designada ao comando
Se R 0 pelo menos um homem será designado ao comando
Se R = 0 permanecem as condições do pedido 1
O pedido exige o controle da ativação e desativação de restrições no problema da seguinte forma:
2.5
Exercícios Propostos
Uma reserva protege animais seriamente ameaçados de extinção como as cuícas-de-colete e guaribas. A reserva am-
biental passa por um período de seca, o que ameaça a vida desses animais por falta de alimentação adequada. As
cuícas-de-colete são cerca de duas vezes mais ameaçadas do que os guaribas. A administração da reserva possui,
em estoque, dois tipos de e¿cazes complementos alimentares disponíveis para suprir de¿ciências em situações de
emergência. Os complementos são caros e de difícil fabricação. Os complementos são concentrados e possuem um
paladar desagradável aos animais, de forma que devem ser misturados a uma isca para disfarçar o gosto. A isca deve
ser misturada na proporção 1g de suplemento total para 10g de isca para os guaribas e de 1g de suplemento total para
20g de isca no caso das cuícas-de-colete. Existem 6.000Kg de isca que servem simultaneamente para ambos os animais.
Existem em estoque 500Kg do complemento Alfa e 1.000Kg do complemento Beta. Para que se dissolvam na isca os
suplementos devem ser misturados, em peso, na proporção de três unidades de Beta para cada unidade de Alfa. Cada
10g do suplemento Alfa ou 6g do Beta podem alimentar um guariba. Para alimentar uma cuíca-de-colete é necessário
somente 20% do complemento Alfa e 50% do Beta que alimenta um guariba. A seca tornou a população de animais na
reserva instável, de forma que o administrador da reserva estima, com imprecisão, que a mistura deva alimentar, pelo
menos, 50 guaribas e 100 cuícas-de-colete. Formular o Modelo de Programação Matemática que otimiza a mistura dos
complementos alimentares.
5 O Pedido de Socorro
☺
Um posto de radioescuta capta a seguinte mensagem: “Somos náufragos do navio Intrépido. Estamos isoladas em uma ilha
de coordenadas... No momento sofremos com diversos problemas: as cobras venenosas, algumas pessoas com diarreia,
os nativos canibais e a falta de água e alimentos. Temos duas armas, mas a munição está praticamente no ¿m. Só temos
uma ampola de soro antiofídico e o suprimento de água e comida acabou. Somos 20 pessoas, nos enviem ajuda!”. O chefe
da patrulha de salvamento da área só possui um helicóptero, que por sua vez só pode fazer uma viagem de socorro até a
isolada e longínqua ilha. O grupo de salvamento sabe que o resgate por mar vai levar três dias para chegar. Para sobreviver,
o grupo necessita de 6 caixas de alimento, 4 de água, 2 de munição e 2 com remédios e soro antiofídico. Em valor para a
sobrevivência as caixas de munição e remédios são duas vezes mais importantes do que as de água e quatro vezes mais
importantes do que as de alimentos. Sabendo-se que apenas 7 caixas poderão ser transportadas no helicóptero, elaborar o
programa que otimiza a carga de socorro.
Uma empresa processa sardinhas em duas cidades do estado do Rio de Janeiro: Niterói e Araruama. A sardinha é pescada
e concentrada em três centros de fornecimento: Ilha Grande, Macaé e Cabro Frio. A capacidade dos centros de distribuição,
os custos do produto e de transporte estão resumidos na Tabela 2.31. As fábricas em cada cidade possuem diferentes ca-
pacidades de processamento e diferentes custos de operação.
98 Programação Linear e Fluxos em Redes
As fábricas de Niterói e Maricá possuem diferentes capacidades de processamento e trabalham sob diferentes custos ope-
racionais. A Tabela 2.32 resume a capacidade de processamento e os custos operacionais das processadoras.
Tendo em vista o custo do Imposto de Circulação de Mercadorias, de pedágios e de transporte terrestre, as latas
podem ser comercializadas em função de sua origem, conforme o previsto na Tabela 2.33, que considera os custos
da distribuição.
Uma pequena empresa transportadora está escoando, por via rodoviária, parte da safra de soja no Paraná. A empresa
possui três centros de embarque de grãos nas cidades de Maringá, Campo Morão e Cascavel. A transportadora escoa a
safra indistintamente para os portos de Paranaguá e Itajaí. Cada um dos portos, isoladamente, possui capacidade para dar
destino ao total de grãos transportados. A empresa deve alugar silos de estocagem para guardar os grãos enquanto espera
a liberação do embarque do porto, o que pode demorar semanas. As cidades de Ponta Grossa, Guarapuava e União da
Vitória possuem silos que podem ser alugados, se necessários, segundo os custos e capacidades constantes da Tabela
2.34. A Figura 2.10 resume os custos de transportes entre as cidades-chave na rede de transporte. A demanda na cidade
de Maringá é de 100 toneladas de grãos, na cidade de Campo Mourão é de 50 toneladas e na cidade de Cascavel é de 100
toneladas. Elaborar o modelo de programação para minimizar os custos da transportadora.
Modelos de Programação Linear 99
1 9 5
100
TABELA 2.34: Custos e capacidades dos silos 15
12
Guarapuava Paranaguá
g
P. Grossa Guarapuava U. Vitória Campo Mourão 4
2 8 6 13 8
Capacidade (ton) 160 130 130 50
6 5
Custo (p/ ton) 10 UM 15 UM 18 UM
5 6
100
3 12 7 8 9
Cascavel União da Vitória Itajaí
8 O Patrulhamento em PacíÀca
Pacífica, uma cidade próspera, deseja otimizar seu sistema policial de segurança e de controle de trânsito. Sabe-se
que os policiais que trabalham na segurança (em ronda e no trânsito) podem trabalhar em dois tipos de expediente:
em turnos de 8 horas diárias e em turnos de 12 horas. Os turnos são divididos em plantões de 4 horas, como mostra
a Tabela 2.35. A necessidade de oficiais em Pacífica durante as 24 horas do dia pode ser resumida da seguinte
forma.
Os policiais que trabalham em turno de 8 horas ganham R$ 10 por hora. Os que trabalham em turno de 12 horas ganham R$
20 por hora. Nos plantões 1, 2 e 6, os policiais de trânsito podem ser designados a atender a demanda de trânsito (coluna
Trânsito) e até 50% da demanda de ronda (coluna Ronda). No plantão 5, os policiais de ronda podem atender até 25% da
demanda de policiais de trânsito (coluna Trânsito). Os policiais de trânsito que trabalham no turno de 8 horas podem receber
uma moto. Nesse caso, seu custo associado é três vezes maior do que os policiais de trânsito do turno de 12 horas. Os
policiais de trânsito trabalham embarcados em motocicletas ou a pé.
Desenvolver um Modelo de Programação Linear para minimizar os custos do sistema de segurança, considerando-se que o
planejamento pode ser repetido a cada 24 horas.
100 Programação Linear e Fluxos em Redes
A companhia aérea Aviões Caburé pretende reequipar sua frota de aviões adquirindo três diferentes tipos de aeronaves:
Embraer 195 para voos nacionais, Airbus A 350-900 para voos nas Américas e Europa e Boeing 787-8 para voos à Ásia.
A Tabela 2.36 resume os custos das aquisições, as receitas esperadas e os pilotos aptos para operar cada tipo de avião.
A verba disponível para aquisições é de 730 milhões de UM. O piloto de Boeing pode pilotar todos os aviões. O piloto
de Airbus pilota também o Embraer. O piloto de Embraer pilota somente Embraer. Em um Boeing, a Caburé exige três
pilotos; o Airbus e o Embraer exigem dois pilotos. As o¿cinas da Caburé podem atender a manutenção simultânea do
equivalente a 3 aviões Boeing 787-8. Um Boeing exige esforço de manutenção equivalente a 3 Embraer e 0,75 Airbus.
Estima-se que 15% dos aviões estejam sempre em manutenção preventiva. Formular o problema da otimização da com-
pra dos aviões da Caburé.
Um país remoto no pací¿co, Cata Tatu, é formado por três ilhas que constituem distritos eleitorais independentes. Uma
eleição para presidente se aproxima e uma assessoria de investimento foi contratada para examinar os prováveis ce-
nários de propaganda para um dos candidatos. Os impactos decorrentes das atividades listadas na primeira coluna da
Tabela 2.37 foram traduzidos através de uma escala conveniente, em Unidades de Impacto (UI). A contabilização é feita
em função de um investimento de 1.000 UM em cada possível atividade de impacto. Como se sabe, a votação em um
candidato tende a acompanhar a imagem do candidato percebida pelos eleitores. Portanto é razoável imaginar que a
realização de atividades que promovem impacto positivo na imagem do candidato, especialmente em época próxima à
eleição, pode inÀuenciar o resultado do pleito.
A consultoria de marketing informa ao candidato que, para garantir uma boa imagem no eleitorado, o investimento em cestas
básicas deve ser maior que o investimento no Show de Marimba, e que o investimento em camisetas e brindes deve ser
menor do que em cartazes de propaganda. Considerando, muito simpli¿cadamente, que uma unidade de impacto positivo
resulte em um voto, e uma negativa resulte na perda de um voto. Considerando, também, que os votos serão obtidos exclu-
sivamente em função das atividades descritas na Tabela 2.37, e que os distritos são formados por ilhas independentes, de
forma que seja possível admitir que as ações nos diferentes distritos são independentes e não produzem reforço indireto,
formule o problema para garantir a eleição do candidato em votação majoritária, minimizando o investimento para a forma-
ção da imagem do candidato.
11 Os Elevadores de Transporte
Para a construção de uma torre foram instalados três elevadores externos para o transporte de carga. Os elevadores
transportam em cada viagem uma unidade de carga. Sobem carregados e descem vazios. O elevador A atende aos pa-
vimentos 1 e 3. O elevador B atende aos pavimentos 2 e 4. O elevador C atende a todos os pavimentos. Cada elevador
pode realizar diariamente, e independentemente do andar, o número de viagens previsto na Tabela 2.38. Diariamente,
285 unidades de carga devem ser transportadas. Tendo em vista que a operação dos elevadores contribui para a lu-
bri¿cação desses equipamentos, os elevadores que servem somente andares pares ou ímpares devem realizar pelo
menos 10 viagens diárias para cada piso servido. O tempo disponível diariamente para a operação do elevador é de 420
minutos. Cada elevador possui, em cada pavimento servido, um especí¿co equipamento de segurança de porta, acesso
e remoção de carga. Os custos de operação dos elevadores em cada andar, o custo da operação dos equipamentos es-
pecializado em UM (operação), bem como o tempo de operação por unidade transportada pelos elevadores em minutos
(tempo) são resumidos na Tabela 2.38.
12 O Problema do ReÁorestamento
☺
Uma companhia de reÀorestamento possui áreas de plantio em 4 municípios. A empresa considera o uso de 4 espécies de
árvores: Pinus, Carvalho, Nogueira e Araucária. A Tabela 2.39 resume os dados do problema.
102 Programação Linear e Fluxos em Redes
Formular o problema para designar as áreas de plantio por município de forma a maximizar a renda.
Uma empresa produz quatro diferentes tipos de containers (1, 2, 3, 4). O lucro por unidade de cada container produzido e a
demanda máxima semanal dos containers no mercado estão resumidos na Tabela 2.40.
Os containers são montados em três processos sequenciais. O aspecto crítico dos processos é a mão de obra. O consumo
de mão de obra em cada processo e a quantidade de homens x hora (hxh) disponíveis estão descritos na Tabela 2.41.
É possível um esquema de reaproveitamento de mão de obra entre os processos. Consequentemente, é possível que até
15% dos trabalhadores que operam no processo de instalações sejam emprestados ao processo de soldagem. De forma
semelhante, até 20% dos trabalhadores de acabamento e pintura podem trabalhar na soldagem. Exigências de escoamento
da produção obrigam que a relação entre os containers do tipo 1 e do tipo 3 esteja situada entre 0,8 e 1,1. Formular o pro-
blema para otimizar a produção de containers.
Modelos de Programação Linear 103
14 O Problema do Hospital ( I )
☺
O diretor de um hospital deve escolher um esquema de designação de leitos e quartos em uma nova ala que será construída.
Existem três tipos de quartos possíveis: Com um leito, com dois leitos e com três leitos. O total de quartos a construir não
pode ultrapassar 70. Por imposições de demanda deverão ser oferecidos pelo menos mais 120 leitos. A percentagem de
quartos de um leito deve ser restrita entre 15% e 30% do total de quartos. A necessidade em área construída é de: 10m2 por
quarto com um leito; 14m2 por quarto com dois leitos; 17m2 por quarto com três leitos.
Os pacientes dos quartos com dois e três leitos exigem apenas 80% da mão de obra que os do quarto individual. O que o
hospital recebe por cada paciente internado é inversamente proporcional à capacidade em número de pessoas do quarto em
que ele está internado. Considerando o hospital sempre lotado, formule o problema de forma a:
Minimizar o esforço da mão de obra em apoio médico e administrativo.
9
Maximizar a arrecadação global.
9
Maximizar o número de leitos.
9
Minimizar o espaço necessário à nova ala.
9
Para minimizar o pânico, as crianças deverão viajar acompanhadas por suas mães. Existem 10 famílias com 5 ¿lhos, 25 com 4
¿lhos, 150 com três, 450 com dois, 350 com um. Os carros de passeio só poderão fazer duas viagens de evacuação, ¿cando,
por segurança, retidos fora da área de perigo. Formular o programa de evacuação que minimize os custos ¿nais da operação.
104 Programação Linear e Fluxos em Redes
16 O Problema da ReÀnaria
Em uma determinada re¿naria, o petróleo bruto sofre os seguintes processamentos antes de ser transformado em gás/óleo ou
gasolina bruta:
Petróleo Destilação
Desulfuração Reforming Gasolina
Bruto Atmosférica
A Tabela 2.43 representa a capacidade máxima de processamento de cada unidade de operação. Formular o problema de
modo a maximizar o lucro total, solucionando gra¿camente o problema formulado.
17 A Frota de Ônibus ( I )
Suponha que o número de ônibus requerido para o atendimento da demanda de um determinado corredor de transporte
para a i-ésima hora do dia seja bi, i = 1, 2, ..., 24, onde cada ônibus trafega 6 horas consecutivas. Se o número de ônibus no
período i excede o mínimo requerido bi, isto resulta em um custo adicional ci por ônibus/hora. Formular o problema como um
Problema de Programação Linear inteira, de modo que o custo com ônibus excedente seja minimizado.
18 A Fábrica de Joias ( I )
Uma joalheria produz três tipos de joias: colares, anéis e pulseiras. As joias são feitas com diamante e ouro. Os diamantes e
o ouro são recebidos em remessa diária. O ouro pode ser encomendado em quantidade variável até 400g diárias, entregue
rigorosamente ao início do expediente. Os diamantes são contratados em peso ¿xo de 100g diárias. Os diamantes chegam
Modelos de Programação Linear 105
em horário incerto, de forma que é indispensável manter, no mínimo, 10g em estoque de um dia para outro de modo que os
lapidadores possam iniciar o dia trabalhando. A joalheria não possui cofres seguros para manter mais de 30g de diamante
em estoque de um dia para o outro. A lapidação pode ser realizada em regime normal, com os funcionários da empresa, ou
em regime de contratação extraordinária, com especialistas contratados de forma temporária. A Tabela 2.44 resume o lucro
associado à produção de cada joia, já considerados os gastos com o ouro, os diamantes e a lapidação no regime normal.
Os gastos com homens x hora em lapidação extraordinária devem ser abatidos do lucro previsto para as joias. O homem x
hora (hxh) de lapidação extraordinária custa 0,3 UM. Por contrato, a joalheria deve produzir, diariamente, pelos menos duas
unidades de cada joia de sua linha de produção. Programar a otimização da produção em um horizonte de três dias (D1, D2
e D3), sabendo-se que o estoque do dia 1 (D1) é de 15g de diamante.
19 O Corredor de Transporte
Um sistema ferroviário de transporte suburbano dá escoamento principalmente às demandas da, db e dc de três bairros, A, B
e C, em direção ao centro da cidade. Entre cada um desses bairros existe uma pequena redução na demanda de transporte
devido ao tráfego local. Essa redução é calculada percentualmente em 5%, a cada intervalo entre os bairros. O sistema
ferroviário é mais rápido, econômico e confortável que o sistema rodoviário, todavia insu¿ciente para arcar com toda a de-
manda. Consequentemente, o sistema necessita de uma complementação rodoviária, sob pena de entrar em colapso. Em
virtude da superioridade do serviço ferroviário, é correto considerar que o sistema ferroviário trabalha em sua capacidade
máxima, capacidade controlada pelo operador do sistema. Junto a cada estação ferroviária existe uma opção de embarque
para um sistema rodoviário de desafogo, mais custoso e com impacto ambiental desfavorável. A percentagem da redução
da demanda proporcionada pelo corredor rodoviário sobre a demanda do sistema ferroviário é denominada nível de desa-
fogo. O custo total do sistema rodoviário é diretamente proporcional à soma das parcelas de desafogo em cada estação. As
capacidades de operação do sistema ferroviário são associadas ao trecho considerado no transporte, sendo denominadas
por c1, c2, c3 unidades de demanda, como mostra a Figura 2.12.
Fluxo total ≤ c1 Fluxo total ≤ c 3
Fluxo total ≤ c 2
Transporte Ferroviário
Trecho 1 Trecho 2 Trecho 3
É natural supor que a demanda acumulada no sistema seja sempre superior ao Àuxo total do transporte ferroviário nos
momentos de pico de demanda. Em virtude da tarifa, a operação econômica do sistema rodoviário de desafogo sugere que
a demanda embarcada nas estações mais próximas ao centro seja maior que a demanda embarcada nas estações mais
distantes do centro. Determinar um Modelo de Programação Linear que calcule o nível ótimo para o percentual de desafogo
do sistema rodoviário em cada estação para que, em qualquer trecho da ferrovia, a demanda não ultrapasse os valores
estipulados. O trajeto de transporte inicia-se na estação A e sem demanda anterior.
Uma fábrica de camisetas deseja aproveitar o torneio de semi¿nalistas de um campeonato de futebol para vender camisetas
dos times participantes. Os valores de venda das camisetas não são perfeitamente conhecidos, mas provavelmente cobrirão os
custos. O torneio dura quatro semanas. O custo de produção de cada camiseta é R$ 2 nas duas primeiras semanas, e subirá
para R$ 2,5 nas duas últimas, quando a concorrência demandar por material no mercado. A demanda semanal de camisetas
será de 5.000, 10.000, 30.000 e 60.000. A capacidade máxima de produção semanal da empresa é de 25.000 camisetas. A
empresa poderá, com um esforço excepcional nas duas primeiras semanas, carrear mão de obra em horas extras e fabricar
mais 10.000 camisetas em cada semana. Nesse caso, o custo dessas camisetas será de R$ 2,8. O excesso de produção pode
ser estocado a um custo de R$ 0,2 por unidade, por semana. O estoque de camisetas ao ¿nal do torneio deve ser zero.
Pedido 1: Formular o Modelo de Programação Linear que minimize os custos. Não são conhecidos os resultados dos jogos
e o planejamento é realizado a priori, ao início do campeonato.
Pedido 2: Após o planejamento anterior, a direção da empresa conseguiu melhores informações sobre a variação de de-
manda das camisetas dos quatro times semi¿nalistas. Apesar da demanda total ser exatamente a anteriormente levantada,
determinou-se com exatidão o valor atribuído às camisetas em conformidade com o time e sua posição no torneio. Nas duas
primeiras semanas, a demanda e o valor das camisetas dos times ¿carão em pé de igualdade, como previsto anteriormente.
Após a de¿nição dos ¿nalistas, o cenário muda. As camisetas dos times eliminados caem em valor e em demanda no mer-
cado, e as dos times ¿nalistas sobem, conforme resume a Tabela 2.45.
Sabendo-se que existe um completo equilíbrio na chance de os times participarem da ¿nal, formular o modelo que maximize
os lucros da empresa produtora de camisetas.
Modelos de Programação Linear 107
Os quantitativos totais disponíveis dos insumos para a empresa, dentro da qualidade exigida, são descritos na Tabela 2.47.
O processo de fabricação, distribuído ao longo do ano, possui custos variáveis em função da Àutuação do custo da mão de
obra e dos insumos. A Tabela 2.48 resume as demandas em unidades, os custos de estocagem e de fabricação por período
em unidades monetárias, bem como a capacidade de estocagem disponível em unidades.
108 Programação Linear e Fluxos em Redes
TABELA 2.48: Demanda (D), custo de produção (C), custo de armazenamento e capacidade de estoque nos períodos
Ovo 100 Ovo 150 Ovo 200 Ovo 400 Bolo T1 Bolo T2
Períodos
D C D C D C D C D C D C
1. Abr-Mai 4.10 5
3 2.10 5
5 10 5
7 4.10 4
9 2.10 5
6 2.10 4
7
2. Jun-Set (*) – 1 – 2 – 2 – 5 – 5 – 6
3. Out-Jan 10 3
2 10 3
3 10 3
4 10 3
6 10 3
4 – –
4. Fev-Mar 10 3
2 10 3
3 2.10 3
4 10 2
6 4.10 4
4 10 4
5
Custo de Armazenagem 0,2 0,3 0,4 0,5 0,5 0,5
Capacidade de
4.105 105 7.104 3.104 1,5.105 104
Armazenagem
(*) As células vazias indicam que não existe demanda prevista no período, contudo, pode haver produção para o estoque.
Formular o problema para planejar o melhor esquema de produção e venda dos ovos de Páscoa.
Um partido político pretende decidir sobre a distribuição do investimento em marketing político para uma eleição majoritária
no estado de Minas Gerais. A Tabela 2.49 resume os prováveis votos captados em função de um investimento em 1.000 UM
na estratégia assinalada. Valores negativos signi¿cam perda de votos com a aplicação da estratégia.
Para não caracterizar um tratamento diferenciado entre as regiões, o que tem potencial para causar impactos negativos de
difícil quanti¿cação, cada estratégia deve ser aplicada em pelo menos três regiões, e segundo um investimento mínimo de
105 UM em cada região. O investimento total em carreatas não pode ultrapassar o investimento total em painéis. O investi-
mento em discursos no palanque em cada região deve ser maior que o investimento dedicado ao Show do Timbolada.
Sabendo-se que o partido deseja assegurar os votos contabilizados na coluna “votos desejados” em cada região, formular o
modelo que leva a minimizar o investimento necessário.
Modelos de Programação Linear 109
O coco (Cocos Nucifera) é uma fruta do tipo drupa, com muitas aplicações comerciais. Uma manufatura vende toda a
copra (polpa) a preço atrativo e deseja processar os resíduos restantes do coco. As ¿bras longas da casca (bristles) são
obtidas através do processo A de manufatura, e serão destinadas à produção de corda. As ¿bras curtas da casca (ma-
tress) serão obtidas através de um processo B, e comercializadas como material para enchimento de almofadas. O res-
tante do material resultante do processo B é o pó de coco, que é comercializado como condicionador orgânico do solo. A
variedade de coco adquirida pela manufatura possui um resíduo seco de 900g, com cerca de 120g de endocarpo e 780g
de mesocarpo. O mesocarpo processado produz 30% de ¿bras e 70% de pó. Um terço do material ¿broso é constituído
de ¿bras longas e dois terços de ¿bras curtas. As ¿bras longas permitem um lucro de 8 UM o quilo, as ¿bras curtas, de 2
UM o quilo, e o pó, de 3 UM o quilo. O endocarpo é transformado em carvão ativado pelo processo C e comercializado a
40 UM o quilo. A Tabela 2.50 resume o consumo de energia em unidades e de mão de obra dos processos em homens
x hora (hxh).
A manufatura possui contratos de fornecimento que garantem a entrega de 35 mil cocos por dia. O distribuidor da fábrica
pode transportar apenas 25 toneladas de pó de coco e 6 toneladas de ¿bras por semana. Toda a produção de carvão
ativado é comprada diretamente na manufatura pelas empresas de consumo. Cada quilo de ¿bras (longa ou curta) que
for produzido, e não comercializado diariamente, poderá ser estocado e vendido, posteriormente, com um lucro de 1 UM
ao quilo, em virtude do custo de estoque. Cada quilo de pó estocado perde o valor biológico, sendo vendido no futuro
por apenas por 0,2 UM. Cada quilo de coco não processado (endocarpo ou mesocarpo) causa um prejuízo de 1 UM para
ser biologicamente neutralizado. As instalações de estoque do material excedente permitem o estoque de meses de
produção e não são limitantes no processo. A manufatura produz sua própria energia no valor de 165.000 UM diárias. A
mão de obra disponível para o trabalho nos processos A e B é de 300 homens x hora, e a disponível no processo C é de
152 homens x hora.
Formular um Modelo de Programação Linear que conduza a manufatura à política ótima para o processamento dos resíduos.
Um produtor de cacau (Theobroma Cacao) deseja otimizar seu lucro. O produtor tem quatro possibilidades de venda para os
derivados do cacau: 1 – a fruta a granel; 2 – manteiga de cacau, 3 – pó de cacau e 4 – achocolatado, como barras de cho-
colate. As opções 2, 3 e 4 agregam valor ao produto e permitem um lucro maior. A opção 1 é mais segura e menos ameaçada
por Àutuações de demanda, problemas com transporte, insumos ou impostos.
110 Programação Linear e Fluxos em Redes
A empresa é familiar, de forma que a disponibilidade de mão de obra para a administração dos processos é limitada. A Tabela
2.52 resume essa disponibilidade:
TABELA 2.52: Demanda e disponibilidade de mão de obra para administração dos processos por 500 toneladas produzidas
Colheita e Transporte Processo A Processo B Processo C Disponibilidade semanal
Demanda de
80 hxh 40 hxh 40 hxh 20 hxh 144 hxh
administração
Para manter o contrato com os compradores do cacau a granel é necessário manter uma oferta de pelo menos 200 tonela-
das por semana desse produto. A produção que for realizada pode ser comercializada.
Na industrialização, somente 85% do peso da amêndoa são aproveitados. A matéria ¿nal do processamento da amêndoa é
denominada líquor e resulta, após o processo B, em 40% de manteiga de cacau (34% do peso da amêndoa) e 60% de torta
de cacau (51% do peso da amêndoa). A torta de cacau será transformada em achocolatado em pó, sem perda em peso. De
fato o peso do achocolatado será maior que o devido à torta, todavia, em virtude de acréscimos de açúcar, leite e outros in-
gredientes, presentemente essa adição será desconsiderada em peso e custo e contabilizada no cálculo do lucro da venda.
O lucro pela venda dos produtos por tonelada é o seguinte: amêndoa a granel, 10 UM; pó de cacau, 50 UM; manteiga de
cacau, 30 UM; achocolatado, 60 UM.
Formular o modelo para a otimização do sistema de produção de derivados do cacau.
Modelos de Programação Linear 111
Uma produtora de polpa possui quatro fazendas onde pode produzir quatro diferentes tipos de frutas: laranja, limão, acerola
e cajá. A capacidade de cada fazenda para das diferentes frutas segue-se na Tabela 2.53.
A Tabela 2.54 de¿ne a produtividade de cada fruta, em cada fazenda, em toneladas por unidade de área plantada.
As frutas devem ser irrigadas, e a Tabela 2.55 de¿ne a disponibilidade de água em cada fazenda e o consumo por unidade
de área plantada de cada fruta.
2.6
Solução de Exercícios Propostos Selecionados
x2 x2
5 5
4 4
Apoios
2 x1 + 2 x 2 ≤ 8
3 3 15 x1 + 20 x 2
15 x1 + 20 x 2
2 2
x1 = 2; x 2 = 2
Entradas
1 Região Viável x1 + 2 x 2 ≤ 6 1
O Pedido de Socorro 5
Variável de decisão Restrições tecnológicas:
xi ≡ número de caixas do item i, Alimento (i = T); Água 1. Transporte
(i = A); Munição (i = M) e Remédio (i = R) xT + xA+ xM+ xR d7
2. Necessidade de sobrevivência
Função objetivo: a) Alimento c) Munição
Maximizar z = xT + 2xA+ 4xM+ 4xR xT t 6 xM t 2
b) Água d) Remédio
Restrições de não negatividade e integralidade xA t 4 xR t 2
{x11, x12, x21, x22} Z +
Modelos de Programação Linear 115
Função objetivo: ∑x
i∈{I,M,C }
ij ≤ 250 j=A
9 Parcela da Receita – H1
b) Quantidade transportada do centro de distribuição é igual
H1 = 20 (yRA+ yRN) + 25ySN ou menor ao estoque do centro.
9 Parcela dos custos de aquisição e transporte da sar- 9 Fornecimento de Ilha Grande
dinha – H2
∑ x ij ≤ 150 i = I
j ∈{A,N }
⎧ ( 2 + 4 )xIN + ( 4 + 2 )xMN + ( 6 + 3 )xCN
H2 = ⎨ +
9 Fornecimento de Macaé
⎩ ( 2 + 6 )x IA + ( 4 + 1)x MA + ( 6 + 2 )xCA
Função Z
∑x
j∈{A,N }
ij ≤ 300 i =C
c) União da Vitória
Restrições de não negatividade e integralidade
xij ∈ ℜ i ∈ {M, O, C}, j ∈ {P, G, V} ;
∑x
j∈{R,I }
vj sV ≤ 130
∑ xOj = 50 j = P, G, V ∑x
i∈{O,C }
iV − 130sV ≤ 0
j∈{P,G,V }
c) Cascavel
∑x
j∈{G,V }
Cj = 100 j = P, G, V
Modelos de Programação Linear 117
O Patrulhamento em PacíÀca 8
Análise do modelo 19:00 23:00 03:00 07:00 11:00 15:00
ciaram os turnos de 8 e 12 horas às 23h e às 3h. Ob- Figura 2.14: A escala de cobertura de patrulhamento
serve-se que, na ¿gura, k = {m, n} e j = {r, t), conforme
de¿nição a seguir. 1a conclusão: a restrição de ronda
não deve obrigar os policiais de ronda a atender toda
a demanda. 2a conclusão: a restrição de trânsito deve
permitir avançar na demanda de ronda. 3a conclusão:
a restrição de trânsito deve garantir o atendimento
pleno da demanda de trânsito. Segue-se o modelo
parcial do problema.
moto (m).
9 Restrições do número de motos do plantão 2
Função Objetivo:
9 Restrições da ronda no plantão 2
9 Cálculo dos custos
c ijn8 = 10x8 = 80
(50% da demanda)
c itm8 = 60x8 = 480
118 Programação Linear e Fluxos em Redes
b) Número de pilotos:
Função objetivo:
2x E + 2xA + 3x B ≤ 4 (Aptos para pilotar o Embraer)
Maximizar z = 120x E + 300x A + 260x B
2x A + 3x B ≤ 19 (aptos para pilotar o Airbus)
9
xB ≤ (aptos para pilotar o Boeing)
Restrições de não negatividade e integralidade 3
c) Esforço nas o¿cinais de manutenção:
{x , xA, x } ∈ Z +
E B
1 4 3
xE + xA + xB ≤ 4
15 15 15
Modelos de Programação Linear 119
Análise do Modelo
A solução proposta considera que o caminho mais seguro para obter a votação majoritária é garantir essa maioria em
cada um dos três distritos da eleição. Portanto, será necessário conseguir 50% dos votos +1 em cada ilha. Contudo,
outras soluções seriam aceitáveis, como a de obter 8.751 votos sem distinção por ilha.
4 3 c) Votação na Ilha 3:
Minimizar z = ∑∑
i =1 j =1
x ij
3 x 13 − 5 x 23 + 10 x 33 − 2 x 43 ≥ 1251
d) Investimento em cestas básicas:
Restrições de não negatividade e integralidade 3 3
x ij ∈ ℜ i = 1,...,4 j = 1, 2, 3
∑j =1
x1j ≥ ∑x
j =1
4j
∑j =1
x 3j ≥ ∑x
j =1
2j
120 Programação Linear e Fluxos em Redes
Os Elevadores de Transporte 11
Variável de decisão 2. Tempo de operação dos elevadores
x ij ≡ quantidade de viagens (unidades de transporte) do ele- a) Elevador A:
vador i, (i = A,B,C), para o andar j (j = 1,2,3,4). xA1, xA3, xB2, xB4, 3x A1 + 4x A3 ≤ 420
xC1, xC2, xC3, xC4.
b) Elevador B:
c) Elevador C:
∑ xCj
j∈{1,2,3,4}
≤ 80
Modelos de Programação Linear 121
O Problema do ReÁorestamento 12
Variável de decisão Restrições tecnológicas:
x ij ≡ Número de hectares plantados na cidade i - (i = 1, 2, 3, a) Área disponível:
4) com a árvore j - (j = P, C, N, A) x 1P + x 1C + x 1N + x 1A ≤ 1500
x 2P + x 2C + x 2N + x 2A ≤ 1700
x 3P + x 3C + x 3N + x 3A ≤ 900
Função objetivo:
x 4P + x 4C + x 4N + x 4A ≤ 600
Maximizar z = 16x1P + 12x1C + 20x1N + 18x1A +
b) Restrição de produção mínima:
14 x 2P + 13x 2C + 24 x 2N + 20x 2A +
17x1P + 15x 2P + 13x 3P + 10x 4P ≥ 225000
17x 3P + 10x 3C + 28x 3N + 20x 3A +
14 x1C + 16x 2C + 12x 3C + 11x 4C ≥ 9000
12x 4P + 11x 4C + 18x 4N + 17x 4A
10x1N + 12x 2N + 14 x 3N + 8x 4N ≥ 4800
9x1A + 11x 2A + 8x 3A + 6x 4A ≥ 3500
Restrições de não negatividade
x ij ≥ 0, i = 1,2,3,4, j = P,C, N, A
O Problema do Hospital 14
Variável de decisão Restrições tecnológicas:
x i ≡ Número de quartos construídos do tipo i - (i = 1, 2, 3) a) Do número de quartos:
x1 + x2 + x3 d70
Função objetivo do pedido 1: b) De demanda:
. .
Minimizar z = x1 + 2 0,8x2 + 3 0,8x3 = x1 + 2x2 + 3x3 d120
= x1 + 1,6x2 + 2,4x3
c) Restrição de percentual de leitos:
150 grupos com 3 ¿lhos + mãe = 4 pessoas – i = 4 b) Capacidade do veículo em pessoas por viagem:
450 grupos com 2 ¿lhos + mãe = 3 pessoas – i = 3 f 1k1 < 20 f1k2 < 5
{ {
350 grupos com 1 ¿lho + mãe = 2 pessoas – i = 2 f2k1 < 10
f2k2 < 2
b) Pessoas isoladas: f3k1 < 6
f4k1 < 5
k = 1,...,10
(1 hora)
f3k2 < 1 k = 1,...,13
(45 min)
8.000 homens e 7.025 mulheres - 1 pessoa – i = 1
f5k1 < 4
k1 = 10 f4k2 < 1 k2 = 13
{ {
ro); 4 (ônibus); 5 (micro-ônibus); 6 (passeio). f2k3 < 5 f2k4 < 15
f6k2 = 0; f6k6 = 0 f3k3 < 3 f3k4 < 10
k = 1,...,60 k = 1,...,13
f4k3 < 2 (10 min) f4k4 < 7 (45 min)
A viagem k é limitada ao número máximo de kj, dependen- k3 = 60
f5k3 < 2 f5k4 < 6
k4 = 13
te de cada tipo de veículo, e calculado pela razão entre o
tempo disponível e o tempo de viagem de cada tipo de f6k3 < 1 f6k4 < 5
veículo (tj) k j =
600
j = 1,...,5 ; k6 = 2. f 1k5 < 15 f1k6 < 5
{ {
tj
f2k5 < 7
f kj ≡ 1 se veículo j realiza sua viagem k. 0, caso contrário
f2k6 < 2
f3k5 < 5
f kj ∈ {0,1}
k = 1,...,20 f3k6 < 1 k = 1, 2
f4k5 < 3 (30 min) k6 = 2
k5 = 20 f4k6 < 1
f5k5 < 3
Função objetivo: f6k5 < 2 f5k6 < 1
6 ⎛ kj ⎞ c) Restrições de capacidade dos veículos de transporte:
⎜ c f j⎟
Minimizar z =
∑ ⎜ j∑ k⎟
j =1 ⎝ k =1 ⎠
6
∑ i.f ik
j
≤ Pj ∀j, k
c1 = 10; c2 = 4; c3 = 75; c4 = 5; c5 = 3; c6 = 2. i =1
O Problema da ReÀnaria 16
Variável de decisão Restrições tecnológicas:
x i ≡ número de toneladas do produto i produzido na a) Capacidade do processo de destilação:
re¿naria (i = 1 gasolina) e (i = 2 gás e óleos).
se: x1 = 500.000 J x2 = 0;
x2 = 600.000 J x1 = 0;
Função objetivo: x1 x2
+ d1
Maximizar z = 10x1 + 7x2 500.000 600.000
x1≤ 400.000
z = 10x1+7x 2
Região Viável
x1 x2
+ ≤1 120.000
700 .000 500 .000
Gasolina Gasolina
x1 x1
400.000 700.000
Modelos de Programação Linear 125
A Frota de Ônibus 17
Variável de decisão Restrições Tecnológicas:
x i ≡ número de ônibus que iniciam a circulação na hora i a) Total de ônibus circulando na hora i:
(i = 1, ...,24). 6 4 4 4 4467 4 4 4 44
horas
8
y1 = x 20 + x 21 + x 22 + x 23 + x 24 + x 1
y i ≡ número total de ônibus circulando na hora i
y2 = x 21 + x 22 + x 23 + x 24 + x 1 + x 2
(i = 1, ...,24). y3 = x 22 + x 23 + x 24 + x 1 + x 2 + x 3
b i ≡ número de ônibus necessários na hora i (i = 1,...,24). y4 = x 23 + x 24 + x 1 + x 2 + x 3 + x 4
y5 = x 24 + x 1 + x 2 + x 3 + x 4 + x 5
i
Função objetivo:
24
yi = ∑x
j =i −5
j i = 6,...,24
Minimizar z = ∑ c (y
i =1
i i − bi )
b) Atendimento da demanda:
Restrições de não negatividade e Integralidade y i ≥ bi i = 1,...,24
x i ∈ Z + i = 1,...,24; yi ∈ Z + i = 1,...,24
A Fábrica de Joias 18
Variável de decisão Restrições tecnológicas:
x ij ≡ número de joias do tipo i, (i = C) Colar; 1. Consumo de ouro
(i = A) Anel; (i = P) Pulseira, produzida no dia j 20xCj + 5x Aj + 10x Pj ≤ 400 j = 1,2,3
(j = 1,2,3).
2. Consumo e estoque de diamantes
E j ≡ estoque de diamantes ao início do dia j
{Estoque ao ¿m do dia} = {Disponível ao início} – {Gasto no dia}
(j = 1,2,3).
E i +1 = 100 + E i − ( 4xCi + 5x iA + 10x Pi ) − ( 4xCi +1 + 5x iA+1 + 10x Pi +1 )
E 1 = 15 i = 1, 2
O Corredor de Transporte 19
Variável de decisão Restrições Tecnológicas:
x i ≡ percentual da demanda atendida pelo corredor 1. De proporção de Àuxo
rodoviário no trecho i (i =1,2,3)
d A − c1 (0,95d A + d B ) − c 2
C i ≡ percentual da demanda atendida pelo corredor x 1 ≥ dA ; x2 ≥
0,95d A + d B
ferroviário no trecho i (i =1,2,3)
0,95(0,95d A + d B ) + d c − c 3
x3 ≥
Função objetivo: 0,95(0,95d A + d B ) + d c
Minimizar z = x1 + x2 + x3
2. De operação do sistema rodoviário
Restrições de não negatividade x1 t x2 t x3
{x1, x2, x3} ∈ ℜ
Solução do 1o pedido
A ¿gura abaixo esclarece o estoque ao ¿nal da 1a semana A ¿gura abaixo esclarece o estoque ao ¿nal da 2a semana
Fim da ( x11 + x12 − y 1 ) + x 21 + x 22 − y 2 = A2
semana 1
x11 + x12 x11 + x12 − y 1 = A1 0,2 o custo
do estoque
x11 + x12
0 y1 1 y 1 = 5.000 0 1 y2 2 y 2 = 10.000
Solução do 2o pedido
O modelo fará três considerações. 1. A produção da semana 4 – x41 – será conhecida na ocasião e integralmente dedicada
aos times vencedores. 2. A produção das camisetas de cada time será igual, e vendida conforme os valores constantes da
1a e 2a semanas. Para efeito do modelo, a venda da 3a semana será considerada homogênea e segundo um valor médio
de 5,5. 3. As camisetas não comercializadas serão descartadas, desprezando-se custos e receitas residuais e de estoque.
Variável de decisão 2. De vendas para estoque zero ao ¿m da 4a semana
x ijk ≡ número de camisetas produzidas na semana i y1 5.000 y2 10.000 y3 30.000
(i = 1, 2, 3, 4) através do esquema de produção j (j = 1 –
Somente 12.500 unidades contabilizadas em y4 serão re-
normal, 2 – horas extras), para o time k (k = A, B, C, D).
almente comercializadas, contudo, a receita suplantará
y i ≡ número de camisetas vendidas na semana i =1,2,3,4 os custos de produção, estoque.
2 2 3 3 3
∑ ∑∑ x ijk + ∑ k
x 31 = ∑y i = 45.000
Função objetivo: i =1 j =1 k =1 k =1 i =1
Maximizar z = 3. De estoque
2 4 2 4 4 3
5 ∑∑ x
j =1 k =1
k
1j +6 ∑∑ x
j =1 k =1
k
2j + 5,5 ∑x
k =1
k
31 − 0,2 ∑A
i =1
i
9 1a semana para 2a
2 4
Restrições tecnológicas: ∑∑ x
j =1 k =1
k
1j − y 1 = A1
1. De produção
9 2a semana para 3a
x11 d 25.000; x21 d 25.000; x31 d 25.000; x41 0 (*) 2 2 4
∑∑ ∑
i =1 j =1 k =1
x ijk + ∑x
k =1
k
31 − (y1 + y 2 + y 3 ) = A 3
Restrições de não negatividade e integralidade
x ijk ∈ Z + i = 1,2 ,3 ,4 j = 1,2 k = 1,2 ,3 , 4
128 Programação Linear e Fluxos em Redes
0 ,5 x 14 + 0 ,8 x 24 + x 34 + 1,2 x 44 + x 54 + 1,5 x 64 ≤ 2 (10 ) e24 = x22 + x23 + x24 _ 103 _ 103 d 105 (período 4)
4
Objetivos
O presente capítulo objetiva:
3.1
Soluções exatas para os modelos de programação linear
A modelagem via Programação Linear visa reduzir um sistema real a um conjunto de equações ou inequações em que o
objetivo é otimizar uma função objetivo. O conjunto de equações de um modelo de programação é, em princípio, de solução
indeterminada. Na programação inteira, provavelmente o número de soluções do modelo linear será exponencial em função
do número das variáveis ou restrições do modelo. No caso contínuo, provavelmente o número de possíveis soluções para
o sistema indeterminado de equações será in¿nito. Mesmo com a garantia de que a otimização de conjuntos convexos
ocorre sobre um ponto extremo do conjunto, o número desses pontos extremos pode ser exponencial, tornando o uso de
estratégias de solução baseadas no exame exaustivo das possíveis soluções do modelo inviável na prática. Todavia, a
simples descoberta de uma solução viável do modelo pode não ser tarefa trivial. Na solução de sistemas indeterminados,
dois cuidados se fazem necessários:
9 Obter soluções viáveis básicas (que correspondem a uma base no espaço do sistema de equações) do sistema de
equações do modelo que representa o problema.
9 Evitar a necessidade de testar todas as soluções viáveis básicas do sistema para garantir a solução ótima (solução
que atende ao critério de otimização).
Diante das duas tarefas anteriormente descritas, o Algoritmo Simplex destaca-se como uma das grandes contribuições
à programação matemática do século XX. O Simplex é um algoritmo para a solução de sistemas lineares que possui um
desempenho e¿ciente e pode ser adaptado ao cálculo computacional (apesar de algumas di¿culdades clássicas). Adicional-
132 Programação Linear e Fluxos em Redes
mente, sua fundamentação matemática auxilia na compreensão de outros métodos. O estudo desse algoritmo é indispen-
sável para o pro¿ssional que deseja dominar as técnicas quantitativas de análise e solução de problemas em um contexto
razoavelmente avançado.
3.2
Fundamentos teóricos do Simplex
O Simplex é um algoritmo. Genericamente entende-se por algoritmo qualquer estratégia que permita a solução de um pro-
blema. Todavia, a ciência exata exige um pouco mais de precisão. Entende-se como algoritmo:
DeÀnição 3.1.
Um procedimento é uma sequência Ànita de instruções
O Simplex é um algoritmo fundamentado em propriedades da álgebra linear. Trata-se de um método iterativo exato para a
busca da solução ótima de um Problema de Programação Linear (PPL). Sua concepção básica é simples, e por isso mesmo,
e¿ciente. Em linhas gerais, o algoritmo parte de uma solução viável para o sistema de equações que constitui o modelo de
programação linear. Essa solução inicial é uma base para o sistema de equações com m equações e n variáveis e, portanto,
um ponto pertencente à envoltória convexa gerada pelo sistema de equações em m. O algoritmo possui um procedimento que
permite identi¿car, a partir de qualquer base viável, uma nova solução que melhore a solução corrente ou terminar a busca por
melhores soluções. O algoritmo, consequentemente, possui um critério de alteração das variáveis que compõe uma solução
básica corrente do sistema de equações do modelo, de forma a encontrar, se existente, um novo e melhor vértice na envoltória
convexa do modelo. Visando uma boa fundamentação matemática, alguns conceitos serão presentemente enfatizados.
a m1 am 2
•
•
•
•
•
•
•
•
•
... amn
M Ax = b
bm
(a) Sistema linear m x n (b) Matriz dos coe¿cientes (c) Vetor b (d) Produto matricial
Figura 3.1: Sistema linear m x n
Método Simplex 133
DeÀnição 3.2
Uma base de uma matriz A (m x n) é uma matriz quadrada de m vetores coluna linearmente indepen-
dentes em m. As variáveis associadas a essas colunas denominaremos Variáveis Básicas.
O vetor x, que representa as variáveis do modelo, pode ser decomposto em uma parcela associada às variáveis básicas —
vetor xB, como citado na de¿nição 3.2, e uma parcela associada às demais variáveis, vetor xR, como exempli¿cado na Figura 3.2:
m B R x xB ≤ b m
por ocasião do produto matricial. Observe-se que o sinal
menor ou igual utilizado não caracteriza qualquer perda
de generalidade, simbolizando um caso geral para as
n
equações dos sistemas lineares. As inequações podem
A xR ser transformadas em equações em estrita igualdade,
através de manipulação de variáveis e vice-versa. Em
relação ao processo de decomposição proposto pelas
Figura 3.4. Representação do produto Ax = b Figuras 3.2 a 3.4, ressalte-se a de¿nição que se segue.
134 Programação Linear e Fluxos em Redes
DeÀnição 3.3
Seja B uma base associada à matriz A. O vetor x composto pelas parcelas xB = B-1 b e xR = 0 é
chamado de Solução Básica.
Uma Solução Básica sem componentes
negativas é denominada Solução Básica Viável.
Para ¿xar as de¿nições anteriores, seja o sistema de equações que se segue associado a algum problema de programação.
Exempli¿ca-se a transformação do sistema para o formato-padrão, bem como as matrizes A e B.
DeÀnição 3.4
O conjunto C = { x tal que Ax = b, x > 0 } denomina-se Conjunto de Soluções Viáveis.
Da de¿nição 3.4 decorrem os seguintes teoremas e corolários importantes para o entendimento do método Simplex:
Teorema 3.1
Demonstração:
Seja C o conjunto formado pelos pontos x, tais que:
Ax = b
x ≥0
Se C é convexo, então (ver de¿nição de conjunto convexo no anexo), para quaisquer dois pontos distintos x1, x 2 pertencen-
tes a C, a combinação linear convexa desses pontos também pertence a C, o que é equivalente a dizer que:
⎧x = αx1 + (1 − α ) x 2 ∈ C
{ x1 , x 2 } ∈ C ⇒ ⎨
⎩0 ≤ α ≤ 1
Método Simplex 135
Observe-se que os pontos assim obtidos representam o segmento de linha que une os pontos x1 e x2. Sejam duas solu-
ções viáveis de C, x1, x 2 , tais que x 1 ≠x 2 , então:
Ax 1 = b1 Ax2 = b2 x = αx1 + (1 − α ) x 2
e
e seja:
x1 ≥ 0 x2 ≥ 0 0 ≤α ≤1
Consequentemente:
Ax = A[αx1 + (1 − α ) x 2 ] =
= αAx1 + (1 − α ) Ax 2 =
= αb + (1 − α )b = b
x = αx1 + (1 − α ) x 2 ≥ 0 e x1 ≥ 0, x 2 ≥ 0 e 0 ≤ α ≤ 1
A Figura 3.5 exempli¿ca um conjunto convexo e um conjunto não convexo, destacando o fato de que combinações lineares
entre x e y, dois componentes do conjunto, podem não pertencer a um conjunto não convexo.
x
x y
Conjunto y Conjunto
Convexo Não Convexo
Teorema 3.2
Toda solução básica viável do sistema Ax = b é um ponto extremo do conjunto de soluções viáveis,
ou seja, um extremo do conjunto C.
Demonstração:
Seja C o conjunto formado pelos pontos x, tais que:
Ax = b
x ≥0
136 Programação Linear e Fluxos em Redes
Seja ainda uma solução viável qualquer x, de dimensão n, na qual, sem perda de generalidade, as variáveis básicas são as
m primeiras:
Supondo, por absurdo, que x não seja um ponto extremo do
⎡ x1 ⎤ conjunto convexo C, de¿nido anteriormente. Então, x pode
⎢ : ⎥ ser obtido por uma combinação convexa de outros dois pon-
⎢ ⎥
⎢x ⎥ tos distintos desse mesmo conjunto. Chamando de y e z
x = ⎢ m ⎥ com todos os componentes xi t0 esses dois pontos, segue-se:
⎢0⎥
⎢ : ⎥
⎢ ⎥ x = αy + (1 − α )z
⎣⎢ 0 ⎦⎥ 0 ≤α ≤1
Como y e z pertencem ao conjunto C, as seguintes relações A relação x = αy + (1 − α )z , colocada em termos das co-
de pertinência são válidas: ordenadas de cada um dos três vetores, fornece as seguin-
tes relações:
Ay = b Az = b
e x1 = αy 1 + (1 − α )z1
y≥0 z≥0
x 2 = αy 2 + (1 − α )z2
.......... .......... .......... .
x m = αy m + (1 − α )zm
0 = αy m +1 + (1 − α )zm +1
.......... .......... .......... .
0 = αy n + (1 − α )z n
Devido às relações 0 ≤ α ≤ 1, y ≥ 0, z ≥ 0, as últimas (n-m) relações do conjunto acima descrito só podem ser satisfeitas
em um dos seguintes casos:
1. 0 < α < 1, e y m +i = z m +i = 0 para i = m + 1,..., n − m.
Neste caso, x = y = z, pois tanto y quanto z são soluções básicas do sistema em análise, calculados com as mesmas
variáveis básicas.
2. α = 0 e z m +i = 0 para i = m + 1,..., n − m.
Por raciocínio análogo ao caso anterior, deduz-se que x = z. Além disso, como α = 0 , segue-se que x =,y,=,z.
3. α = 1 e y m +i = 0 para i = m + 1,..., n − m.
Por razões análogas conclui-se que x = y = z.
Dessa forma, não existem soluções viáveis y e z, distintas da solução básica x que satisfaçam a relação x = αy + (1 − α )z . Por
contradição com a hipótese inicial, demonstra-se então, por absurdo, que x é um ponto extremo do conjunto convexo C
Método Simplex 137
O Teorema 3.2 demonstra a correspondência no sentido de que toda a solução básica viável é um ponto extremo do conjunto
de soluções do problema. O Teorema 3.3 completa a associação:
Teorema 3.3
Todo ponto extremo x de um conjunto de soluções viáveis de um sistema Ax = b é uma solução
viável básica.
Observe-se que um ponto x é extremo em um conjunto de soluções viáveis de um PPL se e somente se x t 0 for uma solu-
ção básica do sistema de equações lineares Ax = b. Os seguintes corolários decorrem do Teorema 3.3.
Corolários
1. O conjunto dos pontos extremos de um conjunto de soluções viáveis é Ànito e limitado em combi-
m
nação de n, m a m Cn
2. Se existe uma solução viável, então existe uma solução viável básica.
Finalmente, cabe esclarecer o tipo de associação existente entre os pontos extremos e o valor da função objetivo. Existe
garantia de que o valor ótimo do modelo se encontre nos pontos extremos de C? O Teorema 3.4 esclarece a questão.
Teorema 3.4
1. Se uma função objetivo possui um máximo ou mínimo Ànito, então pelo menos uma solução ótima
é um ponto extremo do conjunto convexo C do Teorema 3.1.
2. Se a função objetivo assume o máximo ou o mínimo em mais de um ponto extremo, então ela toma
o mesmo valor para qualquer combinação convexa desses pontos.
A Figura 3.7 resume, simpli¿cadamente, os aspectos teóricos que garantem o bom funcionamento do método Simplex.
O algoritmo pretende examinar uma sequência de soluções básicas viáveis na busca do valor ótimo para a função objetivo.
138 Programação Linear e Fluxos em Redes
Cada nova base é criada a partir da base anterior, através da troca de uma variável básica por uma variável não básica,
garantindo que as bases não serão repetidas e assegurando a convergência em número ¿nito de passos.
3.3
O Algoritmo Primal Simplex
Eventualmente, o algoritmo pode ser adaptado para promover a escolha de uma base viável inicial especial ou com certas
caraterísticas especí¿cas. Contudo, a essência do método, de fato, desconhece o problema da escolha de uma base viável
inicial, resolvendo sua formação de modo trivial.
A discussão do procedimento de inversão da matriz básica adotado pelo Simplex é importante, e amplamente enfatizada na
medida em que se apresentam os “quadros” do Simplex e se detalham as operações de “pivoteamento”. O método normalmente
sugerido na literatura é o das operações elementares. Apesar de se tratar de uma das estratégias mais simples para a inversão
de matrizes, a inversão via operações elementares permite um mecanismo e¿ciente de reinversão da base, exatamente a neces-
sidade do algoritmo Simplex. É importante a percepção de que o Simples não depende, como algoritmo, do método de inversão
de matrizes que será adotado. Em última análise o funcionamento do método Simplex não obriga que a matriz básica tenha que
ser invertida por um método de pivoteamento, contudo esse método é extremamente adequado ao processo iterativo do Simplex.
Método Simplex 139
O procedimento de regulação da troca de variáveis da base é solucionado por um critério bastante simples, que envolve
o cálculo da possível contribuição para o acréscimo ou decréscimo da função objetivo (conforme o caso, maximização ou
minimização) com a possível entrada na base de uma variável não básica. O critério aponta a escolha da variável de maior
contribuição imediata. Novamente um procedimento simples conduz a resultados práticos excelentes.
Finalmente, a regra de parada se faz sobre o próprio procedimento de troca de variáveis da base. Quando não há troca
de variáveis que permita uma melhoria no valor da função objetivo e se garante que não há comportamento patológico no
método, o algoritmo para.
Maximizar z = 3x1 + 5x 2
Sujeito a:
x1 ≤ 4
O modelo de Fita_1 pode ser resumido no conjunto de restrições
x2 ≤ 6
ao lado:
3x1 + 2x 2 ≤ 18
x1 ≥ 0, x 2 ≥ 0
Como a solicitação, além do modelo, pede a exibição do melhor esquema para a produção, é necessário solucionar
o sistema de equações na direção da função objetivo. O modelo Fita_1 exige a maximização de uma função linear
sujeita a um conjunto de três inequações. O modelo na forma-padrão possui m = 3 linhas e n = 5 colunas, uma vez que
são acrescidas 3 variáveis de folga para transformar as restrições de menor ou igual em igualdades, caracterizando-se
um sistema indeterminado, já que n é maior que m. Supondo que este sistema de equações possua alguma solução,
então essa solução poderá ser obtida através de um determinante da ordem de m, correspondendo a uma certa sub-
matriz m x m derivada da matriz de restrições de Fita_1. Resumindo: Se a Fita_1 possui uma solução, então ela será
encontrada no conjunto das soluções viáveis representadas nos pontos externos da envoltória convexa do modelo.
A solução ótima do modelo será o ponto externo que maximiza a função z. A Figura 3.8 representa, graficamente, o
modelo do problema Fita_1.
No eixo horizontal é representada a variável x1. No eixo vertical é representada a variável x2.
x2 x2
x 1≤ 4
D C D (0,6) C (2,6)
6 x2≤ 6 6
5 5
4 4
3 B 3 E (2,3) B (4,3)
Região
2 3 x1+2 x 2 ≤ 18 2
Viável
1 1 A ( 4,0 )
A
o 1 2 3 4 5 6 7 x1 o 1 2 3 4 5 6 7 x1
(a) Formação da Região Viável (b) Soluções Viáveis do Modelo
Como é possível observar na Figura 3.8(b), os pontos O, A, B, C, D e E são exemplos de soluções para o conjunto de restri-
ções de Fita. A Tabela 3.1 mostra o valor assumido da função objetivo z em cada um dos pontos selecionados:
A (4,0) 12
B (4,3) 27
C (2,6) 36
D (0,6) 30
E (2,4) 26
Como o cálculo da função objetivo demonstra, o maior valor de z é alcançado no vértice C. Contudo, cabe a pergunta: Seria
esse o valor máximo da função z? O poliedro OABCD possui in¿nitos pontos. Cada ponto corresponde a uma solução viável
para Fita_1. É impossível examinar todos os pontos do poliedro para concluir sobre a solução que otimiza o modelo de Fita_1.
Felizmente os Teoremas 3.2 e 3.3 garantem que uma solução ótima está em um dos pontos extremos desse poliedro (não em seu
interior). O ponto E foi examinado somente em virtude de sua contribuição didática, uma vez que o valor ótimo não pode ocorrer
ali. No caso de um modelo com duas variáveis de decisão, como Fita_1, é possível uma representação planar do conjunto de
equações. Cada equação será representada como uma reta, e a função objetivo será uma reta (no caso nominada por z) que se
conhece somente a direção. No caso geral, as restrições do modelo determinam hiperplanos em ℜm e a função objetivo pode
ser imaginada como curvas de nível no hiperespaço, tocando algum ponto extremo do poliedro convexo formado pelas restrições.
x2 x2 z = 56
7
D C z = 3x1 + 5 x 2 = 3(2) + 5(6)
6 6 G
5 5
4 4
z = 3( 3) + 5( 3) = 24
3 E B 3
F Direção de
2 2 Crescimento
1 1 de Z
A
o 1 2 3 4 5 6 7 x1 o 1 2 3 4 5 6 7 x1
(a) Maior crescimento possível, z = 36 (b) Crescimento irrestrito de z
Examinando a equação geral das retas associadas à função objetivo, observa-se que cada valor numérico de z corres-
ponde ao termo independente de alguma reta perpendicular à direção do gradiente, con¿gurada pelos coe¿cientes dos
lucros no modelo. Especi¿camente para o exemplo em pauta, maximizar z corresponde a deslocar a direção proporciona-
da pela reta 3x1 + 5x2 até obter um ponto da região viável do problema com o máximo valor para seu termo independente.
O ponto da região viável que maximiza z é a solução procurada. A direção de máximo crescimento da função z não
depende do formato ou do número de restrições da matriz de restrição do modelo de programação linear. O coe¿ciente
angular de z = c1 x1 + c2 x2 é independente do valor de z e igual a c1/c2 . A direção de maior crescimento de z corresponde
a uma reta ortogonal a z, sendo, portanto, igual à direção cuja tangente é c2/c1. Visualmente, a Figura 3.9 sugere que a
melhor solução para Fita_1 estará localizada nas bordas do polígono OABCD, conforme sugere o que a¿rma o Teorema
3.4 para o caso de qualquer polígono convexo. Como também a¿rma a segunda parte do Teorema 3.4, é possível que
existam in¿nitos pontos que levariam z a assumir um valor ótimo. Se o lucro com a venda das ¿tas da máquina nova de
nosso exemplo fosse 2 unidades monetárias e não 5, a função z sofreria uma pequena rotação e seria transformada em
3x1 + 2x2, uma direção paralela à restrição que de¿ne a mão de obra e forma um ponto extremo ótimo. Observe-se que
o polígono das soluções viáveis não sofre alteração, uma vez que as restrições do modelo são mantidas, todavia, com a
nova direção, a função z alcançará dois pontos extremos do polígono, coincidindo com a restrição de mão de obra nos
pontos C e B, como mostra a Figura 3.10.
x2 x2 zG = 3(7) + 2(7) = 35 z = 56
7
D C zC = 3(2) + 2(6) = 18
6 6 G
5 z = 3x1 + 2 x 2 5
4 4
z F = 3(3) + 2(3) = 15
3 E Bz = 3( 4) + 2(3) = 18 3
B
F Direção de
2 2 Crescimento
C esc e to
1 1 de Z
A
o 1 2 3 4 5 6 7 x1 o 1 2 3 4 5 6 7 x1
(a) In¿nitas soluções para o modelo (b) Crescimento irrestrito de z
Para o exemplo citado, qualquer ponto da face CB é uma solução ótima. No algoritmo Simplex isso é caracterizado, como
será enfatizado oportunamente, pela existência de variáveis não básicas jJ, com o valor de seus custos reduzidos iguais
a zero (zj - cj = 0) na solução ótima.
Método Simplex 143
x2
Uma terceira possibilidade topológica para o conjunto das so-
x1 − 2x 2 ≥ 2 luções viáveis de um PPL é a do conjunto vazio. De modo
geral, nada garante que um problema corretamente formulado
tenha uma solução. Nesse caso, o PPL é denominado inviável
ou impossível. Na interpretação geométrica, tal fato é caracte-
rizado por uma região viável vazia. A Figura 3.12 mostra um
exemplo de um PPL inviável. O sistema de equações determi-
na restrições cujo espaço de interseção é vazio.
2x 2 ≤ 2 x1
Infelizmente, os problemas de programação linear não admitem, no caso geral, a possibilidade de solução gráÀca em virtude
do elevado número de variáveis associadas. Por outro lado, o exame exaustivo dos pontos extremos da envoltória convexa do
sistema de equações é proibitivo em casos de aplicação real, em virtude de crescer em função exponencial associada à combi-
nação das n variáveis de decisão tomadas m a m, conforme o corolário 1. Nesse sentido, a contribuição do algoritmo Simplex é
de fundamental importância, e sua proposta pioneira deve-se a Dantzig (Dantzig, Orden & Wolfe, 1955; Dantzig, 1963)
onde A é uma matriz m x n, com ponto m (todas as linhas de A são linearmente independentes), é possível decompor o vetor
c em suas componentes básicas e não básicas, c = (cB ,cR ), e supor que a solução básica viável existente seja represen-
⎛ B −1b ⎞
tada por um vetor x = ⎜⎜ ⎟ cujo valor associado é dado pela seguinte expressão:
⎟
⎝0 ⎠
⎛ B −1b ⎞ ⎛ B −1b ⎞
z0 = c ⎜⎜ ⎟ = (c B , c R ) ⎜
⎟ ⎜
⎟ = cB B -1b
⎟
⎝0 ⎠ ⎝0 ⎠
É possível escrever o vetor x, em função das variáveis O que conduz à possibilidade de reescrever a equação
⎛ xB ⎞
básicas e não básicas na seguinte forma: x = ⎜⎜ ⎟⎟ . Ax = b como Bx B + Rx R = b .
⎝ xR ⎠
x B = B −1b −B −1Rx R
Multiplicando-se por B-1 a expressão de z0 anterior tem-se: = B −1b − B −1a x
∑ j j j∈J
z = cx
= cB x B + cR x R
⎛ ⎞ (3.1)
= cB ⎜⎜ B −1b − ∑ B −1a j x j⎟⎟ + ∑ c j x j
⎝ j∈J ⎠ j∈J
= z0 − ∑ ( z j − c j ) x j
j∈J
A equação (3.1) mostra a possibilidade do estabelecimento de um critério para o processo de melhoria da solução básica.
Quando o valor do termo z j − c j é estritamente maior que zero, existe a chance de, com a entrada da variável de índice j na
( )
base, reduzir o valor da função objetivo em z j − c j x j , desde que essa variável possa assumir um valor positivo. O termo
z j − c j também é denominado “custo reduzido”. Denominado por k, o índice dessa variável não básica resulta:
z = z 0 − (z k − c k ) x k (3.2)
Examinando (3.2), pode-se concluir que, de forma geral, para o processo de otimização, será interessante que a variável xk
seja incrementada ao máximo. Com o crescimento de xk, o valor de z diminui, na nova solução básica, proporcionalmente
ao valor do custo reduzido associado. Como sabe-se que:
Método Simplex 145
Onde
yk = B −1ak e b = B −1b (3.4)
Denotando as componentes do vetor xB e b , respectivamente por x B1, x B2,..., x Bm e b1, b2 ,..., bm tem-se, ¿nalmente, a
seguinte expressão:
⎡ x B1 ⎤ ⎡ b1 ⎤ ⎡ y 1k ⎤
⎢x ⎥ ⎢ ⎥ ⎢ ⎥
⎢ B 2 ⎥ = ⎢ b2 ⎥ − ⎢y 2k ⎥x (3.5)
⎢ : ⎥ ⎢: ⎥ ⎢: ⎥ k
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣⎢ x B m ⎦⎥ ⎣⎢bm ⎦⎥ ⎣ y mk ⎦
A expressão (3.5) nos mostra que se existir algum elemento do vetor coluna yk, yik 0, então o x Bi associado pode crescer
inde¿nidamente com o crescimento de xk. Se existir yik ! 0, então x B i , decresce com o incremento de xk. Para satisfazer
as condições de não negatividade de uma solução básica viável, a nova variável x k só poderá crescer até que a primeira
componente x B i seja reduzida a zero, o que corresponde ao mínimo entre todos os bi para os valores positivos de yik, ou:
yik
bs ⎧b ⎫
= mínimo ⎨ i : yik > 0 ⎬ ⇒ xs (3.6)
ysk 1 ≤ i ≤ m ⎩ yik ⎭
Note-se que para garantir a independência linear da coluna k com as demais colunas existentes na base é indispensável
que yik = 0. Pelo critério sugerido em (3.2), a variável x k seria a variável que entraria na base, melhorando o valor da função
objetivo, e a variável x s , linearmente dependente a x k, deixaria a base ao ter o seu valor numérico esgotado completamente
pelo crescimento de x k .
Minimizar z = − 3x1 − 5x 2
Sujeito a:
x1 +x 3 =4
x2 + x4 =6
3 x1+ 2 x 2 + x5 = 18
x1≥ 0, x 2 ≥ 0, x 3 ≥ 0, x 4 ≥ 0, x 5 ≥ 0
146 Programação Linear e Fluxos em Redes
Modelo que possui a matriz de restrições, custos e dos termos independentes, como a seguir:
⎡ 1 0 1 0 0⎤
A = [a1 ,a2 ,a3 ,a 4 ,a5 ] = ⎢⎢0 1 0 1 0⎥⎥
⎢⎣3 2 0 0 1⎥⎦
⎡4 ⎤
b = ⎢⎢6 ⎥⎥ e c = [− 3,− 5,0,0,0]
⎢⎣18⎥⎦
⎡ 1 0 0⎤
B = ⎢⎢0 1 0⎥⎥
−1
⎢⎣0 − 2 1⎥⎦
⎡x 3 ⎤ ⎡ 1 0 0⎤ ⎡ 4 ⎤ ⎡ 4 ⎤ ⎡4 ⎤
⎢ ⎥ ⎡x ⎤ ⎡0 ⎤
x B = ⎢ x 2 ⎥ = B b = ⎢⎢0 1 0⎥⎥ ⎢⎢6 ⎥⎥ = ⎢⎢6 ⎥⎥
−1
xR = ⎢ 1 ⎥ = ⎢ ⎥
⎢0⎥ z D = cx = c B x B + c R x R = [0,− 5,0] ⎢6 ⎥ = − 30
⎢⎣ x 5 ⎥⎦ ⎢⎣0 − 2 1⎥⎦ ⎢⎣18⎥⎦ ⎢⎣6 ⎥⎦ ⎣x 4 ⎦ ⎣ ⎦ ⎢⎣6 ⎥⎦
A base escolhida corresponde ao ponto D da Figura 3.8. Para melhorar a solução zD será necessário calcular os valores
(zj í cj) para jJ, consequentemente:
⎡1 0 0⎤ ⎡1 ⎤
z1 − c1 = c B B a1 − c1 = [ 0,− 5,0] ⎢⎢0 1 0⎥⎥ ⎢⎢0⎥⎥ − ( −3) = 3
−1
⎡ 1 0 0 ⎤ ⎡0 ⎤
z 4 − c 4 = c B B a 4 − c 4 = [ 0,− 5,0] ⎢⎢0 1 0⎥⎥ ⎢⎢1 ⎥⎥ − (0) = − 5
−1
bs ⎧b ⎫
Pelo critério adotado, a variável x1 entrará na base, saindo a variável = mínimo ⎨ i : yik > 0⎬ , que no caso é x5. As
ysk 1 ≤ i ≤ m ⎩ yik ⎭
setas abaixo indicam a posição do pivô, ou seja, a posição da variável que sai da base.
Método Simplex 147
⎡x 3 ⎤ ⎡ 4 ⎤ ⎡1 ⎤ ⎡4 ⎤
⎢x ⎥ = ⎢6 ⎥ / ⎢⎢0⎥⎥ = ⎢⎢−⎥⎥
⎢ 2⎥ ⎢ ⎥
⎢⎣ x 5 ⎥⎦ ⎢⎣ 6 ⎥⎦ ⎢⎣3⎥⎦ ⎢⎣2 ⎥⎦
A nova base será formada pelas variáveis x3, x2, x1, ou seja:
⎡1 0 1 ⎤
B′ = [a3 , a2 , a1 ] = ⎢⎢ 0 1 0 ⎥⎥
⎢⎣ 0 2 3⎥⎦
A nova base corresponde à solução ótima do problema, ou ao vértice C da Figura 3.8. O processo exempli¿cado anterior-
mente é absolutamente geral e pode ser sistematizado de forma a guiar a escolha da base inicial de cálculo, o critério de
troca de variáveis na base e a regra de parada do algoritmo. O algoritmo pode ser descrito da seguinte forma:
Inicialização
Determinar uma solução básica inicial x B . Seja I o conjunto de índices das colunas de A pertencentes à base e J = N \ I
(operação de diferença de conjuntos).
Passo 2:
• Se, para pelo menos um, não existe solução ótima ¿nita. Pare!
• Caso Contrário, determinar k de modo que z k − c k = max { z j − c j }
j∈J1
bs x ⎧b ⎫
Na coluna k, encontrar a relação: = s = mínimo ⎨ i : yik > 0⎬ ⇒ x s
ysk ysk 1 ≤ i ≤ m ⎩ yik ⎭
Passo 3:
Considerar a nova base B deduzida a partir da anterior pela substituição de as por ak.
B = (B \ {as } ∪ {ak })
148 Programação Linear e Fluxos em Redes
x B = B −1b
x Bs
z0 ⇐ z0 − (z j − c j )
Atualizar: ysk
R = (R \ {ak }) ∪ {as }
I = (I \ {s }) ∪ {k }
J = (J \ {k }) ∪ {s }
Voltar para o passo 1
x O quadro Simplex
Visando facilitar a execução de cálculos manuais, é tradicional a utilização de um formato tabular para o desenvolvimento do
algoritmo Simplex. O formato tabular é um recurso de acompanhamento dos cálculos propostos no item anterior e denomi-
nado, usualmente, de quadro Simplex. De forma geral e observando que, para efeitos práticos, pelo menos um dos custos
ci , in do modelo é negativo, é possível descrever um Problema de Programação Linear como:
Um quadro para o cálculo da inversa da base do valor dos custos reduzidos, do valor de z e demais elementos do algoritmo
pode ser organizado como a seguir:
.. .. .. .. .. 0 .. 0 .. 0
.. .. .. .. .. .. .. .. .. .. bs
xs+r br ar1 ................... ark .........................ars 0 .. 1 .. 0 ask
.. .. .. .. .. .. .. .. .. ..
.. .. .. .. .. .. .. .. .. ..
QUADRO 3.2. Identi¿cação das matrizes e variáveis no formato Simplex tabular – Quadro de Partida
Índice
das
Área
Variáveis
Básicas xB Y = B −1R B −1 de
Cálculos
Ao longo das iterações do algoritmo o quadro inicial é atualizado e corresponde à seguinte forma canônica:
z z1-c1.....................z k -ck ................... ..zs -cs zs+1 -cs+1....z s+r -cs+r ....z n-cn
y11 .................. y1k ...................... y1s
x B1 b1 .. .. ..
: : .. .. ..
x Br br
B −1
yr1 .................. yrk .........................yrs bs
ysk
: : .. .. ..
x Bm bm .. .. ..
O quadro acima sistematiza e auxilia a execução iterativa do algoritmo Simplex não só ajudando nos cálculos, como manten-
do a memória dos passos executados. De forma compacta, as etapas do uso do quadro podem ser resumidas:
150 Programação Linear e Fluxos em Redes
Passo 1: Organizar o quadro inicial como indicado, partindo de um PPL na forma canônica.
Passo 2: Realizar o teste de parada:
x Se todos os cj d0, (jJ), então, a solução ótima foi alcançada.
x Caso contrário, escolher o maior cj t0, por exemplo ck , escolhendo o vetor associado xk para entrar na base.
Passo 3: DeÀnir o vetor que sairá da base:
x Se yik d0 para todo i = 1,...,m, então, a variável xk poderá ser decrementada inde¿nidamente e o valor de Z
tenderá ao in¿nito negativo. Nesse caso, a solução será ilimitada.
x Se yik ! 0 para algum i, i = 1,...,m, então, fazer:
b
x Calcular r, em que r é a variável básica relacionada ao mínimo entre os coe¿cientes i . O elemento yrk é
denominado “pivô”. yik
Passo 4: Substituir a r-ésima variável, correspondente à r-ésima equação pela variável xk, que passará a
integrar a nova base e recalcular as matrizes B-1, Y e os vetores z j - c j , x B e z0. Retornar ao passo 2.
Para recalcular as matrizes e os vetores utilizados no algoritmo, é possível utilizar diretamente as fórmulas deduzidas no
critério de melhoria de uma solução básica ou, com base no quadro anteriormente proposto, utilizar o método de inversão de
matrizes por operações elementares, considerando que as variáveis que permaneceram na base já possuem suas colunas
canonizadas, ou seja, transformadas em vetores canônicos. O método que utiliza diretamente as fórmulas descritas não
utiliza o quadro Simplex descrito e somente calcula a coluna da matriz Y associada à variável escolhida para entrar na base,
e é denominado Simplex Revisado.
No quadro Simplex, para canonizar a coluna da nova variável introduzida na base, divide-se a linha r (a linha da variável que
sai da base) pelo elemento pivô, obtendo 1 na posição do pivô. Para reduzir a zero os demais elementos da coluna, utiliza-se
a adição de múltiplos da linha (conforme o método de inversão de matrizes por operação elementares descrito no Anexo). A
utilização direta das equações algébricas, típica do Simplex Revisado, di¿culta o cálculo manual e o acompanhamento das
operações. Todavia, o método puramente algébrico é indicado nas implementações computacionais por economia de me-
mória e de cálculos. O formato em quadro exige um número maior de operações algébricas e de espaço na memória (caso
venha a ser automatizado) calculando, desnecessariamente, a matriz Y completa. Contudo, permite uma melhor visão da
evolução lógica do algoritmo. A propriedade algébrica de inversão da matriz aumentada permite que os vetores z j - c j , x B e
z0 possam igualmente ser obtidos por ocasião da inversão da nova matriz B, através de operações elementares (ver Anexo).
9Quadro de pivoteamento
Quando o algoritmo Simplex introduz uma nova variável na base, e o quadro é usado para o cálculo da nova inversa da
base (reinversão da base), tudo se passa como se uma das colunas da matriz ainda tivesse que ser calculada pelo método
de inversão por operações elementares para completar a obtenção da inversa de B. As variáveis que são preservadas na
base não necessitam de processamento de reinversão, uma vez que preservam suas colunas canonizadas. O fato é muito
conveniente ao cálculo, pois aproveita o trabalho de inversão realizado em passos anteriores. A operação denominada
“pivoteamento” representa, em última análise, a aplicação das regras do método da inversão de matrizes por operações
elementares ao novo quadro do algoritmo, obtido pela troca de uma variável na base.
A primeira providência para a inversão da nova base formada com a entrada da variável xk e a saída de xr é exatamen-
te obter um valor unitário na posição do elemento pivô. Isso é alcançado pela divisão dos coeficientes da linha pivô
pelo valor do elemento constante na coluna de xk. Como o quadro é uma matriz aumentada, a linha do pivô estende-se
Método Simplex 151
ao termo independente associado. Pela mesma propriedade de inversão da matriz aumentada é possível estender o
pivoteamento ao cálculo da linha dos z j - c j , atualizando o vetor através do mesmo pivoteamento de reinversão usado
em B.
Infelizmente o aspecto matemático das equações que se formam em decorrência do tratamento analítico das operações de
pivoteamento pode ser considerado um pouco complicado. Contudo, é através da compreensão dessas expressões que se
torna possível automatizar o processo.
Supondo que a variável xk tenha sido escolhida, em uma determinada iteração do método, para entrar na base em virtude de
possuir o maior valor de z j - c j no quadro. Supondo que a variável xr foi a primeira que esgotou seu valor positivo com o cresci-
mento de xk, devendo, portanto, deixar a base. Nesse caso, o pivô será o elemento yrk (coluna k, linha r). Como a nova coluna
vai, quando canonizada, ocupar a posição r dos vetores canônicos que compõem a base, o elemento yrk deve ser transformado
em um valor unitário por uma operação elementar válida. A operação mais indicada para o caso é a divisão da linha do pivô pelo
valor dele mesmo. Para não alterar o sistema de equações, bem como o valor do determinante da base, a linha completa será
dividida pelo pivô. Após a adequação do pivô é necessário reduzir a zero a coluna do pivô, de modo a completar a operação
de inversão preconizada pelo método das operações elementares. Como o pivô é unitário, cada posição poderá ser anulada
pela soma de um valor simétrico obtido pela multiplicação da linha do pivô por -1 vez o valor do elemento a ser anulado. As
operações necessárias são independentes entre si e su¿cientes para completar a inversão da base. O Quadro 3.4 esclarece a
identi¿cação das variáveis que entram e saem da base em uma iteração genérica do algoritmo Simplex. A seta marca a saída
da variável da base e os balões de observação ressaltam as propriedades da variável que entra e que sai.
Observe-se que os elementos z s +1 − c s +1 , z s +r − c s +r e zn − cn do Quadro 3.4 (quadro inicial) são iguais a zero, uma vez
que se referem a variáveis básicas. Após a operação de canonização do elemento pivô (feito igual a 1), será necessário anu-
lar os elementos da coluna da variável x k para realizar o processo de inversão da nova base. Esse processo é realizado por
multiplicação e soma das linhas da matriz, como estabelece o método das operações elementares, tendo por base o valor
unitário do pivô. O Quadro 3.6 resume o resultado das operações de anulação dos elementos do vetor x k diferentes do pivô.
QUADRO 3.6. Canonização da variável que entra na base
Método Simplex 153
O cálculo dos novos custos reduzidos das variáveis não básicas pode ser realizado pela fórmula:
y
( z j − c j ) − rj ( zk − ck ) j = 1,..., s .
y rk
Maximizar z = 4 x 1 + 5 x 2 + 9 x 3 +11 x 4
Sujeito a :
x1 + x 2 + x 3 + x 4 ≤ 15
7 x 1 +5 x 2 + 3 x 3 + 2 x 4 ≤ 120
3 x 1 + 5 x 2 + 10 x 3 + 15 x 4 ≤ 100
x 1 ≥ 0,x 2 ≥ 0,x 3 ≥ 0,x 4 ≥ 0
Maximizar z = 4 x 1 + 5 x 2 + 9 x 3 +11 x 4 + 0 x 5 + 0 x 6 + 0 x 7
Sujeito a:
x1 + x 2 + x 3 + x 4 +x 5 = 15
7 x 1+5 x 2 +3 x 3 + 2 x 4 + x 6 = 120
3 x 1 + 5 x 2 + 10 x 3 + 15 x 4 + x 7 = 100
x1 x2 x3 x4 x5 x6 x7
z 0 4 5 9 11 0 0 0
x5 15 1 1 1 1 1 0 0
x6 120 7 5 3 2 0 1 0
x7 100 3 5 10 15 0 0 1
Como as variáveis de folga formam uma base canônica, é possível transcrever no quadro já a base inversa, como acima,
evitando-se o cálculo da inversa da base.
x1 x2 x3 x4 x5 x6 x7
z 0 4 5 9 11 0 0 0
x5 15 1 1 1 1 1 0 0
x6 120 7 5 3 2 0 1 0
x7 100 3 5 10 15 0 0 1
x1 x2 x3 x4 x5 x6 x7
z 0 4 5 9 11 0 0 0
x5 15 1 1 1 1 1 0 0 15/1
x6 120 7 5 3 2 0 1 0 120/2
x7 100 3 5 10 15 0 0 1 100/15
5. Passo 4 do algoritmo: Operação de cálculo dos valores de solução associados à nova base
No caso do uso do quadro Simplex, essa fase corresponde ao denominado pivoteamento, que permite a atualização das
matrizes de cálculo do problema através do método das operações elementares. No caso do uso do algoritmo Simplex
Método Simplex 155
Revisado o processo será focalizado basicamente na variável que entra na base. Para fazer o pivô igual a 1, é necessário
dividir a linha do pivô por 15.
x1 x2 x3 x4 x5 x6 x7
z 0 4 5 9 11 0 0 0
x5 15 1 1 1 1 1 0 0
x6 120 7 5 3 2 0 1 0
x7 20/3 1/5 1/3 2/3 1 0 0 1/15
x1 x2 x3 x4 x5 x6 x7
z -220/3 9/5 4/3 5/3 0 0 0 -11/15
x5 25/3 4/5 2/3 1/3 0 1 0 -1/15
x6 320/3 33/5 13/3 5/3 0 0 1 -2/15
x4 20/3 1/5 1/3 2/3 1 0 0 1/15
Observe-se que o elemento da linha de x6, que é igual a 2, para ser anulado é somado ao pivô multiplicado por -2. Para não
alterar o determinante da base toda a linha de x4 é multiplicada por -2 e somada com a linha de x6. Por exemplo, ao elemento
com valor 3 na coluna de x3 soma-se -2(2/3), resultando 5/3.
x1 x2 x3 x4 x5 x6 x7
z -220/3 9/5 4/3 5/3 0 0 0 -11/15
x5 25/3 4/5 2/3 1/3 0 1 0 -1/15 125/12
x6 320/3 33/5 13/3 5/3 0 0 1 -2/15 1600/99
x4 20/3 1/5 1/3 2/3 1 0 0 1/15 100/3
156 Programação Linear e Fluxos em Redes
8. Passo 4 do algoritmo: Operação de cálculo dos valores de solução associados à nova base
x1 x2 x3 x4 x5 X6 x7
z -220/3 9/5 4/3 5/3 0 0 0 -11/15
x1 125/12 1 5/6 5/12 0 5/4 0 -1/12
x6 320/3 33/5 13/3 5/3 0 0 1 -2/15
x4 20/3 1/5 1/3 2/3 1 0 0 1/15
x1 x2 x3 x4 x5 x6 x7
z -1105/12 0 -1/6 11/12 0 0 0 -11/15
x1 125/12 1 5/6 5/12 0 5/4 0 -1/12
x6 455/12 0 -7/6 -13/12 0 -33/4 1 5/12
x4 55/12 0 1/6 7/12 1 -1/4 0 1/12
10. Passo 3 do algoritmo: Determinação da variável que sai da base (determinação do pivô)
x1 x2 x3 x4 x5 x6 x7
z -1105/12 0 -1/6 11/12 0 -9/4 0 -7/12
x1 125/12 1 5/6 5/12 0 5/4 0 -1/12 25
x6 455/12 0 -7/6 -13/12 0 -33/4 1 5/12
x4 55/12 0 1/6 7/12 1 -1/4 0 1/12 55/7
11. Passo 4 do algoritmo: Operação de cálculo dos valores de solução associados à nova base
x1 x2 x3 x4 x5 x6 x7
z -695/7 0 -3/7 0 -11/7 -13/7 0 -5/7
x1 50/7 1 5/7 0 -5/7 10/7 0 -1/7
x6 325/7 0 -6/7 0 13/7 -61/7 1 4/7
x3 55/7 0 2/7 1 12/7 -3/7 0 1/7
Método Simplex 157
Y = B −1R ; x B = B −1b; z 0 = c B x B
A Figura 3.13 resume, através de um Àuxograma, os cál- z j − c j = cBy j − c j
culos necessários em cada etapa do algoritmo Simplex.
Observe-se que os cálculos do primeiro quadro do Àu- zk − c k = Max {z j − c j }
xograma ocorrem após a inversão da nova base decor- j∈J
3.4
Algoritmo Primal Simplex sem uma Inversa da Base Disponível
No algoritmo descrito anteriormente, a fase de obtenção de uma base viável para o problema foi considerada superada.
Uma forma de obter uma base viável é através da inclusão de variáveis de folga no processo de transformação para a for-
ma-padrão. Melhor que uma base viável, esse processo pode produzir uma base canônica, economizando o esforço de sua
inversão. Contudo, nem sempre na transformação para o modelo-padrão uma base canônica é alcançada. A questão que se
coloca presentemente é como superar esse caso. Seja o exemplo que se segue:
Minimizar z = − 3 x 1 − 5 x 2
Sujeito a:
x1 ≤4
x2 ≤6
3 x1 + 2 x 2 ≥ 18
x1 ≥ 0 , x 2 ≥ 0
158 Programação Linear e Fluxos em Redes
Que ao ser convertido para a forma-padrão pelo tradicional processo de adição de variáveis de folga se transforma em:
Minimizar z = − 3 x1 − 5 x 2 + 0 x 3 + 0 x 4 + 0 x 5
Sujeito a:
x1 + x3 = 4
x2 + x4 = 6
3 x1 + 2 x 2 − x5 = 18
x1 ≥ 0 , x 2 ≥ 0 , x 3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0
6 A B
⎡1 0 0 ⎤
B = ⎢⎢0 1 0 ⎥⎥
⎢⎣0 0 − 1⎥⎦
C
Diante da impossibilidade de utilizar B para dar início ao algoritmo Simplex, existem dois caminhos a adotar:
9 Descobrir uma base viável (pontos A, B ou C) através de um método qualquer e, então, aplicar o Simplex a partir
dessa base.
9 Usar o próprio Simplex para gerar uma base viável, a partir de uma base qualquer inviável.
Parece natural adotar a segunda alternativa, pois evitaria a mistura de mais de um método de solução no mesmo algoritmo.
Os mais conhecidos métodos de solução que empregam o Simplex para encontrar a base viável inicial são baseados na
utilização de variáveis arti¿ciais. Uma variável arti¿cial é uma variável arbitrária, introduzida no Modelo de Programação
Matemática para algum ¿m algorítmico especí¿co. As variáveis arti¿ciais não são variáveis lógicas, de modelagem ou asso-
ciadas ao funcionamento do modelo. Destinam-se a produzir efeitos que auxiliaram a solução do modelo.
Uma primeira possibilidade de utilização do Simplex é introduzir uma variável de folga positiva e arti¿cial no modelo, de forma a
criar a base viável, todavia associada a um custo muito elevado. Em virtude do custo arbitrariamente elevado dessa variável, é
esperado que o Simplex busque removê-la da base, tão logo seja possível, encontrando, com isso, uma base real. Observe-se
que as variáveis de folga legítimas possuem sempre custo zero. Esse método foi proposto por Charnes, Cooper & Henderson
em 1953, e denominado método do grande M (ou big M), em virtude da grande penalidade associada às variáveis arti¿ciais. O
método big M caiu em desuso pela degenerescência numérica induzida pelo grande valor dos custos das variáveis arti¿ciais.
Quando M é um valor “muito grande”, ocorrem erros numéricos decorrentes de arredondamentos nas divisões do algoritmo,
1. B é uma base, contudo, não atende à exigência de que conduza a uma solução em que todas as variáveis serão maiores ou iguais a zero. Consequentemente, B não
é uma base viável para o modelo proposto.
Método Simplex 159
especialmente quando a diferença entre o M e os valores dos demais custos do quadro é excessivamente grande. Por outro
lado, quando M é adotado inconvenientemente “pequeno” as variáveis arti¿ciais podem produzir efeitos de modelagem. Com
valores pequenos, as variáveis “arti¿ciais” podem ser tomadas pelo algoritmo por variáveis reais.
Uma segunda alternativa é introduzir variáveis arti¿ciais capazes de criar uma base viável, todavia associadas, normalmen-
te, a custos unitários (contudo, não há necessidade de que sejam obrigatoriamente unitários). Nessa estratégia, o Simplex
soluciona o modelo em duas etapas. A primeira, associada à determinação da base viável, minimiza o número de variáveis
arti¿ciais na base. A segunda, partindo de uma base viável do problema, aplica o método tradicional do primal Simplex. Exa-
tamente por desenvolver a solução em duas etapas, o método de solução é denominado, genericamente, método das duas
fases. O método foi sugerido em 1955, por Dantzig, Orden e Wolfe.
x 3 x 4 x 6a
A introdução da variável arti¿cial permite dispor da base
a
canônica ao lado. A variável arti¿cial x 6 não pertence ⎡1 0 0 ⎤
ao modelo, constituindo-se em um artifício para solu- ⎢
B= 0 1 0
⎥
cionar o problema através do uso do algoritmo Simplex,
⎢ ⎥
⎢⎣0 0 1 ⎥⎦
sem qualquer modi¿cação em seus critérios.
A variável arti¿cial introduzida, de fato, representa a opção de inversão da direção da restrição 3 x 1 + 2 x 2 ≥ 18. A variável
arti¿cial comporta-se como uma “folga” positiva, o que somente seria possível diante de uma restrição do tipo menor ou
igual, d. Considerando-se que a restrição associada à variável de folga seja “invertida”, a origem, anteriormente eliminada
do universo de soluções viáveis, agora passa a pertencer ao modelo, fornecendo uma base inicial viável ao Simplex, como
exempli¿ca a Figura 3.14.
x2 x2
Minimize Z = -3x1 - 5x2 Minimize Z = -3x1 - 5x2
Sujeito a: A Sujeito a:
6 A B 3x1 + 2x2 ≥ 18 6 B 3x1 + 2x2 ≤ 18
x1 ≤4 ≥ x1 ≤4
x2 ≤ 6 x2 ≤ 6
C
≤ C
Base formada pelas variáveis de folga é inviável Base formada com auxílio da variável artificial
0 x1 0 x1
0 2 4 0 2 4
Figura 3.15. Criação arti¿cial de uma base viável para a inicialização do algoritmo Simplex
160 Programação Linear e Fluxos em Redes
Como uma variável arti¿cial não é uma variável legítima do problema, inclusive violando pelo menos uma restrição do modelo,
não faz sentido que possua custo igual a zero. Realmente o que se deseja é eliminar tais variáveis do modelo. Uma forma de
realizar essa tarefa é penalizando a utilização dessas variáveis espúrias na solução ¿nal do modelo. É exatamente sobre o cál-
culo dessa penalização que os dois métodos de solução mais conhecidos diferem. Enquanto as variáveis de folga não possuem
custos, apesar de estarem ligadas ao sentido lógico do modelo, as arti¿ciais estão ligadas somente à estratégia adotada para a
obtenção de uma base viável para o Simplex. Seu sentido é simplesmente operacional para o algoritmo, sem papel no modelo.
Usualmente a estratégia adotada no algoritmo é a de minimizar o número dessas variáveis na solução básica do problema. Para
tal, o valor adotado para o símbolo “?” pode ser 1, para simplesmente permitir a realização de sua contagem.
O método que minimiza as variáveis arti¿ciais com custo igual a 1 é o método das duas fases. Na primeira fase, uma função
objetivo arti¿cial é encarregada de somar as variáveis arti¿cias na base, minimizando o seu número na base. Qualquer que
seja a função objetivo do Modelo de Programação Matemática, no método das duas fases a função objetivo da primeira fase
é de minimização. Na segunda fase, se todas as variáveis arti¿cias ao nível não nulo são eliminadas da base, uma base
viável do modelo é alcançada e o método Simplex clássico pode ser realizado a partir dessa base viável. Caso contrário, o
modelo não possui solução.
Para exempli¿car a aplicação do método das duas fases será solucionado o modelo proposto anteriormente. O método
introduz uma nova função objetivo no quadro para controlar as iterações da primeira fase. Para distinguir as duas
funções-objetivo no quadro do exemplo, elas são nominadas por q (a nova função) e z (a função tradicional). Como previsto
no método, a função objetivo da primeira fase visa minimizar o número de variáveis arti¿ciais. De fato, a função objetivo da
primeira fase é a seguinte:
Minimizar q = 0 x 1 + 0 x2 + 0 x 3 + 0 x 4 + 0 x5 + 1x 6
a
QUADRO 3.17. Quadro inicial não canonizado do exemplo das duas fases
x1 x2 x3 x4 x5 x6a
q 0 0 0 0 0 -1 Função da 1a Fase
z 3 5 0 0 0 0 Função da 2a Fase
x3 4 1 0 1 0 0 0
x4 6 0 1 0 1 0 0
x6a 18 3 2 0 0 -1 1
Ao simplesmente transcrever os custos das variáveis básicas para o quadro, como é a prática do método Simplex,
desconsidera-se que o vetor das variáveis básicas não é nulo. Nos quadros do método clássico, quando as restrições são todas
Método Simplex 161
do tipo ≤ , os custos das variáveis da base inicial canônica são zero, cB = 0 , o que torna nulo o termo z j − c j = cB B −1a j
na primeira iteração, como já ressaltado. Neste caso é correto transcrever para o quadro a linha da função objetivo de
minimização com o sinal trocado, uma vez que z j − c j = 0 − c j . Todavia, a variável básica “arti¿cial” x6a possui um custo
unitário e zj não será igual a zero, devendo ser calculado. Isso ocorre exatamente em consequência do forçamento da
pertinência da variável arti¿cial à base. Contudo, o termo cj é nulo para todas as demais variáveis, com exceção da variável
x6a , o que conduz, para o caso dessa variável, a:
⎡ 1 0 0 ⎤ ⎡0 ⎤
z j − c j = c B B a j − c j ⇒ z 6 − c 6 = (0,0,1) ⎢⎢0 1 0⎥⎥ ⎢⎢0⎥⎥ = 1 − 1 = = 0
−1
⎡ 1 0 0 ⎤ ⎡0 ⎤
z1 − c1 = (0,0,1) ⎢⎢0 1 0⎥⎥ ⎢⎢0⎥⎥ = 3 − 0 = 3
⎢⎣0 0 1⎥⎦ ⎢⎣3⎥⎦
⎡ 1 0 0 ⎤ ⎡0 ⎤ ⎡ 1 0 0 ⎤ ⎡0 ⎤
z1 − c1 = (0,0,1) ⎢⎢0 1 0⎥⎥ ⎢⎢0⎥⎥ = 3 − 0 = 3 z 2 − c 2 = (0,0,1) ⎢⎢0 1 0⎥⎥ ⎢⎢1⎥⎥ = 2 − 0 = 2
⎢⎣0 0 1⎥⎦ ⎢⎣3⎥⎦ ⎢⎣0 0 1⎥⎦ ⎢⎣2⎥⎦
⎡1 0 0⎤ ⎡1⎤ ⎡ 1 0 0 ⎤ ⎡0 ⎤
z 3 − c 3 = (0,0,1) ⎢⎢0 1 0⎥⎥ ⎢⎢0⎥⎥ = 0 − 0 = 0 z 4 − c 4 = (0,0,1) ⎢⎢0 1 0⎥⎥ ⎢⎢1⎥⎥ = 0 − 0 = 0
⎢⎣0 0 1⎥⎦ ⎢⎣0⎥⎦ ⎢⎣0 0 1⎥⎦ ⎢⎣0⎥⎦
⎡ 1 0 0⎤ ⎡ 0 ⎤
z 5 − c 5 = (0,0,1) ⎢⎢0 1 0⎥⎥ ⎢⎢ 0 ⎥⎥ = −1 − 0 = − 1
⎢⎣0 0 1⎥⎦ ⎢⎣− 1⎥⎦
O valor dos custos reduzidos das variáveis não básicas, para o caso, é igual ao valor dos coe¿cientes das variáveis na linha em que
a variável arti¿cial é introduzida. Se houver mais de uma variável arti¿cial, o produto cB B −1a j corresponderá, então, à soma des-
ses coe¿cientes para as linhas associadas às variáveis arti¿ciais, uma vez que haverá um elemento unitário no vetor de custos
básicos para cada uma dessas linhas. Essa é a razão matemática que leva alguns textos a enunciarem que para obter a função
objetivo da primeira fase do quadro Simplex deve-se “somar as linhas das variáveis artiÀciais à linha da função objetivo”.
Outra forma de justificar a regra anterior é lembrar que o quadro Simplex trabalha com uma matriz aumentada, ou seja,
é possível “canonizar” as colunas das variáveis artificiais através do método das operações elementares. Aplicando
o método das operações elementares ao quadro Simplex, não completamente “canonizado”, como é o Quadro 3.17,
o pivoteamento aplicado à linha da nova função objetivo resultará, em última análise, na regra enunciada. A partir do
Quadro 3.17, e aplicando o pivotemento ao elemento pivô x6a para canonizar sua coluna, obtém-se o Quadro 3.18
como se segue:
162 Programação Linear e Fluxos em Redes
x1 x2 x3 x4 x5 x6a
(+) q 18 3 2 0 0 -1 0 Função da 1a Fase
z 0 3 5 0 0 0 0 Função da 2a Fase
x3 4 1 0 1 0 0 0
x4 6 0 1 0 1 0 0
x6a 18 3 2 0 0 -1 1
Aplicando-se o algoritmo Simplex, considerando a função objetivo q, como ressalta a seta, x1 entra na base e x3 sai da base,
conforme quadro que se segue:
x1 x2 x3 x4 x5 x6a
q 18 3 2 0 0 -1 0 Função da 1a Fase
z 0 3 5 0 0 0 0 Função da 2a Fase
x3 4 1 0 1 0 0 0 4/1 = 4
x4 6 0 1 0 1 0 0 --
x6a
18 3 2 0 0 -1 1 18/3 = 6
Cujo pivoteamento resultará no Quadro 3.20. Observe-se que a linha da função objetivo z é também atualizada.
x1 x2 x3 x4 x5 x6a
q 6 0 2 -3 0 -1 0 Função da 1a Fase
z -12 0 5 -3 0 0 0 Função da 2a Fase
x1 4 1 0 1 0 0 0 --
x4 6 0 1 0 1 0 0 6
x6a 6 0 2 -3 0 -1 1 3
O que ¿nalmente levará ao quadro em que a função objetivo da primeira fase foi otimizada (término da primeira fase):
x1 x2 x3 x4 x5 x6a
q 6 0 0 0 0 0 -1 Função da 1a Fase
z -27 0 0 9/2 0 5/2 -1 Função da 2a Fase
x1 4 1 0 1 0 0 0 --
x4 3 0 0 3/2 1 1/2 -1/2 6
x2 3 0 1 -3/2 0 -1/2 1/2 3
Método Simplex 163
A partir desse quadro, a linha de custos reduzidos pode desconsiderar a variável x6a no processo, sem qualquer perda de
informações para o algoritmo. Recomendando-se, portanto, que ele seja marcado evitando cálculos inúteis. Contudo, o
modelo ainda não foi solucionado. A função z não exibe regra de parada. É necessário continuar a solução na segunda.
O Quadro 3.22 mostra que a variável x3 deve entrar na base e a variável x4 deve sair:
Cujo pivoteamento leva ao Quadro 3.23 a seguir, em que x5 entra na base e x3 sai da base:
A Figura 3.16 mostra, geometricamente, a sequência das bases visitadas nas duas fases do método:
x2 x2
Z = 36
6 A B 6 A B Z = 42
q=0 C Z = 27 C
Sugere-se que o leitor resolva este mesmo exemplo utilizando algum custo elevado M (como 100, por exemplo), associado
à variável arti¿cial x6a.
3.5
Casos Especiais para o Simplex
x Degeneração e ciclagem
A convergência do algoritmo Simplex pode ser trivialmente garantida pela certeza de que, a cada passo, o critério de escolha
de troca de uma variável da base resultará em melhoria para o valor da função objetivo. Mesmo que fosse necessário exa-
minar um número exponencial de combinações de variáveis (também denominadas con¿gurações de solução), para formar
a base ótima, o algoritmo sempre terminaria em passo ¿nito, se todos os passos resultassem em melhoria.
Contudo, não existe garantia, para os modelos em geral, de que não haja a possibilidade, e mesmo a necessidade, de troca
de base, ainda que sem melhoria para a função objetivo. A Figura 3.17 exempli¿ca uma dessas situações. Supondo-se que
o caminho da troca de base alcançou o vértice B do conjunto viável das soluções, pelo caminho assinalado pelas setas (que
determina, como examinado anteriormente, a visita à sequência de bases associadas aos vértices do caminho da origem até
o ponto B). Supondo que a base ótima esteja associada ao vértice C, é possível que seja necessário ao algoritmo Simplex
realizar, nesse vértice, pivoteamentos sem garantia de que o valor da função objetivo seja melhorado.
x2 x2
D C D C P2
6 6 P1
4 4
r1
3 B 3 B
2 2
1 r2 r4
1 r3
A A
o x1 o x1
1 2 3 4 5 1 2 3 4 5
A situação exibida na Figura 3.17(a) é caracterizada por uma redundância de modelagem. No caso em exame, um vértice do
conjunto solução é determinado por várias restrições do problema. Normalmente isso é desnecessário, uma vez que um vér-
tice do universo de soluções só exige uma única base para ser bem determinado. No caso bidimensional, como no exemplo
da ¿gura, são necessárias somente duas restrições para de¿nir uma base. Como o ponto B possui quatro restrições associa-
das (r1, r2, r3 e r4), as bases formadas por r1 e r2, por r1 e r3, r1 e r4, e demais combinações tomadas duas a duas, tanto deter-
minam o mesmo ponto, quanto possuem o mesmo valor associado à função objetivo. Assim, o caso admite a possibilidade
de pivoteamentos como os exempli¿cados como p1 e p2 na Figura 3.17(b), em que são trocadas variáveis de folga na base
associadas a diferentes restrições, mas com os mesmos valores, por se referirem à mesma base. Como a contribuição para
a função objetivo de todas as variáveis de folga no ponto é a mesma, caracterizam-se condições onde os z j -c j associados
bs
e as razões são iguais, ocorrendo empates, tanto para o critério de entrada na base quanto para o critério de saída da
y sk
base no Simplex. O empate no critério para a entrada na base permite, no caso da redundância, a criação de sequências
Método Simplex 165
circulares de pivoteamentos, levando o algoritmo à ciclagem e à perda da garantia de convergência. Observe-se que nem
todas as situações de empate para entrada na base resultam em possibilidade de ciclagem (exercício 14 deste capítulo).
Eventualmente, o empate pode se dar associado a diferentes bases. O Quadro 3.25 exempli¿ca a situação descrita:
QUADRO 3.25. Exemplo de empates nos critérios de seleção de variáveis (entrada e saída)
x1 x2 x3 x4 x5 x6 x7
z 0 0 0 1 1 -1 0
x1 0 1 0 0 1 3 1 0 0
x2 1 0 1 0 0 -2 -1 0
x7 0 0 0 0 1 2 0 1 0
x3 2 0 0 1 1 0 0 0
O empate na saída produz, no pivoteamente que se segue ao empate, a eliminação da possibilidade de crescimento de, pelo menos,
uma variável da base. Nesse caso, a variável xj, que entra associada à linha anulada, não poderá assumir valor diferente de zero. De
fato, esse valor nulo indica que a linha da matriz está associada a uma restrição redundante e que o rank da matriz é, no máximo, m-1.
Quando um certo ponto extremo do conjunto C das soluções viáveis do Modelo de Programação Matemática está associado a mais
restrições do que as estritamente necessárias para a de¿nição desse mesmo ponto o conjunto de restrições é linearmente depen-
dente e existe a possibilidade de que ocorra, em um certo estágio do desenvolvimento do Simplex, uma degeneração. O surgimen-
to de um valor nulo associado a algum termo b i do vetor de termos independentes em uma iteração do Simplex pode ser também
interpretado como decorrente do fato de folgas associadas a restrições redundantes estarem sendo esgotadas simultaneamente.
Apesar de alguns autores a¿rmarem que a ciclagem do algoritmo Simplex sem correção lexicográ¿ca é um fato desconhecido
em problemas práticos, o primeiro autor deste texto deparou-se com vários exemplos de ciclagem na solução de aplicações
reais envolvendo o problema de particionamento não ponderado de grande porte (Goldbarg, 1990). Para o Simplex, a Regra
de Bland torna-se de utilização indispensável (Bland,1977).
Regra de Bland
1. Entre as candidatas a entrar na base selecionar a variável xk que possui o menor índice.
2. Entre as candidatas a sair da base selecionar a variável xr que possui o menor índice.
A regra do “menor índice” é capaz de esgotar a discussão da ciclagem no algoritmo Simplex, como o método lexicográ¿co
(Chvátal, 1983). Observar que é possível trocar a regra do “menor índice” pela do “maior índice”.
Maximizar z = x 1 + 5 x 2
Seja o modelo ao lado, onde já es- Sujeito a : + x2 + x3 = 10
tão adicionadas as variáveis de folga
(x3 até x7) e a variável arti¿cial xa. x1 − x4 + xa =5
x1 + x5 = 10
x1 + x2 + x6 = 15
0 x1 + 6x 2 + x7 = 11
166 Programação Linear e Fluxos em Redes
QUADRO 3.26. Quadro inicial não canônico para o método das duas fases
Transcrição x1 x2 x4 x3 xa x5 x6 x7
q 0 0 0 0 -1 0 0 0
z 1 5 0 0 0 0 0
x3 10 0 1 0 1 0 0 0 0
xa 5 1 0 -1 0 1 0 0 0
x5 10 1 0 0 0 0 1 0 0
x6 15 1 1 0 0 0 0 1 0
x7 110 10 6 0 0 0 0 0 1
Obtém-se o quadro canônico, a partir do quadro não canônico, anulando o valor de z a − c a através do pivoteamento Simplex.
QUADRO 3.27. Quadro inicial canônico para o método das duas fases
Inicial x1 x2 x4 x3 xa x5 x6 x7
q 5 1 0 -1 0 0 0 0 0 1a fase
z 0 1 5 0 0 0 0 0
x3 10 0 1 0 1 0 0 0 0 -
xa 5 1 0 -1 0 1 0 0 0 5
x5 10 1 0 0 0 0 1 0 0 10
x6 15 1 1 0 0 0 0 1 0 15
x7 110 10 6 0 0 0 0 0 1 11
O Quadro 3.27 não possui regra de parada quando considerada a função q, devendo a variável x1 entrar na base, enquanto
a variável arti¿cial xa deixa a base. Após o pivoteamento, a única variável do modelo arti¿cial deixa a base e a 1a fase do
método é concluída, como exibe o Quadro 3.28.
2o Quadro x1 x2 x4 x3 xa x5 x6 x7
q 0 0 0 0 0 -1 0 0 0 Fim 1a fase
z -5 0 5 1 0 0 0 0
x3 10 0 1 0 1 0 0 0 0 10 (empate)
x1 5 1 0 -1 0 1 0 0 0
x5 5 0 0 1 0 -1 1 0 0
x6 10 0 1 1 0 -1 0 1 0 10 (empate)
x7 60 0 6 10 0 -10 0 0 1
Método Simplex 167
O Quadro 3.28 exibe um empate na saída da base entre as variáveis x1 e x6. De modo a aplicar a regra de Bland, a variável
escolhida para deixar a base será x3, variável de menor índice.
Terceiro x1 x2 x4 x3 xa x5 x6 x7
q 0 0 0 0 0 -1 0 0 0 -------
z -55 0 0 1 -5 0 0 0
x2 10 0 1 0 1 0 0 0 0
x1 5 1 0 -1 0 1 0 0 0
x5 5 0 0 1 0 -1 1 0 0 5
x6 0 0 0 1 -1 -1 0 1 0 0
x7 0 0 0 10 -6 -10 0 0 1 -
O Quadro 3.29 exibe mais um empate na saída da base. De forma semelhante ao ocorrido no pivoteamento anterior, a es-
colha da variável que deixará a base recai sobre a de menor índice, a variável x6. Observe-se que a existência de variáveis
básicas em nível nulo na base (x6 e x7) sinaliza que as restrições associadas são redundantes. A redundância permite que
mais de uma restrição tenha sua folga simultaneamente anulada, apesar da entrada de somente uma variável básica.
Quarto x1 x2 x4 x3 xa x5 x6 x7
q 0 0 0 0 0 -1 0 0 0 ------
z -55 0 0 0 -4 0 -1 0 Fim 2a fase
x2 10 0 1 0 1 0 0 0 0
x1 5 1 0 0 0 0 0 0 0
x5 5 0 0 0 0 0 1 0 0
x4 0 0 0 1 0 -1 0 1 0
x7 0 0 0 0 4 -0 0 0 1
O Quadro 3.30 é ótimo. Observe-se que não houve alteração no valor da função objetivo após o pivoteamento, uma vez que
a troca de variáveis de folga na base não signi¿cou uma troca no ponto extremo visitado pelo algoritmo.
x2
15
3o Pivot
x1 + 5x 2
10
A Figura 3.18 exibe o caminho do algoritmo Simplex.
Observa-se o 3o pivoteamento “degenerado” que ocor-
2o Pivot
re no mesmo ponto extremo do pivoteamento anterior. 5
1o Pivot x1
5 10 15
Minimizar z = − x1 −2x 2
Seja o modelo de minimização ao lado que, após a inclusão Sujeito a:
de três variáveis de folga para a tradução para o formato-pa-
x1 ≤3
drão conduz ao tableaux Simplex inicial, constante do Quadro
x2 ≤ 4
3.31. A variável x2 possui o maior custo reduzido, sendo sele-
cionada para entrar na base. A variável x4 é selecionada para x1 + 2x 2 ≤ 9
deixar a base. x1 ≥ 0, x 2 ≥ 0
x1 x2 x3 x4 x5
z 0 1 2 0 0 0
x3 3 1 0 1 0 0
x4 4 0 1 0 1 0 4/1 = 4
x5 9 1 2 0 0 1 9/2 = 4,5
Após a entrada de x2 na base e o pivoteamento, o Quadro 3.26 é reduzido ao Quadro 3.32, como se segue:
x1 x2 x3 x4 x5
z -8 1 0 0 -2 0
x3 3 1 0 1 0 0
x2 4 0 1 0 1 0
x5 1 1 0 0 -2 1
x1 x2 x3 x4 x5
z -8 1 0 0 -2 0
x3 3 1 0 1 0 0 3
x2 4 0 1 0 1 0
x5 1 1 0 0 -2 1 1
Resultando, após o pivoteamento, no Quadro 3.34, que possui regra de parada, com todos z j − c j ≤ 0 .
x1 x2 x3 x4 x5
z -9 0 0 0 0 -1
x3 2 0 0 1 2 -1
x2 4 0 1 0 1 0
x1 1 1 0 0 -2 1
A solução ¿nal é: z = -9, x3 = 2; x2 = 4; x1 = 1. Contudo, é possível gerar uma “outra” base (ponto extremo) com o mesmo
valor da função objetivo, ou seja, com o mesmo valor ótimo. Para tal, basta continuar o processo de pivoteamento incluindo
a variável x4 na solução. O quadro a seguir mostra que a variável que deverá sair é de x3.
QUADRO 3.35. Pivoteamento forçado em variável com z j − c j = 0
x1 x2 x3 x4 x5
z -9 0 0 0 0 -1
x3 2 0 0 1 2 -1 2/2 = 1
x2 4 0 1 0 1 0 4
x1 1 1 0 0 -2 1 (valor negativo)
Observa-se que o pivoteamento do Quadro 3.35, ainda que viole a regra de parada, é possível e não viola as condições de
viabilidade do modelo. Quando realizado, conduz ao Quadro 3.31, que também é um quadro ótimo, com z = -9, x4 = 1; x2 =
3; x1 = 3. Não seria esperado que a função z fosse alterada, uma vez que z 4 − c 4 = 0 . Mas a base alcançada é diferente
da base ótima inicial.
x1 x2 x3 x4 x5
z -9 0 0 0 0 -1
x4 1 0 0 1/2 1 -1/2
x2 3 0 1 -1/2 0 1/2
x1 3 1 0 1 0 0
170 Programação Linear e Fluxos em Redes
3 C
A variável x4 é a folga associada à restrição representada pelo
segmento de reta AB. x5 é a folga associada à restrição BC e ⎧x = 3
2 C=⎨ 1 z=9
x3 é a folga associada à restrição representada pelo segmento ⎩x 2 = 3
de reta CD. Quando, por pivoteamento, o algoritmo escolhe o
ponto A como solução, a variável x4 é substituída por x2, uma 1
vez que a folga do segmento AB é anulada. Quando o ponto
D
B é escolhido, a variável x5 é substituída por x1, anulando-se a
o 1 2 3 4 5 x1
folga do segmento BC.
Figura 3.19. In¿nitas Soluções Ótimas
3.6
Simplex Revisado
x B = B −1b; z 0 = c B x B
z j − c j = c B B −1a j − c j
A característica que diferencia o denominado Sim-
plex Revisado do método tradicional é o fato do al-
goritmo não calcular todas as colunas da matriz Y a z k − c k = Max {z j − c j } y k = B −1ak
j∈J
cada iteração.
N
zk − ck > 0 ? xB Ótima
Somente a coluna yk, associada à variável de índice k
que entra na base, é calculada, uma vez que será ne-
S
cessária para a determinação da inversa da base atra-
S
vés do pivoteamento. yk ≤ 0 Ilimitada
N
No Simplex Revisado não se utiliza o tableaux do méto-
do tradicional, de forma que o algoritmo pode ser resu- xr ⎧x ⎫
= mínimo ⎨ s :y sk > 0⎬
mido exclusivamente por suas operações matemáticas, y rk s∈I
⎩ y sk ⎭
como mostra o Àuxograma da Figura 3.20.
3.7
Exercícios Propostos
1 Revisão da Teoria
☺
Responda com Certo ou Errado justi¿cando sua escolha:
2. Seja x* uma solução ótima de um PPL a. ( ) x* pode ser sempre obtida por uma combinação linear convexa de dois ou
e M o conjunto de todas as suas solu- mais pontos distintos de M;
ções viáveis. Então:
b. ( ) x* só pode ser obtida por uma combinação linear convexa de dois ou
mais pontos distintos de M se M for limitado;
c. ( ) x* corresponde sempre a um vértice da envoltória convexa de M, mesmo
quando M é ilimitado;
d. ( ) x* é um vértice apenas no caso de não haver degeneração
4. Se o conjunto de soluções viáveis do a. ( ) será necessário utilizar o método das duas fases para obter a
PPL não for limitado, em alguma itera- inviabilidade;
ção do algoritmo Simplex:
b. ( ) pelo menos uma das colunas correspondentes a variáveis não básicas
com z j − c j ≥ 0 é formada por elementos nulos e negativos;
c. ( ) existirá uma variável não básica com maior z j − c j formada por
elementos nulos ou negativos;
d. ( ) existirá mais de uma variável não básica candidata a entrar na base com
o mesmo valor de z j − c j ≥ 0 .
172 Programação Linear e Fluxos em Redes
5. Se, em uma determinada iteração do a. ( ) uma variável deixa a base, na próxima iteração ela não poderá entrar
algoritmo Simplex: novamente na base;
b. ( ) uma variável entra na base, na próxima iteração ela não poderá deixá-la;
c. ( ) existe uma variável arti¿cial na base a nível não nulo e existem variáveis
não básicas com z j − c j ≥ 0 , a primeira fase do método das Duas Fases
ainda não chegou ao ¿m;
d. ( ) todas as variáveis não básicas possuem z j − c j ≤ 0 , a solução ótima foi
alcançada;
e. ( ) todas as variáveis não básicas possuem z j − c j ≤ 0 , a solução é
limitada
Problema 3. Uma empresa fabrica dois tipos de bolsas de plástico (B1, B2) cujos mercados absorvem respectivamente 80
e 60 unidades diárias. O processo de produção consome dois tipos de matéria-prima: folhas de plásticos e fechos. Cada
unidade de B1 consome duas folhas de plástico e quatro fechos. Cada unidade de B2 consome três folhas de plástico e três
fechos. São disponíveis diariamente 200 folhas de plástico e 240 fechos. Os lucros unitários pelas vendas dos produtos são,
respectivamente, R$ 20 e R$ 25. Qual deve ser o esquema de produção que conduza ao maior lucro possível?
x1 +x 3 =4
− x1 + x 2 + x 3 + x 4 − 2x 5 = 4
x2 + x4 =6
Conjunto 1 Conjunto 2 + x1 − 2x 2 + x4 − x5 = 3
3 x1 + 2 x 2 + x 5 = 18
x 1≥ 0,x 2 ≥ 0, x 3 ≥ 0,x 4 ≥ 0, x 5 ≥ 0
x i ≥ 0 i = 1,..5
João, muito nervoso, está terminando sua prova de Programação Linear quando descobre que errou, logo no primeiro qua-
dro, as contas no cálculo dos custos reduzidos ( z j − c j ) de uma das questões. Desesperado, correu até o professor e pediu
mais tempo para que pudesse refazer os quadros e não ser prejudicado por um erro tão simples. O professor examinando o
quadro ¿nal e inicial do problema deu a seguinte solução:
“João, refaça apenas os cálculos para o último quadro. Isso será su¿ciente. Nesse caso, considerarei a questão correta!
Nem precisava, mas vou lhe dar mais 5 minutos para isso... boa sorte”.
Ajude João a corrigir o seu erro sem ter que refazer todos os pivoteamentos anteriores.
x1 x2 x3 x4 x5 x6
z 0 -1 -3 4 0 0 0
x4 9 1 1 2 1 0 0
x5 2 1 1 -1 0 1 0
x6 4 -1 1 1 0 0 1
x1 x2 x3 x4 x5 x6
z -17 0 -6 0 -1 0 -2
x4 1/3 1 -1/3 0 1/3 0 -2/3
x5 6 0 2 0 0 1 1
x6 13/3 0 2/3 1 1/3 0 1/3
b) Seria possível solucionar esse problema com o uso do Simplex? Justi¿que a resposta.
Minimizar z = − 4 x1 − 12x 2 − 6x 3
Sujeito a:
4 x1 + 10 x 2 + 7x 3 ≤ 480
Modelo 3:
x1 + x 2 + x 3 ≤ 100
x1 + x 2 + x 3 ≥ 60
x i ≥ 0 i = 1, 2,3
Maximizar z = x1 + x 2 Maximizar z = x1 + x 2
Sujeito a : Sujeito a :
Modelo 1: 2x1 + x 2 ≤ 10 Modelo 2: 2x1 + x 2 ≥8
x1 + 2x 2 ≤ 10 x1 + 2x 2 ≥ 8
xi ≥ 0 i = 1,2 xi ≥ 0 i = 1,2
Minimizar z = 4 x1 + 12x 2
Sujeito a :
Modelo 5: − 6x1 + 2x 2 ≤ 80
2x1 − x 2 ≥ 60
xi ≥ 0 i = 1,2,3
Praça de
Retorno
Apanha de
outros Sais
no 3º Mês Campo de Campo de
Evaporação Evaporação
Apanha de Apanha de
7 toneladas outros Sais outros Sais 6 toneladas
no 2º Mês no 2º Mês
Apanha de
Sal Grosso
no 3º Mês
Campo de Campo de
Cristalização Cristalização
Apanha de Apanha de
400 toneladas Sal Grosso Sal Grosso 3300 toneladas
no 2º Mês no 2º Mês
Campo de Campo de
Cristalização Cristalização
200 toneladas Apanha de Apanha de 200 toneladas
Sal Grosso Sal Grosso
no 2º Mês no 2º Mês
Acesso
5 minutos do
Depósito Caminhão
de 3 minutos
Comercialização
Uma livraria considera a possibilidade de formar um estoque de dois livros de conhecidos autores para as férias que se
aproximam. Um livro é de terror e o outro é de histórias fantásticas. Quatro editoras oferecem pacotes de descontos desses
livros. A editora A fornece 5 livros de terror e 6 livros de histórias fantásticas por 60 UM. A editora B fornece 10 livros de
Método Simplex 181
terror e 2 de histórias fantásticas por 70 UM. A editora C fornece 10 livros de terror e 10 de histórias fantásticas por 100 UM.
Finalmente, a editora D fornece 3 livros de terror e 6 de histórias fantásticas por 40 UM. Quantos pacotes e de quais editoras
são necessários adquirir para que a livraria possua pelo menos 5.000 livros de terror e 2.000 livros de histórias fantásticas a
custo mínimo? Com informações do departamento de marketing, sabe-se que existirá uma demanda segura para 500 livros
de terror comercializados a 2 UM e 1.000 livros de histórias fantásticas comercializados a 8 UM. Programar a compra ótima
de forma a atender toda a demanda levantada.
A Colector, uma rede de depósitos da marca de TVs Sunrise recebeu uma encomenda de TV Dual-View 60 polegadas
originada do site de comércio on-line, denominado e-comprão, durante a Black Friday. O e-comprão solicitou apoio do
fornecedor para atender a demanda em algumas capitais brasileiras onde seu estoque era insu¿ciente para a demanda. O
pedido do e-comprão é menor que o total das TVs em estoque na rede, contudo, nem todos os depósitos possuem unidades
su¿cientes para atender a própria cidade, enquanto alguns depósitos possuem TVs que podem ser fornecidas para outras
cidades. Os fornecimentos na própria cidade da venda não oneram os custos do fornecedor da marca. São conhecidos os
custos de transporte entre as cidades e os estoques em cada unidade da rede, conforme mostra a Figura 3.23. O tempo de
transporte não está em consideração. Na ¿gura, D é a demanda informada pelo e-comprão e a letra E é a quantidade de
TVs em estoque na cidade. Os valores sobre as arestas do grafo representam os custos de transporte de uma unidade de
TV. Programar a movimentação do estoque da Colector de forma a minimizar os custos de entrega.
D = 20
Boa Vista
E=0
D = 45 Fortaleza
E = 30
1 U.M.
D = 20
Natal
E = 25
7 U.M. 3 U.M.
4 U.M. 2 U.M. 1 U.M.
D = 30
Recife
D = 30 4 U.M. E = 60
Brasília
E = 50 1 U.M.
2 U.M. 1 U.M. Salvador D = 25
D = 20 2 U.M. E = 20
Campo Grande 2 U.M.
E=5
D = 20
D = 30 Belo Horizonte 1 U.M. Vitória
E=5
E = 60
3 U.M. 1 U.M. 1 U.M.
D = 100
1 U.M. Rio de Janeiro
D = 25 E = 70
E = 10
Curitiba
2 U.M.
D = 30
E = 35 Porto Alegre
Com o aumento das tarifas de energia elétrica tornou-se interessante considerar políticas mais e¿cientes para o uso da
energia nas casas modernas. A primeira diz respeito à iluminação. Em uma casa, existe a possibilidade de trocar as lâm-
padas Àuorescentes por uma nova tecnologia LED. Cada lâmpada LED custa 15 UM e permite uma economia anual de 2
UM sobre o consumo da lâmpada Àuorescente substituída. A segunda possibilidade de ganho em energia da casa é a da
troca dos vidros de algumas janelas que, além de melhorar a iluminação diurna, podem reduzir o uso do ar-condicionado.
Cada metro quadrado de vidros substituídos custa 80 UM e permite um ganho de 10 UM sobre o consumo anual. A terceira
possibilidade é a instalação de sistemas de recuperação de calor nos banheiros. Cada sistema custa 300 UM e permite um
ganho anual de 60 UM. As lâmpadas LED possuem vida útil de 14 anos, os vidros das janelas de 20 anos e o sistema de
recuperação de calor de 12 anos. As lâmpadas LED que queimarem, após concluída sua vida útil, podem ser substituídas
pelas lâmpadas que existem hoje e que possuem ainda vida útil estimada em 10 anos. Existem 80 lâmpadas na casa que
podem ser substituídas. Existem 10 metros quadrados de vidros que podem ser trocados. São disponíveis 1.000 UM para o
investimento, e o morador da casa imagina que permaneça no imóvel por 15 anos. Sob as condições descritas, programar o
melhor uso dos recursos. Qual será a economia máxima possível para o proprietário quando ele deixar o imóvel após os 15
anos? Por se tratar de um problema de programação inteira, alcance o limite superior relaxado para o problema e forneça
uma solução inteira viável pelo método do arredondamento.
Um departamento de ciência da computação deseja modernizar seu parque de computadores em uso na graduação. Exis-
tem disponíveis três novos tipos de notebooks: Data Alta (DA), Alta Data (AD) e Sem Data (SD). A Tabela 3.3 especi¿ca as
características de cada computador
Sabendo-se que o departamento deseja adquirir 350 computadores, disponibilizar 1.000 TB de memória em discos rígidos
e possuir pelo menos 150 computadores com memória de 4KxGB ou mais. Sabendo-se ainda que a proporção entre com-
putadores DA e AD não pode ser maior que 1,5 e que os computadores com tela de Retina não podem ultrapassar 180,
formular o modelo que minimiza o investimento do departamento. Buscar uma solução inteira (se for o caso, aproximada)
para o modelo. Observar que Q = 10 e K = 1000.
Método Simplex 183
O ponto ideal de venda dos frutos de uma colheita depende de diversos indicadores relacionados à planta, ao fruto e às ca-
racterísticas de produção e de mercado. De fato é um fator signi¿cativo para a saúde humana. No caso em pauta, devido ao
clima e umidade, no primeiro mês da colheita estão prontos os frutos pioneiros, que não possuem as características plenas
desejadas. No segundo mês ¿cam prontos os frutos intermediários. Finalmente, no terceiro mês, são colhidos os melhores
frutos. Um fruto pode ser deixado no pé, mas isso não ajuda em suas características. A Tabela 3.4 exibe a evolução das
características da safra de frutos. O fruto colhido em determinado mês possuirá as características assinaladas na tabela. Se
os frutos que devem ser colhidos no mês i forem deixados no pé e colhidos no mês i+1, decrescerão todas as características
previstas na Tabela 3.4 em 10%. Se deixados no pé após isso, serão completamente perdidos no mês i+2.
Os frutos colhidos podem ser estocados com refrigeração para manter as características do momento da colheita. Isso pode
ser feito por quatro meses, sem qualquer perda de características. Dessa forma, o fruto colhido no 1o mês pode ser vendido
no 1o mês sem refrigeração e, no segundo, terceiro e quarto mês, caso refrigerado. Observar que a parcela refrigerada conta
desde o mês da colheita. A refrigeração custa 1 UM por mês e por fruto. Quando colocado à venda, o fruto alcança os valores
previstos na Tabela 3.5.
As características do fruto não são facilmente avaliadas pelo consumidor no momento da compra, todavia, a impressão
sobre a oferta vai se consolidar após o consumo e será transferida para a marca. Uma má avaliação prejudicará a marca do
produto e é altamente danosa. Para evitar a má avaliação, o produtor deve garantir que o aspecto estético médio dos frutos
vendidos seja sempre superior a 80% e os nutricionais superior a 85%. Programar o melhor esquema de venda dessa fruta.
Solucionar o problema através do Simplex.
3.7
Solução dos Exercícios Propostos
Revisão da Teoria 1
1.
a. ( F ) o sistema m x m é determinado;
b. ( F ) o sistema é determinado mas pode não ter solução;
c. ( F ) o sistema é determinado e pode ter uma solução in¿nita;
d. ( V ) o sistema pode ter in¿nitas soluções.
e. ( F ) o Simplex somente pode solucionar esse sistema caso exista pelo menos uma solução não negativa.
2.
a ( F ) x* pode ser sempre obtida por uma combinação linear convexa de dois ou mais pontos distintos de M;
b ( F ) x* só pode ser obtida por uma combinação linear convexa de dois ou mais pontos distintos de M se M for limitado;
c ( F ) x* corresponde sempre a um vértice da envoltória convexa de M, mesmo quando M é ilimitado;
d ( F ) x* é um vértice apenas no caso de não haver degeneração;
3.
a. ( F ) a solução do problema é impossível ou ilimitada;
b. ( F ) a solução pode não ocorrer em um vértice porque o espaço das soluções não é convexo;
4.
a. ( F ) será necessário utilizar o método das duas fases para obter a inviabilidade;
b. ( F ) pelo menos uma das colunas correspondentes a variáveis não básicas com z j − c j ≥ 0 é formada por elementos
nulos e negativos;
c. ( F ) existirá uma variável não básica com maior z j − c j formada por elementos nulos ou negativos;
d. ( F ) existirá mais de uma variável não básica candidata a entrar na base com o mesmo valor de z j − c j ≥ 0
5.
a. ( V ) uma variável deixa a base, na próxima iteração ela não poderá entrar novamente na base;
b. ( F ) uma variável entra na base, na próxima iteração ela não poderá deixá-la;
Método Simplex 185
c. ( V ) existe uma variável arti¿cial na base a nível não nulo e existem variáveis não básicas com z j − c j ≥ 0 , a primeira
fase do método das Duas Fases ainda não chegou ao ¿m;
d. ( V ) todas as variáveis não básicas possuem z j − c j ≤ 0 a solução ótima foi alcançada;
e. ( v ) todas as variáveis não básicas possuem z j − c j ≤ 0 a solução é limitada.
6. Quando existem variáveis não básicas com z j − c j = 0 no quadro ótimo do Simplex, então:
a. ( F ) existe degeneração;
b. ( V ) existem in¿nitas soluções ótimas para o problema;
c. ( F ) esse fato é absolutamente normal na condição de parada e a solução é única;
d. ( V ) as variáveis não básicas com z j − c j = 0 podem ser introduzidas na base gerando, com isso, novas soluções
ótimas.
Quadro inicial
x1 x2 x3 x4 x5
z 0 4 7 0 0 0
x3 6 1 0 1 0 0
x4 8 0 1 0 1 0 8
x5 10 4 -2 0 0 1
186 Programação Linear e Fluxos em Redes
Segundo Quadro
x1 x2 x3 x4 x5
z -56 4 0 0 -7 0
x3 6 1 0 1 0 0 6
x2 8 0 1 0 1 0 -
x5 26 4 0 0 2 1 26/4
Quadro Ótimo
x1 x2 x3 x4 x5
z -80 0 0 -4 -7 0
x1 6 1 0 1 0 0 6
x2 8 0 1 0 1 0 -
x5 2 0 0 -4 2 1 26/4
7
x1 ≤ 6
6
1 2 x1 − x 2 ≤ 5
x1
o
1 2 3 4 5 6 7
Quadro inicial
x1 x2 x3 x4 x5
z 0 2 3 0 0 0
x3 8 1 0 1 0 0 -
x4 4 0 1 0 1 0 4
x5 5 -2 1 0 0 1 5
Método Simplex 187
Segundo Quadro
x1 x2 x3 x4 x5
z -12 2 0 0 -3 0
x3 8 1 0 1 0 0 8
x2 4 0 1 0 1 0 -
x5 1 -2 0 0 -1 1 -
Quadro Ótimo
x1 x2 x3 x4 x5
z -28 0 0 -2 -3 -0
x1 8 1 0 1 0 0
x2 4 0 1 0 1 0
x5 17 0 0 2 -1 1
x2 − 2 x1 + x 2 ≤ 5
6
5 z = 2x1 + 3x 2
x2 ≤ 4
4
2
x1 ≤ 8
1
x1
o
1 2 3 4 5 6 7 8
Problema 3. Modelo
Quadro inicial
x1 x2 x3 x4 x5 x6
z 0 2 3 0 0 0 0
x3 80 1 0 1 0 0 0 -
x4 60 0 1 0 1 0 0 60
x5 200 2 3 0 0 1 0 66
x6 240 4 3 0 0 0 1 80
Segundo Quadro
x1 x2 x3 x4 x5 x6
z -1500 20 0 0 -25 0 0
x3 80 1 0 1 0 0 0 80
x2 -
60 0 1 0 1 0 0
x5 20 2 0 0 -3 1 0 10
x6 60 4 0 0 -3 0 1 15
x1 x2 x3 x4 x5 x6
z -1700 0 0 0 5 -10 0
x3 70 0 0 1 3/2 -1/2 0 46,6
x2 60 0 1 0 1 0 0 60
x1 10 1 0 0 -3/2 1/2 0 -
x6 20 0 0 0 3 -2 1 6,6
Quadro Ótimo
x1 x2 x3 x4 x5 x6
z -5200/3 0 0 0 0 -20/3 -5/3
x3 60 0 0 1 0 1/2 -1/2
x2 160/3 0 1 0 0 2/3 -1/3
x1 20 1 0 0 0 -1/2 1/2
x4 20/3 0 0 0 1 -2/3 1/3
Método Simplex 189
x2
80
75
70
z = 20x1 + 25x 2
65 x 2 ≤ 60
60
55
50
45
x1 ≤ 80
40
35
2x1 + 3x 2 ≤ 200
30
25
20
15
10 4 x1 + 3x 2 ≤ 240
5 x1
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95
⎡ 1 0 0⎤
x2 ⎢0 1 1⎥
( x 3 , x 2 , x1 )
⎢ ⎥ ⎡1 0 1⎤
⎣⎢0 2 0⎥⎦ ⎢0 1 0 ⎥
⎢ ⎥
6 ⎢⎣0 2 3⎥⎦
5
( x 4 , x 2 , x1 )
⎡0 0 1⎤
⎢ 1 1 0⎥
4 ⎢ ⎥
⎢⎣0 2 3⎥⎦
3 ( x 4 , x 3 , x1 )
(x3 ,x4 ,x5 ) ⎡0 1 1⎤
2 ⎢ 1 0 0⎥
⎡ 1 0 0⎤ ⎢ ⎥
⎢0 1 0 ⎥ 1 ⎢⎣0 0 3⎥⎦
⎢ ⎥
⎢⎣0 0 1⎥⎦
1 2 3 4 5 6 7 x1
x1 x2 x3 x4 x5 x6 x7a x8a
q 0 0 0 0 0 0 -1 -1
z 0 2 5 1 0 0 0 0 0
x7a 6 1 1 0 -1 0 0 1 0
x8a 4 0 1 -1 0 -1 0 0 1
x6 15 4 2 1 0 0 1 0 0
x1 x2 x3 x4 x5 x6 x7a x8a
q 10 1 2 -1 -1 -1 0 0 0
z 0 2 5 1 0 0 0 0 0
x7a 6 1 1 0 -1 0 0 1 0 6
x8a
4 0 1 -1 0 -1 0 0 1 4
x6 15 4 2 1 0 0 1 0 0 7,5
x1 x2 x3 x4 x5 x6 x7a x8a
q 2 1 0 1 -1 1 0 0 -2
z -20 2 0 6 0 5 0 0 -5
x7a 2 1 0 1 -1 1 0 1 -1 2
x2 4 0 1 -1 0 -1 0 0 1 -
x6 7 4 0 3 0 2 1 0 -2 1,75
x1 x2 x3 x4 x5 x6 x7a x8a
q 1/4 0 0 1/4 -1 1/2 -1/4 0 -3/2
z -47/2 0 0 9/2 0 4 -1/2 0 -4
x7a 1/4 0 0 1/4 -1 1/2 -1/4 1 -1/2 1/2
x2 4 0 1 -1 0 -1 0 0 1 -
x1 7/4 1 0 3/4 0 1/2 1/4 0 -1/2 7/3
Método Simplex 191
x1 x2 x3 x4 x5 x6 x7a x8a
q 0 0 0 0 0 0 0 -1 -1
z -51/2 0 0 5/2 8 0 3/2 -4 0
x5 1/2 0 0 1/2 -2 1 -1/2 2 -1
x2 9/2 0 1 -1/2 -2 0 -1/2 2 0
x1 3/2 1 0 1/2 1 0 1/2 -1 0
x1 x2 x3 x4 x5 x6 x7a x8a
z -51/2 0 0 5/2 8 0 3/2 -4 0
x5 1/2 0 0 1/2 -2 1 -1/2 2 -1 -
x2 9/2 0 1 -1/2 -2 0 -1/2 2 0 -
x1 3/2 1 0 1/2 1 0 1/2 -1 0 3/2
Quadro Ótimo
x1 x2 x3 x4 x5 x6 x7a x8a
z -75/2 -8 0 -3/2 0 0 -5/2 -75/2 -8
x5 7/2 2 0 3/2 0 1 1/2 7/2 2
x2 15/2 2 1 1/2 0 0 1/2 15/2 2
x4 3/2 1 0 1/2 1 0 1/2 3/2 1
Problema 2: Será inserida uma variável arti¿cial. A função objetivo da primeira fase será denominada q. Neste quadro, a base
será organizada na sequência canônica e a variável x7 será retirada de ordem, por não pertencer à base inicial. Dessa forma,
a inversa da base estará representada no quadro ressaltado.
x1 x2 x3 x4 x7 x5 x6 x8a
q 0 0 0 0 0 0 0 -1
z -1 3 5 1 0 0 0 0
x5 8 1 0 0 1 0 1 0 0
x6 8 0 1 1 0 0 0 1 0
x8a
4 -1 1 1 1 -1 0 0 1
192 Programação Linear e Fluxos em Redes
Quadro inicial da primeira fase (x2 entra na base pela regra de Bland de menor índice)
x1 x2 x3 x4 x7 x5 x6 x8a
q 4 -1 1 1 1 -1 0 0 -0
z 0 -1 3 5 1 0 0 0 0
x5 8 1 0 0 1 0 1 0 0 -
x6 8 0 1 1 0 0 0 1 0 8
x8a
4 -1 1 1 1 -1 0 0 1 4
x1 x2 x3 x4 x7 x5 x6 x8a
q 0 0 0 0 0 0 0 0 -1
z -12 2 0 2 -2 3 0 0 -3
x5 8 1 0 0 1 0 1 0 0
x6 4 1 0 0 -1 1 0 1 -1
x2 4 -1 1 1 1 -1 0 0 1
Quadro inicial da segunda fase (não será calculado o custo reduzido de x8a )
x1 x2 x3 x4 x7 x5 x6 x8a
z -12 2 0 2 -2 3 0 0
x5 8 1 0 0 1 0 1 0 0 -
x6 4 1 0 0 -1 1 0 1 -1 4
x2 4 -1 1 1 1 -1 0 0 1 -
x1 x2 x3 x4 x7 x5 x6 x8a
z -24 -1 0 2 1 0 0 -3
x5 8 1 0 0 1 0 1 0 0 -
x7 4 1 0 0 -1 1 0 1 -1 -
x2 8 0 1 1 0 0 0 1 0 8
Método Simplex 193
x1 x2 x3 x4 x7 x5 x6 x8a
z -40 -1 -2 0 1 0 0 -5
x5 8 1 0 0 1 0 1 0 0 8
x7 4 1 0 0 -1 1 0 1 -1 -
x3 8 0 1 1 0 0 0 1 0 -
Quadro Ótimo
x1 x2 x3 x4 x7 x5 x6 x8a
z -48 -2 -2 0 0 0 -1 -5
x4 8 1 0 0 1 0 1 0 0
x7 12 2 0 0 0 1 1 1 -1 -
x3 8 0 1 1 0 0 0 1 0 -
− 3 x1 + 2 x 2 ≤ 0 − 3 x1 + 2 x 2 + x 3 =0
x1 + x 2 ≤ 5 ou no formato padrão: x1 + x 2 + x4 =5
x1 − 2 x 2 ≤ 2 x1 − 2 x 2 + x5 = 2
Consequentemente, considerando o vetor transposto das variáveis x = [ x1, x 2 , x 3 , x 4 , x 5 ]T , os vértices visitados correspon-
dem às seguintes soluções básicas (com variáveis fora da base assumindo valor nulo).
x3 x4 x5
1. Vértice 0 (0,0) do grá¿co com variá-
veis básicas: x3, x4 e x5 (observar que x3 ⎡ 1 0 0⎤
B = ⎢⎢0 1 0⎥⎥ x = [0 0 0 5 2]
T
é básica e igual a zero):
⎢⎣0 0 1⎥⎦
x1 x2 x5
⎡ − 3 2 0⎤
2. Vértice A (3,2) do grá¿co com variá-
B = ⎢⎢ 1 1 0⎥⎥ x = [3 2 0 0 4]
T
veis básicas: x1, x2 e x5:
⎢⎣ 1 − 2 1⎥⎦
x1 x2 x3
3. Vértice B (4,1) do grá¿co com variá- ⎡− 3 2 1⎤
veis básicas: x1, x2 e x3:
B = ⎢⎢ 1 1 0⎥⎥ x = [4 1 10 0 0]
T
⎢⎣ 1 − 2 0⎥⎦
194 Programação Linear e Fluxos em Redes
b) Não é possível associar uma base ao ponto F, uma vez que representa uma solução interna (com folga em relação a todas
as restrições), contudo, a solução representada em F é: x = [2 1 4 2 2]T .
c) É necessário acrescentar ao problema restrições que transformem F em ponto extremo, como se segue:
x2
− 3 x1 + 2 x 2 ≤0 A
3
x1 + x 2 ≤5
x1 − 2 x 2 ≤2 2
x1 ≥1
F B
x2 ≤2 1
C
0 2 4 x1
⎡1/ 3 0 − 2 / 3⎤ ⎡1⎤
⎢
z2 − c2 = cB B a2 − c2 = [1 0 − 4]⋅ 0 1
−1
1 ⎥⎥ ⋅ ⎢⎢1⎥⎥ − 1 = −3 − 1 = − 4
⎢
⎣⎢1/ 3 0 1/ 3 ⎦⎥ ⎣⎢1⎦⎥
Como z2 − c2 = − 4 ≤ 0 a variável x2 não básica não é candidata a entrar na base e o quadro é ótimo, de fato. Cabe corrigir
o custo reduzido desta variável de í 6 para í 4 no quadro, como abaixo realizado, e entregar a prova.
x1 x2 x3 x4 x5 x6
z -17 0 -4 0 -1 0 -2
x4 1/3 1 -1/3 0 1/3 0 -2/3
x5 6 0 2 0 0 1 1
x6 13/3 0 2/3 1 1/3 0 1/3
Método Simplex 195
⎡1 1 3 ⎤ ⎡1/ 8 1/ 8 1/ 2 ⎤ ⎡ 21/ 4 ⎤
⎢ ⎥ −1 ⎢
B = ⎢3 − 1 1 ⎥ ⇒ B = ⎢1/ 2 − 1/ 2 1 ⎥ ⇒ x B = B b = ⎢⎢ 5 ⎥⎥ e z = cB x B = 109 / 4
⎥ −1
A base B, que soluciona o modelo, demonstra que o posto do quadro Simplex é 3. Observa-se que a variável x3 possui um
valor negativo, portanto, a solução não é básica viável e tampouco é ótima. Para organizar o quadro Simplex de posto 3
é necessário calcular a coluna y 4 , uma vez que as colunas y 1 , y 2 e y 3 são canônicas. A coluna y 4 pode ser obtida da
inversa da base como se segue:
⎡1/ 8 1/ 8 1/ 2 ⎤ ⎡1⎤ ⎡ 3 / 8 ⎤
−1 ⎢
y 4 = B a4 = ⎢1/ 2 − 1/ 2 1 ⎥⎥ ⋅ ⎢⎢2⎥⎥ = ⎢⎢− 1/ 2⎥⎥
⎢⎣1/ 8 1/ 8 − 1/ 2⎥⎦ ⎢⎣0⎥⎦ ⎢⎣ 3 / 8 ⎥⎦
−1
Sabendo-se que z j − c j = c B B −1a j − c j , seja w = c B B .
⎡1 / 8 1 / 8 1/ 2 ⎤
⎢
w = c B B = [3 2 − 2]⋅ ⎢1 / 2 − 1 / 2
−1
1 ⎥⎥ = [9 / 8 − 7 / 8 9 / 2]
´
⎢⎣1 / 8 1 / 8 − 1 / 2⎥⎦
z 4 − c 4 = wa 4 − c 4 = −5 / 8 − 5 = −45 / 8 ; z 5 − c 5 = wa 5 − c 5 = 9 / 8 − 0 = 9 / 8 ; z 6 − c 6 = wa 6 − c 6 = −7 / 8 − 0 = −7 / 8 ;
z 7 − c 7 = wa 7 − c 7 = 9 / 2 − 0 = 9 / 2 ;
x1 x2 x3 x4 x5 x6 x7
Observe-se que a base x1, x2 e x3 é inviável, não permitindo a aplicação do método primal Simplex.
196 Programação Linear e Fluxos em Redes
Essa situação não pode ser alcançada através de atribuições dos parâmetros do quadro.
x1 x2 x3 x4 x5a
q 0 0 0 0 -1
z -2 -3 0 0 0
x3 -3 -1 -1 1 0 -1
x4 -2 -2 -1 0 1 -1
x1 x2 x3 x4 x5a
q 0 0 0 0 -1
z -2 -3 0 0 -
x5a 3 1 1 -1 0 1
x4 -2 -2 -1 0 -1 -1
x1 x2 x3 x4 x5a
q 3 1 1 -1 0 0
z 0 -2 -3 0 0 -
x5a 3 1 1 -1 0 1
x4 1 -1 0 -1 -1 0
x1 x2 x3 x4 x5a
q 3 1 1 -1 0 0
z 0 -2 -3 0 0 -
x5a 3 1 1 -1 0 1
x4 1 -1 0 -1 -1 0
198 Programação Linear e Fluxos em Redes
Quadro Ótimo
x1 x2 x3 x4 x5a
q 0 0 0 0 0 -1
z -6 0 -1 -2 0 -
x3 3 1 1 -1 0 1
x4 4 0 1 -2 1 1
Se a variável arti¿cial for forçada a entrar na base cobrindo a linha mais negativa, o método pode ser generalizado.
Quadro 1 x1 x2 x3 x4 x5
z 0 3000 5000 0 0 0
x3 16 1/2 1/5 1 0 0
x4 11 1/4 3/10 0 1 0
x5 15 1/4 1/2 0 0 1
Método Simplex 199
Quadro 2 x1 x2 x3 x4 x5
z -150000 500 0 0 0 -10000
x3 10 2/5 0 1 0 -2/5
x4 2 1/10 0 0 1 -3/5
x2 30 1/2 1 0 0 2
Quadro Ótimo x1 x2 x3 x4 x5
z -160000 0 0 0 -5000 -7000
x3 2 0 0 1 -4 2
x1 20 1 0 0 10 -6
x2 20 0 1 0 -5 5
Quadro 1 x1 x2 x3 x4 x5 x6 x7
z 0 100 80 120 20 0 0 0
x5 250 1 1 1 4 1 0 0
x6 600 0 1 1 2 0 1 0
x7 500 3 2 4 0 0 0 1
Quadro 2 x1 x2 x3 x4 x5 x6 x7
z -15000 10 20 0 20 0 0 -30
x5 125 1/4 1/2 0 4 1 0 -1/4
x6 475 -3/4 1/2 0 2 0 1 -1/4
x3 125 3/4 1/2 1 0 0 0 1/4
Quadro Ótimo x1 x2 x3 x4 x5 x6 x7
z -20000 0 0 0 -140 -40 0 -20
x2 250 1/2 1 0 8 2 0 -1/2
x6 350 -1 0 0 -2 -1 1 0
x3 0 1/2 0 1 -4 -1 0 1/2
200 Programação Linear e Fluxos em Redes
Quadro 1 x1 x2 x3 x4 x5
z 0 1 1 0 0 0
x3 70 3 2 1 0 0
x4 80000 1500 1000 0 1 0
x5 18 2 2 0 0 1
Quadro Ótimo x1 x2 x3 x4 x5
z -9 0 0 0 0 -1/2
x3 43 0 -1 1 0 -3/2
x4 66500 0 -500 0 1 -750
x1 9 1 1 0 0 1/2
Quadro 1 x1 x2 x3 x4
z 0 2 5 0 0
x3 200 3 4 1 0
x4 300 9 7 0 1
Quadro Ótimo x1 x2 x3 x4
z -1500/7 -31/7 0 0 -5/7
x3 200/7 -15/7 0 1 -4/7
x2 300/7 9/7 1 0 1/7
Quadro 1 x1 x2 x3 x4 x5
z 0 5 7/2 0 0 0
x3 150 1 0 1 0 0
x4 300 0 1 0 1 0
x5 400 3/2 1 0 0 1
Método Simplex 201
Quadro 2 x1 x2 x3 x4 x5
z -750 0 7/2 -5 0 0
x1 150 1 0 1 0 0
x4 300 0 1 0 1 0
x5 175 0 1 -3/2 0 1
Quadro 3 x1 x2 x3 x4 x5
Quadro Ótimo x1 x2 x3 x4 x5
z -4150/3 0 0 0 -1/6 -10/3
x1 200/3 1 0 0 -2/3 2/3
x3 250/3 0 0 1 2/3 -2/3
x2 300 0 1 0 1 0
Transcrição x1 x2 x5 x3 x4 x6a
q 0 0 0 0 0 -1 1a Fase
z -60 -50 0 0 0 0 2a Fase
x3 300 1 0 0 1 0 0
x4 270 0 1 0 0 1 0
x6a 500 1 1 -1 0 0 1
202 Programação Linear e Fluxos em Redes
Quadro 1 x1 x2 x5 x3 x4 x6a
q 500 1 1 -1 0 0 0 1a Fase
z 0 -60 -50 0 0 0 0 2a Fase
x3 300 1 0 0 1 0 0
x4 270 0 1 0 0 1 0 270
x6a
500 1 1 -1 0 0 1 500
Quadro 2 x1 x2 x5 x3 x4 x6a
q 230 1 0 -1 0 -1 0 1a Fase
z 13500 -60 0 0 0 50 2a Fase
x3 300 1 0 0 1 0 0 300
x2 270 0 1 0 0 1 0
x6a
230 1 0 -1 0 -1 1 230
z = x1 + 3x 2
a) O problema não pode ser ilimitado, uma vez que a função objetivo vai
buscar, caso o problema seja viável, o ponto do universo das soluções viáveis 3
mas próximo da origem. A ¿gura ao lado exibe a direção do movimento da
função objetivo e a rotação que a restrição pode sofrer em função da variação 2
dos parâmetros.
1
x1
0 1 2 3
b) Caso k ≠ 0 ou p ≠ 0 , a restrição kx1 + px 2 ≥ 1 terá sempre solução.
c) Caso, simultaneamente, k 0 e p 0, será necessário que pelo menos uma das variáveis seja estritamente menor que
zero na restrição kx1 + px2 ! 1, o que leva a uma solução inviável.
Método Simplex 203
x2
z = x1 + x 2 Quadro 2 x1 x2 x3 x4 x5
3
z -3 0 1 0 -1 0
x2 ≤ 2
x3 1 0 1 1 -1 0
2 x1 + x 2 ≤ 3
x1 2 1 0 0 1 0
1
x1 ≤ 2 x5 2 0 1 0 0 1
x1
Quadro Ótimo x1 x2 x3 x4 x5
z -4 0 0 -1 0 0
x2 1 0 1 1 -1 0
x1 2 1 0 0 1 0
x5 1 0 0 0 0 1
2º Quadro x1 x2 x3 x4 x5
z -15 0 2 -5 0 0
x1 3 1 0 1 0 0 -
x4 4 0 1 0 1 0 4
x5 0 0 3 -4 0 1 0
Quadro Ótimo x1 x2 x3 x4 x5
z -15 0 0 -7/3 0 = 2/3
x1 3 1 0 1 0 0
x4 4 0 0 4/3 1 -1/3
x5 0 0 1 -4/3 0 1/3
x2 x2
x2 ≤ 4
4 4
3 3
4 x1 + 3x 2 ≤ 12
2 x1 ≤ 3
2
2o Pivoteamento
1 1
1o Pivoteamento
0 x1 0 x1
0 1 2 3
0 1 2 3
Região viável Pivoteamentos Simplex
1o Pivot x1 x2 x3 x4 x5 x6
z 0 -1 -1 4 0 0 0
x2 9 3 1 2 1 0 0 9/2
x4 2 1 1 -1 0 1 0 -
x6 4 -1 1 1 0 0 1 4/1
2o Quadro x1 x2 x3 x4 x5 x6
z -16 3 -5 0 0 0 -4
x2 1 5 -1 0 1 0 -2 1/5
x4 6 0 2 0 0 1 1 -
x3 4 -1 1 1 0 0 1 -
Quadro Ótimo x1 x2 x3 x4 x5 x6
z -83/5 0 -22/5 0 -8/5 0 -14/5
x2 1/5 1 -1/5 0 1/5 0 -2/5
x4 6 0 2 0 0 1 1
x3 21/5 0 4/5 1 1/5 0 3/5
B −1 B I
; ;
⎡1/ 5 0 − 2 / 5⎤ ⎡ 3 ⎤ ⎡1 ⎤ ⎡1/ 5 0 − 2 / 5⎤ ⎡1⎤ ⎡ − 1/ 5⎤ ⎡1/ 5 0 − 2 / 5⎤ ⎡ 2 ⎤ ⎡1 ⎤
⎢ 0 1
⎢ 1 ⎥⎥ ⎢⎢ 1 ⎥⎥ ⎢⎢0⎥⎥ ⎢ 0 1
⎢ 1 ⎥⎥ ⎢⎢1⎥⎥ ⎢⎢ 2 ⎥⎥ ⎢ 0 1
⎢ 1 ⎥⎥ ⎢⎢− 1⎥⎥ ⎢⎢0⎥⎥
;⎢;1/ 5 0 3 / 5 ⎥ ⎢ − 1⎥ = ⎢0⎥ =
⎢⎣1/ 5 0 3 / 5 ⎥⎦ ⎢⎣1⎥⎦ ⎢⎣ 4 / 5 ⎥⎦
=
⎢⎣1/ 5 0 3 / 5 ⎥⎦ ⎢⎣ 1 ⎥⎦ ⎢⎣0⎥⎦
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
,
,
, ,
B −1 a1 y1 B −1 a2 y2 B −1 a3 y3
206 Programação Linear e Fluxos em Redes
,
, ,
,
B −1 a4 y4 B −1 a5 y5 B −1 a6 y6
⎡1/ 5 0 − 2 / 5⎤ ⎡9 ⎤ ⎡ 1/ 5 ⎤
⎢ 0 1
⎢ 1 ⎥⎥ ⎢⎢2 ⎥⎥ ⎢⎢ 6 ⎥⎥ ⎡ 1/ 5 ⎤
= ⎢ ⎥
⎢⎣1/ 5 0 3 / 5 ⎥⎦ ⎢⎣4⎥⎦ ⎢⎣ 21/ 5⎥⎦ ; z 0 = C X = [ 1, 0, − 4 ] ⎢ 6 ⎥ = −83 / 5
B B
⎢⎣21/ 5⎥⎦
1442443 { 123
B −1 b xB
1o Quadro x1 x2 x3 x4 x5 x6
w 4 4 4 -1 0 0 0
x4 21 4 1 0 1 0 0
xa 1 -2 1 0 0 1 0
xb 3 6 3 -1 0 0 1
2o Quadro x1 x2 x3 x4 x5 x6
w 0 12 0 -1 0 -4 0
x4 20 6 0 0 1 1 0
x2 1 -2 1 0 0 1 0
xb 0 12 0 -1 0 -3 1
Método Simplex 207
Fim 1a Fase x1 x2 x3 x4 x5 x6
w 0 0 0 0 0 -1 -1
x4 20 0 0 1/2 1 1/2 -1/2
x2 1 0 1 -1/6 0 1/2 1/6
x1 0 1 0 -1/12 0 -1/4 1/12
⎡ 1 1 / 2 − 1 / 2⎤ ⎡ 1 1 4 ⎤ ⎡ 1 0 0⎤
⎢0 1 / 2
⎢ 1 / 6 ⎥⎥ ⎢⎢0 1 − 2⎥⎥ ⎢⎢0 1 0⎥⎥
=
⎢⎣0 − 1 / 4 1 / 12 ⎥⎦ ⎢⎣0 3 6 ⎥⎦ ⎢⎣0 0 1⎥⎦
144
42444
3 14243 14243
B −1 B I
Referências BibliográÀcas
Bland, G. R. (1977). New Finite Pivoting Rules for the Simplex Method, MOR – Mathematics of Operations Research
2(2):103-7.
Charnes, A., Cooper, W. W. & Henderson, A. (1953). In: introduction to linear programming. John Wiley & Sons, Inc.
Chvátal, V. (1983). Linear Programming. São Francisco: W. H. Freeman and Company.
Dantzig, G. B. (1963) Linear Programming and Extensions, Princeton University Press.
Dantzig, G. B., Orden, A. & Wolfe, P. (1955). The generalized Simplex method for minimizing a linear form under linear ine-
quality restraints. Paci¿c J. Math. 5(2):183-95.
Goldbarg, M. C. (1990). Fatores de Aceleração no Problema de Particionamento Não Ponderado. Tese de Doutorado. Coor-
denação dos Programas de Pós-Graduação em Engenharia, Universidade Federal do Rio de Janeiro.
Capítulo 4
Dualidade e Sensibilidade
Objetivos
1. Introduzir os fundamentos da dualidade.
4.1
Conceito de Dualidade em Programação Matemática
Dualidade é um conceito amplo que engloba a possibilidade do tratamento de duas naturezas distintas de uma mesma
entidade. Inúmeros fenômenos físicos e químicos podem ser representados por modelos cujas estruturas e comportamento
são semelhantes, contudo podem ser interpretados de modo completamente diferente. Na Economia, Engenharia e Física
exemplos dessas situações não são incomuns. A título de exempli¿cação, a Figura 4.1 exibe dois diferentes circuitos elétri-
cos. Os dois circuitos possuem uma resistência R, uma indutância L e uma capacitância C, sendo diferenciados na forma
como esses componentes são ligados no circuito.
Como a equação geral (4.3) descreve tanto o circuito 1 como o circuito 2, diz-se que os circuitos são duais (segundo a ex-
pressão geral). No caso de modelos matemáticos, a de¿nição de “dualidade” tem um cunho próprio e associado ao processo
de solução e aplicação prática dos modelos. Em ambas as vertentes, a dualidade é hoje um instrumento extremamente útil,
uma vez que permite o estudo de fenômenos diferentes através de uma relação que os associa.
A dualidade dos modelos de programação matemática é de¿nida sobre um par de modelos que atendem às regras do que
se de¿ne como dualidade. O par é denominado primal-dual. As condições para a formação de um par de modelos duais na
programação matemática são as seguintes:
O par de problemas possui funções-objetivo simétricas, ou seja, se o primal for de minimização, o dual será de
1.
maximização e vice-versa.
Alguns autores fixam o primal como um problema de minimização ou de maximização, contudo isso não é necessário
para caracterizar a dualidade. Como temos utilizado a forma-padrão como um problema de minimização, considera-
remos por conveniência, quase sempre, o primal como um problema de minimização. Fixar um modelo como repre-
sentante de uma das classes dessa relação é no mínimo inconveniente, porque a relação é reflexiva, ou seja, o dual
do dual é o primal.
O par de problemas possui simetria na descrição das restrições, ou seja, se na forma canônica o primal pos-
2.
sui restrições d então o dual possuirá restrições t.
De¿nindo que x é um vetor coluna e u um vetor linha, o par de modelos primal/dual pode ser de¿nido da seguinte forma:
Método Simplex 211
Primal Dual
Minimizar z0 =∑ c j x j Maximizar w 0 =∑ bi u i
j∈N i∈M
Sujeito a: Sujeito a:
∑a x
j∈N
ij j ≥ bi i ∈ M1 ui ≥ 0
∑a x
j∈N
ij j = bi i ∈ M1 ui ∈ R
xj ≥ 0 j ∈ N1 ∑a u
i∈M
ij i ≤ cj
x j ∈R j ∈ N1
∑a u
i∈M
ij i = cj
Ou, ainda, considerando-se, separadamente, as formas-padrão e canônica, em notação matricial, sendo c e u vetores linha
com ct representando o vetor transposto de c.
Primal Dual
Min z0 = cx Max w 0 = ub
Forma Sujeito a: Sujeito a:
Canônica Ax ≥ b uA ≤ c t
x ≥0 u≥0
Min z 0 = cx Max w 0 = ub
Forma
Padrão Sujeito a: Sujeito a:
Ax = b uA ≤ c t
x≥0 u ∈R
4.2
Exemplos de pares Primal/dual
Figura 4.2. Representação grá¿ca do Primal Figura 4.3. Representação grá¿ca do Dual
Observe-se que o par de problemas representado pelos modelos anteriores são, ambos, inviáveis.
4.3
Propriedades da Dualidade e Condições de Otimalidade
x Fundamentação teórica
Os pares de problemas primal/dual possuem importantes propriedades. A primeira delas diz respeito ao valor das funções z0
e w0 quando alcançam seus valores ótimos. Seja o seguinte par de modelos primal/dual 1:
(P ) Min z 0 = cx (D ) Max w 0 = ub
Sujeito a : Sujeito a :
Ax ≥ b uA ≤ c t
x ≥0 u≥0
1. A partir deste ponto não será mais destacada a condição de transposição (ct, etc.) que se faz presente no par primal/dual.
Método Simplex 213
Se x e u são soluções viáveis dos problemas (P) e (D) respectivamente, então cx > ub:
9 Prova:
As restrições do primal obrigam Ax !b. Pré-multiplicando essa expressão por u tem-se:
9 Prova:
x Supondo que, por absurdo, x não seja solução ótima do primal e cx =ub. Então existe x *, tal que:
cx* x = ub
O que contraria o lema da dualidade fraca, indicando que não existe um tal x *.
x Supondo que, por absurdo, que u não seja solução ótima do dual. Então existe algum u*, tal que:
u*b !u b = cx
O que igualmente contraria o lema da dualidade fraca, indicando que não existe um tal u*.
Logo, como não existem soluções x *e u*que possam atender as duas suposições anteriores, x e u são soluções ótimas
O par de problemas primal/dual é também unido através de propriedades mais amplas que ligam seus universos de soluções
viáveis. O Quadro 4.1 resume as situações possíveis.
214 Programação Linear e Fluxos em Redes
Dual
Viável Inviável (u = )
Viável
Primal
Inviável (x = ) possível
9 Prova:
Sejam os conjuntos de soluções viáveis para (P) e (D):
Quando se supõe que o problema dual (D) tenha solução viável, mas que não tenha solução ótima ¿nita. Então:
Para que a proposição 1 se veri¿que, deve existir x ∈ X , tal que , o que não faz sentido, uma vez que o primal
(P) é de minimização, daí:
X=
Como se suposto que o problema primal não tem solução ótima ¿nita, o mesmo raciocínio será aplicável ao dual que,
obrigatoriamente, deverá ter U = . Por outro lado, se X = implica que não existam limites para o valor das soluções do
problema dual, ou seja, esse problema será vazio ou ilimitado. Como a relação de dualidade é reÀexiva o mesmo raciocínio
se aplica para o primal quando U = .
Finalmente, para demonstrar a terceira a¿rmativa, seja o sistema primal, incluindo as variáveis de folga xe.
B B −1
Considerando B uma base viável ótima do primal e x = c B b a respectiva solução básica viável ótima. Como a solução
é ótima, por hipótese, tem-se:
z j − c j ≤ 0,∀j ∈ N = I ∪ J
Método Simplex 215
Ou seja:
c B B −1a j − c j ≤ 0 ∴
c B B −1a j ≤ c j ∀j ∈ N
Fazendo:
c B B −1 = u
Tem-se:
u a j ≤ c j ∀j ∈ N ∴
uA ≤ c
Ou seja, u é uma solução do problema dual. Para veri¿carmos a viabilidade, considere-se os z j − c j para as variáveis
de folga. Então:
Assim:
U=
Resta mostrar que a solução u é ótima. Representando por (*), a situação de ótimo associada ao vetor ou matriz em con-
sideração decorre:
w 0 = u b = c B B −1b = c B x B
z 0* = c B x B
∗ ∗
Logo w 0 = z 0 e, portanto, u é ótima.
A título de esclarecimento o Exemplo 3 aborda uma situação de existência primal/dual ∞ ⇒ ∅ .
9 Exemplo 3: Existência primal/dual
Solução: O dual de (P) será um problema de minimização cuja matriz de restrições será a transposta de (P), com o vetor de
custos igual ao termo independente de (P). Daí:
216 Programação Linear e Fluxos em Redes
As Figuras 4.4 (a) e (b) exempli¿cam o caso em que o problema primal é ilimitado e o dual é inviável, ou seja, X = ∞ e
U = ∅ . Observar que o dual não foi descrito na forma canônica.
u(Ax – b) = 0 e (c – uA) x = 0
Observa-se que a prova da necessidade das igualdades acima é realizada de forma construtiva, com o auxílio de método Sim-
plex (Chvátal, 1983). Observe-se que o método Simplex constrói as condições das folgas complementares enunciadas acima.
m
No ótimo, é necessário que, para qualquer variável básica xj >0, haja um conjunto de multiplicadores u, tais que c j − ∑u a i ij = 0.
Por outro lado, se a i-ésima restrição for satisfeita com folga, então o correspondente multiplicador u i é nulo. i =1
Método Simplex 217
9 Prova de suÀciência:
⎧ Ax ≥ b ∴ Ax − b ≥ 0 ∴ u ( Ax − b) ≥ 0 ⎧α = u ( Ax − b)
⎨ Fazendo: ⎨
⎩u A ≤ c ∴ c − u A ≥ 0 ∴ (c − u A) x ≥ 0 ⎩ β = ( c − u A) x
α + β = u ( Ax − b) + (c − u A) x =
Tem-se: Se x e u forem soluções ótimas tem-se: u b = cx
= − u b + cx ≥ 0
Logo:
α + β = 0 com α , β ≥ 0, ou seja :
α =β =0
Assim conclui-se, ¿nalmente:
⎧α = u ( Ax − b) = 0
⎨
⎩β = (c − u A) x = 0
9 Exemplo 4: Solucionar o Modelo de Programação Linear que se segue com auxílio das relações duais:
(P) Minimizar z 0 = 2 x 1 +x 2 + 4 x 3
Sujeito a:
− 2x1 + x 2 + x 3 ≥ 1
x 1 − 2x 2 + x 3 ≥ −1
x 1 ≥ 0, x 2 ≥ 0, x3 ≥ 0
Solução:
Como o dual do modelo proposto possui duas variáveis, será solucionado gra¿camente e assim fornecendo o valor de suas
variáveis na solução ótima, como a Figura 4.5 exibe:
218 Programação Linear e Fluxos em Redes
(D) Maximizar w 0 = u1 − u 2
Sujeito a:
− 2u1 + u 2 ≤ 2
u1 − 2u 2 ≤ 1
u1 + u 2 ≤ 4
u1 ≥ 0, u 2 ≥ 0
De posse do valor das variáveis duais é possível calcular as variáveis primais aplicando as relações da complementaridade,
como a seguir:
u ( Ax − b) = 0 e (c − u A) x = 0
Em consequência:
⎢ x 2 (u1 − 2u 2 − 1) = 0 ∴ x 2* ≥ 0
* * *
⎢ * * * *
⎢⎣ x 3 (u1 + u 2 − 4) = 0 ∴ x 3 ≥ 0
x 2* + x 3* = 1 x 2* = 2 / 3
* *
Sistema determinado que, quando solucionado, leva à:
− 2x + x = −1
2 3 x 3* = 1/ 3
4.4
Um Algoritmo Dual para o Método Simplex
Que darão origem a dois dos quadros de cálculo transpostos, sem as variáveis arti¿ciais, e com as variáveis de folga positi-
vas (obtidas com a multiplicação da primeira e segunda linha do dual por -1), da seguinte forma:
Caso se deseje aplicar as regras de pivoteamento do algoritmo Simplex nos quadros formados, o quadro primal está
pronto para ser transformado, enquanto o quadro dual não possui uma base viável. Existem valores no vetor das variá-
veis básicas x B que são negativos. Adicionalmente, os “custos reduzidos” do quadro dual indicam regra de parada, com
todos os z j − c j ≤ 0 . Sem condições de aplicar as regras de pivoteamento no quadro dual, será realizado o seguinte
processo: Aplicando a regra de pivoteamento ao quadro primal e solucionado o quadro dual como um modelo transposto,
portanto forçando-se o pivoteamento e acompanhando o que acontece no primal. O Quadro 4.3 exempli¿ca a regra. A
escolha de x1 para entrar na base e x5 para sair induz, na coluna transposta, a escolha da variável u3 para sair da base
e u2 para entrar.
220 Programação Linear e Fluxos em Redes
QUADRO 4.3. Escolha dos pivôs nos quadros Simplex Primal / Dual.
O pivoteamento pode ser realizado normalmente no quadro primal e forçado no quadro dual, conforme o Quadro 4.4
No caso, veri¿ca-se que ocorrem as condições de viabilidade e regra de parada nos dois quadros. Avaliando a estratégia
utilizada, conclui-se que foi realizado um pivoteamento forçado no dual sobre uma linha com termo independente negativo
(inviável), uma operação inválida no algoritmo primal Simplex. Observa-se que essa operação inválida no dual foi guiada por
uma operação válida no primal e levou o quadro à solução. Apesar desse fato singular ocorrer no primal, no dual as regras do
Simplex estão sendo perfeitamente atendidas. No exemplo, o problema primal possuía uma solução viável de partida, mas
o dual não. De fato, ao utilizarmos o algoritmo Simplex para solucionar, via problema primal, seu par dual, desenha-se um
método absolutamente geral, uma vez que é guiado por um processo com garantia de convergência. É possível formalizar o
que foi realizado no exemplo, de modo a propor um algoritmo para a solução de pares primal e dual, como a seguir:
´
Método Simplex 221
4.5
Interpretação Econômica
AÀrmação
O valor da unidade marginal de um fator de produção é igual ao máximo valor da produção que pode-
ria ser obtida usando essa unidade do fator.
Além dessa clássica interpretação da teoria marginalista, existem outras propriedades econômicas da programação linear
que não têm sido frisadas em textos sobre o assunto. Além de estarem associadas a valores marginais, as variáveis du-
ais também estão associadas a valores de equilíbrio ¿nanceiro (i.e., tais que o custo é igual à receita) para as atividades
econômicas em consideração. Assim, com as variáveis duais obtém-se um tipo de informação local (i.e., marginal) sobre
o sistema. Mas há também um tipo de informação global que desejamos enfatizar em nossa interpretação econômica do
método Simplex e da dualidade em programação linear.
A proposta do texto é complementar à proposta classicamente desenvolvida, trocando a visão de maximização de lucros
(diferença entre benefício e custo) na face primal, pela minimização de custos. Assim, será considerado na vertente dual o
benefício da produção.
Esse modelo está voltado para o entendimento do processo de interação entre o sistema e seu meio ambiente, em perfeita
sintonia com as mais modernas ¿loso¿as da Qualidade Total e das gestões para a excelência. Ao se propor a produzir, o
sistema assume certos compromissos com o meio ambiente organizacional, que denominaremos “vínculos”. Admite-se
que tais vínculos sejam mensuráveis e que o sistema tenha escalas lineares de utilidade (preços) dos produtos. Admite-se,
igualmente, que cada produto tenha escalas lineares de participação dentro de cada vínculo.
Nesse modelo, o sistema toma decisões guiado pelo objetivo de maximizar a utilidade de produção ou minimizar os
custos dos vínculos. Uma solução qualquer em que a utilidade da produção (receita) seja maior ou igual ao custo dos
vínculos será compensadora. Por outro lado, uma solução em que a utilidade de transformar é inferior ao custo não é
realizável. Veri¿ca-se que a uma solução genérica do método Simplex, aplicado a um problema primal cujo objetivo é ma-
ximizar a utilidade dos produtos, correspondem variáveis duais que medem os limites máximos dos custos dos vínculos
para os quais a produção calculada ainda é economicamente viável ou não de¿citária. Em outras palavras, a cada solução
222 Programação Linear e Fluxos em Redes
do método Simplex calcula-se custos dos recursos para os quais o preço de cada produto realizado é exatamente igual
ao seu custo de produção.
Se a solução corrente ainda não é ótima, o teste de otimização do Simplex identi¿ca, pelo menos, um produto não presente
na solução (não básico) cuja utilidade relativa (lucro) é positiva ( z j − c j > 0 ). Isto signi¿ca que se esse produto participar de
uma nova solução em detrimento das participações dos produtos da presente solução, ter-se-á uma melhora em relação a esta
escala linear com o coe¿ciente igual à utilidade relativa. Essa utilidade relativa de um produto, comumente denominada “custo
reduzido”, corresponde ao grau da inviabilidade da restrição do dual associada a esse produto. Ou seja, o nível da inviabilidade
de uma restrição do dual associada a um determinado produto não produzido é igual à utilidade marginal de sua produção.
A consequência imediata da não completa realização da utilidade marginal é a negação da solução ótima. Enquanto existir
utilidade marginal positiva ainda é possível melhorar a solução.
O setor de novos projetos da empresa está desenvolvendo Minimizar z = 8x1 + 12x 2 + 15x 3
um processo de transformação de xisto betuminoso no qual Sujeito a:
gasta 15 milhões de dólares em cada milhão de toneladas
x1 + 2x 2 + 2x 3 ≥ 5
de xisto processado, gerando-se 2 e 1,5 milhões de tonela-
x1 + x 2 + 3 /2x 3 ≥ 3
das de gasolina e óleo. O problema a resolver nesse novo
cenário passa a ser o correspondente ao modelo ao lado: x1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0
O modelo proposto pode ser solucionado pelo método Simplex, acrescentando as variáveis de folga x 4 e x 5 , associadas às
restrições 1 e 2. É necessário acrescentar variáveis arti¿ciais x 6 e x 7 para obter uma base viável inicial, já que as variáveis
de folga são negativas devido às restrição de maior e igual. No exemplo será utilizado o artifício de penalizar fortemente as
variáveis arti¿ciais para que elas sejam obrigadas a deixar a base, tão logo isso seja possível, de forma a tender o critério
de minimização da primeira fase do método Simplex. Em função do artifício de penalização (e de uma escolha “adequada”
dos pesos de penalização — valores de 40 e 18) que pode ser interpretado como os preços dos produtos no mercado inter-
nacional, constitui-se o programa que se segue:
A Figura 4.8 ilustra o sistema de produção em questão, com as entradas relativas às alternativas tecnológicas a decidir e as
saídas dos produtos demandados pelo mercado. O modelo proposto será solucionado pela aplicação do Simplex revisado
(ver a solução do exercício 16 do Capítulo 3). Os passos de solução serão justi¿cados com as devidas intervenções escla-
recendo a ótica da visão econômica.
⎡1 0⎤
base composta pelas variáveis x6, x7 ou seja: B = [a 6 , a 7 ] = ⎢ = B −1
⎣0 1⎥⎦
⎡ x 1 ⎤ ⎡0 ⎤
Nesse caso as variáveis ⎢x ⎥ ⎢ ⎥
x1, x2, x3, x4 e x5 não são ⎢ 2 ⎥ ⎢0 ⎥
⎡x 6 ⎤ ⎡5 ⎤ x R = ⎢ x 3 ⎥ = ⎢0 ⎥
x B = ⎢ ⎥ = B −1b = ⎢ ⎥
básicas. ⎣x 7 ⎦ ⎣3 ⎦ ⎢ ⎥ ⎢ ⎥
I = {1, 2, 3, 4, 5}, J = {6, 7}. ⎢ x 4 ⎥ ⎢0 ⎥
⎢ x 5 ⎥ ⎢⎣0⎥⎦
⎣ ⎦
O cálculo anterior determina a escolha da variável 3 para entrar na base, uma vez que ela possui o máximo entre os z j − c j
positivos, ou seja,
A interpretação econômica dos chamados “custos reduzidos” ou z j − c j surge agora clara. A escolha de uma variável para
ingressar na base expressa o objetivo da busca de atividades mais lucrativas do que as da solução corrente. As atividades
1, 2 e 3 são mais lucrativas do que a importação. Observe-se que os preços exorbitante de 40 milhões para a gasolina e 18
milhões para o óleo permitem viabilizar economicamente a importação desses produtos. Isso era um fato esperado, contudo
não pode ser evitado, uma vez que não havia um esquema melhor disponível para formar a primeira base. Partindo de um
“absurdo”, o próprio Simplex foi utilizado para encontrar uma solução mais “razoável” (básica viável) do que a inicial. Essa
estratégia praticamente está sugerindo uma decomposição do processo de solução em duas fases:
9Fase da busca da racionalidade.
9Fase da busca da melhor solução viável possível.
A interpretação econômica neste instante vai mais longe. Se, por algum motivo, o algoritmo oferecer, ao ¿nal de seu desen-
volvimento, ainda uma solução “absurda”, ou seja, incluindo a importação exorbitante, então é certo que não existe nenhuma
solução “razoável” melhor. Em outras palavras, se o algoritmo não for capaz de encontrar pelo menos uma saída “razoável”
é porque ela não existe, e o problema era economicamente absurdo (inviável) desde o começo.
Sem condição de parada verdadeira segue-se para o Passo 2:
Passo 2: Veri¿car viabilidade e escolha da variável que deixa a base.
⎧ ⎫
Pelo critério adotado para a melhoria, a variável x3 entrará na base saindo a variável bs = mínimo ⎨ bi : yik > 0⎬ , que no
caso é x7 , conforme o cálculo abaixo demonstra: ysk 1 ≤ i ≤ m ⎩ yik ⎭
⎡5 ⎤ ⎡2 ⎤ ⎡ x 6 ⎤ ⎡ 5 ⎤ ⎡ 2 ⎤ ⎡2,5⎤
b = ⎢ ⎥ e y3 = ⎢ ⎥
⎣3 ⎦ ⎣3 / 2 ⎦ logo: ⎢ ⎥ = ⎢3 ⎥ / ⎢ 3/ 2 ⎥ = ⎢ 2 ⎥
⎣x 7 ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦
⎡ ⎤ ⎡ 0⎤ ⎡1 0 ⎤ ⎡ 2 ⎤ ⎡1− 4 / 3 ⎤ ⎡ 0⎤
⎢ ⎥ ⎢ ⎥ ⎢ 0 1⎥ ⎢2 / 3⎥ ⎯Pivoteamen
⎯ ⎯⎯to →⎢ ⎥⎢ ⎥ ∴
⎢ ⎥ ⎢ .⎥ ⎣ ⎦⎣ ⎦ ⎣ 0 2 / 3 ⎦ ⎣1 ⎦
⎯ ⎯⎯to →⎢ nova B −1
⎢ antiga B −1 y k ⎥ ⎯Pivoteamen 1⎥ Ou seja:
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ .⎥ ⎡1− 4 / 3 ⎤
B −1 = ⎢ ⎥
⎢
⎣
⎥
⎦
⎢
⎣ 0⎥⎦ ⎣0 2 / 3⎦
Neste ponto as variáveis x1 , x2 , x7 , x4 e x5 não são básicas. I = {1, 2, 4, 5, 7}, J = {6, 3} e volta-se ao Passo 1, pois não há
regra de parada.
Passo1: Escolha da nova variável que entrará na base. k tal que z k − c k = max { z j − c j } . Daí:
j∈J1
Do cálculo anterior escolheremos a variável 5 para entrar na base, porque ela possui o máximo entre os zj − cj positivos,
ou seja, z5 − c5 = 130 / 3. Sem condição de parada verdadeira, segue-se para o Passo 2:
Método Simplex 227
⎫
Pelo critério adotado para a melhoria, a variável x5 entrará na base, saindo a variável bs = mínimo ⎧ bi
⎨ : yik > 0⎬. O cálculo
ysk 1 ≤ i ≤ m ⎩ yik ⎭
não pode ser feito sem antes obtermos a coluna da variável x5 diretamente da matriz A. Na iteração anterior a inversa da
base era a própria identidade e y i = ri ∀j ∈ J . Na atual iteração:
⎡1 − 4 / 3⎤ ⎡ 0 ⎤ ⎡ 4 / 3 ⎤ ⎡1 ⎤ ⎡ 4/3⎤
y 5 = B −1r5 = ⎢ ⎥⎢ ⎥=⎢ ⎥ Daí: b = ⎢ ⎥ e y5 =⎢ ⎥ logo:
⎣ 0 2 / 3 ⎦ ⎣− 1⎦ ⎣− 2 / 3⎦ ⎣2 ⎦ ⎣ − 2 / 3⎦
⎡1 − 4 / 3⎤ ⎡ 4/3 ⎤ ⎡3 / 4 − 1 ⎤ ⎡1 ⎤
⎢0 2 / 3⎥ ⎢− 2 / 3⎥ ⎯Pivoteamen
⎯ ⎯⎯to → ⎢1/ 2 0 ⎥⎦ ⎢⎣ 0⎥⎦
∴
⎣ ⎦ ⎣ ⎦ ⎣ ⎡ 3 / 4 − 1 ⎤ ⎡5 ⎤ ⎡3 / 4 ⎤
x B = b = B −1b = ⎢ =
⎣1/ 2 0 ⎥⎦ ⎢⎣3⎥⎦ ⎢⎣5 / 2 ⎥⎦
⎡3 / 4 − 1 ⎤
B −1 = ⎢
⎣1/ 2 0 ⎥⎦
Neste ponto, as variáveis x1 , x2 , x7 , x4 e x6 não são básicas. I = {1, 2, 4, 6, 7}, J = {5, 3}. Após a segunda iteração, as
variáveis “arti¿ciais” deixaram a base, e a primeira fase do Simplex está concluída. De fato não existe mais necessidade de
levarmos em conta essas variáveis. Como não há regra de parada, volta-se ao Passo 1:
228 Programação Linear e Fluxos em Redes
Passo 1: Escolha da nova variável que entrará na base de índice k, tal que z k − c k = max { z j − c j } , j 6, 7. Daí:
j∈J1
Do cálculo anterior escolheremos a variável 2 para entrar na base, porque ela possui o máximo entre os z j − c j positivos,
ou seja, z 2 − c 2 = 3. Sem condição de parada verdadeira, segue-se para o Passo 2:
⎡ 3 / 4 − 1⎤ ⎡ 2⎤ ⎡1/ 2⎤ ⎡3 / 4 ⎤ ⎡1/ 2⎤
y 2 = B −1r2 = ⎢ ⎥⎢ ⎥=⎢ ⎥ Daí: b = ⎢ ⎥ e y 2 =⎢ ⎥ logo:
⎣1/ 2 0 ⎦ ⎣1 ⎦ ⎣ 1 ⎦ ⎣5 / 2 ⎦ ⎣1 ⎦
⎡ 3 / 4 − 1⎤ ⎡1/ 2⎤ ⎡ 3 / 2 − 2 ⎤ ⎡1 ⎤ ⎡3 / 2 − 2⎤
⎢1/ 2 0 ⎥ ⎢ 1 ⎥ ⎯Pivoteamen
⎯ ⎯⎯to → ⎢ ⎥⎢ ⎥ ∴ B −1 =⎢ ⎥
⎣ ⎦ ⎣ ⎦ ⎣ − 1 − 2 ⎦ ⎣ 0⎦ ⎣− 1 − 2⎦
Neste ponto, as variáveis x1, x5, x7, x4 e x6 não são básicas. I = {1, 4, 5, 6, 7}, J = {2, 3}. Retorna-se ao Passo 1:
Método Simplex 229
Passo 1: Escolha da nova variável que entrará na base K, tal que, z k − c k = max { z j − c j } . Daí:
j∈J1
A variável de índice 1 entra na base, pois é a única que possui z j − c j positivo. Sem condição de parada verdadeira, segue-
se para o Passo 2:
Nesse ponto é necessário calcular a coluna da variável x1, como realizado nas iterações anteriores, visando encontrar a
variável que bloqueia o crescimento de x1 e entrará na base. Nesse caso:
⎡ 3 / 2 − 2⎤ ⎡1⎤ ⎡ − 1/ 2⎤ ⎡3 / 2 ⎤ ⎡−1/ 2⎤
y 1= B −1r1 = ⎢ ⎥⎢ ⎥=⎢ ⎥ Daí: b = ⎢ ⎥ e y2 = ⎢ ⎥ logo:
⎣ − 1 − 2 ⎦ ⎣1⎦ ⎣ 1 ⎦ ⎣ 1 ⎦ ⎣ 1 ⎦
⎡ 3 / 2 − 2⎤ ⎡ − 1 / 2⎤ ⎡ 1 − 1⎤ ⎡ 0⎤ ⎡ 1 − 1⎤
⎢−1 − 2⎥ ⎢ 1 ⎥ ⎯Pivoteamen
⎯ ⎯⎯ →⎢ ⎥⎢ ⎥ ∴ B −1 = ⎢ ⎥
⎣− 1 2 ⎦
to
⎣ ⎦ ⎣ ⎦ ⎣ − 1 2 ⎦ ⎣1 ⎦
⎡ 1 − 1⎤ ⎡5⎤ ⎡2⎤ ⎡w ⎤ ⎡ 1 − 1⎤
x B =b = B −1b = ⎢ ⎥⎢ ⎥=⎢ ⎥ w = ⎢ 1 ⎥ = c B B −1 = [12, 8] ⎢ ⎥ = [4, 4]
⎣ − 1 2 ⎦ ⎣3⎦ ⎣1 ⎦ ⎣w 2 ⎦ ⎣− 1 2 ⎦
Passo 1: Escolha da nova variável que entrará na base K, tal que, z k − c k = max { z j − c j } , j 6, 7. Daí:
j∈J1
z 3 − c 3 = wa1 − c1 z4 − c4 = z5 − c5 =
⎡ 2⎤ ⎡− 1⎤ ⎡0⎤
= [ 4, 4] ⎢ ⎥ − (15) = − 1 = [ 4, 4] ⎢ ⎥ − (0) = − 4 = [4, 4] ⎢ ⎥ − (0) = − 4
⎣3 / 2 ⎦ ⎣0⎦ ⎣− 1⎦
Como todos os z j − c j ≤ 0, o Simplex encontra sua regra de parada. O ótimo foi alcançado.
Maximizar w = 5y 1 + 3y 2
Sujeito a:
Solucionado o problema primal é possível explorar as rela-
y1 + y2 ≤ 8
ções duais e sua interpretação econômica. O dual do proble-
ma anteriormente solucionado é: 2y 1 + y 2 ≤ 12
2y 1 + 3 / 2y 2 ≤ 15
y1 ≥ 0, y2 ≥ 0
No ótimo, nenhuma atividade básica é de¿citária ou lucrativa. Por outro lado, seria de¿citária a introdução de qualquer ativi-
dade não básica no esquema de produção. A solução ótima do dual, que pode ser obtida gra¿camente, nos leva a w0 = 32 e
y1 = 4; y2 = 4. Por esse resultado poderíamos ter evitado o cálculo de otimização após a inclusão da atividade de exploração
do Xisto. A primeira solução obtida sem a alternativa do Xisto seria mantida em face do valor da função-objetivo do dual.
Outro ponto interessante a observar pelos valores das variáveis duais, nesse caso, é que a gasolina e o óleo possuem o
mesmo “valor agregado” nos processos de fabricação.
Método Simplex 231
4.6
Análise de Sensibilidade
O modelo anterior, quando solucionado, nos conduz ao seguinte quadro ótimo do Simplex:
x1 x2 x3 x4 x5
z 32 0 0 -1 -4 -4
x4 1 1 0 1 4 -2
x5 2 0 1 1/2 -1 1
z j − c j = c B B −1aj − c j
Observa-se que para uma variável não básica o termo c B B −1a j não se altera, o que signi¿ca que as alterações nos custos
reduzidos se propagam diretamente com a variação do termo cj . Seja a possível variação do custo igual a G. Para que a
variável de índice j J seja candidata a entrar na base é necessário que zj − (cj + δ ) > 0 ou δ < z j − c j .
232 Programação Linear e Fluxos em Redes
x1 x2 x3 x4 x5
z 32 0 0 -1 -4 -4
x4 1 1 0 1 4 -2
x5 2 0 1 1/2 -1 1
Seja o caso de possíveis alterações no custo do xisto. Denominando por G a variação de c3 (custo do Xisto) tem-se:
z 3 − (c 3 + δ ) > 0 a condição de alterar a solução ótima encontrada. Substituindo os valores na fórmula tem-se:
− δ + ( −1) > 0 ⇒ −δ > 1 ou δ < −1 . Nesse caso, se os custos do xisto caírem 2 unidades, por exemplo, ele tornar-se-á
atrativo e fará parte da solução ótima, levando ao seguinte quadro ótimo:
x1 x2 x3 x4 x5
z 30 0 0 0 -6 0
x4 1 1 0 1 1 -2
x5 1/2 -1/2 1 0 -3/2 2
⎡w ⎤ ⎡ 1 − 1⎤
w = ⎢ 1 ⎥ = c B B −1 = [12 + δ , 8] ⎢ ⎥ = [4 + δ , 4 − δ ]
⎣w 2 ⎦ ⎣− 1 2 ⎦
Método Simplex 233
⎡2 ⎤
z 3 − c 3 = wa1− c1 = [ 4 + δ , 4 − δ ] ⎢ ⎥ − (15) = − 1 + 1/ 2δ
⎣3 / 2 ⎦
⎡− 1⎤
z 4 − c 4 = [ 4 + δ , 4 − δ ] ⎢ ⎥ − (0) = − 4 − δ
⎣0⎦
⎡0⎤
z 5 − c 5 = [ 4 + δ , 4 − δ ] ⎢ ⎥ − (0) = − 4 + δ
⎣− 1⎦
Daí é possível obter o seguinte conjunto de equações que delimitam a variação de viabilidade:
O que signi¿ca que no intervalo 4 ≥ δ ≥ 2 a solução não sofrerá alteração em sua base. Fora do intervalo, a base não é
ótima. Com as equações acima é possível examinar variação de custos simultânea em mais de uma variável (básica ou não)
através da constituição de sistemas de equações.
B −1 (b + Δb)
B −1(b + Δb) ≥ 0
⎡ 1 − 1⎤ ⎡5+ Δb1 ⎤
B −1 (b + Δb) = ⎢ ⎥⎢ ⎥≥0
⎣ − 1 2 ⎦ ⎣3+ Δb2 ⎦
2 + Δb1 − Δb2 ≥ 0
1 − Δb1 + 2Δb2 ≥ 0
Que implica a solução de um sistema de inequações para a análise da mudança do termo independente.
234 Programação Linear e Fluxos em Redes
Exemplo 4: Exame do programa que se segue em relação a mudanças no vetor dos termos independentes.
⎡1 ⎤
9Supondo que o vetor b = ⎡⎢3 ⎤⎥ seja alterado para b = ⎢ ⎥ , o que acontecerá ?
⎣24⎦ ⎣18⎦
⎡ 1 0 ⎤ ⎡ 1 ⎤ ⎡1 ⎤ ⎡ x1B ⎤ ⎡1 ⎤
x B = B −1b = ⎢ ⎥⎢ ⎥=⎢ ⎥ x = ⎢ B⎥ = ⎢ ⎥
B
Observa-se que a solução permaneceu ótima (por coincidência...). Então, em analogia ao exame do modelo anterior, aqui há
interesse nos intervalos em que as componentes de b podem variar mantendo a viabilidade da solução corrente.
9No caso corrente, o menor valor de b2 para que a solução permaneça ótima será:
⎡ 1 0 ⎤ ⎡3 ⎤ ⎡ 3 ⎤
x B = B −1b = ⎢ ⎥ ⎢ ⎥ =⎢ ⎥≥0 ∴
⎣ − 2 / 3 1/ 3⎦ ⎣ Δ ⎦ ⎣ − 2 + Δ / 3⎦
Δ≥6
Nesse caso:
⎡2 ⎤
9Supondo agora que b = ⎢ ⎥ o que aconteceria? ⎡ 1 0 ⎤ ⎡2 ⎤ ⎡ 2 ⎤
3 ⎣ ⎦ x B = B −1b = ⎢ ⎥⎢ ⎥=⎢ ⎥
⎣− 2 / 3 1/ 3⎦ ⎣3⎦ ⎣− 1⎦
Ou seja, a base ótima, com a modi¿cação do vetor b, deixa de ser viável. Para solucionar essa inviabilidade, é possível
aplicar o algoritmo dual Simplex da seguinte forma:
x1 x2 x3 x4
z 1 0 0 -1/3 -1/3
x1 2 1 0 1 0
x2 -1 0 1 -2/3 1/3
Método Simplex 235
Quadro Ótimo x1 x2 x3 x4
z 1/2 0 -1/2 0 -1/2
x1 1/2 1 3/2 0 1/2
x2 3/2 0 -3/2 1 -1/2
x1 + 6x 2 ≤ 30
⎡ x1B ⎤ ⎡3⎤ B
Para veri¿car se houve o corte da solução ótima calculada anteriormente, basta substituir os valores de x = ⎢ ⎥ = ⎢ ⎥ na
⎢⎣ x 2 ⎥⎦ ⎣8⎦
B
restrição, o que resultará em: 3 + 6 x 8 t 30, provando que haverá alteração na solução, uma vez que a solução encontrada
no quadro ótimo causa a violação da nova restrição. A nova restrição reduzirá o tamanho do espaço das soluções viáveis do
problema e, consequentemente, diminuirá seu valor no ótimo. Para solucionar o problema decorrente da agregação da nova
restrição, será necessário acrescentá-la ao quadro inicial. Como uma nova linha está sendo criada na matriz de restrições,
será indispensável introduzir a respectiva variável de folga para manter uma base viável inicial. Neste exemplo a variável de
folga será x5. O quadro é constituído da seguinte forma:
x1 x2 x3 x4 x5
z 24 -1 0 0 -1 0
x3 3 1 0 1 0 0
x2 8 2/3 1 0 1/3 0
x5 30 1 6 0 0 1
236 Programação Linear e Fluxos em Redes
A coluna de x2, uma variável básica, não é canônica, pois existe o valor 6 na última linha. Usando o método das operações
elementares para completar a inversão da base tem-se:
x1 x2 x3 x4 x5
z 24 -1 0 0 -1 0
x3 3 1 0 1 0 0
x2 8 2/3 1 0 1/3 0
x5 -18 -3 0 0 -2 1
Aplicando o algoritmo dual Simplex, e após dois pivoteamentos, chega-se ao seguinte quadro:
x1 x2 x3 x4 x5
z 33/2 0 0 -1/2 0 -1/6
x4 9/2 0 0 -3/2 1 1/2
x2 9/2 0 1 -1/6 0 1/6
x1 3 1 0 1 0 0
9 Segundo caso: Corresponde à eliminação de uma restrição. Nessa alternativa encontramos alguns subcasos, a saber:
A restrição eliminada é de desigualdade.
Se a variável básica relacionada com essa restrição for a variável de folga a ela associada, então a restrição é inativa
e sua eliminação não causará qualquer modi¿cação para a solução ótima.
Caso a variável básica seja real nada é possível a¿rmar e deve-se retomar ao processo de solução como um proble-
ma novo
A restrição eliminada é de igualdade.
Nesse caso deve-se recomeçar a solução a partir da eliminação da restrição
9O terceiro caso: Corresponde à alteração de coe¿cientes em uma restrição já existente. Nessa hipótese não será mais
necessária a introdução da variável de folga para completar a base. As alterações na restrição podem ser tratadas como no
caso de acréscimo de uma nova restrição, considerando-se a variável de folga já incluída.
Supondo-se que a variável x2 deva ser eliminada do problema, então é possível substituí-la na base por x3 que, dentre as
variáveis não básicas, possui o custo reduzido menos desfavorável. Em uma situação em que se apresente a condição
de parada para o Simplex (quadro ótimo), as variáveis não básicas possuem custos reduzidos nulos ou negativos. Nessa
situação, substituir uma variável básica por uma não básica irá, provavelmente, piorar o valor da solução representada no
quadro. O pivoteamento se con¿gura da seguinte forma:
Quadro Inicial x1 x2 x3 x4 x5
z -100 0 0 -2 -3 0
x2 20 -1 1 3 1 0
x5 10 16 0 -2 -4 1
O que leva ao seguinte vértice vizinho ao anterior, ótimo dentro do novo quadro:
Quadro Ótimo x1 x2 x3 x4 x5
Supondo que deseje-se acrescentar mais uma atividade, a x7 , com os seguintes elementos:
⎡0 ⎤
a 7 = ⎢⎢1 ⎥⎥ e c 7 = 4
⎢⎣2⎥⎦
⎡ 3 − 2 2 ⎤ ⎡0 ⎤
z 7 − c 7 = c B a7 − c 7 = [− 1, − 2, − 7] ⎢⎢ 3 − 2 3 ⎥⎥ ⎢⎢1 ⎥⎥ − ( − 4) = 1
B −1
⎢⎣ − 1 1 − 1 ⎥⎦ ⎢⎣2⎥⎦
⎡ 3 − 2 2 ⎤ ⎡0 ⎤ ⎡ 2 ⎤
y 7 = ⎢⎢ 3 − 2 3 ⎥⎥ ⎢⎢1 ⎥⎥ = ⎢⎢ 4 ⎥⎥
⎢⎣ − 1 1 − 1 ⎥⎦ ⎢⎣2⎥⎦ ⎢⎣− 1⎥⎦
Quadro Inicial x1 x2 x3 x4 x5 x6 x7
z -13 0 0 0 -2 -1 -1 1
x1 2 1 0 0 3 -2 2 2 2/2 = 1
x2 2 0 1 0 3 -2 3 4 2/4 = 0,5
x3 1 0 0 1 -1 1 -1 -1
Método Simplex 239
Quadro Ótimo x1 x2 x3 x4 x5 x6 x7
z -27/2 0 -1/4 0 -11/4 -1/2 -7/4 0
x1 1 1 -1/2 0 3/2 -1 1/2 0
x7 1/2 0 1/4 0 3/4 -1/2 3/4 1
x3 3/2 0 1/4 1 -1/4 1/2 -1/4 0
9 Terceiro caso: Aborda a alteração dos coe¿cientes de uma variável já existente. Dois subcasos são possíveis:
A variável modi¿cada é não básica
Nesse caso, basta recalcular a coluna ( l ), como no exemplo anterior.
A variável modi¿cada é básica
É possível recalcular a coluna ( l ), introduzi-la no quadro e completar o processo de inversão da base.
⎡1 ⎤
Supondo que x 2 = ⎢ ⎥ . Sabe-se que:
⎣3 ⎦
x1 x2 x3 x4 x5
z -100 0 0 -2 -3 0
x2 20 -1 1 3 1 0
x5 10 16 -1 -2 -4 1
A matriz básica pode ser obtida pelo método das operações elementares, pela canonização da coluna de x2, como a seguir:
240 Programação Linear e Fluxos em Redes
x1 x2 x3 x4 x5
z -100 0 0 -2 -3 0
x2 20 -1 1 3 1 0
x5 30 15 0 1 -3 1
Finalmente, cabe observar que diversas mudanças em coe¿cientes da função-objetivo e das restrições não são comumente dispo-
nibilizadas em pacotes de resolução de Problemas de Programação Linear. O uso consciente desse tipo de informação tem papel
importante na avaliação da robustez do modelo, já que é usual que existam incertezas sobre os exatos valores desses coe¿cientes.
4.7
Exercícios Propostos
1 Revisão da Teoria
☺
Responda com Certo ou Errado justi¿cando sua escolha:
a. ( ) Quando a solução de cada problema é ¿nita os valores das soluções
ótimas do par são iguais.
b. ( ) O número de variáveis de folga de um problema corresponde ao número
de variáveis reais do outro.
1. Para um par de problemas c. ( ) Sempre que uma variável de folga é diferente de zero, a variável dual
primal/dual na solução ótima é correspondente é igual a zero.
correto ¿rmar que:
d. ( ) Se um dos sistemas tiver in¿nitas soluções, o outro também terá.
e. ( ) Se um dos sistemas for inviável, o outro também será.
f. ( ) O número de iterações do algoritmo Simplex necessárias à solução do
problema será o mesmo para cada sistema;
g. ( ) A condição de parada no problema primal corresponde à condição de
viabilidade no problema dual.
5 Exercícios Práticos - 1
☺
Solucionar o problema da dieta, Exemplo 6 do Capítulo 2, e o problema do sítio, Exemplo 13 do Capítulo 2, através do
algoritmo dual Simplex.
6 Exercícios Práticos - 2
☺
Uma companhia deve produzir 500 ferramentas para um de seus clientes, em um certo espaço de tempo. Ela possui duas
máquinas que podem produzir as ferramentas, segundo a distribuição de custos constantes da Tabela 4.2.
7 Exercícios Práticos - 3
☺
Uma pequena siderúrgica recebe encomenda de um lote de lingotes de ferro que deverá totalizar 240 toneladas (ton) de
conteúdo do elemento Ferro (Fe). O cliente admitirá que o lote homogêneo tenha quantidades adicionais do elemento Silício
(Si), mas para cada tonelada de Si deverá haver na liga pelo menos 15 toneladas de Fe. A ¿rma tem em estoque quantidades
mais que su¿cientes:
z Minério do tipo A (min A), que custa R$ 6.000,00 cada centena de toneladas, e que tem 2% de Si e 60% de Fe.
z Minério do tipo B (min B), que custa R$ 3.000,00 cada centena de toneladas, e que tem 4% de Si e 40% de Fe.
A ¿rma tem ainda a oportunidade de usar como matéria-prima uma sucata de boa qualidade, que custa R$ 2.500,00 a tone-
lada, e que possui praticamente 100% de Fe.
1. Formular o Problema de Programação Linear que calcula a mistura de mínimo custo de matérias-primas
necessárias para a produção dos lingotes encomendados.
2. Formular o problema dual.
3. Colocar os problemas na forma-padrão.
Método Simplex 243
8 Exercícios Práticos - 4
☺
Uma fábrica manufatura 5 tipos de prateleiras (p1, ..., p5) utilizando dois processos de produção (processo normal – N e o
processo acelerado – A). Cada produto requer um certo número de horas para ser trabalhado dentro de cada processo, e
alguns produtos só podem ser fabricados através de um dos tipos de processos. A Tabela 4.3 resume o consumo (em horas)
dentro de cada esquema de fabricação e os lucros obtidos (em R$) após a dedução dos custos de produção.
Prateleiras p1 p2 p3 p4 p5
Lucros/Unidade (R$) 550 600 350 400 200
Processo Normal (horas) 12 20 - 25 15
Processo Acelerado (horas) 10 8 16 - -
A montagem ¿nal de cada prateleira requer 20 horas de mão de obra por unidade. A fábrica possui 3 máquinas para o
processo normal e 2 para o processo acelerado. As máquinas trabalham em dois turnos de 8 horas por dia, em um regime
de 6 horas semanais. Uma equipe de 8 homens trabalha em turno único de 8 horas, durante seis dias, na montagem das
prateleiras junto aos clientes.
7. Qual deveria ser o preço dos produtos que não foram escolhidos para serem fabricados para que eles se
tornassem economicamente atrativos?
8. Qual o valor econômico de uma hora extra de capacidade de produção em cada processo?
9. Justi¿que o custo da prateleira 1 através da análise do valor das horas de trabalho agregadas pelos processos
de fabricação e montagem.
9 Exercícios Práticos - 5
☺
Considere o problema de programação linear ao lado:
1. O que aconteceria com o retorno do sistema de produção se fosse disponibilizada mais uma unidade do insumo: 1.
A; 2. B; 3. C.
2. Em que intervalo de variação de disponibilidade o insumo A poderá oscilar para que a base ótima não seja alterada?
3. Qual será a solução ótima se b1 = 5? e se b1 = 25?
4. Se estão disponíveis mais 3 unidades do insumo 1, qual será o valor do retorno ótimo obtido com a venda dos produtos?
5. Quanto vale para a companhia a unidade do insumo A? E a do B?
6. A companhia resolveu introduzir um novo produto em sua linha de produção (x8). Cada unidade de x8 poderá ser
comercializada por 3 unidades monetárias e consumirá 1 unidade do insumo A, 1 do insumo B e nenhuma do C. Par-
tindo da situação inicial de disponibilidade de insumos, qual será a nova política de produção da companhia? Nesse
caso, valerá a pena aumentar a disponibilidade do insumo B? Por quê? Nesse caso, o valor do insumo A mudou para
a companhia?
7. Uma súbita mudança de preferências da clientela valorizou o produto 4, lhe dando um retorno de 5 unidades mone-
tárias. Estudar o efeito dessa valorização sobre a solução inicial. Nesse caso, qual seria o valor do insumo C para a
produção da companhia?
Método Simplex 245
Cada combinação CPU x Tipo de Placa-mãe exige um tempo de montagem e testes peculiares que podem ser resumidos
em homens x horas por lote de 25 placas na Tabela 4.5.
246 Programação Linear e Fluxos em Redes
São disponíveis 50 homens x hora de mão de obra técnica para a montagem. O Àuxo de montagem dos computadores
exige no mínimo 500 placas (consideradas em qualquer esquema de montagem) e as quantidades máximas por esquema,
conforme Tabela 4.6:
1. Solucionar o problema de maximizar a agregação de lucros com a montagem das placas-mãe, utilizando o algoritmo
dual Simplex.
2. Qual deveria ser o mínimo valor associado ao esquema de Placa Tipo 1 x CPU 2, para que ele fosse de montagem
atrativa?
3. O que aconteceria se, em um certo dia, o Àuxo de montagem exigisse a preparação de 600 placas? Nesse caso,
como se comportaria o valor agregado médio por placa? (aumenta? diminui?).
13 Intepretação Econômica
☺
Uma nova empresa em Presidente Prudente — O Rei das Mesas — produz mobiliário de escritório. Fabrica mesas,
escrivaninhas e cadeiras. A produção de uma mesa requer 8Kg de madeira e 5Kg de metal, e é vendida por R$ 80.
Uma escrivaninha gasta 6Kg de madeira e 4Kg de metal, e é vendida por R$ 60. Uma cadeira requer 4Kg de metal e
a mesma quantidade de madeira, sendo vendida por R$ 50. Determinar a estratégia de maximização de receita para
a empresa, uma vez que seus recursos são limitados a 100Kg de madeira e 60Kg de metal. Ao entrar no mercado a
Rei iniciou uma forte concorrência com o Magazine do Lobão. Lobão não é propriamente um apreciador da livre com-
petição. Em uma reunião com suas filiais de Alvares Machado, Regente Feijó e Caiabu, decidiu comprar os insumos
de seu concorrente no mercado regional. Forçando para cima o preço dos insumos da Rei, pensou em obrigar sua
concorrente a comprar matéria-prima por um valor mais elevado ou fora da região de Prudente, reduzindo a margem
de lucro do negócio e inviabilizando seu funcionamento. Lobão não está disposto a pagar um centavo a mais do que
o estritamente indispensável para elevar o preço de mercado da madeira e do metal que a Rei emprega. Lobão sabe
que deve oferecer pela matéria-prima um valor suficiente para que o custo de mercado não permita mais lucro à
concorrente. Enfim, Lobão deseja reduzir a zero o lucro de operação da Rei valorizando a matéria-prima no mercado
regional. Como consultor de Lobão, apresentar a solução que minimiza o investimento necessário para zerar o lucro
da Rei.
Método Simplex 247
16 Dual Simplex - 1
☺
Minimizar z = 3x1 + 4 x 2 + x 3
Sujeito a:
Solucionar o modelo ao lado pelo método dual Simplex. x1 + 3x 2 + x 3 ≥ 3
− 2x 2 + 2x 3 ≥ 5
x i ≥ 0, i = 1, 2,3
17 Dual Simplex - 2
☺
Minimizar z = 2x1 + 3x 2 + 4 x 3
Sujeito a:
Solucionar o modelo ao lado pelo método dual Simplex. x1 + 2x 2 + x 3 ≥ 3
2x1 − x 2 + 3x 3 ≥ 4
x1 , x 2 , x 3 ≥ 0
Uma empresa siderúrgica, produtora de aços especiais, precisa programar sua produção para os próximos três meses.
Todos os seus produtos, essencialmente obtidos das matérias-primas Ni, Cr e sucata de Fe, passam pelo laminador desbas-
tador, cuja capacidade de laminação é de, no máximo, 50 mil toneladas de aço por mês. O estoque atual de Ni é de 6 mil
toneladas, e seu único fornecedor desse metal tem capacidade de mineração e bene¿ciamento de, no máximo, 3 mil tonela-
das por mês. O estoque atual de Cr é de 10 mil toneladas, mas a possibilidade de importar esse metal no prazo mínimo de
Método Simplex 249
um mês viabiliza seu consumo em quaisquer quantidades a partir do segundo mês do horizonte de planejamento. A sucata
de Fe e as demais matérias-primas estão disponíveis em quantidades folgadas. A empresa, detentora de monopólio de aços
especiais, considera para os próximos três meses apenas as seguintes alternativas de produção:
9 Aço tipo ABNT 301, que contém no máximo 0,15% de C, no máximo 2% de Mn e no máximo 1% de Si. Esse tipo de
aço, utilizado para ¿ns estruturais, deve conter de 16 a 18% de Cr e de 6 a 8% de Ni.
9 Aço tipo ABNT 302, que deve atender aos mesmos limites do aço ABNT 301 para C, Mn e Si. Mas como deve ser
utilizado em equipamentos hospitalares e de indústria alimentícia (deve ser muito resistente à corrosão), deverá
conter de 17 a 19% de Cr e de 8 a 10% de Ni.
Aço tipo ABNT 409, que contém no máximo 0,08% de C, 1% de Mn e 1% de Si. Esse tipo de aço é utilizado para
9
exaustão de gases e motores a explosão, devendo conter de 10,5 a 11,75% de Cr, ser isento de Ni e possuir
uma percentagem de Ti pelo menos 6 vezes maior que a percentagem de C e no máximo igual a 0,75 do peso
total da liga.
Supondo que a empresa tenha assumido compromissos de venda de pelo menos 10 mil toneladas por mês de aço ABNT 301,
e que tenha se comprometido a fornecer, até o ¿m do terceiro mês, pelo menos 30 mil toneladas de aço tipo ABNT 302.
A empresa sabe ainda que, embora seu mercado seja bom, não conseguirá vender mais do que o triplo das quantidades
já pedidas desses dois tipos de aços com Ni. Por outro lado, a demanda pelo aço tipo ABNT 409 é praticamente ilimitada,
em face de seus bons preços e de uma conjuntura favorável nos mercados (nacional e internacional) dos motores de
explosão.
Assumindo e explicitando as hipóteses que julgar necessárias (para os estoques iniciais dos produtos etc.), responda às
seguintes questões:
1. Desprezando as restrições relativas ao conteúdo de Ti no aço tipo ABNT 409, cite as principais variáveis de decisão
no problema em questão.
2. Quais são os recursos limitados nesse problema de planejamento da produção e estocagem dessa empresa? Escre-
ver explicitamente as principais relações de disponibilidade desses recursos.
3. Escrever as principais restrições de atendimento ao cliente.
4. Arbitrando preços por tonelada para os diversos tipos de aço (da ordem de alguns milhares de US$), formule uma
função-objetivo que maximize a receita total da empresa nos três meses em questão.
5. Mostrar o tableau do Problema de Programação Matemática que modela esse problema de planejamento e produção.
6. Assumindo que a redução de C numa liga seja um procedimento custoso, e que o preço do Ti seja alto, como se pode
acomodar no modelo de PL a exigência de qualidade que relaciona teores de C e Ti na produção do aço ABNT 409.
7. Resolver o problema utilizando algum software adequado.
8. Qual é a melhor política para produzir e estocar? Existem alternativas?
9. Se existir, cite um tipo de aço cuja produção seja antieconômica em algum período. Qual é o prejuízo, por unidade no
nível da atividade, que esse tipo de aço daria se a Gerência de Produção insistisse na sua fabricação nesse período?
Se o preço do aço subir, a partir de que acréscimo ele passa a fazer parte do esquema ótimo de produção?
10. Existe algum recurso folgado? Qual? Até quanto esses recursos podem ter sua disponibilidade reduzida sem alterar
o esquema de produção ótima?
11. Assumindo que todas as demais condições se mantenham, dentro de que intervalo de preços pode cada atividade
básica variar sem que ela seja descartada do programa ótimo de produção?
250 Programação Linear e Fluxos em Redes
12. Citar preços de equilíbrio ¿nanceiro para a empresa, aí incluindo os valores dos produtos e dos insumos. Mantendo
esses valores como base, suponha que atualmente o custo do Ni para a empresa seja de US$ 8.000,00 a tonelada.
Até quanto pode esse preço subir, sem que incorra em prejuízos para a empresa?
13. Quais são os valores marginais dos diversos produtos e insumos?
Uma fazenda produtora de camarão vende dois produtos. Larvas vivas de camarão para reprodução e camarões congelados
para serem embalados e comercializados pelos distribuidores. A fazenda resolve fazer uma licitação entre seus fornecedo-
res para reduzir os custos do transporte. Duas transportadoras respondem à licitação com diferentes tipos de caminhões.
A transportadora A possui um caminhão refrigerado (C1) e um caminhão adaptado para o transporte de água salgada (C2),
que pode ser usado para levar as larvas vivas. A transportadora B possui dois tipos de caminhões (C3) (C4), que possuem
uma caçamba que é dividida em um espaço refrigerado e um para granel, que pode também transportar água salgada.
A Tabela 4.7 resume as características dos caminhões.
A licitação prevê o transporte de 100 toneladas de camarão refrigerado e 120m3 de solução com larvas de camarões vivos.
O número máximo de viagens que cada caminhão pode fazer foi ¿xado pelas empresas e está expresso na Tabela 4.7.
1. Elaborar o Modelo de Programação Linear que otimiza o transporte.
2. A solução do modelo elaborado no número 1 foi utilizada para adjudicar a licitação de contratação. Consequentemen-
te, foi ¿rmado um contrato, conforme a solução prevista. Após essa assinatura, surgiu uma demanda urgente de 50m3
de larvas. O concorrente que ganhou o maior volume de transporte (transporte de larvas) reclamou para si o direito
de atender essa nova demanda com os mesmos custos por quilômetro previstos para o contrato. Para tal, propôs au-
mentar sua capacidade de atendimento até o limite da demanda. Todavia o seu concorrente imediatamente reclamou
que isso não estava previsto na licitação. Como resposta, também se propôs a crescer sua oferta de transporte até
o limite da demanda, pelo mesmo valor de sua oferta inicial. É conveniente para a produtora de camarão adjudicar a
nova demanda ao transportador com maior volume no contrato inicial?
A nova demanda deÀagrou uma luta pelo transporte. Os competidores perce- Tabela 4.8. Nova proposta para C1
bem uma ocasião para conseguir o contrato, sabendo a proposta do concorren-
C1
te. O fornecedor B oferece um novo caminhão, segundo as condições previstas
Volume
na Tabela 4.8. Seu concorrente contra-ataca reduzindo o custo do caminhão C1
15 m3
para 4,5 UM e garantindo cobrir qualquer demanda da fazenda, seja em volume,
4,5 UM / Quilômetro
seja em peso. A fazenda sabe que terá uma nova demanda de 120 toneladas de 15 viagens
camarão congelado, porém não comunica esse fato aos competidores.
Método Simplex 251
1. Programar a melhor política para a fazenda de camarões de forma que ela explore as melhores possibilidades ofereci-
das pelos fornecedores no cenário da demanda adicional de 50m3 em volume e 120 toneladas de camarão congelado.
2. Solucionar o problema a partir da solução número 2.
Um piscicultor cria, a partir de larvas compradas no mercado, 4 tipos de peixes, em 3 diferentes lagoas. A produção é rea-
lizada em um ciclo sincronizado, em que todas as lagoas são semeadas e colhidas simultaneamente. Cada lagoa possui
uma taxa de produtividade diferente para cada peixe, em função do alimento biológico lá disponível. O alimento biológico da
lagoa é complementado por uma ração adquirida no mercado. Qualquer um dos diferentes tipos de peixes pode ser criado
em conjunto com um segundo peixe na mesma lagoa, ou isolado. Não são possíveis criações na mesma lagoa com 3 ou
4 diferentes tipos de peixes. Quando uma mistura de 2 diferentes peixes ocorre na mesma lagoa, a produtividade de cada
tipo de peixe é reduzida em 10%, e o consumo de ração aumenta em 20% do previsto para os peixes isolados (cresce para
ambos). A Tabela 4.9 resume a distribuição de produtividade nas lagoas.
A Tabela 4.10 ¿xa o consumo de ração em um quilo de larvas para se tornar uma tonelada de peixe quando cultivado iso-
ladamente em uma lagoa. A tabela também mostra a disponibilidade de larvas para compra no mercado, por tipo de peixe.
TABELA 4.10. Consumo de quilos de ração para formar um quilo de peixe a partir das larvas
A tabela 4.11 ¿xa a capacidade máxima de larvas por lagoa (peixe isolado ou a soma das larvas dos dois peixes criados
simultaneamente na lagoa), em cada ciclo de produção.
TABELA 4.11. Capacidade de cultivo nas lagoas em quilos de larvas (total cultivado)
Lagoas 1 2 3 4
Cultivo Isolado 50 Kg 60 Kg 25 Kg 35 Kg
Cultivo de dois peixes 60 Kg 80 Kg 40 Kg 40 Kg
252 Programação Linear e Fluxos em Redes
Finalmente, a Tabela 4.12 ¿xa o lucro com a venda de cada quilo, de cada diferente tipo de peixe, e a disponibilidade de
ração para compra no mercado durante o ciclo de produção.
TABELA 4.12. Lucro com a venda do pescado (por quilo) e disponibilidade da ração no ciclo de produção
1 2 3 4
Lagoa 20 Kg 30 Kg 10 Kg 40 Kg
Cada quilo da larva Alfa produz 2.100 quilos de pescado em qualquer lagoa e pode ser vendida por 45 UM. A disponibilidade
de larvas Alfa no mercado é maior que a capacidade da fazenda, prevista na Tabela 4.13. O único problema da larva Alfa é que
ela é voraz, e consome 0,9 quilo de ração por quilo de pescado produzido, e não há possibilidade de aquisição de mais ração.
Amanhã de manhã é dia do exame Programação Linear. João sabe que fará parte da matéria da prova quatro tópicos, e cada
um deles possui igual chance de ser sabatinado. Na prova cairão apenas dois tópicos. João já dedicou ao estudo 20 horas,
sendo 5 horas em cada um dos tópicos. Autoavaliou o seu conhecimento e determinou o grau que ele esperaria conseguir
Método Simplex 253
se todo o conteúdo da prova fosse sobre um dos tópicos possíveis. João também avaliou o grau de di¿culdade que sentiu ao
estudar as disciplinas e o registrou na tabela. Os resultados de suas anotações estão resumidos na Tabela 4.14.
TABELA 4.14. Di¿culdade e suposto grau obtido se a prova fosse hoje e exclusivamente sobre uma das matérias
Imaginando que a melhoria de desempenho de João seja linearmente proporcional ao tempo de estudo em cada matéria.
Supondo que o grau de di¿culdade represente a possível taxa de crescimento do grau residual (a diferença do grau alcança-
do até o momento e os 100 pontos possíveis) em cada matéria. Admitindo que João adote a estratégia de buscar alcançar
um grau maior ou igual a 50 em todos os temas para garantir a aprovação.
1. Programar a distribuição ótima das 10 horas de estudo que ainda restam ao João. (Observe-se que esse problema
pode ser também solucionado pela teoria dos jogos.)
2. Um aluno soube de uma dica dada pelo professor: A prova está difícil. Diante dessa informação, João refez sua au-
toavaliação, diminuindo a expectativa de seu grau para: Álgebra Linear = 20; Algoritmo Simplex = 50; Dualidade = 60
e Interpretação econômica = 15. Solucionar o modelo a partir da base ótima do número 1.
3. Muito preocupado com a aprovação, João telefonou para o professor e pediu se poderia fazer, excepcionalmente, a
prova pela tarde, assim ganhando mais 6 horas para estudar. O professor disse que poderia fazer uma prova especial
à tarde, todavia avisou: considere que se você ganhar essa prorrogação excepcional, por justiça com os demais, vou
descontar 10 pontos no grau ¿nal de sua prova. Considerando que isso represente um decréscimo uniforme de 10
pontos em cada tópico da autoavaliação de João, será vantajoso para João fazer a prova especial?
4.8
Solução de Exercícios Propostos Selecionados
Exercícios Práticos - 1 5
Problema 6 – O Problema da Dieta
Quadro 1 x1 x2 x3 x4 x5 x6 x7
z 0 -2 -4 -3/2 -1 0 0 0
x5 -11 -2 -2 -10 -20 1 0 0
x6 -70 -50 -20 -10 -30 0 1 0
x7 -250 -80 -70 -10 -80 0 0 1
Quadro Ótimo x1 x2 x3 x4 x5 x6 x7
z 25/8 -1 -25/8 -11/8 0 0 0 -1/80
x5 103/2 18 31/2 -15/2 0 1 0 -1/4
x6 95/4 -20 25/4 -25/4 0 0 1 -3/8
x7 25/8 1 7/8 1/8 1 0 0 -1/80
Quadro Inicial x1 x2 x3 x4 x5 x6 x7 x8
z 0 54/25 63/50 203/250 0 0 0 0 0
x4 -400 -1 0 0 1 0 0 0 0
x5 -800 0 -1 0 0 1 0 0 0
x6 -10000 0 0 -1 0 0 1 0 0
x7 200000 1 1 1 0 0 0 1 0
x8 60000 1/5 3/10 2/5 0 0 0 0 1
1o Quadro x1 x2 x3 x4 x5 x6 x7 x8
z -8120 54/25 63/50 0 0 0 203/250 0 0
x4 -400 -1 0 0 1 0 0 0 0
x5 -800 0 -1 0 0 1 0 0 0
x3 10000 0 0 1 0 0 -1 0 0
x7 190000 1 1 0 0 0 1 1 0
x8 56000 1/5 3/10 0 0 0 2/5 0 1
2o Quadro x1 x2 x3 x4 x5 x6 x7 x8
z -9128 54/25 0 0 0 63/50 203/250 0 0
x4 -400 -1 0 0 1 0 0 0 0
x2 800 0 1 0 0 -1 0 0 0
x3 10000 0 0 1 0 0 -1 0 0
x7 189200 1 0 0 0 1 1 1 0
x8 55760 1/5 0 0 0 3/10 2/5 0 1
3o Quadro x1 x2 x3 x4 x5 x6 x7 x8
z -9992 0 0 0 54/25 63/50 203/250 0 0
x1 400 1 0 0 -1 0 0 0 0
x2 800 0 1 0 0 -1 0 0 0
x3 10000 0 0 1 0 0 -1 0 0
x7 188800 0 0 0 1 1 1 1 0
x8 55680 0 0 0 1/5 3/10 2/5 0 1
Quadro Ótimo x1 x2 x3 x4 x5 x6 x7 x8
z -417800 0 0 0 0 -9/10 -337/250 -54/25 0
x1 189200 1 0 0 0 1 1 1 0
x2 800 0 1 0 0 -1 0 0 0
x3 10000 0 0 1 0 0 -1 0 0
x4 188800 0 0 0 1 1 1 1 0
x8 17920 0 0 0 0 1/10 1/5 -1/5 1
Exercícios Práticos - 2 6
Modelo:
Minimizar z = 1,12x1 + 1,23x 2
Quadro Inicial x1 x2 x3 x4 x5
Sujeito a:
x1 ≤ 300 z 0 -1,12 -1,23 0 0 0
x 2 ≤ 300 x3 300 1 0 1 0 0
x1 + x 2 ≥ 500 x4 270 0 1 0 1 0
x1 ≥ 0, x 2 ≥ 0 x5 -500 -1 -1 0 0 1
Intepretação Econômica 13
Modelo primal:
i = 1 – madeira, 2 – metal. 4 y 1 + 4 y 2 ≥ 50
y 1, y 2 ≥ 0
Da solução dual observa-se que o valor agregado do metal é de R$ 16, enquanto o da madeira é zero. Portanto, se o custo
da madeira ultrapassar R$ 16 no mercado, o lucro da Rei está inviabilizado. Lobão deve investir nas compras desse insumo
no mercado de forma a alcançar essa cotação.
Quadro Ótimo x1 x2 x3 x4
z -45 0 0 -10/3 -25/3
x1 2 1 0 1/3 1/3
x2 1 0 1 -2/3 1/3
2. Solução gráÀca
Quadro Ótimo x1 x2 x3 x4
z -50 0 0 0 -10
x1 2 1 0 1/3 1/3
x2 1 0 1 -2/3 1/3
Observa-se que, com a mudança, passam a existir dois pontos extremos ótimos (e in¿nitas soluções ótimas pela combina-
ção linear dos pontos extremos). A ¿gura abaixo demonstra que a direção da função-objetivo pode variar entre a direção das
restrições de 2x1 + x2 e x1 - x2, que a base ótima do programa (o ponto B) não será alterada.
258 Programação Linear e Fluxos em Redes
9Análise de sensibilidade.
No caso, x2 é uma variável básica. Quando uma variável básica de um PPL de maximização aumenta seu valor, permane-
cerá na base. O cálculo de z2-c2 comprova que nenhuma outra variável pode melhorar a solução.
⎡ 1/ 3 1/ 3⎤ ⎡ − 1⎤
z2 − c2 = c BB −1a2 − c2 = [− 20, − 10] ⎢ ⎥ ⎢ ⎥ − (10) = 0
⎣ − 2 / 3 1/ 3⎦ ⎣ 1 ⎦
⎡ 1/ 3 1/ 3⎤ ⎡ 1 ⎤ ⎡ 1 / 3 1 / 3 ⎤ ⎡0 ⎤
z3 − c3 = [− 20, − 10] ⎢ ⎥ ⎢ ⎥ − (0) = 0 ; z 4 − c 4 = [− 20, − 10] ⎢ ⎥ ⎢ ⎥ − (0) = −10
⎣ − 2 / 3 1/ 3⎦ ⎣ 0⎦ ⎣− 2 / 3 1/ 3⎦ ⎣1 ⎦
9Solução Simplex
Quadro Ótimo x1 x2 x3 x4
z 0 0 -10/3 -25/3
x1 11/6 1 0 1/3 1/3
x2 4/3 0 1 -2/3 1/3
Método Simplex 259
9Análise de sensibilidade
A mudança no valor do termo independente não afeta o valor dos custos reduzidos e, portanto, não altera a condição de
parada do quadro ótimo. Todavia pode alterar sua viabilidade. Para testar se houve uma alteração na viabilidade do quadro
ótimo, basta calcular o valor do novo x B . No caso, não há alteração na viabilidade do quadro.
⎡ 1/ 3 1/ 3⎤ ⎡1/ 2⎤
x B = b = B −1b = ⎢ ⎥ ⎢ ⎥ = [11/ 6, 4 / 3]
⎣ − 2 / 3 1/ 3⎦ ⎣ 5 ⎦
2. c3 passa de 13 para 8.
Variável não básica, basta calcular a variação e somar ao custo reduzido ' = 8 - 13 = - 5. No quadro, z3- c3 = -2. Logo, o custo
reduzido após a modi¿cação será (-2) + (-5) = - 7. A variável não é candidata a entrar na base, e a solução permanece ótima.
260 Programação Linear e Fluxos em Redes
3. c1 passa de - 5 para - 2. De forma semelhante ao pedido 2, ' = -2 - (-5) = + 3 . z1 - c1 = 0 + 3 = 3. O quadro não é ótimo,
e x1 deve entrar na base.
4. c2 passar de 5 para 6. Como se trata de uma variável básica, é necessário recalcular os valores zj - cj do quadro.
⎡ 1 0⎤ ⎡ − 1 ⎤ ⎡ 1 0⎤ ⎡ 1 ⎤
z1 − c1 = [− 6, 0] ⎢ ⎥ ⎢ ⎥ − (5) = +1 ; z 2 − c 2 = [− 6, 0] ⎢ ⎥ ⎢ ⎥ − (0) = 0
⎣− 4 1⎦ ⎣ 12⎦ ⎣− 4 1⎦ ⎣ 4⎦
⎡ 1 0⎤ ⎡ 3 ⎤ ⎡ 1 0⎤ ⎡ 1 ⎤
z 3 − c 3 = [− 6, 0] ⎢ ⎥ ⎢ ⎥ − ( −13) = −5 ; z 4 − c 4 = [− 6, 0] ⎢ ⎥ ⎢ ⎥ − (0) = − 6
⎣− 4 1⎦ ⎣10⎦ ⎣− 4 1⎦ ⎣ 0⎦
⎡ 1 0⎤ ⎡ 0⎤
z 5 − c 5 = [− 6, 0] ⎢ ⎥ ⎢ ⎥ − (0) = 0
⎣− 4 1⎦ ⎣ 1 ⎦
Observe-se que os custos reduzidos das variáveis básicas (x2 e x5) não necessitam ser calculados, pois serão zero.
5. b alterado para [30,90]. Deve-se recalcular o novo vetor x B . Como o cálculo abaixo demonstra, a nova base é dual
inviável.
⎡ 1 0⎤ ⎡30⎤
x B = b = B −1b = ⎢ ⎥ ⎢ ⎥ = [30, − 30]
⎣− 4 1⎦ ⎣90⎦
Para recalcular o quadro ótimo é necessário calcular o valor de z0, como a seguir:
⎡ 30 ⎤
z0 = c B x B = [ 5, 0] ⎢ ⎥ = 150 obtendo-se o novo quadro Simplex, que deve ser resolvido pelo dual Simplex:
⎣− 30⎦
Quadro Ótimo x1 x2 x3 x4 x5
z -117 -103/5 -1/5 0 0 -13/10
x4 3 -23/5 -1/5 0 1 -3/10
x3 9 6/5 2/5 1 0 1/10
Método Simplex 261
Novo Quadro x1 x2 x3 x4 x5
⎡ 1 0 ⎤ ⎡0 ⎤ ⎡5 ⎤
⎥ ⎢ ⎥ = ⎢ ⎥ ; ' = +3
−1
y 1= B r1 = ⎢ z -2
⎣ − 4 1 ⎦ ⎣ 5⎦ ⎣ 0⎦ -100 3 0 -5 0
x2 20 0 1 3 1 0
O quadro resultante não é ótimo e x1 é candidata a entrar x5 10 5 0 -2 -4 1
na base.
⎡ 1 0 ⎤ ⎡2 ⎤ ⎡ 2 ⎤
y 2 = B −1r2 = ⎢ ⎥⎢ ⎥=⎢ ⎥
⎣ − 4 1 ⎦ ⎣ 5⎦ ⎣ − 3⎦
Novo Quadro x1 x2 x3 x4 x5
z -100 ? 0 ? ? 0
x2 20 -1 2 3 1 0
x5 10 16 -3 -2 -4 1
Que permite canonizar a coluna da variável básica, obtendo a correta inversa da base associada ao quadro ¿nal.
Novo Quadro x1 x2 x3 x4 x5
z -100 ? 0 ? ? 0
x2 10 -1/2 1 3/2 1/2 0
x5 40 29/2 0 5/2 -5/2 1
Com a inversa da base calculada é possível calcular os custos reduzidos das variáveis não básicas, para concluir se o novo
quadro ¿nal é ótimo. Como o cálculo abaixo comprova, o quadro não é ótimo, e x3 deve entrar na base.
⎡ 1 / 2 0⎤ ⎡ − 1 ⎤ ⎡ 1 / 2 0⎤ ⎡ 3 ⎤
z1 − c1 = [− 6, 0] ⎢ ⎥ ⎢ ⎥ − (5) = −2 ; z 3 − c 3 = [− 6, 0] ⎢ ⎥ ⎢ ⎥ − ( −13) = +4
⎣− 1/ 5 1⎦ ⎣ 12⎦ ⎣− 1/ 5 1⎦ ⎣10⎦
⎡ 1 / 2 0⎤ ⎡ 1 ⎤
z 4 − c 4 = [− 6, 0] ⎢ ⎥ ⎢ ⎥ − (0) = −3
⎣− 1/ 5 1⎦ ⎣ 0⎦
262 Programação Linear e Fluxos em Redes
8. Restrição acrescentada ao modelo: 2x1 + 3x 2 + 5x 3 ≤ 50 . O acréscimo da nova restrição resulta no quadro a seguir:
Novo Quadro x1 x2 x3 x4 x5 x6
z -100 0 0 -2 -5 0 0
x2 20 -1 1 3 1 0 0
x5 10 16 0 -2 -4 1 0
x6 50 2 3 5 0 0 1
Observe-se que a coluna da variável básica x2 não está canonizada, o que pode ser feito por um pivoteamento, resultando
no quadro abaixo, primal inviável.
Quadro Inicial x1 x2 x3 x4 x5 x6
z -100 0 0 -2 -5 0 0
x2 20 -1 1 3 1 0 0
x5 10 16 0 -2 -4 1 0
x6 -10 5 0 -4 -3 0 1
Dual Simplex - 1 16
Quadro Inicial x1 x2 x3 x4 x5 1o Quadro x1 x2 x3 x4 x5
z 0 -3 -4 -1 0 0 z 5/2 -3 -5 0 0 -1/2
x4 -3 -1 -3 -1 1 0 x4 -1/2 -1 -4 0 1 -1/2
x5 -5 0 2 -2 0 1 x3 5/2 0 -1 1 0 -1/2
Quadro Ótimo x1 x2 x3 x4 x5
z 3 -2 -1 0 -1 0
x5 1 2 8 0 -2 1
x3 3 1 3 1 -1 0
Método Simplex 263
Dual Simplex - 2 17
Quadro Ótimo x1 x2 x3 x4 x5
Referências BibliográÀcas
Objetivos
O presente capítulo objetiva:
5.1
Introdução
9 Emparelhamentos (Matching)
Quando o problema da conexão envolve reunir ou ligar pequenos grupamentos.
São critérios bastante comuns para a otimização de problemas de conexão o de minimizar o investimento na estrutura co-
nectora ou no processo de ligação. Nesse contexto, três famílias de problemas de otimização assumem papéis de destaque:
1. Caminho mais curto (a ligação mais barata entre dois pontos). 2. Diversas árvores minimais (a estrutura de conexão global
mais barata) 3. O 1-Matching Mínimo (emparelhamento de pontos dois a dois a custo mínimo). Eventualmente, os modelos
anteriormente descritos podem estar associadas a objetivos de maximização como o caminho mais longo e a árvore gerado-
ra máxima. Metodologicamente, as estratégias de solução desses problemas possuem ligações (Fredman & Willard, 1994),
o que torna seu estudo conjunto conveniente sob o aspecto algorítmico.
5.2
O Problema da Conexão Simples
O problema mais simples da classe de conexão consiste em simplesmente veri¿car (problema de decisão) ou estabelecer
(problema de localização) a continuidade da ligação entre os elementos que constituem a estrutura em análise ou em
projeto. Uma interpretação para essa chamada continuidade pode ser, por exemplo, a possibilidade de passar de um vér-
tice para outro através de uma sequência de visitas a vértices e arestas em um grafo não direcionado G = (N, M), onde N
representa o conjunto dos n vértices do grafo e M o conjunto das m arestas do grafo. Para a conexidade, de forma geral,
o fato de um grafo ser ou não direcionado é aspecto importante. Por tal razão, a notação empregada para representar
grafos direcionados será presentemente distinta daquela utilizada para grafos direcionados e denotada por G = (V, E),
onde V representa o conjunto do n vértices e E o conjunto dos m arcos. A Figura 5.1 mostra duas formas de conexão
em um grafo. Lembrando que as arestas signi¿cam a possibilidade de ligação em ambos os sentidos, na Figura 5.1(a)
observa-se que os vértices 3 e 1 são ligados diretamente ao vértice 2. Na Figura 5.1(b), 3 pode se ligar diretamente a 1,
não acontecendo o contrário.
3 3
1 2 1 2
O número de distintas possibilidades de ligações entre os componentes de um modelo é, usualmente, um fator importan-
te na tomada de decisão. Tal característica é denominada conexidade. Ela pode variar desde o estado dito desconexo,
até o chamado fortemente conexo. Os grafos desconexos possuem um ou mais vértices isolados, ou seja, vértices que
não se ligam a qualquer outro. Nos grafos fortemente conexos, de qualquer vértice de G é possível alcançar todos os
demais através de um passeio legal sobre suas arestas ou arcos. De¿ne-se um passeio legal como qualquer sequência
contínua de visitas a vértices do grafo realizadas através de arestas ou segundo o sentido legal dos arcos. Os grafos
não direcionados conexos são, consequentemente, fortemente conexos. Mesmo que o grafo possa ser considerado glo-
balmente desconexo é extremamente provável que possua subgrafos conexos. Cada subgrafo conexo de G é chamado
componente conexa.
A veri¿cação da não conectividade de um grafo é um problema simples e pode ser solucionado pelo exame das estruturas de
representação de G. Uma forma de solução é procurar por vértices cuja lista de adjacência é vazia, o que pode ser realizado
em O(n), ou seja, no tamanho da entrada de dados. De modo geral, pode-se a¿rmar que o desenho de bons algoritmos
para a determinação de elementos associados à conexidade em grafos depende do domínio de boas técnicas de busca em
grafos. É possível descrever uma busca em um grafo no seguinte algoritmo geral:
INÍCIO
Ler os dados de G, onde cij são os valores das arestas do grafo G {grafo direcionado ou não}.
Escolher e marcar um vértice xi inicial.
Enquanto existir xj N, j = 1, ..., n marcado e com uma aresta (xj, xk) não explorada, efetuar.
Início
Escolher o vértice xj e explorar a aresta (xj, xk) {*condição variável em conformidade com o tipo de busca*}
Se xk é não marcado, então marcar xk.
Fim
FIM
O algoritmo busca geral anteriormente descrito examina pelo menos duas vezes as arestas e os vértices de G, possuindo,
portanto, complexidade O(nm). Na medida em que os critérios de escolha dos vértices podem exigir um esforço computa-
cional maior, a complexidade da busca também crescerá. Uma busca é denominada em profundidade se, para o critério de
seleção de vértices, exigirmos que a escolha seja feita sobre o vértice mais recentemente alcançado na busca e incidente
em alguma aresta não explorada.
268 Programação Linear e Fluxos em Redes
x Algoritmo de Roy
Abaixo, descreve-se um algoritmo clássico para a determinação das componentes fortemente conexas em um grafo G.
INÍCIO
Ler os dados de G = (V, E) {direcionado}
im0
Enquanto V z , efetuar
Início
Escolher e marcar um vértice qualquer xi , xi V, com (+) e (-).
Marcar com (+) todo vértice não marcado com (+) e que tenha como sucessor um vértice (+).
Marcar com (-) todo vértice não marcado com (-) e que tenha como antecessor um vértice (-).
Se todos os vértices já não podem ter suas marcas alteradas, então:
Início
imi+1
Si m os vértices que estão marcados com (+) e (-) simultaneamente
V m V \ {Si}
Fim
Fim
FIM
2 5
3 4
2 5 +- 2 5 -
+-
- -
1 7 8 6 1 7 8 6
+-
3 4 3 4
+- -
Rotulação (+) do vértice 1 Rotulação (-) do vértice 1
+ -2 5 - + -2 5 +
+- +-
1 7 8 - 6 - 1 7 8 + 6 +
+- +-
+- 3 4
- +- 3 4 +-
+ -2 5 +- + -2 5 +-
+- +-
1 7 8 +- 6 +- 1 7 8 +- 6 +-
+- +-
+- 3 4 +- +- 3 4 +-
5.3
O Problema do Caminho mais Curto (PCMC)
Sendo u e v dois vértices do grafo G = (N, M), o caminho mais curto entre u e v é uma sequência contínua de arestas que,
passando por vértices distintos, liga u a v de forma a acumular o menor comprimento. Será denominado distância entre o par
de vértices u e v, comumente representada por du,v ou d(u,v), o menor caminho existente entre u e v. Para que seja possível
um caminho entre os vértices u e v é indispensável que exista, primeiramente, uma conexão entre u e v, ou seja, se existe
um caminho de u para v, signi¿ca que v é um sucessor de u em algum passeio legal sobre o conjunto N. O Problema do
Caminho mais Curto está contextualizado dentro do problema mais amplo de percursos em grafos que envolvem:
Caminhos quaisquer.
Caminhos mais longos.
Percursos hamiltonianos e eulerianos.
Esse problema é um dos mais conhecidos e mais antigos na Pesquisa Operacional, sendo sua solução sugerida até mesmo
em lendas mitológicas da Grécia antiga. O problema pioneiro na otimização de percursos é o chamado Problema do Labirin-
to, em que o objetivo é apenas não repetir trajetos já realizados. Para a solução dessa classe de problemas, por exemplo,
foi proposto o chamado algoritmo de Trémaux. A característica desse algoritmo é que a estrutura do labirinto não precisa
ser conhecida, a priori, pelo expedicionário que busca sua solução. As ligações podem ser tratadas à medida do desenvol-
vimento do algoritmo e do exame a ser realizado. Algoritmos com a característica de serem responsivos são hoje bastante
desejáveis, na medida em que a robótica demanda bons algoritmos para a navegação (Bar-Eli et al.1994, e Papadrimitriou
& Yannakakis, 1989) em contextos com vários elementos de incerteza. Como a solução encontrada por Teseu na lenda do
Minotauro, o algoritmo de Trémaux marca cada aresta percorrida pela busca para evitar que o expedicionário se perca no
trajeto. Os algoritmos de caminho mais curto, contudo, dispondo das informações completas sobre o grafo, objetivam mini-
mizar os esforços de busca.
(CMC) Mimimizar z = ∑c x
( i, j ) ∈A
ij ij
Os vértices o e d representam os vértices de início e término do caminho. Observe-se que, para a formulação proposta, a
matriz de incidência vértice versus aresta é totalmente unimodular, o que permite, caso seja utilizada a regra de Cramer para
obter a solução desse sistema, que a exigência de integralidade seja relaxada sem qualquer prejuízo para a solução inteira.
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 271
O problema do caminho mais curto está associado a um enorme número de outros problemas na área de roteamento, ma-
nufatura, Àuxo em redes e outros. Destacaremos dois modelos mais recentes.
Trata-se da versão do caminho mais curto restrita em um intervalo de chegada aos vértices, semelhante aos pro-
blemas de roteamento com Janela de Tempo. Desrochers & Soumis (1988) estudam a adaptação dos algoritmos de
rotulação para esse caso.
As estratégias de abordagens para a solução de¿nem o “caminho ótimo sob incerteza” como:
x aquele que não excede o comprimento do caminho em valores pre¿xados (Henig, 1990);
x aquele que mais provavelmente vai se aproximar do caminho mais curto (Sigal et al., 1980);
x aquele que a priori minimiza a distância esperada (Jaillet, 1992).
Murthy & Sarkar (1997) sugerem três algoritmos exatos para o PCMC-GE, segundo a abordagem da maximização da utili-
dade esperada.
O Problema de Caminho Mais Curto está intimamente relacionado à solução de vários problemas combinatórios como os de
roteamento, programação e sequenciamento de tarefas etc.
Trata-se do caminho entre um par de vértices v e w cuja soma minimiza a soma das k maiores arestas do caminho.
O problema é de¿nido em Gar¿nkel et al. (2006), sendo NP-difícil.
272 Programação Linear e Fluxos em Redes
x Algoritmos de solução
Existem várias abordagens possíveis para a solução do PCMC. Na área de programação matemática pelo menos duas
abordagens destacam-se:
Entretanto, os mais e¿cientes algoritmos hoje estão disponíveis através da abordagem em grafos. A abordagem de
algoritmos em grafos para o Problema de Caminho Mais Curto subdivide-se em vertentes. Duas delas são dominantes
(Frederickson, 1987 e Chen, 1990):
9 Algoritmo de Dijkstra
Em 1959, Dijkstra sugeriu um algoritmo de rotulação para caminhos em grafos com arcos positivos, utilizando indução e
ajuste, e¿ciente e de fácil implementação computacional. Chamando de:
Lista F (lista dos vértices fechados) { o conjunto dos vértices para o qual já se conhece um caminho mínimo.
Lista A (lista dos vértices abertos) { o conjunto dos nós para o qual ainda não se conhece um caminho mínimo.
t { contador de iterações.
V { representando o conjunto dos vértices rotulados e abertos em G.
r { índice do vértice a ser fechado na iteração t.
C =[cij] { matriz de pesos das arestas do grafo G.
dij { a distância entre os vértices xi e xj.
rot(i) { vetor que guarda o vértice que deu origem à distância calculada para o vértice de índice i.
Γ + (r ) { conjunto de vizinhos do vértice de índice r.
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 273
INÍCIO
Ler os dados de G = (N, M), incluindo o vetor C = [cij] dos custos das arestas.
Inicializar variáveis d11 m 0; {d1i m f i N \ {x1} }; Vm{x1}; Q m N; F m ; {rot( i ) m 0 i N}
Para t =1 a n fazer
Início
r m xi tal que d1i m min { d 1i }
xi
F m F { r };
Q m Q \ { r };
V m Q Γ + (r );
Para i V fazer
Início
p m min { d1i , (d 1r + c ri )} ;
Se p < d1i então
Início
d1i mp;
rot(i) mr ;
Fim
Fim
Fim
FIM
A Figura 5.4 mostra a sequência de rotulação e fechamento dos vértices do algoritmo de Dijkstra quando aplicado no gra-
fo da Figura 5.4(a). O rótulo que está colocado na proximidade de cada vértice em sua primeira posição guarda a origem
da rotulação. A segunda posição anota o valor do menor caminho acumulado até o vértice. A cada iteração, o vértice
já examinado e que registra a menor distância é fechado. O foco de exame da busca é sempre deslocado para o último
vértice fechado (na ¿gura simbolizado pelo asterisco). Examina-se, a cada iteração, os vértices vizinhos do vértice foco
da busca (os vértices do conjunto Γ + (r )) são examinados visando melhorar os rótulos dos vértices ainda não fechados. O
exame atualiza, obrigatoriamente, a marcação f ( rot(i)) que é atribuída inicialmente a todos os vértices, com exceção do
vértice 1. Quando um caminho mais curto para o vértice i é encontrado, o rótulo de i é igualmente atualizado. Um exemplo
dessa atualização por uma distância menor ocorre na Figura 5.4(c), quando a distância do vértice 4 passa de 5 para 4.
274 Programação Linear e Fluxos em Redes
∞ ∞
r=2 2
2 ∞ 6 1 5 6
2 2
2 5 2 2
2 5
0 1 5 4 1 5 ∞ 1 0 1 5 4 1 5 ∞
r=1 7 4 1 3 7
4 1 3
3 4 7 3 4 7
∞ ∞ 1 4 ∞
(a) Grafo Inicial com rótulos de distância f (b) 1o Fechamento do vértice (1) - t=1
1 2 ∞ 1 2 2 6
2 2 4 6 2 2 4 6
2 2
2 5 2 2
2 5
1 0 1 5 4 r=4 1 5 ∞ 1 0 1 5 4 1 5 ∞
1 3 7 4 1 3 7
4
3 4 7 r=3 3 4 7
1 4 ∞ 1 4 4 7
(c) 2o Fechamento do vértice (2) - t=2 (d) 3o Fechamento do vértice (4) - t=3
1 2 2 6 1 2 2 6
2 6 2 2 4 6
2 4
2 2
2 5 2 2
2 5
1 4 1 5 ∞ 1 0 1 5 4 1 5 6 11
1 0 5
7 4 1 3 7
4 1 3
7 3 4 7 r=7
r=3 3 4
1 4 4 7 1 4 4 7
(e) 4o Fechamento de vértice (3) - t=4 (f) 5o Fechamento de vértice (6) - t=5
A complexidade do algoritmo de Dijkstra é O (n2). Esse algoritmo não é capaz de encontrar caminhos mais curtos em pre-
sença de arcos negativos, uma vez que, a cada iteração, o vértice examinado com menor distância acumulada é fechado.
9 Algoritmo de Ford-Moore-Bellman
todos os vértices até que não seja mais possível melhorias. Ao examinar, simultaneamente, o caminho que alcança cada
um dos vértices, o algoritmo pode tratar arestas negativas. A parada do algoritmo ocorre quando não há modi¿cações nos
rótulos dos vértices durante uma iteração. O fundamento do algoritmo está ¿rmado no fato de que, se um caminho de um
vértice s para um j contém k arestas, um caminho melhor de s para j conterá, no máximo, k+1 arestas. O algoritmo apresen-
tado não considera a presença de ciclos negativos.
Denominado de:
l (s, j ) { comprimento de um caminho entre s e j.
ls { comprimento do caminho associado ao vértice s.
l kj { comprimento do menor caminho Psjk usando no máximo k arcos, em que Psjk ⊂ M,
então o algoritmo pode ser assim descrito:
ALGORITMO FORD-MOORE-BELLMAN
INÍCIO
Ler os dados de G = (N, M), onde l(i, j) é o comprimento da aresta (i-j )para todo i, j vizinho em G
Inicializar variáveis k m 0; { ls m l sk m 0 para sN }; { l s1 m l(s,j) j = 1, ..., n-1 }; { l(i, j) mf se
(i, j) M};
Enquanto (l kj −1 ≠ l kj, ∀j ) fazer
Início
k mk+1
⎧⎪ ⎫
[
l kj +1 ← min⎨ l kj , min l ik + l ( i , j ) i ≠ j , s j = 1,..., n − 1 ]⎪⎬
⎪⎩ i
⎪⎭
Fim
FIM
s
O algoritmo de Ford-Moore-Bellman será exem-
pli¿cado no grafo da Figura 5.5 para encontrar o
caminho entre os vértices S e 5.
Inicialização:
l 11 = 1 ; l 21 = 3
k=1
{ }
l 12 = min l 11 ; − − − = 1
l 22 = min{ l ; [ l + l (1,2)] }= 2 (melhorou)
1
2
1
1
k=2
l 13 = 1
{ [
l 23 = min l 22 ; l 12 + l (1,2) = 2 ]}
l 3
3 = min{ l 2
3 ;[l 2
1 ]}
+ l (1,3); l 22 + l (2,3) = 4
l 3
4 = min{ l 2
4 ;[l 2
1 + l (1,4); l 2
3 + l (3,4)] } = 1 (melhorou)
l 3
5 = min{ l 2
5 ;[l 2
4 + l ( 4,5); l 32 + l (3,5)] } = 6 (melhorou)
. k=3
l14 = 1
{ [
l 24 = min l 23 ; l 13 + l (1,2) = 2 ]}
{ [
l 34 = min l 33 ; l 13 + l (1,3); l 23 + l (2,3) = 4 ]} Como não há mais melhoria possível, o algoritmo
chega ao ¿m.
{ [
l 44 = min l 43 ; l 13 + l (1,4); l 33 + l (3,4) = 1 ]}
{ [ ]}
l 54 = min l 53 ; l 43 + l ( 4,5); l 33 + l (3,5) = 4 (melhorou)
k=4
O caminho mais curto pode ser recuperado a partir do nó 5, da seguinte forma: Na linha que se calculou o caminho mais
curto para 5, a parcela determinante foi l 43 + l ( 4,5) = 4, tornando claro que o vértice antecessor a 5 pelo caminho mais curto
é 4 [veio através de l(4,5)]. No cálculo da distância até 4, a parcela é l 43 =1, o que determina que o vértice 3 é o antecedente
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 277
do vértice 4, uma vez que l 43 é obtido da expressão l 32 + l (3,4) [através de l(3,4)], e assim por diante. A Tabela 5.1 resume
alguns dos mais conhecidos algoritmos para o caminho mais curto.
TABELA 5.1. Evolução dos algoritmos para solução do caminho mais curto
5.4
O Problema da Árvore Geradora Mínima (AGM)
Uma árvore é um grafo conexo e acíclico. Uma árvore de um grafo G é um subgrafo de G = (N, M) conexo e acíclico. Uma
Árvore Geradora de G é uma árvore que alcança todos os vértices do grafo. Uma Árvore Geradora Mínima é uma árvore
geradora cuja soma do comprimento de suas aresta é mínima em G. A importância dessa estrutura é enorme tanto na prática
dos problemas de otimização, como parte da solução de vários outros problemas. Suas maiores aplicações na Pesquisa
Operacional estão associadas aos problemas de comunicação e conexões. Na computação existem várias aplicações na
área de estrutura de dados. Considerando um grafo G = (N, M) com n vértices e m arestas e S N, a Árvore Geradora
Mínima pode ser formulada como em AGM1 através de um modelo de programação inteira:
xij { variável binária 0,1. Variável assume o valor 1 quando a aresta (i, j) está na solução e 0, caso contrário;
cij { custo da aresta (i,j).
278 Programação Linear e Fluxos em Redes
Uma formulação alternativa pode substituir a eliminação de ciclos pela consideração de cortes na árvore formada. Em qual-
quer grafo conexo G, um corte em G corta pelo menos uma aresta de G. Com base nessa propriedade é possível formular
o problema como expresso em AGM2.
A formulação é exponencial.
A relaxação linear de AGM1 mantém a solução inteira para uma solução através do algoritmo Simplex, uma vez que possui
pontos extremos inteiros. A relaxação linear de AGM2 pode conter pontos extremos fracionários.
9 Árvore MinMax
O problema da Árvore MinMax pertence à classe dos problemas de otimização com “gargalo”. No caso, o objetivo é deter-
minar a árvore que possua a menor aresta de comprimento máximo. O grafo da Figura 5.6 apresenta, para o caso de uma
árvore geradora, um gargalo igual a 3, uma vez que as menores arestas que incidem sobre os vértices 7 e 8 possuem esse
valor. A Árvore MinMax é uma relaxação da AGM, uma vez que toda AGM é MinMax, contudo a recíproca não é verdadeira,
como se observa na Figura 5.6.
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 279
8 7 8 7
3 3 3 3
3 2 2 4 3 3 2 2 4 3
1 5 1 5
1 4 3 1 6 1 6
1 4 3
3 2 3 2
3 2 5 3 5
2
Dados g elementos de um conjunto Y = {y1, y2 ,..., yg } e F P(Y), onde P(Y) é o conjunto potência de Y, uma família ¿nita
de subconjuntos de Y perfeitamente de¿nidos. As instâncias do conjunto F, ou famílias de Y, poderão ser, por exemplo,
as subárvores de um grafo, os caminhos entre dois vértices de um grafo ou conjuntos de arestas de um emparelhamento
(matching) máximo.
A cada elemento yi , i = 1, 2, ... g, são associados dois números reais: um representado o custo Ci , e outro o peso Pi.
Sendo S F, onde F é o conjunto das soluções viáveis de um certo problema, de¿ne-se a função:
Z (S ) = Max {Pi } + ∑ Ci
yi ∈S
O problema (M3S) é da forma: yi ∈S
MinZ (S)
S ∈F
No caso da AG-M3S podemos formalizá-lo da seguinte forma: Dado um grafo não direcionado G = (N, M), onde~N~= n,
e~M~= m. Considerando uma árvore Tk = {uj }, j = 1, ..., n-1, e T o conjunto de todas as árvores de G, pode-se de¿nir a
AG-M3S como:
280 Programação Linear e Fluxos em Redes
Z (t k ) = Max {Pi } + ∑C i
u i ∈t k
u i ∈t k ⎧
⎪ ⎧ ⎫⎫
⎪
Ou ainda reescrito como: Min ⎨⎪P + Min ⎨∑ C ⎬⎬⎪
k i
Min
t ∈T
{Z (tk )} 1≤ k ≤ g ⎩ S∈Fi k ⎩y i ∈S ⎭⎭
k
de modo que solucionar o M3S pode ser equivalente a solucionar uma sequência de p subproblemas Min_Sum. O algoritmo
de Minoux (1989) fundamenta-se exatamente neste fato.
A Figura 5.7 exempli¿ca a árvore MinMax_MinSum. Na Figura 5.7(a) Os custos são representados pelos valores sobre
as arestas, e os pesos das arestas estão representados pelos valores sublinhados próximos às arestas. Observar que a
Árvore Geradora Mínima calculada em relação aos custos e exibida na Figura 5.7(b) não alcança o valor mínimo na função
MinMax_MinSum, uma vez que o gargalo máximo dessa árvore é 8. A solução ótima é apresentada na Figura 5.7(c).
2
2 1 6 8 2 1 6
8 5
1 1 1 1
1 2 1 1
1 3 5 1 5
3 2 3
5 3 3 7
3 4 7
2
a) Grafo G b) AGM em relação aos custos.
Árvore M3S de Valor=15
2
2 1 6
1 2 1
1 3 5
2
3
3 4 7
2
c) Árvore MinMax_MinSum ótima. Valor = 1+1+3+2+4+3=14
No problema da Árvore Geradora Mínima Capacitada (AGM-C) uma central serve a um conjunto de vértices N, N = {1, ..., n}, de
uma determinada rede R = (V, E, F), onde E representa o conjunto dos arcos de ligação E = {1, ..., m} e F o Àuxo que percorre
cada arco de R. Cada vértice cliente i está associado a uma demanda de Àuxo dj ! 0. O Àuxo deve se originar na central
e chegar a cada cliente i. Entre cada par de vértices i-j uma ligação pode ser estabelecida com o custo cij ! 0 e segundo
uma capacidade máxima Lij ! 0. O problema objetiva determinar a árvore mais econômica que atenda a demanda exigida.
Papadimitriou (1978) demonstrou que AGM-C é NP-Completo. Recentemente destacam-se os trabalhos de Domschke &
Voß (1996) – busca local, Krishnamoorthy et al. (1996) – várias heurísticas, Deo & Kumar (1998) – algoritmos paralelos,
Patterson (1999) – memória adaptativa, Raidl & Drexel (2000) – computação evolucionária, Ribeiro & Souza (2002) – busca
em vizinhança variável, Mao & Lang (2002) – algoritmos paralelos e Fukasawa et al. (2003) – branch-and-cut-and-price.
9 Aplicações do problema
O modelo M3S pode representar uma série de situações em que existem dois critérios de valor associados às variáveis de
decisão. Alguns autores denominam esse tipos de problemas como problemas de “ligações balanceadas”. O modelo dito
balanceado possui várias aplicações (Duin & Volgenant, 1991) práticas que abrangem:
desenvolvidas várias arborescências simultâneas até que uma só árvore inclua todos os vértices. Na proposta de Borüvka,
os vértices são origem de arborescências e a ligação entre as arborescências é realizada de forma gulosa. Os algoritmos
citados e, adicionalmente, uma variação aplicável ao algoritmo Prim são descritos nos próximos itens.
INÍCIO
Ler G = (N, M) e C = [cij] a matriz de custos de G
Escolha qualquer vértice iN
Tm{i}
A versão ao lado do algoritmo Prim é O(n3),
uma vez que o comando de encontrar a V m N \{ i }
menor aresta (j, k) A exige, até O(m) Enquanto TzN Para todo jT Faça
operações e m é O(n2). Tomando um cuida-
Início
do especial para não obrigar o algoritmo a
computar todas as arestas incidentes sobre Encontrar a aresta (j, k) M com menor cjk tal que j T, k V
a árvore que vai sendo expandida, é possí-
T m T{ k }
vel baixar a complexidade de Prim.
V m V \{ k }
S m S (j,k)
Fim
Escrever S {arestas da árvore geradora mínima}
FIM
Tal algoritmo será denominado Prim_Colorido, sendo formalizado no quadro de mesmo título. Denominado de Ts { uma
árvore em G. O algoritmo Prim_Colorido pode ser descrito como se segue:
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 283
INÍCIO
Ler G = (N, M) e C = [cij ] a matriz de custos de G.
escolha qualquer vértice jN;
i m 0;
Ti m { j }
Colorir com verde as menores arestas incidentes ao vértice j extremos de T0
Enquanto i < n-1 Fazer
Início
Selecionar a aresta verde (j,k), jTi com menor cjk e colori-la de azul
Faça Ti+1 m Ti (j, k)
Para cada aresta (k, z), z Ti+1
Início
Se não existe aresta verde incidente em z, colorir (k,z) com verde
Caso Contrário
Início
Se existe aresta (w, z) tal que l (Cwz) ! l (Ckz) colorir com vermelho (w, z) e verde (k, z)
Fim
Fim
i mi+1
Fim
Escrever Ti {arestas da árvore geradora mínima}
FIM
2 2 4
1 3
Tendo por base o grafo da Figura 5.8, será exempli¿cado, como 1 1 3 -3 6
a seguir, o funcionamento do algoritmo Prim e do algoritmo 3 2
Prim_Colorido.
3 2 5
Figura 5.8. Grafo do exemplo para o Prim e versão
284 Programação Linear e Fluxos em Redes
2 2 4 2 2 4
1 3 1 3
1 1 3 -3 6 1 1 3 -3 6
3 2 3 2
3 2 5 3 2 5
2 2 4 2 2 4
1 3 1 3
1 1 3 -3 6 1 1 3 -3 6
3 2 3 2
3 2 5 3 2 5
2 2 4
1 3
1 1 3 -3 6
3 2
3 2 5
Última inclusão de arestas
2 2 4 2 2 4
V 1 3 1 3
1 1 3 -3 6 1 1 3 -3 6
2 2
V 3 V 3
3 2 5 3 2 5
vértice 1 escolhido para ser examinado Dentre as arestas verdes a menor é colorida
arestas (1, 2) e (1, 3) são coloridas de verde de azul (incluída na solução)
V V
2 2 4 2 2 4
1 3 1 3
1 1 3 -3 6 1 1 3 -3 6
V V
V 3
3 2 5
2
x 3 2 5
2
V V
2 2 4 2 2 4
1 3 1 3
1 1 x -3 6 1 1 x -3 6
x 3
V
2 5
2
x 3 2 5
2
vértice 3 escolhido para ser examinado Dentre as arestas verdes alguma menor, (3, 5)
z = 5 o aresta (3, 5) colorida de verde por exemplo, é colorida de azul (e incluída na solução)
z = 5 o aresta (2, 5) colorida de vermelho
1
2 2 4
3 1
2 x 4
3
V
1 1 x -3 6 1 1
x -3 6
x 3 2 5
2 V
x 3 2 5
2 V
vértice 5 escolhido para ser examinado z = 4 o aresta (5, 4) colorida de verde
z = 6 o aresta (5, 6) colorida de verde z = 4 o aresta (2, 4) colorida de vermelho
286 Programação Linear e Fluxos em Redes
2 x 4 2 x 4
1 3 1
x
1 1
x -3 6 1 1
x -3 6
x 3 2 5
2 V
x 3 2 5
2
Dentre as arestas verdes, a menor (5, 4) vértice 4 é escolhido para ser examinado
é colorida de azul e incluída na solução z = 6 o aresta (4, 6) colorida de vermelho
e aresta (5, 6) é colorida de azul
9Algoritmo Kruskal
O segundo algoritmo clássico para a AGM é o de Kruskal, que pode ser formalizado como:
INÍCIO
Ler G = (N, M) e C = [cij] a matriz de custos de G.
Ordene as arestas de G (conjunto M) em ordem não decrescente das distâncias cij no vetor H = [hi], i = 1, 2, ..., m
T m h1
im2
Enquanto |T| < n Tome hi H e Faça
Início
Se T hi é um grafo acíclico então
Início
T m T hi
imi+1
Fim
Caso Contrário
imi+1
Fim
Escrever T {arestas da árvore geradora mínima}
FIM
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 287
2 2 4 2 2 4
1 3 1 3
1 1 3 -3 6 1 1 3 -3 6
3 2 3 2
3 2 5 3 2 5
2 2 4 2 2 4
1 3 1 3
1 1 3 -3 6 1 1 3 -3 6
3 2 3 2
3 2 5 3 2 5
2 2 4
1 3
1 1 3 -3 6
3 2
3 2 5
(e) Última inclusão
A complexidade do procedimento de Kruskal é dominada pela etapa de ordenação das arestas, uma vez que a escolha
das arestas será realizada em O(1) operações, e a verificação da formação de um ciclo pelo acréscimo de uma aresta
em um grafo acíclico é também O (n). Esse procedimento, se as arestas não possuem qualquer propriedade especí-
fica, é O (mlogn).
288 Programação Linear e Fluxos em Redes
9 Algoritmo de Borüvka
O algoritmo de Borüvka abre uma outra linha de abordagem para o problema, desenvolvendo simultaneamente uma Àoresta
minimal no grafo G. Chamando por Tj uma subárvore de G, e por Fi uma Àoresta em G, pode-se formalizar o algoritmo da
seguinte forma:
2 2 4 2 2 4
1 3 1 3
1 1 3 -3 6 1 1 3 -3 6
3 2 3 2
3 2 5 3 2 5
O algoritmo, da forma descrita anteriormente, só funciona corretamente se as arestas de G forem distintas. Para evitar que
possam ocorrer inclusões indevidas por ocasião das uniões das subárvores é indispensável ordenar lexicogra¿camente as
arestas de G antes de aplicar o algoritmo. Nesse caso, a complexidade do procedimento será O (mlogn). Salehi-Fathabadi
e Ahrabian (1995) sugerem um algoritmo que em certos casos pode funcionar em O (m).
⎧ ⎫
(MM)
Min⎨⎩Max {P }⎬⎭
S∈F e i∈S
i
(MS) ⎧ ⎫
Min⎨ ∑ C ⎬ i
S∈F ⎩e i ∈S ⎭
Minoux observa que, para qualquer S F, existem p valores distintos para Max {Pi } , e que para cada Pi existe associada
e i ∈S
uma solução MinSum. O algoritmo polinomial proposto por Minoux fundamenta-se nos seguintes pontos:
Existe um limiar (thereshold) P que supostamente está associado à solução ótima de Max {Pi } .
e i ∈S
A estratégia geral do algoritmo de Minoux é examinar as p soluções ótimas do Min_Sum associadas aos valores de cada um
dos valores de P = {P1, P2, ..., Pp }, Pi P. Nesse caso, a complexidade do algoritmo será p vezes a complexidade do cálculo
de MS ou seja, O ( p(O(MS))), representando p vezes o exame das soluções do modelo Min_Sum.
T m 0, Z m 0;
FIM
O procedimento Ciclo (ui, uj ) retira do ciclo formado em O(n) a aresta de maior contribuição dentro do ciclo. Caso a aresta
a ser retirada tenha peso igual ao peso corrente, e seja a única com essa propriedade, um novo peso corrente deverá ser
encontrado. Esse passo de busca pode ser realizado em O(n), sem o auxílio de qualquer estrutura de dados. O procedi-
mento Ciclo (ui, uj ) será chamado m-n+1 vezes. Portanto, o procedimento Busca (ui ) terá complexidade O(mn). Punnen &
Nair (1996) apresentam um algoritmo O(mlogn) para o problema. O algoritmo necessita de uma estrutura de dados especial
para sua implementação.
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 291
5.5
O Problema de Emparelhamento (PE)
O Problema de Emparelhamento encontra aplicação em vários modelos de otimização, inclusive para a criação de algo-
ritmos especializados na determinação de Àuxos em redes. O atual tópico examina a aplicação do emparelhamento nos
problemas de conexão. De fato um “matching” ou emparelhamento nada mais é que uma forma de reunião ou ligação entre
duas variáveis ou, no caso dos grafos, dois vértices. O chamado 1-Matching, ou o problema de emparelhamento de vértices
em que a união é realizada apenas através de uma aresta, é útil na determinação de grupamentos de a¿nidades e designa-
ções de associações.
Apesar da existência de algoritmos exatos em ordem polinomial para a solução do problema, algumas instâncias podem
possuir da ordem de 106 ou 107 pontos. Com um algoritmo semelhante ao de Derigs seriam necessárias da ordem de 1016
operações para uma solução exata! Nesse caso, justi¿ca-se a busca de algoritmos aproximativos mais e¿cientes. As técni-
cas usadas nessas heurísticas, dentre outras, são:
A associação 1-2; 3-4; 5-6; os indivíduos 1, 3 e 5 estão associados com seu parceiro preferido, atendendo a de¿nição de em-
parelhamentos estáveis (mesmo que sejam a última opção do outro parceiro). A associação 3-6, por exemplo, não é estável.
Outra situação para o problema do emparelhamento estável é admitir compromisso. Entende-se como situação de compro-
misso uma exigência estrita de um parceiro. Nesse caso, o emparelhamento estável é de¿nido como aquele em que não
existam dois indivíduos associados com terceiras pessoas, mas compromissados entre si.
Dentre os problemas dessa classe destacam-se:
9 Problema do Casamento
Nesse caso, o problema associa H homens e M mulheres em um Emparelhamento Estável, ou seja, aquele que cada
um dos parceiros atende a maior prioridade de seu cônjuge ou, no segundo caso, que ambos são a maior prioridade do
outro. Para qualquer instância de cada Problema do Casamento não estrito existe pelo menos um casamento estável.
Esse casamento pode ser obtido em O(n2), onde n representa o números de homens ou de mulheres (pressuposto da
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 293
possibilidade de solução monogâmica viável). Gale & Shapley (1962) solucionam esse problema para o caso do número de
homens ser igual ao de mulheres. Knuth (1976) analisa o problema e algoritmos de solução.
9 Problema da escolha do “de rancho” (companheiro de acampamento)
Essa variante de emparelhamento envolve um conjunto par de n elementos, cada um com uma lista de preferências com n-1
agentes. O Emparelhamento Estável organiza o grupo em um conjunto de n/2 pares em que nunca dois elementos já asso-
ciados em duplas estranhas tenham mútua preferência. Esse problema com exigências restritas é NP-Completo. A Tabela
5.5 mostra um caso em que não é possível encontrar um amigo para o indivíduo 4. Seja a solução 1-2 e 3-4. Nesse caso, 3
prefere 2 e 2 prefere 3 mais do que preferem seus próprios pares. Nas demais situações, o mesmo acontecerá, impedindo
a existência de uma solução estável para o caso proposto (exemplo em Ronn, 1990).
Roth (1984) de¿ne essa aplicação e apresenta um algoritmo de solução para o problema.
Caminho Alternante
Se desenvolvermos um caminho qualquer, iniciado no vértice 1, podemos construir um emparelhamento entre os vértices
do caminho juntando-os dois a dois. Para isso podemos imaginar um processo de rotulação sobre os vértices, alternando
rótulos (+ e -, por exemplo). Um emparelhamento válido unirá vértices de sinais contrários. Ao caminho de i para j assim
rotulado denominamos caminho alternante. A Figura 5.13 mostra o processo de emparelhamento utilizando um caminho
qualquer em G = (N, M).
1 4 5 6 1 4 5 6
2 3 7 8 2 3 7 8
9 10 9 10
+ 1 4 5 6 + 1 4 5 6
- 2
+
3 7
-
8 + - 2
+
3 7
-
8 +
- 9 10 + - 9 10 +
Em um grafo G = (N, M), no qual é considerado um emparelhamento de vértices Mt, Mt M, um caminho é dito M-alternante
se suas arestas pertencem alternadamente a M e a M\Mt. No caso da Figura 5.13, Mt = {(1, 2); (3, 9); (7, 10)}
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 295
Caminho Aumentante
Se, no exame de um grafo que já foi atribuído um emparelhamento (não ótimo – não máximo), for possível obter um caminho
que una dois vértices desemparelhados (não saturados e que possuam sinais contrários), então será possível aumentar o
número de emparelhamentos associados ao caminho alternante apenas pelo deslocamento da rotulação do esquema de
emparelhamento (rótulos positivo sendo alterados para negativos e vice-versa). A Figura 5.14(a) exempli¿ca um caminho
aumentante, e a Figura 5.14(b) mostra o efeito de expansão da rotulação em um caminho aumentante em G.
+ -
1 4 5 6 + 1 4 5 6
- 2
+
3 7
-
8 + - 2
+
3 7
-
8 +
- 9 10 + - 9 10 +
(a) Caminho aumentante (b) Novo emparelhamento
Emparelhamento
Um emparelhamento M em G é maximal se e somente se não existir um caminho aumentante associa-
do ao emparelhamento M em G.
Os possíveis caminhos aumentantes podem ser pesquisados de modo sistemático em G, através de uma árvore enraizada
em um certo vértice. Essa árvore será denominada árvore alternante. A Figura 5.15 mostra o uso da árvore alternante para
uma busca de caminhos aumentantes, sendo enraizada no vértice 5 do grafo da Figura 5.13(a). Formalmente pode-se de¿nir
uma árvore alternante Ta = (V, L), L M, em relação a um emparelhamento Mt como aquela que:
- + - +
+ 1 4 5 6 7 10 9
- - +
5
- +
3 2
7
+ -
2 3 8
+
4
- 9 10 + -
1
(a) Emparelhamento M = { (1,4); (2,3); (7,8); (9,10) } (b) Árvore Alternante enraizada em 5
-
8 6
+ -
+ - + 1 4 5 6
7 10 9
- - + - +
+ -
2 3 7 8
5 3 2
+
4 - 9 100 +
1
-
(c) Caminho aumentante decorrente (d) Novo emparelhamento encontrado
Edmonds veri¿cou que os problemas de permutações na rotulação dos caminhos estavam associados à enumeração de ci-
clos de comprimento ímpar em G com vértices não emparelhados (chamados não saturados). A esses conjuntos de vértices
pertencentes a um ciclo de comprimento ímpar na árvore de enumeração Edmonds denominou de “blossoms” (alguns auto-
res traduzem o termo por “broto”). Os vértices 5, 6 e 8 formam um blossom de comprimento 3. Os blossoms permitem que
uma aresta possa ser enumerada mais de uma vez em um caminho aumentante, trazendo problemas para o desdobramento
da árvore alternante. Para evitar esse problema, e baseado em um teorema (Papadimitriou & Steiglitz (1982), os blossoms
devem ser identi¿cados e contraídos a um vértice, após seus nós serem emparelhados.
A abordagem de Edmonds permite o desenvolvimento de uma série de algoritmos que exploram a possibilidade de limitar
a enumeração dos caminhos aumentantes e identi¿car e¿cazmente os blossoms. Hopcroft & Karp (1973) trabalham exa-
tamente em casos em que o caminho aumentante ocorre sobre um caminho mais curto. Nesse caso a complexidade do
emparelhamento mínimo pode ser reduzida para O(n2,5).
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 297
5.6
O problema do caminho crítico ou PERT (Critical-Path Method)
Trata-se de um modelo signi¿cativamente útil para a solução de problemas que possuem um número expressivo de ativi-
dades simultâneas e com duração variada, contudo interdependentes em pontos de concorrência, onde certas atividades
precisam ser realizadas depois de outras atividades especí¿cas. O objetivo é minimizar o tempo total de execução do projeto
bem aproveitando a realização de tarefas que possam ser executadas em paralelo, mas respeitando as condições lógicas
de antecedência ou precedência das atividades. O PERT (Program Evaluation and Review Technique) é aplicado tradicio-
nalmente na construção civil, especialmente no planejamento de obras complexas e de longa duração. Aqui, o uso da rede
PERT será exempli¿cado para o planejamento de uma operação de simulação de um protótipo industrial. A palavra “rede”,
reservada para designar os casos de grafos atravessados por um Àuxo, é presentemente aplicada ao modelo PERT, em
qualquer de suas formas de formulação, principalmente por ser um termo consagrado na literatura. As etapas necessárias
para a realização da simulação do protótipo estão descritas na Tabela 5.6. A título de esclarecimento, informa-se que os
tempos necessários à execução das etapas de um projeto semelhante ao proposto como exemplo, normalmente são motivo
de um estudo estatístico especí¿co, não raramente envolvendo análise de risco. A atual aplicação assume que os tempos
médios das etapas estão convenientemente calculados.
A tabela de atividades pode ser representada por um grafo orientado como mostra a Figura 5.16. Neste grá¿co cada ativi-
dade é simbolizada por um vértice numerado. Os arcos (ou setas) representam as restrições de precedência. Sobre cada
um dos vértices é possível representar a duração da atividade a ele associada. Esse grá¿co é também conhecido por Rede
Orientada por Tarefa ou ainda por Diagrama de Setas (uma das ferramentas da qualidade).
2
(9)
(0)
(0 (2)
(2 (4) (1) (1) (0)
0 1 3 4 7 8 9 10
(3) (2)
(1) (2)
5 6
Na Figura 5.16 as durações das tarefas são representadas entre parênteses junto à atividade associada; t10 é o tempo mais
cedo que está associado à obra como um todo (tempo mais cedo da última atividade), então é possível de¿nir a função-ob-
jetivo desse planejamento como:
Minimize z = t10 − t1
A função-objetivo é sujeita às restrições de precedência das atividades que serão impostas pelos arcos dos diversos cami-
nhos que ligam o vértice 0 ao vértice 10. Considerando a atividade 4, “certi¿cação das instalações”, por exemplo, o tempo
mais cedo para a ocorrência dessa atividade deve atender:
t 4 ≥ t 3 + 4 pelo caminho da atividade 3
t 4 ≥ t 6 + 2 pelo caminho da atividade 6
De forma geral, se t j é o tempo de início de um antecessor de t i , e d i é a duração da atividade i, o tempo t i é calculado
como:
ti ≥ t j + d j
Considerando as restrições associadas aos t i , tem-se a matriz T da Figura 5.17 para o Modelo de Programação Linear:
Vértices Min t1 t2 t3 t4 t5 t6 t7 t8
Z -1 0 0 0 0 0 0 +1
2,3,5 2 -1 +1
4 4 -1 +1
6 1 -1 +1
7 9 -1 +1
7 1 -1 +1
4 2 +1 -1
8 3 -1 +1
9 1 -1 +1
10 2 -1 +1
Figura 5.17. Matriz de restrições do programa PERT orientado por tarefas – Matriz T
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 299
O problema formulado da forma anterior não é um problema de Àuxo em rede, mas seu dual pode ser associado ao problema
de Àuxo. Nota-se que existe apenas uma entrada positiva e uma negativa nas linhas da matriz de restrição do primal, o que
implica que a matriz transposta de T é a matriz vértice — arco de uma rede. Considerando uma variável dual x ij associada
a cada linha do problema primal, ou seja, representando atividades, conforme a Tabela 5.7.
Variável Atividade de
Atividades Duração
(Atividade) Pré-Requisito
x01 Projeto de Simulação - 2
x15 Treinamento de Pessoal x01 9
x12 Construção de Instalações Especiais x01 4
x23 Certi¿cação das Instalações x12 1
x14 Aquisição de Material x01 1
x43 Aferição dos Instrumentos x14 2
x35 Teste do Material Adquirido x23 ,x43 3
x56 Montagem da Cabine de Simulação x15 ,x35 1
x67 Execução da Simulação x56 2
Para o programa da Tabela 5.7 é possível expressar o problema dual como mostra a Figura 5.18.
Vértices Max x01 x15 x12 x23 x14 x43 x35 x56 x67
W 2 9 4 1 1 2 3 1 2
0 +1 +1
1 0 -1 +1 +1 +1
2 0 -1 +1
3 0 -1 +1 -1
4 0 -1 -1
5 0 -1 +1 -1
6 0 +1 -1
7 -1 +1
Figura 5.18. Matriz de restrições do problema PERT dual
A formulação dual da rede PERT orientada por tarefas possui características notáveis e é denominada Rede Orientada por
Eventos. Nesse modelo, o problema é determinar o caminho necessário e de maior duração em tempo para a ¿nalização
das atividades do projeto. Esse caminho mais longo determinará o tempo mais cedo em que o projeto poderá ser ¿nalizado.
A Figura 5.19 exempli¿ca a rede orientada por eventos do exemplo examinado.
300 Programação Linear e Fluxos em Redes
Treinamento
(9)
(2) (4) Certificação Teste Montagem Simulação
0 1 2 3 5 6 7
Projeto Construção (1) (3) (1) (2)
(1) (2)
Aquisição de Aferição
material
4
Figura 5.19. Rede orientada por eventos
Nessa rede um vértice representa o início ou o término de uma atividade, um evento instantâneo. No modelo dual aos arcos es-
tão associados os valores de duração das atividades. A variável dual x ij representa uma atividade associada ao par de vértices
i-j. O número de arcos da rede orientada por eventos é igual ao número de vértices da rede orientada por tarefas (desconside-
rando os vértices início e ¿m). Os intervalos de tempos do modelo primal correspondem ao número de vértices da rede dual.
Na rede orientada por eventos o problema de determinar o maior tempo mais cedo reduz-se a encontrar o caminho mais longo
entre os vértices extremos da rede, considerando o comprimento dos arcos i-j igual à duração da atividade a eles associada.
Existe uma terceira representação para o problema de planejamento de atividades dependentes. O formato PERT/CPM é
extremamente difundido, especialmente em virtude de facilitar a visualização das variáveis de folga do modelo orientado por
tarefas. Outra vantagem da variante é que facilita a distinção entre atividades paralelas e/ou logicamente correlacionadas. A
rede PERT/CPM, como difundida na literatura, é uma rede orientada por eventos com uma correção na de¿nição dos arcos.
Nela as atividades paralelas devem possuir nós extremos distintos, mesmo que iniciem e terminem em um mesmo evento.
Para fazer essa distinção entre as atividades, o modelo utiliza o conceito de atividade fantasma. Uma atividade fantasma é
um arco na rede de eventos cuja duração é igual a zero (instantânea). No caso do exemplo proposto, a representação PERT/
CPM está expressa na Figura 5.20.
Treinamento 2
(9)
(2) (4) Certificação Teste Montagem Simulação
0 1 3 4 7 8 9
Projeto Construção (1) (3) (1) (2)
Aquisição de (1)
material Aferição
5 6
(2)
Os arcos pontilhados representam as atividades fantasmas. Na solução da rede por eventos o caminho mais longo vai deter-
minar uma cadeia dominante em relação ao tempo. Esse caminho representa o gargalo para a duração de todo o programa.
Seguramente poderão existir outros caminhos mais curtos dentro da rede, mas eles serão dominados em relação ao tempo
do mais longo.
A rede orientada por eventos rotulada, como sugerido na Figura 5.21, poderá ser solucionada através da busca dos ca-
minhos que ligam o evento inicial e o ¿nal. A Figura 5.22 mostra a rede rotulada e o início do cálculo dos caminhos entre
os vértices 0 e 7. Ao longo de cada caminho possível os tempos são acumulados à medida da progressão das atividades,
conforme exempli¿ca a Figura 5.22. Quando um vértice pode ser alcançado por mais de um caminho, é provável que ocorra
um conÀito em relação ao tempo associado ao vértice. Como a ideia é encontrar a data mais cedo possível para o início de
qualquer atividade, essa data vai corresponder ao maior valor acumulado no tempo. A situação de conÀito é exempli¿cada no
vértice 4 da Figura 5.22. O vértice pode ser alcançado através do caminho 0-1-2-3, acumulando um tempo igual a 7 unidades
( (2) + (4) + (1) ), e também pelo caminho 0-1-5-6-4, acumulando um tempo de 5 unidades ((2) + (1) + (2)). O tempo mais
cedo do vértice será 4, e 7, o valor maior.
O mesmo raciocínio se aplica ao vértice 7. De forma semelhante, calcula-se o tempo mais cedo possível para a rede, ou
seja, 14 unidades. Para a determinação das folgas existentes nos diversos caminhos possíveis é necessário, partindo do
vértice 9 (vértice ¿nal), tentar alcançar o vértice 0 (vértice inicial) descontando os valores associados às atividades nos ar-
cos. No caso de acontecer de um vértice poder ser alcançado por mais de um caminho de retorno, então deve-se preservar
o menor tempo. Isso acontece no vértice 2, onde pelo caminho 9-8-7-2-1 o valor é 2, pelo caminho 9-8-7-4-3-1 é 3 e pelo
caminho 9-8-7-4-6-5-1 é 5. O valor a ser registrado será 2. As datas mais tarde estão calculadas na Figura 5.23.
Com os valores das datas mais cedo e mais tarde é possível preencher o campo da folga fazendo a diferença entre essas
datas e obtendo o tempo das folgas disponíveis. Os caminhos que possuem folga zero são denominados caminhos críticos.
Na Figura 5.24 o caminho crítico está ressaltado.
5.7
Exercícios Propostos
Os tubos de esgoto devem ser assentados no sentido da declividade do terreno. Os tubos de água podem seguir qualquer
trajetória, pois trabalham sob pressão. Para evitar problemas de perda de carga, os ramais de abastecimento de água não
devem possuir comprimento maior do que 10 lados dos quarteirões quadrados (sem levar em conta o comprimento das ruas).
Os quarteirões retangulares e oblíquos são considerados equivalentes a dois quarteirões pequenos em suas faces mais longas.
O famoso herói Teseu, após escapar do labirinto do Minotauro, foi preso por um rei que se julgava muito esperto. Esse rei
havia criado um labirinto onde todos os caminhos eram sempre bifurcados, ou seja, nunca havia mais de dois caminhos
a seguir. Segundo ele, era possível sair de lá sem possuir um novelo de lã ou sem fazer qualquer marca nas paredes do
labirinto. O rei propôs esse desa¿o a Teseu em troca da mão de sua ¿lha, a bela princesa. Se você fosse Teseu aceitaria o
desa¿o? Justi¿que sua resposta.
Um carro pretende cruzar um trecho de estrada administrado por certa empresa e sujeita a pedágio, trafegando da cidade S
para a cidade T. O custo da travessia é igual à soma do total da distância percorrida com o valor do pedágio. As regras de pe-
dágio são simples: o carro paga a tarifa do pedágio correspondente ao trecho percorrido, descontado o valor pago em qualquer
trecho anterior e administrado pela mesma empresa. Com essa forma de tarifar, o veículo pagará, a título de pedágio em uma
rota, o valor da maior tarifa correspondente a um trecho dessa rota. A Figura 5.26 apresenta no campo (a) as distâncias entre as
cidades S e T dentro das rotas possíveis, e no campo (b) as tarifas de pedágio de cada trecho passível de utilização.
9 Elaborar um algoritmo polinomial para determinar de modo exato o caminho de menor custo entre S e T para um caso
geral.
9 Aplicar esse algoritmo ao exemplo solucionando-o.
9 Calcular a complexidade de pior caso do algoritmo elaborado.
90 Km 42 Km
134 Km
A rede de estradas da Figura 5.28 liga o inte- Major 50 Km
Isidoro
rior de Alagoas ao litoral. Água
Branca 1 3 7 Maceió
130 Km
Aplique o algoritmo de Disjkstra para encon-
trar o caminho mais curto entre a cidade de 48 Km 88 Km 126 Km
123 Km
Água Branca e a cidade de Maceió.
Batalha 4 51 Km 6 Arapiraca
A usina hidroelétrica de Porto Primavera, em Rosana, estado de São Paulo, vai receber uma nova turbina. A turbina deve
ser transportada de Santos até Rosana, por via terrestre, em uma carreta especial. A carreta possui uma série de restrições
para deslocamento e é muito sensível ao tipo de piso e ao tráfego da rodovia. A Figura 5.29 traduz, em distância equivalente, o
306 Programação Linear e Fluxos em Redes
esforço necessário para a carreta trafegar entre as cidades do mapa. Observa-se que as distâncias equivalentes são sem-
pre maiores que as distâncias reais entre as cidades. Os vértices mais escuros são cidades que possuem capacidade para
realizar uma necessária manutenção preventiva na carreta de forma a evitar problemas no percurso. A carreta não pode
trafegar por mais de 600Km equivalentes sem realizar uma manutenção preventiva.
200 Araraquara
175
Presidente 220 8
Prudente
Marília 150
15 Bauru 160
11 110
Rosana 230 6
150 100
17 Limeira 6
125
12 Botucatu
Assis 110
140 40
280 200 7 5 Campinas
S. J.
10
Londrina 170 dos Campos
Ourinhos 190 100
16 380 100
Osasco 130 2
4 110 3
170
Sorocaba
90
1 Santos
Desenvolver um algoritmo que encontre o caminho mais curto para o tipo de problema proposto (sugere-se uma modi¿ca-
ção na rotulação do algoritmo de Dijkstra). Aplicar o algoritmo ao mapa da Figura 5.29, encontrando o menor caminho entre
Santos e Rosana.
Uma pessoa busca o caminho mais rápido ligando a estação A e a estação B da rede de metrô da Figura 5.30. No sistema
do metrô existem três anéis interligados, representados na Figura 5.30 por linhas mais grossas. Em alguns trechos o metrô
possui linhas que trafegam trens nos dois sentidos. Esses trechos correspondem ao anel central e aos trechos em linha mais
¿na, ligando diretamente qualquer par de estações representadas por vértices quadrados. O tempo de trajeto entre qualquer
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 307
par de estações ligado diretamente está representado ao lado da Figura 5.30. Considerando que os trens param em todas
as estações da linha e que a parada em vértices circulares é de 40 segundos, enquanto em vértices retangulares é de 30
segundos, determinar o caminho mais rápido entre o vértice A e o vértice B.
120 segundos
60 segundos
90 segundos
Um conjunto de 18 estabelecimentos em Salvador resolveu implementar uma rede particular de ¿bra ótica no centro da
cidade. A rede deve passar por todos os estabelecimentos e será implantada, ¿sicamente, através de uma tubulação ins-
talada abaixo das calçadas. A Prefeitura estabeleceu um custo para liberar a obra em função da intervenção nas calçadas
da cidade. Esse valor indenizará o desconforto dos cidadãos durante a obra e varia de acordo com a região onde a rede
será instalada. Por cortar calçadas na região 1, a rede pagará 10 UM. Caso corte calçadas na região 2, pagará 60 UM. Na
região 3 pagará 200 UM. Uma intervenção na região 4 custará 80 UM. A Prefeitura cobrará um único valor ¿xo em função do
impacto da obra na região de maior valor. A empreiteira cobra 10 UM por um quarteirão de calçada cortada, desde que não
haja mudança na direção da escavação ou não seja necessário atravessar uma rua. Uma mudança de direção exige a cons-
trução de um poço de inspeção e caracteriza, para efeitos de orçamento, a con¿guração de um novo bloco de escavação,
adicionando 10 UM ao custo da construção da rede. A travessia de uma rua custa 30 UM. A Figura 5.30 apresenta o mapa
da região onde a rede será implantada.
308 Programação Linear e Fluxos em Redes
Desenvolver um algoritmo que determine o traçado da rede de ¿bras óticas de menor custo capaz de interligar os pontos de
demanda, sabendo-se que o estabelecimento marcado com o número 1 no mapa é o ponto que dará origem à rede privada.
12 Rede PERT/CPM
☺
Desenvolva a rede PERT/CPM do problema descrito na Tabela 5.8, calculando o caminho crítico e as folgas das atividades.
2 Fundações 1 3 1-2 t2
3 Estrutura 2 5 2-3 t3
5 Instalações 2 7 2-5 t5
6 Esquadrias 4 2 4-6 t6
7 Piso 4 2 4-7 t7
8 Laje 3 3 3-8 t8
9 Telhado 8 3 8-9 t9
Sabendo-se que os valores mostrados sobre as setas representam a duração esperada para a atividade, pede-se:
Referências BibliográÀcas
Andrade, R., Lucena, A. & Maculan, N. (2006). Using Lagrangian Dual Information to Generate Degree Constrained Minimum
Spanning Trees. Discrete Applied Mathematics 5(1):703-17.
Aron, I. & Van Hentenryck, P. (2003). On the Complexity of the Robust Spanning Tree with Interval Data. Operations Reserch
Letters 32(1):36-140.
Avis, D. (1983). A Survey of Heuristics for the Weighted Matching Problem. Networks 13:475-93.
Bar-Eli, E.; Berman, P.; Fiat, A. & Yan, P. (1994). Online navigation in a room. Proceeding SODA, third annual ACM-SIAM
symposium on Discrete algorithms, 319-41.
Bellman, R. (1958). On a Routing Problem. Quarterly of Applied Mathematics 16(1):87-90.
Bertholdi, J. J. III. & Platzman, L. K. (1982). A Fast Heuristic Based on Space¿lling Curves for Minimum-Weight Matching in
the Plane. Information Processing Letters 17:177-80.
Bondy, J. A. & Murty, S. R. (1976). Graph Theory with Applications. Macmillan, Londres.
Chen, Wai-Kai. (1990). Theory of Nets: Flows in Networks. John Wiley & Sons, Nova York.
Cohen, E. (1996). Ef¿cient Parallel Shortest-Paths in Digraphs with a Separator Decomposition. Journal of Algorithms 21(2):
331-57.
Derigs, U. (1988). Programming in Networks and Graphs. Spring-Verlag Press.
Deo, N. & Kumar, N. (1998). Constrained Spanning Tree Problems: Fast Approximate Methods and Parallel Computation.
DIMACS Series on Discrete Mathematics and Theoretical Computer Science 40:191-217
Desrochers, M. & Soumis, F. (1988). A Generalized Permanent Labeling Algorithm for the Shortest Path Problem with Time
Wondows. Information Systems and Operational Research 26:193-203.
Dial, R. B. (1969). Algorithm 360: Shortest Path Forest with Topological Ordering. Communications of the ACM 12(11): 632-3.
Dijkstra, E. W. (1959). A Note on Two Problems in Connexion with Graphs. Numerische Mathematik 1: 269-71.
Domschke, A. W. & Voß, S. (1996). Capacitated minimum spanning trees: Algorithms using intelligent search. Combinatorial
Optimization: Theory and Practice 1(1):9-39.
Duin, C. W. & Volgenant, A. (1991). Minimum Deviation and Balanced Optimization. Operations Reserch Letters 10:43-8.
Edmonds, J. (1965). Paths, Trees and Flowers. Canadian Journal of Mathematics 17:449-67.
Even, S. & Kariv,O. (1975). Algorithm for Maximum Matching in General Graphs, Proc 16th Annual Symposium on Founda-
tions of Computer Science, 100-12. IEEE, Nova York.
Even, S. & Tarjan, R. E. (1975). Network Flow and Testing Graph Connectivity. SIAM Journal on Computing 4:504-18.
Fekete, S., Khuller, S., Klemmstein, M., Raghavachari, B. & Young, N. (1997). A network-Àow technique for ¿nding low-weight
bounded-degree spanning trees. Journal of Algorithms 24:310-24.
Frederickson, G. N. (1987). Fast Algorithms for Shortest Paths in Planar Graphs, with Applications, SIAM Journal on Com-
puting 5:83-9.
Fredman, M. L. & Willard, D. E. (1994), Trans-Dichotomous Algorithms for the Minimum Spanning Tree and Shortest Paths.
Journal of Computer and System Sciences 48(3):533-51.
312 Programação Linear e Fluxos em Redes
Ford, L. R. Jr. (1956). Network Flow Theory. The RAND Corporation, Paper p. 923.
Floyd, R. W. (1962). Algorithm 97, Shortest Path. Communications of the ACM 5:345.
Ford, L. R. Jr, & Fulkerson, D. R. (1962). Princeton University Press.
Fujie, T. (2003). An exact algorithm for the maximum leaf spanning tree problem. Computers & Operations Research
30(13):1931-44
Fukasawa, R., Poggi de Aragão, M., Porto, O. & Uchoa, E. (2003). Robust branch-and-cut-and-price for the capacitated
minimum spanning tree problem. In Proceedings of the International Network Optimization Conference, 231-6.
Gabow, H. N. (1976). An Ef¿cient Implementation of Edmonds’ Algorithm for Maximum Matching on Graphs. Journal of the
ACM 23:221-34
Gabow, H. N., Kaplan, H. & Tarjan, R. E. (2001). Unique maximum matching algorithms. Journal of Algorithms 40(2):159-83.
Gabow, H. N. & Tarjan, R. E. (1988). Algorithms for Two Bottleneck Optimization Problems. Journal of Algorithms 9:411-17.
Galbiati, G., Maf¿oli, F. & Morzenti, A. (1994). A short note on the approximability of the maximum leaves spanning tree pro-
blem. Information Processing Letters 52:45-9.
Gale, D. & Shapley, L.S. (1962). College Admissions and The Stability of Marriage. The American Mathematical Monthly
69:9-15.
Gar¿nkel, R., Fernández, E. & Lowe, T. (2006). The k-Centrum Shortest Path Problem. Journal of the Spanish Society of
Statistics and Operations Research, 14(2): 279-92.
Glover, F., Klingman, D. & Philips, N. (1985). A New Polynomially Bounded Shortest Paths Algorithm. Operations Research
33:65-73.
Glover, F., Glover, R. & Klingman, D. (1984). Computational study of an improved shortest path algorithm. Networks 14:25-36.
Goldbarg, M. C. & Gouvêa, E. F. (1997), Algoritmo para o Problema da Árvore Geradora Min-Max-Min-Sun. Actas de Resu-
mes Extendidos, I ELIO – II OPTIMA,108-113, Concepcion, Chile.
Goldberg, A. V. & Radzik, T. (1993). A Heuristic Improvement of the Bellman-Ford Algorithm. Applied Mathematics Letters
6:3-6.
Henig, M. I. (1990). Risk Criteria in a Stochastic Knapsack Problem. Operations Research 38(5):820-5.
Henzinger, M. R., Klein, P., Rao, S. & Subramanian, S. (1997). Faster Shortest-Path Algorithms for Planar Graphs. Journal of
Computer and System Sciences 55(1):3-23.
Hopcroft, J. E. & Karp, R. M. (1973). An O(n2.5) Algorithm for Maximum Matching in Bipartite Graph. SIAM Journal on Com-
puting 2:225-31.
Hu, T. C. (1968). A Decomposition Algorithm for the Shortest Paths. SIAM Journal on Applied Mathematics.
Iri, M., Murota, K. & Matsui, S. (1981). Linear-Time Approximation Algorithms for Finding the Minimum-Weight Perfect match-
ing on a Plane. Information Processing Letters 12: 206-9.
Iri, M., Murota, K. & Matsui, S. (1983). Heuristics for Planar Minimun-Weight Perfect Matchings. Networks 13:67-92
Jaillet, P. (1992). Shortest Path Problems with Nodes Failures. Networks 22:589-605.
Kameda, T. & Munro, I. (1974). A O(|V|.|E|) Algorithm for Maximum Matching of Graphs. Computing 12:91-8.
Knuth, D. E. (1976). Marriages Stables, Les Presses de l’Universite de Montreal.
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 313
Krishnamoorthy, M., Craig, G. & Palaniswami, M. (1996). Comparison of heuristic algorithms for the degree constrained
minimum spanning tree. In Metaheuristics: Theory and Applications, Kluwer, 83-96.
Kruskal, J. B. N. (1956). On the Shortest Spanning Subtree of a Graph and the Traveling Salesman Problem. Proceedings of
the American Mathematical Society 7:48-50.
Loui, R. P. (1983). Optimal Paths in Graphs with Stochastic or Multidimensional Weights. Communications of the ACM 26:670-6.
Lu, H. & Ravi, R. (1992). The power of local optimization: Approximation algorithms for maximum-leaf spanning tree. In Pro-
ceeding of 30th Annual Allerton Conference on Communication, Control and Computing, 533-42.
Mao, L-J. & Lang, S-D. (2002). Parallel Algorithms for the Degree-Constrained Minimum Spanning Tree Problem Using
Nearest-Neighbor Chains and the Heap-Traversal Technique. In 2002 International Conference on Parallel Processing
Workshops (ICPPW’02), 398-404.
Mengido, N. & Tamir, A. (1978). An O(N log N) Algorithm for a Class of Matching Problems. SIAM Journal on Computing
7:154-7.
Minoux, M. (1989). Solving Combinatorial Problems with Combined Min_Max_Min_Sum Objective and Applications. Mathe-
matical Programming 45:361-72.
Micali, S. & Vazirani, V. V. (1980). An O(|V|1/2.|E|) Algorithm for Finding Maximum Matching in General Graphs. Proc. Twenty-
¿rst Annual Symposium on the Foundation of Computer Science. Long Beach, CA, IEEE, 17-27.
Montemanni, R. & Gambardella, L. M. (2005). A branch and bound algorithm for the robust spanning tree problem with inter-
val data. European Journal of Operational Research,161(3):771-9.
Moore, E. F. (1957). The Shortest Path Through a Maze. Proceedings of the International Symposium on the Theory of Swi-
tching, Part II. The Annals of the Computation Laboratory of Harvard University, Cambridge, MA, 1959. Harvard University
Press, 285-92.
Moreira Neto, C. A. (1995). Sistema dinâmico de defesa de litoral: um estudo por técnicas de cobertura. Dissertação de
mestrado. Instituto Militar de Engenharia, IME, Rio de Janeiro.
Murthy, I. & Sarkar, S. (1997). Exact Algorithms for the Stochastic Shortest Path Problem with a Decreasing Deadline Utility
Function. European Journal of Operational Research 103:209-29.
Narula, S. C. & Ho, C. A. (1980). Degree-constrained minimum spanning trees. Computers & Operations Research 7:239-49.
NešetĜil, J., Milková, E. & NešetĜilová, H. (2001). Otakar BorĤvka on minimum spanning tree problem: translation of both the
1926 papers, comments, histor. Discrete Mathematics 233(1-3):3-36.
Oi, R. E. (2001). Unique Maximum Matching Algorithms, Journal of Algorithms 40(2):159-83.
Papadimitriou, C. H. (1978). The complexity of the capacitated tree problem. Networks 8:217–30.
Papadimitriou, C. H. & Steiglitz, K. (1982). Combinatorial Optimization Algorithms and Complexity. PrenticeHall, Nova York.
Papadrimitriou, C. H. & Yannakakis, M. (1989). Shortest Paths Without a Map. In Proceedings 16th ICALP, 610-20.
Pallottino, S. (1984). Shortest-Path Methods: Complexity, Interrelations and New Propositions. Networks 14:257-67.
Pape, U. (1974). Implementation and Ef¿ciency of Moore Algorithms for the Shortest Root Problems. Mathematical Program-
ming 7:212-22.
Patterson, R. (1999). A Memory Adaptive Reasoning Technique for Solving the Capacitated Minimum Spanning Tree Pro-
blem. Journal of Heuristics 5(2):159-80.
314 Programação Linear e Fluxos em Redes
Pettie, S. & Ramachandran, V. (2005). A Shortest Path Algorithm for Real-Weighted Undirected Graphs. SIAM Journal on
Computing 34(6):1398-431.
Psaraftis, H. N. & Tsitsiklis, J. N. (1993). Dynamic Shortest Path in Acyclic Networks with Markovian Arc Coasts. Operations
Research 41(1):91-101.
Punnen, A. P. & K. Nair, P. K. (1996). An O(mlogn) Algorithm for the Max+Sum Spanning Tree Problem. European Journal of
Operational Research 89:423-26
Raidl, G. R. (2000). An ef¿cient evolutionary algorithm for the degree-constrained minimum spanning tree problem, in Pro-
ceedings of the 2000 IEEE Congress on Evolutionary Computation, IEEE press, 104-111.
Raidl, G. R. & Drexel, C. (2000). A predecessor coding in an evolutionary algorithm for the capacitated minimum spanning
tree problem. In Late Breaking Papers at the 2000. Genetic and Evolutionary Computation Conference, 309-16.
Ribeiro, C. C. & Souza, M. C. (2002). Variable neighborhood search for the degree-constrained minimum spanning tree
problem. Discrete Applied Mathematics 118(1-2):43-54.
Ronn, E. (1990). NP-Complete Stable Matching Problems. Journal of Algorithms 11: 285-304.
Rothlauf, F. & Goldberg, D. (1999). Tree network design with genetic algorithms – An investigation in the locality of the Prue-
fernumber encoding. In Late Breaking Papers at the 1999. Genetic and Evolutionary Computation Conference, 238-43.
Salehi-Fathabadi, H. & Ahrabian, H. (1995). A New Algortithm for the Minimum Spanning Tree Using Depth-First-Search in
an Undirected Graph. International Journal of Computer Mathematics 57:157-61.
Savelsbergh, M. & Volgenant, T. (1985), Edge exchanges in the degree-constrained minimum spanning tree problem. Com-
puters & Operations Research 12(4):341-48.
Sigal, C. E., Pritsker, A. A. B. & Solberg, J.J. (1980). The Stochastic Shortest Route Problem, Operations Research 28(5):1122-
1129.
Tarjan, R. E. (1981). Minimum Spanning Trees, Tecnical Memo. Bell Labs., Murray Hill, N.J.
Träff, J. L. & Zaroliagis, C. D. (1996). A Simple Parallel Algorithm for the Single-source Shortest Path Problem on Planar
Digraphs. International Workshop of Parallel Algorithms for Irregularly Structured Problems (IRREGULAR-3), Lecture Notes
in Computer Science 1117:183-94.
Zhou, G. & Gen, M. (1997). Approach to degree-constrained minimum spanning tree problem using genetic algorithm. Engi-
neering Design & Automation 3(2):157-65.
Yaman, H., Karasan, O. E. & Pinar, M. C. (2001). The robust spanning tree problem with interval data. Operations Reserch
Letters 29:31-40.
Capítulo 6
Fluxos em Redes
Objetivos
O presente capítulo objetiva:
6.1
Introdução
Vários e importantes Modelos de Programação Linear possuem uma estrutura especial que permite o desenvolvimento de
algoritmos e¿cientes, calcados na especialização do método Simplex em sua solução. Nessa família de problemas, um dos
mais tradicionais é o Problema de Transportes. De maneira geral, os denominados Modelos em Redes permitem a solução
de importantes problemas reais e são de extraordinária aplicação prática.
Na dimensão da solução, esses modelos permitem o aperfeiçoamento de conhecidas e tradicionais técnicas, de modo a
alcançarem muita e¿ciência no seu processo de resolução.
depósitos ou centros de concentração e distribuição, sejam utilizados. As interligações podem possuir restrições de ca-
pacidade de tráfego e custos variados.
0 ≤ x12 ≤ 8 4 5
(2, 4, 5) (2, 6, 10)
Arco 2-5 (0, 4, 10)
Fluxo no Arco
1 ≤ x 25 ≤ 10 , etc (0, 7, ∞)
Representando o Àuxo que atravessa o arco (i, j) E pela variável xij , pode-se escrever as equações de equilíbrio de Àuxo
do exemplo da Figura 6.1, da seguinte forma:
∑x
( k, i ) ∈E
ki = ∑x
( i, j ) ∈E
ij i = 1,..., n
9Equilíbrio do vértice 2
x12 − x 23 − x 25 = 0
Funções-objetivo possíveis
No processo de otimização dos Àuxos em uma rede podemos dizer que dois objetivos são muito comuns: maximizar o Àuxo
total que passa pela rede ou minimizar o custo de um certo Àuxo. Assim
9Fluxo máximo
Considerando que existe um custo unitário cij associado ao trânsito de cada unidade de Àuxo pelo arco xij, então a função
-objetivo pode ser escrita como:
Minimizar ∑c x
( i, j ) ∈E
ij ij
Arcos
Vértices x12 x23 x25 x36 x14 x45 x56 x61
1 +1 +1 +1
2 -1 +1 +1
3 -1 +1
4 +1
5 -1 -1 +1
6 -1 -1 -1 -1
Figura 6.2. Matriz A das restrições de Àuxo
A con¿guração da matriz A lhe confere uma série de propriedades que, basicamente, serão responsáveis pelo ganho em
e¿ciência na implementação de versões especializadas de solução através do algoritmo Simplex. A matriz de incidência
vértice versus arco da Figura 6.2 adotou a convenção de marcar o sentido de entrada do arco em um vértice como negativo
e o sentido de saída como positivo. O exame de uma coluna da matriz, por exemplo, a coluna de x12, permite determinar a
direção da ligação dos arcos. No caso da coluna x12, o sentido do arco vai do vértice 1 (sinal positivo) para o vértice 2 (sinal
negativo). A principal propriedade da matriz A é a total unimodularidade. Uma matriz é dita totalmente unimodular quando seu
determinante é 0, 1 ou -1, propriedade extensiva a todas as suas submatrizes quadradas (Teorema de Heller e Tompkins, no
Anexo). Uma segunda propriedade decorrente diz respeito às soluções de um sistema Ax = b, onde A é totalmente unimo-
dular. Nesse caso as soluções do sistema são inteiras, quando b é inteiro.
⎧Fluxo que chega⎫ ⎧Fluxo produzido⎫ ⎧Fluxo que sai⎫ ⎧Fluxo consumido⎫
⎨ ⎬+⎨ ⎬=⎨ ⎬+⎨ ⎬
⎩ ao vértice ⎭ ⎩ no vértice ⎭ ⎩ do vértice ⎭ ⎩ no vértice ⎭
Formulação restrita
Considerando as mesmas variáveis do modelo Minimizar z = ∑c x ij ij
geral, e que lij represente o Àuxo mínimo neces- ( i , j ) ∈E
6.2
Modelos Especiais de Rede
o1 d1
x O problema de transporte
O problema de transporte é um problema de Àuxo em grafo d2
bipartido, de modo que não existem vértices intermediários o2
de transbordo ou transição para o Àuxo. Na visão clássica d3
deste problema, os arcos não possuem limite de capaci- o3
dade para o Àuxo. De forma geral, a descrição grá¿ca do d4
problema pode ser resumida na Figura 6.4:
Os vértices da rede da Figura 6.4 foram numerados
o4
de modo a destacar a condição de saída (vértices de d5
oferta) e entrada de Àuxo (vértices de demanda). O pro-
Vértices de Vértices de
blema de transporte pode ser visto como um problema
Oferta (m) Demanda (n)
de Àuxo em que o objetivo é minimizar globalmente os
custos dos Àuxos através dos arcos. Figura 6.4. Característica do Àuxo no problema de transporte
320 Programação Linear e Fluxos em Redes
O problema de transporte pode ser formulado como sugere o mo- (PTR) Minimizar ∑∑ c ij x ij
i =1 j =1
delo PTR onde:
Sujeito a:
n
x ij Ł Àuxo que atravessa o arco (i,j).
∑xj =1
ij ≤ oi i = 1,..., m
∑xi =1
ij ≥dj j = 1,..., n
o i Ł oferta do vértice i. x ij ≥ 0 ∀ par ( i , j )
d j Ł demanda do vértice j. m n
(P - PTR) Minimizar ∑∑ c ij x ij
i =1 j =1
Sujeito a :
n
− ∑ x ij ≥ −o i i = 1,..., m
j =1
apresentado em P-PRT. ∑x
i =1
ij ≥ dj j = 1,..., n
x ij ≥ 0 ∀ par ( i , j )
n m
(D - PTR) Maximizar ∑ d j v j − ∑ o i u i
j =1 i =1
Sujeito a :
vj − u i ≤ c ij ∀ par ( i , j )
vj ≥ 0 j = 1,..., n
A formulação dual do problema de transporte é exibida em ui ≥ 0 i = 1,..., m
D-PRT.
Observe-se que as formulações P-PTR e D-PTR, na solução ótima, são ligadas pela propriedade da complementaridade de
folga implicando que:
O dual da formulação clássica, de D-PTR, admite uma interpretação de preços espaciais para as variáveis duais, com ui
sendo o preço do produto na origem i e vj o preço do produto no destino j. Suponha-se que as atividades de transporte do
produto sejam realizadas por agentes autônomos, onde cada agente compra o produto na fábrica i ao preço ui e o vende
no ponto de consumo j, suportando o custo de transporte cij. Nesse contexto, as condições de complementaridade de folga
Fluxos em Redes 321
a¿rmam que em uma solução ótima, para todas as atividades realizadas, não existe nem lucro nem prejuízo para os trans-
portadores correspondentes. Por seu turno, as restrições de viabilidade do problema dual garantem que, a esses preços
espaciais, não existe nenhum agente de transporte que poderia ter lucro.
9 Formulação de circulação do problema de transporte
Podemos também considerar o problema de transporte como ocorrendo em uma rede de Àuxo conservativo. Adicionando um
vértice fonte (f) e um vértice sumidouro (s), e considerando limites inferiores iguais de oferta (Oi) e demanda (Dj), podemos
formular o problema de transporte como um caso particular do problema de Àuxos na rede da Figura 6.5.
Minimizar z = ∑∑ c ij x ij
i∈O j∈D
Sujeito a:
Considerando um problema com R = {1, 2, .., r} vértices
e |R| = m + n + 2. Denominando por O, O = {1, 2, ..., m}
o conjunto dos vértices de oferta, e por D, D = {1, ..., n},
∑x
( i, j ) ∈E
ij − ∑x
( k .i ) ∈ E
ki =0 i ∈V
x ij ≥ 0, ( i, j ) ∈ E
322 Programação Linear e Fluxos em Redes
m n
Minimizar z = ∑∑ c ij x ij
i =1 j =1
Sujeito a:
n
Pode-se formular o Problema de Transporte so-
mente considerando as demandas e ofertas lo-
∑x
j =1
ij = oi i = 1,..., m
x ij ≥ 0 i = 1,..., m ; j = 1,..., n
Observa-se que a matriz de restrições do problema de transporte na formulação clássica ainda mantém a propriedade da
unimodularidade. Seja o exemplo numérico da Figura 6.6.
A
x ij dA = 15
1
o1 = 25
B
dB = 15
o2 = 25
2
dC = 20
Figura 6.6. Exemplo de problema de
C transporte
x ij ≥ 0, i ∈M , j ∈N
Fluxos em Redes 323
Que para o exemplo, considerando que o vetor de custos é [c ] = [2,5,3,7,4,1], redundaria em:
Minimizar z = 2x 1A + 5x 1B + 3x 1C + 7x 2 A + 4 x 2B + 1x 2C
Sujeito a:
x 1A + x 1B + x 1C = 25
x 2 A + x 2 B + x 2C = 25
x 1A + x 2A = 15
x 1B + x 2B = 15
x 1C + x 2C = 20
x ij ≥ 0 i ∈ {1,2}, j ∈ { A, B ,C }
As variáveis associadas ao Àuxo nos arcos i-j formam uma interessante matriz de restrição A = {aij}, totalmente unimodular e
de posto (A) = m + n - 1, uma vez que existem m linhas no conjunto de restrições de oferta e n no conjunto de restrições de
m n
demanda, mas com apenas m + n - 1 graus de liberdade, já que ∑ o i =∑ d j .
i =1 j =1
O processo de solução desse sistema de equações pode ser bastante simpli¿cado em face da peculiaridade de sua matriz
de restrições. Suponhamos que tenhamos obtido uma base B de A. Como o Rank (A) = m + n - 1, pelo menos uma coluna de
B deverá conter apenas uma única entrada positiva, ou det B = 0. Permutando as linhas e as colunas de B poderemos obter:
⎡1 Q ⎤
B=⎢
⎣0 Bm + n −2 ⎥⎦
⎡1 Q1 Q2 ⎤
Aplicando o mesmo raciocínio à matriz Bm +n − 2 pode-se ⎢
B = ⎢0 1 P ⎥
reescrever a matriz B da seguinte forma: ⎥
⎢⎣0 0 Bm + n −3 ⎥⎦
x a x 1C x 2C x 1A x 1B
⎡1 1 1 1 0⎤ ⎡20⎤
⎢0 1 0 1 1⎥⎥ ⎢25⎥
⎢ ⎢ ⎥
B i x B = ⎢0 0 1 0 0⎥ x B = ⎢15 ⎥[ ]
⎢ ⎥ ⎢ ⎥
⎢0 0 0 1 0⎥ ⎢15 ⎥
⎢⎣0 0 0 0 1⎥⎦ ⎢⎣25⎥⎦
Observe-se que a matriz triangularizada é uma estrutura favorável para a obtenção de uma solução para o problema da
inversão de B. Consequentemente, é natural supor que o algoritmo Simplex possa tirar proveito disso e ser especializado
para alcançar melhor desempenho. Pode-se resumir o problema no quadro da Figura 6.7, que será denominado Quadro de
Transporte, em que cada célula do quadro representa uma variável, ou seja, um arco de ligação, e o valor incluso no quadro
menor signi¿ca o custo da célula (custo de uso do arco). Assim, para o exemplo, tem-se:
Demanda
Índices A B C Valor
2 5 3
1 x1A x1B x1C 25
Oferta 7 4 1
2 x2A x2B x2C 25
Valor 15 15 20
Figura 6.7. Quadro de transporte do exemplo 1
Para que seja possível especializar o algoritmo Simplex, é necessário explorar a peculiaridade do formato e das proprieda-
des da matriz A, o que pode ser realizado nas seguintes etapas do método:
O Quadro de Transporte é conveniente para a determinação de uma base viável inicial para o Simplex, por uma interessante
propriedade:
Fluxos em Redes 325
Proposição 1
A condição necessária e suÀciente para que um conjunto de variáveis do problema de transporte seja
linearmente dependente é que forme um ciclo no quadro de transportes.
A proposição 1 pode ser veri¿cada, para o problema numérico do exemplo, nos quadros da Figura 6.8.
Veri¿ca-se, sem di¿culdade, que os conjuntos de variáveis do Quadro de Transporte são linearmente dependentes. Por outro
lado, conjuntos de variáveis que formem uma árvore (ver de¿nição de árvore) no quadro de transporte, quando for conside-
rada cada célula do quadro como um vértice de um grafo, são linearmente independentes, como exempli¿cados na Figura
6.9, e podem ser utilizados para compor uma base do algoritmo Simplex.
Algumas regras podem ser seguidas para a obtenção de uma boa “base inicial” para o Simplex. Os dois métodos mais
conhecidos são:
3. Se uma solução já foi alcançada, pare. Caso contrário, aplique as regras anteriores, eliminado as linhas ou colunas
já balanceadas e fazendo a célula corrente ocupar a posição da célula (1, 1).
326 Programação Linear e Fluxos em Redes
A seguir será exempli¿cada a obtenção da base inicial para o exemplo numérico da Figura 6.6.
2 5 3
x1A x1B x1C 25
7 4 1
x2A x2B x2C 25
15 15 20
~ ~
x11 = min { o~1,d1 } = min {25, 15 }=15 ⇒ o~1− 15 = 25 − 15 = 10 ; d1− 15 = 15 − 15 = 0
~
o~1> d1 , então:
~ ~
x12 = min { o~1,d 2 } = min {10, 15 }=10 ⇒ o~1− 10 = 10 − 10 = 0 ; d 2 − 10 = 15 − 10 = 5
~
o~2 < d 2
~ ~
x22 = min { o~2 ,d 2 } = min {25, 5 }=5 ⇒ o~2 − 5 = 25 − 5 = 20 ; d 2 − 5 = 5 − 5 = 0
~
o~2 = d 3
x23 = 20
2 5 3
15 10 x1C 25
7 4 1
x2A 5 20 25
15 15 20
1. Construa o Quadro de Transporte de Vogel (ver Quadro 1 de Vogel ). Se o total da oferta for diferente do total da
demanda, crie uma origem (ou destino) ¿ctícia para que haja equilíbrio.
2. Determine a diferença entre os dois menores custos de cada linha e cada coluna.
3. Selecione a linha (ou coluna) de maior diferença. Caso ocorra empate, escolha aleatoriamente.
Fluxos em Redes 327
4. Na coluna (ou linha) escolhida atribua, na célula de menor custo, a maior quantidade possível de suprimento.
5. Atualize as ofertas (e demandas), subtraindo a quantidade de suprimento atribuída. As linhas ou colunas em que a
oferta ou demanda já foi satisfeita devem ser eliminadas nas próximas etapas.
6. Se não restar mais linhas ou colunas a serem preenchidas, pare. Caso contrário, volte ao ponto 2.
Utilizando o método de Vogel para obter a solução inicial de nosso exemplo numérico:
O problema já é equilibrado, restando-nos construir o quadro de cálculo. O Quadro de Vogel é o mesmo Quadro de Trans-
porte acrescido de áreas para o registro das diferenças entre os dois menores custos:
Iniciamos calculando as diferenças de custos entre as células (linhas e colunas).
Coluna A = 5; coluna B = 1; coluna C = 2; linha 1 = 3; linha 2 = 6 (ver Quadro1).
QUADRO 1 de Vogel
A B C Diferenças
2 5 3
1 25 1
7 4 1
2 X 25 3
S
15 15 20
5 1 2
Diferenças
Escolhe-se a célula de menor custo da linha 2 (2, 3) para receber a maior quantidade de suprimento possível, atualizando-se
as demandas e ofertas em virtude dessa ação (ver Quadro 2). A coluna 3 pode ser eliminada do quadro, recalculando-se as
diferenças. A coluna A possui a maior diferença e a célula (1, 1), o menor custo.
QUADRO 2 de Vogel
A B C Diferenças
2 5 3
1 X 25 1 3
7 4 1 5
2 S 20 25 3 3
15 15 20 0
5 1 2
Diferenças 5 1
328 Programação Linear e Fluxos em Redes
Com as atualizações, a coluna A pode ser eliminada. O processo segue até o quadro ¿nal (Quadro 4).
QUADRO 3 de Vogel
A B C Diferenças
2 5 3 10
1 15 25 1 3 0
7 4 1 5
2 20 25 3 3 0
15 0 15 20 0
5 1 2
Diferenças 5 1
QUADRO 4 de Vogel
A B C Diferenças
2 5 3 10 0
1 15 10 25 1 3 0
7 4 1 5 0
2 5 20 25 3 3 0
15 0 15 0 20 0
5 1 2
Diferenças 5 1
z j − cj = c B B −1aj − cj
como:
B −1a j = yj
Fluxos em Redes 329
tem-se que:
z j − cj = c B yj − c j
É possível reescrever a equação anterior em função do Quadro de Transporte, onde cada célula representa uma variável (o
valor do Àuxo em um arco). Nesse caso é necessário associar um valor de contribuição pela utilização da célula como uma
variável básica. Como os custos estão associados a duas dimensões, a equação dos custos reduzidos pode ser rescrita da
seguinte forma:
z ij − c ij = c B yij − cij
O notável caso é que a matriz yij pode ser obtida simplesmente por adições e subtrações das variáveis básicas, o que fa-
cilita os cálculos. Podemos calcular a contribuição para a melhoria da solução decorrente da entrada de uma variável pelo
procedimento primal abaixo sugerido:
j k s
+1 -1
u
auj aus
-1 +1
l
alk als
el
+1
i
aij aik
Como existem duas variáveis fora da base, x1C e x2B, deve-se calcular z1C í c1C e z2B í c2B.
z1C − c1C = + 2 − 7 + 1 − 3 = −7
z 2B − c 2B = + 7 − 2 + 5 − 4 = + 6
O que conduz ao fato de que a solução básica não é ótima, e x2B pode entrar na base. Resta ainda interpretar as condições
de saída da base. No caso peculiar do quadro de transportes, uma variável que entra na base substitui totalmente a deman-
da coberta pela variável que sai. Para evitar o surgimento de inviabilidade na solução (valores negativos de Àuxo), devemos
considerar a substituição pelo menor valor (') existente entre todas as variáveis que possuírem a atribuição +1 associada à
variável que entra. No caso do exemplo:
Para concluir o estudo da solução primal especializada para o problema de transporte é interessante confrontar o quadro
do Simplex com o quadro de transporte associado. Seja a base calculada pelo método do Canto Noroeste e seu quadro
Simplex associado:
2 5 3
15 10 x1C 25
7 4 1
x2A 5 20 25
15 15 20
O elemento yij é determinado através da construção de um ciclo pela ocupação da célula i-j, porém sabendo que:
Fazendo wi , i = 1,..,m ser representado por ui, e wm+j , j = 1,..,n por por vj , então o vetor dual w é dado por:
Essa rota de cálculo para os custos reduzidos é denominada das variáveis duais. Como w = cB B-1, então w é uma solução
do sistema w = cB , lembrando que:
B = (a pq ,..., a st , e m + n )
c B = (c pq ,..., a st , c a )
Onde apq,...,ast são as m + n - 1 colunas da base e cpq,...,ast são seus custos correspondentes; em+n é a coluna arti¿cial de
custo ca, um vetor de zeros com uma atribuição igual a 1 na posição m + n. Lembrando que a variável arti¿cial estará sempre
atribuída a zero, o valor de ca é irrelevante (normalmente é arbitrado igual a zero). Como B é uma matriz triangularizável, o
sistema de equações associado às variáveis duais w é facilmente solucionável. O sistema:
up + vq = cpq
.
.
us + vt = cst
vn = 0
332 Programação Linear e Fluxos em Redes
Exempli¿cando o cálculo sugerido anteriormente, é possível calcular os valores das variáveis duais para o quadro do exem-
plo numérico: A variável dual v3 é arti¿cial e a ela será atribuído o valor zero. Dai:
VC = 0
• Obtenção de uma solução inicial (o método de uma árvore qualquer no quadro de transporte):
2 5 3
x1A 5 20 25
7 4 1
15 10 x2C 25
15 15 20
z1A − c1A = + 5 − 4 + 7 − 2 = + 6
z 2C − c 2C = + 4 − 5 + 3 − 1 = + 1
2 5 3
5 x1B 20 25
7 4 1
10 15 x2C 25
15 15 20
z1B − c1B = + 4 − 7 + 2 − 5 = − 6
z 2C − c 2C = + 7 − 2 + 3 − 1 = + 7
2 5 3
15 x1B 10 25
7 4 1
x2A 15 10 25
15 15 20
• Procedimento de melhoria da solução corrente.
Nesse caso:
z1B − c1B = + 3 − 1+ 4 − 5 = + 1
z2A − c2A = + 2 − 5 + 4 − 7 = − 6
2 5 3
15 10 x1C 25
7 4 1
x2A 5 20 25
15 15 20
Que já é conhecido como o quadro ótimo!
334 Programação Linear e Fluxos em Redes
x ij ≥ 0 i = 1,..., n; j = 1,..., n
A matriz A deste problema preserva as mesmas condições de Unimodularidade Total, sendo que a atribuição das variáveis
é mais simples, ou seja, apenas 0 ou 1. O dual do problema de designação pode ser escrito como:
n n
Maximizar w = ∑ u i + ∑ vj
i =1 j =1
Sujeito a:
ui + vj ≤ c ij i , j = 1,..., n
⎧⎪xij > 0 ⇒ u i + vj = c ij
O que conduz às relações denominadas de ⎨
“ortogonalidade”, quais sejam: ⎪⎩xij = 0 ⇒ u i + vj ≤ c ij
O que signi¿ca que, se for encontrado um conjunto viável de variáveis u, v e x, satisfazendo completamente as condições
de ortogonalidade, será caracterizada a solução ótima do problema. O interesse do modelo dual é que as condições de
viabilidade não são uma tarefa difícil de ser cumprida. Uma solução dual viável é dada simplesmente por:
Como foi observado para o problema de transporte, u~i pode ser obtido considerando-se o menor cij na linha i e v~i como o
menor cij 2 u~i dentro da coluna j.
O próximo algoritmo será construído de forma a utilizar as informações das variáveis duais e o teorema das folgas comple-
mentares, para a solução do Problema de Designação. A estratégia geral será obter uma solução dual viável (tarefa fácil) e,
a cada iteração do algoritmo, reduzir as condições de ortogonalidade não satisfeitas (tarefa um pouco mais elaborada). Seja
o seguinte exemplo numérico:
Exemplo numérico
Deseja-se alocar quatro tarefas a quatro máquinas que possuam uma matriz de custo descrita na Figura 6.13. Nessa matriz,
cada célula representa o custo por alocarmos a máquina i (representada na linha i) à tarefa j (representada na coluna j).
Tarefas (colunas)
1 2 3 4
1 3 4 4 2
Máquinas 2 7 3 5 1
(linhas) 3 4 6 2 5
4 1 2 1 1
Figura 6.13. Quadro de designação do exemplo numérico
A viabilidade primal do Problema de Designação exige que toda linha e toda coluna tenha uma e somente uma entrada
positiva (xij = 1). Em consequência, uma solução básica viável para esse problema (quando representado na forma de
um quadro de designação, como na Figura 6.13) pode ser ilustrada pelas soluções exempli¿cadas nos quadros da Figu-
ra 6.14, onde o (x) representa que a célula tem a variável a ela associada igual a 1 (xij = 1), permanecendo as demais
células iguais a zero.
Figura 6.14. Soluções básicas viáveis (no primal) para o problema de designação
As relações que envolvem as variáveis duais indicam que as posições candidatas à designação deveriam ser identi¿cadas
como pontos em que são encontrados valores de custos mínimos, quer seja em relação às linhas (variáveis ui ) ou colunas
(variáveis vj). Para buscar esse tipo de con¿guração é possível desenvolver um procedimento que subtraia o menor valor
dos custos dentro de cada linha e coluna, buscando uma distribuição de custos que não possa mais ser melhorada. Cada
valor mínimo encontrado após o processo de subtração em toda a coluna ou linha vai produzir, pelo menos, uma posição
nula, posição essa que sinaliza uma designação dual viável. Por exemplo, se o quadro de designação tivesse os valores
descritos na Figura 6.15.
336 Programação Linear e Fluxos em Redes
A aplicação do algoritmo de subtração, em cada linha, do valor mínimo da linha, conduz ao quadro da Figura 6.16.
1 2 3 4
1 0 2 3 4
2 2 0 2 5
3 3 4 5 0
4 4 3 1 0
Valor Mínimo na
0 0 1 0
Coluna
O quadro resultante poderia ser novamente subtraído, agora em valores mínimos de colunas alcançando-se o quadro da
Figura 6.17.
1 2 3 4
1 0 2 2 4
2 2 0 1 5
3 3 4 4 0
4 4 3 0 0
Figura 6.17. Quadro resultante de subtração em linhas e colunas
Observa-se que a distribuição de células nulas (soluções duais viáveis) contém uma con¿guração primal viável e duas inviáveis,
dentro das possíveis distribuições de quatro alocações do quadro, conforme mostra a Figura 6.18.
Configuração 1 Configuração 2 Configuração 3
A con¿guração 2 é primal e dual viável, logo, é ótima. A matriz resultante da subtração sucessiva dos valores mínimos dos
custos em linhas e colunas no problema de designação é chamada de matriz reduzida. O máximo número de células com
custo reduzido zero, tal que não mais de duas ocupem a mesma linha, é igual ao número mínimo de linhas necessárias
para cobrir todas as células nulas da matriz. Essas células são chamadas independentes. Um importante teorema deriva do
procedimento de obtenção de soluções duais viáveis no quadro do Problema de Designação.
Teorema
O máximo número de zeros em células independentes em um quadro reduzido do problema de desig-
nação é igual ao mínimo número de linhas que podem cobrir todos os zeros da matriz.
Claramente, nem sempre a primeira solução dual viável obtida no quadro reduzido apresenta uma con¿guração de elemen-
tos nulos que permita a identi¿cação de uma base primal viável. Seja o caso do quadro de transporte a seguir. Aplicando a
técnica descrita para obter uma solução dual viável, alcança-se a matriz reduzida da seguinte forma:
1 2 3 4
1 1 2 2 0
2 6 2 4 0
3 2 4 0 3
4 0 1 0 0
Valor Mínimo na
0 1 0 0
Coluna
Que, quando subtraídos do valor mínimo da coluna, conduzem à matriz reduzida da Figura 6.21.
1 1 2 0
6 1 4 0
2 3 0 3
0 0 0 0
Nota-se que, como no exemplo da Figura 6.21, caso não exista uma solução primal viável associada ao quadro reduzido
encontrado (as duas primeiras linhas são cobertas por uma mesma coluna de zeros), será necessário modi¿car o quadro
no sentido de obter viabilidade primal, ou seja, estabelecer, para o algoritmo de solução, um procedimento de melhoria nas
condições de viabilidade primal violadas (mais de um zero sobre uma mesma linha ou coluna).
Considerando a matriz reduzida do quadro de designação com zeros cobertos pelo menor número de linhas possível. Seja
k o número de linhas necessárias para a solução viável. Seja Sr = {i1, i2, ...} o conjunto das linhas não cobertas por
~ ~
zeros e Sc = {j1, j2, ...} o conjunto das colunas não cobertas. De¿nindo como Sr = N \ Sr e Sc = N \ Sc,, onde N = {1, ..., n}.
Finalmente, seja p o número de linhas em Sr e q o número de colunas em Sc, então k = (m - p) + (m - q). Denominando por
c0 o menor elemento não coberto, ou seja:
É possível demonstrar que uma nova solução dual (necessária para mudar o quadro inviável) poderá ser obtida da seguinte
forma:
u i = u~i + c 0 i ∈ Sr
~
u = u~
i i i ∈ Sr
vj = v~j j ∈ Sc
~
vj = v~j − c 0 j ∈ Sc
Resumindo: Na matriz reduzida, sob o aspecto da manutenção da viabilidade dual, existe uma equivalência entre subtrair c0
de cada linha descoberta e adicionar c0 a cada coluna coberta. No caso em que o quadro possa possuir células que tenham
dupla cobertura, é equivalente subtrair c0 das células descobertas e acrescentá-lo às células duplamente cobertas. Como
são subtraídos os valores mínimos pertencentes a Sr e Sc, o quadro permanece não negativo, e cria-se pelo menos um zero
em cada linha e coluna. No exemplo tem-se:
Conjunto 1 1 2 0
6 1 4 0 c 0 = 1 (menor valor a
Descoberto 2 3 0 3
descoberto no quadro)
0 0 0 0
Utilizando essa técnica para melhorar as condições de ortogonalidade violadas deve-se, portanto, subtrair 1 dos elementos
descobertos e somar 1 aos elementos cobertos por dois traços, para obtermos uma nova solução dual viável. O resultado
da aplicação do método conduz às soluções abaixo enumeradas, todas ótimas:
0 0 1 0 0 0 1 0 0 0 1 0
5 0 3 0 5 0 3 0 5 0 3 0
2 3 0 4 2 3 0 4 2 3 0 4
0 0 0 1 0 0 0 1 0 0 0 1
Solução 1 Solução 2 Solução 3
Figura 6.22. Alocações possíveis
Fluxos em Redes 339
Pode-se resumir os resultados alcançados nas considerações das iterações duais em um algoritmo para o problema de
designação, da seguinte forma:
9 Algoritmo Húngaro
1. Trace o menor número possível de linhas que cubram os zeros existentes nas colunas e linhas da matriz do quadro
de designação. Se o número de linhas é n, a solução ótima foi encontrada.
2. Determine o menor elemento não coberto pelas linhas. Subtraia esse elemento de todos os demais não cobertos e o
acrescente aos elementos duplamente cobertos. Volte ao passo anterior.
À estratégia para orientar o processo de “cobrir” as linhas e colunas de forma ótima sugere-se o seguinte procedimento de
rotulação:
Algoritmo de Rotulação:
1. Marcar todas as linhas que não tenham alocações.
2. Marcar todas as colunas que tenham zeros em linhas marcadas.
3. Marcar as linhas que tenham alocações em colunas marcadas.
4. Repetir 1 e 2 até não ser mais possível marcar linhas ou colunas.
5. Traçar uma reta sobre cada linha não marcada e sobre cada coluna marcada.
Segue-se um exemplo completo da aplicação do algoritmo anteriormente descrito para o Problema da Designação..
∑x ij =1 j = 1,..., n
⎧1 Caso a aresta ( i , j ) seja incluída na solução i =1
x ij = ⎨ x ij ∈ {0,1} ∀( i , j ) ∈M
⎩0 Caso contrário
O modelo de programação desenvolvido para o problema de Matching Ponderado em grafo bipartido, modelo (1_MAT),
pode representar o Problema de Designação, também conhecido como Assignment Problem, caso o grafo bipartido possua
dois conjuntos de vértices de mesma cardinalidade. O 1-Matching formulado como um Problema de Designação poderá, por
sua vez, ser solucionado através de um algoritmo de Àuxo em redes, segundo o esquema da Figura 6.23.
340 Programação Linear e Fluxos em Redes
cij
1 1 1 1
. .
. .
. .
1 n n 1
i=1,..,n j=1,..,n
Figura 6.23. 1-Matching Ponderado modelado por Àuxo em redes
O 1-Matching poderá ser também solucionado como um Problema de Designação através, por exemplo, do algoritmo Hún-
garo anteriormente desenvolvido. Como exercício, o problema de 1-Matching Ponderado do grafo da Figura 6.23, associado
à matriz de custo da Figura 6.25, será solucionado como um Problema de Designação, mostrando a associação dos passos
do algoritmo à solução de Àuxo sugerida pelo modelo da Figura 6.24.
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
Figura 6.24. Grafo de formulação através de Àuxo em redes para solução através do algoritmo Húngaro
Para um problema como o presentemente formulado, existe uma representação em grafos de fácil visualização e que pode
ser útil para ajudar no acompanhamento das soluções duais e primais alcançadas em cada iteração do método. A matriz de
custos C = [cij] do problema é representada à esquerda do grafo, com os vetores duais na lateral esquerda e abaixo. O Àuxo
associado é representado à direita, como na Figura 6.25.
1 1 1 1
1 2 3 4 ui
1 2 3 5 8 2 1 2 2 1
2 7 5 1 4 1
3 3 2 5 6 2 1 1
3 3
4 7 3 2 1 1
vj 0 0 0 0 1 4 1
4
Quadro inicial para o cálculo Fluxo associado
Figura 6.25. Exemplo numérico
Fluxos em Redes 341
Nesse caso, já na primeira iteração do algoritmo Húngaro (apenas com a redução de colunas), é possível alcançar um Àuxo
primal e dual viável (ótimo), como mostra a Figura 6.26.
1 1 1 1
1 2 3 4 ui
1 0 1 3 6 2 1 2 2 1
2 6 4 0 3 1
3 1 0 3 4 2
1 3 3 1
4 6 2 1 0 1
vj 0 0 0 0
1 4 4 1
Quadro reduzido
Fluxo associado
Seja agora o exemplo numérico sugerido pela nova matriz de custos da Figura 6.27.
1 2 3 4 ui
1 94 1 54 68 1
2 74 10 88 82 10 (cálculo dos ui )
3 62 88 8 76 8
4 11 74 81 21 11
vj 0 0 0 0
Figura 6.27. Segundo exemplo numérico
Quando se aplica o algoritmo Húngaro para o caso do exemplo da Figura 6.27 não se obtém, na primeira distribuição dos
valores 0, as condições necessárias de ortogonalidade, como mostra a Figura 6.28.
1 2 3 4 ui
1 93 0 53 67 1 (cálculo dos vj )
2 64 0 78 72 10 Quarta Coluna
3 54 80 0 68 8 viola condições
4 0 63 70 10 11 de Ortogonalidade
vj 0 0 0 10
Figura 6.28. Primeira iteração do algoritmo húngaro
Como não é possível obter uma solução primal viável, o Àuxo associado não corresponde a um emparelhamento, conforme
comprova a Figura 6.29.
342 Programação Linear e Fluxos em Redes
1 1 1 1
1 2 3 4 ui
1 93 0 53 57 1 1 2 1
2
2 64 0 78 62 10
3 54 80 0 58 8
1 3 3 1
4 0 63 70 0 11
vj 0 0 0 10 1 1
4 4
Quadro reduzido Fluxo associado
Figura 6.29. Fluxo associado à solução primal inviável
Aplicando o procedimento de rotulação, necessitamos de três linhas para cobrir os zeros (n = 3 z 4), encontra-se:
1 2 3 4 ui
1 93 0 53 57 1
2 64 0 78 62 10 53 é o menor valor
3 54 80 0 58 8 descoberto
4 0 63 70 0 11
vj 0 0 0 10
Figura 6.30. Primeira rotulação do algoritmo húngaro
1 2 3 4 ui
1 40 0 0 4 0
2 11 0 25 9 0
3 54 133 0 58 0
4 0 116 70 0 0
vj 0 0 0 0
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
Quadro reduzido Fluxo associado
Figura 6.32. Segundo Àuxo inviável
Fluxos em Redes 343
1 2 3 4 ui
1 40 0 0 4 0
2 11 0 25 9 0 4 é o menor valor
3 54 133 0 58 0 descoberto
4 0 116 70 0 0
vj 0 0 0 0
Figura 6.33. Segunda rotulação
A segunda rotulação nos conduz, ¿nalmente, a um Àuxo viável, como mostra a Figura 6.34.
1 1 1 1
1 2 3 4 ui
1 36 0 0 0 0 1 2 1
2
2 7 0 25 5 0
3 50 133 0 54 0
1 3 3 1
4 0 120 74 0 0
vj 0 0 0 0
1 4 4 1
Quadro reduzido Fluxo associado
Figura 6.34. Fluxo viável
A distribuição viável é identi¿cada pelo procedimento de rotulação do algoritmo, como a Figura 6.35 mostra.
1 2 3 4 ui
1 36 0 0 0 0
2 7 0 25 5 0 n=4
3 50 133 0 54 0 Quadro Ótimo
4 0 120 74 0 0
vj 0 0 0 0
Figura 6.35. Quadro ótimo
1
O problema de transbordo é um problema de Àuxo em 4 1
Trata-se de um problema de Àuxo a custo mínimo, sem restrições de capacidade nos arcos. O problema de caminho mais
curto é um problema de transbordo, onde o vértice raiz s injeta uma unidade de Àuxo, e o vértice destino t consome uma
unidade de Àuxo, e os demais vértices têm ofertas ou demandas nulas.
(C ) Minimizar z = ∑c x
( i, j ) ∈A
ij ij
Onde xij representa o Àuxo circulando no arco (i, j) E. No caso do exemplo da Figura 6.36, a matriz de restrições associa-
das ao modelo será a representada na Figura 6.37.
Vértice - Arco xs1 xs3 x12 x32 x34 x45 x25 x2T x5t Restrição Fluxo
s +1 +1 = 1
1 -1 +1 = 0
2 -1 -1 -1 +1 +1 = 0
3 +1 +1 = 0
4 -1 +1 = 0
5 -1 -1 +1 = 0
t -1 -1 = -1
Custo 1 1 2 2 1 1 3 4 1
Figura 6.37. Matriz de Àuxo para o problema do caminho mais curto s-t
x Questionário
Uma aplicação de Àuxo em redes associada ao cálculo probabilístico é apresentada por Picard (1972). Um exemplo de grafo
questionário está apresentado na Figura 6.38. O grafo analisa um processo de concessão de benefícios em um sistema de
aposentadoria. O grafo apresenta o Àuxo lógico das atividades de tomada de decisão no processo. Os arcos iniciais marcam
a probabilidade da ocorrência da tomada de decisão por parte do decisor. Os demais arcos marcam o custo do caminho do
processo exitoso de concessão, bem como sua probabilidade de ocorrência. O grafo permite o cálculo do custo esperado de
um processo exitoso como um Àuxo entre o vértice concessor e os vértices sim do grafo.
Fluxos em Redes 345
n −1 n
(AGM) Minimizar z = ∑ ∑ c ij x ij
i = 0 j = i +1
Sujeito a:
n −1 n
∑ ∑x
i =0 j = i +1
ij =n
∑f
j =1
0j =n
n n
∑f − ∑f
h =0
hi
j =1
ij =1 i = 1,..., n
foj ≤ nx oj ∀(0, j ) ∈ E
fij ≤ nx ij ∀( i, j ) ∈ E
fji ≤ nx ij ∀( i, j ) ∈ E
xij ∈ {0,1} ∀( i, j ) ∈ E
fij ≥ 0 ∀ par i = 0,...,n e j = 1,...n
n −1 n
(AGM - C) Minimizar z = ∑ ∑ c ij x ij
i = 0 j = i +1
Sujeito a:
n −1 n
∑ ∑x
i = 0 j = i +1
ij =n
n n
∑ f0 j = ∑ q h
j =1 h =1
n n
∑f − ∑f
h =0
hi
j =1
ij = qi i = 1,..., n
Om dn
Considerando:
fk { custo ¿xo de se ativar um ponto de transbordo ou armazém k, k S, S = {1, ..., s}, o conjunto dos pontos de oferta.
vk { variável binária que assume o valor 1, se o ponto de transbordo é ativado, e 0, caso contrário.
ak { capacidade de armazenagem disponibilizada pelo ponto de transbordo j.
dj { demanda do vértice j.
xik { Àuxo que percorre um arco i - k.
ykj { Àuxo que percorre um arco k - j.
cik { custo de percorrer o arco i - k.
wkj { custo de percorrer o arco k - j.
m s s n s
(PLC) Minimizar z = ∑∑ cik xik + ∑∑ wkj ykj + ∑ fk vk
i =1 k =1 k =1 j =1 k =1
Sujeito a:
m
∑x
i =1
ik ≤ a k vk k = 1,..., s (6.1)
s
∑y
k =1
kj = dj j = 1,..., n (6.2)
m n
∑x = ∑x
i =1
ik
j =1
kj k = 1,.., s (6.3)
x ik ≥ 0 i ∈ E, k ∈ S (6.4)
ykj ≥ 0 k ∈ S, j ∈ V (6.5)
vk ∈ { 0,1} k ∈S (6.6)
A restrição (6.1) descreve o processo de criação (ou abertura) de armazéns, considerando o aspecto do atendimento do
Àuxo demanda x oferta. A restrição (6.2) garante o atendimento da demanda. A restrição (6.3) assegura a continuidade de
Àuxo. As demais restrições atendem as exigências de não negatividade e da natureza das variáveis.
x Problemas multiestágio
A formulação anterior descreve um Problema Capacitado sem restrições associadas aos Àuxos nos arcos. Em muitas si-
tuações reais, o Problema de Transporte com transbordo possui limites de Àuxo em seus arcos, uma vez que as rodovias,
ferrovias ou mesmo aerovias, possuem limitações de tráfego.
Om dn
Considerando:
gk { custo de armazenagem na unidade k por unidade de Àuxo k S, S = {1, ..., s}.
ak { capacidade de armazenagem disponibilizada pelo ponto de transbordo j.
dj { demanda do vértice j.
vk { variável binária que assume o valor 1 se o ponto de transbordo é ativado, e 0, caso contrário.
xik { Àuxo que percorre um arco i 2 k.
ykj { Àuxo que percorre um arco k 2 j.
Hk e hk { capacidade máxima e mínima de armazenagem na unidade de armazenamento k, que correspondem
também a limites para o Àuxo na rede.
pk { Àuxo circulando na unidade de armazenamento k, equivalente a sua capacidade de armazenamento.
lik { limite inferior de Àuxo no arco i 2 k.
Lik { limite superior de Àuxo no arco i 2 k.
m s s n s s
(PMLC) Minimizar z = ∑∑ c ik x ik + ∑∑ v kj y kj + ∑ f k v k + ∑ g k p k
i =1 k =1 k =1 j =1 k =1 k =1
Sujeito a:
m
∑x
i =1
ik ≤ ak v k k = 1,..., s (6.7)
s
∑y
k =1
kj = dj j = 1,..., n (6.8)
m n
∑ x ik = pk = ∑ x kj
i =1 j =1
k = 1,.., s (6.9)
hk ≤ pk ≤ H k k = 1,..., s (6.10)
l ik ≤x ik ≤ Lik i ∈ E, k ∈ S (6.11)
l kj ≤y kj ≤ Lkj k ∈ S, j ∈ V (6.12)
x ik ≥ 0 i ∈ E, k ∈ S (6.13)
y kj ≥ 0 k ∈ S, j ∈ V (6.14)
v k ∈ {0,1} k ∈S (6.15)
350 Programação Linear e Fluxos em Redes
Nesse modelo encontramos as restrições de capacidade associadas aos arcos nas restrições (6.11) e (6.12). O Àuxo nos pontos
de armazenagem é controlado pelas restrições (6.8) e (6.9). A função-objetivo inclui os custos de armazenagem do produto.
Seja uma rede R com n vértices e m arcos, onde t diferentes produtos transitam com as seguintes variáveis:
ui { o vetor dos limites superiores para o Àuxo nos m arcos, de forma que uipq represente o limite superior do
Àuxo no arco (p, q).
u { o vetor do limite superior na soma de todas as commodities nos arcos da rede, de forma que upq represente
o limite superior do Àuxo de todos os produtos no arco (p, q).
ci { o vetor que representa o custo dos produtos i Àuírem pelos arcos, de forma que cipq represente o custo do
produto i Àuir pelo arco (p, q).
bi { o vetor dos fornecedores ou das demandas do produto i na rede, de forma que biq represente o fornecimento
(biq ! 0) ou a demanda (biq 0) do produto i no vértice q.
A { matriz de incidência vértice-arco.
xi { o vetor dos Àuxos dos produtos i na rede R.
Com as considerações anteriores é possível formular o problema como a seguir (Hu, 1963):
t
(PMMC) Minimizar z = ∑ c i x i
i =1
Sujeito a:
t
∑x ≤ u
i =1
i
Ax i = bi i = 1,.., t
0 ≤ xi ≤ ui i = 1,.., t
As variáveis xijkl, ykl e zk são variáveis primais do modelo. As variáveis vikl e ui são variáveis duais associadas a uma série
de Problemas de Transporte que resultam da localização dos depósitos nos vértices k e sua designação de serviço
para as regiões de consumo (ou seja, definindo as variáveis booleanas ykl e zk). O modelo corresponde ao modelo
abaixo:
Sujeito a:
∑xkl
ijkl = −S ij ∀i , j
∑x j
ijkl = Dil ykl ∀i, k, l
∑yk
kl =1 ∀l
v z k ≤ ∑ Dil ykl ≤ v
2k
2k
∀k
ilk
6.3
Modelos de Circulação de Fluxo
Os mais tradicionais problemas no contexto da otimização com modelos de circulação de Àuxo são:
O presente texto abordará alguns algoritmos clássicos, baseados na teoria dos grafos, para a solução dos problemas de
máximo Àuxo. Para o caso do Àuxo a custo mínimo será examinada uma variante derivada de uma especialização primal-
dual do algoritmo Simplex.
Associado aos dois tipos principais de problemas de otimização de Àuxos em redes (Àuxo máximo e Àuxo de custo mínimo)
reside um problema comum, que diz respeito a obter uma circulação de Àuxo viável para as condições de¿nidas na rede.
Quer no caso da otimização do volume de Àuxo, quer na situação de minimização de seus custos, o problema de encon-
trar a circulação de um Àuxo viável na rede preexiste.
9Conceitos básicos
Um Àuxo viável deve respeitar tanto as condições de capacidade dos arcos (ou, de fato, será incapaz de Àuir) como, no
caso de modelos lineares e conservativos, as restrições de conservação do valor do Àuxo em cada vértice. A primeira Lei
de Kirschoff é especialmente útil na determinação de Àuxos viáveis em redes capacitadas. Considerando uma rede em que
somente os vértices s (fonte) e t (sumidouro) possuem, respectivamente, oferta e demanda, a seguinte propriedade, também
denominada Primeira Lei de Kirschoff para o Àuxo, é veri¿cada.
1ª Lei de Kirschhoff
A soma dos Áuxos que entram em um vértice da rede é igual à soma dos Áuxos que saem.
Sem perda de generalidade, é possível considerar todos os vértices de uma rede como conservativos, com exceção dos vérti-
ces s e t. O fato decorre da possibilidade de representar eventuais demandas e ofertas de outros vértices da rede e diferentes
dos vértices s e t como associadas a esses vértices. Com o acréscimo de um vértice e dois arcos arti¿ciais, um arco ligando
o vértice arti¿cial ao vértice de oferta e um arco ligando o vértice arti¿cial ao vértice fonte, é possível transformar qualquer vér-
tice de demanda em vértice de passagem. Com raciocínio semelhante pode-se reduzir os vértices de demanda a vértices de
passagem, com auxílio do vértice sumidouro. A Figura 6.41 exempli¿ca as transformações. Observe-se que o arco arti¿cial que
incide sobre o vértice 1 obriga um Àuxo de entrada de 5 unidades. Do mesmo modo, o arco arti¿cial que incide sobre o vértice 4
obriga um Àuxo de saída de 9 unidades. O arco de equilíbrio acrescenta à rede o Àuxo de balanço de 12 unidades (7 + 5 = 9 + 3).
Fluxos em Redes 353
Arcos Arcos
artificiais artificiais Vértice
Vértice
artificial (5, 5, 5) (9, 9, 9) artificial
a 1 4 b
(5, 5, 5) (9, 9, 9)
5 9
1 4 s 2 5 t
7 3
s 2 5 t
3 6
Arco
artificial de equilíbrio (12, 12, 12)
3 6
(a) Rede com vértices de oferta e demanda (b) Rede equivalente conservativa
Na ¿gura, as três posições dos parênteses associados aos arcos arti¿ciais representam, respectivamente, o valor do limite
inferior do Àuxo no arco, o valor do Àuxo circulando no arco e o valor máximo do Àuxo. Na rede da Figura 6. 41(b) aplica-se a
primeira Lei de Kirschhoff:. A Figura 6.42 representa uma situação típica de Àuxo entre dois conjuntos de vértices X e Y, e pode
ser analisada através da aplicação da Primeira Lei de Kirschoff como abaixo:
x2
x3
2
X 7
x1
Y
3
x4
4
x5
5
6
Figura 6.42. Fluxo entre conjuntos de vértices
Sabendo que o conjunto dos vértice do grafo da Figura 6.42 é V = {x1 , x2 , x3 , x4 , x5}, e representando por f” um determinado
Àuxo entre subconjuntos de V, ou seja:
f ( X ,Y ) = f1 + f3 + f 4
f (Y , X ) = f2
354 Programação Linear e Fluxos em Redes
Então é possível enunciar a lei de conservação de Àuxo em um vértice genérico da rede como:
f ( x ,V ) = f (V, x ), ∀x ∈V
Exibir um Àuxo viável em uma rede é uma tarefa simples, no caso de arcos com limite mínimo de Àuxo igual a zero. Nessa
hipótese, o Àuxo nulo é uma solução trivial. Entretanto, nem sempre o Àuxo nulo é uma opção viável, como no caso da Figura
6.41. Dessa forma, o problema de exibir um Àuxo viável em uma rede genérica exige um algoritmo de solução. O algoritmo
que a seguir está baseado no princípio da conservação de Àuxo, e será sempre capaz de determinar, se existir, um Àuxo
viável em uma rede capacitada.
[ ]
De¿nindo a distância de f(i, j) ao intervalo lij , Lij como sendo:
⎧0, se l ij ≤ f ( i, j ) ≤ Lij
⎪
d ( i , j ) = ⎨l ij − f ( i , j ), se f ( i , j ) < l ij
⎪
⎩f ( i, j ) − Lij , se f ( i , j ) > L( i , j )
Seja d (f ) = ∑ d (i, j ).
( i, j ) ∈ A
Então, se d (f ) = 0, f é um Àuxo viável. Caso contrário, existe pelo menos um arco ( i , j ) ∈ A com d ( x , y ) > 0. Baseado nesse
fato, o algoritmo que a seguir vai buscar melhorar as condições de viabilidade dos Àuxos nos arcos ou provar que essa condição
não existe para qualquer que seja o Àuxo.
9Algoritmo de circulação
Passo 1: (Inicialização)
• Construir uma circulação f que satisfaça à equação de conservação em todos os nós da rede, ou seja, f(x, V) - f(V, x) = 0,
∀x ∈V . Pode-se utilizar a circulação f = 0 em qualquer caso. Vá para o passo 2.
[i , ξ ( j ) = min{ξ (i ), f (i , j ) − l (i , j )}]
−
ƒ O vértice y é alcançado e rotulado. Neste caso, modi¿car o Àuxo nos arcos do ciclo de x para y, formado pelos
vértices rotulados, da seguinte forma:
Ƈ Partindo de x, percorrer o ciclo subtraindo ξ (y ) em arcos reversos e somando ξ (y ) em arcos diretos. Ao
alcançar y, subtrair ξ (y ) de f ( x , y ) . Voltar ao passo 2.
Ƈ Se o nó y não puder ser alcançado e rotulado, não existe circulação viável. Fim.
[x +
,ξ ( y ) = l ( x , y ) − f ( x , y ) ]
e tentar alcançar x partindo de y, aplicando as mesmas regras apresentadas para o caso anterior.
Seja a rede da Figura 6.42(a) com um Àuxo inviável representado pelos valores entre parênteses. O objetivo é viabilizar, se
possível, o Àuxo entre os vértices da rede. Os valores entre colchetes representam os limites do Àuxo para cada arco [limite
inferior, limite superior]. O Àuxo indicado para o arco (2,3) viola o limite superior do arco, o que signi¿ca que o Àuxo da Figura
6.43(a) não é viável. Aplicando o algoritmo de rotulação a partir do vértice 1, considerado o vértice i, a rotulação obtida está
expressa na Figura 6.43(b).
356 Programação Linear e Fluxos em Redes
3 y [i +
,ξ ( y ) = 2 ]
[1,3] [2,5] [1,3] [2,5]
[y ]
−
3
(5) (5) ,ξ ( x ) = 2 (5) (5)
x 2
2 [0,3] (0) 4 (10) [0,3] (0) k (10)
3
(5) (5) (5) (5)
[1,6] [3,5] [1,6] [3,5]
1 i [x −
,ξ ( i ) = 2 ]
(10) (10)
(a) Rede com Àuxo inviável (b) Rede com Àuxo viável
Se o vértice y é alcançado e rotulado é porque existe um ciclo que inclui o arco (x, y), e as alterações indicadas no Àuxo produ-
zem um novo Àuxo conservativo que, adicionalmente, atende à equação:
Como ξ ( y ) > 0 , a cada ciclo encontrado o Àuxo aproxima-se de ξ (y ) unidades da situação de viabilidade nos arcos inviá-
veis, permanecendo viáveis os Àuxos em todos os arcos (i,j) do ciclo para os quais l ( i , j ) ≤ f ( i , j ) ≤ L( i , j ) .
9Conceitos básicos
Corte s-t:
Considerando a rede R, cujo grafo de substra- 4
to é G = (V, E) e ( X , X ) uma partição de V, tal
que X ∪ X = V e X ∩ X = ∅ , diz-se que
( X , X ) de¿ne um corte s-t em G = (V, E). A
Figura 6.45 exempli¿ca um corte s-t, em que
( X = {s,1,3,4}; X = {2,t } ) s 3 2 t
1. O valor do Àuxo máximo f 0* na rede s - t deve ser menor ou igual à capacidade líquida de qualquer corte s - t ou seja
f0* ≤ L( X , X ) − l ( X , X ) ∀ corte s-t
*
{
2. Todo Àuxo f * ∈ R m na rede s - t, tal que: f0 = mínimo L( X , X ) − l ( X , X ) é máximo.
cortes- t (X,X)
}
Grafo de aumento de Áuxo
Denomina-se por grafo de aumento de Àuxo ao grafo Gf = (V , E f ) que, possuindo somente arcos simples, é construído da
seguinte forma:
•( x , y ) ∈ E f se ( x , y ) ∈ E e f ( x , y ) < L( x , y )
•( y , x ) ∈ E f se ( y , x ) ∈ E e f ( x , y ) > l ( x , y )
Folga de um arco
Denomina-se folga do arco (x, y) aos seguintes valores:
•ξ ( x , y ) = L( x , y ) − f ( x , y ) se f ( x , y ) < L( x , y )
~
•ξ ( x , y ) = f ( x , y ) − l ( x , y ) se f ( x , y ) > l ( x , y )
~
Um arco (x, y) pode ter tanto ξ como ξ .
358 Programação Linear e Fluxos em Redes
f 0 +ξ +ξ +ξ f 0 +ξ
s 1 3 t
-ξ
+ξ
2
O teorema abaixo resume a importância da existência de um caminho de aumento de Àuxo em uma rede R:
Teorema
Dado um Áuxo f, se existir um caminho direto de s para t em um grafo Gf, então f não é Áuxo máximo.
[0,4] 3 [0,6]
3 1 4
[0,3] [0,2] 3
0 [0,2]
4 s 0
t 4
0
[0,5] [0,3] 1
1 2 3 [0,7]
[0,1] 1
Figura 6.47. Rede atravessada por um Àuxo f1=4
Fluxos em Redes 359
ξ = +1
ξ = +3 1 4
ξ = −3 ξ = −3
ξ = +2
s ξ = +2 t
ξ = +4 ξ = +6
ξ = +3
ξ = −1 ξ = −1
2 ξ = −1
3
Figura 6.48. Grafo de aumento de Àuxo associado à Rede da Figura 6.47
Com base no grafo da Figura 6.48 é possível identi¿car um caminho s - t de aumento de Àuxo na rede R, como exempli¿ca a
Figura 6.49 (a). O menor valor do aumento de Àuxo é igual a 2, sendo o valor possível do incremento como mostra a Figura
6.49 (b). Finalmente, a Figura 6.49(c) mostra o Àuxo resultante na rede.
1 4 1 4
ξ = +2 +2
s ξ = +4 t s +2 t
ξ = +3 +2
2 3 ξ = +6 2 3 +2
(a) Caminho direto s-t no grafo Gf (b) Aumento de Àuxo
[0,4] 3 [0,6]
3 1 4
[0,3] [0,2] 3
2 [0,2]
6 s 2
t 6
0
[0,5] [0,3] 3
3 2 3 [0,7]
[0,1] 1
(c) Rede atravessada por um Àuxo f2=6
Figuras 6.49. A identi¿cação de um Àuxo aumentante
Ford e Fulkerson (F&F) propuseram o algoritmo que a seguir para o cálculo do Àuxo máximo em redes, baseado na deter-
minação de uma sequência de Àuxos aumentantes na rede R.
360 Programação Linear e Fluxos em Redes
Início
Ler os dados da rede R = (G, F) onde G = (V, E) com L(i, j) e l(j, i) as capacidades máxima e mínima de
Àuxo para os arcos
Determinar um Àuxo f viável em R {*com o algoritmo de circulação, por exemplo*}
Rotular s com [-,f]
Enquanto existir vértice não examinado, faça
Início
Encontrar um vértice rotulado, porém não examinado i, efetuando o exame da forma que se segue:
Para um arco (i, j) se f(i, j) < L(i, j) e j não está rotulado então rotular j com [i+, [(j)]
onde [(j) = mín {[(j), L(i, j)-f(i, j) }
Para um arco (j, i) se f(j, i) > l(j, i) e j não está rotulado, então rotular j com [i-, [(j)]
onde [(j) = mín {[(i), f(j, i)-l(j, i)}
Se o vértice t for rotulado faça
Início
Iniciando em t, utilizar os rótulos para construir um caminho aumentante de Àuxo
Aumentar o Àuxo somando e subtraindo os Àuxos nos arcos do valor [(t), conforme
indicado nos rótulos, ou seja, se for [i+, [(j)], somar [(t), caso contrário, subtrair
Acrescentar [(j) ao valor do Àuxo corrente
Cancelar todos os rótulos, exceto o correspondente ao vértice s
Fim
Fim
O algoritmo Ford-Fulkerson termina quando não é mais possível rotular o vértice t. Nesse caso, os vértices rotulados e os
não rotulados de¿nem também um corte de Àuxo mínimo em R. O algoritmo pode apresentar um comportamento bastante
ine¿ciente ou mesmo não convergir, no caso das capacidades nos arcos possuírem valores irracionais. No caso da capa-
cidade dos arcos ser inteira, então a complexidade de F&F será O(mfmáx). A rede da Figura 6.50 mostra um caso em que o
algoritmo F&F torna-se extremamente ine¿ciente.
Fluxos em Redes 361
[0,10n] 1 [0,10n]
s [0,1] t
[0,10n] [0,10n]
2
Figura 6.50. Caso patológico para o algoritmo de Àuxo máximo F&F
É possível que o algoritmo escolha alternadamente (s, 1, 2, t) e (s, 2, 1, t) como caminhos de aumento de Àuxo. Nesse caso
serão necessários 2 x 10n operações de aumento de Àuxo para encontrar o Àuxo máximo. É claro que se a escolha do caminho
for (s, 2, t) e (s, 1, t) serão necessárias apenas duas iterações, contudo nada no algoritmo F&F básico garante que o caso
patológico será evitado. O problema do caso patológico reside no comprimento do caminho aumentante. Se o algoritmo realizar
o aumento de Àuxo no caminho que possui o menor número possível de arcos, então a complexidade de F&F será O(m2n)
(Dinitz, 1970). Isso pode ser obtido modi¿cando a sequência de rotulação e exame de modo que os vértices sejam examinados
na mesma ordem em que tiverem recebido seus rótulos. O Teorema de Edmonds e Karp calcula a ordem do número de aumen-
tos de Àuxo necessário para o término do algoritmo F&F quando a modi¿cação de rotulação e exame é introduzida.
Como para cada aumento de Àuxo são necessárias O(m) operações, a complexidade do algoritmo F&F modi¿cado é O(m2n).
Outro resultado bastante interessante diz respeito à complexidade do algoritmo ótimo para a solução do problema de Àuxo
máximo.
Considerando listados os caminhos diretos de s para t, e que com eles se forme uma matriz de incidência D = [dijk],
em que:
dijk = 1 se (i, j) pertence ao caminho k, e 0, caso contrário.
fk { o valor do Àuxo através do caminho k.
l = [lij] o vetor de capacidade.
Então é possível formular o problema de Àuxo máximo como:
362 Programação Linear e Fluxos em Redes
(PFM ) Maximizar F = ∑ f k
k
Sujeito a:
∑d
k
f ≤ l ij ( i, j ) ∈V
k k
ij
fk ≥ 0
Como este problema possui m restrições, uma associada a cada arco, então existirá uma solução básica viável para a qual
no máximo m dos fk Àuxos são estritamente positivos. As variáveis não nulas do problema representam aumentos de Àuxo.
Essa condição teórica sugere a possibilidade da existência de um algoritmo capaz de obter o Àuxo máximo em O(m2).
Γ − (p) Γ + (p)
s p t
O algoritmo MPM busca esgotar a capacidade dos vértices de R, em vez da capacidade de suas arestas. Ao fazer
circular o fluxo, o procedimento vai tentar esgotar os arcos que utilizar. Na medida em que os arcos vão sendo
saturados são eliminados das próximas iterações do algoritmo. O algoritmo para quando s ou t são eliminados da
lista de nós potencialmente ativos por terem todos os seus acessos saturados. O fluxograma da Figura 6.52 resume
os passos do MPM.
O algoritmo MPM termina quando não existir um caminho de aumento de Àuxo entre s e t. Há garantia de que tal condição
é alcançada quando o vértice s e t forem separados na atualização da capacidade dos arcos. A Figura 6.53 é base para a
exempli¿cação do funcionamento do algoritmo MPM.
Fluxos em Redes 363
Fluir de
Fluir p(k) unidades
s para t pordesaturação
fluxo de s para t
Eliminar
Eliminar os
os arcos saturados
arcos saturados Eliminar vérticessem
Eliminar vértices semsucessores
sucessores
Eliminar arcosadjacentes
Eliminar arcos adjacentesa vértices
a vértices
sem
semsucessores
sucessores
Atualizar
Atualizaraas
capacidade dosnaarcos na
capacidades
rede residual
Não s isolado
S Sim
FIM
FIM
de t?
eliminado?
1 [0,3] 4 [0,5] 7
[0,7] [0,3]
[0,4] [0,8]
[0,9] [0,3
s [0,3] 2 [0,5] 5 [0,3] t
[0,2]
[0,4] [0,5]
[0,6]
3 [0,3] 6
Passo 1: Obter o potencial dos vértices (menor valor entre o somatório das capacidades que entram ou que saem).
k s 1 2 3 4 5 6 7 t
P(k) 11 4 3 4 8 6 5 8 19
1 4 7
Fluir 3 unidades de Àuxo passando pelo vértice
2, esgotando os arcos que produziram o valor de
potencial gargalo (arcos de entrada). Observe-se
que a tentativa de fazer Àuir um Àuxo p(k) na rede (3) s (3) 2 (1) 5 (1) t (3)
Passo 1: Obter o potencial dos vértices (menor valor entre o somatório das capacidades que entram ou que saem).
k s 1 2 3 4 5 6 7 t
P(k) 8 4 0 4 3 5 3 8 16
Observa-se que o vértice 2, eliminado, possui potencial zero. O vértice de referência da iteração é 6, com potencial p(6) =
3. O vértice 4 também poderia ter sido escolhido.
Fluxos em Redes 365
1 4 7
Passo 2: Fluxo forçado
1 [0,3] 4 [0,5] 7
Passo 3: Eliminações, atualizações e regra de pa-
[0,7] [0,3]
rada
[0,4] [0,8]
[0,3
3
Figura 6.57. Segunda atualização dos arcos e capacidades
Passo 1: Obter o potencial dos vértices (menor valor entre o somatório das capacidades que entram ou que saem).
k s 1 2 3 4 5 6 7 t
P(k) 8 4 0 1 3 5 0 8 13
Passo 1: Obter o potencial dos vértices (menor valor entre o somatório das capacidades que entram ou que saem).
k s 1 2 3 4 5 6 7 t
P(k) 4 4 0 0 3 4 0 8 12
(3)
Fluir 3 unidades de Àuxo passando pelo 1 4 7
vértice 4 e esgotando os arcos que gera-
(3)
ram o valor de potencial gargalo (arcos
(3)
de entrada).
(3) s 5 t (3)
O Àuxo entre s e t passa a ser 10. Figura 6.60. Fluxo forçado pelo vértice 4
Fluxos em Redes 367
Passo 1: Obter o potencial dos vértices (menor valor entre o somatório das capacidades que entram ou que saem).
k s 1 2 3 4 5 6 7 t
P(k) 1 1 0 0 0 4 0 3 9
1 7
Fluir 1 unidade de Àuxo passando pelo (1) (1)
vértice 1 e esgotando os arcos que
geraram o valor de potencial gargalo (1)
(arcos de entrada). (1) s 5 t (1)
O Àuxo entre s e t passa a ser 11. Figura 6.62. Fluxo forçado pelo vértice 1
A análise de complexidade do algoritmo MPM pode ser feita dentro de cada etapa de cálculo. Como a cada iteração pelo
menos um vértice é eliminado (o de referência), a complexidade de determinação desse vértice é O(n2). A atualização da
capacidade dos arcos pode ser feita em uma lista circular, mantendo, para cada vértice, os arcos incidentes para o exterior.
368 Programação Linear e Fluxos em Redes
Assim, a complexidade dessa fase é O(n2). O problema possui m arcos, e cada um deles ¿cará saturado apenas uma vez,
sendo eliminado em seguida. A cada iteração, pelo menos um arco é saturado. Assim, o total das eliminações de arcos é,
no máximo, O(m). Portanto, cada iteração exige no máximo O(n2) operações. Como existe, no pior caso, a possibilidade do
exame de n-2 vértices, o MPM, nessa proposta de implementação, é O(n3).
Malhotra et al. (1978) MPM – Fluxo forçado em uma rede em camadas O(n3)
Goldberg & Tarjan (1987);(1988) 1. Highest Label 2. FIFO Algorithm 3. Lowest Label 1.O(n2m1;2) 2. O(n3) 3. nO(n2m)
⎛ n ⎞
Ahuja et al. (1989) Dynamic Trees and Scaling Factor O (mn log ⎜ 2 + logU ⎟
⎝ m ⎠
Goldfarb & Hao (1990); (1991) Simplex especializado O(nm) pivôs e O(n2m) em tempo.
⎛ n3 ⎞
Cheriyan et al. (1990) Incremental Excess-scaling O ⎜⎜ ⎟⎟
⎝ log n ⎠
King et al. (1992) Versão determinística do algoritmo de Cheriyan et al. (1990) O(nm + n2+İ)
Algoritmo baseado na melhoria do algoritmo de King et al. (1992)
Phillips & Westbrook (1993) O(mnlogm/nn+n2log2+İn)
usando a técnica de node kill game.
Goldberg & Rao (1997) Binary blocking Àow. O(min{m1/2,n2/3}mlog(n2/m)logU
1 [1, 7, 7] 4
[5, 4,10] [0, 5, 10] [1, 3, 12]
10 10
s [1, 6, 8] 2 [0, 5, 9] 5 [0, 2, 13] t
[0, 1, 7]
[0, 7, 15] [2, 1, 8]
[1, 9, 6]
3 [0, 10, 7] 6
Vértices Arcos
x12 x13 x25 x23 x46 x53 x56 x61
1 +1 +1 -1
2 -1 +1 +1
3 -1 -1 -1
4 +1
5 -1 +1 +1
6 -1 -1 +1
Figura 6.66. Matriz de incidência da ¿gura 6.65
Como anteriormente ressaltado, a matriz A = [aij ] é formada por entradas unitárias nas i-ésimas e j-ésimas posições de uma
coluna (associada a um arco i-j na Figura 6.65). Em razão dessa propriedade, podemos expressar A como uma soma vetorial
de vetores unitários es, da seguinte forma:
aij = ei 2 ej
Considerando T qualquer árvore do grafo de substrato da rede-exemplo, então T, por de¿nição, é um subgrafo conexo da
rede-exemplo com m vértices e m 2 1 arestas, que não contém ciclos. Levando em conta, ainda, que qualquer submatriz de
A, por exemplo AT, uma matriz m x (m 2 1) de uma árvore do exemplo da Figura 6.65, então se m ! 2, essa árvore possui
pelo menos um vértice terminal (um vértice com apenas arcos incidentes). Nesse caso, a k-ésima linha de AT conterá apenas
uma entrada unitária, conforme a Figura 6.68 e a matriz AT da Figura 6.67 esclarecem.
2 5
Vértices Arcos
x12 x25 x23 x34 x46
1 +1 (oferta) 1 6
2 -1 +1 +1
3 -1 +1
4 -1 +1
5 -1 (demanda) 3 4
6 -1 (demanda)
Figura 6.67. Uma submatriz AT de A Figura 6.68. Uma árvore na rede exemplo
É possível constatar que a matriz AT da Figura 6.67 pode ser triangularizada através de permutações entre suas linhas
e colunas. Como se observa, em relação à solução do sistema de equações decorrentes da matriz de restrição, uma
das linhas da matriz é redundante. Com a remoção de uma linha de AT, o conjunto de variáveis (arcos) que a compõe
formará uma base. Caso deseje-se trabalhar com uma matriz m x m, a alternativa é introduzir uma variável artificial
para aumentar em uma unidade o rank de A. A matriz AT triangularizada e acrescida da variável artificial está exibida
na Figura 6.69.
Fluxos em Redes 371
Vértices Arcos
x12 x23 x34 x46 x56 xa
1 +1
2 -1 +1
3 -1 +1
4 -1 +1
5 +1
6 -1 -1 1
Que corresponde à árvore no grafo de substrato da rede do exemplo, representada na Figura 6.70.
2 5
1 6
(Artificial)
3 4
Essa associação entre as árvores no grafo substrato da rede e as soluções básicas do problema pode ser formalizada pelo
seguinte teorema:
Teorema
Um conjunto de m colunas linearmente independentes da matriz de incidência vértice x arco de uma
rede de Áuxo corresponde a uma árvore no grafo G = (V, E), substrato da rede.
Os exemplos anteriormente desenvolvidos de aplicação do Simplex para o cálculo de Àuxos em rede em situações especí¿-
cas criaram o suporte que permite adaptar os três passos básicos do algoritmo Simplex para o cálculo de problemas de Àuxo
formulado no padrão estrito, quais sejam:
372 Programação Linear e Fluxos em Redes
Exemplo numérico
Determinar o fluxo de menor custo da rede
2
da Figura 6.71 que atenda às condições de 3 4
demanda e oferta de fluxo nela represen-
tadas. A rede está em equilíbrio com 10 1 (c12=2) 2 (c23=3) 3
unidades de fluxo chegando à rede, e 10
deixando a rede. Os custos (cij) por unidade
de fluxo em cada arco são representados ao (c14=5) (c24=1) (c54=1) (c26=4) (c63=1)
lado dos arcos. Considera-se que os arcos
possuem capacidade de fluxo maior que 10
unidades, e por isso deixam de ser repre- 4 5 6
sentadas na rede. (c45=2) (c56=2)
O Àuxo na rede da Figura 6.71 pode ser repre- 2 4
5
sentado através de um sistema de equações do
Figura 6.71. Rede do exemplo numérico
tipo Ax = b, onde A = [aij] é a matriz de restrição
de Àuxo e b = [bi] representa o termo indepen-
dente para as restrições de equilíbrio dos vérti-
ces da rede.
2
3 4
1 2 x23=2 3
Xa=0
x14=3 x63=2
4 x45=1 5 x56=6 6
Figura 6.76. A circulação viável
2 4 associada à base
5
374 Programação Linear e Fluxos em Redes
Contudo, a nem toda base (árvore em R) podemos associar uma circulação viável. Um caminho natural para obter uma
base viável inicial seria imaginar o uso de m variáveis arti¿ciais para responder pelas restrições de Àuxo real, o que auto-
maticamente viabilizaria o Àuxo nulo para os demais arcos da rede. Cada variável arti¿cial, nesse caso, estaria associada a
uma linha da matriz de restrições, assumindo o valor r ei, conforme o sinal da componente bi. Com raciocínio semelhante,
imaginando utilizar o método Simplex, como forma e¿ciente de eliminar essas variáveis arti¿ciais, seria dividir o esquema
de solução em duas fases. Na primeira o método trataria de remover as variáveis arti¿ciais da base, alcançando uma base
viável para o problema. Na segunda fase, a otimização seria processada como na segunda fase do método das duas fases
do algoritmo Simplex. O acréscimo das variáveis arti¿ciais está associado à inclusão de um vértice arti¿cial na rede (vértice
7 na última linha), ou seja, a mais uma linha na matriz de restrições, como mostra o quadro da Figura 6.77.
(c17=1)
A base arti¿cial corresponde aos arcos traceja- b1=3 b2=2 (c27=1) b3=-4
dos na Figura 6.78. 1 (c12=0) 2 (c23=0) 3
(c73=1)
(c14=0) (c24=0) (c54=0) (c26=0) (c63=0)
Nota-se que para a primeira fase do método 7
B7=0
os arcos arti¿ciais receberam um custo unitário (c76=1)
igual a 1, enquanto os arcos reais foram quan- 4 (c45=0) 5 (c56=2) 6
ti¿cados em 0. b4=-2 b5=5 b6=-4
(c74=1) (c57=1)
Considerando a primeira fase do método já concluída, o passo relativo ao cálculo dos custos reduzidos — computação dos
z ij − c ij — associados às variáveis não básicas pode ser realizado de duas maneiras:
ao novo arco e subtraem-se os de mesmo sentido. Para exempli¿car o processo, serão calculados os custos reduzidos dos
arcos 2-6 e 1-2, arcos não básicos.
4 5 6
(c45=2) (c56=2)
b4=-2 b5=5 b6=-4
Figura 6.79. Cálculo de z 26 − c 26
(-)
z12 − c12 = − 2 − 3 + 1 + 2 + 2 + 5 = +5, (c14=5)
conforme Figura 6.80. (c63=1)
4 5 6
(c45=2) (c56=2)
b4=-2 b5=5 b6=-4
Figura 6.80. Cálculo de z12 − c12
e o vetor w do exemplo pode ser calculado através de sua equação primal, qual seja:
376 Programação Linear e Fluxos em Redes
⎡ +1 0 0 0 0 0⎤
⎢
⎢ −1 +1 0 0 0 0⎥⎥
⎢ 0 −1 +1 0 0 0⎥
[w 1 , w 4 , w 5 , w 6 , w 2 , w 3 ] ⎢ ⎥ = [5, 2, 2, 1, 3, 0]
⎢ 0 0 −1 +1 0 0⎥
⎢ 0 0 0 0 +1 0⎥
⎢ ⎥
⎣⎢ 0 0 0 −1 −1 1⎦⎥
Que produz:
w 1 − w 4 = 5; w 4 − w 5 = 2; w 5 − w 6 = 2; w 6 − w 3 = 1; w 2 − w 3 = 3; w 3 = 0
E, ¿nalmente:
z 26 − c 26 = w 2 − w 6 − c 26 = 3 − 1 − 4 = −2
w 1 = 10; w 2 = 3; w 3 = 0; w 4 = 5; w 5 = 3; w 6 = 1 .
z12 − c12 = w 1 − w 2 − c12 = 10 − 3 − 2 = 5
O que conduz a:
Como existe arco (i, j), tal que zij _ cij ! 0, a base corrente
não é ótima. Como z12 _ c12 é o maior dos custos reduzi- 2
dos (solicita-se ao leitor veri¿car os demais), a variável 3 4
x12 deverá entrar na base. Com a entrada de x12, um 1 Δ 2 2+Δ 3 Artificial
ciclo é formado na árvore induzida em R. Para que uma
nova base seja formada, é necessário que um dos arcos (-) Sentido
do ciclo seja removido e uma nova árvore seja constitu- 3-Δ Negativo 2-Δ
ída. O critério de retirada do arco estará associado ao
crescimento no Àuxo do arco que entra. Chamando por 4 1-Δ 5 6-Δ 6
' o valor do Àuxo no arco que entra na base, na medida
em que ' crescer, o Àuxo nos arcos contrários ao senti- 2 4
5
do vai diminuir no mesmo valor. A Figura 6.81 mostra o
efeito do crescimento de '. O primeiro arco que anula
Figura 6.81. Identi¿cação da variável que sai da base
o Àuxo é o arco 4-5 e ' = 1. A variável x45 deve deixar
a base.
A partir da entrada na base de uma nova variável, o Àuxo é atualizado conforme mostra a Figura 6.81, chegando-se à so-
lução: x14 = 2; x12 = 1; x56 = 5; x63 = 1; x23 = 3 e xa = 0, que é uma circulação viável, como observamos na Figura 6.82, a um
custo de 32 unidades.
Fluxos em Redes 377
2
3 4
1 x12=1 2 x23=3 3
Xa=0
4 5 x56=5 6
2 4
5
Figura 6.82. Identi¿cação da variável que sai da base
Recalcula-se os valores dos zij _ cij. Nesse caso, z24 _ c24 = _ 2 _ 1 + 5 = 2. A variável x24 é candidata para entrar na base. O
ciclo que se forma está expresso na Figura 6.83. Nesse caso, ' = 2 e a variável x14 saem da base. O Àuxo no arco 1-4 é
anulado (a variável passa a ser não básica). A solução para o Àuxo passa a ser: x24 = 2; x12 = 3; x56 = 5; x63 = 1; x23 = 3 e xa = 0,
a um custo de 28 unidades. Nessa ocasião, todos os zij _ cij 0 e o Àuxo é ótimo.
2
3 4
x12=3
1 x12=1 2 x23=3 3
(-)
x14=0 x14=2 x24=2 x63=1
4 5 x56=5 6
2 4
5
6.4
Exercícios propostos
1. Construir esquematicamente a rede de¿nida no quadro, indicando uma solução viável para um Àuxo e seu custo.
2. Determinar a matriz de incidência (vértice x aresta) associada à rede.
3. Criar um ponto de demanda ¿ctício, com os respectivos arcos associados, de tal forma que a oferta total seja igual à
demanda total, construindo o esquema grá¿co da rede assim formada.
4. Reformular o problema de Àuxo para que somente exista um único ponto de oferta e um único ponto de demanda.
2 Fluxo Máximo 1
☺
Em uma emergência, a cidade de Angra dos Reis, vértice de número 1 do mapa da Figura 6.84, pode ser servida pela rede
de transporte, conforme resumido na ¿gura. Tratam-se de rotas terrestres, aéreas e marítimas. As cidades mais escuras
podem ser destino ¿nal da evacuação, desde que a capacidade máxima de atendimento anotada no arco mais espesso da
respectiva cidade não seja ultrapassada. As cidades mais escuras podem ser utilizadas também como cidades de passa-
gem. A capacidade anotada nos arcos refere-se ao Àuxo diário, e sua escala é de 103 pessoas. Programar o Àuxo máximo de
evacuação da cidade de Angra dos Reis. Sabendo-se que no dia 1o a cidade possui 75.000 pessoas para evacuar, quantos
dias serão necessários para a evacuação completa da cidade?
Fluxos em Redes 379
(11)
(4)
Resende
Volta
(10) 16 (2)
Redonda
Cruzeiro (2) 14
(4) (3) Piraí (4)
(2) 9 (5)
11 (4) 15 (5)
(4) 10 (9)
(7) Bananal 12 Rio Claro
17 Nova Iguaçu
(2) 8 Guaratinguetá (10)
(1) (3) (9)
(6) 7
(2) Angra dos Reis 1 3 (9)
Taubaté 13 (10)
Mangaratiba
(10) 18 Guaratiba
(4) (8) (16) (10) (9) 25
Paranaibuna 6 4 Paraty
2
(7) (10)
(5) Ilha Grande
5 Ubatuba
(12)
3 Fluxo Máximo 2
☺
s (1,4) 4 (0,4) 5 (0,8) 6
através do:
(1,3) (0,11)
(0,5) 9 10 (0,12) 11
13 (2,8) t
4 O Jogo do Coringas
Uma grande parte dos torcedores do Coringas, um time de futebol, vivem em São Paulo e desejam assistir a uma partida-chave
de seu time, que será realizada em Natal, Rio Grande do Norte. Os torcedores, todos trabalhadores ocupados, desejam sair
no próprio dia do jogo, chegando a Natal pouco antes das 19 horas (a partida será as 21h30). Visando reduzir as despesas,
os torcedores estão optando pelo voo mais barato, mesmo que isso implique mais demora, conexões, deslocamentos aéreos
em circuito etc. A companhia escolhida foi a Manysteps Airlines. O quadro de voos da empresa está resumido na Tabela 6.3.
Cento e cinquenta torcedores resolveram se reunir para comprar suas passagens em sociedade, e conseguiram da Manys-
teps 50% de desconto nos trechos (também denominadas pernas de voo) que passam em Brasília (chegando ou partindo
da cidade). Sabendo-se que os torcedores vão ratear a despesa das 150 passagens de forma uniforme, independentemente
do esquema de voo que caiba a cada um, formular o problema de minimizar a despesa total de deslocamento do grupo de
torcedores. Um esquema de voo entre São Paulo e Natal é válido se, além de chegar antes das 19 horas:
Não possuir mais que cinco pernas (ou trechos entre cidades).
Os tempos de conexão (troca de voos) programados não podem ser menores do que uma hora. Exempli¿cando: Não é
possível compor o voo 501, que chega a Recife às 17 horas, com o voo 595 que sai de Recife para Natal às 17h30, uma vez
que o tempo de conexão seria de apenas 30 minutos.
Os voos possuem a capacidade de 200 lugares e as passagens reservadas não podem ser mais vendidas ao grupo de
torcedores.
A produção de soja do Rio Grande do Sul se realiza principalmente nas regiões de Passo Fundo e Cruz Alta, alcançando
valores da ordem de 24 e 36 centenas de milhares de toneladas ao ano. Podemos considerar que praticamente toda a
produção é exportada através do porto de Rio Grande, sob a forma dos derivados farelo e óleo. As principais unidades de
processamento estão instaladas na área de Porto Alegre ou próximas ao porto de Rio Grande, com capacidades anuais de
50 e 16 centenas de milhares de toneladas.
As cidades de Passo Fundo e Cruz Alta distanciam-se de Porto Alegre em, respectivamente, 240 e 360 quilômetros. Essas
três cidades estão, por sua vez, a distâncias do Rio Grande de 600, 500 e 300 quilômetros, respectivamente. Todo o trans-
porte entre Porto Alegre e Rio Grande é realizado pela modalidade hidroviária, estando limitado a 50 centenas de milhares
de toneladas por ano; as demais ligações são feitas por transporte rodoviário, com um custo, por quilômetro, duas vezes
maior que o hidroviário. Assumindo o custo de transporte rodoviário diretamente proporcional à distância (uma unidade mo-
netária por quilômetro) e que o preço do produto embarcado no porto seja de 300, responda às seguintes questões:
1. Formule o problema de programação linear que calcula os Àuxos de exportação a custo mínimo.
2. Mostre que esse problema pode ser classi¿cado como um problema de Àuxo em redes capacitadas.
3. Determine a solução ótima do problema (por qualquer método).
4. Quais serão os preços recebidos pelos produtores de soja nas diversas regiões produtivas?
6 O Problema da Amizade
Um grupo de discussão via internet está interessado em formar pares para debater assuntos de interesse mútuo. Para cada
indivíduo i é conhecido o conjunto das ni pessoas que lhe são compatíveis, ni = {1, ..., m}.
1. Formule o problema de maximizar a formação de duplas compatíveis através de um modelo de Àuxo em redes.
2. O que seria alterado no modelo anterior se, além da compatibilidade, fosse exigido que as duplas fossem formadas
por um homem e uma mulher?
382 Programação Linear e Fluxos em Redes
São conhecidos os custos unitários cij para a expansão dos arcos que ligam os vértices e os vértices de chaveamento. São
ainda conhecidos os custos para o aumento unitário do Àuxo em um certo vértice de chaveamento vj, j = 3, 4. Sabendo-se
que a demanda prevista entre os vértices i e j será fij, formular o problema para encontrar a expansão que minimize o custo
de operação da rede.
A BigShow é uma grande casa de eventos e deseja testar seu sistema de evacuação em caso de incêndio. O prédio foi
construído visando evitar a saída das pessoas sem o pagamento de suas comandas (contas de despesa), e possui uma
entrada/saída e duas portas de emergência, conforme descritas na planta da Figura 6.87. Existem diferentes áreas para
o público, áreas comerciais, o palco e banheiros. A distribuição da ocupação das áreas da BigShow está representada na
Figura 6.87. A Figura 6.88 sugere um modelo simpli¿cado para a representação das áreas de acesso, corredores, rampas,
acessos e portas. O Àuxo é contabilizado em pessoas por minuto. A direção e a distribuição da saída das pessoas em cada
área de ocupação é uma questão a ser analisada no próprio processo de solução. Sabe-se, todavia, que em alguns pontos
de possível encontro de Àuxos de pessoas, existe uma redução na capacidade de escoamento, como esclarecido na Figura
6.88. A capacidade máxima do salão da BigShow é de 2.180 pessoas. Qual será o tempo mínimo necessário para a evacu-
ação da casa de eventos? Os pressupostos do Àuxo de evacuação encontrado são seguros no sentido de permitirem que a
solução seja espontaneamente adotada na prática?
Fluxos em Redes 383
Saídas
400 450 400 400
800 150 400 350
9 Sistema de Vigilância
Uma empresa está instalando um sistema de monitoramento por câmeras em um prédio. Os pontos monitorados estão re-
presentados nos vértices do grafo da Figura 6.89. A entrada do sistema ocorre no vértice de acesso. Cada câmara necessita
de um ¿o de ligação individual que será lançado a partir do ponto de acesso até alcançar a câmara em uso. As arestas do
grafo representam os eletrodutos existentes no prédio. Os ¿os devem ser lançados dentro dos eletrodutos. A capacidade de
cada tramo de eletroduto corresponde ao número de ¿os que podem atravessar o eletroduto. Projetar a rede mais econômi-
ca de ligação das câmaras do sistema a partir do ponto de acesso, respeitando a capacidade dos eletrodutos.
384 Programação Linear e Fluxos em Redes
Uma cidade pratica uma estratégia especial para aumentar a capacidade de sua rede de metrô no horário do retorno para
casa, após o expediente de trabalho. Nesse horário, a rede passa a ser constituída por estações que somente recebem
passageiros (somente é permitido o embarque nos vagões), e estações que somente os entregam (somente é permitido o
desembarque dos vagões). Os vértices circulares da Figura 6.90 representam as estações de embarque no sistema, en-
quanto os vértices retangulares representam as estações de desembarque. A rede é constituída em linha única e direcionada
(transitando em sentido anti-horário) nos três grandes anéis da linha de metrô. As linhas mais ¿nas possuem sentido duplo,
permitindo a circulação dos trens nas duas direções e com capacidades independentes. A capacidade de Àuxo das linhas do
metrô entre os diferentes tipos de vértices da rede no período do planejamento é esclarecida ao lado da Figura 6.90. Somen-
te nas estações que ligam diferentes anéis ou conectam os anéis e as linhas de duplo sentido é permitido aos passageiros
o transbordo entre diferentes trens. Esses vértices são assinalados por setas na Figura 6.90.
Fluxos em Redes 385
2.000 pessoas
6.000 pessoas
4.000 pessoas
Desconsiderando o caminho desejado pelas pessoas na rede, calcular o número máximo teórico de pessoas que a rede
poderia transportar no período do funcionamento especial.
386 Programação Linear e Fluxos em Redes
Referências BibliográÀcas
Ahuja, R. K. & Orlin, J. B. (1989). A fast simple algorithm for the maximum Àow problem. Operations Research 37:748-59
Ahuja, R. K.; Orlin, J. B. & Tarjan, R. E. (1989). Improved time bounds for the maximum Àow problem. SIAM Journal on
Computation 18:939-54.
Ahuja, R. K. Magnanti, T. L. & Orlin, J. B. (1991). Some recent advances in network Àows. SIAM Review 33:175-219.
Alon, N. (1990). Generating Pseudo-Randon Permutations and Maximum Flow Algorithms. Information Processing Letters
35:201-204.
Cheriyan, J. & Hagerup, T. (1989). A Randomized Maximum-Flow Algorithm. In Proceedings IEEE FOCS,118-23.
Cheriyan, J.; Hagerup, T. & Mehlhorn, K. (1990). Can a maximum Àow be computed in O(nm) time" In Proceedings 17th
International Colloquium on Automata, Languages and Programming. Lecture Notes in Computers Science 443, Springer-
Verlag, 235-48.
Dantzig, G. (1951). Application of the simplex method to a transportation problem. In T. C. Koopmans editor, Activity Analysis
and Production and Allocation, Wiley, Nova York, Chapter XXIII, 359-73.
Dinitz, E. A. (1970). Algorithm for solution of a problem of maximum Àow in a network with power estimation. Soviet Mathe-
matics. Doklady 11:1277-80.
Dinitiz, E. A. (1973). Metod Porazryadnogo sokrashcheniya nevyazok I transportnye zadachi (excess scaling and transporta-
tion problems). In Issledovaniya po Diskretnoi Matheatike (Nauka, Moskva).
Edmonds, J. & Karp, R. M. (1972). Theoretical improvements in algorithmic ef¿ciency for network Àow problems. Journal of
the ACM 19(2):248-64.
Ford, L. R. & Fulkerson, D. R. (1956). Maximal Àow through a network. Canadian Journal of Mathematics 8:399-404.
Gabow, H. N. (1985). Scaling algorithms for network problems. Journal of Computer and System Sciences 31:148-68.
Galil, Z. & Naamad, A. (1980). An O(|E| |V|Iog2V) algorithm for the maximal Àow problem. Journal of Computer and System
Sciences 21(2):203-217.
Goldberg, A. V. (1998). Recent Developments in Maximum Flow Algorithms. Lecture Notes in Computer Science, 1432:1-10.
Goldberg, A. V. & Rao, S. Cherkassky, B. V. (1977). Algorithm for Construction of Maximal Flows in Networks with Complexity
of O (V 2 E ) Operations. Mathematical Methods of Solution of Economical Problems 7:112-25 (In Russian).
Goldberg, A. V. & Tarjan, R. E. (1997). Beyond the Flow Decomposition Barrier. In Proceedings 38th IEEE Annual Sympo-
sium on Foundations of Computers Science, 2-11.
Goldberg, A. V. & Tarjan, R. E. (1986). A new approach to the maximum Àow problem. In Annual ACM Symposium on Theory
of Computing, Proceedings of the 18th Annual ACM Symposium on Theory of Computing, 136-46.
Goldberg, A. V. & Tarjan, R. E. (1987).Solving Minimum Cost Flow Problem by Sucessive Approximation, In Annual ACM
Symposium on Theory of Computing, Proceedings of the 19th annual ACM symposium on Theory of Computing, 7-18.
Goldberg, A. V. & Tarjan, R. E. (1988). A New Approach to the Maximum Flow Problem. Journal of the ACM 35(4):921-40.
Goldfarb, D., J. Hao. (1990). A Primal Simplex Algorithm that Solves the Maximum Flow Problem in at Most nm Pivots and
O(n2m) Time. Mathematic Programming 47:353-65.
Fluxos em Redes 387
Goldfarb, D., J. Hao. (1991). On Strongly Polynomial Variants of the Network Simplex Algorithm for the Maximum Flow
Problems. Operations Research Letters 10:383-87.
Goldfarb, D. & W. Chen (1997). On strongly polynomial dual algorithms for the maximum Àow problem. Special issue of
Mathematical Programming, Ser. B 78(2):159-68.
Hochbaum, D. S. (2008). The PseudoÀow Algorithm: A New Algorithm for the Maximum-Flow Problem. Operations Research
56(4):992-1009.
Hu, T. C. (1963). Multi-Commodity Network Flows. Operations Research 11(3):344-60.
Karzanov, V. A. (1974). Determining the maximal Àow in a network by the method of preÀows. Soviet Mathematics. Doklady
15:434-7.
King, V., Rao. S. & Tarjan, R. (1992). A Fast Deterministic Maximum Flow Algorithm. In Proceedings 3rd ACM-SIAM Syposium
on Discrete Algorithms,157-64.
Malhotra, V. M., Pramodh-Kumar, & Maheshwari, S. N. (1978). An O(V3) algorithm for ¿nding maximum Àows in networks.
Information processing Letters 7:277-8.
Oi, R. E. (2001). Unique Maximum Matching Algorithms. Journal of Algorithms 40(2):159-83.
Orlin, J. B. (2012). Max Flows in O(nm) Time, or Better, Sloan School of Management and Operations Research Center.
Massachusetts Institute of Technology, Cambridge, Massachusetts 02139. Disponível em:
http://jorlin.scripts.mit.edu/docs/papersfolder/O%28nm%29MaxFlow.pdf#page=18&zoom=auto,0,119. Acesso em junho de
2014.
Phillips, S. & Westbrook, J. (1993). Online Load Balancing and Network Flow. In Proceedings 25th Annual ACM Symposium
on Theory of Computing, 402-11.
Picard, C. F. (1972). Graphes et Questionnaires. Collection Programmation, v.2. Edt Gauthier-Villars.
Plotkin. S. A. & Tardos É. (1990). Improved Dual Network Simplex. SODA ‘90 Proceedings of the First Annual ACM – SIAM
Symposium on Discrete algorithms. 367-76.
Shiloach, Y. & Vishkin, U. (1982). An O(n2 log(n)) parallel max-Àow algorithm. Journal algorithms 3:128-46.
Sleator, D. D. & Tarjan, R. E. (1983). A data Structure for dynamic trees. Journal of Computers and System Sciences 16:362-91.
Capítulo 7
Métodos de Decomposição
Objetivos
O presente capítulo objetiva:
7.1
Introdução
O presente capítulo explora a estratégia de dividir para conquistar, apresentando os métodos de decomposição em programa-
ção matemática. As técnicas aqui descritas são particularmente aplicáveis a problemas que se apresentam com função-objetivo
separável, equações independentes associadas a subconjuntos disjuntos de variáveis, e algumas equações de acoplamento,
associadas a todo o conjunto de variáveis do sistema. Em vista da importância dessa estrutura parcialmente descentralizada no
planejamento econômico, apresentamos os principais algoritmos de decomposição em programação matemática com interpre-
tação econômica. O capítulo examina, em especial, o papel da convexidade e da linearização nas condições de convergência,
fazendo uma análise comparativa do tempo de computação e da complexidade da programação de cada estratégia de decom-
posição, além de indicar a possível ocorrência de propriedades de interesse para uma efetiva descentralização da informação.
As Figuras 7.1 e 7.2 ilustram, para o caso da programação linear, foco de interesse neste livro, as estruturas de matrizes
particularmente propícias ao uso dos métodos de decomposição. No caso da Figura 7.1, chamada estrutura bloco-angular,
390 Programação Linear e Fluxos em Redes
existe um conjunto de algumas restrições de acoplamento que ligam todas as variáveis do problema, enquanto se observa a
maioria das demais restrições separadas em blocos completamente independentes, sugerindo cálculos de forma separada.
As restrições de acoplamento complicam a separação do problema, sendo indicadas para algum tipo de tratamento especial,
que é objeto de estudo neste capítulo.
A Figura 7.2, chamada estrutura bloco-angular dual, corresponde à matriz do problema dual de um primal que se apresente sob
a forma da Figura 7.1. Observa-se que no caso ilustrado em 7.2 são as variáveis de acoplamento que di¿cultam a computação
distribuída do problema, sugerindo alguma técnica que trate essas variáveis de forma a se tirar proveito da separabilidade
inerente ao problema. Por exemplo, a ¿xação temporária dessas variáveis complicantes permite a divisão do problema em
pedaços associados aos blocos independentes, que podem ser resolvidos de forma separada. Em complemento, ¿ca para as
técnicas a estudar neste capítulo a tarefa de atualização dos valores das variáveis de acoplamento para que se possa levar a
um bom termo o cálculo distribuído do problema global. Como a resolução de qualquer modelo de programação linear passa
necessariamente pela solução de ambos os problemas primal e dual, já se pode avançar a dualidade inerente ao uso das técni-
cas de decomposição. Antes de apresentar formalmente as técnicas principais de manipulação desses problemas, este capítulo
discute, na próxima seção, o papel da decomposição na descentralização da informação, e apresenta, na seção subsequente,
um exemplo ilustrativo dos subproblemas de programação linear que se pode resolver de forma distribuída.
7.2
Decomposição e Descentralização da Informação
A resolução de um problema por decomposição se aplica ao modelo de um sistema composto por subsistemas autônomos,
mas que possuem alguma interdependência entre seus elementos. O esquema geral de cálculo é ilustrado na Figura 7.3,
que exibe dois níveis de informação e processamento de dados. No nível inferior, o problema global é particionado em
diversos subproblemas independentes, com parâmetros estabelecidos no nível superior, mas com muita informação conhe-
cida apenas localmente. No nível superior, resolve-se um problema mestre que recebe informação parcial dos subsistemas
(subproblemas) e que busca parâmetros adequados de coordenação.
xParâmetros de coordenação
Há dois esquemas fundamentais para se estabelecer os parâmetros de coordenação. Na coordenação pelos preços, o pro-
grama mestre determina valores para as variáveis duais associadas às restrições de acoplamento ilustradas na Figura 7.1.
Na coordenação pelas quotas, o programa mestre determina valores para as variáveis de acoplamento ilustradas na Figura
7.2. Em ambos os esquemas (preços ou quotas), os valores das variáveis determinadas pelo programa mestre se tornam
os parâmetros de coordenação dos subproblemas. O procedimento se repete em diversos ciclos de comunicação entre o
problema mestre e os subproblemas, até que o programa mestre tenha informação su¿ciente para garantir a convergência
para a solução ótima do problema global.
Sob o ponto de vista computacional, todos os cálculos, tanto do nível superior como do nível inferior, podem ser realiza-
dos em um único computador, no mesmo espírito de todos os algoritmos até aqui estudados neste livro. Nesse caso,
toda a informação fica contida nesse computador, e a única vantagem do método de decomposição está em dividir um
problema de grande porte em diversos problemas menores. O computador resolve o programa mestre e, com base
nas variáveis calculadas no escopo do nível superior, computa sequencialmente cada um dos subproblemas ilustrados
na Figura 7.1.
A possibilidade de computação distribuída emerge como outra vantagem dos métodos de decomposição. Nesse caso, se
explora deliberadamente o fato de que o problema se refere a um sistema composto por um aglomerado de subsistemas
autônomos com alguma interdependência. Esses subsistemas podem ser divisões de uma empresa, ou usinas de açúcar
organizadas em cooperativa, tal como se exempli¿ca na próxima subseção deste capítulo. Os próprios subsistemas pos-
suem seus computadores e tomam decisão em seu âmbito, havendo naturalmente descentralização da informação. Esse é
o enfoque que se adota no atual capítulo, imaginando que o problema mestre da Figura 7.3 seja resolvido num computador
central que se comunica com os computadores de todos os subsistemas, mas que possui apenas a informação estritamente
necessária para a tarefa de coordenação. Por seu turno, os subproblemas do nível inferior da Figura 7.3 são resolvidos de
392 Programação Linear e Fluxos em Redes
forma independente, paralela, e em diferentes locais. Os computadores dos subsistemas não carecem de comunicação
entre si, e cada subsistema usa estritamente a informação que lhe é pertinente.
PROBLEMA MESTRE
Parâmetros de coordenação
SUBPROBLEMA
1
SUBPROBLEMA
2
... SUBPROBLEMA
R
Esse esquema de divisão de funções e de repartição da informação transcende o escopo dos problemas decomponíveis
em programação matemática, objeto deste capítulo. Observa-se que existe uma literatura bastante vasta que se refere aos
temas de descentralização de decisão ou de decomposição-coordenação. Essa literatura, e a própria prática subsequente,
muitas vezes ultrapassa o quadro da programação matemática, ou utiliza conceitos diferentes para estudar controle de
sistemas complexos. Além disso, essa literatura agrupa diversas disciplinas básicas, como a teoria econômica, a teoria de
decisão em administração, a automática e a análise de sistemas. Trata-se de um conjunto de contribuições teóricas que
discute questões que aqui são omitidas ou que se aborda apenas parcialmente: pode-se citar a análise multicritério, a teoria
dos jogos, a teoria das equipes, os sistemas multiagente, a modelagem em níveis hierárquicos e a agregação.
Mais precisamente, na apresentação deste capítulo, a existência de diversos critérios locais, a análise das relações de
cooperação (ou competição) e a redução de informação ao nível da coordenação somente são abordadas através de
interpretação econômica de métodos de decomposição em programação matemática. Nesse quadro é necessário admitir
a existência de um critério global, e se limita ao estudo dos problemas para os quais um procedimento descentralizado
pode gerar as mesmas soluções que um procedimento centralizado. Trata-se evidentemente de uma abordagem ideal
para se estudar os aspectos da descentralização e de hierarquia num sistema socioeconômico: a descentralização é
possível sem nenhuma perda de e¿ciência: no ótimo existe um acordo perfeito entre os critérios individuais (locais) e o
critério social (global).
Neste capítulo se distingue dois eixos principais de caracterização dos diversos esquemas de descentralização da informação
que podem ser abordados (Luna, 1984). Por um lado, com base nos dois principais processos de decomposição-coordenação
Métodos de Decomposição 393
(coordenação pelos preços, coordenação pelas quotas), muitos algoritmos da literatura são classi¿cados segundo sua técnica
de transformação (geradora do programa mestre) e sua estratégia de resolução (geradora dos subproblemas). Por outro lado,
as condições de aplicação e as possibilidades de ocorrência de propriedades desejáveis para uma efetiva descentralização são
descritas para cada classe de algoritmos apresentada. En¿m, o capítulo faz referência a certas classes de procedimentos de
coordenação mista por justaposição de elementos das classes precedentes.
7.3
Exemplo da Cooperativa de Usinas de Açúcar
Esta seção se dedica a um exemplo ilustrativo dos principais aspectos dos métodos de decomposição e de suas possibili-
dades de descentralização de decisão e de informação. Trata-se do problema das usinas que se organizam em cooperativa
para articular a negociação e as operações portuárias que viabilizam a venda de açúcar no mercado internacional.
Supõe-se que cada usina i tenha duas atividades de produção de açúcar, a operar aos níveis de xi0 e, xi1 ambos maiores ou iguais
a zero. Cada usina i gerencia os próprios recursos de terra para plantio, água para irrigação, mão de obra, máquinas para colheita,
veículos de transporte, equipamentos de moagem de cana e tanques de fermentação da garapa. Dentre esses e outros recursos,
para cada usina i, supõe-se que apenas os recursos de água e de terra sejam eventualmente escassos, estando disponíveis aos
níveis de, respectivamente, bi1 milhares de metros cúbicos de água (mil m3) e de bi2 milhares de hectares de terra (mil Ha).
O valor xi0 = 1 indica que a usina produz mil toneladas (mil Ton) de açúcar proveniente de terra não irrigada, o que corresponde
ao uso nulo de água numa área de cana plantada, que corresponde a ti0 milhares de hectares de terra (mil Ton), ao custo de ci0
milhares de reais (mil R$). Por outro lado, a alternativa de operação da usina i ao nível xi1 = 1 indica que a usina i produz mil to-
neladas (mil Ton) de açúcar proveniente de terra irrigada, para o que se requer uma quantidade ai de milhares de metros cúbicos
de água (mil m3), para irrigar ti1 milhares de hectares de terra (mil Ha), ao custo de ci1 milhares de reais (mil R$). Assume-se
que ci0 ci1 e que ti0 !ti1, indicando que é mais baixo o custo de produzir mil Ton de açúcar em terra não irrigada, embora seja
necessário usar mais terra para isso. Essas características dos coe¿cientes ocorrem para todas as usinas, embora os valores
desses coe¿cientes possam variar para cada usina, em função da qualidade da terra, da aÀuência de chuvas na região, da polí-
tica de adubação e dos processos inerentes a cada usina de açúcar. A Figura 7.4 ilustra, numa visão de subsistema, as entradas
de recursos, a saída de açúcar, os custos e os coe¿cientes tecnológicos de uma usina genérica do sistema da cooperativa.
ci 0 ci 1
Água < b i 1
0 ai
1 Mil Ton de Açúcar
Terra < bi 2
ti 0 ti 1
O papel da cooperativa é de negociar a venda de açúcar no mercado internacional e de gerenciar as atividades no ter-
minal de exportação de açúcar a granel. Isso inclui a administração do laboratório de controle da qualidade do produto e
de todas as operações portuárias de recepção, armazenagem, despacho, organização da ¿la de navios e embarque do
açúcar. A informação necessária a esse gerenciamento está fora do âmbito das usinas propriamente ditas, não interes-
sando à cooperativa saber os detalhes dos coe¿cientes da Figura 7.4. Ao negociar com os importadores de açúcar, o que
a cooperativa precisa de fato saber de cada usina i é de sua proposta de oferta de açúcar yi em face do preço p eventual-
mente negociado com os importadores. Alternativamente, para estipular quantidades a vender no mercado internacional,
interessa à cooperativa saber qual seria o preço que viabilizaria economicamente a produção da quota yi eventualmente
estabelecida para a usina i. Nesse quadro de descentralização de decisão e de informação é natural que se estabeleça
mecanismos de diálogo entre a diretoria da cooperativa e as gerências das diversas usinas. A informação a Àuir nesse
diálogo se resume a preços e quantidades de açúcar. Assumindo-se que a cooperativa consiga negociar a exportação
de uma quantidade q de açúcar a um preço satisfatório, o problema de maximização do lucro do sistema como um todo
passa a ser o de minimizar o custo total de produção dessa quantidade nas diversas usinas.O problema a ser resolvido
por decomposição é o de
Em qualquer método de decomposição, o papel da cooperativa, através do programa mestre, é de se assegurar que a
restrição de acoplamento seja satisfeita, enquanto a satisfação de cada bloco de restrições de cada usina ¿ca a cargo do
correspondente subproblema. Os procedimentos de coordenação dos subproblemas pelo programa mestre são orientados
por preços ou por quotas.
Antes de se discutir, para cada procedimento de coordenação, a estrutura de um subproblema genérico de qualquer usina
cabe aqui mostrar, na Figura 7.5, uma instância do problema global com apenas três usinas, cada uma delas com os custos,
coe¿cientes tecnológicos e disponibilidade de recursos indicados na ¿gura.
Métodos de Decomposição 395
$8 $ 10
Água < 3 0 1
Terra < 24 6 4
$7 $8 Açúcar
Água < 3 0 1
Exportado
Terra < 33 6,5 5
$6 $7
Água < 4 0 1
Terra < 16 6 4
Observa-se que, nessa instância do sistema cooperado, as usinas 1 e 3 possuem os mesmos coe¿cientes tecnológicos,
indicando, em relação à usina 2, maior e¿ciência técnica em termos de uso do recurso terra necessário para produzir uma
unidade de açúcar. O conceito de e¿ciência técnica, introduzido com programação linear por Charneset al. (1978), é ilustrado
na Figura 7.6, onde as atividades de produção das usinas que compõem o sistema da cooperativa são vistas no espaço dos
insumos restritos água e terra.
Em complemento ao conceito estritamen-
te técnico, nota-se que a usina 3, além Terra
de sua e¿ciência técnica, possui também (Mil Ha) R20
maior e¿ciência econômica, face aos cus-
R10 = R30
tos operacionais mais baixos. Por seu tur-
no, a usina 2, apesar de ter coe¿cientes 6
que indicam menor e¿ciência técnica, tem R21
custos menores que os da usina 1 para 5
produzir a mesma quantidade de produ- 4 R11 = R31
to. Fatores como o uso de adubo, chuvas
locais, qualidade da terra e distâncias 3
das fazendas até os pontos de moagem
podem eventualmente explicar essas 2
diferenças. Embora tais detalhes não in- 1 Água
teressem propriamente à gerência da co- (Mil m3
operativa, todos esses fatores impactam
na lucratividade e na valorização da terra Figura 7.6. Consumo de Insumos das atividades para produzir 1 mil ton
e da água de cada usina. de açúcar.
396 Programação Linear e Fluxos em Redes
Nota-se que o problema global se apresenta no formato da estrutura bloco-angular ilustrada na Figura 7.1. Nessa situação,
a relaxação da restrição de acoplamento é o caminho natural para a decomposição do problema. Em vez de se trabalhar
diretamente com essa restrição complicadora, a ideia é de se estabelecer um preço p que eventualmente induza os subsis-
temas a viabilizar a quantidade q negociada pela cooperativa. Formalmente, se faz a dualização em relação a essa restrição
de acoplamento. A restrição de acoplamento é então incorporada à função-objetivo, que passa a ser avaliada pela função
h(p), por sua vez calculável por subproblemas separados, através da somatória de parcelas dadas por hi (p) para cada usina
i. A Figura 7.7 esquematiza a troca de informação e os subproblemas a serem resolvidos nos diferentes mecanismos de
coordenação pelos preços que se pode conceber para a instância de três usinas mostrada na Figura 7.5.
. Cooperativa
Oferta de 1 Preço
Oferta de 3
Oferta de 2
0, 3 0, 4 0, 4
Figura 7.7. Subproblemas das usinas e Àuxo de informação na coordenação pelos preços
O conjunto de soluções viáveis deste subproblema está ilustrado na Figura 7.8, onde se realçam os pontos extremos
do conjunto. Observa-se que qualquer solução viável do conjunto pode ser obtida como combinação linear convexa
de seus pontos extremos, conforme foi estudado no Capítulo 3. Para cada valor de preço p sugerido, independente-
mente dos detalhes da informação contida em cada subproblema, interessa à cooperativa saber apenas qual seria a
quantidade total yi = xi0 + xi1 do açúcar produzido por cada usina i. A viabilidade da combinação linear convexa dos pontos
extremos dos diversos subproblemas se reÀete na viabilidade de uma combinação adequada, no nível superior da coopera-
tiva, de quantidades de açúcar a negociar no mercado internacional.
Lembrando que, por hipótese,0 ci0 ci1, então o gradiente da função-objetivo terá sempre a primeira componente, de
valor (p 2 ci), superior ao valor (p 2 ci1) da segunda componente. Em relação ao eixo das abscissas, para qualquer valor do
parâmetro p, o ângulo do vetor gradiente será sempre inferior a 45°. Nessa situação, uma análise do problema da Figura 7.5
permite veri¿car que, à medida que o preço p aumenta, dos quatro pontos extremos do conjunto de soluções, apenas os
pontos P i0, P i1, P i2 podem resultar em soluções ótimas do subproblema da usina i. O ponto P i0 é solução trivial para o caso em
que o preço p ainda seja inferior ao custo ci0 de se produzir açúcar em terra não irrigada, o que torna inviável economicamente
a participação da usina i em qualquer atividade de exportação. A partir de um preço p superior ao custo ci0, o ponto P i1 passa a
ser a solução ótima do problema, com a usina i operando em terra não irrigada e produzindo xi0 = bi2 » ti0 milhares de toneladas
de açúcar. Observa-se que, na região em que o ponto P i1 é solução ótima do subproblema, à medida que p aumenta, a taxa de
variação do valor da função-objetivo hi (p) é constante e igual a (p 2 ci0). O ponto P i1 continua sendo a solução ótima enquanto
não atingir um valor tal que o gradiente da função-objetivo do problema primal, de componentes (p 2 ci0) e (p 2 ci1), ¿que
perpendicular a reta que une os pontos P i1 e P i2. Pode-se veri¿car que isso ocorre para o valor de p = (bi2 ai ci1 2 bi1 ti0 ci0)
» (bi2 ai 2 bi1 ti0), situação em que ambos os pontos P i1 e P i2, e qualquer ponto que pertença ao segmento de reta que os une,
pode constituir uma solução ótima para o problema. A partir desse valor de p, o ponto P i2 passa a ser a única solução ótima para
a usina i, que pode então operar a plena capacidade de produção. Nessa região, à medida que p aumenta, a taxa de variação
do valor da função-objetivo hi (p) se reduz para um valor constante e igual a (p 2 ci1), indicando que hi (p) é uma função côncava
e linear por partes. O ponto P i2 continua sendo a solução ótima enquanto o preço subir in¿nitamente.
Xi 1
Açúcar de bi 2 /ti 1
cana irrigada
Qualquer ponto viável é combinação
linear dos pontos extremos
Pi 0, Pi 1, Pi 2 e Pi 3
Pi 2
bi 1 /ai
Pi 3
Pi 0 Pi 1 Açúcar de cana
sem irrigar
Xi 0
b i 2 /t i 0
Figura 7.8. Pontos extremos do conjunto de soluções do problema primal da usina i.
398 Programação Linear e Fluxos em Redes
A Tabela 7.1 especi¿ca, para uma usina genérica e para cada uma das três usinas tomadas como exemplo, os valores das
coordenadas dos pontos extremos do conjunto de soluções do problema primal genérico ilustrado na Figura 7.8.
TABELA 7.1. Valores das coordenadas dos pontos extremos dos problemas primais das usinas
Usina
0 0
1 0 3 0 3
2 0 4 0 4
3 0 0 4 0 4
Associado ao problema primal da Figura 7.8 existe o problema dual da usina i. A Figura 7.9 ilustra os pontos extremos e o
conjunto de soluções do problema dual da usina i. Observa-se que o conjunto de soluções desse problema se refere a vari-
áveis que podem ser interpretadas como valor da água e da terra de cada usina. Para as soluções viáveis do problema dual,
os valores imputados a esses recursos das usinas são tais que não existe lucro para as atividades açucareiras. No ótimo, se
contabiliza valores com os quais se pode remunerar a renda da terra e o preço da água utilizada, de forma a ratear o lucro
bruto obtido no primal entre os empresários possuidores desses recursos escassos.
Valor da Terra
Di1
(p - Ci1) / ti1
Valores da Água e da
Terra em que a usina i não
é lucrativa
Di 2
Valor da Água
(p - Di 2 ) / a1
Figura 7.9. Pontos extremos do conjunto de soluções do problema dual da usina quando p !ci1 !ci0
Métodos de Decomposição 399
A Tabela 7.2 especi¿ca, para uma usina genérica e para cada uma das três usinas assumidas no exemplo, os valores das
coordenadas dos pontos extremos do conjunto de soluções do problema dual ilustrado na Figura 7.6.
TABELA 7.2. Valores das coordenadas dos pontos extremos dos problemas duais das usinas
A concepção de um método de coordenação pelas quotas passa necessariamente pela introdução de variáveis auxiliares
que de¿nem as quotas de produção de cada usina. A somatória das quotas deve ser pelo menos igual ao total de açúcar q
negociado pela cooperativa. Com isso, o subproblema de cada usina ganha mais uma restrição, relativa ao total de açúcar
a ser produzido pela usina. Supõe-se que o subproblema seja sempre viável, se necessário mediante o dispositivo de intro-
duzir uma variável arti¿cial de custo muito alto (método do M grande), que pode ser interpretada pela compra de açúcar no
mercado pela usina, com o ¿m de satisfazer à quota estipulada.
A Figura 7.10 ilustra o problema mestre da cooperativa e os subproblemas das usinas a serem resolvidos em qualquer
procedimento de coordenação pelas quotas. Observe que num procedimento desse tipo a cooperativa envia informação de
quotas de produção para as usinas, recebendo em contrapartida os preços de açúcar pelos quais as usinas podem operar
sem lucro líquido e sem prejuízo. As diferenças dos procedimentos ¿cam na maneira como é resolvido o problema mestre,
o que implica mudanças na sequência de quotas que podem ocorrer no curso do diálogo.
400 Programação Linear e Fluxos em Redes
Cooperativa
0, 3 0, 4 0, 4
Figura 7.10. Subproblemas das usinas e Àuxo de informação na coordenação pelos preços
O estudo feito até agora se restringiu aos esquemas de decomposição e de resolução dos subproblemas das usinas. Não
se detalhou como atualizar e controlar os parâmetros de coordenação indicados pelos problemas mestres nas duas classes
de métodos de decomposição. Isso é feito por manipulações do problema, a estudar nas próximas seções. Essas manipula-
ções constituem a fonte de especi¿cação do problema mestre a ser propriamente resolvido em cada subclasse de métodos.
Cabe, porém, avançar qual é a solução ótima do exemplo da cooperativa, a ser determinada por qualquer subclasse de cada
uma das classes de coordenação pelos preços e de coordenação pelas quotas. A Tabela 7.3 resume os valores ótimos das
variáveis primais e das variáveis duais do exemplo.
7.4
Técnicas de Transformação de Problema Decomponível
Para a classi¿cação dos algoritmos de decomposição, o capítulo segue a abordagem de Geoffrion (1970a), que associa a
cada classe de métodos uma combinação adequada de “Técnica de Transformação/Estratégia de Resolução”. Uma técnica
de transformação consiste numa manipulação do problema, de forma a deixá-lo adequado à aplicação de uma estratégia
de resolução. As mais conhecidas técnicas de manipulação de um problema decomponível são: Dualização, Linearização
Externa, Linearização Interna, Introdução de Variáveis Auxiliares e Projeção. Por seu turno, as estratégias de resolução mais
utilizadas são: Direções Viáveis (Subgradiente), Particionamento (Piecewise), Restrição e Relaxação. Esta seção discute
os esquemas de manipulação de um problema decomponível para adequá-lo a uma conveniente estratégia de resolução.
As técnicas de transformação aqui estudadas constituem fontes de geração de problema mestre em métodos de decompo-
sição. A seção seguinte trata das estratégias de resolução do problema manipulado, por sua vez responsáveis pela criação
de subproblemas.
xDualização
Algumas técnicas de manipulação de problemas já foram discutidas neste livro, cabendo aqui apenas sua recordação ou
sua colocação no contexto de problemas decomponíveis. Esse é o caso da dualização, operação bastante discutida no
desenvolvimento do Capítulo 4, que tratou de dualidade e sensibilidade em programação linear. A diferença é que agora
se foca num subconjunto das variáveis duais. Em problemas decomponíveis trabalha-se especi¿camente no espaço das
variáveis duais associadas às restrições de acoplamento. O valor da função dual se refere apenas a essas variáveis, man-
tendo o caráter primal das restrições associadas aos blocos independentes. Em vez de se abordar diretamente as restrições
complicantes, suas correspondentes variáveis duais fazem o papel de penalidades ou de prêmios que são incorporados à
função-objetivo primal, viabilizando a separação do problema. Ao se convergir para valores ótimos dessas variáveis duais
existe a possibilidade de induzir os subsistemas a satisfazer automaticamente as restrições de acoplamento, tal como se vai
discutir nos métodos de coordenação pelos preços.
xLinearização externa
As técnicas de linearização se aplicam para a aproximação de conjuntos ou de funções. A Figura 7.11 ilustra a técnica de
linearização externa aplicada a um conjunto convexo. É importante observar que, no caso de convexidade, os conjuntos
oriundos de linearização externa contêm o conjunto original a ser aproximado. Como o próprio nome indica, a aproximação
do conjunto é feita por fora, de maneira externa. Qualquer hiperplano proveniente de uma linearização externa tem ponto
que toca ou pontos que coincidem com uma face do conjunto original de soluções. A aproximação abrange todos os pontos
do conjunto original, mas inclui também pontos que estão fora desse conjunto.
402 Programação Linear e Fluxos em Redes
x2
H1 H3
H4
x4
x1 x3
x2
H2
x1
Figura 7.11. Linearização externa de um conjunto convexo
A Figura 7.12 ilustra a técnica de linearização externa aplicada a uma função convexa linear por partes. Quando a função a
ser aproximada é convexa, a linearização externa geralmente subestima o valor da função original. O inverso ocorre para a
linearização externa de uma função côncava, em que a aproximação tende a superestimar o valor verdadeiro da função num
ponto. Em ambos os casos há pelo menos um ponto onde a função original coincide com o segmento linear que a aproxima.
Figura 7.12. Linearização externa de uma função convexa linear por partes
Métodos de Decomposição 403
xLinearização interna
As técnicas de linearização Interna também se aplicam tanto para a aproximação de conjuntos como para a aproximação de
funções. A Figura 7.13 ilustra a técnica de linearização interna aplicada a um conjunto convexo. Nesse caso se observa que,
no caso de convexidade, os conjuntos oriundos de linearização interna ¿cam contidos no conjunto original a ser aproximado.
Como o próprio nome indica, a aproximação do conjunto é feita por dentro, de maneira interna. Qualquer hiperplano que
sirva de aproximação tem validade apenas em sua região inteiramente contida no conjunto original de soluções. Pontos ex-
tremos da aproximação podem estar inteiramente contidos no conjunto original. A aproximação não abrange todos os pontos
do conjunto original, mas assegura que qualquer ponto obtido pela aproximação é um ponto viável para o conjunto em pauta.
x2
x4
x 1 x2 x3
x5 x4
p*
A Figura 7.14 mostra a técnica de linearização interna aplicada a uma função convexa linear por partes. Quando a função a
ser aproximada é convexa, a linearização interna geralmente superestima o valor da função original. O inverso ocorre para
a linearização interna de uma função côncava, em que a aproximação tende a subestimar o valor verdadeiro da função num
ponto genérico. Em ambos os casos há pelo menos um ponto onde a função original coincide com o segmento linear que a
aproxima.
O dualismo presente nas técnicas de linearização externa e de linearização interna se reÀete ao nível do par de problemas
primal e dual. Por exemplo, o princípio de decomposição de Dantzig-Wolfe (1960), a ser discutido neste capítulo, é tipica-
mente um método de linearização interna do conjunto de soluções associado às equações de acoplamento do problema pri-
mal. Simetricamente, o mesmo princípio pode ser visto como uma aplicação da técnica de linearização externa no problema
dual correspondente, ponto de vista a ser adotado na Seção 7.7 que discute o princípio.
404 Programação Linear e Fluxos em Redes
Figura 7.14. Linearização interna de uma função convexa linear por partes
A criação de variáveis de apoio ao cálculo foi lugar comum no estudo do método Simplex e de outros algoritmos estudados
no decorrer deste livro. A introdução de variáveis de folga e de variáveis arti¿ciais são os exemplos mais marcantes. Embora
em um primeiro momento o acréscimo de variáveis implique aumento do espaço, esse tipo de manipulação pode trazer
vantagens que justi¿quem a aparente complexidade. No caso de decomposição, é comum o dispositivo de criar um vetor de
variáveis auxiliares y que, quando temporariamente ¿xadas, induzem a separabilidade do problema em questão. A estrutura
bloco-angular dual mostrada na Figura 7.2 pode resultar desse tipo de manipulação, o que pode ser a porta de entrada para
a técnica de projeção a ser apresentada a seguir.
xProjeção
Minimizar f(x,y)
x ∈X, y ∈Y
(7.1)
Sujeito a: g(x) < 0
Métodos de Decomposição 405
Com f sendo uma função numérica, g uma função vetorial, e com o problema envolvendo a otimização no espaço do conjun-
to das variáveis x e y. Quando o problema a ser resolvido é de Programação Linear Inteira Mista (PLIM) de principal interesse
para o corrente livro, a função-objetivo e as restrições explícitas em (7.1) são dadas por, respectivamente:
f(x,y) = cx + dy
e g(x,y) = b 2 Ax + By
No caso de PLIM, é comum ainda que a matriz A seja bloco-angular e que a matriz B se re¿ra a variáveis de acoplamento,
constituindo um programa linear com formato similar ao mostrado na Figura 7.2. Nesse formato, para y ¿xado, o problema
em x se subdivide em subproblemas associados a cada bloco da matriz A.
De¿ne-se como projeção do problema no espaço das variáveis y como
A função a minimizar no problema (7.2), chamada v(y), corresponde a toda a quantidade entre colchetes, sendo avaliada,
para y ¿xado, como o valor ín¿mo de um problema inteiro de minimização nas variáveis x. No caso mais geral, a única res-
trição em y no problema (7.2) é que esteja contido no conjunto Y mas, obviamente, para que seja candidato à solução ótima
deve ser tal que o problema interno seja viável, isto é, y deve pertencer ao conjunto V de¿nido por:
Minimizar v(y)
(7.4)
y ∈Y ∩ V
O conjunto V pode ser interpretado como uma projeção das restrições x e X e g (x, y) d 0 no espaço das variáveis y apenas.
A Figura 7.6 ilustra um caso simples: x é um intervalo, o conjunto {(x, y) | g (x, y) d 0} está sombreado, e o conjunto resultante V é
também um intervalo. Frequentemente, é possível obter uma representação para V mais convencional e mais tratável do que
a de¿nição (7.3). Por exemplo, o método de decomposição de Benders (1962) faz uma linearização externa do conjunto V,
usando raios extremos do conjunto de soluções do dual do problema interno em x. Na prática, para simpli¿car a implementação
406 Programação Linear e Fluxos em Redes
é recomendavel manipular o problema de forma que, para qualquer vetor y 0 ¿xado, o problema resultante em x tenha solu-
ção ótima com valor de função objetivo limitado. Para isso pode-se, se necessário, incluir em x variáveis de folga associadas a
coe¿cientes de alto custo, tal como no metodo do M grande em programação linear. Com esse dispositivo os conjuntos Y e V
coincidem, ¿cando mais fácil o cálculo de y no nível superior.
No caso geral a relação entre o problema original (7.1) e sua projeção (7.4), ou (7.2), é a seguinte, conforme se pode veri¿car
facilmente:
Ɣ O problema (7.1) é inviável ou tem valor ilimitado se e somente se o mesmo é verdade para (7.4).
Ɣ Se (x0, y0) é ótimo em (7.1), então é ótimo em (7.4).
Ɣ Se y0 é ótimo em (7.4) e x0 está associado ao ín¿mo de f (x, y0) sujeito x e X e g (x, y0) 0, então x0, juntamente com y0,
é ótimo em (7.1).
g(x,y) < 0
y
v
Figura 7.15. O conjunto V de valores viáveis para y
É importante enfatizar que a projeção é uma técnica de transformação bastante geral: nenhuma hipótese especial sobre
X, Y, f ou g é requerida para sua validade, e qualquer subconjunto de variáveis pode ser escolhido para fazer o papel de y.
Porém, quando existe convexidade em X, Y, f e g, não é difícil veri¿car que o problema (7.4) também é convexo.
A projeção é uma manipulação particularmente útil quando o problema é signi¿cativamente simpli¿cado pela ¿xação tempo-
rária dos valores de certas variáveis. No método original de Benders (1962), o problema não linear (7.1) vira um programa
linear para y ¿xado. Em Rosen (1964), o problema (7.1) torna-se um programa linear separável com a ¿xação de y. Diversos
trabalhos exploram situações em que a projeção tem um papel importante.
Métodos de Decomposição 407
7.5
Estratégias de Resolução de Problema Transformado
xDireções viáveis
Os métodos de direções viáveis se aplicam bem no nível do problema mestre, num espaço de dimensão igual ao número de
variáveis de acoplamento. A ideia é de se proceder a mudanças marginais nos parâmetros de coordenação, procurando-se
manter a viabilidade dessas mudanças locais. Em métodos de coordenação pelas quotas aplica-se a estratégia de direções
viáveis ao problema (7.4), num contexto em que a ¿xação das variáveis de acoplamento y induz à separação do problema
interno de minimização nas variáveis x, que passam a ser calculadas de forma descentralizada. As mudanças marginais
no vetor de acoplamento y precisam ser viáveis no sentido de assegurar a viabilidade do problema interno nas variáveis x.
Por seu turno, em métodos de coordenação pelos preços, aplica-se a estratégia de direções viáveis no problema dual re-
lativo às restrições de acoplamento. Similarmente, é possível também conceber formas descentralizadas de resolução das
condições de estacionaridade da função Lagrangeana, adaptando-se método de tipo gradiente a critérios mínimax.
xPartição
A estratégia de resolução por partes (partição ou piecewise) se aplica ao problema (7.4), numa situação em que y seja uma
função simples por partes (exemplo: linear por partes), no sentido de que existem regiões (partes) P 1, P 2,... do domínio da
função tais que v coincide com uma função v k relativamente tratável em cada P k. A situação está ilustrada na Figura 7.16,
onde se resolve o problema para cada parte tratável, buscando em seguida uma melhor solução em alguma parte adjacente.
A garantia da otimalidade ¿ca mais fácil com convexidade, tal como ocorre com o método de Rosen (1964). Por ser natural-
mente convexo o problema de programação linear, ¿ca mais fácil a garantia de otimalidade e de convergência do método
nos casos de interesse neste livro.
408 Programação Linear e Fluxos em Redes
y2
P2
y1
P1
y2
y0 P3
y3
y1
xRestrição
A restrição é uma estratégia de solução bastante útil em problemas com muitas variáveis não negativas, sobretudo se os
dados associados a essas variáveis são apenas implicitamente conhecidos. Isso ocorre na linearização interna e em mode-
los combinatórios. A ideia básica é a seguinte: resolve-se o problema sujeito à restrição adicional de que um subconjunto de
variáveis tem valor nulo; se a solução resultante não satisfaz às condições de otimalidade do problema, então se libera uma
ou mais variáveis restritas, terminando o procedimento somente quando a otimalidade é atingida. Note-se que as variáveis
restritas a zero essencialmente caem fora do problema restrito, reduzindo seu tamanho e evitando a necessidade de se
conhecer explicitamente os dados associados. A estratégia se torna bastante atrativa se apenas uma pequena parcela das
variáveis é ativa na solução ótima, tal como é usual no método Simplex e em esquemas correspondentes de geração de
colunas.
xRelaxação
Enquanto a restrição é uma estratégia de resolução particularmente útil para problemas com um grande número de variá-
veis, a estratégia complementar de relaxação é particularmente útil em problemas com um grande número de restrições
de desigualdade, algumas das quais disponíveis apenas implicitamente, tal como ocorre na linearização externa. A ideia
essencial da relaxação consiste em resolver uma versão relaxada do problema original, ignorando algumas das restrições
de desigualdade. Se a solução resultante não satisfaz a todas as restrições ignoradas, então se gera e inclui uma ou mais
restrições violadas no problema relaxado, resolvendo-o novamente. Continua-se dessa forma até que uma solução do pro-
blema relaxado satisfaça a todas as restrições ignoradas, em cujo ponto encontra-se uma solução ótima para o problema.
Um re¿namento importante envolve o abandono, no problema relaxado, de restrições amplamente satisfeitas, com o devido
cuidado para garantir o término do procedimento.
Métodos de Decomposição 409
É interessante observar que as estratégias de restrição e de relaxação são complementares num sentido bastante forte. Nesse
sentido, é signi¿cativo que a estratégia de restrição (relaxação) aplicada a um programa linear essencialmente corresponde
à relaxação (restrição) aplicada ao problema dual. A mesma asserção é valida para programas convexos mais gerais, em
particular para problemas decomponíveis em que a dualidade seja explorada em relação às restrições de acoplamento.
7.6
Mecanismos de Mercado e Métodos Duais
O interesse pelos métodos de decomposição remonta à Economia, ciência da alocação descentralizada de recursos escas-
sos. A natureza da programação matemática, cerne da Pesquisa Operacional, resultou em profícua sinergia multidisciplinar,
com desdobramentos também na automática. Para caracterizar as ligações entre o planejamento com níveis de decisão e
o cálculo hierárquico, pode-se observar o exemplo interessante do algoritmo de Uzawa (1958), que é um método do gra-
diente para pesquisa do ponto de sela da função Lagrangeana. Esse algoritmo é ainda interpretado como coordenação dual
(Lasdon, 1968), sendo também importante em automática (Pearson,1966), em particular para a resolução (a três níveis) de
problemas de grande dimensão do tipo sistema linear com critério quadrático (Tamura, 1975). De fato o método de Uzawa
foi raiz de um dos primeiros procedimentos hierárquicos realmente normalizados, discutindo a alocação de recursos com
descentralização pelos preços. Trata-se do procedimento de Arrow-Hurwics(1960), particularmente signi¿cativo porque ele
sintetiza, numa mesma formalização, sob diferentes hipóteses com relação à estrutura política, um esquema comum abor-
dado tanto pela teoria das economias de mercado quanto pela teoria do planejamento em países socialistas.
O esquema seminal de descentralização da informação remonta a Walras, com o conceito de tâtonnement, que está na
origem da teoria neoclássica e que já observava o sistema concorrencial como um dispositivo de cálculo que permite chegar
ao máximo de satisfação para a sociedade. Explorando a ideia de que um sistema socialista poderia imitar o processo de
mercado para calcular a alocação ótima, Taylor e Lange deram descrições relativamente precisas dessa classe de procedi-
mentos de descentralização. Os elementos principais do processo são representados esquematicamente pela ¿gura (7.17).
Do ponto de vista do cálculo hierárquico distingue-se os dois níveis conceituais seguintes:
No nível superior, o papel de coordenação é feito pelo mercado (numa economia competitiva) ou pela Central de Planeja-
mento (no modelo de Taylor-Lange de uma economia socialista). A cada ciclo o coordenador revisa os preços a ¿xar, aumen-
tando os preços dos bens com demanda excedente e baixando os preços dos bens com oferta excedente.
No nível inferior, um conjunto de produtores (empresas) e um conjunto de consumidores recebem os preços propostos para
os diversos bens. Esses agentes econômicos decidem por conta própria em face da informação interna e externa. Entre
suas alternativas tecnicamente viáveis, cada empresa seleciona e transmite em resposta um vetor de produção que maximi-
ze seu lucro calculado com base nos preços ¿xados. Por outro lado, cada consumidor, considerando suas restrições orça-
mentárias e os preços ¿xados, faz uma proposta de demanda dos bens que maximize sua utilidade. (A rigor, na formulação
de Arrow-Hurwics, esse comportamento dos consumidores está apenas implícito numa função de utilidade global conhecida
no nível superior, o que reduz o diálogo aos organismos Central de Planejamento e Produtores.)
410 Programação Linear e Fluxos em Redes
Por analogia ao exemplo clássico do tâtonnement pode-se conceber diversas situações em que, em princípio, se aplicam
os procedimentos — ou modelos de tomada de decisão — que estabelecem um diálogo entre subsistemas (regiões, setores
de uma economia, divisões de uma empresa, controladores locais) e coordenador (central de planejamento, direção de uma
empresa, comando global).
MERCADO
OU
CENTRAL DE PLANEJAMENTO
OFERTA DEMANDA
PREÇOS
PRODUÇÃO CONSUMO
.. ..
Maximização de lucro sob Maximização de utilidade sob
restrições de recursos restrição de orçamento
Para precisar a comparação das diversas classes de procedimentos de coordenação pelos preços, supõe-se um sistema de
produção de um setor econômico composto por subsistemas regionais, representado pelo programa matemático seguinte:
Minimizar ∑ c (x )
r r
(7.5)
x ∈ X r , r = 1,..., R
r r
Sujeito a: b- ∑g r
r r
(x ) ≤ 0 (7.6)
onde o vetor de variáveis x = (x 1,...,x r,...,x R ) e X representa os níveis de operação de todas as atividades de produção do
sistema. Cada subvetor está associado especi¿camente às atividades de produção do subsistema regional. O exemplo
da cooperativa de usinas de açúcar da Seção 7.3 ilustrou esse tipo de problema com apenas uma restrição de acopla-
mento (7.6) e com apenas duas atividades para cada subsistema, lembrando que o índice i de cada usina deve coincidir
com o índice r da região especí¿ca onde esteja situada. A função vetorial g r (x r ) avalia as quantidades produzidas em
cada subsistema r; e as restrições de acoplamento (7.6) indicam que a produção global de cada produto não deve ser
inferior à somatória das quantidades produzidas localmente. O objetivo é minimizar o custo total c(x) dos insumos que
Métodos de Decomposição 411
proveem dos outros setores da economia, sujeito às restrições tecnológicas e de disponibilidade de recursos implícitas
nos conjuntos Xr dos correspondentes subsistemas regionais.
A dualização é a técnica de transformação comum às três principais classes de procedimentos de descentralização pelos preços,
todas a estudar aqui e nas seções subsequentes. Cada uma dessas classes pode ser vista como uma combinação adequada de
“Técnica de Transformação/Estratégia de Resolução”, em que a dualização emerge como a primeira técnica a se utilizar:
“Dualização/Direções Viáveis”,mais conhecida por Relaxação Lagrangeana e Otimização por Subgradientes;
“Dualização, Linearização Externa/Relaxação”, chamada de Princípio de Dantzig-Wolfe, mais tradicionalmente vista, no
problema primal, como classe de procedimentos de “Linearização Interna/Restrição”; e
“Dualização, Projeção/Partição”, aqui vista como uma versão dual do Método de Particionamento de Rosen.
Maximizar d(p)
p≥0
onde d(p) = Mínimo { ∑ c ( x ) + p [b - ∑ g ( x ) ]}
r
r r
r
r r
(7.7)
x r ∈ X r , r = 1,..., R
ou, aproveitando-se da separabilidade do problema em r = 1,...,R obtém-se a avaliação da função objetivo d(p) dada por
d(p) = pb + Mínimo [ ∑c r
r
( x r ) - pg r ( x r ) ]
x r ∈ Xr
No Problema (7.7) se assume que p seja um vetor linha. A avaliação da função dual para cada vetor de preços p se faz pela
resolução de diversos subproblemas separáveis r = 1,...,R, cada subproblema sendo dado por
Minimizar [ ∑c
r
r
( x r ) - p gr ( x r ) ]
(7.8)
xr ∈X r
Observa-se que o problema (7.8) minimiza, para cada subsistema regional, o custo total menos a receita oriunda da venda
dos produtos, o que corresponde a maximizar o lucro do subsistema. Dessa forma, a função dual maximiza o benefício total
p b da venda dos produtos mais a somatória dos lucros obtidos por todos os subsistemas regionais. Diz-se que a função
dual d(p) maximiza o benefício social líquido do setor econômico em questão, já que nela estão descontados os custos de
operação das atividades de produção.
Para simpli¿car a discussão, admite-se que, para todo r, o problema (7.8) possui um ótimo para qualquer vetor de preços
p 0. Sob essa hipótese de existência de valor mínimo, pode-se veri¿car que d(p) é uma função côncava, mesmo sem
hipótese de convexidade. A Figura 7.17 ajuda a ver a concavidade da função dual para um problema dado por (7.5) e apenas
uma restrição de acoplamento (7.6).
412 Programação Linear e Fluxos em Redes
De fato d(p) é, por definição, o contorno inferior de diversas (ou mesmo infinitas) funções lineares em p, uma para cada
x = (x 1 ,...,x r ,...,x R ) e X, com o coe¿ciente ( ) = ∑ ( ) correspondendo ao valor da função para p = 0 e o coe¿ciente
( )=∑ ) indicando a tangente do ângulo de inclinação da reta.
A equivalência entre o problema primal dado por (7.5) e (7.6) e o problema dual (7.7) se dá com hipótese de convexidade de
c r (x r ) e g r (x r ), que é o caso da programação linear, de interesse neste livro. Sob essa hipótese, vale o teorema da dualidade
forte (Teorema 3 de Geoffrion, 1971):
a) Os valores ótimos do primal (7.5)-(7.6) e do dual (7.7) são iguais.
Qualquer solução ótima p* do dual (7.7) caracteriza o conjunto de todas as soluções ótimas do primal (7.5)-(7.6),
essas últimas correspondendo aos vetores x tais que os subvetores xr minimizam o problema (7.8) para r = 1,...,R, e
tais que a restrição de viabilidade (7.6) e a seguinte condição de complementaridade de folga seja satisfeita:
∗
̅ )] = 0
A coordenação dual (tâtonnement) se interpreta como um método de direções viáveis aplicado no problema (7.7). Assim,
a tarefa de coordenação consiste em maximizar d(p), a cada ciclo, fazendo uma mudança marginal de p que aumente a
função d(p). Essa mudança local possui interpretação econômica muito clara: o preço de um produto deve ser aumentado
se a demanda é excedente; e todo preço positivo deve diminuir se há oferta excedente. Por se tratar de mudanças mar-
ginais em p, no que se refere à justi¿cação da mudança dos valores de coordenação, os métodos dessa classe são os mais
razoáveis e mais aderentes à lei da oferta e da procura. Matematicamente, essa regra de mudança nos preços se justi¿ca
pelo fato de que, a diferença entre os valores de oferta e de demanda, dada por
Métodos de Decomposição 413
∑ ̅ ) (7.9)
é um subgradiente da função d(p) em p = p sendo x r um ótimo qualquer de (7.8) para p = p, r = 1,...,R (conforme Lasdon,1970,
Teorema 3, seção 8.5).
Ainda que alguns autores pioneiros (como Golshtein, 1966; Grinold, 1972), e diversos autores modernos, tenham estudado
a coordenação dual com otimização por subgradientes, o interesse maior de um método dual aparece quando existe diferen-
ciabilidade da função dual d(p). Para isso é necessário que o subgradiente de¿nido acima seja único: e para se assegurar
essa unicidade, a condição su¿ciente mais simples é a convexidade estrita do critério c r ( x r ) ou das restrições g r ( x r ) para todo
r (conforme Lasdon, 1970), Teorema 5 e Corolário 2, seção 8.5). A diferenciabilidade de d(p) é importante por permitir o uso
(no espaço dual) de método de otimização que exige o conhecimento de gradientes.
Além da possibilidade de uso de método de gradiente, outro aspecto muito importante da diferenciabilidade de d(p) é que
ela fornece um teste de parada prático (isto é gradiente nulo), ao mesmo tempo em que no ótimo dual p* pode-se reen-
contrar facilmente o único ótimo primal x*. Num procedimento descentralizado pelos preços, se d(p) não é diferenciável, a
possibilidade de ocorrência de soluções alternativas no nível dos subproblemas não permite a¿rmar que, para p* ¿xado,
os subsistemas possam encontrar exatamente as quantidades que satisfaçam às restrições de balanço dos produtos (7.6).
A indeterminação é particularmente grande nos programas lineares. O problema é que, no ótimo p*, o processo clássico de
tâtonnement não apresenta no nível da coordenação a informação necessária para determinar as quantidades “certas” que
devem ser produzidas pelos subsistemas. Em resumo, a vantagem dos procedimentos de descentralização da classe 1 é notá-
vel no que se refere à rapidez e à simplicidade de cálculo no nível da coordenação. A transmissão e localização dos dados, e
ainda a possibilidade de uma clara justi¿cativa das mudanças nos preços, são também pontos positivos dos procedimentos
de Dualização/ Direções Viáveis. Por outro lado, a exigência prática de convexidade estrita é muito restritiva. Outros pontos
negativos dessa classe,conhecida por Relaxação Lagrangeana, são a inviabilidade da solução a cada ciclo e o número muito
grande de ciclos de comunicação entre os níveis.
7.7
Princípio de Decomposição de Dantzig-Wolfe
O princípio de Dantzig-Wolfe (1960) mantém o mesmo esquema de transmissão de informação a cada ciclo de comunicação.
O coordenador envia um vetor de preços para os subsistemas, recebendo em resposta as quantidades que maximizam o
lucro segundo (7.8). Esse princípio possibilita memorizar no nível superior a informação necessária para se chegar no ótimo
global no caso de convexidade não estrita. Nós já assinalamos que esse princípio de decomposição pode ser interpretado
pela combinação “Dualização, Linearização Externa/Relaxação”. Trata-se de resolver o problema dual (7.7) através de uma
aproximação tangencial (arbitrariamente ¿na) da função d(p). A estratégia de relaxação é necessária porque a cada ciclo
só se conhece alguns planos tangentes que superestimam d(p). De fato a cada ciclo j = 1,..., J obtém-se um subgradiente,
dado por (7.9), da função côncava d(p), cada subgradiente estando associado a um plano tangente em p (vetor de preços
proposto no ciclo j). Por de¿nição de subgradiente:
414 Programação Linear e Fluxos em Redes
d ( p j ) + (p - p j )[ b - ∑g r
r
( x r ) ] t d (p ) para qualquer p e j = 1,...,J
e, do fato que as respostas aos preços são dadas por g r ( x r j ), r = 1,...,R tem-se
d ( p j) = ∑c r
r
( x rj ) − p j [ b - ∑g r
r
( x rj ) ]
o que resulta em
∑ c (x
r
r rj
) + p [ b − ∑ g r ( x rj ) ] ≥ d ( p)
r
∀ p ≥ 0 e j = 1,..., J
Utilizando toda esta informação, a tarefa de coordenação consiste em achar o vetor de preços p para o qual a superestima-
ção de d(p) seja máxima:
Maximizar δ
ä,p ≥ 0
Sujeito a: (7.10)
∑ c r ( x rj ) + p [ b − ∑ g r ( x rj ) ] ≥ δ
r r
∀ j = 1,..., J
o que corresponde à seguinte versão primal (de linearização interna no espaço dos x):
Programa Mestre do Ciclo J
Minimizar
α j ≥0 , j =1,...,J
∑α ∑ c
j
j
r
r
( x rj )
Sujeito a: (7.11)
b - ∑ α j ∑ g r ( x rj ) ≤ 0
j r
∑α j
j =1
Existem alternativas diferentes de (7.10)-(7.11) para escrever o programa mestre do princípio de Dantzig-Wolfe, sempre sob
hipóteses de convexidade. O propósito aqui é de observar que a resolução do problema dual (7.7) por uma abordagem de
linearização externa leva à resolução de um programa linear do tipo de (7.11). Esse trabalho de cálculo é evidentemente
mais difícil que mudar p dando um pequeno passo numa certa direção.
Um fato típico da programação linear é a frequente mudança brusca dos multiplicadores do Simplex: numa gestão des-
centralizada baseada no princípio de Dantzig-Wolfe é difícil justi¿car de forma aceitável as mudanças muito bruscas dos
preços propostos durante o diálogo. No entanto, à medida que no nível superior se armazena informação sobre as possi-
bilidades de produção de cada subsistema, pode-se en¿m determinar as quotas de produção ótima gr(xr) associadas aos
Métodos de Decomposição 415
preços ótimos p*. Outra vantagem desse armazenamento de informação é a possibilidade de se propor diversos vetores
de preços a cada ciclo. Isso, em princípio, deve reduzir o número de ciclos (de comunicação entre os níveis) necessários
para a convergência. E se bem que em sua versão original o coordenador acumula cada vez mais informação, o princípio
de Dantzig-Wolfe também se adapta a situações em que uma parte desta informação é abandonada. Economicamente,
isso tem um sentido preciso: colocam-se fora de cogitação as alternativas de produção que, dado o curso do diálogo, não
serão mais aceitáveis.
Em resumo, as vantagens dos procedimentos da classe de Dantzig-Wolfe são a viabilidade da solução a cada ciclo, a
melhora progressiva dessa solução e a possibilidade de se abordar problemas sem convexidade estrita com o mesmo
esquema de transmissão de informação do tâtonnement. Alguns pontos negativos são: a mudança muito brusca dos valores
de coordenação, a necessidade de memória e um cálculo mais elaborado no nível superior.
7.8
Método de Particionamento de Rosen
Uma terceira classe de procedimento de coordenação pelos preços baseia-se na interpretação econômica do método de
partição de Rosen (1984) aplicado em programas lineares decomponíveis. Pelo fato do método se aplicar especi¿camente à
versão linear,o modelo ¿ca agora caracterizado pela inclusão do superescrito ‘ nos números das equações:
Minimizar ∑ (7.5)’
Sujeito a:
∑ ≤0 (7.6)’
onde ≥ 0, }
A dualização sendo sempre com respeito às restrições de acoplamento (7.6)’, o problema equivalente no sentido do teorema
da dualidade forte se escreve:
A estratégia de resolução de Rosen (partição ou piecewise) utiliza o fato de que d(p)é uma função linear por partes. Com
efeito, admita-se que o subproblema
Minimizar[ ] (7.8)’
possua uma solução ótima cujo subvetor associado às variáveis básicas seja x Br Já que as mudanças em p não interferem
na viabilidade do problema, o valor ótimo de (7.8)’ é dado pela função linear em p.
416 Programação Linear e Fluxos em Redes
[ ] ̅
enquanto os coe¿cientes de “custo relativo” das variáveis fora de base se mantiverem não negativos. Economicamente, a
solução corrente x r se mantém ótima enquanto não aparece atividade não básica que possa gerar lucro positivo aos preços p,
ou seja, enquanto o vetor de custos relativos seja maior ou igual a 0, porque a esses preços dos produtos e dos recursos se
contabiliza lucros exatamente nulos para todas as atividades básicas. A cada ciclo, a tarefa de coordenação consiste então
em resolver o problema linear:
Maximizar p b + ∑ [ ] ̅
(7.12)
p≥0
sujeito às restrições de que os coe¿cientes de custo relativo das variáveis não básicas de cada subsistema r se mantenham
não negativos. Em outras palavras, o vetor p é mudado na região em que todas as variáveis básicas dos subsistemas se
mantenham ótimas. Assim, pode-se conceber o procedimento pela combinação “Dualização/Partição” (ou resolução por
partes, piecewise), conforme sugerido por Geoffrion (1970), como alternativa à versão primal de “Projeção/Partição”. A no-
menclatura na Tabela (7.1) – Dualização, Projeção/Partição corresponde à interpretação clássica do problema linear global,
onde a dualização é feita com respeito a todas as restrições do problema linear global (ver Rosen, 1984). No que se refere ao
interesse para a descentralização da informação, a resolução do problema (7.12) no nível superior exige uma transmissão
de informação sem dúvida muito carregada. Em particular, é necessário enviar ao nível superior as colunas transformadas
associadas às variáveis não básicas do subproblema (7.8)’. Essa informação ultrapassa inclusive o que se refere à matriz
da tecnologia associada às atividades básicas. Em resumo, tal exigência de transmissão a cada ciclo é uma barreira aos
atrativos de uma mudança suave dos preços de coordenação e de convergência num número relativamente reduzido de
ciclos de comunicação entre os níveis.
7.9
Decomposição Paramétrica
O título de coordenação pelas quotas é um nome alternativo aos procedimentos de descentralização pelos orçamentos ou pelas
quantidades. O ponto comum desses métodos é a ¿xação pelo coordenador da participação de cada subsistema na satisfação
das restrições globais. Do ponto de vista da programação matemática pode-se conceber, no problema (7.5)-(7.6), uma projeção
no espaço dos vetores de acoplamento y, composto por subvetores (quotas) de tal forma que a resolução dos subproblemas
Métodos de Decomposição 417
Minimizar c r (x r ) ⎫⎪
r r
x ∈X
⎬ para r = 1, 2,..., R (7.13)
Sujeito a: g r ( x r ) ≥ y r ⎭⎪
Y {y yr b}
r
Minimizar v(y)
(7.14)
y∊Y
Onde v(y) avalia o custo total quando o acoplamento dos subsistemas é ¿xado em y. A comparação entre as diversas classes
de procedimento de coordenação pelas quotas se faz então de maneira bastante análoga à análise da coordenação pelos
preços, segundo as estratégias utilizadas na otimização da função dual d(p). Pode-se então distinguir três classes principais
de métodos de coordenação pelas quotas: aqueles que utilizam direções admissíveis (gradiente ou subgradiente de v(y)
para mudanças marginais de y, aqueles que fazem linearização externa de v(y),e aqueles que otimizam v(y) por partes
(conforme (2.1), (2.3) e (2.4), respectivamente, na Tabela 7.7).
Os métodos mais simples — compreendidos entre aqueles da classe de decomposição paramétrica, isto é, (2.1) na Ta-
bela (7.7) — se apresentam quando existe diferenciabilidade do critério v(y) implícito no nível superior. Por exemplo, res-
pectivamente no contexto da Economia, Heal (1969) e Luna (1979b) discutem modelos que satisfazem essa propriedade
de diferenciabilidade. Se essa propriedade não é satisfeita, então a pesquisa de direções localmente ótimas torna-se
muito trabalhosa, no programa mestre, na transmissão de informação: tal é o caso dos métodos de Geoffrion (1970) e de
Silverman (1972). Outra abordagem de decomposição paramétrica sugerida para critério v(y) não diferençiável é o mé-
todo de Ermoliev-Ermolieva (1973) e as diversas variáveis que usam direções de subgradientes que não são localmente
ótimas. Ainda que nesse tipo de abordagem a tarefa de coordenação e a transmissão de informação sejam relativamente
fáceis, existem dois inconvenientes sérios: a di¿culdade de se estabelecer uma regra de parada, e o fato de que a taxa
de convergência de otimização por subgradientes é normalmente baixa, exigindo então um número muito grande de ci-
clos de comunicação entre os níveis. En¿m, uma propriedade interessante de certos procedimentos da classe “Projeção/
Direções Viáveis” é a de se aplicarem ao caso não convexo, se for aceitável uma otimização local. A aplicabilidade se
viabiliza principalmente quando se veri¿ca a diferenciabilidade da função v(y), tal como estudado no equilíbrio econômico
do setor de energia em Geromel & Luna (1981).
418 Programação Linear e Fluxos em Redes
7.10
Método de Decomposição de Benders
Os métodos da classe de Benders resolvem o problema projetado (7.4) por Linearização Externa e Relaxação. Embora
em sua versão original o método admita valores inteiros, por razões didaticas se apresenta aqui o caso particular em que o
problema original (7.1) corresponde ao seguinte modelo de programação linear continua
Minimizar cx + dy
x 0, y 0
PL Sujeito a:
Ax + B y b
Para simplicar ainda mais a discussão, assume-se que, para qualquer y 0 ¿xado, o problema resultante em x corresponde
a um conjunto de soluções convexo e limitado, com o valor otimo ¿nito. Para isso pode-se, se necessario, incluir em x varia-
veis de folga associadas a coe¿cientes de alto custo, tal como no metodo do M grande. A projeção do problema no espaço
dos y resulta no problema equivalente
Nota-se que para avaliar a função objetivo para um dado y se requer a resolução do seguinte subproblema de programação
linear em x
Minimizar cx
x 0,
SUB Primal Sujeito a:
Ax b – B y
De¿nindo-se o vetor linha p como representando as variáveis duais associadas ao conjunto de restrições do subproblema
primal tem-se o seguinte subproblema dual correspondente
Maximizar p (b – B y)
p 0,
SUB Dual Sujeito a:
pA c
Métodos de Decomposição 419
A observação mais importante para o método de Benders é o fato de que o dual de qualquer subproblema em x, a ser resol-
vido no nível inferior, tem sempre o mesmo conjunto de soluções, independentemente do vetor y calculado no nível superior.
O que muda é o vetor de coe¿cientes da função objetivo, jamais o conjunto de soluções do subproblema dual. A ideia do
método é de aproveitar essa propriedade para avaliar o valor da função objetivo do subproblema interno atraves de seu dual,
o que se faz reescrevendo o problema geral na forma
E como o valor ótimo do conjunto de soluções do subproblema dual ocorre em algum de seus pontos extremos [p1,…, pq]
o problema pode, em princípio, ser escrito como
A manipulação ¿nal consiste em expressar o máximo na função objetivo como o menor limitante superior y0 de todos os
valores disponíveis, resultando em:
Minimizar dy
y 0, y0
MESTRE Benders Sujeito a:
y0 p j ( b – B y) ∀ j = 1,…, q
inferior se subdivide em diversos subproblemas, um para cada subsistema. A interpretação econômica do método é bastante
interessante e foi delineada no exemplo da cooperativa de usinas estudado no início do corrente capítulo. Ao se ¿xar no nível
superior os valores das variáveis de acoplamento y, que correspondem a recursos compartilhados ou quotas, o Centro de
Planejamento recebe informação dos preços dos diversos produtos a serem gerados pelos subsistemas. De posse dessa
informação, o Centro de Planejamento pode subestimar os custos associados a qualquer solução a ser proposta no decorrer
do diálogo. O método trabalha com esse limite inferior para os custos, calculado no problema mestre. Um limite superior
sempre corresponde à melhor solução encontrada até o momento.
Cabe observar que todo o desenvolvimento do método pode ser realizado com a restrição adicional de que os valores das
variáveis y sejam inteiros. Mesmo nesse caso mais geral, as implementações modernas do método de Benders passam por
uma fase inicial onde a versão de programação linear contínua aqui apresentada é resolvida. O detalhamento da aplicação
do método em casos de programação linear inteira mista é um dos objetos de discussão em livro complementar dos mesmos
autores, mais dedicado ao estudo de métodos de otimização combinatória e programação inteira. Cabe aqui adiantar que
é nesses nichos de problemas combinatórios que se destacam a e¿ciência e a competitividade do método. Quanto mais
fácil e separável ¿car o subproblema em x em relação ao problema geral em x e y, e principalmente naquelas situações em
que os subproblemas independentes se encontram sob a forma de Àuxos em redes, aqui estudados no capítulo anterior, é
aconselhável o uso do método de Benders.
7.11
Propriedades dos Algoritmos em Procedimentos Descentralizados
A Tabela 7.4 resume, para os métodos de coordenação pelos preços estudados até agora, as propriedades desejáveis
num processo de descentralização, indicando os pontos fortes e fracos de cada classe de procedimentos.
Convexidade
a.1 Condições de aplicação e de convergência. Convexidade Linearidade
estrita
Tempo de cálculo e complexidade da Tarefa de coordenação Tarefa de coordenação
a.2 Rápido e simples
programação. mais difícil mais difícil
b.1 Viabilidade da solução a cada ciclo. Não Sim Não
Monotonicidade assegurando melhora
b.2. Não Sim Não
progressiva
Convergência num número razoável de ciclos de
b.3 Não Não Sim
comunicação entre níveis
Possibilidade de se considerar diversas Possível, mas sem
b.4 Possível, melhorando b.3. Difícil e redundante
alternativas a cada ciclo. interesse.
Sensibilidade aos dados antigos enviados pelos Sensível às alternativas
b.5 Insensível Menos sensível
subsistemas. e¿cazes (dados ativos)
Tipo (e justi¿cação das mudanças) dos valores Mudança marginal Não marginal mas
b.6. Mudança muito brusca
de coordenação. fácil de justi¿car. aceitável.
Necessidade de
b.7 Transmissão e localização dos dados Razoável Razoável transmissão muito
carregada.
Métodos de Decomposição 421
Lembre-se que na coordenação pelos preços uma mesma mensagem de preços é enviada a cada ciclo para todos os sub-
sistemas. Por outro lado, na coordenação pelas quotas é necessário enviar uma mensagem de quotas para cada subsiste-
ma. Em suma, o ponto forte da descentralização pelos preços é uma transmissão de informação reduzida, mas seu ponto
fraco é a exigência de convexidade. No contexto do planejamento econômico, Aoki (1971a) e Heal (1971) propuseram então
procedimentos de coordenação mista, que são aplicáveis ao caso de rendimentos crescentes (a não convexidade somente
permitindo assegurar otimalidade local) e que são relativamente e¿cazes do ponto de vista de transmissão de informação.
De fato o problema de não separabilidade se coloca também no planejamento econômico, mais precisamente na conside-
ração de bens públicos ou de efeitos externos; o segundo processo de Aoki (1971b) é um procedimento de coordenação
mista adaptado a este contexto.
A Tabela 7.5 resume, para os métodos de coordenação pelas quotas estudados até agora, as propriedades desejáveis num
processo de descentralização, indicando os pontos fortes e fracos de cada classe de procedimentos.
Variável dependendo da
Cálculo mais
diferenciabilidade do critério Programa mestre complexo Programa mestre
a.2. complexo com
implícito no problema (sobretudo com indivisibilidades) relativamente complexo
respeito a 1.2.
projetado
Sim (depois da fase Algumas vezes (viabilidade Sim (exigindo o
Sim (exigindo o conhecimento
b.1. inicial relativamente sempre possível se conhece a conhecimento de um
de um ponto inicial viável).
pesada) priori os acoplamentos viáveis) ponto inicial viável)
b.2. Sim Não Não Sim
Não (número de ciclos muito
Sim (notadamente para os mo-
b.3. grande com subgradientes Não Sim
delos de localização)
não ótimos)
Possível,
b.4. Possível Possível, melhorando b.3 Difícil e redundante
melhorando b.3
Sensível aos dados
Sensível aos dados ativos
b.5. Insensível ativos enviados Menos sensível
enviados anteriormente
anteriormente
Marginal ou paramétrica, Mudança brusca (sobretudo com Não marginal, mas
b.6. Mudança brusca
justi¿cável indivisibilidades) aceitável
Transmissão muito grande Necessidade de
b.7. para cálculo de subgradientes Razoável Razoável transmissão muito
ótimos carregada
Esquematicamente, pode-se classi¿car diversos métodos de coordenação mista por justaposição de estratégias dos mé-
todos de coordenação pelos preços e de coordenação pelas quotas. É assim que, nos contextos correspondentes, todos
os procedimentos mistos citados acima apresentam simultaneamente uma certa similaridade com os procedimentos das
classes (1.1) – Dualização/Direções Viáveis e (2.1) – Projeção/Direções Viáveis discutidas anteriormente.
Uma questão importante que não foi discutida se refere à informação de coordenação que permite assegurar estabilidade
numa vizinhança da solução ótima. De fato, aqui se utiliza a palavra “coordenação” se referindo simplesmente ao cálculo
descentralizado do ótimo. Seguindo a terminologia de Hurwicz (1973), sendo dado o ambiente (environnement, isto é, tipo de
funções e parâmetros referentes às preferências, às tecnologias e às disponibilidades de recursos), cada mecanismo deve
422 Programação Linear e Fluxos em Redes
possuir uma “regra de saída” que especi¿ca as ações a serem tomadas ao ¿m do diálogo. Esses aspectos de transição de
diálogo (cálculo do ótimo) para as decisões (controle ótimo) são obviamente de grande importância para a teoria e a prática
da descentralização.
Em conclusão, uma análise de conjunto dos desideratos que se colocam, mostra que a abordagem de decomposição em
programação matemática apresenta alguns limites práticos para que possa servir de base a um esquema de administração
ou planejamento com informação descentralizada. A consideração desses limites práticos levou certos autores a abandona-
rem a noção de otimalidade de um problema global decomponível, propondo então abordagens heurísticas ou esquemas
de modelagem hierárquica para a gestão ou planejamento descentralizado. Apesar desses limites, acredita-se que a progra-
mação matemática com decomposição fornece um quadro coerente para que se possa fazer uma análise comparativa das
diversas alternativas de transmissão de informação em procedimentos descentralizados. Fora desse quadro teórico ideal,
acredita-se que somente a experiência prática pode julgar diferentes esquemas de descentralização nos casos especí¿cos
em que forem aplicados.
7.12
Resenha BibliográÀca
A literatura em métodos de decomposição em programação matemática se acha em sua sexta década de profícua produção
cientí¿ca, com centenas de artigos. Cabe no escopo deste capítulo fazer referência a trabalhos pioneiros, das primeiras
décadas, que estabeleceram os princípios aqui estudados e indicaram as vertentes de pesquisa e aplicação que se de-
senvolveram nas décadas subsequentes. Cabe citar apenas algumas referências mais recentes, por exemplo Gamache e
outros (1999) e Barnhart e outros (2000). Aqui se deixa de citar uma série de referências promissoras e muitas de e¿ciência
comprovada em importantes problemas de Àuxos em redes.
Para a classi¿cação dos algoritmos de decomposição, segue-se a linha proposta por Geoffrion (1970a), com os trabalhos
agrupados segundo os principais padrões de combinação “Técnica de Transformação/Estratégia de Resolução”. A Tabela
7.6 mostra, para os métodos de coordenação pelos preços, os padrões usuais adotados nos trabalhos da literatura das
primeiras décadas. Por sua vez, a Tabela 7.7 resume os principais padrões e os correspondentes artigos em métodos de de-
composição pelas quotas. Em ambas as tabelas são destacados, em negrito, artigos que, ao considerar as variáveis duais
como preços, efetivamente interpretaram uma técnica de decomposição como um procedimento de gestão ou planejamento
com informação descentralizada.
Existem dois pontos comuns nos procedimentos de descentralização pelos preços sugeridos pelas técnicas de decompo-
sição em programação matemática: a exigência de convexidade, e o fato de que o critério do subproblema é modi¿cado
de forma a se interpretar como uma maximização do lucro, os preços tendo um papel de penalidade ou de incitação pela
participação do subsistema nas restrições globais (acoplamentos). As diferenças se encontram no tipo de convexidade
exigida e na tarefa de coordenação. Sob as hipóteses restritivas de convexidade estrita — do critério global ou de todas as
restrições —, a coordenação dual (classe 1.1) é sem dúvida recomendável se for praticável um elevado número de ciclos de
comunicação entre os níveis. Mas sem convexidade estrita pode acontecer que a não unicidade das soluções dos subpro-
blemas resulte em não diferenciabilidade da função dual. Para sobrepujar essa di¿culdade é necessário considerar proce-
dimentos com uma tarefa de coordenação mais complexa — por exemplo, de linearização externa da função dual (caso
do princípio de Dantzig-Wolfe) —, ou procedimentos que exijam uma transmissão de informação muito carregada (caso do
método de Rosen). Na Tabela 7.6, comparar respectivamente as propriedades dos procedimentos das classes (1.2) e (1.3)
com as propriedades dos procedimentos da classe (1.1).
Métodos de Decomposição 423
1.1 Uzawa 58; Arrow 59; Arrow e Hurwics 60; Takahashi 64, método local; Lasdon 68, 70, chap. 8; Golshtein 66; Pearson 66;
Malinvaud 67, processo do tâtonnement de Walras; Bauman 68; Geoffrion 71; Aoki 71b; Grinold 72; Heal 73, processo de
Lange- Arrow-Hurwics; Tamura 75.
Linearização Interna/Restrição
1.2 Dantzig e Wolfe 60; Williams 62; Sekine 63; Dantzig 63, chap. 23; Baumol e Fabian 64; Malinvaud 67, procedimento com
programação matemática no nível central; Hass 68; Heal 73, processo de Malinvaud; Glassey 73T; Holloway 73; Kutcher 73;
Sengupta e Gruver 74; Luna 78.
Dualidade, Projeção/Partição
1.3 Rosen 64 (método primal de partição de Rosen aplicado no dual de um programa linear separável com restrições de acopla-
mento); Kornal 73; Atkins 74.
Na interpretação de coordenação pelas quantidades, o método de Rosen (1963) torrna-se mais abordável pelo fato de que
existem propriedades de viabilidade (b.1) e de melhora progressiva da solução (b.2). Deve ser então sob esta interpretação
— contrariamente à ótica de coordenação pelos preços sugeridos por Kornai (1973) e Atkins (1974) — que se deve conside-
rar a aplicabilidade de partição de Rosen para um procedimento descentralizado. O único inconveniente sendo então uma
transmissão de informação muito carregada, conforme a Tabela 7.7.
424 Programação Linear e Fluxos em Redes
Outros procedimentos diferentes de coordenação pelas quotas podem ser mencionados. O trabalho original de Kornai & Liptak
(1965) corresponde a um algoritmo de pesquisa de um ponto de sela para um jogo linear. Kate (1972) retoma o modelo de
Kornai e Liptak e mostra que com formulação dual do princípio de Dantzig-Wolfe pode-se chegar ao mesmo esquema de
transmissão de informação, com a vantagem de se assegurar uma convergência ¿nita. En¿m, Cremer (1977) estuda um
esquema de transmissão de informação completamente diferente: seu algoritmo de planejamento exige apenas a transmis-
são de informação de quantidades, os preços não tendo nenhum papel.
Considera-se notável o interesse de resolver o problema 7.14 por linearização externa e relaxação. De fato, diversas varian-
tes do método de Benders (1962) — ver classe 2.3 nas Tabelas (7.7) — permitem não apenas o tratamento de certos tipos
de não convexidade, mas também de descontinuidade e de indivisibilidade. É assim que para os modelos de localização,
apesar de indivisibilidade, se reencontra as boas propriedades de viabilidade (b.1) e de número de ciclos reduzido (b.3);
nesse contexto pode-se considerar o primeiro nível como um nível operacional ou tático e o segundo como um nível estru-
tural ou estratégico (ver Luna, 1979a e capítulos 2 e 4 de Luna, 1978a). Outros procedimentos dessa mesma classe exigem
convexidade do problema global: é o caso do procedimento de Weitzman (1970), destinado ao planejamento econômico. Em
todo caso, a convexidade ao nível do subproblema é absolutamente necessária para assegurar a aplicabilidade da aborda-
gem de Benders no caso mais geral (conforme Geoffrion, 1972).
Neste capítulo foi feita uma revisão dos diversos esquemas de otimização com cálculo hierárquico. Foram revisadas as
condições de aplicação e de convergência, ao mesmo tempo em que foi feita uma análise crítica da aplicabilidade de cada
classe de algoritmos no contexto de um procedimento de gestão ou planejamento com informação descentralizada.
É claro que esse ensaio de síntese contém apenas uma parte da literatura referente ao tema de otimização por decomposição-
coordenação. Assim, não estão indicados aqui os esforços para melhorar a e¿ciência do método Simplex aplicados a pro-
blemas especí¿cos nem incluídos os métodos de separação e avaliação progressiva (“branch-and-bound”). Quanto aos
modelos de aplicação, nossa atenção foi dirigida sobretudo para os artigos que tratam de questões importantes para o
planejamento econômico e a gerência descentralizada. Muitas aplicações em tecnologia e certos modelos particulares de
pesquisa operacional não foram levados em conta. Por exemplo, os métodos de partição em otimização combinatória ou em
programação geométrica e suas utilizações em problemas de ordenação, de tráfego, de estocagem ou de projeto não estão
incluídos aqui. Entre as referências que discutem aspectos estocásticos, somente algumas que contêm modelos espaciais
foram retidas; e no que se refere à otimização de sistemas dinâmicos foram escolhidos apenas artigos que tratam de mo-
delos a tempo discreto.
A mensagem que ¿ca nesse capítulo é de que, independentemente de computação distribuída ou sequencial, os métodos
de decomposição constituem alternativas comprovadamente e¿cientes para a resolução de diversos problemas práticos
de otimização. De maneira geral isso ocorre principalmente nas situações em que os subproblemas constituem modelos
especiais de programação linear, sobretudo quando esses subproblemas são de Àuxos em redes, tais como os estudados
no capítulo anterior deste livro.
Métodos de Decomposição 425
Referências BibliográÀcas
Abadie, J. & Williams, A. C. (1963). Dual and parametric methods in decomposition. In R. L. Graves & P. Wolfe editors,
Recent Advances in Mathematical Programming. McGraw-Hill, Nova York, 149-58, 1963.
Arrow, K. J. (1959).Optimization, decentralization and internal prices in business ¿rms. In Contributions to Scienti¿c Research
in Management, University of California Press, Los Angeles.
Arrow, K. J. & Hurwicz, L. (1960). Decentralization and Computations in Resources Allocation. In R. W. Pfouts editor Essays
in Economic and Econometrics. University of North Carolina Press, Chapel Hill, 34-104.
Atkins, D. (1974). Managerial decentralization and decompositions in mathematical programming, Operational Research
Quateriy 25:65-624.
Balas, E. (1966). An infeasibility-pricing decomposition method for linear Programs. Operations Research 14:847-73.
Barnhart, C., Hane, C. & Vance, P. (2000). Using branch-and-price-and-cut to solve origin-destination integer multicommodity
Àow problems. Operations Research, 48:318-26.
Baumol, W. J. & Fabian, T. (1964). Decomposition, pricing for decentralization and external economics. Management Sci-
ence. 11:1-32.
Bauman, E. J. (1968). Multilevel optimization techniques with application to trajectory decomposition. In Advances in Control
Systems. C. T. Leondes editor, Academic Press, NovaYork.
Benders, J. F. (1962). Partitioning procedures for solving mixed-variables programming problems. Numerishe Mathematik 4:
238-52.
Charnes, A., Cooper, W. W. & Rhodes, E. (1971) Measuring the ef¿ciency of decision making units. European Journal of
Operational Research 2:429-44.
Cremer. J. (1977). A quantity-quantity algorithm for planning under increasing return to scale. Econometrica 45:1339-48.
September.
Dantzig, G. B. & P. Wolfe (1960). Decomposition principle linear programs. Operations Research 8:101-11.
Dantzig, G. B. (1963). Linear Programming and Extensions, Princeton University Press, Princeton. Reimpresso em 1993 na
série Princeton Landmarks in Mathematics and Physics.
Duran, M. A. & Grossman (1986). An outer-approximation algorithm for a class of mixed integer nonlinear programs. Mathe-
matical Programming, 36:307-39.
Eaves, B. C. & Zangwill, W. I. (1971). Generalized Cutting Plane Algorithms. SIAM Journal on Control 9:529-42.
Ermoliev, Y. M. & Ermolieva L. G. (1973). The method of parametric decompositions. Cybernetics 9:262-66.
França, P. M. & Luna, H. P. L. (1982). Solving stochastic transportation-location problems by generalized Benders decompo-
sition. Transportation Science 16:113-26.
Gamache, M. F., Soumis, F., Marquis, G. & Desrosiers, J. (1999). A column generation approach for large-scale aircrew ros-
tering problems. Operations Research 47:247-62.
Geoffrion, A. M. (1970a). Elements of large-scale mathematical programming Management Science 16:652-91.
Geoffrion, A. M. (1970b). Primal resource-directive approaches for optimizing nonlinear decomposable systems. Operations
Research 18:375-403.
426 Programação Linear e Fluxos em Redes
Geoffrion, A. M. (1971). Duality in Nonlinear Programming: A Simpli¿ed Application-Oriented Development. SIAM Review, 13:1-37.
Geoffrion, A. M. (1972). Generalized Benders decomposition. Journal of Optimization Theory and Applications 10:237-59.
Geoffrion, A. M. & Graves, G. W. (1974). Multicommodity distribution system design by Benders decomposition. Management
Science 20:822-44.
Geoffrion, A. M. & Powers, R. (1995). Twenty years of strategic distribution system design: An evolutionary perspective.
Interfaces 25:105-27.
Geromel, J. C. & Luna, H. P. L. (1981) Projection and duality techniques in economic equilibrium models. IEEE Trans. on
Systems, Man and Cybernetics 11:329-38.
Glassey, C. R. (1973.) Nested decomposition and multistage linear programs. Management Science 20:282-92.
Golshtein, E. G. (1968). A general approach to the linear programming of block structures. Soviet Physics Doklady, 11:100-3.
Gomory, R. E. & Hu, T. C. (1964). Synthesis of a communication network. Journal of the Society for Industrial and Applied
Mathematics. 10:348-69.
Grigoriadis, M. D. & Walker, W. F. (1968). A Treatment of transportation problems by primal partition programming. Manage-
ment Science 14:565-99.
Grinold, R. C (1972). Steepest ascent for large scale linear programs. SIAM Review 14:447-64.
Hass, J. E. (1968). Transfer price in a decentralized ¿rm. Management Science. 14:310-31.
Heal, G. M. (1969). Planning without prices. Review of Economic Studies 36:347-63.
Heal, G. M. (1971). Planning, Prices and increasing Returns. Review of Economic Studies 38:281-94.
Himmelblau, D. (1973). Decomposition of Large Scale Problems. North-Holland, Amsterdã.
Holloway, C. A. (1973). A generalized approach to Dantzig-Wolfe decomposition for concave programs. Operations Research
21:210-20.
Hurwicz, L. (1973). The design of resource allocation mechanisms, American Economic Review Papers and Proceedings
58:1-30. Reimpresso em 1977. In Studies in Resource Allocation Processes, K. J. Arrow editor, Cambridge University Press,
Cambridge, 3-39.
Jennergreen, P. (1973). A price schedules decomposition algorithm for linear programming problems. Econometrica. 41:
965-80.
Kate, A. T. (1972).Decomposition of linear programs by direct distribution. Econometrica 40:883-98.
Kornai, J. & Liptak, T. (1965).Two Level Planning. Econometrica 33:141-69.
Kornai, J. (1975). Mathematical Planning of Structural Decisions, North-Holland, Amsterdã.
Kutcher, G. P. (1973). On decomposing price-endogenous model. In Multi-level Planning: Case Studies in Mexico. L. Goreaux
& A. S. Manne editors, North Holland, Amsterdã, 499-519.
Manne, A. S. (1973). A mixed integer algorithm for project evaluation. In Multi-level Planning: Case Studies in Mexico. L.
Goreaux & A. S. Manne editors, North Holland, Amsterdã, 477-97.
Lasdon, L. S. (1968). Duality and decomposition in mathematical programming. IEEE Transactions on System Science and
Cybernetics 4:86-100.
Lasdon, L. S. (1970). Optimization Theory for Large Systems. Macmillan, Nova York. Reimpresso em 2002, com novo prefá-
cio do autor, em edição da Dover.
Métodos de Decomposição 427
Luna, H. P. L. (1978). Two-level national-regional planning and mathematical programming decomposition applied to spatial
price equilibrium models. Socio-Economic Planning Sciences 12:251-66.
Luna, H. P. L. (1979a). Economical interpretation of Benders decomposition technique applied to location problems. In Mod-
els and Decision Making in National Economies. J. M. L. Janssen, L. F. Pau & A. Strazak editors, North Holland, Amsterdã,
367-72.
Luna, H. P. L. (1979b). Note on price-unicity in economic equilibrium models. Socio-Economic Planning Sciences 13:223-5.
Luna, H. P. L. (1984). A survey on informational decentralization and mathematical programming decomposition. In Mathe-
matical Programming. R. W. Cottle, M. L. Kelmanson & B. Korte editors, Elsevier/North Holland, Amsterdã, 249-70.
Malinvaud, E. (1967). Decentralized procedures for planning. In Activity Analysis in the Theory of Economic Growth. E. Malinvaud &
O. L. Bacharach editors, Macmillan, Londres, 249-70.
Pearson, J. D. (1966). Duality and a decomposition technique.SIAM Journal 4:164-172.
Rosen, J. B. & J. C. Ornea, J. C. (1963). Solution of nonlinear programming problems by partitioning. Management Science
10:160-73.
Rosen, J. B. (1964). Primal partition programming for block diagonal matrices. Numerische Mathematik 6:250-60.
Rosen, J. B. (1976) Convex Partition Programming. In Recent Advances in Mathematical Programming. R. L. Graves & P.
Wolfe editors, McGraw-Hill, Nova York, 159-76.
Sanders, J. L. (1965). A nonlinear decomposition principle. Operations Research 13:266-8.
Sengupta, J. K. & Gruver, G. W. (1973). On the two-level planning procedure under a Dantzig-Wolfe decomposition. Interna-
tional Journal Systems Science 5:857-75.
Takahashi, I. (1964). Variable separation principle for mathematical programming. Journal of the Operations Research Soci-
ety of Japan 6:82-105.
Tamura, H. (1975). Decentralized optimization for distributed-lag models of discrete systems. Automatica 11:593-602.
Uzawa, H. (1958). Iterative methods for concave programming.In Studies in Linear and Nonlinear Programming. K. Arrow, L.
Hurwics & H. Uzawa editors, Stanford University Press, Stanford, Chapter 10.
Van Slyke, R. M. & Wets, R. J. B. (1969). L-shaped linear programs with applications to optimal control and stochastic pro-
gramming. SIAM Journal Applied Mathematics 17:638-63.
Vanderbeck, F. (2000). On Dantzig-Wolfe decomposition in integer programming and ways to perform branching in a branch-
and-price algorithm. Operations Research 48:111-28.
Weitzman, M. L. (1970). Iterative multi-level planning with production targets. Econometrica. 38:50-65.
Williams, A. C. (1962). A treatment of transportation problems by decomposition. Journal of the Society for Industrial and
Applied Mathematics. 10:35-48.
Tópico 1
Álgebra Linear e Convexidade
1
Matrizes e Operação com Matrizes
Matriz é uma entidade matemática representada por um arranjo dimensional de números, mais informalmente denominada
tabela ou planilha. Como entidades matemáticas, a matriz possui certas propriedades. As matrizes mais conhecidas são
arranjos bidimensionais onde denominamos as m ¿leiras horizontais de linhas e as n ¿leiras verticais de colunas. Exemplos:
⎡ 4 5 6⎤ ⎡4 5 ⎤
A=⎢ ⎥ m = 2; n = 3 B=⎢ ⎥ m = 2; n = 2
⎣7 8 9 ⎦ ⎣7 8 ⎦
A matriz A, como possui m diferente de n, é chamada de Matriz Retangular. A matriz B, como tem m = n é chamada de Ma-
triz Quadrada. Normalmente, uma matriz é representada através de uma letra maiúscula, reservando as letras minúsculas
para a representação de seus componentes. Como um arranjo multidimensional, é possível considerar que as matrizes são
constituídas por unidades unidimensionais ou vetores. Nesse caso, as linhas ou colunas da tabela podem ser interpretadas
como vetores linha ou coluna. Quando uma matriz for reduzida a um vetor linha ou coluna, mesmo assim é usual denominá-
la matriz, esse é o caso das matrizes coluna ou linha. Exemplo:
Matriz Coluna Matriz Linha
⎡4 ⎤ D1x 3 = [4 5 6]
C 3x 1 = ⎢⎢7 ⎥
⎥
⎢⎣3 ⎥⎦
Os elementos individuais de uma matriz são representados pela letra minúscula da matriz, acompanhada dos índices que
correspondem às suas coordenadas no quadro. Ao primeiro índice associamos a coordenada horizontal ou o número de sua
linha. Ao segundo índice, o número da coluna correspondente. Exemplo:
⎡c = 4 c12 = 3⎤
C = [c ij ] = ⎢ 11 ⎥
⎣c 21 = −1 c 22 = 5 ⎦
432 Programação Linear e Fluxos em Redes
⎢.. .. ...... .. ⎥
⎢ ⎥
⎣am1 am 2 ...... amn ⎦
⎡4 − 1 ⎤ ⎡1 1 ⎤ ⎡0 0⎤
A=⎢ ⎥ ,B=⎢ ⎥ ,C=⎢
⎣7 2 ⎦ ⎣2 − 1 ⎦ ⎣0 0 ⎥⎦
⎡4 + 1 + 0 = 5 −1 +1 + 0 = 0 ⎤
D=⎢
⎣7 + 2 + 0 = 9 2 − 1 + 0 = 1 ⎥⎦
⎡4 − 1 ⎤ ⎡− 4 1⎤
A=⎢ ⎥ e λ = 1, então λA = ⎢ ⎥
⎣7 2 ⎦ ⎣ − 7 − 2⎦
x Produto de matrizes
Trata-se de uma das operações mais importantes da álgebra linear. Sejam as matrizes A => aij @; B => bij @; C => cij @; e saben-
do-se que C = AxB. Então, é possível obter os elementos de C, os seus cij , através da seguinte regra:
O elemento i, j da matriz produto será obtido pela soma dos produtos dos elementos correspondentes da linha i da
primeira matriz, pelos elementos da coluna j da segunda matriz. Exemplo:
Sejam:
⎡1 2 ⎤ ⎡2 1 ⎤
A=⎢ ⎥ , B=⎢ ⎥
⎣3 4 ⎦ ⎣− 1 − 1 ⎦
Anexos 433
Então, o elemento c12 da matriz C deve ser obtido pela soma do produto entre os elementos da primeira linha de A (a11, a12)
com os elementos da segunda coluna de B (b12 b22). Nesse caso:
⎡c11 = 0 c12 = −1 ⎤
C = c ij = ⎢ ⎥
⎣c 21 = 2 c 2 = −1 ⎦
De¿ne-se como Matriz Identidade a matriz que possui todos os elementos da diagonal igual a 1 e os demais elementos
iguais a zero. A matriz identidade é o operador neutro no produto de matrizes. Exemplo:
⎡1 0 .... 0 ⎤
⎢0 1 ..... 0 ⎥⎥
I = [ i ij ] = ⎢
⎢.. .. ..... .. ⎥
⎢ ⎥
⎣0 0 ..... 1 ⎦
Pela de¿nição da operação de produto de matrizes, ela só poderá ocorrer quando o número de linhas da primeira matriz
for igual ao número de linhas da segunda. Evidentemente, quando as matrizes forem quadradas e de mesma dimensão, a
operação de multiplicação é sempre possível.
A matriz resultante de um produto AB possuirá o número de linhas da primeira e o número de colunas da segunda. Exemplo:
O produto de matrizes não é uma operação comutativa como é o produto de números reais. Normalmente, AB z BA. Se, AB = BA,
então, é dito que A e B são matrizes comutativas. Outra propriedade interessante é que se AC = AB não é possível a¿rmar
que C = B.
No caso do produto com a matriz identidade AI = A. Quando a matriz A for quadrada, então AI = IA.
O produto de duas matrizes não nulas pode ser uma matriz nula.
9 Transposição de matrizes
Trata-se de uma operação em que se opera uma troca entre
⎡1 2⎤ ⎡1 3⎤
linhas e colunas da matriz. O símbolo de transposição é o A=⎢ ⎥ e At = ⎢ ⎥
expoente t ou expoente linha. A regra de transposição faz da ⎣3 4⎦ ⎣2 4⎦
primeira linha a primeira coluna na matriz transposta, e assim Asp ⇒ Atps
por diante, como exempli¿cado ao lado.
434 Programação Linear e Fluxos em Redes
As matrizes podem ser particionadas em submatrizes. Essa providência pode ser muito útil no cálculo de invariantes, de-
monstração de teoremas e solução de sistemas de equação. Nesse caso, serão utilizadas as notações dos exemplos que
se seguem:
⎡4⎤ ⎡1 ⎤ ⎡ x1 ⎤
As equações matriciais são na verdade formas compactas de A = ⎢3 ⎥ , B = ⎢5⎥ e x = ⎢⎢ x 2 ⎥⎥
⎢ ⎥ ⎢ ⎥
expressar as tradicionais equações da álgebra, por exemplo:
⎢⎣7 ⎥⎦ ⎢⎣2⎥⎦ ⎢⎣ x 3 ⎥⎦
⎡2x1 ⎤ ⎡4⎤ ⎡1 ⎤
Seja solucionar a seguinte Operando matricialmente tem-se:
Ou seja: 2x = ⎢⎢2x 2 ⎥⎥ = ⎢⎢3 ⎥⎥ + ⎢⎢5⎥⎥
equação matricial: 2x - A = B 2x = (A + B)
⎢⎣2x 3 ⎥⎦ ⎢⎣7 ⎥⎦ ⎢⎣2⎥⎦
Ou ainda:
2x1 = 4 + 1 = 5 x1 = 5/2
2x2 = 3 + 5 = 8 x2 = 4
2x 3 = 7 + 2 = 9 x3 = 9/2
Um sistema de equações lineares pode ser representado com facilidade na forma matricial. Seja uma equação linear da
forma:
a1 x1 + a2 x2 + .... + an xn = b1
Onde:
x1 , x2 , ...., xn são as variáveis da equação;
a1 , a2 , ....., an são os coe¿cientes dessas variáveis; e
b1 é o termo independente da equação.
Os valores das variáveis da equação acima que a transformam em uma identidade são chamados “solução”. Um sistema de
equações lineares nada mais é que um conjunto de várias equações lineares da forma abaixo:
No sistema de equações anteriores são encontradas n incógnitas e m equações. Cada coe¿ciente aij representa o coe¿ciente da
j-ésima incógnita da equação de índice i. Considerando as matrizes A = >aij @, x = >xi @ (matriz coluna) e B = >bj @ (matriz coluna).
Na notação matricial é possível representar o conjunto de equações lineares anterior pela seguinte equação matricial:
Ax = b
436 Programação Linear e Fluxos em Redes
A inversa de uma matriz A, quadrada, denominada A-1, é a matriz que atende à seguinte condição:
A A-1 = I = A-1A
As matrizes inversas possuem também as seguintes propriedades:
(A-1)-1 = A
(I-1)-1 = I
Nem todas as matrizes quadradas possuem inversas. Uma matriz que atende as propriedades acima é dita inversível. Caso
contrário, a matriz é denominada singular. A condição necessária e su¿ciente para que uma matriz quadrada seja inversível
é a de que seu determinante seja diferente de zero. E o que vem a ser um determinante?
DeÀnição 1
A determinação da ordem da permutação dos índices pode ser determinada sem di¿culdades por um procedimento recursivo
de decomposição da matriz. O determinante de uma matriz A é um valor escalar, ou seja, um número real, e pode ser obtido
pela expressão que se segue:
n
det A = ∑a
i =1
i 1 Ai 1
onde Ai1 é o cofator de ai1 de¿nida pelo produto de (-1)i +1 com o determinante de uma submatriz de A, obtida pela retirada à
i-ésima linha e à primeira coluna de A. Abaixo, segue um exemplo da decomposição via cofator.
Anexos 437
2 3 7
5 1 3 7 3 7
det 4 5 1 = 2 A11 + 4 A21 + 6 A31 2 det − 4 det + 6 det
7 9 7 9 5 1
6 7 9
O sistema de redução recursiva proposto pela fórmula anterior termina no cálculo de determinantes de matrizes 2 x 2, cuja
expressão é muito simples (produto da diagonal principal menor que o produto da diagonal secundária). Por outro lado, atra-
vés do cálculo dos determinantes, pode-se obter o valor das variáveis ou incógnitas dos sistemas lineares pela expressão:
det A j
xj = j = 1, 2 ,..., n
det A
São clássicas três grandes linhas de cálculo para realizar a determinação da inversa de A:
Presentemente será descrito o método básico da inversão via operações elementares, em virtude do método ser utilizado
pelo algoritmo Simplex na reinversão da base.
Utilizando as propriedades da multiplicação, não se altera a igualdade Ax = b quando um de seus membros é pré-multiplica-
do ou pós-multiplicado, conforme o caso, pela matriz identidade. Assim:
Ax = Ib É equivalente a Ax = b E o processo de solução de Ax = b diz que: x = A-1 b
Ix = A-1 b
Comparando as equações acima, observa-se que o processo de inversão de matrizes pode ser pensado como um processo
de transformação de uma matriz A qualquer em uma matriz identidade, através de operações que não violem as condições
do sistema linear original. Tendo em vista o exposto, é possível imaginar um método de inversão para a matriz A, através de
operações elementares em suas linhas. Seja a matriz A que se segue representada e a matriz I ao seu lado.
Quando A for transformada em uma matriz identidade, a matriz I terá acumulado o valor da matriz1 A-1.
1. Uma estratégia de mudança racional e cuidadosa deve ser utilizada para evitar cálculos desnecessários. Isso permitirá que o escalonamento de A (os números de
zero na matriz) seja planejado de forma metódica. Observar, no exemplo, que o elemento a23 já era nulo inicialmente, como se faria necessário, entretanto, seu valor será
alterado com a primeira operação. Sem uma estratégia racional de cálculo, esse fenômeno pode ocorrer em células já calculadas.
438 Programação Linear e Fluxos em Redes
⎡1 − 1 1 ⎤ ⎡1 0 0 ⎤
A = ⎢⎢0 − 2 0 ⎥⎥ I = ⎢⎢0 1 0 ⎥⎥
⎢⎣0 1 3 ⎥⎦ ⎢⎣0 0 1 ⎥⎦
A estratégia de alterar a matriz A de modo a transformá-la em uma matriz identidade pode ser sistematizada de forma a
partir do canto superior esquerdo e progredir coluna a coluna, evitando que os cálculos que se seguem alterem os termos
nulos já obtidos.
Operação 1: Tornar o elemento a11 = 1. No caso, nada para fazer, pois a11 = 1 em A. Fazer A1, a matriz decorrente do resul-
tado da primeira sobre A, igual à própria matriz A.
Operação 2: Tornar o elemento a21 = 0. Para tal, é necessário multiplicar a primeira linha por -1 e somar com a segunda
linha, resultando:
⎡1 − 1 1 ⎤ ⎡ 1 0 0⎤
A2 = ⎢⎢0 − 1 − 1⎥⎥ I 2 = ⎢⎢− 1 1 0 ⎥⎥
⎢⎣0 1 3 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦
Operação 3: Tornar o elemento a12 = 0. Isso é obtido somando-se a terceira linha à primeira, resultando:
⎡1 0 4 ⎤ ⎡ 1 0 1⎤
A3 = ⎢⎢0 − 1 − 1⎥⎥ I 3 = ⎢⎢− 1 1 0 ⎥⎥
⎢⎣0 1 3 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦
Operação 4: Tornar o elemento a22 = 1. Pode ser alcançado multiplicando-se a segunda linha por -1, resultando:
⎡1 0 4⎤ ⎡ 1 0 1⎤
A4 = ⎢⎢0 1 1 ⎥⎥ I 4 = ⎢⎢ 1 − 1 0 ⎥⎥
⎢⎣0 1 3 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦
Operação 5: Tornar o elemento a23 = 0. Alcançado através da multiplicação da segunda linha por -1 e somando-se com a
terceira, resultando:
⎡1 0 4⎤ ⎡ 1 0 1⎤
A5 = ⎢⎢0 1 1 ⎥⎥ I 5 = ⎢⎢ 1 − 1 0 ⎥⎥
⎢⎣0 0 2 ⎥⎦ ⎢⎣ − 1 1 1 ⎥⎦
Operação 6: Tornar o elemento a33 = 1. Para tal, divide-se a terceira linha por 2, resultando:
⎡1 0 4⎤ ⎡ 1 0 1 ⎤
A6 = ⎢⎢0 1 1 ⎥⎥ I 6 = ⎢ 1 − 1 0 ⎥⎥
⎢
⎢⎣0 0 1 ⎥⎦ ⎢⎣ − 1 / 2 1 / 2 1 / 2 ⎥⎦
Anexos 439
Operação 7: Tornar o elemento a23 = 0. Para tal, multiplica-se a terceira linha por -1 e soma-se à segunda, resultando:
⎡1 0 4⎤ ⎡ 1 0 1 ⎤
A7 = ⎢⎢0 1 0 ⎥⎥ I 7 = ⎢ 3 / 2 − 3 / 2 − 1 / 2⎥⎥
⎢
⎢⎣0 0 1 ⎥⎦ ⎢⎣ − 1 / 2 1 / 2 1 / 2 ⎥⎦
Operação 8: Tornar o elemento a13 = 0. Finalmente, é su¿ciente multiplicar a terceira linha por -4 e somá-la à primeira,
resultando:
⎡1 0 0⎤ ⎡ 3 − 2 −1 ⎤
A8 = ⎢⎢0 1 0 ⎥⎥ I 8 = ⎢⎢ 3 / 2 − 3 / 2 − 1 / 2⎥⎥
⎢⎣0 0 1 ⎦⎥ ⎣⎢ − 1 / 2 1 / 2 1 / 2 ⎥⎦
Observe-se que, após oito operações, a matriz A8 tornou-se uma matriz identidade, e a matriz I8 é a inversa de A.
⎡ 1 1⎤ ⎡2 ⎤
Seja a matriz A e o vetor b, conforme ao lado: A=⎢ ⎥ , b=⎢ ⎥
⎣− 1 0 ⎦ ⎣1 ⎦
Nesse caso, é possível realizar a operação diretamente, obtendo a inversa de A e a multiplicando por B, ou através do pró-
prio processo de inversão de A, utilizando uma matriz aumentada, como se segue:
⎡ 1 1 2 ⎤
A+ = ⎢ ⎥ =[ A b ]
⎣− 1 0 1 ⎦
Aplicando o processo de inversão na matriz aumentada, utilizando o método das operações elementares, tem-se:
⎡ 1 1 2 ⎤ ⎡1 0 ⎤
A+ = ⎢ ⎥ I=⎢ ⎥
⎣− 1 0 1 ⎦ ⎣0 1 ⎦
⎡ 1 1 2 ⎤ ⎡1 0 ⎤
A+ = ⎢ ⎥ I=⎢ ⎥
⎣ 0 1 3 ⎦ ⎣1 1 ⎦
440 Programação Linear e Fluxos em Redes
• Operação de canonização da segunda coluna, multiplicando a segunda linha da aumentada por -1 e somando à segunda
linha, concluindo-se o processo de obtenção da inversa de A
⎡ 1 0 −1 ⎤ ⎡ 0 −1 ⎤
A+ = ⎢ ⎥ I=⎢ ⎥
⎣ 0 1 3 ⎦ ⎣1 1 ⎦
foi obtido diretamente no quadro aumentado. Ou seja, quando realizamos a inversão da matriz A, no quadro aumentado, os
vetores agregados resultantes representam o produto dos vetores originais pela inversa de A. O quadro ¿nal do processo será:
[I A −1b ] [A ] −1
2
Estudo dos Sistemas de Equações Lineares
Um sistema de equações lineares pode admitir uma solução, in¿nitas soluções ou ser incompatível. Na determinação das
soluções dos sistemas lineares, o Teorema de Cramer é central:
Teorema de Cramer
Qualquer sistema de n equações lineares com n incógnitas, cujo determinante dos coeÀcientes das
incógnitas é diferente de zero, admite uma única solução.
1. Se ' z 0 os valores das incógnitas são todos zero e a solução é denominada trivial.
2. Se ' = 0 o sistema admite in¿nitas soluções distintas e é dito indeterminado.
Dela é possível deduzir diversos determinantes de ordem a11 a12 ..... a1n
m. Supondo pelo menos um deles diferente de zero e or- Δ = a21 a2 ..... a2 n ≠ 0 (T02)
ganizando as incógnitas e restrições, obtém-se: am1 am 2 ..... amn
Como o sistema da direita possui ¨ 0, é possível determinar os valores das m incógnitas x1 , x2 , .... , xm (incógnitas
principais), em função das n-m restantes (incógnitas não principais), de tal sorte que a cada conjunto de valores atribuídos
arbitrariamente a estas, corresponderá um conjunto determinado de valores para aquelas. Conta-se que o sistema proposto,
dentro da hipótese da solução em função das incógnitas principais, é indeterminado. Há in¿nitas soluções para o sistema,
já que a partir de qualquer uma das in¿nitas atribuições de valores para as variáveis não básicas se pode encontrar uma
solução para o sistema.
442 Programação Linear e Fluxos em Redes
x Combinação Cônica
Cônica
x2
x Combinação AÀm
n
x = λ1x1 + λ2 x 2 + .... + λn x n quando ∑ λi = 1
Afim
x1 i =1
x2
x Combinação Convexa
Convexa
n
x1 x = λ 1 x1 + λ 2 x2 +. . . .+ λ n xn quando ∑λ
i =1
i = 1 e λi ≥ 0
x2
A noção de dependência linear pode ser entendida como uma generalização do conceito de proporcionalidade entre várias
grandezas. Considerando dois conjuntos de números que se seguem:
São ditos conjuntos proporcionais um ao outro quando é possível determinar duas constantes O1 e O2 não simultaneamente
nulas, tais que
O1 xi (1) + O2 xi (2) = 0 (i = 1, 2...,n)
Anexos 443
A de¿nição anterior tem a vantagem, como caso particular, àquele em que um dos conjuntos é constituído por zeros. Os
conjuntos podem ser generalizados para polinômios f1 , f2 ,..., fm. Os polinômios se dizem, então, linearmente dependentes
quando é possível determinar m constantes, não todas nulas O1, O2 ,..., Om, de tal sorte que:
f1 O1 + f2 O2 + ... + fmOm = 0
Isso signi¿ca que um conjunto de fm vetores é linearmente dependente quando é possível obter o vetor zero por combinação
linear dos vetores com pesos Oi t 0, i = 1,...,m.
Sabe-se que, basicamente, um sistema de equações pode admitir as seguintes condições de solução:
• sistema compatível:
• com uma solução;
• com in¿nitas soluções;
• sistema incompatível.
O método das operações elementares pode ser explorado no sentido de permitir a identi¿cação de con¿gurações de cálculo
típicas para a aplicação na solução de sistemas lineares em que o número de incógnitas é igual ao número de equações.
Nesse sentido, o conceito de matriz aumentada deve ser introduzido.
Denomina-se matriz aumentada do sistema a matriz formada pelos coe¿cientes do sistema de equações lineares e seus
termos independentes, como o exemplo que se segue busca esclarecer.
x Exemplo 1:
Através de operações elementares é possível transformar a matriz S em uma matriz escalonada e estudar o comportamento
do sistema de equações como se segue:
⎡ 1 2 1 1 ⎤
S1 = ⎢⎢ 0 − 5 0 0 ⎥
⎥
⎢⎣ 3 1 3 4 ⎥⎦
⎡ 1 2 1 1 ⎤
S2 = ⎢⎢ 0 − 5 0 0 ⎥
⎥
⎢⎣ 0 − 5 0 1 ⎥⎦
⎡ 1 2 1 1 ⎤
S3 = ⎢⎢ 0 1 0 0 ⎥
⎥
⎢⎣ 0 − 5 0 1 ⎥⎦
Operação 4: Tornando unitário o elemento s32, multiplicando a linha 2 por 5 e somando-a à linha 3:
⎡ 1 2 1 1 ⎤
S3 = ⎢⎢ 0 1 0 0 ⎥
⎥
⎢⎣ 0 0 0 1 ⎥⎦
Como é possível se observar, na última linha da matriz escalonada S existe uma inconsistência no sistema de forma que a
solução é claramente impossível.
x Exemplo 2:
Por operações elementares vamos transformar a matriz S em uma matriz escalonada e estudar o comportamento do sistema
de equações:
⎡ 1 3 1 5 ⎤
S1 = ⎢⎢ 0 − 11 − 11 − 22 ⎥⎥
⎢⎣ 3 1 3 4 ⎥⎦
⎡ 1 3 1 5 ⎤
S2 = ⎢⎢ 0 − 11 − 11 − 22 ⎥
⎥
⎢⎣ 0 − 8 0 − 11 ⎥⎦
⎡ 1 3 1 5 ⎤
S3 = ⎢⎢ 0 1 1 2 ⎥
⎥
⎢⎣ 0 − 8 0 − 11 ⎥⎦
Operação 4: Tornando unitário o elemento s32, multiplicando a linha 2 por 8 e somando-a à linha 3:
⎡ 1 3 1 5 ⎤
S4 = ⎢⎢ 0 1 1 2 ⎥
⎥
⎢⎣ 0 0 8 5 ⎥⎦
⎡ 1 3 1 5 ⎤
S5 = ⎢⎢ 0 1 1 2 ⎥
⎥
⎢⎣ 0 0 1 5/8 ⎥⎦
Solução: Sistema determinado com uma solução x1= 5, x2= 2 e x3= 5/8.
446 Programação Linear e Fluxos em Redes
Apesar de, genericamente, os sistemas de equações lineares serem do tipo (T01) e, no caso de serem solucionados,
acabarem reduzidos a conjuntos de sistemas do tipo (T03), é interessante examinar a aplicação da técnica das operações
elementares para sua solução e acompanhar um exemplo desse processo de redução de sistemas do tipo (T01) a sistemas
do tipo (T03). Seja o exemplo abaixo:
x1 + x2 - x3 + x4 + 2x6 = 12
Seja o sistema de equações lineares ao lado: (T04)
-x1 + 2x2 + 2x3 + x5 = 6
x1 x 2 x 3 x4 x5 x6 b
O que conduz à matriz aumentada S: ⎡ 1 1 −1 1 0 2 12 ⎤
S=⎢
⎣ −1 2 2 0 1 0 6 ⎥⎦
Fixando-se as demais variáveis a zero. Nesse caso, a solução seria: x1 = 0, x2 = 0, x3 = 0, x4= 12, x5 = 6, ou em:
Ax = b
x = (0,0,0,12,6)
x4 x6 b
A seleção das submatrizes (T03) deve ser cuidadosa. Como ¿cou claro na de-
dução de (T03), não é qualquer submatriz que pode solucionar o sistema de ⎡ 1 2 12 ⎤
S=⎢
equações. Se a opção tivesse sido a submatriz ao lado, por exemplo: ⎣ 0 0 6 ⎥⎦
O determinante da submatriz (03) seria singular e a seleção não seria válida! Apesar de o fato exempli¿cado produzir um
resultado óbvio, é possível justi¿cá-lo também à luz do cálculo vetorial, o que permitirá possíveis generalizações. É possível
considerar as colunas da matriz aumentada como vetores e uma solução para o conjunto de equações do sistema como
uma combinação linear entre esses vetores. No exemplo, a combinação linear selecionada inicialmente para solucionar o
nosso sistema foi:
⎛1 ⎞ ⎛1 ⎞ ⎛ − 1⎞ ⎛1 ⎞ ⎛0⎞ ⎛ 1 ⎞ ⎛ 12⎞
x = λ1 x1 + λ2 x 2 + λ3 x 3 + λ4 x 4 +λ5 x 5 + λ6 x 6 = 0 ⎜⎜ ⎟⎟ + 0 ⎜⎜ ⎟⎟ + 0 ⎜⎜ ⎟⎟ + 12 ⎜⎜ ⎟⎟ + 6 ⎜⎜ ⎟⎟ + 0 ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟
⎝ − 1⎠ ⎝ 2⎠ ⎝2 ⎠ ⎝ 0⎠ ⎝1 ⎠ ⎝0⎠ ⎝ 6 ⎠
Anexos 447
DeÀnição 2
Um Espaço Vetorial a n dimensões é o conjunto de todos os vetores de n componentes.
As variáveis e a solução de um sistema de equações lineares podem ser consideradas vetores de um espaço de dimensão
m, como demonstrado no exemplo anterior.
DeÀnição 3
Um conjunto de vetores é dito Conjunto Gerador de um espaço vetorial, se todos os vetores do espaço
puderem ser expressos como uma combinação linear dos vetores desse conjunto.
DeÀnição 4
Uma Base de um espaço vetorial é um conjunto gerador do espaço, composto de m vetores Linear-
mente Independentes. As variáveis associadas a essas colunas denominaremos Variáveis Básicas.
No exemplo examinado anteriormente, x4 e x5 formam, inclusive, uma base canônica do espaço R2 (m = 2). Dessa forma,
existe uma equivalência de conceitos bastante útil: obter um sistema consistente do tipo (T03) é uma providência que
depende apenas de operações algébricas, se não for o fato de que nem todos os subconjuntos de m variáveis da matriz A
possuem um determinante diferente de zero. Os subconjuntos que podem solucionar de forma independente (permitindo
¿xar as demais variáveis a zero) o sistema de equações constituem uma base de dimensão m, ou seja, são variáveis line-
armente independentes no conjunto das restrições do sistema de equações, ou ainda: uma base de A é uma matriz de m
vetores coluna linearmente independentes de A.
DeÀnição 5
A cada base corresponde uma e somente uma solução para o sistema. A essa solução denomina-se
de solução Básica.
DeÀnição 6
Quando em uma solução Básica todas as componentes do vetor solução são não negativas ela é de-
nominada solução Básica Viável.
É provável que os sistemas indeterminados com um grande número de variáveis possuam um grande número de subma-
trizes que atenderão o requisito para formar uma base. Como existem n variáveis no sistema e os subconjuntos devem ser
448 Programação Linear e Fluxos em Redes
⎛ n⎞ n!
formados por apenas m variáveis, então até ⎜⎜ ⎟⎟ = bases poderiam ser teoricamente formadas. É importante
m
⎝ ⎠ m ! ( n − m )!
perceber que, mesmo diante de um número de bases com potencial exponencial, soluções não básicas, como no caso
(0, 0, 0, 6, 6, 3), talvez mais facilmente calculáveis, não são desejáveis especi¿camente para o caso da programação linear.
As funções-objetivo dos modelos de programação linear encontram seu valor ótimo, quando existe em um ou mais pontos
extremos dos seus universos de solução viáveis, ou seja, em bases dos sistemas de equações formados por suas restrições.
3
Noções de Unimodularidade
9 Uma matriz quadrada de elementos inteiros (matriz denominada inteira) A = [aij] é unimodular se |det A| = 0 ou 1.
9 Uma matriz de elementos inteiros A é totalmente unimodular se toda submatriz quadrada não singular de A é unimo-
dular.
9 Uma matriz A é euleriana por coluna (ou linha) se a soma dos elementos de cada coluna (ou linha) for par.
9 Uma matriz A é euleriana se for, simultaneamente, euleriana por linha e por coluna.
9 Se A é totalmente unimodular, toda solução básica Ax = b, onde A e b são matrizes de elementos inteiros, é inteira.
9 É condição necessária para que a matriz A seja totalmente unimodular aijA aij = 0, + 1, - 1.
Teorema de Camion
Uma matriz A com componentes {0,1,-1} é totalmente unimodular se e somente se a soma dos elementos
de cada submatriz Euleriana quadrada de A é múltipla de 4.
Anexos 449
Teorema de Truemper
Uma matriz A com componentes {0,1,-1} é t.u. se e somente se toda submatriz quadrada Euleriana for
singular.
Para mais detalhes sobre unimodularidade, as seguintes referências são indicadas: Truemper (1976a e 1976b), Chandra-
sekaran (1969), Hoffman e Kruskal (1957), Heller e Hoffman (1962).
4
Elementos Geométricos no Estudo da Solução de Sistemas Indeterminados
Este tópico objetiva esclarecer a importância das soluções básicas na estratégia de solução de problemas de programação
linear, indicando também os elementos para o entendimento dos critérios de escolha e troca dessas bases em algoritmos in-
terativos de solução. O estudo dos elementos geométricos associados ao problema permitirá, igualmente, uma via elegante
e de fácil compreensão para o problema da formalização matemática.
Os conjuntos convexos possuem diversas propriedades geométricas. Algumas dessas propriedades e características são
importantes para esclarecer o processo de solução dos sistemas indeterminados de equações lineares.
DeÀnição 7
Um subconjunto X e Rn é Convexo se e somente se, para todos os vetores x1 , x2 e X tem-se que
(Ox1 + (1- O) x2 ) e X e Oe {0,1}.
DeÀnição 8
Denomina-se Ponto Extremo de um Conjunto X a todo ponto que não pode ser expresso por
Combinação Linear Convexa de quaisquer outros dois pontos distintos e igualmente perten-
centes a X.
Figura T2 mostra que os pontos x1 e x3 podem ser obtidos por uma combinação linear convexa de outros dois pontos do
conjunto C. O mesmo não ocorre com um ponto extremo.
x2
Conjunto
o
Convexo C
A Figura T3 mostra que o ponto x2 só pode ser obtido por uma Combinação Linear Cônica ou A¿m, e nunca por ambas.
Anexos 451
Combinação
Afim Combinação
Cônica
x3
x5 Ponto
Conjunto Extremo
Convexo C x4 x3
Ponto
x4 Conjunto Extremo
Convexo C
x5
DeÀnição 9
A reunião dos pontos extremos de um conjunto convexo X é denominada Perfil.
Ao ser realizada a associação entre as variáveis dos sistemas lineares e os vetores, é estabelecida uma associação direta
entre o conjunto das soluções desses sistemas e as ¿guras geométricas geradas pelas combinações entre vetores em Rn.
Dessa forma, é possível demonstrar que:
Teorema 1
O conjunto de todas as soluções viáveis de um modelo de Programação Linear é um Conjunto
Convexo.
Grande parte dos pontos do conjunto convexo das soluções viáveis de um modelo de Programação Linear é interna ao
conjunto, como o ponto x2 da Figura T2. Esses pontos incluem variáveis que são linearmente dependentes entre si, uma vez
que podem ser obtidos por combinações lineares convexas de outros pontos desse mesmo conjunto. Outros serão exter-
nos. Dentre os pontos externos, alguns serão extremos. Os pontos extremos não podem ser obtidos por combinação linear
convexa de outros pontos do programa, ou seja, serão correspondentes às soluções básicas do programa. De fato, essa cor-
respondência é biunívoca. Para cada ponto extremo existe uma base associada e vice-versa, decorrendo daí o teorema 2:
Teorema 2
Toda Solução Básica Viável do sistema Ax = b é um Ponto Extremo do Conjunto das Soluções Viáveis.
452 Programação Linear e Fluxos em Redes
As soluções extremas dos conjuntos convexos são atrativas e centrais na solução de problemas de programação linear.
Em termos de solução, as in¿nitas soluções dos sistemas indeterminados que decorrem da formulação de um problema de
programação linear são indistintas, sem uma função objetivo associada. O objetivo de um Programa de Programação Linear
(programa compreendido no sentido de planejamento) é solucionar um sistema indeterminado atendendo a otimização de
uma função objetivo. Cada solução do sistema de restrições determina um valor para a função objetivo. O desejo do plane-
jador é otimizar a função objetivo, atendendo a exigência do conjunto de restrições. Em última análise, para um Programa
de Programação Linear, o planejador seleciona uma ou mais soluções do universo das soluções viáveis, um universo que
provavelmente será in¿nito. Contudo, para atender uma função objetivo linear, a seleção deve considerar somente as solu-
ções viáveis extremas. Considerando uma função objetivo sobre o universo das soluções viáveis do sistema Ax = b, então
os seguintes teoremas se veri¿cam:
Teorema 3
Se uma função possui um máximo ou um mínimo Ànito sobre um conjunto convexo, então pelo
menos uma solução ótima é um ponto extremo desse conjunto convexo.
Teorema 4
Se a função objetivo assume o máximo ou o mínimo em mais de um ponto extremo, então toma o
mesmo valor para qualquer combinação linear convexa desses pontos extremos.
Com base nos resultados anteriormente relacionados, enfatiza-se que, no caso da matriz de restrições ser constituída por
equações lineares que formem uma ¿gura convexa e compacta, então a solução do modelo de programação linear será
encontrada nos pontos extremos dessa ¿gura.
Visando aprofundar o entendimento do comportamento da função de otimização sobre o universo das soluções viáveis
dos sistemas de restrições, o item 4.2 debate a inÀuência da geometria dos conjuntos convexos na otimização de funções
lineares.
x Variedade Linear
Um conjunto V é denominado Variedade Linear, se ∀x1 , x 2 ∈ V tem-se que λx1+(1 − λ ) x 2∈ V para qualquer λ ∈ R
. Como exemplos de Variedades Lineares é possível citar a reta e o plano. Toda Variedade Linear é um conjunto convexo.
Ressalte-se que a recíproca não é verdadeira.
x Geometria em Rn
9 Hiperplano
O conceito de Hiperplano (H) generaliza a noção de reta em R2 e de plano em R3, da seguinte maneira:
H = { x ∈ E n | α x = k } onde α ≠ 0 e k ∈ R
Anexos 453
H
x0
x
Figura T4. Hiperplano H.
O que é equivalente a:
H = { x ∈ E n | α ( x − x 0 ) = 0, x 0 ∈ H }
9Semiespaço
Um Hiperplano divide o espaço vetorial em regiões denominadas semiespaços, da seguinte forma:
H + = { x | αx ≥ k } ≠ ∅ e α ≠ 0
H − = { x | αx ≤ k } ≠ ∅ e α ≠ 0
ou então:
H + = { x | α ( x − x 0 ) ≥ 0}
α
H
x0
9 Raios e direções
Um Raio Vetor é uma coleção de pontos da forma:
R = { x 0 +λd:λ ≥ 0} d ≠ 0
Onde:
x0 {vértice e
d { direção do raio vetor
x0 + d x 0 + λd
x0
d
Figura T6. Raios e Direção.
9 Direção de um conjunto
n
X = Conjunto Convexo, e X = { x ∈ E n | Ax = b x ≥ 0} . Diremos que d ∈ E é uma direção de X se:
∀x 0 ∈ X ,{ x 0 + λd : d ≥ 0} ⊆ X
ou seja:
A( x + λd ) = b
∀x ∈ X , λ ≥ 0
x + λd ≥ 0
Conclusão imediata: se um conjunto é limitado, não tem direção. A Figura T7 mostra uma direção em um conjunto qualquer.
Anexos 455
x 0 + λd
x0
d
Figura T7. Direção em um conjunto.
x 1 − 2x 2 + λ (d 1 − 2d 2 ) ≥ −6 d 1 − 2d 2 ≥ 0
x 1 − x 2 + λ (d 1 − d 2 ) ≥ −2 d1 − d 2 ≥ 0
(4,2)
d1
(0,2)
d2
(0,1)
9 Conjuntos poliédricos
Uma interseção de um número ¿nito de semiespaços fechados denomina-se poliedro
De modo geral:
H = { x | Ax ≤ b} é um Poliedro b ∈ E n
9 Representação em função dos pontos extremos e das direções extremas de um conjunto convexo
Seja o poliedro:
− 3x1 + x 2 ≤ −2
− x1 + x 2 ≤ 2
− x1 + 2x 2 ≤ 8
− x 2 ≤ −2
λ1 = λ2 = 1/ 2
λ3 = 0
μ1 = 7 / 3 e μ 2 = 0
9 Envoltória Convexa
Seja S={x1 , x2 ...., xp ,...} En . A envoltória convexa de S, ou conv S, é o menor conjunto convexo contendo S, ou seja, é o
conjunto de todas as combinações convexas dos elementos de S, isto é:
Anexos 457
conv S = { x | x = ∑ λ j x j , onde ∑ λ j = 1, λ j ≥ 0, x j ∈ S }
j j conv S
A Figura T9 mostra uma envoltória convexa de um conjunto
de pontos não convexo.
(P ): Min { X 0 = cx tal que Αx = b, x ≥ 0}, onde A = [aj ] é uma matriz m x n das comodidades a1 , a2 , ... , an.
Queremos agora debater a viabilidade de (P), ou seja, saber em que condições o problema não terá solução, ou ainda
X = { x tal que Αx = b, x ≥ 0} = ∅. Consideremos o cone gerado pelos vetores de comodidades:
n
Y = { y tal que y = ∑ λ j a j , λ j ≥ 0 j = 1, 2,..., n}
j =1
n n
Seja k = { y tal que y = ∑ λ j aj , ∑ λ j = 1, λ j ≥ 0 j = 1, 2,..., n}, a envoltória convexa dos pontos de¿nidos pelas comodi-
dades a1, a2 ,..., an. j =1 j =1
xj
De¿nindo λ j = , 0 ≤ λ j ≤ 1, com j = 1, 2,..., n, segue-se que b ∈k , ou seja, se X z, então, bRn deve pertencer ao
ξ ξ
cone gerado pelas comodidades, caso contrário X = , conforme Figuras T10 e T11.
b
Y
K b
a2 a2
b/ξ
a3
a3
O O
a1
x ≠∅ a1
x ≠∅
Figura T10. Caso 1 – problema viável Figura T11. Caso 2 – problema inviável
458 Programação Linear e Fluxos em Redes
(P ) Maximizar x 0 = 2x 1 + 4 x 2
Sujeito a:
x1 + x 2 ≤ 9
x1 ≤4
x2 ≤ 7
x 1≥ 0, x 2 ≥ 0
x2 x2
x 1 =4
7 C C
x 2 =7
D D
B B
E E x 0 =2x1 + 4x2 =32
x 1 + x 2 =9
A A
O O
4 x1 x1
Figura T12. Poliedro das soluções viáveis de (P) Figura T13. Solução de (P)
Tópico 2
Conceitos em Grafos
1
Conceitos Fundamentais em Grafos
O conceito de Grafo é simples e até intuitivo. Um grafo é uma representação de interdependência entre elementos que
são representados por vértices. Um grafo possui uma conveniente representação gráfica, contudo, dela independe.
Na representação gráfica, os elementos da relação são desenhados como vértices e o atendimento da relação ima-
ginada é simbolicamente representado por um traço entre os elementos associados, denominado aresta. O modelo
graficamente representado auxilia vários tipos de interpretações, contudo é insuficiente para formalizar completa e
satisfatoriamente as várias propriedades do modelo matemático. Consequentemente é necessário que um grafo seja
definido analiticamente.
x Grafo
DeÀnição de Grafo
2
Um Grafo é uma estrutura de abstração que repre-
senta um conjunto de elementos denominados vér- 2
tices e suas relações de interdependência ou ares- 1 1 b
tas. A Figura T14 mostra dois exemplos de grafos. f
4
c
7 6 e 4
3 3
Representação matemática
a d
Denominando por N o conjunto de vértices da estru- 6
tura, e por M o conjunto das arestas ou ligações en- 5 5
tre os vértices, um grafo pode ser representado por:
Grafo 1 Grafo 2
G = (N,M). Figura T14. Exemplos de grafos.
O conjunto N = {1, 2, ..., n} será composto dos n vértices do grafo, e M = {1, 2, ..., m} conterá as m arestas. É comum também
a utilização da variável xi, i = 1, 2, ..., n para a representação dos vértices. No grafo 1 da Figura T14 tem-se N = {1, 2, 3, 4, 5,
6, 7} e M = {(1, 4), (1, 7), (2, 7), (3, 4), (4, 5), (4, 6), (5, 6)}. No grafo 2 da Figura T14, N = {1, 2, 3, 4, 5} e M = {a, b, c, d, e, f}.
O conceito de grafo pode ser generalizado para o caso em que a relação entre os vértices não é constituída com apenas um
par de nós ou vértices. Os hipergrafos são modelos que permitem a representação de arestas que englobam mais de dois
vértices, como exempli¿ca a Figura T15. Na Figura T15 N = {x1 , x2 , x3 , x4 , x5 , x6 } e ȟ = {(1, 2, 3); (3, 4); (4, 5, 6)}.
x Hipergrafo
2
1
DeÀnição de Hipergrafo
6
Um Hipergrafo H é um par H = (N,ȟ), onde N 3
representa o conjunto dos nós de H e ȟ é uma 5
família das partes de N.
4
Como observado nas ¿guras anteriores, um grafo pode conter informações associadas aos seus vértices e arestas. Tais
anotações ou informações são denominadas Rótulos ou Pesos.
Eventualmente, um grafo pode possuir mais de uma aresta distinta ligando dois vértices, neste caso, ele é chamado de
multigrafo.
x Multigrafo
DeÀnição de Multigrafo
3
2 4
Um grafo G = (N,M) é um Multigrafo se existir mais de
uma aresta ligando o mesmo par de vértices.
1
Alguns grafos possuem peculiaridades próprias, tanto associadas aos vértices quanto aos arcos. Tais particularidades po-
dem ser úteis na representação de situações reais ou na construção e emprego de algoritmos de solução para problemas
em grafos. Alguns dos aspectos especí¿cos são mostrados a seguir.
x Grafo Direcionado
f c
Representação matemática 4
6 e 4
7
3 3
a d
Denominando por V o conjunto de vértices da es-
trutura, e por E o conjunto dos pares ordenados do 6
produto cartesiano n x n das ligações existentes em 5 5
G, um grafo orientado é também representado por:
Figura T18. Grafos direcionados.
G = (V, E).
No presente trabalho, a notação G = (N, M) será utilizada para representar grafos não direcionados e G = (V, E) para os
direcionados.
9 Grafo Bipartido
Outra signi¿cativa classe de grafos é a denominada Bipartida ou Grafos Bipartidos. Os grafos bipartidos podem representar
situações como as decorrentes da alocação de pessoas a tarefas, ferramentas a máquinas, emparelhamentos e problemas
de transporte.
1 2
DeÀnição de Grafo Bipartido
x Grafo Completo
x Grafo Regular
Alguns autores fazem distinção entre o conceito de grau para grafos orientados e não orientados. No caso dos grafos
orientados, o grau pode ser decomposto em duas parcelas: o grau interno ou o número de arcos chegando ao vértice, e o
grau externo, ou o número de arcos partindo do vértice. Essas parcelas do grau do vértice são denominadas semigrau e
denotadas, por convenção, com valores positivos e negativos. No caso dos grafos direcionados, a soma do semigrau interior
d(i)+ e exterior d(i)-, conduz ao valor ¿nal do grau do vértice. A expressão para a obtenção do grau em grafos orientados
está abaixo representada.
1
d(i) = ~d(i) ~+~d(i) ~
- +
2
= ~- 2~ + ~+ 2~= 4 7 5
Figura T22. Grau dos vértices em grafos direcionados.
Um dos pontos mais fundamentalmente associado à noção de grafos é o conceito de ligação entre vértices. De fato, o
modelo é basicamente uma estrutura adequada a representar topologicamente formas de conexão. Nesse sentido existem
duas formas especí¿cas de entender vizinhança entre vértices e arestas: uma para o caso dos grafos direcionados, e outra
para os não direcionados.
464 Programação Linear e Fluxos em Redes
x Vizinhança de Vértices
Como o conceito de vizinho, para o caso dos grafos direcionados, pode ser insu¿ciente no estabelecimento da compreensão
de determinadas relações. Para esses grafos é conhecido o conceito de sucessor e antecessor.
Antecessor de 3
DeÀnição de Sucessor e Antecessor de um Vértice
1 2
Diz-se que o vértice xj é sucessor de xi se existe pelo
3
menos um arco direcionado de xi para xj .
Denomina-se por Γ + (x ) o conjunto de todos os sucessores de x, e por Γ − (x ) o conjunto dos antecessores. No exemplo
da ¿gura, Γ + (3) = {4,5} e Γ − (3) = {1} .
Anexos 465
x Fechos Transitivos
É possível generalizar o conceito de vizinhança considerando a estrutura de proximidade através de um conceito associado
ao número mínimo de arestas de separação. Nesse caso é possível se considerar que os vizinhos dos vizinhos são vizinhos
de segunda ordem e assim por diante. No modelo de grafos, esse tipo de informação poderá ser útil para representar fe-
nômenos de propagação de informação ou de capacidade de comunicação. Um Fecho Transitivo é um desdobramento de
níveis de vizinhanças que ressalta o fenômeno da alcançabilidade.
∧
Γ +1(1) Ł relação de vizinhança até nível 1 (afastados do vértice 1 em até uma aresta ou arco) = {3, 4}.
∧ ∧
Γ +2 (1) Ł relação de vizinhança até nível 2 (afastados do vértice 1 em até duas arestas ou arcos) = Γ +1(1) {7,8,9,10} =
{3, 4} {7, 8, 9,10} = {3, 4, 7, 8, 9,10}.
x Percurso e Cadeia
Percurso é uma denominação genérica para qualquer trajetória sobre vértices e arestas de G. Os percursos que podem ser
realizados no interior de um grafo, através de visitas a arestas e vértices vizinhos, são características notáveis do modelo. As
cadeias são percursos realizados através de arestas conectadas por vértices em comum. Um percurso genérico é qualquer
sequência contínua de arestas, com ou sem repetição de arestas.
466 Programação Linear e Fluxos em Redes
DeÀnição de Percurso
Um Percurso, x0, u1, x1, u2,..., xk-1, uk, xk, é uma se- 1
quência ¿nita de vértices e arestas, começando
e terminando com vértices, tal que xi-1 e xi são os
vértices terminais da aresta ui, 1 i k, k 1. u1
u5 u2
6 3 5
DeÀnição de Cadeia 4
u3
u4
Uma Cadeia é um percurso sem repetição de arestas.
2
A Figura T26 exempli¿ca a cadeia 1, u1,4, u2, 3, u3, Figura T26. Cadeia.
2, u4, 4, u5, 6. Observa-se que o vértice 4 é visitado
duas vezes na cadeia.
x Caminho
As cadeias não possuem restrição de revisita aos vértices. Se em uma cadeia não existir repetição dos vértices visitados, a
cadeia será denominada de Caminho.
DeÀnição de Caminho u1
u2
Um Caminho é uma cadeia sem repetição de vértices. 6 3 5
4 u3
A Figura T27 exempli¿ca o caminho 6, u1, 1, u2, 3, u3, u4
2, u4, 5. O caminho é denotado pelos vértices inicial
e ¿nal. 2
x Comprimento de Caminho
1 1
Em um Grafo G, não ponderado, o comprimento de 1
um caminho é o número de arestas desse caminho. 4 1 4 1
6 3 6 3
Em um Grafo G, ponderado, o comprimento de um ca- 2 1 5 5
2
minho é a soma dos pesos das arestas desse caminho. 7 5 7 5
A Figura T28 exempli¿ca um caminho com três ares- Caminho de comprimento 3 Caminho de comprimento 11
tas, e o mesmo caminho em um grafo ponderado de
comprimento ou custo igual a 5+5+1=11. Figura T28. Exemplos de caminho.
Anexos 467
DeÀnição de Distância 1
x Ciclo ou Circuito
DeÀnição de Ciclo
x Conexidade
A Figura T32 exempli¿ca os dois tipos de grafos Grafo Conexo Grafo Desconexo
citados. Figura T32. Conexidade.
x Árvore 2
1
DeÀnição de Árvore
3
Um grafo G é denominado Árvore se G é conexo e
não contém ciclos. 4 5
Figura T33. Uma árvore.
Considerando a necessidade de distinguir estruturas parciais em um grafo, é natural o interesse em estudar as propriedades
da composição do modelo. Alguns conceitos importantes são apresentados a seguir.
x Subgrafo
1 2 1 2
DeÀnição de Subgrafo
x Grafo Complemento
1 2 1 2
DeÀnição de Grafo Complemento
x Remoção de Vértices
A operação de remoção de um nó de um grafo G = (N, M) conexo pode resultar em dois tipos de subgrafos de G: conexo
ou desconexo. A remoção de vértices é uma operação que sempre acarreta a remoção das arestas associadas ao vértice
removido.
O vértice cuja remoção ocasiona a formação de um subgrafo de G desconexo é denominado Ponto de Articulação. Quan-
do um grafo não possuir pontos de articulação G, é dito Não Separável.
A Figura T36 exempli¿ca operações de remoção de vértices em um grafo.
1 1
Remover 4
4
6 3 6 3
2 2
7 5 7 5
Grafo G 1 Subgrafo Desconexo
7 5
x Bloco
A operação de desconexão ou separação de G pode resultar em subgrafos com propriedades de interesse, como no caso
dos blocos.
DeÀnição de Bloco
7 6
4
Um subgrafo de G é um Bloco quando: 3
Grafo G
For não separável maximal em G. 1
2 5
Isto signi¿ca que, além de ser não separável, o blo-
co também não é subgrafo próprio de qualquer sub-
grafo próprio não separável de G. 7 6
6
4
A Figura T37 exempli¿ca os blocos do grafo G. 4 3
Blocos em G
2 5
Figura T37. Blocos de G.
1
Uma componente conexa de um grafo G é um sub-
grafo conexo maximal de G.
4
Isto signi¿ca que além de ser um subgrafo conexo 6 3
de G, uma componente conexa não é subgrafo pró-
prio de qualquer subgrafo próprio conexo de G. Componente B
x Corte em Arestas
A operação de remoção de arestas de um grafo G = (N, M) não obriga a remoção dos vértices associados em G. Todavia,
efeitos notáveis da remoção de arestas importam principalmente na alteração de invariantes e na alteração da conexidade
do grafo. Caracterizando-se a situação em que a remoção de arestas de um grafo G acarreta sua desconexão, de¿ne-se
Conjunto de Corte ou Corte em Arestas de G.
Anexos 471
u2 Corte
Um corte em arestas em um grafo G = (N, M) é
um subconjunto de arestas cuja remoção forma
pelo menos dois subgrafos conexos maximais — 4
6 3
duas componentes conexas em G. u1
2
Observe-se que, em virtude do conjunto M cons- 7 5
tituir um conjunto de corte trivial, o interesse na Grafo G
obtenção de corte em arestas refere-se a con- Figura T39. Corte em arestas.
juntos com o menor número de arestas possível.
A Figura T39 exempli¿ca um corte em arestas
em G, sendo o conjunto {u1, u2}.
1
Observação:
2 5
Figura T40. Aresta ponte.
x Rank
Rank de um grafo é um invariante não negativo bastante utilizado em teoria dos grafos.
DeÀnição de Rank
4
6 3
O Rank “r” de um grafo com n vértices e c com- 2
7 5
ponentes conexas é dado por:
r=7-2=5
r=n-c
Figura T41. Rank de um grafo.
472 Programação Linear e Fluxos em Redes
2
Estruturas de Dados para Representação de Grafos
Um grafo pode ser representado de forma grá¿ca ou matemática. Pelo menos quatro diferentes formas de representação
podem ser úteis para a representação computacional.
Trata-se de uma representação simples. O grafo é expresso em uma matriz quadrada de ordem n, A = [aij], através dos vér-
tices e de suas relações de vizinhança. As linhas e as colunas da matriz A estão associadas aos vértices do grafo. A matriz
é normalmente booleana, ou seja, seus elementos são 0 e 1. Quando existem arestas paralelas, o valor de aij pode deixar
de ser 0/1 e representar o número de arcos paralelos.
6 0 0 0 1 1 0
Uma ligação é constituída por um arco ou por uma 5
aresta ligando diretamente os vértices i e j.
Matriz de Adjacência Grafo G
A Figura T42 exempli¿ca como a matriz de adjacência
é formada a partir de um grafo G não direcionado. Figura T42. Matriz de adjacência de um grafo não direcionado.
1 2 3 4 5 6
1 0 0 0 0 0 0 2
1
2 0 0 0 0 0 0
3 0 1 0 1 0 0
Grafos direcionados: 4
3
4 1 1 0 0 1 0
A Figura T43 mostra a matriz de adjacência de um 6
caso de grafo direcionado. 5 0 0 0 0 0 1
6 0 0 0 1 0 0
5
Nesse caso, as colunas da matriz correspondem às arestas do grafo e as linhas aos vértices.
Uma ligação é constituída por um arco ou por uma Matriz de Incidência Grafo Não Direcionado
aresta ligando diretamente os vértices i e j.
Figura T44. Matriz de incidência em grafo não direcionado.
u1 u2 u3 u4
1 2
Grafos direcionados: 1 1 0 0 0
u1 u2
2 0 1 0 0
3 -1 -1 1 1 u3
3
u4
4 0 0 -1 0
A Figura T45 calcula a matriz de adjacência em um
caso de grafo direcionado. 5 0 0 0 -1 4 5
A representação utilizando Listas Encadeadas é conveniente para a e¿ciência computacional de alguns algoritmos, bem
como para a economia de memória de armazenamento. A mais tradicional representação por Listas Encadeadas possui uma
con¿guração baseada nos vértices do grafo, e em suas vizinhanças. O vetor Lista_1 possui comprimento igual ao número
de vértices do grafo, ou seja, n posições. A estrutura ocupa, para o caso dos grafos não direcionados, mais 2m posições na
memória, uma vez que as vizinhanças são recíprocas.
474 Programação Linear e Fluxos em Redes
Lista_1
3 1 2 4 5
1 2 3
2 1 3
1 2
u1 u2
4 3
u3 u4
3
5 3
4 5
É útil para o caso de grafos esparsos, ou seja, com poucas arestas. São utilizados dois vetores para resumir as informa-
ções de vizinhança. O vetor SX registra o número de vizinhos do vértice correspondente à posição x, enquanto o vetor NX
os enumera. A Figura T47 ilustra a estrutura de representação. A representação vetorial simula a representação por listas
encadeadas de vértices.
Índices 1 2 3 4 5 1 2
u1 u2
SX 2 2 4 1 1
u3 u4
3
NX 2 3 1 3 1 2 4 5 1 2 4 5
O dicionário da língua portuguesa, editado pelo Ministério da Educação, define algoritmo (termo matemático) como
um processo formal de cálculo. A execução de um algoritmo não deve incluir decisões subjetivas ou o uso da intuição
e criatividade. O conceito de algoritmo demanda, implicitamente, a aceitação de um processo sistemático em etapas
para a solução de problemas. Nessa linha conceitual seguem Tremblay & Bunt (1980). Os métodos para efetuar as
operações de soma, multiplicação, radiciação e vários outros tipos de cálculo atendem as exigências dessa 1 a defini-
ção de algoritmo.
Algoritmo 1
Uma sequência ordenada e não ambígua de passos que levam à solução de um problema. Tremblay &
Bunt (1980).
Todavia, não é tão simples de¿nir bem qual seria o processo sistemático ao qual o conceito de algoritmo está associado. A
de¿nição de Cormen et al. (2009) é bem menos abrangente e cria uma associação formal entre o conceito de algoritmo e a
ideia de procedimento computacional.
Algoritmo 2
Algoritmo é uma sequência bem deÀnida de procedimentos computacionais (passos) que levam uma
entrada a ser transformada em uma saída - Cormen et al. (2009).
A ideia de associar o conceito de algoritmo ao fenômeno do processamento de dados, bem como à transformação de uma
entrada traduzível em termos computacionais, implica a necessidade da de¿nição formal do alfabeto utilizado na codi¿cação
dessa entrada/saída e nas demais estruturas necessárias à transformação.
Admitindo a de¿nição de procedimento computacional, é possível pensar o algoritmo como uma espécie de função proces-
samento sobre o alfabeto de entrada/saída. Nesse caso, um algoritmo é a descrição do cálculo ou avaliação sistemática
dessa função.
Donald Knuth (1997) detalha e aprofunda a de¿nição de algoritmo, exigindo a capacidade de formalizar os passos e de
torná-los capazes de programação e execução computacional.
476 Programação Linear e Fluxos em Redes
Algoritmo 3
É um conjunto de regras que permitem que uma determinada entrada de dados seja transformada em
um saída especíÀca. Cada passo deve ser deÀnido precisamente e poder ser traduzido em linguagem
computacional e executado por um computador – Knuth (1997).
As exigências contidas na de¿nição de algoritmo implicam um processo formal de cálculo. Um exemplo pode ser dado
quanto a um problema de decisão. Um problema de decisão consiste em determinar se um dado elemento pertence ou não
a um conjunto, ou seja, se tal elemento satisfaz a propriedade que de¿ne o conjunto. Um algoritmo para resolver o problema
de decisão recebe como dado de entrada um elemento x, e após um processo de cálculo (passos do algoritmo) fornece
uma resposta do tipo “sim” ou “não” de¿nindo se x satisfaz ou não à propriedade veri¿cada. Se tal algoritmo existir, diz-se
que o problema de decisão é decidível. Se não existir um algoritmo capaz de realizar tal veri¿cação, diz-se que o problema
é indecidível.
Como um resumo, é possível sintetizar o conceito de algoritmo sob três grandes focos expressos no campo que se segue:
Algoritmo - Resumo
O conceito comporta três focos:
2. Uma sequência bem deÀnida de procedimentos (passos) que levam uma entrada a
ser transformada em uma saída.
2
Corretude dos Algoritmos
Denomina-se, em Ciência da Computação, por corretude de um algoritmo a propriedade desse algoritmo em retornar a
resposta correta para cada entrada de dados válida. Garantir o correto funcionamento de um algoritmo é uma necessidade
natural para quem deseja solucionar um problema. Em não raras situações, um algoritmo pode ser capaz de retornar res-
postas somente para um subconjunto de casos de um problema, ainda que, quando retorne uma resposta, essa resposta
seja correta. Os casos especí¿cos de um problema mais amplo são denominados instâncias do problema. Para ser possível
garantir a correção de um algoritmo na solução de um problema é necessário garantir seu acerto em todas as instâncias
possíveis do problema. Basta a ocorrência de um fracasso para que a ine¿cácia de um algoritmo seja demonstrada. Por ou-
tro lado, para provar seu acerto, serão necessárias, normalmente, providências árduas. Uma forma de reduzir a di¿culdade
da prova da correção de um algoritmo é o estabelecimento de contextos especí¿cos de funcionamento, ou seja, restrições
ou limites em que é possível garantir que as instâncias são solucionadas corretamente.
Anexos 477
3
EÀciência dos Algoritmos
Ser capaz de criar um conjunto de instruções que soluciona certo problema não signi¿ca que tais instruções possam ser
executadas computacionalmente de forma razoável. Aqui se entende como razoável um caminho que utilize um tempo de
processamento factível, demandando recursos de hardware de mobilização possível e economicamente viável.
Deve-se manter em vista que o objetivo maior de um algoritmo é solucionar o problema de forma rápida e econômica. O
termo rápido diz respeito à realidade do ¿m prático imposto ao algoritmo. O termo econômico responde pela realidade da
limitação dos recursos humanos ou computacionais.
Análise de Algoritmos
Analisar um algoritmo signiÀca predizer seu comportamento, tanto no sentido da precisão e adequação
de suas respostas, quanto em relação à demanda de recursos em passo de execução. Como recursos
entende-se a memória, o tempo de processamento, a natureza das operações realizadas nos passos e a
forma de processamento (sequencial, paralelo ou quântico).
Considerando que o algoritmo será executado em um computador que atende as condições impostas por uma Máquina de
Turing, o tempo do processamento computacional é um recurso que, tanto interfere no resultado do algoritmo, quanto pode
ser traduzido em memória ou utilizado para simular diferentes formas de processamento.
O tempo de processamento também pode ser associado, de forma aproximada, ao número de passos que um algoritmo
executa, dada uma entrada de comprimento n, onde o comprimento da entrada é o número de bits necessários para codi¿-
cá-la. Nessa hipótese, o tempo passa a cumprir o papel de medida da e¿ciência das etapas de processamento, tornando-se
uma grandeza representativa do desempenho da estratégia do algoritmo. Nesse papel, cumpre uma função de avaliação
de desempenho tão ou mais precisa que o número de passos do algoritmo, uma vez que o tempo de processamento pode
levar em conta aspectos da linguagem computacional e da adequação do processamento ao hardware, elementos que
normalmente escapam à contagem do número de passos do algoritmo.
3.1. FUNÇÕES O E :
x Funções assintóticas
Fazendo e representar o conjunto dos números naturais e o conjunto dos números reais, respectivamente, o conjunto
* representando o conjunto dos reais não negativos e + o conjunto dos reais estritamente positivos, é possível de¿nir:
Em virtude da de¿nição das funções anteriores, é possível estabelecer as seguintes notações que relacionam t(n) e f(n),
n:
478 Programação Linear e Fluxos em Redes
{
O (f (n) ) = t : ℵ → ℜ* | (∃ c ∈ ℜ + ) (∃ n0 ∈ℵ) (∀ n ≥ n0 ) [t (n) ≤ cf (n)] }
Ω( f ( n ) ) = { t : ℵ → ℜ *
| ( ∃ c ∈ ℜ + ) ( ∃ n0 ∈ ℵ) (∀ n ≥ n ) [t (n) ≥ cf (n)] }
0
t (n) e f (n)
A notação O representa o conjunto de todas as funções t(n) cf (n)
limitadas superiormente por um múltiplo positivo de f(n),
considerando-se n um valor su¿cientemente grande para
que esse efeito ocorra. A propriedade anterior é expressa t (n)
pelo seguinte limite:
t (n )
∞ > lim n →∞ ≥0
f (n ) t(n) = O(f(n))
n
A Figura T48 exempli¿ca o comportamento da função O(.) n0
com o crescimento de n, o tamanho da entrada. Figura T48. Função O(.)
t(n) e f(n)
A notação : representa o conjunto de todas as funções
t(n) limitadas inferiormente por um múltiplo positivo de f(n), t(n)
considerando-se n um valor su¿cientemente grande para
que esse efeito ocorra. A propriedade anterior é expressa
pelo seguinte limite: cf(n)
f (n )
∞ > lim n →∞ ≥0
t (n ) t(n)=Ω (f(n))
A Figura T49 exempli¿ca o comportamento da função :(.) n
com o crescimento de n, o tamanho da entrada. n0
As funções O e : são extremamente importantes para a análise de algoritmos, especialmente como uma medida de com-
plexidade de execução em função do tempo. Assim, caso o objetivo seja avaliar a função tempo da execução de um algorit-
mo, onde a variável de entrada é, por exemplo, o comprimento da entrada de dados, O(f(n)), signi¿ca que o tempo gasto por
um algoritmo para alcançar seu resultado é proporcional a f(n). As funções assintóticas proporcionam uma base matemática
para a avaliação de e¿ciência. O aspecto analisado com o uso dessas funções será o comportamento assintótico da função
de complexidade do algoritmo. Trata-se de uma simpli¿cação extraordinariamente útil quando a entrada do algoritmo, o valor
nominal de n, é su¿cientemente expressivo. Supostamente é esse o caso do processamento computacional. Neste texto,
quando uma função f(n) O(g(n)), será notado f(n) = O(g(n)).
Se f1 (n) = n4 – 2n2 – 20n e n for su¿cientemente grande, o termo em n4 dominará amplamente o resultado ¿nal da expressão.
Realmente, caso a função f2 (n) = n4 – 2n2 – 20n seja calculada, para, por exemplo, um valor de n igual a 1. 000. 000, os
valores percentuais de f1 (n) e f2 (n) estarão surpreendentemente próximos. Da de¿nição de O, se existir uma função g(n) tal
que f (n) c.g(n) para uma constante c ! 0, para valores n t n0, tem-se que f(n) = O(g(n)). No exemplo das funções f(n)
anteriores, para um conveniente valor da constante c, o termo em n4 seria dominante e poderíamos fazer g(n) = n4. Nesse
caso, O(n4 – 2n2 – 20n) = O(n4 + 2n2 + 20n) = O(n4). Em 1965, Jack Edmonds introduziu a ideia da utilização da função assin-
tótica para realizar a análise da complexidade dos algoritmos, e assim foi de¿nida a Complexidade Assintótica.
Anexos 479
Como foi esclarecido no item anterior, a notação assintótica O tem um objetivo bem claro dentro do cálculo da e¿ciência dos
algoritmos. Em muitas situações, o tempo de execução de um algoritmo depende simultaneamente de mais de um parâme-
tro. Esse é o caso, por exemplo, de algoritmos em grafos que envolvem a busca em vértices (valor n) e em arestas (valor m).
Nesse caso fazendo:
{
O (f (m , n) ) = t : ℵxℵ → ℜ * | (∃ c ∈ ℜ + ) (∃ m 0 ,n0 ∈ ℵ) (∀ n ≥ n0 ) (∀m ≥ m 0 ) [t (m , n) ≤ cf (m , n)] }
Alguns algoritmos podem ser analisados sob o ponto de vista de seu tempo de processamento, sem di¿culdades, quando
são consideradas instâncias que satisfazem certas condições. Uma dessas condições mais comum é a potência de 2. A
notação assintótica condicional preenche a necessidade de restringir o escopo da análise do algoritmo. De¿nindo-se B como
um domínio booleano, B = {0,1} (0 = falso, 1 = verdadeiro), e:
então é possível estabelecer a seguinte notação que relaciona as funções P(n) e f(n), n:
{
O (f (n ) | P (n ) ) = t : ℵ → ℜ* | (∃ c ∈ ℜ + ) (∃ n0 ∈ℵ) (∀ n ≥ n0 ) [P (n) ⇒ t (n) ≤ cf (n)] }
A equação anterior corresponde ao conjunto de todas as funções t(n) limitadas superiormente por um múltiplo real positivo
de f(n), onde n é su¿cientemente grande e P(n) ocorre.
Estimar a complexidade de um algoritmo é uma tarefa central para a computação. O caminho de medir empiricamente o
desempenho de um algoritmo esbarra em di¿culdades que vão desde o equipamento e compilador empregado até as ha-
bilidades do programador. Para analisar a sequência de processamentos prevista nos algoritmos é indispensável entender
como esses processamentos acontecem.
480 Programação Linear e Fluxos em Redes
O modelo RAM (Random Access Machine) permite resumir as etapas envolvidas no processamento computacional, sendo
exibido na Figura T51.
m
De¿nidos os elementos anteriores, a expressão que calcula o tempo de execução de um
programa P é dada pela expressão (T05):
∑ r t (I )
j =1
j j (T05)
Programa
Um programa é a formalização de um algoritmo em uma determinada linguagem de programação e se-
gundo suas regras de sintaxe e semântica.
Um programa é constituído de comandos e instruções que podem ser executados por um computador.
Em última análise, no modelo RAM, o estudo da complexidade de um algoritmo pode ser resolvido através da avaliação do somató-
rio (T05). Para simpli¿car o problema do cálculo do tempo de duração da computação das instruções do tipo Ij, j = 1,..., m, assume-
se t(I) = 1 para qualquer instrução I. Essa simpli¿cação é perfeitamente coerente com o uso de funções assintóticas do tipo O(.) e
(.) para a avaliação da complexidade em tempo computacional, uma vez que as relações entre a duração dos diversos tipos de
instruções é certamente de natureza constante, o que seria irrelevante no cálculo da ordem de complexidade. Outra vantagem na
adoção de t(I) = 1 é que assim o valor do tempo de execução de um programa iguala-se ao número total de instruções computadas.
Denominando por passo de um algoritmo Į a computação de uma instrução do programa P que o implementa, a complexi-
dade local do algoritmo Į é de¿nida como o número total de passos necessários à perfeita computação de P, para uma certa
entrada de dados E de comprimento n. Raciocinando assim, a complexidade de um algoritmo Į confunde-se com seu tempo
de execução, que será denominado T(n), e será fundamentalmente dependente da entrada de dados.
Nesse ponto é interessante ¿rmar o discernimento entre um problema Ȇ e suas instâncias. O termo instância signi¿ca um
conjunto de fatores que perfazem um determinado domínio. É utilizado para referir-se a um conjunto especí¿co de valores
dados ou parâmetros de entrada de um algoritmo. Representa as condições particulares de um caso de Ȇ.
Como usualmente o interesse da análise será constituído sobre avaliações de desempenho de algoritmos que executam
instâncias de grande tamanho, seria muito útil de¿nir um limite superior para o número de passos do algoritmo Į quando,
sujeito às condições gerais de Ȇ, atuasse especi¿camente sobre os dados da entrada E.
Anexos 481
Em tese, apesar do interesse no verdadeiro valor da complexidade do algoritmo, na realidade admite-se que ele poderá ser
de cálculo difícil, custoso e não acrescentar informações signi¿cativamente melhores que aquelas que são obtidas através
do cálculo assintótico.
A complexidade assintótica do algoritmo Į é de¿nida como a ordem de magnitude que limita superior ou inferiormente a
complexidade local de Į. O uso do conceito de complexidade assintótica é uma simpli¿cação importante e oportuna quando
o limite calculado para a complexidade local apresentar um comportamento su¿cientemente próximo ao valor exato procu-
rado. É exatamente fornecendo, em certas circunstâncias, o comportamento necessário para uma aproximação assintótica
da função de complexidade real, que as funções O(.) e (.) cumprem seu papel.
Ainda que seja disponível uma aproximação assintótica da complexidade real de um algoritmo, e ainda que essa aproxi-
mação seja de cálculo mais fácil do que a função real, resta o fato de que as condições de¿nidas na instância, usualmente,
inÀuenciarão decisivamente o número de passos do algoritmo. Dessa forma, a complexidade assintótica de um algoritmo
não será única, mesmo para entradas de igual comprimento, uma vez que as instâncias de Ȇ poderão exigir um diferente
número de passos de solução. Certamente haverá casos em que será possível uma expectativa otimista para o processa-
mento, e haverá casos contrários. Na expectativa pessimista, é necessário avaliar a entrada que leva o algoritmo a executar
o maior número possível de passos, dito pior caso. A complexidade assintótica de pior caso é, portanto, dada pela função
assintótica da complexidade local do algoritmo quando processa uma entrada de pior caso. Um raciocínio similar é feito para
a expectativa otimista. Neste caso avalia-se a entrada que leva o algoritmo a executar o menor número de passos possível,
dito melhor caso. A complexidade assintótica de melhor caso é dada pela função assintótica da complexidade local do algo-
ritmo quando processa uma entrada de melhor caso.
Os conceitos de pior caso e melhor caso serão ilustrados na análise do algoritmo Busca Linear. Este algoritmo recebe como
dados de entrada uma lista com p inteiros e um inteiro x. O objetivo é saber se x é elemento de L. Caso o algoritmo encontre
o elemento x, ele retorna o índice de L onde se encontra x. Se x não for encontrado, o algoritmo retorna -1. Não importando
o valor de p, que pode ser muito grande, o melhor caso ocorre quando o elemento x é encontrado na primeira posição de L. Neste
caso, o algoritmo executa a primeira atribuição de i e os dois testes da condição do comando Enquanto. Depois disso é feito
o teste do comando Se e o algoritmo imprime i. Portanto, a despeito do valor de p, se o elemento se encontra na primeira
posição de L o algoritmo executará 5 instruções. A complexidade local de melhor caso do algoritmo é, portanto, igual a 5.
O algoritmo, portanto, não executa, em qualquer caso, menos de 5 instruções, sendo limitado inferiormente por uma cons-
tante. Neste caso, a T(n) do algoritmo Busca Linear é :(1). O pior caso ocorre quando o elemento x não se encontra
em L. O algoritmo executará a atribuição de i, 2p + 1 testes das condições do Enquanto (2p vezes os dois testes e 1 vez o
teste i d p), p incrementos de i e p atribuições dentro do laço principal, o teste do comando Se e a impressão de -1. No total, o
algoritmo executará 4p + 1 instruções, o que dá a complexidade local de pior caso. Assim, a T(n) do algoritmo Busca Linear
é O(p), onde p é o tamanho da lista passada como parâmetro de entrada. À medida que p cresce, o número de passos
executados pelo algoritmo é proporcional a uma função linear em p.
482 Programação Linear e Fluxos em Redes
Eventualmente o comportamento assintótico de um algoritmo poderá ser limitado inferior e superiormente pela mesma fun-
ção assintótica. Nesse caso particular será introduzida a noção de Ordem Exata de f(n), 4 (f(n)):
{ +
Θ(f (n) ) = t : ℵ → ℜ * | (∃ c , d ∈ ℜ ) (∃ n1 , n2 ∈ℵ) (∀ n ≥ n1 ) [t (n) ≤ cf (n)] ∧ (∀ n ≥ n2 ) [t (n) ≥ df (n)] }
Será exempli¿cado o cálculo da complexidade através do algoritmo (S) descrito no quadro que se segue. O algoritmo (S)
x2 x3 x4 xn
produz uma série matemática de extrema importância: S ( x ,n ) = 1 + x + + + + ... + .
2 3! 4! n!
A propriedade 1 estabelece que a complexidade de S será obtida da complexidade de sua componente mais importante. É
possível dividir as ações de S em três blocos ou subfunções que denominaremos f1, f2 e f3. O primeiro bloco diz respeito às
ações de leitura e atribuições de inicialização. O primeiro bloco, f 1, pode ser denominado de passo de inicialização.
A complexidade de f1 será dada pelas operações, como a seguir.
O algoritmo Série Fatorial S executa o mesmo número de passos para qualquer entrada de tamanho n. Neste caso, o melhor
e o pior caso são iguais. Assim, tem-se que T(n) = O(n2) e T(n) = :(n2), portanto, T(n) = 4(n2).
Quando um problema 3 é formulado, implicitamente está se considerando a esperança de solucioná-lo através de algum
algoritmo D. Claramente, “solucionar” um problema vai além de de¿nir procedimentos que resolvem o caso usando recursos
impossíveis. Deseja-se a posse de pelo menos uma con¿guração de variáveis viáveis e que atenda a função objetivo, não
uma perspectiva improvável de solução. Entende-se por uma con¿guração viável de solução um arranjo de variáveis que
atende as condições impostas pelas restrições de 3, ou seja, pertence ao espaço das soluções viáveis de 3. Para alguns
problemas é fácil elaborarmos algoritmos que alcançam a necessária con¿guração, através de programas computacionais
que sejam executados em tempo razoável. Entende-se como e¿ciente um algoritmo cuja T(n) no pior caso é da ordem de
uma função polinomial.
Caso seja possível exibir um algoritmo com T(n) polinomial para a solução de 3, diz-se que esse problema é tratável. Ob-
serve-se que a prova de que um problema 3 é tratável é realizada pela exibição de um algoritmo que o solucione em tempo
polinomial. Por outro lado, o caso da prova da intratabilidade de um problema 3 exige a demonstração de que não existe
um algoritmo polinomial para a solução de 3.
Um problema algorítmico (que admite uma solução via um algoritmo) pode ser caracterizado por um conjunto de todas as
possíveis entradas de dados do problema e pela questão a ser solucionada, ou seja, o objetivo do problema. Solucionar
um problema é desenvolver um algoritmo que seja capaz de, com base na entrada de dados e no objetivo determinado,
encontrar uma con¿guração de resposta que seja adequada. Supomos que as instâncias de 3 serão convenientemente
codi¿cadas em E (com os dados estritamente necessários).
484 Programação Linear e Fluxos em Redes
Os problemas algorítmicos podem ser classi¿cados em classes especí¿cas, conforme vários critérios. Considerando a natu-
reza da resposta esperada para o problema 3, é possível a seguinte classi¿cação:
x Problema de decisão
Nesse caso, o objetivo proposto em 3 é decidir sobre a existência de uma con¿guração, S, que atenda as restrições de 3.
Uma questão usual nesse tipo de problema é: Existe alguma con¿guração S capaz de satisfazer as propriedades exigidas
em 3? A resposta para esse tipo de problema é sim ou não.
x Problema de localização
Diante da resposta sim para o problema de decisão, o objetivo proposto em um problema 3 da classe de localização é
encontrar ou exibir uma con¿guração S de solução. Eventualmente, a resposta sim do problema de decisão embutido não
é uma certeza, então aos problemas de localização cabe solucionar o problema de decisão e, diante da resposta sim, lo-
calizar uma con¿guração de solução. Uma questão usual nesse tipo de problema é: Exiba, se existir, uma con¿guração S,
satisfazendo as propriedades exigidas em 3. A resposta típica dessa classe de problema é a exibição de uma con¿guração
qualquer que atenda as restrições de 3.
x Problema de otimização
Este tipo de problema algorítmico aprofunda mais a questão levantada em 3. Nesse caso, além do interesse de exibir a con-
¿guração S, é necessário exibir uma con¿guração S especial, escolhida através de um critério de otimização. Uma questão
usual nesse tipo de problema é: Exiba, se existir, uma con¿guração S, satisfazendo as propriedades exigidas em 3 e que
minimize (ou maximize) uma função z(x) qualquer. A resposta para esse tipo de problema é uma con¿guração que atende
as restrições de 3 e otimiza a função z (x).
Supondo o problema 3 associado a percursos hamiltonianos em um grafo G = (N, M), os problemas típicos das três classes
anteriormente de¿nidas são:
Considerando um problema de decisão 3. Se 3 for solucionável através da aplicação de algum algoritmo, então existe
necessariamente uma justi¿cativa para a solução de 3. Cook (1971) apresenta uma classi¿cação para os problemas de-
cidíveis que se tornou a classi¿cação mais aceita na Ciência da Computação. A primeira classe, denominada classe P, é a
classe dos problemas de decisão que possuem algoritmos e¿cientes de solução.
Classe P
Problemas de decisão para os quais já foi exibido pelo menos um algoritmo determinístico de solução
cuja complexidade é polinomial.
Anexos 485
Como existe um algoritmo polinomial que veri¿ca se um grafo é conexo, por exemplo, então o problema da conexidade em
grafos pertence à classe P.
A próxima classe é a dos problemas denominados NP (Não Determinístico Polinomial). Para a de¿nição desta classe, é
importante de¿nir o reconhecimento ou a veri¿cação da resposta sim para um problema de decisão. O reconhecimento da
resposta sim é feito por um algoritmo que recebe a entrada E, bem como uma con¿guração que permite a resposta sim, e
veri¿ca se tal con¿guração está correta em relação à resposta sim. Se tal algoritmo for polinomial, então o problema pertence
à classe NP.
Classe NP
Compreende os problemas de decisão 3 para os quais existe uma justiÀcativa à resposta SIM, feita atra-
vés de um algoritmo não determinístico cujo passo de reconhecimento é realizado em tempo polinomial
em relação ao tamanho de sua entrada E.
A inclusão de um problema na classe NP anteriormente formalizada não obriga que exista uma solução polinomial para o
problema associado a 3. Exige-se apenas que o tamanho da justi¿cativa do problema de decisão seja polinomial no tama-
nho da entrada E. Nada é exigido também em relação à justi¿cativa da resposta não. Existem inúmeros problemas perten-
centes à classe NP. O problema de determinação do ciclo hamiltoniano em um grafo G pertence a essa classe. A justi¿cativa
para a resposta sim do problema de decisão consiste no reconhecimento do ciclo hamiltoniano. Tal reconhecimento é feito
veri¿cando se um ciclo exibido como correto em relação à resposta sim, realmente contém os n vértices de G e se suas
arestas correspondem a arestas de G.
Claramente, qualquer problema P é automaticamente NP, contudo, a recíproca é uma questão em aberto.
A de¿nição da classe NP cita um tipo especial de algoritmo denominado não determinístico. O campo destacado que se
segue de¿ne esse tipo de algoritmo.
Não Determinístico
O problema da classe NP é solucionado, em tempo poli- Var Resposta {sim, não}
nomial, por um algoritmo semelhante ao exibido na Figura
Primitiva de Escolha – Nd_Choice (Entrada, Resposta)
T52, um algoritmo não determinístico que reconhece a cor-
reção da resposta sim do problema de decisão 3 em passo Passo de Reconhecimento (SIM)
polinomial. Polinomial
Existe uma classe especial de problemas em NP denominada NP-Completa. Para de¿nir tal classe, é importante de¿nir o
conceito de redução polinomial de problemas. Uma redução polinomial de um problema A em um problema B é composta
de dois algoritmos polinomiais: algoritmo W, que transforma toda instância I de A em uma instância w(I) de B, e algoritmo H.
que mapeia toda solução s de w(I) em uma solução h(s) de I. Um problema 32 da classe NP está na classe especial
NP-Completa se todo problema 31 de NP for redutível em tempo polinomial a 32.
Uma de¿nição da classe NP-Completa é feita no Teorema de Cook-Levin a seguir.
Classe NP-Completa
1. 3 pertence a NP
2. Y é redutível polinomialmente a 3, para algum problema Y que é NP-Completo
Quando existe uma redução em tempo polinomial de um problema de decisão 31 para outro 32 (escreve-se 31 v 32),
mostra-se que se 31 NP-Completo 32 NP-Completo (Garey & Johnson, 1979). Pode-se dizer que, nesse caso, 31
é um caso particular de 32, ou seja, 32 é pelo menos tão difícil quanto 31. A relação v é também transitiva, daí se 31 v
32 e 32 v 33 implica que 31 v 33.
Cook provou que era possível dividir NP em classes de problemas equivalentes entre si. Cook (1971) demonstrou que
qualquer problema em NP pode ser reduzido, em tempo polinomial, através de uma máquina de Turing determinística ao
problema de determinar se uma fórmula booleana é satisfatória, encontrando o primeiro problema pertencente à classe
NP-Completa. A denominação de problemas de decisão NP-Completo foi introduzida por Cook (apud Blum et al., 1997;
Cook, 1983).
A classe NP-Difícil foi constituída como uma relaxação da classe NP-Completa, da seguinte forma:
Classe NP-Difícil
1. 3 pertence a NP
2. Y é redutível polinomialmente a 3, para algum problema Y que é NP-Completo
A de¿nição de NP-Difícil implica que todo problema desta classe é, pelo menos, tão difícil quanto qualquer problema
pertencente à NP. As classes NP-Completa e NP-Difícil distinguem-se por uma exigência central: Os problemas da classe
NP-Difícil não necessariamente pertencem à classe NP.
Anexos 487
4
Matroides
Algumas estruturas matemáticas permitem o desenvolvimento de algoritmos e¿cientes para a solução dos problemas de
otimização. Uma dessas estruturas é o matroide (Edmonds,1971).
Se E = {1,2,...,n} e F 2E uma coleção não vazia de subconjuntos de E, apresentando a seguinte propriedade monotônica:
S1 ⊆ S2 ∈ F ⇒ S1 ∈ F
Então, o par (E,F) será denominado Sistema de Independência, e os elementos de F são chamados Independentes. Tais
sistemas possuem propriedades interessantes, cujo escopo foge ao interesse do presente trabalho. Uma classe particular
dos sistemas de independência, contudo, é de importância para o desenvolvimento de algoritmos e¿cientes. Se (E,F) aten-
der as seguintes propriedades:
1. ∅ ∈ F
2. Se S1 , S2∈ F e S1 = S2 + 1 então :
∃ s ∈S1 \ S2 tal que (S2 ∪ {s }) ∈ F
Referências BibliográÀcas
Blum, L., Cucker, F., Shub, M. & Smale, S. (1997). Complexity and Real Computation, Springer.
Chandrasekaran, R. (1969). Total Unimodularity of Matrices, SIAM J. Appl. Math. 17:1032-1034.
Cook, S. A. (1971). The Complexity of Theorem Proving Procedures. 3rd. Ann. ACM Symp. on Theory of Computing, 151158,
Nova York.
Cook, S. A. (1983). An Overview of Computational Complexity, Communications of the ACM, 26:400-408.
Cormen, T. H., Leiserson, C. E. Rivest, R. L. & Stein, C. (2009). Introduction to Algorithms. 3rd edition. MIT Press.
Edmonds, J. (1971). Matroids and the Greedy Algorithm, Math. Prog. 1:127-136.
Garey, M. & Johnson, D. (1979). Computer and Intractibility: A guide to the Theory of NP-Completeness. Freeman, São
Francisco.
Heller, I. & Hoffman, A. J. (1962). On Unimodular Matrices, Paci¿c Journal of Mathematics 12:1321-1327.
Hoffman, A. J. & Kruskal, J. B. (1957). Integral Boundary Points of Convex Polyhedra, in Linear Inequalities and Related
Systems, H. W. Kunh e A. W. Tucker (eds.). Princeton University Press, Nova Jersey.
Knuth, D. (1997). Fundamental Algorithms. 3rd edition (Reading, Massachusetts: Addison-Wesley, 1997).
Kruskal, J. B. (1956). On the Shortest Spanning Subtree of a Graph and the Traveling Salesman Problem, Proceedings of the
American Mathematical Society 7: 48–50.
Prim, R. C. (1957). Shortest Connection Networks and Some Generalizations, Bell System Technical Journal 36: 1389–1401.
Tremblay, J. P. & Bunt, R. B. (1980). An Introduction to Computer Science: An Algorithmic Approach. McGraw-Hill Computer
Science Series.
Truemper, K. (1976a). Unimodular Matrices of Flow with GUB Constraints. Comunicação interna, Universidade of Texas at
Dallas.
Truemper, K. (1976b). Algebraic Characterizations of Totally Unimodular Matrices: A Framework. Comunicação interna, Uni-
versidade of Texas at Dallas.
Welsh, D. J. A. (1968). Kruskal’s Theorem for Matroids. Proceedings of the Cambridge Philosophical Society, 64:34.
Índice Remissivo
A dieta, 65
esporte, 36
Adequação de produtos, 26
fabricação de joias, 48
Aditividade, 29
fabricação de manufaturados, 244
Algoritmo
fabricação de móveis, 35
Borüvka, 288
¿bra ótica, 307
Busca geral em grafos, 267
leiaute, 36
Canto Noroeste, 325
ligas metálicas, 33
Circulação, 354
manufatura, 37
de Malhotra, Pramodh-Kamar e Maheshwari (MPM), 362
metalurgia, 33
Dijkstra, 272
metrô, 306, 384
Dual Simplex, 220
mídia, 80
Edmonds, 294
militar, 103
Ford-Fulkerson, 358
misturas, 53
Ford-Moore-Bellman, 298
montagem, 61
Húngaro, 339
pescado, 252
Kruskal, 286
petróleo, 53, 55
Prim, 282
piscicultura, 251
Prim colorido, 282
produção de cacau, 133
primal Simplex, 138
produção de coco, 109
Rotulação, 271, 272
produção de frutas, 111
Roy, 269
produção industrial, 17
Simplex revisado, 170
reabastecimento, 304
Vogel, 326
reÀorestamento, 101, 121
Análise de sensibilidade, 231, 259
sal, 179
Aninhamento, 6
saneamento, 303
Antecessores, 464
segurança, 72
Aplicações
siderurgia, 242, 248
agricultura, 51
transporte, 101, 105, 120, 126, 250, 319, 320, 321, 381
alocação de pessoal, 44
Árvore Geradora
artesanato, 48
de Máximo Número de Folhas, 281
atividades de emergência, 123
Mínima, 277
auditoria, 99
Mínima Capacitada, 281
camarões, 250
Mínima de Grau Restrito, 280
carregamento, 73
Mínima Robusta, 281
comunicações, 382
MinMax_MinSum, 280
cooperativismo, 393
Árvore MinMax, 278
corte em tiras, 83
490 Programação Linear e Fluxos em Redes
B Conjunto(s)
Benders, 418 convexo, 134
Bloco, 469 de desconexão, 470
Blossom, 296 Coordenação pelas quotas, 399
Busca geral, 267 Cortes, 278
Critério
C de melhoria, 143
Cadeia, 465 individual, 392
Caminho social, 392
aumentante, 295 Curvas
crítico, 297 de Hilbert, 291
de aumento de Àuxo, 358 de Sierpinski e Hilbert, 291
mais curto, 303 Custo reduzido, 168
mais curto com Janelas de Tempo, 271
mais curto em Grafos Estocásticos, 271 D
mais curto k-Centro (PCMC-k), 271 Dantzig-Wolfe, 413
mais longo, 270 Decomposição
Canonização, 152 de Benders, 418
Capacidade paramétrica, 416
de um corte s-t, 357 Degeneração, 164
dos arcos, 316 Determinante, 436
líquida, 357 Direção, 140, 141
Ciclagem, 164 Dualidade
Ciclo forte, 412, 415
euleriano, 467 fraca, 213, 419
hamiltoniano, 467
Circuitos, 467 E
Circulação, 352 Emparelhamento, 291
Cofator, 436 estável, 292
Combinação Entropia negativa, 6
a¿m, 442 Equilíbrio de Àuxo, 316, 317
convexa, 442 Escala de valor, 19
linear, 450
Complexidade F
assintótica, 481 Fecho transitivo, 465
de melhor caso, 481 de um vértice, 465
de pior caso, 481 Fluxo
Componente conexa, 470 em redes, 315, 346
Comprimento de um caminho, 466 entre conjuntos de vértices, 353
Condição(ões) máximo, 317
de consistência interna, 8 viável, 343
de isolamento, 8 Fluxograma do Algoritmo Simplex, 157
de otimalidade, 213 Folha de uma árvore, 281
Conexidade, 468 Fonte, 401, 407
Conformidades de processos, 26 Formato
Conhecimento, 3 bloco-angular, 389
Índice Remissivo 491