Você está na página 1de 494

Programação Linear

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.

Copidesque: Fernanda Coutinho Santiago

Editoração eletrônica: WM Design

Revisão grá¿ca: Hugo de Lima Corrêa

Elsevier Editora Ltda.


Conhecimento sem Fronteiras
Rua Sete de Setembro, 111 – 16o andar
20050-006 – Centro – Rio de Janeiro – RJ – Brasil

Rua Quintana, 753 – 8o andar


04569-011 – Brooklin – São Paulo – SP – Brasil

Serviço de Atendimento ao Cliente


0800-0265340
atendimento1@elsevier.com

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.

CIP-Brasil. Catalogação na publicação.


Sindicato Nacional dos Editores de Livros, RJ

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.

14-16783 CDD: 005.13


CDU: 004.43
Introdução

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:

9 Modelos de Programação Linear.


9 Algoritmos Simplex.
9 Exercícios.
9 Modelos de Fluxos em Rede.
9 Métodos de Decomposição.

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.

Ementas que podem ser associadas ao livro

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

- O Processo de Modelagem Linear.


- Modelos de Programação Linear.
- Algoritmo Simplex.
- Dualidade.
- Análise de sensibilidade.
- Interpretação econômica.
- Exemplos de Aplicação.
- Conexões com a Otimização Combinatória.

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.

1. PROGRAMAÇÃO LINEAR E FLUXOS EM REDES

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.

2. PROGRAMAÇÃO LINEAR E APLICAÇÕES EM REDES

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.

3. PROGRAMAÇÃO LINEAR E MÉTODOS DE DECOMPOSIÇÃO

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.

HENRIQUE PACCA LOUREIRO LUNA

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.

ELIZABETH FERREIRA GOUVÊA GOLDBARG

É 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. Introduzir elementos básicos em modelagem quantitativa.


2. Conceituar modelos de Programação Linear - MPL.

3. Debater aplicação e limitações dos MPL.

1.1
Princípios do Processo de Modelagem

• Conceito intuitivo de modelo


A representação abstrata de elementos especí¿cos do mundo circunvizinho é uma habilidade que o ser humano vem praticando
há milhares de anos. Desde os primeiros passos da civilização as habilidades de representar e compreender o mundo, comu-
nicar ideias, coordenar ações, bem como antecipar problemas que poderiam surgir do meio ambiente foram essenciais para
a preservação da espécie. Ainda na Antiguidade, a humanidade dominou elaborados processos de extração dos elementos
fundamentais da realidade de forma a permitir examinar, isoladamente, aspectos particulares do complicado mundo natural.
Ao isolar elementos da realidade e os representar de forma particular e distinta do todo, o homem criara a modelagem. Mo-
delagem, portanto, é uma tarefa que comporta identi¿car componentes de uma dada realidade e representá-los de forma a
que um dado raciocínio ou comunicação sejam facilitados.
Modelos, portanto, são primordialmente elementos de simpli¿cação e de comunicação. Em virtude dessas duas caracte-
rísticas se prestam a outros objetivos como aprendizagem, deduções, induções ou mesmo o simples desfrute do artefato
construído.
A palavra modelo pode ter diversos signi¿cados. O entendimento de modelo como uma representação substitutiva da reali-
dade possui um signi¿cado sutilmente menor que o expresso no verbo modelar. O verbo introduz a ideia da descoberta dos
elementos fundamentais que permitem a simulação da realidade, que é uma atividade conclusivamente bem mais ampla do
que o resultado ¿nal do processo: o modelo.
Objetivamente, um modelo é um veículo para uma visão estruturada da realidade. Os modelos são ferramentas construídas
pelo cérebro para entender o que está no mundo — inclusive o próprio cérebro. Lidar com modelos é uma atividade tão
2 Programação Linear e Fluxos em Redes

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.

O aspecto da transformação abstrata — interpretação — necessária à con¿guração de um modelo é ressaltado na de¿nição


que se segue:

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

Modelo Subsistema Real

Entradas Saídas

Realidade
Complexa
Modelo

(a) Simpli¿cação de modelagem (b) Regularização de entrada e saída

Figura 1.2: O processo de tradução da modelagem

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 contexto dos modelos de otimização


Modelos de otimização visam à busca de uma solução ou con¿guração do modelo que atenda plenamente a um ou mais
critérios, denominados critérios de otimização. Como suposição geral, os modelos de otimização examinam situações
em que existem diversas e diferentes possíveis con¿gurações para o modelo. Provavelmente, ainda que sejam possíveis
várias exceções, quanto maior for o número de con¿gurações e de critérios a examinar em um problema — maior com-
plexidade da situação real a ser modelada —, maior será a di¿culdade de exibir e mesmo analisar seu modelo. Adicio-
nalmente, os modelos de otimização abordados no texto são modelos matemáticos. Isso signi¿ca que a representação
é expressa em linguagem matemática. A linguagem matemática é formal e precisa. Vários problemas e situações são de
difícil representação através da linguagem matemática, e a formalização matemática é exigente e sensível em relação à
complexidade.
Perceber os contextos mais favoráveis e desfavoráveis à modelagem matemática é uma providência interessante, uma vez
que as opções de simpli¿cação são tipicamente opções de modelagem e podem estar sob o controle do modelador. Por
outro lado, de¿nir os limites da efetividade do processo de modelagem matemática é igualmente uma necessidade, uma vez
que os modelos devem ser úteis para encaminhar soluções práticas.
As exigências dos modelos matemáticos e quantitativos — que lidam com variáveis mensuráveis —, envolvem a de¿nição
dos seguintes elementos na modelagem:
9 A Estrutura Relacional do sistema que será modelado.
9 O Comportamento Funcional de cada subsistema ou componente atômico do sistema ambiente.
9 Os Fluxos de Inter-Relacionamento.
A Figura 1.3 examina as condições de complexidade segundo o modelo tridimensional proposto por Suntherland (1975) e
Bertalanffy (1968). A Figura 1.3(a) é um iconógrafo que pode ser utilizado para a análise de vários tipos de sistemas, inclu-
sive os socioeconômicos (que podem representar uma sociedade ou um país). O iconógrafo permite uma visão geral das
possibilidades de afastamento de boas condicionantes de modelagem.
Modelagem de Problemas 7

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.

(a) Iconógrafo de Suntherland (b) Plano do mecanismo x plano da Gestalt

Figura 1.3: Dimensões da complexidade de modelos

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.

• Formalização dos problemas de otimização


Um problema de otimização contínua pode ser formalizado matematicamente da seguinte forma (Luenberger, 1984):
Minimizar f (x)
Sujeito a:
8 Programação Linear e Fluxos em Redes

Em que f: são funções contínuas, geralmente diferenciáveis em problemas tratáveis de


grande porte. Para o caso do contexto discreto, dado um conjunto ¿nito E = {1,2,3,...,|E|} e uma coleção de subconjuntos
F de E expresso como:

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

• Conceitos em teoria da similaridade de modelos


O objetivo dos modelos é alcançar uma condição de similaridade com o sistema real representado. Ao se a¿rmar que um
sistema modelo é similar a um dado sistema real ¿ca implícito que o contexto onde essa similaridade é compreendida está
bem de¿nido. A base para o estabelecimento da similaridade pode envolver diversos critérios que vão desde a forma geo-
métrica, cor, dimensões, etc., até fatores de desempenho, características das variáveis, etc. Para que um modelo possa ser
considerado como similar ao sistema real é necessário ter presente os critérios de fundamentação da tradução do sistema
real para o sistema modelo. Com o auxílio do pensamento sistêmico é possível de¿nir formalmente o que se entende por um
sistema modelo e como estabelecer os critérios de similaridade.
Denominado por S = {A,R} um sistema, onde:
é o conjunto dos Elementos do Sistema;
é o conjunto de índices desses elementos;
a0 representa o elemento “meio ambiente”.
, o conjunto representativo das interações em A, onde o elemento rij do conjunto R
simboliza a maneira que a entrada em aj depende da saída ai.
As seguintes condições podem ser veri¿cadas:
1. Condição de isolamento
Se r0i = 0 para todo i N, então o sistema é dito fechado.
2. Condição de consistência interna
Convém notar que se também r0i = 0 para todo i N, o conjunto S = {A, R} será constituído por elementos isolados pelos
critérios estabelecidos em R, o que contraria a de¿nição de sistema, logo, para que S = {A, R} seja um sistema será indis-
pensável que:
1. r0i 0 para algum i N.
O conjunto A é denominado o Universo do Sistema e R as características de interdependência desse sistema.
Modelagem de Problemas 9

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

e um sistema S2 possa igualmente ser expresso pelo seguinte conjunto de equações:

Diz-se que:

IsomorÀsmo 1
S1 é Isomorfo a S2 se e somente se f1 é Isomorfo a I1 para qualquer iM, sendo M = {1,2,...m}.

Utilizando o conceito formal de sistemas:


IsomorÀsmo 2
Dois sistemas S1 = {A1, R1} e S2 = {A2, R2} são ditos isomorfos se e somente se:
1- Os elementos do Universo A1 podem ser mútua e exclusivamente associados aos elementos
do Universo A2, e os elementos do Universo A2 podem ser mútua e exclusivamente associados
aos elementos do Universo A1.
2- Os elementos do Conjunto de Características R1 podem ser mútua e exclusivamente asso-
ciados aos do conjunto R2 de tal maneira que para cada elemento de características de R1 que
expresse uma relação orientada entre dois elementos do Universo A1 seja associado a um ele-
mento de R2 que expresse a mesma relação orientada entre dois elementos de A2 designados a
A1 pelo item 1 da presente deÀnição.
10 Programação Linear e Fluxos em Redes

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:

onde C1 , C2 ,..., Cm são denominadas constantes de similaridade.

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.

Nesse ponto seria interessante responder à seguinte pergunta:

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

De modo geral, como sugere a modelagem sistêmica, os modelos possuem:


1. Componentes de composição (internos ou também denominados próprios).
2. Componentes externos (agentes externos ou ambientais ligados ao sistema).
3. Conexões entre os componentes (internos ou externos).
4. Estrutura Temporal (variação dos parâmetros e função temporal).
5. Estrutura de Interação (leis de conexão com os componentes externos e função impacto).
6. Estrutura Geométrica (externa e interna).
A presença dos elementos anteriormente listados depende do modelo. Seguem-se algumas classi¿cações que destacam as
diferenças existentes entre os vários tipos possíveis de modelos.

ClassiÀcação quanto ao Tipo

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.

ClassiÀcação quanto à Natureza do Modelo

A Figura 1.4 apresenta uma classi¿cação quanto à natureza dos modelos:

Modelo

Concreto Abstrato

Físico Geométrico Matemático Esquemático Lógico

Figura 1.4: Quali¿cação em função da natureza dos modelos

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

ClassiÀcação quanto às Propriedades do Modelo

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.

ClassiÀcação quanto às Variáveis Controladas

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.

ClassiÀcação de Emshoff (1970)

Emshoff (1970) sugere uma classi¿cação que divide os modelos ditos Explanatórios em quatro classes, da seguinte forma:

• Descritivos, Físicos, Simbólicos e Procedimentais.

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.

ClassiÀcação Mista (Funcional e de Natureza)

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

• Passos para a modelagem de um sistema real


É possível, de forma bastante ampla, resumir o Processo de Modelagem ou de construção de modelos na ótica opera-
cional pelos passos sugeridos pelo Àuxograma da Figura 1.6.
9 DeÀnição do problema
O processo de modelagem é, na maioria dos ca-
Definição do Problema
sos, associado à solução do que se denomina ge-
nericamente de problema. Um problema é qualquer
obstáculo que impede ou di¿culta uma ação, deci- Formulação e Construção
são, análise ou síntese. A de¿nição do problema a do Modelo Inicial
ser modelado é uma das fases mais importantes do
processo e compreende a percepção o mais precisa
Simulação do Modelo Validação do Modelo
possível da natureza, forma, constituição, inter-rela-
ções, variáveis, parâmetros e impactos desse proble-
ma-alvo. Reformulação do Modelo
A definição do problema pode ser realizada, na
prática, de posse de informações incompletas ou Aplicação do Modelo
conhecimento insuficiente. Não raramente a for-
mulação do modelo interfere na própria definição
do objetivo a alcançar. A Figura 1.6 esboça esse Figura 1.6: O processo de construção de modelos
14 Programação Linear e Fluxos em Redes

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

A Figura 1.7 resume o processo de realimentação do modelo após


a sua aplicação. São as informações obtidas da confrontação da Realimentação
aplicação do modelo e o sistema real que suportam e realimentam
o processo. A Figura 1.7 descreve a continuidade da realimentação
Figura 1.7: Modelagem e realimentação
ao longo da vida útil do modelo

• Padrões para construção de modelos de otimização


Apesar de o presente texto não explorar técnicas subjetivas ou estéticas de construção de modelos matemáticos, reco-
nhece que o estado da arte ainda não possibilita um algoritmo preciso, especí¿co, autocontido e e¿ciente que solucione
16 Programação Linear e Fluxos em Redes

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

• Fundamentos da 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.

• As situações de tomadas de decisão e o contexto da programação matemática


Uma signi¿cativa parcela das pessoas sente-se mais motivada ao estudo e realização de atividades abstratas quando é
capaz de vislumbrar que seu esforço possui retorno concreto e mensurável ou permite aplicação útil no mundo real. Não é
improvável que o leitor pense assim. Portanto, imagina-se interessante responder à pergunta que se segue:
18 Programação Linear e Fluxos em Redes

Questão

Em quais situações da vida real é possível utilizar a Programação Matemática?

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

Informações Aplicação do Modelo Conhecimento

Realimentação Decisão

Sistema Real

Dados Aplicação do Modelo


Informações Síntese

Realimentação

Análise

Figura 1.9: A evolução do conhecimento para a tomada de decisão

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.

• Características dos modelos de programação matemática


Como o processo de modelagem é atividade inexoravelmente imbricada com o espírito criativo do homem, presentemente
é bastante difícil ¿rmar limites para a aplicação dos modelos de Programação Matemática. Apesar dessa inde¿nição nos
limites extremos, é certo que a Programação Matemática encontra-se aparelhada para abordar, competitivamente, várias
classes de problemas típicos do contexto tecnológico (por exemplo, em situações em que é indispensável o uso de vári-
áveis numéricas) em situações de recursos escassos e decisões de trade off (decisões em que a ênfase em uma opção
esgota ou enfraquece os recursos e o ganhos das demais). Ainda que a Programação Matemática possa contribuir para
a compreensão teórica dos sistemas modelados e mesmo para o aperfeiçoamento das habilidades humanas, sua missão
principal historicamente esteve sempre associada à sua aplicação. De forma geral, a missão da aplicação dos modelos de
Programação Matemática pode ser entendida da seguinte forma:
Modelagem de Problemas 21

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

• DiÀculdades de representação na modelagem matemática


A di¿culdade de formular um sistema é semelhante à de descrevê-lo com precisão. Uma formulação é uma forma de tradu-
ção que permite a comunicação entre diferentes contextos. Considerando que:
1. Uma tradução realizada pela cognição humana está fortemente associada à capacidade de o modelador (tradutor)
perceber a parte fundamental da estrutura do sistema traduzido, bem como detectar suas regras de funcionamento e
agentes principais.
2. A representação emprega uma linguagem que corresponde à necessidade do domínio de técnicas que permitam
bem especi¿car o fenômeno, caso da Programação Matemática (que exige o domínio da linguagem matemática de
tradução).
As tarefas anteriores resultam em desa¿os que podem ser, simpli¿cadamente, resumidos em três temas:
22 Programação Linear e Fluxos em Redes

9 DesaÀos decorrentes da natureza das variáveis traduzidas.


Nem todos os fenômenos podem ser expressos em termos da lógica convencional, ou podem ter o seu comportamento
representado através de variáveis de decisão. Eventualmente será necessária a identi¿cação ou a criação de variáveis
“arti¿ciais” ou lógicas para a compatibilização e consistência da representação.
9 DesaÀos decorrentes do grau de incerteza associado ao comportamento das variáveis.
O mundo real não permite a eliminação completa das situações de risco ou de conÀito. A perfeita previsão do comportamento
futuro de um sistema é impraticável. Ainda que seja possível traduzir o sistema em termos de variáveis bem de¿nidas, ele
não estará livre de incertezas, Àutuações e do risco de não se comportar exatamente como o previsto. Alguns fenômenos,
contudo, podem ultrapassar essa condição de insegurança básica e exibirem um comportamento imprevisível por natureza.
Tais casos são, por exemplo, examinados pela Teoria do Caos. Em algumas situações, apenas parte do sistema exibe essas
características problemáticas, o que sugere a possibilidade de, através de hipóteses de simpli¿cação, ser possível transpor-
tar o sistema para um contexto mais bem-comportado.
9 DesaÀos consequentes do uso da ferramenta de solução.
Os modelos devem permitir uma conveniente simulação do sistema real sob o ponto de vista do foco escolhido. Se isso não
for garantido, a utilidade do modelo está em risco. Na atualidade, é o computador a ferramenta mais indicada e comum para
permitir as necessárias análises quantitativas que garantem a aderência do modelo ao problema real. Apesar de seus extra-
ordinários recursos, em algumas situações, e face à natureza das variáveis de decisão e de seu inter-relacionamento, mes-
mo o computador pode exibir limitações incontornáveis no atendimento das exigências necessárias à garantia da aderência
do modelo. Os computadores atuais ainda são limitados sob vários aspectos. A simples degenerescência numérica de seus
cálculos pode ser um fator impeditivo de uma análise e¿ciente. O fato é que a tradução da modelagem admite elementos de
imprecisão em cada uma de suas etapas, e essa imprecisão pode se acumular. A Figura 1.10 resume os hiatos acumulados
nas etapas de tradução e construção de um modelo de otimização.

Hiato Lógico Hiato Ferramental

Problema Modelo Modelo


Real Lógico Computacional

9 Descrição Visual
9 Equações Matemáticas 9 Código Computacional
9 Linguagem comum

Figura 1.10. Etapas de tradução de um modelo matemático

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.

• Outras técnicas para a solução de sistemas de tomada de decisão


Em situações em que os hiatos de tradução do modelo matemático proposto pela Programação Matemática não permitem
que haja a garantia da viabilidade prática da utilização dessa técnica, outras abordagens se apresentam bastante competi-
tivas. Dentre elas destacam-se a Simulação (SM) e a Inteligência Arti¿cial (IA)
9 Simulação
A simulação aplica-se quando situações de incerteza ou a própria complexidade do sistema dificulta ou impe-
de o equacionamento matemático determinístico do sistema real. Em outras situações, a magnitude do modelo
de otimização torna a execução computacional dos modelos de Programação Matemática restrita em tempo de
processamento ou no uso de memória. Os modelos de simulação podem contornar algumas dessas dificuldades
com o uso intensivo de dados estatísticos e com o processo de validação do comportamento da modelagem mais
flexível. A desvantagem da simulação reside na necessidade de um esforço maior dos especialistas na validação
da aplicação.
9 Inteligência ArtiÀcial e Inteligência Computacional
A Inteligência Artificial (IA), dentro do escopo da Inteligência Computacional, é o ramo da informática que busca a
automação do comportamento inteligente estudando o desenvolvimento de máquinas e software que exibam ca-
racterísticas da inteligência (dedução, indução, seleção, aprendizagem ou adaptação). Presentemente seu objetivo
científico é compreender os princípios que tornam possível o comportamento inteligente, natural ou artificial. Seu
objetivo na engenharia é especificar métodos para a concepção de artefatos inteligentes e úteis. Em seus primór-
dios, as expectativas da disciplina envolviam retratar a mente com o uso de simulações no computador (LeDoux,
1996). Os primeiros problemas em IA abordaram jogos (o xadrez sobressaiu-se inicialmente) e provas automáticas
de teoremas. A tradição construiu uma ponte entre IA e PO, tanto pelo caráter lógico-matemático destes primeiros
problemas de aplicação, como pelas relações entre a lógica e a Programação Inteira. Outro aspecto comum às téc-
nicas foi o uso das emergentes técnicas de buscas em grafos. Desde então, o estado da arte estendeu à inteligên-
cia artificial o objetivo de construção e operação de bases de conhecimento e ficou bem evidente a impossibilidade
de tratar computacionalmente de forma eficiente problemas de otimização com grande explosão combinatória como
os pertencentes à classe NP-Difícil e associados aos problemas de decisão PSPACE-complete, EXPSPACE-com-
plete, dentre outros.
Esta realidade novamente uniu IA e PO na busca de algoritmos e¿cientes para a solução de problemas do mundo real.
Além de diversas questões ¿losó¿cas envolvendo a própria de¿nição de inteligência, consciência, etc., a área de IA é rica
em formalismos lógico-matemáticos. O fundamento ¿losó¿co da disciplina desenvolveu-se principalmente associado ao
funcionalismo (Neisser, 1976). As técnicas de IA e PO se complementam em vários contextos, sendo marcante o uso, por
ambas, de técnicas heurísticas.
Talvez um dos maiores obstáculos à integração entre as técnicas de PO e IA resida nas diferenças conceituais das propostas
de representação do conhecimento em cada uma das abordagens. O iconógrafo de Suntherland (1975) pode auxiliar na
percepção das dimensões mais favoráveis a cada uma das abordagens. Os modelos de otimização são menos sensíveis
do que os de IA em relação a variações no eixo do domínio, e mais sensíveis em relação ao eixo da dinâmica. Por outro
lado, para ser possível retratar os processos mentais de tomada de decisão, mesmo na linha do funcionalismo, o aspecto
da redundância da arquitetura neuronal do cérebro é de difícil modelagem em ambas as técnicas, uma vez que empurra o
sistema real em direção da Gestalt. Modernos trabalhos na linha de inteligência computacional indicam novos paradigmas
de representação do conhecimento como, por exemplo, o holográ¿co. Também acena-se com a ampliação da proposta pelo
funcionalismo (Emery, 1969; Pribram, 1976 e Teuber, 1972, 1974).
24 Programação Linear e Fluxos em Redes

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.

• O problema da gestão em um mundo em crise


A busca de uma boa posição no mercado é o sonho dos empreendimentos pro-
dutivos. Perseguir um estado sustentável do negócio em que o retorno econômi-
Seguro
co dos investimentos é assegurado e exista proteção contra a concorrência e as
mudanças de humor do mercado é prioridade nas mentes dos gestores. O sonho
da gestão é estruturar um negócio seguro, expansível e rentável.
Expansível Rentável
O paraíso das organizações, contudo, não é um sítio fácil de alcançar. A com-
plexa dinâmica de um mundo globalizado e interconectado caminha exatamente
no sentido contrário. As pressões dos clientes se somam às inovações, à Àuidez da tecnologia, aos problemas de logística
e infraestrutura, ¿nanciamento, regulação governamental, marketing e propaganda, gestão do meio ambiente, imagem or-
ganizacional e muito mais.
Se, por um lado, é cada vez maior a pressão por inovações, por outro, é cada vez menor a vida útil dessas inovações. En-
quanto é cada vez maior o impacto das decisões de gestão, é cada vez menor o tempo disponível para a tomada de decisão.
Essa tendência de aumento das exigências simultaneamente ao encurtamento do tempo de resposta para sua solução é
um laço das exigências que se aperta pela força da redução do tempo de circulação da informação simultaneamente ao
aumento da con¿abilidade, diversidade e intensidade das informações em circulação.
Certamente é cada vez maior o custo de uma decisão não ótima e menor a janela de tempo da oportunidade de sua correção.
Espera-se que a organização trabalhe no problema certo, com a melhor técnica e no mais curto prazo possível. Os problemas
devem ser detectados, entendidos e eliminados ou superados rapidamente. O conceito expresso no próximo quadro resume o
objetivo do casamento entre problemas e técnicas de solução visando encurtar o tempo de resposta e sua efetividade.

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.

• A busca da sobrevivência organizacional


As regras de sucesso da década de 1980 apontavam para um binômio que se convencionou denominar: Qualidade e
Produtividade. Para muitos, esse binômio passou a sintetizar o conceito bem mais complexo de competitividade. Na
época em que esse binômio se difundiu como a solução para a gestão organizacional, a Qualidade era vista como um
elemento adjetivo do produto e um fator de atração e valor. Cabia à Produtividade, por outro lado, abordar o aspecto da
higidez organizacional. Resumindo, poderíamos dizer que a Produtividade consistiria em fazer certo a coisa, enquanto
Qualidade, em fazer a coisa certa.

Sem fazer certo as coisas, não há como fazer as


coisas certas de modo economicamente aceitável.

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

Como o atual capítulo buscou esclarecer:

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.

• Os modelos quantitativos e a sobrevivência organizacional


Os modelos quantitativos são ferramentas so¿sticadas no apoio aos tomadores de decisão. As técnicas de otimização per-
mitem:
9 O aumento do conhecimento sobre o comportamento do meio ambiente organizacional.
9 O aumento do conhecimento sobre a própria organização.
9 A antecipação de impactos e a simulação de políticas de ação.
9 A economia de meios e recursos.
Certamente modelos quantitativos não conduzem um negócio ou garantem a adequação de produtos ou processos. Conclu-
sivamente, contudo, podem evitar o desperdício de energia, talentos e oportunidades. Os modelos quantitativos não de¿nem
estratégias futuras ou criam novos produtos, mas são plenamente habilitados a auxiliar e facilitar o exame de cenários futu-
ros ou caraterísticas de novos produtos. A abordagem quantitativa pode informar, esclarecer, comparar e encontrar con¿gu-
rações de decisão de modo e¿ciente e único. O principal papel dos modelos quantitativos é assistir e proteger o tomador de
decisão de escolhas de conteúdo racional questionável.
A decisão de desconsiderar ou subutilizar o ferramental quantitativo no processo de decisão, provavelmente não será uma
decisão da concorrência.

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.

Os Modelos Quantitativos são ferramentais


indispensáveis para boas decisões

Boas decisões são indispensáveis para o


sucesso organizacional
28 Programação Linear e Fluxos em Redes

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:

1. Introduzir elementos básicos em modelagem quantitativa.


2. Conceituar modelos de programação linear - MPL.

3. Debater e exempliÀcar aplicação dos MPL.

2.1
Características dos Modelos de Programação Linear

• Características do Modelo de Programação Linear


O Capítulo 1 citou diversos modelos de Programação Matemática. O atual capítulo concentra sua atenção no Modelo de Pro-
gramação Linear (PL). Trata-se de um modelo básico para a Programação Matemática, não só por sua relativa simplicidade
de elaboração e entendimento, bem como por auxiliar na compreensão dos demais modelos abordados pela Programação
Matemática.
Uma vantagem adicional dos modelos lineares reside na e¿ciência dos algoritmos de solução hoje disponíveis. A solução de
modelos lineares atualmente pode ser alcançada através de planilhas eletrônicas ou solvers que podem ser executados em
microcomputadores pessoais, tablets e até mesmo em aparelhos celulares.
Os Modelos de Programação Linear constituem um tipo especial de modelos de otimização. As seguintes características
estão presentes nos modelos de PL:
9 Proporcionalidade: a quantidade de recurso consumido por uma dada atividade deve ser linearmente proporcional ao
nível dessa atividade na solução ¿nal do problema. Além disso, o custo de cada atividade é linearmente proporcional
ao nível de operação da atividade.
9 Não Negatividade: as variáveis devem ser capazes de assumir qualquer valor não negativo no modelo.
9 Aditividade: o valor total das funções do modelo é calculado pela soma das parcelas associadas a cada atividade.
9 Separabilidade: pode-se identi¿car de forma independente o valor ou consumo de recursos de cada atividade ou
variável do modelo.
30 Programação Linear e Fluxos em Redes

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.

• Formulação algébrica geral


É possível formular um Problema de Programação Linear (PPL) como se segue:

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

Forma Canônica Forma Padrão


Modelos de Programação Linear 31

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:

9 Caso de transformação de restrições de maior 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 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.

• Passos para a formulação de um PPL


Sugere-se que a construção de um Modelo de Programação Linear siga as seguintes etapas:
9 De¿nição das atividades:
As atividades do modelo são de¿nidas a partir da análise do problema. Normalmente, uma atividade possui associada
uma unidade de medida. Uma atividade consome ou produz recursos, interferindo no valor das variáveis do modelo.
9 De¿nição dos recursos:
Os recursos são insumos ou resultados utilizados ou produzidos pelas atividades.
9 Cálculo dos coe¿cientes de insumo e produção:
Os modelos exigem a de¿nição formal do relacionamento entre as atividades e os recursos. Via de regra, os recursos
limitam o desenvolvimento das atividades, enquanto os produtos ou o desejo do produtor obrigam a execução da
atividade.
9 Determinação das condições externas e condicionantes internos:
Considerando que os recursos são limitados na prática real, cumpre determinar a quantidade de cada insumo (um
recurso que é importado pelo sistema) disponível para os processos representados. Eventualmente, recursos con-
sumidos em certas atividades do modelo são resultados da transformação de insumos importados pelo sistema. Os
recursos gerados no próprio modelo, igualmente chamados de produtos, são condicionantes internos e tratados de
forma semelhante aos insumos.
9 Formalização do modelo:
Consiste em associar quantidades não negativas x1, x2, ..., xn a cada uma das atividades, escrever as equações que
representam como o sistema correlaciona atividades, recursos e variáveis de decisão. Os modelos possuem, como
regra geral, funções que podem ponderar o valor das atividades, das variáveis de decisão e dos recursos. Essas
funções são denominadas funções-objetivo. Na formalização, as funções-objetivo devem ser elaboradas, de¿nindo-
se com isso a ¿nalidade do funcionamento do modelo.
Para exempli¿car o processo de modelagem serão apresentados exemplos de formulação de modelos de Programação
Linear (PL). O grau de di¿culdade na formulação dos modelos sugeridos é variável. Pelo exame das formulações propostas
o leitor poderá identi¿car nuances da modelagem matemática. Ao lado esquerdo de cada problema de formulação será
sugerido um ícone de marcação da di¿culdade do exemplo, conforme a seguinte escala:

☺ - fácil - pequena dificuldade - razoável dificuldade - difícil - desafio

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.

S 1 - O Problema das Ligas Metálicas



Uma metalúrgica deseja maximizar sua receita bruta. A Tabela 1 ilustra a proporção de cada material na mistura para obten-
ção das ligas passíveis de fabricação. O preço está cotado em reais por tonelada da liga fabricada. Também em toneladas
estão expressas as restrições de disponibilidade de matéria-prima. Formular o modelo de Programação Matemática. Solu-
cionar gra¿camente o modelo.

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-

TABELA 2.1: Restrições/custos do exemplo 1


Tipo de insumo Liga Especial de Liga Especial de Disponibilidade de
componente da liga Baixa Resistência (*) Alta Resistência (*) Matéria-prima (tonelada)
Cobre 0,5 0,2 16
Zinco 0,25 0,3 11
Chumbo 0,25 0,5 15
Preço de venda
R$ 3.000 R$ 5.000 (*) Ton Minério / Ton Liga
(R$ por tonelada)
34 Programação Linear e Fluxos em Redes

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

Grá¿co do Modelo Solução: x1 = 20 e x2 = 20 com z = 160.000


Modelos de Programação Linear 35

Observações de carácter geral


1. Certamente, na maioria dos programas lineares, as variáveis de decisão estarão sujeitas a limitações tecnológicas ou
econômicas. Caso não existam restrições associadas às variáveis de decisão, duas situações podem ocorrer:
9 Se o modelo é de minimização e existe a utilização de recursos com valores iguais ou superiores a zero, o exer-
cício da atividade é ilógico. Nessa hipótese a solução do modelo é trivial e consiste em não realizar qualquer
atividade.
9 Se o modelo é de maximização e existe retorno econômico da atividade produtiva, como inexiste limite para o
consumo de insumos ou mesmo venda dos produtos, o modelo possui uma solução trivial com o ganho tornando-
se in¿nito, na medida em que realiza o consumo dos recursos ilimitados.
2. Na maioria dos problemas reais, as variáveis de decisão assumem somente valores positivos ou nulos. São exemplos
típicos desse tipo de variável o peso, as dimensões geométricas, o número de itens em um estoque, o número de con-
¿gurações ou número de pessoas, dentre outras. Eventualmente, contudo, valores negativos podem fazer sentido para
o modelo, especialmente quando podem ser contados a partir de um referencial, tanto para a frente quanto para trás,
como o tempo, as unidades monetárias ou as distâncias. Em última análise, contudo, em virtude de os valores negativos
serem computados em relação a um referencial, na maioria dos casos reais eles podem ser reduzidos a valores positivos
ou nulos por transformações de variáveis (ver operação elementar 2).

S 2 - O Problema da Fábrica de Móveis (l)



Uma fábrica de móveis dispõe em estoque 250m de tábuas, 600m de pranchas e 500m de painéis de conglomerado.
A fábrica oferece uma linha de móveis composta por um modelo de escrivaninha, uma mesa de reunião, um armário e uma
prateleira. Cada tipo de móvel consome quantidades de matéria-prima que seguem as condições descritas na Tabela 2.2.
A escrivaninha é vendida por 100 UM (unidades monetárias), a mesa por 80 UM, o armário por 120 UM e a prateleira por 20
UM. Pede-se exibir um Modelo de Programação Linear que maximize a receita com a venda dos móveis.

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.

TABELA 2.2: Restrições/custos do exemplo 2


Tipo de Insumo Quantidade de material em metros consumidos
por unidade de produto Disponibilidade do
componente
Recurso (metros)
do móvel Escrivaninha Mesa Armário Prateleira
Tábua 1 1 1 4 250
Prancha 0 1 1 2 600
Painéis 3 2 4 0 500
Valor de Re-
100 80 120 20
venda (UM)
36 Programação Linear e Fluxos em Redes

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

S 3 - O Problema do Atleta Indeciso (l)



Um jovem atleta sente-se atraído à prática de dois esportes: natação e ciclismo. Sabe por experiência que: a natação exige
um gasto em mensalidade do clube e deslocamento até a piscina que pode ser expresso em um custo médio de R$ 3 por
seção de treinamento de duas horas. O ciclismo, mais simples, acaba custando cerca de R$ 2 pelo mesmo tempo de prá-
tica. O orçamento do rapaz dispõe de R$ 70 para seu treinamento. Seus afazeres de aluno de graduação na universidade
lhe dão liberdade de empregar, no máximo, 18 horas mensais e 80.000 calorias para os esforços físicos. Cada seção de
natação consome 1.500 calorias, enquanto cada etapa ciclística dispende 1.000 calorias. Considerando que o rapaz goste
igualmente de ambos os esportes, o problema consiste em planejar seu treinamento de forma a maximizar o número de
seções de treinamento.

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

S 4 - O Problema de uma Pequena Manufatura (I)



Considere a situação de decidir sobre o número de unidades a serem produzidas por certo fabricante de dois diferentes tipos
de produto. Os lucros por unidade do produto_1 e produto_2 são, respectivamente, 2 e 5 UM. Cada unidade do produto_1
requer 8 horas de máquina e 8 unidades de matéria-prima, enquanto o produto_2 requer 30 horas de máquina e 10 unidades
de matéria-prima. Os máximos tempos disponíveis de horas de máquina e de matéria-prima são 320 horas e 240 unidades,
respectivamente. Formule o problema de forma a otimizar o lucro total. Solucione gra¿camente o modelo.

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

Grá¿co do Modelo Solução: x1 = 25 e x2 = 4 com z = 70

S 5 - O Problema da Produção de Camisetas ( I )



Uma companhia produz dois tipos de camisas: manga longa e manga curta. Na companhia, o único ponto crítico é a mão de
obra disponível. A camisa de manga longa consome 50% a mais de mão de obra do que a de manga curta. Sabe-se também
que se toda a mão de obra fosse concentrada na produção de camisas de manga curta, a companhia poderia entregar 400
camisas de manga curta por dia. O mercado limita a produção diária das camisas em 150 longas e 300 curtas. O lucro bruto
na comercialização de cada camisa manga longa é de 5,0 UM e na camisa manga curta é de 3,5 UM. Formular o problema
de modo a permitir a determinação das quantidades de camisas a produzir de modo a otimizar o lucro.
Modelos de Programação Linear 39

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

Observações de carácter geral


Quando as exigências de integralidade das variáveis são relaxadas, o resultado do modelo representa um limite superior
para os problemas de maximização ou um limite inferior para os problemas de minimização.

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

TABELA 2.3: Restrições de nutrientes na dieta alimentar do exemplo 6


Requisito
Vitamina Leite (litro) Carne (Kg) Peixe (Kg) Salada (100g)
Nutricional Mínimo
A 2mg 2mg 10mg 20mg 11mg
C 50mg 20mg 10mg 30mg 70mg
D 80mg 70mg 10mg 80mg 250mg
Custo 2 reais 4 reais 1,5 real 1 real

à 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

S 7 - O Problema da Pequena ReÀnaria



Uma pequena re¿naria produz nafta e gasolina. A matéria-prima da re¿naria é o petróleo bruto. A Tabela 2.4 exibe a produ-
tividade de gasolina e nafta a partir do petróleo bruto, o tempo necessário para o re¿no de um galão na re¿naria para cada
diferente tipo de combustível, bem como o lucro de venda associado a cada combustível re¿nado. A Tabela 2.5 de¿ne, no
horizonte de planejamento, uma produção mínima de escala para o funcionamento da re¿naria, a capacidade máxima de
estoque de gasolina e a demanda máxima de mercado para a nafta. Programar o funcionamento da re¿naria de forma a
maximizar o lucro com a venda dos combustíveis fabricados.

TABELA 2.4: Condições de Operação da Re¿naria


Tipo de Combustível Insumos Venda
Produzido Petróleo Bruto ReÀno Lucro por Galão
Gasolina 0,4m3/Galão 1 UT/Galão 3 UM / Galão
Nafta 0,5m3/Galão 2 UT/Galão 4,5 UM / Galão
Disponibilidade 300m3 900UT
(*) UT abreviatura de unidade de tempo.

TABELA 2.5: Estocagem, Demanda e Escala de Operação


Tipo de Combustível Restrições

Produzido Demanda Estoque Escala


Gasolina - 600 Galões 150 Galões
Nafta 375 Galões - 150 Galões

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

3. Formulação das restrições tecnológicas


a) Restrição associada à disponibilidade do petróleo:
0,4xG + 0,5xN < 300
b) Restrição associada à disponibilidade do tempo de produção:
xG + 2xN < 900
c) Restrição associada à demanda de nafta:
xN < 375
d) Restrição associada à escala de produção da nafta:
xG > 150
e) Restrição associada à escala de produção da gasolina:
xN > 150
f) Restrição associada ao estoque de gasolina:
xG < 600
4. Restrições de não negatividade
x1 > 0, x2 > 0.

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

150 x N ≥ 150 150

100 x G + 2 x N ≤ 900 100

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

Grá¿co do Modelo Solução: xG = 500 e xN = 200 com z = 2.400

S 8 - O Problema da Engarrafadora de Suco de Mirtilo (I)



Uma engarrafadora de suco prepara seu produto Mirtilo Mel em duas opções de mercado denominadas Mirtilo Mel Dark
e Mirtilo Mel Light. Cada tipo de Mirtilo Mel é constituído por uma diferente proporção entre os componentes básicos do
suco que são: polpa de mirtilo, pectina cítrica, glucose e água. Como a água é abundante e não possui peso signi¿cativo
no custo ¿nal do produto, é desconsiderada no planejamento da produção. O consumo dos componentes necessários
para constituir um barril de cada tipo de Mirtilo Mel, a disponibilidade dos insumos e o lucro previsto com a venda de um
barril estão resumidos na Tabela 2.6. Solucionar gra¿camente o modelo.
Modelos de Programação Linear 43

TABELA 2.6: Dados do engarrafamento e venda dos produtos Mirtilo Mel


Suco Pectina Cítrica (Kg) Glucose (Kg) Polpa de Mirtilo (Kg) Lucro (barril)
Mirtilo Mel Dark 5 4 35 10
Mirtilo Mel Light 15 4 20 25
Quantidade Disponível 480 160 1190
Programar a produção dos dois tipos de Mirtilo Mel de forma a maximizar o lucro da engarrafadora.

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

glucose e 35Kg de mirtilo. Cada barril light consome 4 kg - Glucose 4 kg - Glucose


Dark Light
15Kg de pectina, 4Kg de glucose e 20Kg de mirtilo, de 35 kg - Mirtilo 20 kg - Mirtilo
onde se deduz as restrições dos insumos. Lucro = $ 10 Lucro = $ 25

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

Light Pectina Cítrica Light


35 x D + 20 x L ≤ 1190 10 x D + 25 x L
(0, 32) (0, 32)
z = 10x D + 25 x L
((12,, 28)) ((12,, 28))

Mirtilo
(26, 14) 5 x D + 15 x L ≤ 480 (26, 14)
Região Viável Região Viável

(0, 0) Dark (0, 0) Dark


(34, 0) (34, 0)

Grá¿co do Modelo Solução: xL = 28 e xD = 12 com z = 808

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.

S 9 - O Problema de Alocação de Pessoal ( I )



Um hospital trabalha com um atendimento variável em demanda durante as 24 horas do dia. As necessidades distribuem-se
segundo a Tabela 2.7.

TABELA 2.7: Horário de alocação de enfermeiros


Turno de Trabalho Horário Número Mínimo de Enfermeiros
1 8h-12h 50
2 12h-16h 60
3 16h-20h 50
4 20h-0h 40
5 0h-4h 30
6 4h-8h 20

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

S 10 - O Problema do Jantar de Nero ( I )



O imperador romano Nero, em um momento de inspiração, resolveu promover um jantar para eliminar seus “melhores”
inimigos. Consultando seu médico de con¿ança, soube que ele dispunha de dois tipos de veneno, Alfa e Beta. Venenos
extremamente caros. O estoque da farmácia do facultativo é de 0,5Kg do veneno Alfa e 2Kg do veneno Beta. Para que os
convidados não sentissem o gosto do veneno, seria indispensável misturar os venenos no molho de cordeiro e manter uma
proporção, em peso, entre eles, de forma a ter três porções de Alfa para cada porção de Beta. Doze gramas de Alfa ou 6g de
Beta são su¿cientes para matar um homem. O efeito do veneno sobre as mulheres é cerca de 50% mais poderoso do que
sobre os homens. Nero, satisfeito com a informação do médico, deu suas ordens: prepare uma mistura que elimine, pelo
menos, 20 homens e 10 mulheres! Elaborar o Modelo de Programação Matemática que maximize o efeito do veneno sobre
os inimigos do imperador e evite que o médico, quem sabe, acabe queimado vivo no dito jantar.
46 Programação Linear e Fluxos em Redes

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

S 11 - O Problema da Clínica Cirúrgica ( I )



Uma pequena clínica é especializada em cirurgias ortopédicas e estéticas. As cirurgias ortopédicas rendem, em média, 10
UM, enquanto as estéticas são mais procuradas e rendem 30 UM. Cada paciente de cirurgia necessita de quatro consultas
de 30 minutos, totalizando 2 horas de atendimento no consultório. A clínica possui salas de consulta que permitem 36 horas
de atendimento semanal. As cirurgias estéticas duram, em média, 2 horas, enquanto as ortopédicas duram 1 hora. O centro
cirúrgico da clínica pode ser utilizado por 24 horas em cada semana. Para que exista mobilização permanente das equipes
de cirurgiões é necessária a realização de pelo menos duas cirurgias estéticas e quatro ortopédicas por semana. Elaborar o
Modelo de Programação Matemática que maximiza a receita da clínica. Solucionar gra¿camente o modelo.

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

Grá¿co do Modelo Solução: xE = 10 e xO = 4 com z = 340


48 Programação Linear e Fluxos em Redes

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

S 12 - O Problema do Artesão de Joias ( I )

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

Determinação da restrição de produção do artesão


Considerando uma equação geral da reta descrita Bracelete
xB
abaixo, em função de xA e xB, e passando pelos pontos
1 e 2 de coordenadas (x 1A, x 1B) e (x 2A, x 2B) 40 Ponto 1 (0,40)
36
xA __ x 1A xB __ x 1B
= 32
x 2A __ x 1A x 2B __ x 1B 28
24 4 xA + 5 xB < 200
Como o ponto 1 possui coordenadas (0,40) e o ponto 20

2 coordenadas (50,0), tem-se: 16


Região Viável
12
8 Ponto 2 (50,0)
xA __ 50 xB __ 0 xA __ 50 xB
= = = 4 Anéis
0 __ 50 0 __ 40 50 __
40 xA
4 8 12 16 20 24 28 32 36 40 44 48 52
Cálculo da restrição Grá¿co da restrição

b) Restrição de proporcionalidade de compra:


2xA < xB
5. Formulação das restrições tecnológicas do cenário de venda na feirinha
a) Restrições de compra casada:
x A = xB
6. Condições de integralidade e não negatividade
{xA, xB } Z+ (conjunto dos inteiros positivos)

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.

TABELA 2.7: Restrições do problema do plantio


Produtividade em Kg por m2 Lucro por Kg de Produção
Cultura
(obtida da experiência) (Informações do Governo)
Trigo 0,2 10,8 centavos
Arroz 0,3 4,2 centavos
Milho 0,4 2,03 centavos

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

S 14 - O Problema da Cooperativa Agrícola

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.

TABELA 2.8: Água disponível e área de cultivo por fazenda


Fazenda Área Total para Cultivo (acres) Água Disponível (103 litros)
1 400 1.800
2 650 2.200
3 350 950

TABELA 2.9: Consumo de água, área de cultivo e lucro por cultura


Consumo de Água Lucro
Cultura Área Máxima de Cultivo (acres)
(103 litros por acre) (R$ / acre)
Milho 660 5,5 5.000
Arroz 880 4 4.000
Feijão 400 3,5 1.800
52 Programação Linear e Fluxos em Redes

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

4. Restrições de não negatividade


x1M > 0, x1A > 0, x1F > 0, x2M > 0, x2A > 0, x2F > 0, x3M > 0, x3A > 0, x3F > 0

S 15 - O Problema da Mistura de Petróleo

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.

TABELA 2.10: Quantidade disponível de petróleo


Tipo de Petróleo Quantidade Máxima Disponível (Barril/dia) Custo por Barril/dia (R$)
1 3 500 19
2 2 200 24
3 4 200 20
4 1 800 27

TABELA 2.11: Percentuais para limites de qualidade das gasolinas


Tipo de Gasolina EspeciÀcação Preço de Venda (R$/Barril)
Não mais que 30% de 1
Super Azul Não menos de 40% de 2 35
Não mais que 50% de 3
Não mais que 30% de 1
Azul 28
Não menos que 10% de 2
Amarela Não mais de 70% de 1 22
54 Programação Linear e Fluxos em Redes

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.

XA1 ≡ Quantidade do petróleo 1 na Gasolina Azul

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

xS2 t 0,4 (xS1 + xS2 + xS3 + xS4 )


xS3 d 0,5 (xS1 + xS2 + xS3 + xS4 )
9 Para a gasolina Azul
xZ1 d 0,3 (xZ1 + xZ2 + xZ3 + xZ4 )
xZ1 t 0,1 (xZ1 + xZ2 + xZ3 + xZ4 )
9 Para a gasolina Amarela
xA1 d 0,7 (xA1 + xA2 + xA3 + xA4 )
4. Restrições de não negatividade
xA1 t0, xA2 t0, x A3 t0, x A4 t0, xZ1 t0, xZ2 t0, x Z3 t0, x Z4 t0, xS1 t0, xS2 t0, x S3 t0, x S4 t0.

S 16 - O Problema de Fluxo de Petróleo na ReÀnaria

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

Figura 2.2: Fluxos de óleo em uma re¿naria

No esquema de produção, sabe-se que a distribuição custo versus capacidade de produção é a descrita na Tabela 2.12.

TABELA 2.12: Capacidade, recuperação e custos operacionais nos caminhos de Àuxo


Produto Centro Capacidade (m3/h) % de Recuperação Custo ($/hora)
1 300 90 150
2 450 95 200
I 4 250 85 180
2 400 80 220
3 350 75 250
1 500 90 300
II 3 480 85 250
4 400 80 240
56 Programação Linear e Fluxos em Redes

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.

TABELA 2.13: Valores de custos, vendas e demandas possíveis


Produto Custo da Matéria-prima ($/m3) Preço de Venda ($/m3) Máxima Venda Diária (m3)
I 5 20 1.700
II 6 18 1.500

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:

2. Formulação das restrições tecnológicas


Neste problema será necessário calcular os coe¿cientes da função objetivo através da perda acumulada em cada
um dos possíveis caminhos de Àuxo. Abaixo será representada a perda no Àuxo de xI e xII.
a) Perdas no Àuxo xI ordinário e alternativo

b) Perdas no Àuxo xII

c) Restrições associadas à capacidade de processamento


Centro 1:
Modelos de Programação Linear 57

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:

Maximizar f(x) = Receita - Despesa


Receita:

Despesa:
9 Matéria-prima

9 Custos Operacionais:
Centro 1:
58 Programação Linear e Fluxos em Redes

Centro 2:

Centro 3:

Centro 4:

Observações de caráter geral


Como é possível veri¿car, o número de variáveis e restrições dos problemas de PL pode crescer rapidamente, de modo
que a representação adotada nestes exemplos da série introdutória pode tornar-se de escrita pouco prática, recomen-
dando-se, como regra, a representação matricial das restrições e função objetivo. Trata-se de uma representação mais
compacta.

S 17 - O Problema da Otimização de Padrões de Produção ( I )

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.

Padrão 1 Padrão 2 Padrão 3 Padrão 4

Figura 2.3: Padrões de corte do problema 17


Modelos de Programação Linear 59

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.

S 18 - O Problema da Otimização de Padrões de Corte em Tiras ( I )

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.

TABELA 2.14: Necessidades relacionadas às tiras


Tipo de Tira Largura (cm) Comprimento Mínimo
Tira I 2,4 2.500m
Tira II 3,4 4.500m
Tira III 4,5 8.000m

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

Tira Tipo III

A Figura 2.4 mostra uma das con¿gurações Perda de


viáveis de corte. A Tabela 2.15 resume as 0,6 cm

demais con¿gurações. Tira Tipo I

Figura 2.4: Padrão de corte


número 5 da Tabela 2.15
4,5 cm 4,5 cm 2,4 cm

TABELA 2.15: Padrões de corte da ¿ta


Número de Tiras Número de Tiras Número de Tiras
Padrão de Corte (i) Perda no Padrão (Pi )
Tipo I – 2,4cm Tipo II – 3,4cm Tipo III – 4,5cm
Padrão 1 5 0 0 0
Padrão 2 3 1 0 1,4
Padrão 3 3 0 1 0,3
Padrão 4 2 2 0 0,4
Padrão 5 1 0 2 0,6
Padrão 6 0 3 0 1,8
Padrão 7 0 2 1 0,7

1. Escolha da variável de decisão


xi { comprimento de corte no padrão i, (i = l, ..., 7) e folga das restrições a), b) e c) (i = 8, 9, 10), a serem utilizadas
na produção.

Tira Tipo III

X5
Comprimento do
Tira Tipo I Corte no padrão 5

Figura 2.5: Variável de decisão:


comprimento do corte no padrão i
Modelos de Programação Linear 61

2. Formulação das restrições tecnológicas

a) Restrição associada à demanda da tira do tipo I:

5x1 + 3x2 + 3x3 + 2x4 + x5 t 2500

b) Restrição associada à demanda da tira do tipo II:

x2 + 2x4 + 3x6 + 2x7 t 4500

c) Restrição associada à demanda da tira do tipo III:

x3 + 2x5 + x7 t 8000

3. Elaboração da função objetivo

Minimizar {perdas nos padrões + perdas no excesso de tiras}

a) Perdas nos padrões de corte:

1,4x2 + 0,3x3 + 0,4x4 + 0,6x5 + 1,8x6 + 0,7x7

b) Perda pelo excesso de tiras:

Chamando por x8, x9 e x10 (em metros) as folgas das restrições a, b e c, respectivamente, tem-se:

2,4x8 + 3,4x9 + 4,5x10

4. Restrições de não negatividade e integralidade

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.

S 19 – Programação das Equipes de Montagem ( I )

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.

QUADRO 2.1: Desempenho das equipes de montagem em minutos por produto


Equipes de Montagem
1 2 3 4
1 9 5 3 11
Produtos para
2 4 10 7 12
montagem
3 9 12 15 16

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

QUADRO 2.2: Valor agregado ao produto na montagem


Equipes de Montagem
1 2 3 4
1 6 4 4 7
Produtos para
2 7 10 8 10
montagem
3 8 10 10 11

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

S 20 – Mistura de Minérios para Liga

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.

TABELA 2.16: Unidades do metal contidas em tonelada do refugo


Refugos Tálio – Ti Prata – Ag Mercúrio – Hg Custo por Tonelada Disponibilidade
Tipo 1 190 U 130 U 200 U 1 UM 2 toneladas
Tipo 2 150 U 300 U 600 U 5 UM 1 tonelada
Tipo 3 - - - 0,01 UM 3 toneladas

TABELA 2.17: Exigências em unidades metálicas (U) por tonelada de


material de fundição
Tálio Prata Mercúrio
300 U • Ti • 200 U 200 U • Ag • 150 U Hg • 500 U

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.

TABELA 2.18: Custo de enriquecer os refugos


Tálio Prata Mercúrio
1 UM por 4 U 0,1 UM por 2 U 0,1 UM por 8 U

acrescidas em uma tonelada acrescidas em uma tonelada acrescidas em uma tonelada

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:

b) Restrição associada ao teor de prata na mistura:

c) Restrição associada ao teor de mercúrio na mistura:

4. Restrições de não negatividade


x1 t 0, x2 t 0, x3 t 0, y1 t 0, y2 t 0, y3 t 0.

2.4
Exemplos de Modelagem Matemática - Série Avançada

S 21 - O Problema de Otimização de Padrão de Corte em Placas Planas ( I )

Uma metalúrgica deve entregar uma partida de 2.500 Padrão 1


placas retangulares de 2cm x 4cm (Placas do Tipo I) e
1.000 de 4cm x 11cm (Placas do Tipo II). Existem em 4 cm
estoque uma tira metálica com 15cm de largura e 20m Padrão 3
de comprimento e outra com 14cm de largura e 30m de 2 cm 12 cm
4 cm
comprimento. As tiras com 30m de comprimento são cer- Padrão 2
ca de 20% mais caras por quilo do que as de 20m devido
a problemas de transporte. As placas de 4cm x 11cm ob- 2 cm
2 cm 11 cm

tidas nos padrões 2 e 3 são reaproveitadas não gerando


perdas ou custos. 4 cm 11 cm

Figura 2.6. Padrões de corte


Modelos de Programação Linear 65

Solução:

1. Escolha da variável de decisã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.

2. Formulação das restrições tecnológicas

a) Restrições de demanda:

9 Placa 2 x 4 cm2

7x1A + 7x1B + 2x2A + x3A + x3B t 2500

9 Placa 4 x 11 cm2

x2A + x3A + x2B + x3B t 1000

b) Restrição de disponibilidade de estoque:

9 Tira 15 x 2000 cm2

4x1A + 4x2A + 4x3A d 2000

9 Tira 14 x 3000 cm2

4x1B + 4x2B + 4x3B d 3000

3. Elaboração da função objetivo

Minimizar f(x) = 1(1+1)x1A + 1,2(1+0)x1B + 1(1+0)x2A + 1(1+2)x3A + 1,2(1+1)x3B

Custo total obtido por: custo do corte + perda x custo da perda.

4. Condições de integralidade e não negatividade

x1A , x2A , x3A , x1B , x3B Z+ (conjunto dos inteiros positivos)

S 22 - O Problema da Programação de Dietas em uma Clínica de Repouso

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

TABELA 2.19: Constituição nutritiva

Grupos Refeições Proteínas Carboidratos Minerais Vitaminas Fibras


grama grama mg Unidades grama
Dieta 1 60 100 300 10 – A; 20 – C 150
Dieta 2 80 50 350 20 – A; 10 – C 100
I
Dieta 3 80 20 100 40 – A; 20 – C 90
Dieta 4 100 25 100 25 – A; 10 – C 100
Dieta 5 40 30 300 10 – A; 20 – C 150
II Dieta 6 50 35 350 20 – A; 10 – C 200
Dieta 7 – 40 100 40 – A; 20 – C 90
Dieta 8 40 25 100 25 – A; 10 – C 80
III
Dieta 9 80 10 250 40 – A; 50 – C 100

TABELA 2.20: Consumo de ingrediente, quantitativos em gramas, volume do leite em mililitros


Grupos Refeições Carne Cereais Massas Verduras Leite Frutas
Dieta 1 60 50 80 60 50 100
Dieta 2 30 60 30 100 40 150
I
Dieta 3 20 60 20 60 60 120
Dieta 4 20 40 30 80 30 80
Dieta 5 40 80 – 80 – 150
II Dieta 6 50 50 – 100 – 100
Dieta 7 – 100 – 100 – 100
Dieta 8 – 50 20 120 50 50
III
Dieta 9 – 40 10 150 100 40
Preço por Kg 4,00 6,00 1,50 0,9 1,0 0,7

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.

Modelo de solução para o pedido 1:


1. Escolha das variáveis de decisão

⎧ 1 - caso a dieta i seja adotada
i = 1,...,9

⎨ ⎧
⎩ 0 - caso contrário

yi { número de refeições preparadas com base na dieta i, i = 1, ..., 9.


A = [aij ] { matriz de constituição nutritiva, i = 1, ..., 9 e j = Pr, Cr, Mi, Vi, Fi;
B = [bij ] { matriz de consumo de ingredientes, i = 1,...,9 e j = Ca, Ce, Ma, Ve, Le, Fr;
cj { custo da unidade do ingrediente j, j = Ca, Ce, Ma, Ve, Le, Fr;
Nsj { necessidade do programa s, s = 1, 2 com respeito ao nutriente j = Pr, Cr, Mi, Vi, Fi;
2. Formulação das restrições tecnológicas
a) Restrição associada às necessidades nutritivas dos programas de treinamento:
O programa de treinamento engloba dois dias, ou seja, duas vezes a demanda da Tabela dos Programas de Trei-
namento, contudo não há qualquer condição que obrigue o planejamento a distinguir os dias, portanto, o programa
pode ser planejado para um dia e repetido no dia seguinte (pelas condições do pedido 1). A demanda geral é obtida
pelo produto do número de pessoas matriculadas no programa vezes as exigências diárias em nutrientes.
Seja o cálculo da demanda de proteína por dia:
No programa 1 temos: 150 gramas x 20 pessoas = 3.000 gramas de consumo;
No programa 2 temos: 180 gramas x 30 pessoas = 5.400 gramas de consumo.
Repetindo esse cálculo para cada nutriente tem-se:
9 Programa 1: 3.000g de proteínas, 4.000g de carboidratos, 8.000 mg de minerais, 600 U de vitamina A, 800
U de vitamina C e 5.000g de ¿bras.
9 Programa 2: 5.400g de proteínas, 3.600g de carboidratos, 15.000 mg de minerais, 600 U de vitamina A,
1.800 U de vitamina C e 9.000g de ¿bras.
68 Programação Linear e Fluxos em Redes

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) Restrição associada à distribuição das dietas pelas três refeições diárias:


As restrições das refeições obrigam variáveis lógicas independentes das variáveis reais do problema. O raciocínio
para a modelagem é o seguinte: se a refeição que será escolhida pertence a uma dieta do grupo g, g = I, II, III,
nenhuma outra dieta desse grupo poderá ser usada. Uma variável de decisão xi binária pode descrever essa con-
dição de pertinência da seguinte forma:
(x1 ou x2 ou x3 ou x4) e (x5 ou x6 ou x7 ) e (x8 ou x9)
onde o condicional “ou” é exclusivo, implicando apenas uma das variáveis ser possível ativar simultaneamente.
O conjunto de restrições que pode atender a essa condição lógica para as variáveis binárias é:
x1 + x2 + x3 + x4 = 1
x5 + x 6 + x 7 = 1
x8 + x 9 = 1
As variáveis binárias devem ser “ligadas” às variáveis reais do problema que decidem sobre o número de refeições
a serem preparadas. A condição lógica dessa “ligação” diz que se uma dieta é escolhida, o número de refeições que
ela dará origem será calculado pelo modelo. Caso a dieta não seja escolhida, o número de refeições corresponden-
te deve ser obrigatoriamente zero. A condição lógica pode ser reescrita como:
x 1 = 0 Ÿ y1 = 0
x1 = 1 Ÿ y 1 t 0
A condição lógica anterior pode ser modelada como:
yi - Mxi d 0
Onde M é um número adequadamente grande. No caso, 50 é um número adequado, pois é o limite das refeições
em cada grupo, de modo que a restrição pode ser escrita como:
yi - 50xi d 0 , i = 1,..., 9
c) Restrições associadas ao total de refeições diárias (50 x 3) = 150:
Modelos de Programação Linear 69

3. Elaboração da função objetivo


A função objetivo deve ser expressa em termos de ingredientes, que são os elementos cotados monetariamente
e que devem ser adquiridos no atacado. Considerando o conjunto : dos ingredientes, : = {Ca, Ce, Ma, Le, Fr},
o somatório das quantidades de cada ingrediente varia com o tipo de dieta que dá suporte à refeição, o que a
Tabela de Consumo de Ingredientes resume. Dessa forma, a quantidade de um dado ingrediente é dada por:
9

∑b y ,
i =1
ij i j ∈ Ω . Daí:
9

Minimizar f(x) = ∑ ∑b y
j∈Ω
cj
i =1
ij i

Valor tota l gasto com os ingredientes.


4. Restrição de não negatividade
yi t0, xi t0, i = 1,..., 9

Modelo de solução para o pedido 2:


O pedido 2 pode ser atendido com a alteração de uma das restrições da solução do pedido 1. A condição lógica que unia
as refeições era:
x1 = 0 Ÿ y1 = 0
x 1 = 1 Ÿ y1 t 0
Essa condição lógica deve ser reescrita, no caso da dieta 4, na forma:
x4 = 0 Ÿ y4 = 0
x4 = 1 Ÿ y4 t 10
A restrição do pedido 1, y4 - 50x4 d 0, garante apenas um limite superior para x4 = 1 na forma de:
y4 d 50
O segundo pedido exige também um limite inferior para a variável de¿nida como número de refeições. Para tal é necessário
acrescentar uma restrição do tipo:
yi - Lxi t 0
Nesse caso, com o valor do limite L = 10:
y4 - 10x4 t 0

Modelo de solução para o pedido 3:


Para a primeira exigência: se duas dietas i-j são incompatíveis, então a condição lógica de modelagem será:
xi = 1 Ÿ xj = 0
xj = 1 Ÿ xi = 0
No caso geral de variáveis binárias, essa condição de incompatibilidade pode ser expressa pela equação:
xi + xj d 1
Na situação especí¿ca do pedido 3, será necessário acrescentar ao conjunto de restrições a seguinte inequação:
x1 + x9 d 1
70 Programação Linear e Fluxos em Redes

Para a segunda exigência, a condição lógica é do tipo:


xi = 1 Ÿ xj = 1
xj = 1 Ÿ xi = 0 ou 1
No caso geral de variáveis binárias, essa condição é expressa pela equação:
xi - xj d 0
No caso especí¿co do pedido 3, deve-se então acrescentar ao conjunto de restrições a seguinte inequação:
x2 - x8 d 0

S 23 - O Problema do Casamento e da Casa Própria (Misto)

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

1. Escolha das variáveis de decisão

x ijk ⎧⎨ − i j k ⎫
⎬ i = 1,...,m; j = 1,...,r ; k = 1,..., s
⎩ − ⎭
Modelos de Programação Linear 71

fij { adequação da mulher i ao homem j


hji { adequação do homem j à mulher i
l { limite inferior da adequação das mulheres aos homens
u { limite inferior da adequação dos homens às mulheres
vi { capacidade econômica da mulher i = 1,..., m
wj { capacidade econômica do homem j = 1,..., r
ci { custo da casa k, k = 1,..., s
2. Formulação das restrições tecnológicas
a) Restrição associada aos limites de compatibilidade:
s
∑∑ = =
≥ =
s
∑∑ = =
≥ =

b) Restrições associadas à monogamia

∑∑ = =
≤ =

∑∑ = =
≤ =

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

S 24 - O Problema da Câmara de Segurança ( I )

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

Figura 2.7: Planta e per¿l da câmara

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.

TABELA 2.22: Custos e características associadas às unidades em função da câmara de localização


Câmara Espaço (m3) Peso (Kg) Custo (R$) Probabilidade de Falha da Unidade
1 2,5 150 30.000 0,20
2 4,0 130 70.000 0,15
3 3,0 100 40.000 0,30
Limitações 60 1.500 600.000

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

S 25 - O Problema do Carregamento de Aviões ( Misto )

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.

TABELA 2.23: Capacidades dos compartimentos

Compartimento Peso Máximo (toneladas) Espaço Máximo (m3)


Compartimento Frontal 5 35
Compartimento Central 7 55
Compartimento da Cauda 6 30
Porão de Granel 7 30

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

TABELA 2.24: Capacidades dos compartimentos


Peso por Volume Volume por Container Lucro
Carga Tipo
toneladas por m3 (m3) $ por tonelada
1 (container) 0,7 0,5 200
2 (container) 0,9 1 220
3 (container) 0,2 0,25 175
4 (granel) 1,2 - 235
5 (granel) 1,7 - 180

Elaborar o Problema de Programação Linear que otimize a distribuição da carga de forma a maximizar o lucro do voo do
cargueiro.

1. Escolha da variável de decisão


xij { quantidade da carga do tipo i, (i = 1, 2, 3 – número do container, i = 4, 5 – volume do granel i), alocada ao
compartimento j, (j = 1 – frente, j = 2 – centro, j = 3 – cauda, j = 4 – porão).
pi { peso do container em tonelada i (i = 1, pi = 0,35; i = 2 pi = 0,9; i = 3 pi = 0,05)
2. Formulação das restrições tecnológicas
a) Restrições de peso por compartimento:

∑ ≤

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.

c) Restrições de equilíbrio geral


3 3 3

∑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

3. Elaboração da função objetivo


3 3 3
Maximizar f(x) = 200 ∑j =1
p 1 x 1 j + 220 ∑
j =1
p2 x2 j + 175 ∑p
j =1
3 x 3 j + 235 (1 , 2 ) x 44 + 180 (1 , 7 ) x 54

4. Condições de integralidade e não negatividade


x1j , x2j , x3j Z+, j = 1, 2, 3; x4j , x5j t 0, j = 4

S 26 - O Problema da Auditoria Bancária ( I )

Fase 1: Processo normal de auditoria


Um banco deve decidir quantos auditores deverá contratar em um horizonte de seis meses de operação, envolvendo o período
de março a agosto. As necessidades do esforço de auditoria são contabilizadas em termos de mão de obra de auditores
experientes, da seguinte forma:

TABELA 2.25: Necessidades no esforço de auditoria


Mês Necessidades em homens x hora Mês Necessidades em homens x hora
Março 7.000 Junho 11.000
Abril 8.000 Julho 7.000
Maio 10.000 Agosto 11.000

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

Fase 2: Utilizando o processo de terceirização


Paralelamente ao sistema de contratação formal para auditores, existe a possibilidade de captação de mão de obra para
auditorias via uma empresa de terceirização: A empresa Burocráticos ao seu Dispor. Essa organização oferece auditores
experientes (possivelmente evadidos do próprio banco) e licenciados pela Câmara de Auditores Juramentados. Esse pro¿s-
sional custa R$ 2.500,00 ao mês e pode ser incluído e retirado da folha a qualquer mês, sem qualquer custo de admissão ou
demissão. A Burocráticos só exige a garantia de experiência mínima de um mês de trabalho como pro¿ssional de auditoria.
A Burocráticos não permite que o seu pro¿ssional terceirizado trabalhe em treinamento no banco, até porque a empresa
promove o curso para licenciar auditores juramentados como um serviço adicional. Reformular o problema levando em conta
essa nova possibilidade.

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

4. Condições de integralidade e não negatividade


xj Z+, j = 1, ..., 6

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

b) Restrição de capacidade de treinamento:


i −1

∑ 0 ,9
j=0
i− j
x j ≥ 1,5 x i i = 1,..., 6

3. Elaboração da Função objetivo


6 i −1
Minimizar f(x) = ∑ 2000 ( ∑ 0 ,9 i − j x j ) + 150 x i + 2500 yi
i =1 j=0

4. Condições de integralidade e não negatividade


xj Z+, j = 1,..., 6; yi Z+, i = 1,..., 6

S 27 - O Problema do Incêndio Florestal – Combate Massivo ao Incêndio ( I )

Fase 1: Combate massivo


Uma reserva Àorestal está em chamas e o governo planeja uma operação rápida de combate ao fogo para o dia seguinte, pela
manhã. O incêndio é de pequenas proporções e progride em lenta propagação. O objetivo é extingui-lo em cerca de três horas
de operação, logo após o amanhecer, reduzindo a oportunidade de que o cenário se altere e o fogo saia de controle. Serão mobi-
lizados aviões e helicópteros especializados nesse tipo de operações. As características dos aparelhos constam da Tabela 2.26.

TABELA 2.26: Características dos aparelhos de combate ao fogo


Aparelho EÀciência no Incêndio (m2 por hora) Custo (R$ por hora) Necessidades em pessoal
Helicóptero AH-1 15.000 2.000 2 pilotos
Avião Tanque 40.000 4.000 2 pilotos e 1 operador
Avião B67 85.000 10.000 2 pilotos e 3 operadores
78 Programação Linear e Fluxos em Redes

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

S 28 - O Problema do Sistema de Defesa Antiaérea ( I )

Fase 1: Alocação arma x alvo


Um sistema de defesa antiaérea distribuiu suas armas de forma a defender uma cidade de um ataque. O sistema é constituído
por n plataformas de mísseis. A distância entre a plataforma da arma i e a ameaça j (avião inimigo ou míssil) é denotada por
dij e o alcance máximo dos mísseis é ri . O custo de cada tiro sobre uma ameaça j é cij e o valor da neutralização da ameaça
é vj. Em cada ataque o sistema de defesa deve selecionar, dentre m ameaças, apenas k possíveis alvos. Elaborar o modelo
matemático de alocação arma versus alvo que minimiza o custo da defesa.

Fase 2: Consideração da eÀcácia


Sabendo-se que a cada alocação arma x alvo devem ser disparados pij mísseis para que o alvo seja neutralizado e que
existem mi mísseis disponíveis em cada plataforma, reformular o problema de minimizar o custo da defesa.
Modelos de Programação Linear 79

Solução – Alocação arma x alvo


1. Escolha da variável de decisão
xij ⎧⎨ 1, caso a arma i seja designada a ameaça j ⎫⎬ i = 1, ..., n; j = 1, ..., m. Observar que, implicitamente, xij {0,1}
⎩ 0, caso contrário ⎭

2. Formulação das restrições tecnológicas


a) Restrição de alcance, visando não permitir que uma arma atire em alvo fora do seu alcance:
(ri _ di) xij t 0 i = 1,..., n j = 1,..., k,..., m
b) Restrição do número de alocações de alvos, visando que o sistema global atue sobre k alvos:
n m

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

3. Elaboração da função objetivo


m n n
z = Maximizar f(x) = ∑ ( vj ∑ xij − ∑ cij xij )
j =1 i =1 i =1

Solução – Consideração da eÀcácia


1. Escolha da variável de decisão
xij ⎧⎨ 1, caso a arma i seja designada a ameaça j ⎫⎬ i = 1,...,n; j = 1,...,m.
⎩ 0, caso contrário ⎭

2. Formulação das restrições tecnológicas


a) As restrições de alcance, alocação aos “k” alvos e uma só plataforma designada a um alvo e vice-versa perma-
necem as mesmas.
b) Restrição de número de disparos.
No modelo anterior, a alocação arma versus alvo e o disparo constituíam uma mesma decisão. No presente caso,
a alocação implica pij disparos. Para uma alocação ser válida agora, é necessário que mi t pij . Então:

3. Elaboração da função objetivo

Maximizar f(x) =
80 Programação Linear e Fluxos em Redes

S 29 - O Problema dos Anúncios da Rede de TV

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.

TABELA 2.27: Regras da promoção dos anúncios


Descontos Somatório de tempo Valor do desconto
Faixa 1 Sem exigência 0 UM
Obrigação de comprar, no mínimo,
Faixa 2 10 UM
f unidades de tempo
Obrigação de comprar, no mínimo,
Faixa 3 30 UM
g unidades de tempo

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.

yk ⎧⎨ 1,_caso o anunciante k tenha adquirido mais do que f módulos de tempo ⎫⎬


⎩ 0 caso contrário ⎭

Wk ⎧⎨ 1,_caso o anunciante k tenha adquirido mais do que g módulos de tempo ⎫⎬


⎩ 0 caso contrário ⎭

sk { montante máximo de recursos disponibilizado pelo anunciante k


pi { preço do tempo de anúncio no horário i
ck { custo total que será pago pelo anunciante k, face ao total de desconto que lhe cabe
Modelos de Programação Linear 81

2. Formulação das restrições tecnológicas


a) Restrições relativas ao montante pago pelo anunciante, em face dos possíveis descontos:

b) Restrição de tempo máximo disponível nos horários:


n

∑x
k= 1
ik ≤ t i i = 1, 2, 3

c) Restrição de acoplamento entre os módulos de anúncio:


yk + wk d 1 k = 1,...,n
3. Elaboração da função objetivo
3 n

Maximizar f(x) = ∑ ∑ x ik
i =1 k =1

4. Condições de não negatividade


xik t 0, i = 1,2,3 k = 1,...,n

S 30 – Quem é o Rei das Piscinas? ( 0/1 )


1
Problema 1: A constituição de um grupo para uma competição
Um clube de natação, o Flamingo, foi desa¿ado pelo Botabolo em uma competição de revezamento quatro estilos em 200m.
Existem 100 nadadores treinando no clube. O departamento técnico possui a ¿cha de cada nadador, na qual constam os tempos
nos estilos Peito (P), Costas (C), Borboleta (B) e Livre (L), para 200m. O treinador deseja selecionar, dentre os nadadores em
treinamento, a melhor equipe possível. Formular o Problema de Programação Matemática que auxilie o técnico em sua tarefa.

Problema 2: A constituição de um time de treinamento


Infelizmente, o Flamingo acabou derrotado no desa¿o com seu arqui-inimigo na natação por um acontecimento imprevisto:
um de seus nadadores, o melhor no estilo Borboleta, sentiu, na beira da piscina, uma pequena distensão no braço, que
passou a di¿cultar os movimentos para aquela especialidade. Como ele era um nadador que tinha um excelente tempo
no nado livre, o treinador tentou reorganizar, na última hora, a designação dos estilos. O problema é que o treinador havia
escolhido uma equipe de especialistas. Os demais componentes anotavam tempos péssimos fora de sua especialidade. A
melhor troca possível foi feita, mas a equipe acabou derrotada pelo baixo tempo no nado Borboleta. O treinador, revoltado
pelo ocorrido, resolveu tomar duas providências:
a) Constituir um time de elite para treinamento com 4 equipes de 4 nadadores, evitando com isso problemas de
saúde de última hora. Se houvesse um incidente, um novo nadador especialista seria inscrito.
b) Identi¿car nadadores polivalentes, com bons tempos, em mais de uma modalidade.
82 Programação Linear e Fluxos em Redes

Formular o Problema de Programação Matemática que auxilie o técnico em sua tarefa.


Problema 3: A seleção de uma equipe de competição
O Flamingo não podia deixar sem uma resposta a derrota no torneio. Treinando o grupo de elite, o técnico do clube sentiu-se
seguro em devolver o desa¿o. Só que dessa vez as regras seriam diferentes: a equipe teria um reserva polivalente. Formular
o problema para ajudar o Flamingo a escolher a melhor equipe para uma competição, considerando que o grupo inclui um
nadador de reserva. Justi¿que os critérios que forem adotados.

Problema 4: A competição Ànal (desaÀo para ser solucionado pelo leitor)


Na prova de revezamento, a equipe dos pernaltas (Flamingos) venceu o Botabolo. Dessa vez foi um dos nadadores do
Botabolo que afundou na piscina. Os bolences foram à loucura. A diretoria, irritada, culpou a escalação das equipes e seu
treinador, que “nada entendia de reservas”. Para tirar a dúvida sobre qual dos dois clubes seria o rei das piscinas, o Botabolo
dessa vez desa¿ou o Flamingo para uma grande gincana de natação, um tudo ou nada. A ideia seria promover uma compe-
tição entre três equipes dos dois clubes. A pontuação seria feita por equipe do primeiro ao último lugar, de modo a reduzir
a possibilidade de algum “acidente” ocasional e acabar com a história de “reservas” (que havia sido, obviamente, um golpe
do Flamingo). Segundo as palavras do diretor do Botabolo: “Assim nós vamos ver quem é o bom dentro d’água... vamos
acabar com a loteria dos torneios isolados e os truques dos técnicos.” A pontuação, do primeiro ao último lugar para as seis
equipes, seria respectivamente: 8, 6, 4, 3, 2, 1. Humilhados, os bolences resolveram jogar duro: conseguiram as ¿chas com
os tempos dos pernaltas e contrataram um especialista para formular o problema de escolher as suas três equipes de modo
a maximizar as possibilidades de resultado positivo e afogarem os pernaltas na piscina com sete palmos de água em cima.
Existem 100 nadadores treinando no Botabolo, e seus melhores tempos estão disponíveis.

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.

Solução – Constituição de uma equipe de competição


1. Escolha da variável de decisão
xij ⎧ 1, caso o nadador i seja designado a nadar o estilo j ⎫ i = 1, ...,100 ; j {P, C, B, L}
⎨ ⎬
⎩ 0, caso contrário ⎭
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 terão um nadador alocado:
100

∑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

3. Elaboração da Função objetivo


100 L
Minimizar f(x) = ∑∑ t ij xij
i= 1 j = P

4. Condições de integralidade e não negatividade (ressaltando a condição binária, apesar da restrição implícita)
xij ∈ {0,1}

Solução – Constituição do time de treinamento com 16 nadadores polivalentes


1. Escolha da variável de decisão

x ijk i = 1, ...,100 ; j {P, C, B, L} k = 1, 2, 3, 4

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

3. Con¿guração da função objetivo das equipes


( )
4 100 L
z = Minimizar f(x) = ∑∑∑ t ij xij
k

k = 1 i= 1 j = P

4. Condições de integralidade e não negatividade (ressaltando a condição)


x ijk ∈ {0,1}
5. Identi¿cação dos nadadores polivalentes
9Critério 1: Relaxar a restrição 2 b, permitindo que um nadador seja alocado a mais de um estilo na relação dos
16 nadadores de elite. Os polivalentes serão aqueles com múltiplas alocações.
9Critério 2: Considerando a capacidade geral do nadador nos quatro estilos:
Escolha da variável de decisão
yi i = 1,...,100

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

Solução – Constituição do time de competição 4 x 200 com um reserva


Escolhida a equipe de competição, segundo os critérios do problema 1, o reserva, um novo componente do grupo, poderia
ser escolhido pelos critérios de polivalência do problema 2 ou minimizando o aumento de tempo da equipe pelo afastamento
de um de seus componentes. Assumindo-se, sem perda de generalidade, que os nadadores de índice 97, 98, 99 e 100 foram
selecionados para compor a equipe principal, resta selecionar, entre os demais 96 atletas, o designado como reserva da
seguinte forma:
1. Escolha da variável de decisão
xi i = 1, ..., 96

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

S 31 – O Problema das Lagoas de Estabilização


1
Um determinado sistema de tratamento de esgotos foi concebido de forma a estruturar a coleta de eÀuentes industriais e
domésticos e reduzir o débito de oxigênio nas águas servidas (DBO) através de tratamentos aeróbicos em duas lagoas de
estabilização e um canal de ligação. A Figura 2.8 esclarece a arquitetura geral da coleta e tratamento.

Esgoto
Lagoa 1
Doméstico
Esgoto
Doméstico
g ç
Canal de Ligação

Efluentes
Industriais Lagoa 2

Litoral
Emissário
Efluentes
Industriais

Figura 2.8: Conjunto de lagoas


Modelos de Programação Linear 85

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.

TABELA 2.28: Tipos, valores e localização das descargas


Tipo de Descarga Valor da Descarga (m3) Localização
Esgoto Doméstico P1 Lagoa 1
Esgoto Industrial P2 Lagoa 1
InÀltração de Subsolo P3 Lagoa 1
Esgoto Doméstico P4 Lagoa 2
Esgoto Industrial P5 Lagoa 2
InÀltração de Subsolo P6 Lagoa 2

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:

e) Restrições de depuração no canal:


Denominado por p7 o índice de poluição do eÀuente ao ¿nal do canal temos:
p7 = ((p1 + p2+ p3) 0,05) 0,98L
f) Restrições de depuração biológica na segunda lagoa:

3. Con¿guração da função objetivo


Minimizar f(x) = 1,02v1 +1,1v2 +1,2 (106 L)

S 32 - O Problema da Operação da Frota de Táxis ( I )


1
Uma operadora de táxis controla cerca de 120 associados em uma grande área metropolitana. A operadora foi constitu-
ída para centralizar a designação de veículos à demanda. A central recebe as chamadas de atendimento e designa os
carros para as corridas. Ela possui sistema que permite o controle do posicionamento dos veículos, de modo que pode
tomar decisões com uma visão global do atendimento. Existem três tipos de chamadas: programadas, normais e urgen-
tes. Na chamada normal, sob a ótica do cliente, deseja-se minimizar o tempo de atendimento, respeitadas as restrições
operacionais. A chamada urgente designa o carro mais próximo até o ponto do pedido e dá uma expectativa de chegada
ao cliente. As chamadas urgentes são 50% mais caras. Se o tempo de chegada da chamada urgente for maior que três
minutos, então essa chamada é cobrada como normal, apesar de o carro designado ser o mais próximo. Em todos os
casos (chamadas normais ou urgentes), deve ser considerada a possibilidade de atendimento em face de um tempo
máximo rj, estabelecido pelo cliente localizado no ponto j. As chamadas programadas determinam a presença de um táxi
no destino exatamente na hora acordada. Para tal, as chamadas programadas são feitas com, no mínimo, uma hora de
antecedência.
Os taxistas, na verdade trabalhadores autônomos associados em cooperativa, exigem que a central realize uma designação
equânime sob alguns critérios. A cidade é dividida em quatro áreas, como mostra a Tabela 2.29.

TABELA 2.29: Áreas da cidade


Área
Urbana Suburbana
Desempenho
Alto a1 a3
Baixo a2 a4
Modelos de Programação Linear 87

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

c) Restrições relativas ao tempo mínimo de atendimento:


tij d rj i = 1,...,s e j = 1,...,n
d) Restrições relativas ao número de atendimentos em cada área:
Para tornar mais Àexível o atendimento das chamadas, evitando recusas de chamadas apenas por um problema
de equilíbrio entre os atendimentos dos táxis, o que, em última instância, poderia resultar em prejuízo para todos, o
atendimento poderá ser realizado, mas será estabelecida uma penalidade em função da violação das restrições de
88 Programação Linear e Fluxos em Redes

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:

3. Con¿guração da função objetivo

z = Maximizar objetivando minimizar os custos da operação.

4. Restrições de não negatividade e integralidade

S 33 - O Problema da Competição entre Engenheiros


1
Duas equipes de fabricantes de carros de corrida estão praticamente disputando, entre si, o campeonato. A cada mês são
disputadas três provas. A equipe vencedora é aquela que acumula o maior número de vitórias durante as corridas do ano.
Assim que o campeonato iniciou-se, a Equipe B passou a vencer a Equipe A em cerca de 60% das provas. O carro da Equipe
B acabava sempre ultrapassando nas curvas o carro da A. Tentando anular essa vantagem, os engenheiros da Equipe A
desenvolveram um aerofólio especial para dar mais estabilidade ao carro nas curvas. Apesar de ¿car com o carro mais pesa-
do, o piloto da Equipe A agora podia usar sua habilidade e impedir a passagem do carro da Equipe B nas curvas, mantendo
Modelos de Programação Linear 89

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

5. Solução grá¿ca do modelo 40x1 + G = 80


20
A solução grá¿ca conduz ao grá¿co da Figura 2.9, levan-
do aos valores de x1 = 0,6 e G = 56%.
1 2 x1
É possível concluir que a Equipe A pode ser campeã Figura 2.9: Solução grá¿ca do problema das equipes de
se escolher, com probabilidade de 60%, não usar o seu corrida
aerofólio especial, dado que consiga manter em segredo
a decisão tomada para cada corrida.

S 34 - O Problema da Expedição de Pesquisa para Marte ( I )


1
Após criteriosos estudos, um determinado país decidiu enviar uma expedição de pesquisa ao planeta Marte. Escolher uma
tripulação adequada ao esforço da jornada e trabalho no planeta é uma das maiores di¿culdades do comando da missão. O
centro de treinamento, possuindo mais de 300 candidatos quali¿cados, resolveu utilizar um modelo matemático para auxiliar
nessa tarefa. Para adquirir con¿ança no modelo, o comando da missão achou por bem simulá-lo em um pequeno conjunto
de candidatos altamente quali¿cados e, nesse conjunto menor, estudar as vantagens do modelo. A Tabela 2.30 resume os
atributos do grupo de 11 pessoas selecionadas para testar o modelo.
As exigências do comando da missão podem ser resumidas da seguinte forma: a nave conduzirá 5 pessoas, sendo pelo
menos 2 homens e 1 mulher. Existem a bordo 2 vagas para pessoas habilitadas em Comando (C) que deverão ser obriga-
toriamente ocupadas. Outras habilidades são indispensáveis ao cumprimento da missão em Marte e na viagem. Para tal,
são ainda necessárias a bordo pelo menos: 2 pessoas habilitadas em Medicina (M); 1 pessoa habilitada em Psicologia (P);
1 pessoa em Astronomia (A); 1 pessoa em Informática (I).
Para os engenheiros do comando da missão, o fator primordial da otimização é o peso. Existe o peso ¿xo, independente da
tripulação, e o peso variável. A otimização dessa etapa deve se concentrar sobre o peso da tripulação e de sua bagagem.
Os custos estimados são de R$ 10.000,00 por Kg de peso da tripulação ou bagagem. O comando da missão entende por
“bagagem” os elementos necessários ao exercício das habilitações de cada tripulante. Se o peso total das pessoas e baga-
gens exceder 1.000Kg, a missão necessitará de um módulo extra de acondicionamento, ao custo de cerca de R$ 10 milhões.
Modelos de Programação Linear 91

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.

TABELA 2.30: Dados dos candidatos


Homens Mulheres
Critério
Fábio Gallo Saulo Paulo José Bruno Maria Ana Linda Dina Carla
Peso (Kg) 80 85 70 65 90 75 50 45 55 60 65
Saúde 150 150 95 140 90 105 145 145 105 140 95
M F
E F C F M P P
Áreas de F E A B
C B I E E C B
Habilitação (*) C A C M
I A A G I I M
G I
Treinamento
150 200 180 240 220 100 200 250 200 180 100
no Simulador (h)
Incompatibilidade José – – – – Linda – – Bruno Ana –
Consumo de
20 29 30 35 23 40 25 30 25 17 15
energia (Kcal)
Bagagem (Kg) 35 25 30 40 17 40 30 40 30 20 30
(*) Siglas das especialidades: Medicina (M), Engenharia (E), Geologia (G), Psicologia (P), Física (F), Astronomia (A), Comando (C), Informática (I),
Biologia (B).

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

nave será obrigatoriamente uma mulher e vice-versa.


z As pessoas designadas em vaga de comando não exercerão outra habilitação.

z As pessoas que possuem habilitação ao comando, mas que não foram designadas para tal, são capazes de

desempenhar qualquer outra de suas habilitações.


2. Com base em um estudo técnico:
z Na hipótese de o equipamento de reciclagem ambiental equipar a nave, a presença de um biólogo será indispen-

sável na tripulação.
92 Programação Linear e Fluxos em Redes

Solução do primeiro pedido


Será associada uma variável binária para a decisão da escolha da pessoa para compor a equipe de missão. Como as exi-
gências da missão envolvem distinção de sexo, as variáveis levarão a distinção de gênero em conta.
1. Escolha da variável de decisão

i = F, G, S, P, J, B, o índice dos homens desse grupo.

j = M, A, L, D, C, o índice das mulheres desse mesmo grupo.

2. Formulação das restrições tecnológicas


a) Restrição associada ao número de homens e mulheres na missão:

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

3. Elaboração da função objetivo


Visando simpli¿car o entendimento, a função objetivo será dividida em três parcelas, conforme a seguir:
Minimizar f(x) = A + B + C
Onde:
A: É a parcela relativa ao custo pelo peso dos tripulantes e suas “bagagens”.
B: É a parcela do módulo adicional de transporte (agregado se a carga variável total exceder 1.000Kg).
C: É a parcela referente ao módulo de energia ou ao reciclador biológico.
9Parcela A
A = 104 [somatório do peso transportado] =
= 104 [(35 + 80)hF + (25 + 85)hG + (30 + 70)hS + (40 + 65)hP + (17 + 90)hJ + (40 + 75)hB + (30 + 50)mM + (40 + 45)
mA + (30 + 55)mL + (20 + 60)mD + (30 + 65)mC].
9Parcela B
A modelagem dessa parcela necessita de um raciocínio complementar. O problema diz que se o peso contabilizado
na parcela A ultrapassar 1.000Kg, uma nova parcela deve ser acrescentada à função objetivo. Resumindo: Se [so-
matório do peso transportado] >1000, então existe a parcela B. A modelagem da condição será realizada através
da variável binária V, e M, um valor convenientemente grande, com duas restrições:

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 

Se [¦Demanda de energia > 150Kcal] ou (exclusivo)

E 
Condição que pode ser formulada como:

Se [¦Demanda > 150] Ÿ D + E t1 (150-¦demanda) + M (D + E) ! 0, para D e E variáveis binárias {0,1}.


Se [¦Demanda d 150] Ÿ D + E = 0 (¦demanda - 1000) (D + E) t 0 , para D e E variáveis binárias {0,1}.
D ou E = 1 (D + E) d 1
1. [150 - (20hF + 29hG + 30hS + 35hS + 23hJ + 40hB + 25mM + 30mA + 25mL + 17mD + 15mC)] + M (D + E) ! 0
2. [(20hF + 29hG + 30hS + 35hP + 23hJ + 40hB + 25mM + 30mA + 25mL + 17mD + 15mC) - 150] (D + E) t0
3. (D + E) d 1
Acrescentando as restrições 1 e 2 ao conjunto de restrições do problema, e utilizando as duas variáveis binárias para con-
trolar a decisão da função objetivo, podemos escrever a parcela C como:
C = 107D + 55 000E {(20hF + 29hG + 30hS + 35hP + 23hJ + 40hB + 25mM + 30mA + 25mL + 17mD + 15mC) - 150}
Observe-se que a inclusão de restrições lógicas dessa natureza torna o problema não linear.

Solução do segundo pedido


9Exigência da dedicação exclusiva ao comando:
A consideração de uma distinção entre as pessoas que ocupam a vaga de comando na designação de
tarefas não é possível de ser feita através das variáveis de decisão do modelo anterior. Para atender ao
pedido do comando da missão, o modelo deverá receber uma nova variável que torne esse controle pos-
sível, então:
xi, variável binária que assume o valor 1 quando o tripulante i é designado para a vaga de comando, e 0, caso
contrário, i = F, ..., C.
A consideração da variável xi conduz a uma implicação lógica. Se xi = 1, será imperativo que os hi e mi correspon-
dentes serão igualmente 1 (ninguém pode ocupar uma vaga de comando se não for designado à missão). Nesse
caso, a restrição de comando, que foi escrita no primeiro pedido em termos de hi e mi,, deve ser reescrita com a
nova variável de decisão. Para garantir a condição lógica de que se xi = 1 Ÿ hi = 1 ou mi = 1, será necessário
introduzir as seguintes restrições:
xi - hi d 0 ou xi - mi d 0
Modelos de Programação Linear 95

Assim, as seguintes restrições representarão as condições anteriores no modelo:


xF - hF d 0 ; xM - mM d 0; xG - hG d 0; xA - mA d 0 , etc...
somadas à nova restrição para o comando que substitui a do pedido 1:
b) Restrição associada à exigência da habilidade de comando:
Nesse ponto destaca-se que o controle sobre o sexo do tripulante representado pela variável x é possível de ser
realizado por seu índice. Isso poderia ter sido levado em conta desde o primeiro pedido.
9Exigência do equilíbrio de poder entre os sexos:
O comando da missão deseja equilibrar o poder entre os sexos da tripulação. Chamando de R o seguinte balanço
entre os tripulantes:

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:

Se R ! 0 Ÿ ∑ x ≥ 1, onde V é o conjunto dos índices das mulheres habilitadas ao comando.


i∈V
i

Se R  0 Ÿ ∑ x ≥ 1, onde W é o conjunto dos índices dos homens habilitados ao comando.


i
i∈W
Para o caso:
1. 5xD BB R t 0
2. 5(xF + xG + xJ + xB) + R t 0
Observar que se R < 0 a restrição 1 é trivialmente atendida. Para o caso de R ! 0, a restrição 2 é trivialmente
atendida.
O valor do coe¿ciente 5 foi escolhido convenientemente igual ao número de tripulantes da nave para evitar proble-
mas de inconsistência como, por exemplo, impedir que uma das pessoas do grupo minoritário fosse designada ao
comando.
9Exigência da presença de um biólogo:
A presença de um biólogo pode ser controlada pela variável E. A restrição da obrigatoriedade da presença de um
biólogo será ativada quando E = 1. No caso especí¿co:
(hS + mM + mC) BB E t 0 (Fábio e José)
Observar que quando E = 0 a condição é trivialmente atendida.
4. Restrição de não negatividade e integralidade para todos os pedidos
96 Programação Linear e Fluxos em Redes

2.5
Exercícios Propostos

1 O Problema das Tomadas de Força



Uma empresa de material elétrico monta dois tipos de tomada. A tomada de dois pontos de energia (dupla) e uma tomada
com um ponto de energia (simples). A tomada de dois pontos consome duas entradas e dois apoios. A tomada de um ponto
consome uma entrada e dois apoios. No estoque da empresa existem seis entradas e oito apoios. Cada tomada dupla é ven-
dida por 20 unidades monetárias, e cada tomada simples é comercializada por 15 unidades monetárias. Formule o Modelo
de Programação Linear que otimiza a receita da empresa. Solucione de forma grá¿ca o modelo formulado.

2 O Problema da Pequena Marcenaria



Uma nova pequena marcenaria 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 cada um dos insumos (metal e madeira), e é vendida por R$
50. Determinar a estratégia de maximização de receitas para a empresa, uma vez que seus recursos são limitados a 100Kg
de madeira e 60Kg de metal.

3 O Problema da Pequena Confecção



Uma confecção opera com dois produtos: calças e camisas. Como são produtos semelhantes, possuem uma produtividade
comparável e compartilham os mesmos recursos. A programação da produção é realizada por lotes de produto. O depar-
tamento de produção informa que são necessários 15 homens x hora para um lote de calças e 20 homens x hora para um
lote de camisas. Sabe-se que não é necessária mão de obra especializada para a produção de calças, mas são necessários
10 homens x hora desse tipo de mão de obra para produzir um lote de camisas. Os trabalhadores especializados podem
produzir camisas ou calças, e são disponibilizados 30 homens x hora de operários especializados e 50 homens x hora de
não especializados. Da planta de produção sabe-se que existem apenas duas máquinas com capacidade de produzir os
dois tipos de produto, sendo que a máquina 1 pode produzir um lote de calças a cada 20 horas e um lote de camisas a cada
10 horas, não podendo ser utilizada por mais de 80 horas no período considerado. A máquina 2 pode produzir um lote de
calças a cada 30 horas e um lote de camisas a cada 35 horas, não podendo ser utilizada por mais de 130 horas no perío-
do considerado. São necessários dois tipos de matéria-prima para produzir calças e camisas. Na produção de um lote de
calças são utilizados 12 quilos da matéria-prima A e 10 da B. Na produção de um lote de camisas são utilizados 8 quilos da
matéria-prima A e 15 da B. O almoxarifado informa que, por imposição de espaço, só pode fornecer 120 quilos de A e 100
de B no período considerado. Sabendo-se que o lucro pela venda é de R$ 800 nos lotes de camisas e de R$ 500 nos lotes
de calças, formule o problema de maximizar o lucro da operação produtiva em pauta.
Modelos de Programação Linear 97

4 O Problema da Seca na Reserva Ambiental

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.

6 O Processamento e Comercialização de Sardinhas

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

TABELA 2.31: Capacidade e custos da sardinha previstos no contrato da empresa


Disponível Custo da Transporte p/ Transporte p/
Fornecedor
(ton) Sardinha Niterói (ton) Araruama (ton)
Ilha Grande 150 2 (UM) 4 (UM) 6 (UM)
Macaé 200 4 (UM) 2 (UM) 1 (UM)
Cabo Frio 300 6 (UM) 3 (UM) 2 (UM)

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.

TABELA 2.32: Capacidade de Processamento


Niterói Araruama
Capacidade (ton) 450 250
Custo Operacional (p/ ton) 10 (UM) 8 (UM)

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.

TABELA 2.33: Receita com a Venda e Possível origem da Sardinha


Rio de Janeiro São Paulo
Receita Líquida de Venda (*) 20 (UM) 25 (UM)
Origem da Sardinha Processada Araruama e Niterói Niterói
(*) Não são considerados os custos com a aquisição, produção e transporte para as fábricas.

Formular o Problema de Programação Matemática que maximiza o lucro da processadora de sardinha.

7 O Problema da Transportadora de Soja

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

Maringá Ponta Grossa

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í

Figura 2.10: Rede de Transporte e Estocagem

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.

TABELA 2.35: Recursos necessários ao patrulhamento no ciclo de 24 horas


Período do Dia Plantões Policial de Moto Policiais de Ronda Policiais de Trânsito
1 23h-3h 2 30 6
2 3h-7h 1 12 4
3 7h-11h 2 16 10
4 11h-15h 1 20 25
5 15h-19h 3 32 44
6 19h-23h 1 34 20

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

9 A Compra de Aviões da Caburé ( I )

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.

TABELA 2.36: Custo, receita e pilotos aptos para operar os aviões


Tipo do Avião Custo (Milhões UM) Receita Teórica (Milhões UM) Pilotos Aptos
Embraer 190 33 120 25
Airbus A 350 230 300 10
Boeing 787-8 170 260 9

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

10 A Eleição em Cata Tatu

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.

TABELA 2.37: Impacto das ações de propaganda sobre a imagem do candidato


Atividade de Impacto Ilha 1 (UI) Ilha 2 (UI) Ilha 3 (UI)
(1) Cestas Básicas -2 5 3
(2) Camisetas e Brindes 8 2 -5
(3) Cartazes de Propaganda 0 0 10
(4) Show de Marimba 10 0 -2
Eleitores no Distrito 5.000 10.000 2.500
Modelos de Programação Linear 101

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.

TABELA 2.38: Resumo das condições de operação dos elevadores


Elevador A Elevador B Elevador C Viagens
Andar
Operação (Tempo) Operação (Tempo) Operação (Tempo) necessárias
1 o
2 (3) – 1 (4) 50
2o – 2 (3) 2 (4) 70
3o 3 (4) – 1 (6) 80
4o – 4 (5) 1 (6) 85
Número máximo de viagens 120 95 80

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

TABELA 2.39: Resumo das condições de operação dos elevadores


Cidade Área Disp Produção Anual Esperada – m3/hectare Renda Anual Esperada – UM/hectare
Pinus Carvalho Nogueira Araucária Pinus Carvalho Nogueira Araucária
1 1500 17 14 10 9 16 12 20 18
2 1700 15 16 12 11 14 13 24 20
3 900 13 12 14 8 17 10 28 20
4 600 10 11 8 6 12 11 18 17
Produção Mínima 1000
225 9 4,8 3,5
x m3

Formular o problema para designar as áreas de plantio por município de forma a maximizar a renda.

13 O Problema da Montagem de Containers ( I )

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.

TABELA 2.40: Lucro e demanda dos containers


Atividade de Impacto Lucro (UM) Demanda Máxima Semanal
Container 1 10 45
Container 2 15 65
Container 3 18 90
Container 4 21 65

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.

TABELA 2.41: Consumo de Mão de Obra nos processos de montagem


Processo x Produto Container 1 Container 2 Container 3 Container 4 Tempo (hxh)
1. Soldagem 1 2 4 3 165
2. Instalações e portas 3 4 2 3 75
3. Acabamentos e Pintura 2 5 1 7 210

É 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

15 O Problema da Evacuação de Emergência ( I )


0
Uma determinada região está sendo ameaçada pela ruptura de uma barragem e deve ser evacuada em no máximo 10
horas. São, no total, 8.000 homens, 7.900 mulheres e 1.850 crianças a transportar. Cada pessoa poderá levar até 10 quilos
de bagagem pessoal. Toda a região foi isolada e só circulam veículos autorizados para que se evitem acidentes e engarra-
famentos. Para efetuar a evacuação estão disponíveis os meios resumidos na Tabela 2.42.

TABELA 2.42: Resumo das condições de operação dos elevadores

Veículo de Veículo de Helicóp- Micro- Veículo de


Ônibus
6 Ton do Exército ¼ Ton do Exército tero -ônibus Passeio
Unidades
10 20 15 10 5 60
Disponíveis
Capacidade de
20 pessoas 5 pessoas 10 pessoas 30 pessoas 15 pessoas 5 pessoas
Transporte (Pj)
Capacidade para
1 tonelada 20kg 50kg 1 tonelada 500kg 100Kg
Bagagem (Wj)
Custo por
10 UM 4 UM 75 UM 5 UM 3 UM 2 UM
Viagem (cj)
Tempo de
1 hora 45 minutos 10 minutos 45 minutos 30 minutos 30 minutos
Viagem (tk)

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:

Cracking Gás e Óleos

Petróleo Destilação
Desulfuração Reforming Gasolina
Bruto Atmosférica

Figura 2.11: Fluxo de Re¿no

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.

TABELA 2.43: Capacidade máxima de processamento


Operação Gasolina Bruta (ton/ano) Gás/Óleo (ton/ano)
Destilação 500.000 600.000
Dessulforação 700.000 500.000
Reforming 400.000 –
Cracking – 450.000
Lucros Unitários 10,0 Reais/ton 7,0 Reais/ton

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.

TABELA 2.44: Informações do processo de ourivesaria e lapidação


Operação Colar Anel Pulseira Disponibilidade diária em hxh
Lapidação (hxh) 15 7 15 80
Consumo de Ouro 20g 5g 10g
Consumo de Diamantes 4g 5g 10g
Lucros Unitários 30 UM 20 UM 35 UM

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

Demanda atendida pela ferrovia


Estação Estação 0,05d A Estação
A B C 0,05(0,95d A + d B )
Centro
dA dB dC Demanda atendida pelo
Bairro A transporte rodoviário
Bairro B Bairro C
Figura 2.12:
Esquema do
Transporte Rodoviário
sistema de
transporte
106 Programação Linear e Fluxos em Redes

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

20 O Problema das Camisetas ( I )

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.

TABELA 2.45: Demanda esperada das camisetas


Semana i
1 2 3 4
Demanda Valor Demanda Valor Demanda Valor Demanda Valor
Camisa do Time j
dij vij dij vij dij vij dij vij
Time A 1.250 5 2.500 6 500 3 – –
Time B 1.250 5 2.500 6 500 3 – –
Time Finalista C 1.250 5 2.500 6 14.500 8 30.000 9
Time Finalista D 1.250 5 2.500 6 14.500 8 30.000 9

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

21 O Problema dos Ovos de Páscoa ( I )


0
Um fabricante de ovos de Páscoa trabalha durante o ano para atender à grande demanda de doces por ocasião da Páscoa.
Os doces são fabricados e estocados ao longo do ano. A fábrica produz quatro tipos de ovos e duas colombas (espécie de
bolo). Todavia existe uma demanda residual desses produtos ao longo do ano inteiro, especialmente decorrente de comer-
ciantes que desejam fazer estoques preventivos. Essa demanda deve ser atendida quando ocorre. O planejamento inicia-se
no início do período de junho-setembro, referindo-se à próxima Páscoa, com estoque inicial zero para todos os produtos, e
terminado o planejamento com os estoques igualmente nulos. Basicamente os insumos de fabricação são os mesmos para
cada doce, variando apenas quantitativamente. O consumo de insumos pode ser resumido na Tabela 2.46. Os custos ¿nais
dos produtos estão cotados em unidades monetárias, o chocolate em gramas, o recheio em unidades, as embalagens em
folhas e a mão de obra em horas.

TABELA 2.46: Consumo dos insumos para os ovos de Páscoa


Insumos Críticos
Produtos Chocolate (Gr) Recheio (U) Embalagem (folha) Mão de obra (h)
Ovo 100 100 5 1 0,05
Ovo 150 150 10 1,5 0,08
Ovo 200 200 20 2,0 0,1
Ovo 400 400 30 2,5 0,12
Bolo Tipo1 100 7 2,0 0,1
Bolo Tipo2 200 12 3,0 0,15

Os quantitativos totais disponíveis dos insumos para a empresa, dentro da qualidade exigida, são descritos na Tabela 2.47.

TABELA 2.47: Quantitativos disponíveis dos insumos


Períodos Chocolate (Kg) Recheio (unidades) Embalagem (folhas) Mão de Obra (horas)
1. Abr-Mai 5.000 104 5.103 1000
2. Jun-Set 70.000 106 8.105 1500
3. Out-Jan 40.000 105 7.103 1000
4. Fev-Mar 20.000 104 8.104 2000

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.

22 Eleição Majoritária – DesaÀo

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.

TABELA 2.49: Captação de votos em função dos investimentos de marketing


Show do
Área do Estado e-mail Palanque Painéis Carreata Votos Desejados
Timbolada
BH e Metropolitana 45 -5 25 20 5 2.000.000
Zona da Mata 4 10 20 15 30 800.000
Triângulo 8 4 -2 22 35 700.000
Sul/Sudoeste 15 -6 2 35 12 650.000
Outras Regiões -4 50 28 10 10 2.000.000

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

23 Produção de Derivados de Coco – DesaÀo

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

TABELA 2.50: Consumo de energia e mão de obra nos processos


Processo A Processo B Processo C
Energia/Kg 5 U. 2. U. 8 U.
Mão de Obra/Kg 0,01 hxh 0,02 hxh 0,05 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.

24 Produção de Cacau – DesaÀo

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 Figura 2.13 resume as possibilida-


des do produtor. A ¿gura destaca que Cacau colhido na
o bene¿ciamento não ocorre próximo fazenda
às fazendas do produtor, necessitan-
do uma operação de transporte. Por
outro lado, a venda do fruto elimina Venda a granel Seleção, limpeza
Processo A
da amêndoa e secagem
a operação de transporte, uma vez
que os compradores coletam o cacau
nas fazendas com recursos próprios e
Transporte da
sem custos para o produtor. amêndoa
Manteiga de cacau
Os mesmos motoristas que são utili-
zados no transporte do cacau dentro
da fazenda, das posições de coleta Pó de cacau Pó e manteiga Processo B
para o centro de processamento e se-
cagem no processo A, são utilizados
no transporte. A Tabela 2.51 resume a
Achocolatado Chocolate em pó Processo C Figura 2.13:
demanda em homens x hora dos mo- Possibilidades de
toristas nessas duas atividades. venda do cacau

TABELA 2.51: Demanda e disponibilidade semanal dos motoristas


Colheita Transporte Disponibilidade semanal de motoristas
Necessidade da carga horária 10 hxh por 10 hxh por
96 homens x hora (hxh)
de motoristas por toneladas 100 toneladas 75 toneladas

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

25 A Produção de Frutas – DesaÀo

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.

TABELA 2.53: Área adequada ao plantio de cada fruta


Área Total Laranja Limão Acerola Cajá
Fazenda 1 1.200 800 800 600 600
Fazenda 2 5.000 1.000 600 1.500 2.000
Fazenda 3 3.500 800 500 2.000 1.000
Fazenda 4 2.700 1.000 1.000 600 600

A Tabela 2.54 de¿ne a produtividade de cada fruta, em cada fazenda, em toneladas por unidade de área plantada.

TABELA 2.54: Produtividade de cada fruta em cada fazenda


(tonelada/unidade de área)
Laranja Limão Acerola Cajá
Fazenda 1 14 12 5 8
Fazenda 2 6 5 4 3
Fazenda 3 16 9 1 7
Fazenda 4 12 8 3 9

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.

TABELA 2.55: Consumo de água de irrigação (m3/unidade de área)


Água Disponível (m3) Laranja Limão Acerola Cajá
Fazenda 1 1.000 0,1 0,1 0,05 0,04
Fazenda 2 950 0,2 0,3 0,06 0,05
Fazenda 3 1.300 0,15 0.12 0,04 0,03
Fazenda 4 1.500 0,1 0,9 0,07 0,08

TABELA 2.56: Custos de transporte em UM por tonelada de fruta


Central de Processamento
Laranja Limão Acerola Cajá
Fazenda 1 5 5 2 2
A empresa processa as frutas em uma central de pro-
Fazenda 2 8 8 3 10
dução de polpa. O custo do transporte da tonelada de
cada fruta, originária de cada fazenda, é de¿nido na Fazenda 3 9 10 15 2
Tabela 2.56. Fazenda 4 21 8 3 5
112 Programação Linear e Fluxos em Redes

TABELA 2.57: Perda percentual na produção da polpa e receita


Sabendo-se que a polpa da fruta é obtida com uma de venda
perda percentual que está de¿nida na Tabela 2.57, e Central de Processamento
que resulta em uma receita também de¿nida nessa
Laranja Limão Acerola Cajá
mesma Tabela, formular o problema para otimizar o
Perda % 15 25 8 5
esquema de plantio e transporte da empresa produ-
tora de polpa de frutas. Receita 40 42 50 46

2.6
Solução de Exercícios Propostos Selecionados

O Problema das Tomadas de Força 1


Variável de decisão Restrições tecnológicas:
xi ≡ número de unidades de tomada do tipo i produzidas Insumos
(i = 1 para tomada simples) e (i = 2 para tomada dupla).
a) Entradas
x1 + 2x2 d6
Função objetivo:
b) Apoios
Maximizar z = 15x1 + 20x2
2x1 + 2x2 d8

Restrições de não negatividade e integralidade


{x1, x2} Z+

Tomada Dupla Tomada Dupla

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

Tomada Simples Tomada Simples


x1 x1
1 2 3 4 5 6 1 2 3 4 5 6
Modelos de Programação Linear 113

O Problema da Pequena Marcenaria 2


Variável de decisão Restrições tecnológicas:
xij ≡ número de mesas (i = 1), escrivaninhas (i = 2) e cadeiras Insumos
(i = 3) produzidas na marcenaria.
a) Madeira
8x1 + 6x2 + 4x3 d100
Função objetivo:
b) Metal
Maximizar z = 80x1 + 60x2 + 50x3
5x1 + 4x2 + 4x3 d60

Restrições de não negatividade e integralidade


{x1, x2, x3} Z+

O Problema da Pequena Confecção 3


Variável de decisão Restrições tecnológicas:
xij ≡ número de lotes de camisa (i = 1) e calça (i = 2) 1. Mão de Obra
produzidos com a máquina j (j = 1, 2).
a) Especializada
10 (x11 + 212) d30
Função objetivo:
b) Não especializada
Maximizar z = 800 (x11 + x12) + 500 (x21 + x22)
20 (x11 + x12) + 15 (x21 + x22) d80
2. Produção das Máquinas
Restrições de não negatividade e integralidade
a) Máquina 1
{x11, x12, x21, x22} Z+
10x11 + 20x21 d80
b) Máquina 2
35x11 + 30x22 d130
3. Restrição de Matéria-Prima
a) Matéria-Prima A
8 (x11 + x12) + 12 (x21 + x22) d120
a) Matéria-Prima B
15 (x11 + x12) + 10 (x21 + x22) d100
114 Programação Linear e Fluxos em Redes

O Problema da Seca na Reserva Ambiental 4


Este problema não deixa claro qual a função objetivo a ser utilizada. Sugere-se que a ração é custosa e que o administrador
estima, de forma imprecisa, o número de animais a alimentar. Minimizar o uso da ração sujeita à restrição de alimentar o
número de animais estimado seria uma solução-objetivo factível. O presente texto sugere adotar o critério de maximização do
número de animais a ser alimentado, sujeito às demais restrições enunciadas. Essa última função objetivo reduz o risco de
uma subavaliação do administrador e seu consequente impacto na solução. Sempre que possível, o modelador de Pesquisa
Operacional deve ponderar os vários aspectos do problema, ainda que o econômico seja um dos mais importantes.
Variável de decisão Restrições tecnológicas:
xij ≡ número de animais do tipo i (i = G – Guariba; i = C – a) Restrições de disponibilidade do suplemento
Cuíca) alimentado pelo suplemento j (j = A – Alfa; j = B – Beta) 9 Tipo alfa
10xGA+ 2xCA d500
Função objetivo: 9 Tipo beta
Maximizar z = xGA + xGB+ 2xCA+ 2xCB 6xGB+ 3xCB d1000
b) Restrições da mistura com a isca
O coe¿ciente 2 expressa na quantidade de ração a ameaça. 10 (xGA+ xGB) + 20 (xCA + xCB) d6000
c) Restrições da proporção de misturados suplementos.
Restrições de não negatividade e integralidade 6xGB+ 3xCB
=3
{xGA, xGB, xCA, xCB} Z+ 10xGA+ 2xCA
Restrições de demanda:
a) Guaribas alimentados
xGA + xGB t50
b) Cuícas-de-colete alimentados
xCA + xCB t100

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

O Processamento e Comercialização de Sardinhas 6


Variável de decisão Restrições Tecnológicas:
xij ≡ quantidade de sardinha concentrada no centro i (i = I a) A quantidade de sardinha recebida no centro de processa-
– Ilha Grande; i = M – Macaé e i = C – Cabo Frio) e pro- mento é igual ou menor à capacidade do centro.
cessada na cidade j (j = A – Araruama e j = N – Niterói).
9 Processamento em Niterói
yij ≡ quantidade de sardinha vendida na cidade i (i = R –
Rio de Janeiro; i = S – São Paulo) e processada na cidade ∑ x ij ≤ 450 j = N
i∈{I,M,C }
j (j = A – Araruama e j = N – Niterói).
9 Processamento em Araruama

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

9 Parcela dos custos de produção da sardinha – H3


∑x
j ∈{A,N }
ij ≤ 200 i =M

H3 = 8yRA+ 10 (yRN + ySN)


9 Fornecimento de Cabo Frio

Função Z
∑x
j∈{A,N }
ij ≤ 300 i =C

Maximizar z = H1 __ (H2 + H3)


c) Quantidade de sardinha vendida no Rio e São Paulo atende
à capacidade de processamento de Niterói e Araruama.
Restrições de não negatividade
116 Programação Linear e Fluxos em Redes

O Problema da Transportadora de Soja 7


Variável de decisão 2. Equilíbrio de entrada na cidade de silagem
x ij ≡ quantidade de soja transportada entre a cidade i, a) Ponta Grossa
(i = M – Maringá; i = O – Campo Mourão e i = C – Cascavel)
e a cidade j (j = P – Ponta Grossa; j = G – Guarapuava e ∑ xip sp ≤ 160
i ∈{M,O}
j = U – União da Vitória).
b) Guarapuava
⎧ 1, caso seja alugado um silo na cidade i ⎫
si ≡ ⎨
⎩ 0, em caso a contrário

⎭ ∑ xiG sG ≤ 130
i ∈{M,O,C }
Função objetivo
c) União da Vitória
9 Parcela do transporte entre centros de embarque e silos – H1
H1 = (9xMP + 15xMG) + (4xOP + 8xOG + 6xOU) + (5xCG + 12xCV ) ∑x iV sV ≤ 130
i ∈{O,C }
9 Parcela do transporte entre silos e portos – H2
3. Equilíbrio de saída na cidade de silagem
H2 = (12xPR + 13xGR + 6xVR) + 6xGI + 8xVI)
a) Ponta Grossa
9 Parcela dos custos do aluguel dos silos – H3
xPRSP d 160
H3 = 10SP + 15SG + 18SV
b) Guarapuava
Função Z
Maximizar z = H1 + H2 + H3
∑x
j∈{R,I }
Gj sG ≤ 130

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

yij ∈ ℜ i ∈ {P, G, V}, j ∈ {R,I} 4. Ativação de silagem se há transporte


si ∈ {0.1} i ∈ {P, G, V} a) Ponta Grossa
Restrições Tecnológicas:
∑x
i∈{M,O }
ip − 160 sp ≤ 0
1. Escoamento da safra das cidades
b) Guarapuava
a) Maringá
∑ xiG − 130sG ≤ 0
∑ x
{ }
j∈ P,G
Mj = 100 j = P, G, V i ∈{M,O,C}

b) Campo Mourão c) União da Vitória

∑ 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

A Figura 2.14 exempli¿ca o relacionamento das variá-


veis de decisão. Em cada horário de início de plantão,
um grupo de policiais pode começar em turno de 8 12 policiais de ronda / 04 de trânsito (01 moto)

ou 12 horas. A faixa escurecida na ¿gura representa x1kj8


1 Turno de 8 horas
o plantão 2. Esse plantão, por exemplo, deve contar x 2k 8j 2 Turno de 8 horas
com 12 policiais de ronda, 4 de trânsito (sendo um em x1kj12
1 Turno de 12 horas
moto). No plantão 2 estarão presentes os policiais que x k 12 x 2k 12j 2 Turno de 12 horas
6j
iniciaram seu turno de 12 horas às 19h e os que ini- 6 Turno de 12 horas

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.

Variável de decisão b) Solução para o plantão 2


Policiais que entram em serviço no plantão i (i = 1,..,6) Período do Policial de Policiais de Policiais de
Turno
com a especialidade j (j = r – ronda e t – trânsito) segundo Dia Moto Ronda Trânsito
o regime s (s = 8, 12), com a designação k (k = m – 2 03:00-07:00 01 12 4
moto e n – nenhum).
9 Restrições de trânsito do plantão 2
Por exemplo, a variável representa a quantidade de
policiais que entram em serviço no período 1, para trân- ∑x k8
1t + ∑x k8
2t + ∑x n12
jt + x 2tn12 ≥ 4
sito (t), em regime de 8 horas e não designados a uma k = m,n k =m,n j =1 e 6

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

cijn12 = 20x12 = 240


x1rn8 + x 2rn8 + ∑x
j =1 e 6
n12
jr + x 2rn12 ≥ 6

c ijn8 = 10x8 = 80
(50% da demanda)
c itm8 = 60x8 = 480
118 Programação Linear e Fluxos em Redes

Função Z Exemplos das restrições no plantão 2 e 5.


6 t 6 t 6
Minimizar z = ∑∑
i =1 j = r
240x ijn12 + ∑∑
i =1 j = r
80x ijn8 + ∑ 480x
i =1
m8
it
9 Restrições conjuntas ronda e trânsito no plantão 2

Restrições de não negatividade e integralidade

(50% da ronda em aberto)


Restrições Tecnológicas:
9 Restrições conjuntas ronda e trânsito no plantão 5
a) Inexistência das alternativas
;

(50% da ronda em aberto)

A Compra de Aviões da Caburé 9


Variável de decisão Restrições tecnológicas:
Aviões do tipo i adquiridos, (i = E – Embraer, i = A – a) Verba para aquisição:
Airbus e i = B – Boeing). 3xE + 230x A + 170x B ≤ 730

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

A Eleição em Cata Tatu 10

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.

Variável de decisão Restrições tecnológicas:


x ij ≡ Unidades monetárias (1.000,00) investidas na estratégia a) Votação na Ilha 1:
i (i = 1, ..., 4) aplicada ao distrito j (j = 1, 2, 3) − 2 x 11 + 8 x 21 + 0 x 31 + 10 x 41 ≥ 2501
b) Votação na Ilha 2:
Função objetivo: 5 x 12 + 2 x 22 + 0 x 32 + 0 x 42 ≥ 5001

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

e) Investimento em cartazes de propaganda:


3 3

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

Vetor custo 3x B2 + 5x B4 ≤ 420

c ij ≡ custo das viagens (unidades de transporte) do elevador c) Elevador C:


i, (i = A,B,C), para o andar j (j = 1,2,3,4). cA1= 2, cA3= 3, cB2= 2, 4x C1 + 4xC2 + 6x C3 + 6x C4 ≤ 420
cB4= 4, cC1= 1, cC2= 2, cC3= 1, cC4= 1.
3. Atendimento das viagens por andar
a) 1o andar:
Função objetivo
x A1 + x C1 = 50
c 4
Minimizar z = ∑∑ c x
i = A j =1
ij ij b) 2o andar:
x B2 + x C2 = 70
Restrições de não negatividade e integralidade
c) 3o andar:
x ij ∈ ℜ i ∈ {A,B,C}, j ∈ {1,2,3,4}
x A3 + x C3 = 80
d) 4o andar:
Restrições tecnológicas: x B4 + x C4 = 85
1. Número de viagens dos elevadores 4. Restrições de número mínimo de viagens
a) Elevador A: a) Elevador A:
∑x
j∈{1,3}
Aj ≤ 120 x A1 ≥ 10; x A3 ≥ 10
b) Elevador B:
b) Elevador B:
x B2 ≥ 10; x B4 ≥ 10
∑ x Bj ≤ 95
j∈{2,4}

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 da Montagem de Containers 13


Variável de decisão Restrições tecnológicas:
x i ≡ número de containers do tipo i - (i = 1, 2, 3, 4) produzidos a) Demanda:
Q21 ≡ quantidade de homens x hora emprestada pelo pro- x1 d45
cesso 2 (instalações) ao processo 1 (soldagem).
x2 d65
Q31 ≡ quantidade de homens x hora emprestada pelo pro-
x3 d90
cesso 3 (acabamento) ao processo 1 (soldagem).
x4 d65
b) Restrição de capacidade em homens x hora:
Função objetivo:
9Processo de soldagem
Maximizar z = 10x1 + 15x2 + 18x3 + 21x4
x1 + 2x2 + 4x3 + 3x4 d165 + Q21 + Q31
9Processo de instalações e portas
Restrições de não negatividade e integralidade
3x + 4x + 2x + 3x d75 _ Q
1 2 3 4 21
xi Z+ i = 1, 2, 3, 4
9Processo de acabamento e pintura
Q21, Q31 Z+
2x + 5x + x + 7x d210 _ Q
1 2 3 4 31

c) Restrição de proporção para o transporte:


x
0,8 ≤ 1 ≤ 1,1 → x1 ≥ 0,8x 3 ; x1 ≤ 1,1x 3
x3
d) Restrição de trabalhadores emprestados:
Q21 d(0,15) 75 : Q31 d(0,20) 210
122 Programação Linear e Fluxos em Redes

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:

Função objetivo do pedido 2: x1 d 0,15 (x1 + x2 + x3)


1 1 x1 d 0,3 (x1 + x2 + x3)
Maximizar z = x1 + 2 . x2 + 3 . x3
2 3
= x1 + x2 + x3 Restrições de não negatividade e integralidade
xi Z+ i = 1, 2, 3
Função objetivo do pedido 3:
Maximizar z = x1 + 2x2 + 3x3

Função objetivo do pedido 4:


Minimizar z = 10x1 + 14x2 + 17x3
Modelos de Programação Linear 123

O Problema da Evacuação de Emergência 15


Grupos do tipo i em evacuação Restrições Tecnológicas:
a) Famílias –- crianças acompanhadas por suas mães: a) Garantia de evacuação das pessoas
kj
10 grupos com 5 ¿lhos + mãe = 6 pessoas – i = 6 6 6

25 grupos com 4 ¿lhos + mãe = 5 pessoas – i = 5


∑ ∑ ∑ i.f
i =1 j =1 k =1
ik
j
≥ 17.750

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

Variável de decisão f5k2 < 1


f6k1 < 3
fikj ≡ Número de grupos do tipo i transportados no veículo
f 1k3 < 10 f 1k4 < 30
j na viagem k. Veículo j, j = 1 (6ton); 2 (¼ton); 3 (helicópte-

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

Restrições de conexão entre fikj e fikj : P1 = 20; P2 = 5; P3 = 10; P4 = 30; P5 = 15; P6 = 5.


6 d) Restrições de transporte da bagagem:
M f kj − ∑f
i =1
ik
j
> 0 ∀k, j

Restrições de não negatividade e integralidade


f ikj ∈ Z + ∀ i, j, k fkj ∈ {0,1} ∀ j, k W1 = 1000; W2 = 20; W3 = 50; W4 = 1000; W5 = 500; W6 = 100.
124 Programação Linear e Fluxos em Redes

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

b) Capacidade do processo de reforming:


Restrições de não negatividade
x1 d 400.000
{x1, x2} ∈ ℜ i = 1, 2, 3
c) Capacidade do processo de cracking:
x2 d 450.000
d) Capacidade do processo de dessulfuração:
se: x1 = 700.000 J x2 = 0;
x2 = 500.000 J x1 = 0;
x1 x2
+ d1
700.000 500.000
x1 x2
+ ≤1 z = 10 x1 +7 x 2
500.000 600.000

500.000 500.000 x1 = 400.000


x 2 ≤ 450.000
x2 = 120.000
400.000 400.000 z = 4.840.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

h j ≡ horas extras no dia j (j = 1,2,3). E j t10 i = 2,3


Função objetivo: 3. Consumo mínimo diário de diamante
Maximizar z = 4xCi + 5x iA + 10xPi ≤ 100 + E i i = 1,2,3
3 3 3 3
30∑ x j + 20∑ x j + 35∑ x
C A
j
P ∑h
− 0,3 j
4. Lapidação
j =1 j =1 j =1 j =1
15xCj + 7x Aj + 15x Pj ≤ 80 + h j j = 1,2,3
Restrições de não negatividade e integralidade
5. Contrato
x ij ∈ Z + ∀i, j ; h j ≥ 0
xCj ≥ 2 ; x Aj ≥ 2 ; xPj ≥ 2 j = 1,2,3
126 Programação Linear e Fluxos em Redes

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} ∈ ℜ

O Problema das Camisetas 20

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

Variável de decisão Restrições tecnológicas:


x ij ≡ Número de camisetas produzidas na semana i 1. De produção
(i = 1, 2, 3, 4) através do esquema de produção j ( j = 1 –
x11 d 25.000; x21 d 25.000; x31 d 25.000; x41 d 25.000
normal, 2 – horas extras)
x12 d 10.000; x22 d 10.000;
y i ≡ Número de camisetas vendidas na semana i = 1, 2, 3, 4
2. De vendas para estoque zero ao ¿m da 4a semana
Custos:
y1 = 5.000; y2 = 10.000; y3 = 30.000; y4 = 60.000;
9 Produção normal
2 2 4 4
H1 = 2x11 + 2x21 + 2,5x31 + 2,5x41
∑∑ ∑i =1 j =1
x ij +
i =3
x i1 = ∑y
i =1
i = 105.000
Modelos de Programação Linear 127

9 Produção extra 3. De estoque


H2 = 2,8x21 + 2,8x22 91a semana para 2a
9Custo de estoque x11 + x12 − y 1 = A1

H3 = 0,2(A1 + A2 + A3) 92a semana para 3a


Função objetivo: x11 + x12 + x 21 + x 22 − (y 1 + y 2 ) = A2
4 2 3
Minimizar z = H1 + H 2 + H 3 = ∑∑ c x ij ij + 0,2 ∑A i
93a semana para a 4a
i =1 j =1 i =1
x11 + x12 + x 21 + x 22 + x 31 − (y1 + y 2 + y 3 ) = A3

Restrições de não negatividade e integralidade


x ij ∈ Z + i = 1,2,3,4, j = 1,2

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

x12 d 10.000; x22 d 10.000; ∑∑∑ x


i =1 j =1 k =1
k
ij − (y 1 + y2 ) = A 2

(*) A produção da 4a semana já é conhecida a priori, sendo


9 3a semana para a 4a
desconsiderada do modelo.
2 2 4 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

O Problemas dos Ovos de Páscoa 21


Variável de decisão Demanda nos meses fora da Páscoa
xij ≡ número de doces do tipo i, (i = 1 – ovo 100; i = 2 – ovo 150; i = 3 – ovo Períodos
200; i = 4 – ovo 400; i = 5 – bolo 1; i = 6 – bolo 2) produzidos no período 3 4
j (j = 1, 2, 3, 4) na fábrica.
1 x 13 t103 x 14 t103
e ij ≡ número de doces do tipo i estocados no período j, índices de¿nidos
anteriormente. 2 x 23 t103 x 24 t103

W ij ≡ custo de armazenar o doce do tipo i no período j. Doces 3 x 33 t103 x 34 t2(103)

C ij ≡ custo de produzir o doce do tipo i no período j. 4 x 43 t103 x 44 t102

Função objetivo: 5 x 53 t103 x 54 t4(104)

O objetivo de minimizar os custos totais. 6 - x 64 t104


6 4
Minimizar z = ∑∑ (w e
i =1 j =1
ij ij + c ij x ij ) Demanda total, incluindo a da Páscoa
a) Ovo 100:
Restrições de não negatividade e integralidade
x 11 + x 12 + x 13 + x 14 t4(105) + 103 + 103
x ij ∈ Z + , i = 1,2 ,3 , 4 ,5 ,6 j = 1,2 ,3 , 4
b) Ovo 150:
Restrições tecnológicas:
x 21 + x 22 + x 23 + x 24 t2(105) + 103 + 103
Insumos
c) Ovo 200:
a) Disponibilidade de chocolate nos quatro períodos
x 31 + x 32 + x 33 + x 34 t105 + 103 + 2(103)
100 x11 + 150 x21 + 200 x31 + 400 x41 + 110 x51 + 200 x61 ≤ 5 (106)
d) Ovo 400:
100 x12 + 150 x22 + 200 x32 + 400 x 42 + 110 x52 + 200 x62 ≤ 70 (106)
100x 13 + 150 x 23 + 200 x 33 + 400 x 43 + 110 x 53 + 200 x 63 ≤ 40 (106) x 41 + x 42 + x 43 + x 44 t2(104) + 103 + 102
100x 14 + 150 x 24 + 200 x 34 + 400 x 44 + 110 x 54 + 200 x 64 ≤ 20 (106) a) Colomba 1:
x 51 + x 52 + x 53 + x 54 t2(105) + 103 + 4(104)
b) Disponibilidade de recheio nos quatro períodos
b) Colomba 2:
5 x 11 + 10 x 21 + 20 x 31 + 30 x 41 + 7 x 51 + 12 x 61 ≤ 10 4
x 61 + x 62 + x 63 + x 64 t2(104) + 104
5 x 12 + 10 x 22 + 20 x 32 + 30 x 42 + 7 x 52 + 12 x 62 ≤ 10 6
5 x 13 + 10 x 23 + 20 x 33 + 30 x 43 + 7 x 53 + 12 x 63 ≤ 10 5
Produção restrita à demanda e ao estoque
5 x 14 + 10 x 24 + 20 x 34 + 30 x 44 + 7 x 54 + 12 x 64 ≤ 10 4
a) Ovo 100:
c) Disponibilidade de folhas de embalagem
e 12 = x 12 d 4(105) (período 2)
x 11 + 1,5 x 21 + 2 x 31 + 2 ,5 x 41 + 2 x 51 + 3 x 61 ≤ 5 (10 )
3
e = x + x _ 103 d 4(105) (período 3)
13 12 13
x 12 + 1,5 x 22 + 2 x 32 + 2 ,5 x 42 + 2 x 52 + 3 x 62 ≤ 8 (10 5)
e14 = x12 + x13 + x14 _ 103 _ 103 d 4(105) (período 4)
x 13 + 1,5 x 23 + 2 x 33 + 2 ,5 x 43 + 2 x 53 + 3 x 63 ≤ 7 (10 3)
e = x + x + x + x _ 103 _ 103 d 4(105)
x 14 + 1,5 x 24 + 2 x 34 + 2 ,5 x 44 + 2 x 54 + 3 x 64 ≤ 8 (10 4) 11 12 13 14 11
Modelos de Programação Linear 129

d) Disponibilidade de mão de obra Produção restrita à demanda e ao estoque

0 ,5 x 11 + 0 ,8 x 21 + x 31 + 1,2 x 41 + x 51 + 1,5 x 61 ≤ 10 4 b) Ovo 200:

0 ,5 x 12 + 0 ,8 x 22 + x 32 + 1,2 x 42 + x 52 + 1,5 x 62 ≤ 1,5 (10 4) e 22 = x 22 d 105 (período 2)


0 ,5 x 13 + 0 ,8 x 23 + x 33 + 1,2 x 43 + x 53 + 1,5 x 63 ≤ 10 4 e = x + x _ 103 d 105 (período 3)
23 22 23

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

e = x + x + x + x _ 103 _ 103 d 105


21 22 23 24 21

E assim por diante.


Capítulo 3
Método Simplex

Objetivos
O presente capítulo objetiva:

1. Introduzir os fundamentos do método Simplex.

2. DeÀnir o método Simplex para programação linear.

3. Realizar estudos de casos especiais e exemplos da abordagem Simplex.

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

Um algoritmo é um procedimento que termina


em um número Ànito de instruções (passos)

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.

x Sistemas de equações lineares, representação e deÀnições fundamentais


Uma equação linear é representada tradicionalmente pela expressão a1x1 + a2x2 + ... + anxn, onde os temos a1, i = 1, 2, ..., n,
representam os coe¿cientes das variáveis x1, i = 1, 2, ..., n. O termo b é um escalar denominado termo independente. Várias
equações formam um Sistema Linear. Como o Capítulo 2 exempli¿cou, sistemas lineares são usados para modelar fenô-
menos e permitem determinar ou estudar a variação dos valores de suas variáveis. Um sistema linear possui m equações
com n variáveis, como exempli¿ca o sistema da Figura 3.1(a). O sistema da Figura 3.1 pode ser reescrito no formato de um
produto de matrizes como exempli¿ca a Figura 3.1(b), (c) e (d).

a11 a 12 ... ... a1 j ... a1n


a11x1 + a12x2 + ... + a1nxn = b1 a21 a22 ... ... a2 j ... a2
a21x1 + a22x2 + ... + a2nxn = b2 •


• ... ...

• ... •

b1
A= • • • •

.. .. .. ai1 ai 2 ... ... a ij ... a in b2


. . . B=
am1x1 + am2x2 + ... + amnxn = bm


a m1 am 2








... ... amj







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

x = (xB,xR) é o vetor das variáveis do modelo, onde xB representa


o vetor das variáveis básicas de m componentes e xR é o ve- xB xR
tor das restantes n-m variáveis não básicas. I é o conjunto dos
índices correspondentes às variáveis básicas. J é o índice das m n-m
variáveis não básicas.
Figura 3.2. Decomposição do vetor de variáveis x

Como qualquer conjunto de equações m x m, o conjunto associa-


do a uma base, pode ser solucionado exclusivamente em função n
das variáveis dessa base. Consequentemente, tem-se: x = (xB , m
0). A propriedade citada pode ser estendida para a representa-
ção da matriz A, permitindo que ela seja dividida em duas sub-
matrizes: uma matriz m x m, matriz que será denominada de B,
m B R
de posto (rank) = m, e outra m x n-m, matriz denominada de R,
conforme exempli¿cado na Figura 3.3. Observe-se que os siste-
mas indeterminados possuem mais variáveis do que equações Figura 3.3. Decomposição da matriz A
não redundantes.

A Figura 3.4 exempli¿ca o comportamento da decom-


n
posição do vetor x em variáveis básicas e não básicas,

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.

x1 + 2x 2 ≤ 4 Transformação para x 1 + 2 x 2 + x 3 = 4 Matrizes +1 + 2 +1 0 +4


A= b=
x2 ≤ 1 forma padrão x2 + x4 = 1 Aeb 0 +1 0 +1 +1

Para o exemplo, é possível ter xB = (x3, x4) e xR = (x1, x2).

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

O conjunto C das soluções viáveis de um modelo de programação linear é um conjunto convexo.

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

e x ≥ 0 , uma vez que:

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

Figura 3.5: Conjuntos Convexos e Não Convexos

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

A relação entre pontos extremos de C e


as soluções viáveis básicas de um Proble- Ponto Solução
S l ã BáBásica
i
ma de Programação Linear (PPL) é uma Extremo Viável
correspondência biunívoca, como mostra
a Figura 3.6. Figura 3.6. Correspondência solução básica x ponto extremo de um PPL

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.

Solução Ponto Solução Básica


Básica Ótima Extremo Viável

Figura 3.7. Correspondência com a solução ótima

3.3
O Algoritmo Primal Simplex

• A visão geral do algoritmo


O algoritmo Simplex descreve uma sequência de passos para a solução de sistemas de equações lineares sujeitos a uma
função objetivo. Basicamente, o algoritmo possui três procedimentos característicos:

Procedimentos Característicos do Simplex

1. Inversão da matriz básica m x m deduzida a partir de A, uma matriz de restrições m x n;


2. Regulação da troca de variáveis dentro da matriz básica, para que exista garantia da melhoria con-
tínua da solução ao longo do desenvolvimento dos passos do algoritmo;
3. Procedimento de parada do algoritmo e interpretação da situação Ànal alcançada.

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.

x ExempliÀcando a solução de um Problema de Programação Linear


Uma pequena metalúrgica deseja maximizar sua receita com a venda de dois tipos de finas fitas de aço, que se dife-
renciam em qualidade do acabamento de corte. As fitas são produzidas a partir do corte de bobinas de grande largura.
Existem duas máquinas em operação. Uma das máquinas é mais antiga e permite o corte diário de 4 mil metros de fita.
A outra, mais nova, corta até 6 mil metros. A venda das chapas no mercado varia com a qualidade de cada uma. Fitas
produzidas na máquina antiga permitem um lucro de 3 UM por mil metros de produção. Fitas cortadas na máquina
moderna produzem um lucro de 5 UM por mil metros de produção. Cada mil metros de fita cortada na máquina antiga
consome 3 homens x hora de mão de obra. Na máquina moderna são gastos apenas 2 homens x hora. Diariamente
são disponíveis 18 homens x hora para a operação de ambas as máquinas. Determinar a produção que otimiza o lucro
da metalúrgica.
A modelagem deste Problema de Programação Linear, que é presentemente denominado “das ¿tas” ou (Fita_1), é simples
e pode ser realizada da seguinte forma:
1. Escolha da variável de decisão
xi { comprimento da ¿ta cortada na máquina velha (i = 1) e comprimento da ¿ta cortada na máquina nova (i = 2).
2. Elaboração da função objetivo
Maximizar z = f(x) = 3x1 + 5x2
Número total de unidades monetárias obtidas com a venda das ¿tas em seus diversos comprimentos.
3. Formulação das restrições tecnológicas
Considerando a unidade de comprimento das ¿tas igual a mil metros, temos:
a) Restrição associada à disponibilidade de mão de obra:
3x1 + 2x2 d 18
b) Restrição do comprimento das chapas fabricadas na máquina velha:
x1 d 4
c) Restrição do comprimento das chapas fabricadas na máquina nova:
x2 d 6
4. Restrições de não negatividade
x1 t 0, x2 t 0.
140 Programação Linear e Fluxos em Redes

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

Figura 3.8. Representação grá¿ca de Fita_1


Método Simplex 141

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:

TABELA 3.1. Pontos extremos

Pontos Examinados Coordenadas (x1 ,x2) Valor da função z = 3x1 + 5x2


O (0,0) 0

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

Figura 3.9. Crescimento da função Z sobre as restrições de Fita_1


142 Programação Linear e Fluxos em Redes

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

Figura 3.10. Caso de in¿nitas soluções ótimas para o problema Fita_1

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 jJ, com o valor de seus custos reduzidos iguais
a zero (zj - cj = 0) na solução ótima.
Método Simplex 143

Uma segunda possibilidade de in¿nitas soluções para


um modelo de programação linear corresponde ao
caso em que o universo das soluções viáveis é aberto x2
na direção do crescimento da função objetivo. A Figu-
ra 3.11 exempli¿ca a situação citada. Direção de
x1 − 2x 2 ≤ 2 crescimento de Z
Examinando o exemplo proposto veri¿ca-se que, se não é bloqueada
a direção de “crescimento” da função z tiver o senti-
do contrário do exibido na ¿gura (um PPL de minimi- z = 3x1 + 2x 2
zação), apontando consequentemente para a região
B
do ponto B, a solução desse problema será limitada.
Para a região do ponto B, o conjunto de restrições é 3x1 + 5x 2 ≥ 15
limitado, uma vez que a direção de crescimento de z
acabará bloqueada pelo encontro de faces do poliedro
x1
(duas restrições para o caso bidimensional), corres- Figura 3.11. PPL ilimitado
pondendo a um ponto extremo.

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

Figura 3.12: PPL inviável

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)

x O critério de melhoria de uma solução básica


Considerando que exista uma solução básica viável para o seguinte Problema de Programação Linear:
Minimize z = cx
Sujeito a:
Ax = b
x ≥0
144 Programação Linear e Fluxos em Redes

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

dessa forma, pode-se rescrever a expressão z = cx como se segue:

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

Onde z j = cB B −1a j para cada variável não básica.

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

x B = B −1b − B −1a k x k = b − y k x k (3.3)

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 .

x Exemplo da aplicação do critério de melhoria


Seja o problema Fita_1 abordado anteriormente. O problema pode ser reescrito na forma-padrão, considerando a transfor-
mação para um Problema de Programação Linear de minimização, da seguinte forma:

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⎥⎦

Considerando a base composta pelas variáveis x3, x2, x5, ou seja:


⎡ 1 0 0⎤
B = [a3 ,a2 ,a5 ] = ⎢⎢0 1 0⎥⎥
⎢⎣0 2 1⎥⎦

Nesse caso, as variáveis x1 e x4 são não básicas. I = {3, 2, 5}, J = {1,4}


Calculando a inversa da base tem-se:

⎡ 1 0 0⎤
B = ⎢⎢0 1 0⎥⎥
−1

⎢⎣0 − 2 1⎥⎦

Com a inversa da base é possível calcular o vetor x B , x R e z da seguinte forma:

⎡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 jJ, consequentemente:

⎡1 0 0⎤ ⎡1 ⎤
z1 − c1 = c B B a1 − c1 = [ 0,− 5,0] ⎢⎢0 1 0⎥⎥ ⎢⎢0⎥⎥ − ( −3) = 3
−1

⎢⎣0 − 2 1⎥⎦ ⎢⎣3⎥⎦

⎡ 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

⎢⎣0 − 2 1⎥⎦ ⎢⎣0⎥⎦

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 1: Calcular a matriz Y = ( yj ) = ( ysj ), s ∈ I e j ∈ J e os valores z j − c j ∀j ∈ J como se segue:


Y = B −1R
z j = cB yj j ∈ J

• Se z j − c j ≤ 0 ∀j ∈ J a solução básica viável x B é ótima. Pare!


• Caso contrário, fazer J1 = { j ∈ J | z j − c j > 0}

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

Calcular a nova solução básica viável:

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 , in do modelo é negativo, é possível descrever um Problema de Programação Linear como:

Minimizar z = c1x1+ c 2 x 2 + ... + cs x s + 0x s +1 + 0x s +2 + .......... ..... + 0x n


Sujeito a :
a1 x1 + a12 x 2 + ......... + a1s x s + x s+1 + 0 + 0 + .......... ...... + 0 = b1

a21x1 + a2 x 2 + ......... + a2s x s + 0 + x s+2 + 0 + .......... ... + 0 = b2


.......... .......... .......... .......... .......... .......... ........ .......... .......... . =...
am1 x1 + am 2 x 2 + ........ + ams x s + 0 + 0 + 0 + .......... ........ + x n = bm
x1, x 2 ,.... x n ≥ 0

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:

QUADRO 3.1. Partida ou “Tableaux” Simplex Inicial

x1 .................... xk ........................ xs xs+1 ...........xs+r ..............xn

z c1 ......... ..... .... c1k ..................... c s c s+ 1............c s+r . .... .. .....c n

xs+1 b1 a11 .................. a1k ....................... a1s 1 .. 0 .. 0

.. .. .. .. .. 0 .. 0 .. 0

.. .. .. .. .. .. .. .. .. .. bs
xs+r br ar1 ................... ark .........................ars 0 .. 1 .. 0 ask

.. .. .. .. .. .. .. .. .. ..

.. .. .. .. .. .. .. .. .. ..

xn bm am1 .................. amk ...................... ams 0 .. 0 .. 1


Termo Matriz de Restrições Variáveis de Folga
Independente
(m x m-n) (m x m)
Método Simplex 149

O que corresponde à seguinte con¿guração matemática:

QUADRO 3.2. Identi¿cação das matrizes e variáveis no formato Simplex tabular – Quadro de Partida

Índice das Variáveis


Valor da Função
Objetivo
Valores de z j − c j

Índice

das
Área
Variáveis

Básicas xB Y = B −1R B −1 de

Cálculos

Variáveis Não Básicas Variáveis Básicas

Ao longo das iterações do algoritmo o quadro inicial é atualizado e corresponde à seguinte forma canônica:

QUADRO 3.3. Quadro geral do Simplex

x1 ...................... xk ....................... xs xs+1 ........xs+r ...........xn

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

ym1 ................. ymk ....................... yms

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, (jJ), 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.

QUADRO 3.4. Variáveis que entram e saem da base


152 Programação Linear e Fluxos em Redes

O Quadro 3.5 mostra, algebricamente, uma operação de pivoteamento.

QUADRO 3.5. Operação de pivoteamento a partir do quadro 3.4

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

Exemplo Numérico de Aplicação do Algoritmo Simplex

Seja o Problema de Programação Linear que se segue:

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

1. Redução do modelo ao formato-padrão


A solução pelo método Simplex parte do modelo escrito no formato-padrão. Portanto, cabe transformar o modelo proposto
para esse formato, o que normalmente é realizado através da adição de variáveis de folga para reduzir as inequações à
estrita igualdade. No caso de restrições t, através da subtração de variáveis de folga. No caso de restrições d, através da
soma de variáveis de folga. O modelo transformado se segue:

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

2. Passo 1 do algoritmo: Quadro de partida do algoritmo.


No caso de um modelo de maximização que possua todas as restrições d, como no exemplo, o quadro Simplex proposto é
simplesmente uma transcrição do modelo no formato-padrão, como abaixo. As variáveis de folga formam, nesse caso, uma
base inicial viável que permite a partida do algoritmo. Os termos zk − ck podem ser transcritos diretamente dos custos das
variáveis do modelo, uma vez que o termo zk é nulo, em função do fato de os custos básicos serem também nulos, já que
a base é formada por variáveis de custo nulo. Um modelo de maximização pode ser reduzido a um modelo de minimização
pela multiplicação dos custos por (-1), bem como pela multiplicação simultânea do valor da função Z igualmente por (-1).
No caso do presente exemplo, os custos são multiplicados por (-1), resultando em um valor igual a − ck . Como o valor que
deve ser transportado para o quadro no modelo de minimização é também − ck, os custos do quadro serão − (− c k ) = c k ,
correspondendo à transcrição dos custos do modelo de maximização.
154 Programação Linear e Fluxos em Redes

QUADRO 3.7. Quadro de partida do exemplo numérico

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.

3. Passo 2 do algoritmo: Regra de Parada


Como existe z j - c j ! 0, uma variável deve entrar na base. A escolhida é x4, pois z4- c4 = 11 é o maior valor entre os z j - c j .

QUADRO 3.8. Veri¿cação da regra de parada Variável com maior z j − c j

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

4. Passo 3 do algoritmo: Determinação da variável que sai da base (determinação do pivô)


A entrada de x4 na base exige a saída de uma variável da base, em virtude da base ser de posto m. A variável que será es-
colhida é a primeira que irá se anular com o crescimento de x4. No exemplo, x7 sai da base, uma vez que 100/15 é o menor
valor para o crescimento de x4. As setas indicam as variáveis que entram e saem da base na iteração.

QUADRO 3.9. Variável que sai 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 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.

QUADRO 3.10. Etapa 1: Construção do pivô

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

QUADRO 3.11. Etapa 2: Construção da coluna do pivô

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.

6. Passo 2 do algoritmo: Aplicação da Regra de Parada


Nesse caso, o maior z j - c j corresponde a z j - c j = 9/5, sendo maior que zero. Assim, a entrada da variável x1 na base segu-
ramente vai melhorar a função objetivo, caso essa variável possa adquirir um valor maior que zero. Para o algoritmo Simplex,
a regra de parada não se aplica e a variável entra na base.

7. Passo 3 do algoritmo: Determinação da variável que sai da base (determinação do pivô)

QUADRO 3.12. Variável que sai da base

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

QUADRO 3.13. Etapa 1: Construção do pivô

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

QUADRO 3.14. Etapa 2: Construção da coluna pivô

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

9. Passo 2 do algoritmo: Aplicação da Regra de Parada


O quadro possui z 3 - c3 = 11/ 12, um valor que pode melhorar a função objetivo através da entrada na base da variável x3.

10. Passo 3 do algoritmo: Determinação da variável que sai da base (determinação do pivô)

QUADRO 3.15. Etapa 1: Construçã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

QUADRO 3.16. Etapa 1: Construção da coluna pivô

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

12. Passo 2 do algoritmo: Aplicação da regra de parada


No quadro, todos os z j - c j ≤ 0, o que conduz à regra de parada. A solução ótima foi encontrada. O valor ótimo de z é 695/7,
com x1 = 50/7; x6 = 325/7 e x3 = 55/7.

Comentários e Fluxograma do Algoritmo Simplex

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

rente da entrada na base da variável não básica com N


zk − c k > 0 ? xB Ótima
maior z k − c k > 0, e a saída da variável básica com
mínimo valor de bs (representado no fluxograma S
ysk S Solução
yk ≤ 0
como xs ). Ilimitada
ysk
O formato tableaux do Simplex sistematiza os cálculos N
do Àuxograma, realizando, através da operação de pivo-
teamento, a reinversão da base após a entrada da nova
variável. O pivoteamento atuando na matriz estendida do
xl
y lk
x
{
= mínimo s :y sk > 0
s∈I y sk
{
tableaux, igualmente atualiza os valores de Y, z j − c j ,
x B e de z 0. Figura 3.13: Fluxograma do Algoritmo Simplex

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

A matriz formada pelas variáveis de folga não é uma base x2


viável,1 como se observa abaixo, uma vez que x5 = -18

6 A B
⎡1 0 0 ⎤
B = ⎢⎢0 1 0 ⎥⎥
⎢⎣0 0 − 1⎥⎦
C

A Figura 3.14 mostra gra¿camente que o ponto origem (to-


das as variáveis reais iguais a zero) não pertence ao espa- 0 x1
ço das soluções viáveis, ou seja, a base tradicionalmente 0 2 4
considerada como inicial falha em ser viável. Figura 3.14. Representação grá¿ca do espaço de solução

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.

No exemplo anterior, apenas uma das colunas da Minimizar z = − 3 x1 − 5 x2 + 0 x3 + 0 x4 + 0 x5 + ? x6a


base apresenta valor negativo em sua componente
canônica (terceira coluna). Assim, existe somente a Sujeito a:
necessidade de corrigir uma variável de folga nega- x1 + x3 =4
tiva, o que pode ser realizado através de uma única x2 + x4 =6
variável arti¿cial. O modelo ao lado mostra como a
3 x1 + 2 x2 − x5 + x6a = 18
introdução da variável arti¿cial é capaz de criar a
base inicial canônica. x1 ≥ 0 , x2 ≥ 0 , x3≥ 0, x 4 ≥ 0, x5 ≥ 0, x6a ≥ 0

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.

Exemplo Numérico do Método das Duas Fases

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

Aplicando as regras Simplex ao modelo, o Quadro 3.17 será constituído.

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

⎢⎣0 0 1⎥⎦ ⎢⎣1⎥⎦


E para as variáveis fora da base no quadro inicial:

⎡ 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

QUADRO 3.18. Quadro inicial (canonizado) do exemplo das duas fases

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:

QUADRO 3.19. Quadro inicial (canonizado) do exemplo das duas fases

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.

QUADRO 3.20. Quadro após o primeiro pivoteamento

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

QUADRO 3.21. Quadro ótimo para a 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:

QUADRO 3.22. Quadro inicial da segunda fase


x1 x2 x3 x4 x5 x6a
z -27 0 0 9/2 0 5/2 Função da 2a Fase
x1 4 1 0 1 0 0 0 4/1 = 4
x4 3 0 0 3/2 1 1/2 -1/2 3/(3/2) = 2
x2 3 0 1 -3/2 0 -1/2 1/2 --

Cujo pivoteamento leva ao Quadro 3.23 a seguir, em que x5 entra na base e x3 sai da base:

QUADRO 3.23. Quadro da segunda iteração na segunda fase


x1 x2 x3 x4 x5 x6a
z -36 0 0 0 -3 1 Função da 2a Fase
x1 2 1 0 0 -2/3 -1/3 1/3 --
x3 2 0 0 1 2/3 1/3 -1/3 2/(1/3) = 6
x2 6 0 1 0 1 0 0 --

Finalmente, o algoritmo alcança o quadro ótimo a seguir:

QUADRO 3.24. Quadro ótimo da segunda fase


x1 x2 x3 x4 x5 x6a
z -42 0 0 -3 -5 0 Função da 2a Fase
x1 4 1 0 0 0 0 0 --
x3 6 0 0 3 2 1/3 -1
x2 6 0 1 0 1 0 0 --

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

Figura 3.16. Sequência


Z = 12
q=6 das bases do algoritmo
= 18 x1 Z=0 x1
Simplex no método das
0 2 4 0 2 4
duas fases
164 Programação Linear e Fluxos em Redes

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) Restrições redundantes no modelo (b) Possibilidade de ciclagem do algoritmo Simplex


Figura 3.17. Modelo patológico

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

Exemplo Numérico com Degeneração

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.

QUADRO 3.28. Fim da primeira fase.

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.

QUADRO 3.29. Segundo quadro da segunda fase

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.

QUADRO 3.30. Quadro ótimo

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

Figura 3.18. Exemplo de Degeneração


168 Programação Linear e Fluxos em Redes

x Múltiplas soluções ótimas


A Figura 3.9(a) exempli¿ca, gra¿camente, um caso de múltiplas soluções ótimas em um modelo de programação linear.
Observe-se que a direção da função objetivo coincide com a direção de uma das restrições que participa na formação da
base ótima. Sempre que dois pontos extremos da envoltória convexa do modelo forem bases ótimas, qualquer combinação
linear desses pontos também produzirá uma solução ótima. Nesse caso, a orientação de uma das hiperfaces do poliedro de
restrições coincide com a orientação do hiperplano da função objetivo, e o número de soluções ótimas do modelo é in¿nito.
A questão que se coloca é saber identi¿car quando isso acontece no desenvolvimento do Simplex. Para exempli¿car o caso
em estudo, vamos solucionar o problema abaixo:

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

QUADRO 3.31. Quadro inicial do Simplex

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:

QUADRO 3.32. Quadro da primeira iteração

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

No novo quadro a variável de x1 é candidata a entrar na base e a variável x5 deverá sair:


Método Simplex 169

QUADRO 3.33. Entrada e a saída da base

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 .

QUADRO 3.34. Quadro ótimo

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.

QUADRO 3.36. Segunda base ótima para o problema

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

A Figura 3.19 mostra os pontos extremos representados pela


⎧x = 1
base do primeiro e segundo quadros ótimos. Nota-se que a 5 B=⎨ 1 z=9
⎩x 2 = 4
função z tem direção paralela à restrição representada pelos − x1 − 2x 2
A B
pontos B e C, ou seja, x 1 + 2 x 2 ≤ 9 . 4

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.

Figura 3.20. Fluxograma do Algoritmo Simplex Revisado


Método Simplex 171

3.7
Exercícios Propostos

1 Revisão da Teoria

Responda com Certo ou Errado justi¿cando sua escolha:

1. Se em um sistema linear com n in- a. ( ) o sistema m x m é determinado;


cógnitas e m equações (n>m) é possível
b. ( ) o sistema é determinado mas pode não ter solução;
selecionar um conjunto de m incógnitas
que forme uma matriz m x m com deter- c. ( ) o sistema é determinado e pode ter uma solução in¿nita;
minante diferente de zero, então: d. ( ) o sistema pode ter in¿nitas soluções.
e. ( ) o Simplex somente pode solucionar esse sistema caso exista pelo
menos uma solução não negativa.

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

3. Se o conjunto de soluções viáveis do a. ( ) a solução do problema é impossível ou ilimitada;


PPL não for limitado, então:
b. ( ) a solução pode não ocorrer em um vértice porque o espaço das
soluções não é convexo.

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

6. Quando existem variáveis não bási- a. ( ) existe degeneração;


cas com z j − c j = 0 no quadro ótimo
b. ( ) existem in¿nitas soluções ótimas para o problema;
do Simplex, então:
c. ( ) esse fato é absolutamente normal na condição de parada e a solução é
única;
d. ( ) 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.

7. Quando existe empate no critério de a. ( ) existe degeneração;


saída da base, então:
b. ( ) existem in¿nitas soluções ótimas para o problema;
c. ( ) esse fato é absolutamente normal na condição de parada e a solução é
única;
d. ( ) o conjunto das restrições é linearmente dependente;
e. ( ) é possível eliminar do problema uma das restrições que geraram o
empate;
f. ( ) a partir da ocorrência do empate, as folgas das linhas empatadas serão
sempre iguais a zero para todas as demais iterações do Simplex.

2 Solução de Problemas de Programação Linear Através do Algoritmo Primal Simplex



Solucionar pelo método Simplex e gra¿camente os seguintes Problemas de Programação Linear:

Maximizar z = 4 x 1 +7 x 2 Minimizar z = − 2x1 − 3x 2


Sujeito a: Sujeito a:
x1 ≤6 x1 ≤8
Problema 1 Problema 2
x2 ≤ 8 x2 ≤ 4
4 x 1 − 2 x 2 ≤ 10 − 2x1 + x 2 ≤ 5
x 1 ≥ 0, x 2 ≥ 0 x1 ≥ 0, x 2 ≥ 0
Método Simplex 173

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?

3 Bases Viáveis do Algoritmo Primal Simplex



Determinar todas as soluções básicas viáveis do seguinte conjunto de restrições:

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

4 Problemas de Programação Linear - Método das Duas Fases



Solucionar pelo método Simplex os seguintes Problemas de Programação Linear:

Maximizar z = 2x 1 +5x 2 + x 3 Minimizar z = − x1 − 3x2 − 5x3 − x4


sujeito a : Sujeito a:
x1 + x 2 ≥6 x1 + x4 ≤ 8
Problema 1 Problema 2
x2 − x3 ≥ 4 x2 + x3 ≤8
4 x 1 + 2x 2 + x 3 ≤ 15 − x1 + x 2 + x 3 + x 4 ≥ 4
x 1≥ 0, x 2 ≥ 0, x 3 ≥ 0 x 1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0, x 4 ≥ 0

5 Interpretação GráÀca da Solução de Problemas de Programação Linear



Sabendo-se que a Figura 3.21 representa gra¿camente a região
das soluções viáveis de um PPL, e que a sequência de vértices A
extremos indicada mostra a trajetória de solução do algoritmo 3
Simplex utilizado (B é o vértice ótimo) pede-se:
2
a) representar as bases associadas aos pontos extremos visita-
F
dos pelas iterações; 1
B

b) representar matricialmente a solução associada ao ponto F


C
(ponto interno);
0 2 4 x1
c) como seria possível transformar a solução associada ao pon-
to F em uma solução básica viável? Figura 3.21.Conjunto de soluções viáveis do problema
174 Programação Linear e Fluxos em Redes

6 Método Simplex – Fundamentos Teóricos - 1

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.

Quadro inicial copiado com erro (célula sombreada)

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

Quadro Ànal com os erros acumulados decorrentes

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

Erro cometido: o valor correto de z 2 − c 2 no primeiro quadro era -1.

7 Método Simplex – Fundamentos Teóricos - 2

Seja o problema ao lado: Maximizar z = 3 x1 + 2 x 2 − 2 x 3 + 5 x 4


Sujeito a :
Determinar uma solução qualquer para o problema apenas com as x1 + x 2 + 3 x 3 + x 4 ≤8
variáveis x1, x2, x3. Essa solução é ótima? É básica? Organizar o qua-
3 x1 − x 2 + x 3 + 2 x 4 ≤ 10
dro Simplex associado a essa solução, respondendo se é possível
determinar, a partir dessa solução, a solução ótima através do méto- x1 − x3 ≤6
do primal Simplex. x1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0, x 4 ≥ 0
Método Simplex 175

8 Método Simplex – Fundamentos Teóricos - 3

Para o quadro do exercício, determinar os


parâmetros livres (a, b, c, d, e, f, g) no quadro
de modo que:
a) o quadro seja ótimo e conduza a uma
solução única; x1 x2 x3 x4 x5 x6

b) a solução do quadro seja ótima mas existe z -40 b d 0 0 f 0


x2 4 c 1 0 e 2 g
pelo menos uma outra solução ótima;
x4 -1 -5 0 1 -1 1 0
c) a solução do quadro seja (primal) inviável;
x6 a 2 0 0 0 3 1
d) a solução seja viável mas ilimitada;
e) o quadro represente uma solução viável
que pode ser melhorada pela entrada de x1
na base e a saída de x6 .

9 Método Simplex – Fundamentos Teóricos - 4


0
Solucionar o problema ao lado, pelo método das duas fases, introduzindo
uma variável arti¿cial de índice 5 (x5) de custo igual a 1 e com um vetor
de atividades igual a: Minimizar z = 2x1 + 3x 2
Sujeito a :
⎡ − 1⎤ − x1 − x 2 + x 3 = − 3
⎢−.1⎥ − 2x1 − x 2 + x 4 = − 2
⎣ ⎦
x1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0, x 4 ≥ 0
Esse método poderia ser generalizado para qualquer PPL? Se possível,
descreva a generalização, caso contrário, justi¿que a impossibilidade.

10 Método Simplex – Interpretação Geométrica


1
Minimizar z = 2x1 + 3x 2
Sujeito a:
− 2x1 − x 2 + 3x 3 ≥ 4
Determine o menor valor de K para que o problema ao lado seja viável: x1 + 2x 2 ≥6
3x1 − x 2 + 2x 3 ≤ 7
− x1 + 5x 2 + x 3 ≤ K
x 1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0
176 Programação Linear e Fluxos em Redes

11 Método Simplex – Aplicação 1



a) Solucione manualmente os problemas de 1 a 5 da série de exemplos resolvidos do Capítulo 2.
b) Solucione os demais problemas propostos no Capítulo 2 com o auxílio de um programa computacional adequado.

12 Método Simplex – Aplicação 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 3.2:

TABELA 3.2. Custos e limites de produção

Custo unitário de Limite de produção


Máquina
produção (US$) no tempo disponível
1 60 300
2 50 270

a) Solucionar o problema de forma a minimizar o custo total da produção.

b) Seria possível solucionar esse problema com o uso do Simplex? Justi¿que a resposta.

13 Método Simplex –Aplicação 3

Determinar as condições necessárias e su¿cientes para os valores dos parâme-


tros k e p, no problema abaixo, de modo que o modelo seja:
Minimizar z = x1 + x 2
Sujeito a:
1. Ilimitado.
kx1 + px 2 ≥ 1
2. Impossível. x1≥ 0, x 2 ≥ 0
3. Inviável.
Método Simplex 177

14 Método Simplex – Empate sem Degeneração


1
Exempli¿car um caso do Simplex em que existe empate na entrada e na saída da base e não existe degeneração.

15 Método Simplex – Degeneração e Interpretação Geométrica

Maximizar z = 5x1 + 2x2


Sujeito a:
x1 ≤3
Solucionar o modelo ao lado e representar gra¿camente as bases visitadas
x2 ≤ 4
pelo algoritmo Simplex..
4x1 + 3x2 ≤ 12
x1 ≥ 0, x2 ≥ 0

16 Método Simplex – Solução com VeriÀcação de Cálculo



Minimizar z = x1 + x2 − 4x3
Sujeito a:
Solucionar o modelo ao lado, através do tableaux Simplex, veri¿cando os cálcu-
los do quadro ótimo. 3x1 + x2 + 2x3 ≤ 9
x1 + x2 − x3 ≤ 2
− x1 + x2 + x3 ≤ 4

17 Método Simplex Duas Fases – Solução com VeriÀcação da inversa da Base



Maximizar z = 6 x 1 − x 2 + 5 x 3
Solucionar a primeira fase do modelo ao lado, através do Sujeito a :
tableaux Simplex, veri¿cando a base ótima ao ¿nal dessa 4x1 + x 2 + x4 = 21
fase.
− 2x 1 + x 2 + xa =1
6x 1 + 3x 2 − x3 + xb = 3
x i ≥ 0 i = 1,...,6
178 Programação Linear e Fluxos em Redes

18 Solução de Modelos Lineares



Determinar as soluções dos seguintes modelos de programação linear:

Maximizar z = 3x1 + 2x 2 + x 3 Maximizar z = 12x1 + 15x 2 + 5x 3


Sujeito a: Sujeito a :
Modelo 1: 2x1 + 2 x 2 + x 3 ≤ 10 Modelo 2: 2 x1 + 2 x 2 + x 3 ≤8
x1 + 2x 2 + 3x 3 ≤ 15 x1 + 4 x 2 − 3x 3 ≤ 12
x i ≥ 0 i = 1,2,3 xi ≥ 0 i = 1,2,3

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

19 Solução de Modelos Lineares - DesaÀo



Determinar as soluções dos seguintes modelos de programação linear: os problemas com duas variáveis devem ser solu-
cionados pelo Simplex e de forma grá¿ca.

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

Maximizar z = x1 + 2x 2 Maximizar z = 2x1 + x 2


Sujeito a : Sujeito a :
2x1 + x 2 ≤ 10 2x1 + x 2 ≤ 10
Modelo 3: Modelo 4:
x1 + 2x 2 ≤ 10 x1 + 2x 2 ≤ 10
x1 ≥3 x2 ≥3
xi ≥ 0 i = 1,2 xi ≥ 0 i = 1,2
Método Simplex 179

Minimizar z = 4 x1 + 12x 2
Sujeito a :
Modelo 5: − 6x1 + 2x 2 ≤ 80
2x1 − x 2 ≥ 60
xi ≥ 0 i = 1,2,3

20 Exploração da Salina- DesaÀo 1


Uma empresa está examinando adquirir uma concessão de terceiros para a exploração de uma salina por 10 anos. O
primeiro mês de trabalho será destinado à formação dos montes de apanha nos locais sinalizados pelos círculos escuros
na parte inferior dos campos da Figura 3.22 e não resultará em retirada de sal. A localização dos campos de evaporação
e cristalização da salina é pouco usual. Os campos estão dispostos ao longo de uma restinga rasa e estreita ao tráfego,
como mostra a Figura 3.22 O acesso muito estreito, impede a manobra de retorno do caminhão de transporte de sal.
Assim, esse equipamento deve sempre fazer a volta em uma praça ao ¿nal da restinga. Nos campos de evaporação são
recolhidos, em pequenas quantidades, vários tipos de sais. Nos campos de cristalização é recolhido o NaCl – Cloreto
de sódio. Pequenos tratores concentram o sal dos campos na área designada para o período de trabalho, alternando a
parte superior e a parte inferior do campo. O tempo que o caminhão se desloca vazio do ponto de coleta de um campo
de cristalização para um ponto de coleta no campo de evaporação em um mesmo período de exploração (distância entre
dois pontos escuros ou claros vizinhos na Figura 3.22) é de 2 minutos. O mesmo trajeto carregado dura 5 minutos. O ta-
manho dos campos é praticamente igual. Da saída da restinga até o ponto do depósito seco da salina, o caminhão gasta
5 minutos carregado e 3 minutos vazio. O tempo de carregamento do caminhão é sempre de 2 minutos, não importando
a quantidade de sal carregada ou o ponto de carga. A capacidade do caminhão é de 5 toneladas de sal. O sal grosso não
pode ser misturado com outros sais em uma mesma viagem. Considera-se que os campos podem produzir, mensalmen-
te, os valores de sal assinalados na ¿gura. Considera-se que o depósito de sal de um campo não é realimentado durante
o mês destinado à exploração. Os tratores trabalham formando o monte de sal do próximo mês na outra extremidade
do campo, cujo acesso somente será liberado após completado um período de 30 dias. Caso a extração de um monte
seja incompleta, o sal do antigo depósito deve ser abandonado para que possa ser simplesmente completado até a sua
capacidade máxima no próximo mês. Qualquer depósito disponível poderá ser explorado, independentemente de sua
distância ao depósito seco ou do tipo de sal que possua. O acesso do caminhão, todavia, não é seguro durante a noite
e em condições desfavoráveis do tempo (vento e maré). Dessa forma, deve-se considerar que o tempo médio diário de
trabalho do caminhão é de 8 horas. A impossibilidade de manobrar no campo determinou a política de uso de somente
um caminhão de transporte de sal. O NaCl é comercializado por 10 UM de lucro por tonelada. Os outros sais são comer-
cializados por 55 UM de lucro por tonelada. Formular o modelo que otimiza a exploração do campo. Solucionar o modelo.
Considerando que a empresa deseja pagar a concessão com o lucro de quatro meses de operação da salina, qual será
o valor máximo que a empresa poderá pagar pela concessão?
180 Programação Linear e Fluxos em Redes

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

Vazio Campo de Carregado


Campo de
1 minuto 5 minutos
Evaporação Evaporação
Apanha de Apanha de
outros Sais outros Sais
no 2º Mês no 2º Mês
4 toneladas 4 toneladas

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

Figura 3.22. Mapa da Salina

21 Operação dos Estoques da Livraria - DesaÀ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.

22 A Encomenda do e-comprão - DesaÀo

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

Figura 3.23. Distribuição da Demanda do e-comprão e da oferta da rede Colector.


182 Programação Linear e Fluxos em Redes

23 EÀciência de Energia - DesaÀo

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.

24 Equipando o Parque de Computadores - DesaÀo

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

TABELA 3.3. Dados do Problema 24

Computador Memória Disco Rígido Tela – Polegadas Custo


DA KxGB QxTB Retina – 26 100 UM
AD 4KxGB 1,2QxTB Retina ou Full HD – 26 150 UM
SD 5KxGB 0,8QxTB Full HD – 32 165 UM

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

25 O Problema da Programação de Vendas da Safra de Frutas - DesaÀo

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.

TABELA 3.4. Evolução das características do fruto durante a safra


1o Mês 2o Mês 3o Mês
Valor Nutricional 75% 90% 100%
Aspecto estético 70% 80% 100%
Peso 100% 98% 95%
Produção (frutos) 5.000 30.000 13.000

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.

TABELA 3.5. Evolução das características do fruto no mercado

1o Mês 2o Mês 3o Mês 4o Mês 5o Mês


Preço de Mercado (Quilo) 13 UM 12 UM 20 UM 30 UM 24 UM
Potencial de venda (Quilo) 1.000 3.000 10.000 12.000 10.000

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.

26 Solução de Problemas Formulados no Capítulo 2 pelo Método Simplex - DesaÀo

Solucionar pelo método Simplex os problemas 22, 23, 24 e 25 formulados no Capítulo 2.


184 Programação Linear e Fluxos em Redes

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.

7. Quando existe empate no critério de saída da base então:


a. ( V ) existe degeneração;
b. ( F ) 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 ) o conjunto das restrições é linearmente dependente;
e. ( V ) é possível eliminar do problema uma das restrições que geraram o empate;
f. ( F ) a partir da ocorrência do empate, as folgas das linhas empatadas serão sempre iguais a zero para todas as demais
iterações do Simplex.

Solução de Problemas de Programação Linear Através do Algoritmo Primal Simplex 2


Problema 1. Solução analítica

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

Problema 1. Solução grá¿ca


x2 x2 ≤ 8
8 z = 4 x1+7x 2

7
x1 ≤ 6
6

1 2 x1 − x 2 ≤ 5
x1
o
1 2 3 4 5 6 7

Problema 2. Solução numérica

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

Problema 2. Solução grá¿ca

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

Variáveis de decisão: xi = quantidade de bolsa do tipo i (i = 1 – B1, i = 2 – B2 ).


Função objetivo: maximizar: z = 20x1 + 25x2
Restrições: folhas de plásticos: 2x1 + 3x2 d200; fechos: 4x1 + 3x2 d 240; demanda: x1 d 80, x2 d 60; não negatividade x1 t0, x2 t 0.
188 Programação Linear e Fluxos em Redes

Problema 3. Quadros Simplex.

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

Problema 3. Solução grá¿ca

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

Bases Viáveis do Algoritmo Primal Simplex 3


Conjunto 1. Solução grá¿ca

(x3 ,x2 ,x4 )

⎡ 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

Conjunto 2. Solução analítica Base 1: x1 = 3; x3 = 7; Base 2: x2 = 1/3; x4 = 11/3; Base 2: x3 = 3; x4 = 1

Problemas de Programação Linear - Método das Duas Fases 4


Problema 1: Serão inseridas duas variáveis arti¿ciais associadas às duas primeiras restrições. A função objetivo da primeira
fase será denominada q.
190 Programação Linear e Fluxos em Redes

Quadro inicial de transcrição – obtenção do quadro inicial através de pivoteamento

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

Quadro inicial da primeira fase

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

Segundo Quadro da primeira fase

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

Terceiro Quadro da primeira fase

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

Quadro ótimo da primeira fase

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

Primeiro Quadro da segunda fase

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.

Quadro inicial de transcrição – obtenção do quadro inicial através de pivoteamento

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

Quadro Ótimo da primeira fase

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 -

Segundo Quadro da segunda fase

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

Terceiro Quadro da segunda fase

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 -

Interpretação GráÀca da Solução de Problemas de Programação Linear 5


a) O grá¿co fornece os elementos para a determinação das restrições do problema que são:

− 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

Método Simplex – Fundamentos Teóricos - 1 6


João errou no cálculo do custo reduzido da variável x2 desde o primeiro quadro Simplex. Contudo, a inversa da base está
disponível, permitindo que ele calcule o custo reduzido correto da variável z 2 − c 2 para o quadro corrente, da seguinte forma:

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

Quadro Ànal Ótimo correto

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

Método Simplex – Fundamentos Teóricos - 2 7


A base B associada às variáveis x1, x2 e x3 está abaixo representada. Nesse caso será necessário invertê-la (por algum
método, inclusive o das operações elementares). Abaixo, são apresentados também o vetor x B das variáveis básicas e z:

⎡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

⎢⎣1 0 − 1⎥⎦ ⎢⎣1/ 8 1/ 8 − 1/ 2⎥⎦ ⎢⎣− 3 / 4⎥⎦

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 ;

E, ¿nalmente, o quadro Simplex que segue:

x1 x2 x3 x4 x5 x6 x7

Base z -109/4 0 0 0 45/8 -9/8 7/8 -9/2


Inviável x1 21/4 1 0 0 3/8 1/8 1/8 1/2
x2 5 0 1 0 -1/2 1/2 -1/2 1
x3 -3/4 0 0 1 3/8 1/8 1/8 -1/2

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

Método Simplex – Fundamentos Teóricos - 3 8


a) O quadro seja ótimo e solução única:
Se x4 está na base e = 0 e a linha de x4 é x1 x2 x3 x4 x5 x6
multiplicada por (-1), como mostra o qua-
z -40 b<0 d=0 0 0 f<0 0
dro ao lado. Para x6 estar na base g = 0.
x2 4 cƒ 1 0 e=0 2 g=0
Para a base ser viável, d = 0 e a t 0. Para
o quadro ótimo possuir solução única b < 0 x4 1 5 0 -1 1 -1 0
e f < 0 para c  ƒ. x6 at0 2 0 0 0 3 1

b) A solução do quadro é ótima, todavia, x1 x2 x3 x4 x5 x6


existindo pelo menos uma outra solução
z -40 b=0 d=0 0 0 f=0 0
ótima:
x2 4 cƒ 1 0 e=0 2 g=0
Mesmas condições de viabilidade anterio-
x4 1 5 0 -1 1 -1 0
res com pelo menos um parâmetro b = 0
x6 a t0 2 0 0 0 3 1
ou f = 0.

c) A solução do quadro seja (primal) inviável: x1 x2 x3 x4 x5 x6

Basta uma variável básica possuir valor ne- z -40 b ƒ d=0 0 0 f ƒ 0


gativo para a base ser inviável. No caso, a x2 4 c ƒ 1 0 e=0 2 g=0
solução tem que ser básica (e = 0, d = 0, x4 1 5 0 -1 1 -1 0
g = 0) e a < 0. x6 a<0 2 0 0 0 3 1

d) A solução seja viável mas ilimitada:

Essa situação não pode ser alcançada através de atribuições dos parâmetros do quadro.

e) O quadro represente uma solução viável x1 x2 x3 x4 x5 x6


que pode ser melhorada pela entrada de x1 z -40 b t0 d=0 0 0 f<0 0
na base e a saída de x6. Conforme os valo- x2
res do quadro. 4 c < 8/a 1 0 e=0 2 g=0
x4 1 5 0 -1 1 -1 0
x6 a < 2/5 2 0 0 0 3 1
Método Simplex 197

Método Simplex – Fundamentos Teóricos - 4 9


O quadro decorrente do procedimento sugerido está abaixo transcrito. Observe-se que existe uma base canônica formada
pelas variáveis de folga. Contudo, o exercício solicita utilizar a coluna x5a como variável de folga “dupla”, resolvendo a folga
de duas restrições.

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

Introduzindo x5a como variável de folga da segunda linha (linha de x3)

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

Canonizando x5a e calculando os custos reduzidos de q através de pivoteamento

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 entrando na base no lugar de x5a

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.

Método Simplex – Interpretação Geométrica 10


O termo independente de uma restrição modula sua localização no
hiperespaço. Uma restrição, ao se deslocar no hiperespaço, pode re-
duzir ou ampliar o tamanho do universo das soluções do problema. Minimizar K = − x 1 + 5x 2 + x 3
O universo das soluções de um problema deixa de ser viável quando Sujeito a :
algumas das restrições o tornam vazio. No pedido, deseja-se calcular o − 2x1 − x 2 + 3x 3 ≥ 4
menor valor do termo independente K da restrição − x1 + 5x 2 + x 3 ≤ K
x1 + 2x 2 ≥6
que torna vazio o espaço de solução do problema. Nesse caso, tudo se
3x1 − x 2 + 2x 3 ≤ 7
passa como se a restrição selecionada se comportasse como uma fun-
ção objetivo, buscando-se reduzir o espaço de solução ao seu menor x 1≥ 0, x 2 ≥ 0, x 3 ≥ 0
valor, ou seja, um ponto. Portanto, a solução do pedido é expresso pelo
modelo ao lado: k = 13,78

Método Simplex – Aplicação 1 11


Problema 1. O Problema das Ligas Metálicas

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

Problema 2. O Problema da Fábrica de Móveis (I)

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

Problema 3. O Problema do Atleta Indeciso (I)

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

Problema 4. O Problema da Pequena Fábrica (I)

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

Problema 5. O Problema da Fábrica de Camisas (I)

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

z -2725/2 0 0 1/4 0 -7/2


x1 150 1 0 1 0 0
x4 125 0 0 3/2 1 -1
x2 175 0 1 -3/2 0 1

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

Método Simplex – Aplicação 2 12


Minimizar z = 60x1 + 50x 2
Sujeito a:
x1 ≤ 300
O modelo do problema é: x2 ≤ 270
x1 + x2 ≥ 500
x 1 ≥ 0, x2 ≥ 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

Quadro Ótimo x1 x2 x5 x3 x4 x6a


q 0 0 0 0 0 0 -1 1a Fase
z 27300 0 0 -60 0 -10 2a Fase
x3 70 0 0 1 1 1 -1
x2 270 0 1 0 0 1 0
x1 230 1 0 -1 0 -1 1

Método Simplex – Aplicação 3 13

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

Método Simplex – Empate sem Degeneração 14


Maximizar z = x 1 + x 2
Quadro 1 x1 x2 x3 x4 x5
Sujeito a:
x1 + x 2 ≤ 3 z 0 1 1 0 0 0
x1 ≤2 x3 3 1 1 1 0 0
x2 ≤ 2 x4 2 1 0 0 1 0
x 1 ≥ 0, x 2 ≥ 0 x5 2 0 1 0 0 1

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

Método Simplex – Degeneração e Interpretação Geométrica 15


Quadro inicial x1 x2 x3 x4 x5
z 0 5 2 0 0 0
x3 3 1 0 1 0 0 3
x4 4 0 1 0 1 0 -
x5 12 4 3 0 0 1 3
204 Programação Linear e Fluxos em Redes

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

Método Simplex – Solução com VeriÀcação de Cálculo 16


Quadro Inicial x1 x2 x3 x4 x5 x6
z 0 -1 -1 4 0 0 0
x2 9 3 1 2 1 0 0
x4 2 1 1 -1 0 1 0
x6 4 -1 1 1 0 0 1
Método Simplex 205

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

1. Testando a inversão da base:


⎡1 / 5 0 − 2 / 5⎤ ⎡ 3 0 2 ⎤ ⎡1 0 0⎤
⎢ 0 1
⎢ 1 ⎥⎥ ⎢⎢ 1 1 − 1⎥⎥ ⎢⎢0 1 0⎥⎥
=
⎢⎣1 / 5 0 3 / 5 ⎥⎦ ⎢⎣− 1 0 1 ⎥⎦ ⎢⎣0 0 1⎥⎦




B −1 B I

2. Testando as colunas da matriz Y:

; ;
⎡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

⎡1/ 5 0 − 2 / 5⎤ ⎡1 ⎤ ⎡ 1/ 5⎤ ⎡1/ 5 0 − 2 / 5⎤ ⎡0⎤ ⎡0⎤ ⎡1/ 5 0 − 2 / 5⎤ ⎡0⎤ ⎡− 2 / 5⎤


⎢ 0 1
⎢ 1 ⎥⎥ ⎢⎢0⎥⎥ ⎢⎢ 0 ⎥⎥ ⎢0 1
⎢ 1 ⎥⎥ ⎢⎢1 ⎥⎥ ⎢⎢1 ⎥⎥ ⎢0 1
⎢ 1 ⎥⎥ ⎢⎢0⎥⎥ ⎢⎢ 1 ⎥⎥
= = =
⎢⎣1/ 5 0 3 / 5 ⎥⎦ ⎢⎣0⎥⎦ ⎢⎣ 1/ 5⎥⎦ ⎢⎣1/ 5 0 3 / 5 ⎥⎦ ⎢⎣0⎥⎦ ⎢⎣0⎥⎦ ⎢⎣1/ 5 0 3 / 5 ⎥⎦ ⎢⎣1 ⎥⎦ ⎢⎣ 3 / 5 ⎥⎦


,

, ,
,

B −1 a4 y4 B −1 a5 y5 B −1 a6 y6

3. Testando o termo independente e o valor de z0:

⎡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

Método Simplex – Solução com VeriÀcação da Inversa da Base 17


Cálculo w x1 x2 x3 x4 x5 x6
w ? ? ? ? -1 -1
x4 21 4 1 0 1 0 0
xa 1 -2 1 0 0 1 0
xb 3 6 3 -1 0 0 1

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

Testando a inversão da base:

⎡ 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

Solução de Modelos Lineares 18


Modelo 1: z = 15 e x1 = 5; Modelo 2: z = 58 x2 = 18/5 e x3 = 4/5; Modelo 3: z = -560, x1 = 20, x2 = 40, x5= 40.
208 Programação Linear e Fluxos em Redes

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.

2. DeÀnir o método Dual Simplex.

3. Introduzir os fundamentos da análise de sensibilidade.

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.

(a) Circuito 1 (b) Circuito 2

Figura 4.1. Circuitos duais


210 Programação Linear e Fluxos em Redes

A equação que relaciona a corrente à voltagem como uma função do


tempo para o circuito 1 é: (4.1)

A equação que relaciona a voltagem à corrente aplicada em função


do tempo para o circuito 2 é: (4.2)

Considerando-se G = 1/R, é possível reduzir as equações (4.1) e


(4.3)
(4.2) a uma expressão geral da forma que se segue:

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.

3. Os termos independentes no primal surgem como os coe¿cientes da função-objetivo no dual e vice-versa.

4. O número de restrições do primal é igual ao número de variáveis do dual e vice-versa.

5. A matriz de restrição do primal é a transposta da matriz de restrição do dual e vice-versa.

Considerando a seguinte convenção nos índices:

M = {1,...,m}; N = {1,...,n}; A = [aij]; M 1 = M \ M 1 e N 1 = N \ N 1.

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

x Exemplo 1: Um par primal (P)/dual (D)

(P) Maximizar z 0 = 6x1 + 2x 2 + x 3 (D) Minimizar w 0 = 4u1 + 5u2


Sujeito a: Sujeito a:
x1 − x 2 + 7 x 3 ≤ 4 u1 + 2u2 ≥ 6
2 x1 + 3 x 2 + x 3 ≤ 5 − u1 + 3u2 ≥ 2
x1 ≥ 0 , x 2 ≥ 0, x 3 ≥ 0 7u1 + u2 ≥ 1
u1 ≥ 0, u2 ≥ 0
212 Programação Linear e Fluxos em Redes

Observe-se que os problemas duais anteriores guar- T ⎡ 1 2⎤


⎡ 1 − 1 7⎤ ⎢ ⎥
dam, entre si, a regra da transposição, como a seguir ⎢2 3 1⎥ = ⎢− 1 3⎥
exempli¿cada ao lado, para a matriz de restrições. ⎣ ⎦ ⎢⎣ 7 1⎥⎦

x Exemplo 2: Par primal (P)/dual (D) e representação grá¿ca.

(P) Maximizar z 0 = 3x1 + 4 x 2 (D) Minimizar w 0 = − u1+ 0 u2


Sujeito a: Sujeito a:
Primal x1 − x 2 ≤ −1 Dual u1 − u 2 ≥ 3
− x1 + x 2 ≤ 0 − u1 + u 2 ≥ 4
x1 ≥ 0, x 2 ≥ 0 u1 ≥ 0, u 2 ≥ 0

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

Lema da Dualidade Fraca

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:

uAx !ub, uma vez que u !b (4.4)


Como uA c, chega-se, por raciocínio semelhante, a:

uAx cx, uma vez que x !0 (4.5)

Comparando as expressões (4.4) e (4.5) tem-se:

ub uAx cx ... cx !ub „

Condição de SuÀciência para Otimalidade


Se x e u são soluções viáveis dos problemas (P) e (D) respectivamente, satisfazendo a cx > ub,
então u é solução ótima de (P) e u é solução ótima de (D).

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

QUADRO 4.1. Situações de viabilidade dos problemas prima/dual

Dual
Viável Inviável (u = ‡)
Viável
Primal
Inviável (x = ‡) possível

O Teorema da Existência garante a validade do Quadro 4.1 e é enunciado como se segue.

Teorema da Existência Teorema 4.1


Para um par de problemas duais uma e somente uma das alternativas abaixo é verdadeira:
a. Nenhum dos problemas tem solução.
b. Um deles não tem solução viável e o outro tem solução ótima ilimitada.
c. Ambos possuem solução ótima Ànita.

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

(P) Maximizar z0 = − 3x1 + 2x 2


Sujeito a:
Determinar o dual do Modelo de Programação Linear ao lado, re-
x1 ≤ 3
presentando ambos (primal e dual) os programas gra¿camente:
x1 − x 2 ≤ 0
x1 ≥ 0, x 2 ≥ 0

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

(D) Minimizar w 0 = − 3u1 + 0u 2


Sujeito a:
u1 + u 2 ≥ − 3
u2 ≤ − 2
u1 ≥ 0, u 2 ≥ 0

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.

(a) Primal – ilimitado (b) Dual – inviável

Figura 4.4. Representação grá¿ca do Primal/Dual

x Teorema das folgas complementares


O item anterior desenvolveu os fundamentos para o estabelecimento de uma relação entre o valor das soluções ótimas do
par primal/dual. Além dos valores numéricos em si, foi comprovada uma dependência entre a condição de viabilidade de
cada um desses modelos. O presente item aprofunda o entendimento do comportamento das variáveis desses problemas.

Teorema das Folgas Teorema 4.2


Complementares
Dado um par de problemas duais, uma condição necessária e suÀciente para que as soluções e sejam
ótimas é que se veriÀquem as seguintes relações de complementaridade de folga:

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:

Sendo x e u soluções viáveis decorre:

⎧ 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

x Uma aplicação do Teorema das Folgas Complementares


Um exemplo numérico pode auxiliar no esclarecimento do funcionamento das propriedades de¿nidas pelo teorema 4.2. O
teorema igualmente admite interpretações econômicas extremamente úteis, que serão discutidas em outro exemplo.

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

(a) Modelo Dual (b) Solução Grá¿ca do Modelo

Figura 4.5. Solução grá¿ca do Dual do modelo proposto

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:

⎡u1* ( −2x1* + x 2* + x 3* − 1) = 0 como u1* = 3 então − 2x1* + x 2* + x 3* − 1 = 0


⎢ * * * * *
⎢u 2 ( x1 − 2x 2 + x 3 + 1) = 0 como u 2 = 1 então x1* − 2x 2* + x 3* + 1 = 0
⎢ x * ( −2u * + u * − 2) = 0 ∴ x * = 0
⎢ 1 1 2 1

⎢ x 2 (u1 − 2u 2 − 1) = 0 ∴ x 2* ≥ 0
* * *

⎢ * * * *
⎢⎣ x 3 (u1 + u 2 − 4) = 0 ∴ x 3 ≥ 0

O que permite concluir em relação ao primal as seguintes relações

x 2* + x 3* = 1 x 2* = 2 / 3
* *
Sistema determinado que, quando solucionado, leva à:
− 2x + x = −1
2 3 x 3* = 1/ 3

E, ¿nalmente, a solução primal: z 0* = 2 e x * = (0, 2 / 3, 1 / 3, 0, 0)


Método Simplex 219

4.4
Um Algoritmo Dual para o Método Simplex

x Um exemplo do funcionamento do primal Simplex no dual


Os algoritmos são estratégias para solucionar problemas. O processo de construção de uma solução pode ser inspirador
no projeto de um algoritmo mais geral. O presente texto sugere que se acompanhe o desenvolvimento de uma solução do
algoritmo primal Simplex e suas repercussões no dual, caso fosse simplesmente replicada ali — ainda que diante de uma
suposta base inviável. Seja o seguinte par de problemas:

(P) Max: z 0 = 6x1 + 2x 2 +x 3 (D) Min: w 0 = 4u1 + 5u2


Sujeito a: Sujeito a:
x1 − x2 + 7x 3 ≤ 4 u1 + 2u2 ≥ 6
2 x 1 + 3 x 2 +x 3 ≤ 5 − u1 + 3u2 ≥ 2
x1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0 7u1 + u2 ≥ 1
u1 ≥ 0, u2 ≥ 0

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:

QUADRO 4.2. Quadro Simplex Primal/Dual

Quadro Dual u1 u2 u3 u4 u5 Quadro Primal x1 x2 x3 x4 x5


w -4 -5 0 0 0 z 6 2 1 0 0
u3 -6 -1 -2 1 0 0 x4 4 1 -1 7 1 0
u4 -2 1 -3 0 1 0 x5 5 2 3 1 0 1
u5 -1 -7 -1 0 0 1

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.

Quadro Dual u1 u2 u3 u4 u5 Quadro Primal x1 x2 x3 x4 x5


w -4 -5 0 0 0 z 6 2 1 0 0
u3 -6 -1 -2 1 0 0 x4 4 1 -1 7 1 0
u4 -2 1 -3 0 1 0 x5 5 2 3 1 0 1
u5 -1 -7 -1 0 0 1

O pivoteamento pode ser realizado normalmente no quadro primal e forçado no quadro dual, conforme o Quadro 4.4

QUADRO 4.4. Pivoteamento simultâneo transposto Simplex Primal / Dual.

Quadro Dual u1 u2 u3 u4 u5 Quadro Primal x1 x2 x3 x4 x5


w 15 -3/2 0 -5/2 0 0 z -15 0 -7 -2 0 -3
u2 3 1/2 1 -1/2 0 0 x4 3/2 0 -5/2 13/2 1 -1/2
u4 7 5/2 0 -3/2 1 0 x5 5/2 1 3/2 1/2 0 1/2
u5 2 13/2 0 1/2 0 1

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

x Aplicações dos métodos quantitativos no contexto de uma economia racional


A escala de globalização e busca da e¿cácia organizacional tem forçado cada vez mais a utilização de técnicas quantitativas
avançadas para a tomada de decisão nos sistemas de produção. Nesse contexto, a programação matemática torna-se um
instrumento seguro para uma análise econômica racional, principalmente porque permite a criação de modelos bastante
so¿sticados e especí¿cos para a representação dos fenômenos econômicos.
A ¿loso¿a de substrato para a utilização do método Simplex no auxílio a uma análise econômica está ancorada no conceito
do perfeito equilíbrio entre o valor agregado por um processo a um produto e sua planilha de decomposição em insumos de
constituição (Teoria do Custo de Oportunidade, Menger, 1871).
Se um sistema de produção é modelado por um programa linear, cuja função-objetivo é, por exemplo, maximizar o valor
dos produtos realizados, e cujas restrições são de disponibilidade de fatores, veremos que, no equilíbrio da solução ótima,
o valor de uma variável dual associada a um fator satisfaz à seguinte a¿rmação daquela teoria:

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.

A restrição do dual no quadro Simplex diz que essa


utilidade marginal é a diferença entre a utilidade
´ ´
(receita) de uma unidade do produto e o custo as-
sociado à produção dessa unidade, se o custo dos
vínculos for avaliado de modo a permitir equilíbrio
¿nanceiro para a solução básica corrente.

A Figura 4.6 resume o aspecto do Àuxo de informa-


ções que transita entre o par primal e dual durante
um processo de solução do algoritmo Simplex. Nota-
se claramente a dinâmica da busca do equilíbrio de
um mínimo custo e de uma máxima receita..
Figura 4.6. Informações entre o par Primal/Dual

9 Exemplo de interpretação econômica do método Simplex


Suponha-se o caso de uma empresa pública que monopolize o setor petroquímico de uma economia nacional ou regional.
Imaginando que o objetivo da companhia seja minimizar o custo global da produção de gasolina e de óleo, estando compro-
metida em satisfazer as demandas desses produtos aos níveis estipulados de respectivamente 5 milhões de barris e 3 mi-
lhões de barris. Suponhamos que a companhia decida levar em frente duas atividades principais com o objetivo de atender
à demanda. A primeira atividade é explorar e re¿nar petróleo nacional. Cada milhão de barris processado custa 8 milhões de
dólares e gera 1 milhão de barris de gasolina e 1 milhão de barris de óleo. A segunda atividade é importar e re¿nar petróleo
estrangeiro. Nesse caso, cada 1 milhão de barris importados custa 12 milhões de dólares e gera 2 milhões de barris de
gasolina e 1 milhão de barris de óleo.

Minimizar z = 8x1 + 12x 2


Denominando por x i , i = 1, 2 o valor de operação de
Sujeito a:
cada uma dessas atividades, o problema de progra-
x1 + 2 x 2 ≥ 5
mar a compra e o re¿no do petróleo pode ser mode-
lado e solucionado pelo programa ao lado descrito: x1 + x 2 ≥ 3
x1 ≥ 0, x 2 ≥ 0
Método Simplex 223

Cuja solução é , como se


observa na Figura 4.7.

Figura 4.7. Espaço das soluções do exemplo da empresa petroquímica

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:

É interessante notar que no programa todas


as variáveis utilizadas possuem interpretação
econômica. As variáveis de folga x 4 e x 5 podem Minimizar z = 8x1 + 12x 2 + 15x 3 + 0x 4 + 0x 5 + 40x 6 + 18x 7
ser vistas como estádios de estocagem de óleo e Sujeito a:
gasolina. Nesse caso, pode-se supor nulo o custo
x1 + 2 x 2 + 2 x 3 − x 4 + x6 =5
da estocagem dentro de cada alternativa de pro-
dução. As variáveis arti¿cias representam os cus- x1 + x 2 + 3 / 2 x 3 − x5 + x7 = 3
tos exorbitantes de 40 e 18 milhões de dólares x1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0, x 4 ≥ 0, x 5 ≥ 0, x 6 ≥ 0, x 7 ≥ 0
por 1 milhão de barris de, respectivamente, gaso-
lina e óleo importados, como mostra a Tabela 4.1.
224 Programação Linear e Fluxos em Redes

TABELA 4.1. Resumo do problema

Atividade Explorar Importar Explorar Estocar Estocar Importar Importar


Demanda
Petróleo e reÀnar Xisto Gasolina Óleo Gasolina Óleo
(Milhões
Nacional Petróleo
de Barris)
Produtos x1 x2 x3 x4 x5 x6 x7
Gasolina 1 2 2 -1 0 1 0 5
Óleo 1 1 3/2 0 -1 0 1 3
Custos 8 12 15 0 0 40 18 --

Figura 4.8. Entradas e saídas do sistema

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.

Passo 0: Identi¿cação dos ⎡1 2 1 − 1 0 1 0⎤ ⎡5 ⎤


A = [a1 , a 2 , a 3 , a 4 , a 5 , a 6 , a 7 ] = ⎢ ⎥ b=⎢ ⎥
elementos de cálculo: ⎣1 1 3 / 2 0 − 1 0 1 ⎦ ⎣3 ⎦

⎡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⎥⎦
⎣ ⎦

Passo1: Escolha da variável que entrará na base.


Como o vetor cB é composto por variáveis arti¿ciais que possuem custos exorbitantes ( cB é diferente de zero desde a pri-
meira iteração), temos que calcular os (z j − c j ) para j  J, a ¿m de obter o critério de escolha da variável que deverá entrar
na base, como a seguir:
Método Simplex 225

Escolher a variável k para entrar na base, tal que z k − c k = max { z j − c j } . Daí:


j∈J1

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 ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦

Valor mínimo (s = 2 – segunda linha)


⎡1 2 ⎤
B = [ a6 , a3 ] = ⎢ ⎥
A nova base será formada pelas variáveis x6, x3, ou seja: ⎣0 2 / 3 ⎦
226 Programação Linear e Fluxos em Redes

Passo 3: Atualizar os elementos de cálculo.


No algoritmo Simplex revisado, o elemento fundamental de cálculo é a inversa da base. É com ela que os vetores de valores
correntes são atualizados. O método de inversão da base de fato não caracteriza o método Simplex, contudo tradicional-
mente ele é feito por pivoteamento, pelo motivo debatido no Capítulo 3. O pivoteamente pode ser igualmente empregado no
Simplex Revisado. Nesse caso, a inversão será realizada na matriz aumentada B − 1 |y3, através da canonização da coluna 3
(genericamente coluna k) junto à matriz já invertida no passo anterior (note-se que só no primeiro passo vamos ter). A seta
signi¿ca a operação de pivoteamento:

⎡ ⎤ ⎡ 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

Passo 2: Veri¿car viabilidade e escolha da variável que deixa a base.


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⎦

A nova base será formada pelas variáveis x5, x3, ou seja:


⎡ x 6 ⎤ ⎡1 ⎤ ⎡ 4 / 3 ⎤ ⎡3 / 4⎤ Valor mínimo (s = 1)
⎢ x ⎥ = ⎢ 2⎥ / ⎢ − 2 / 3⎥ = ⎢ − − ⎥ ⎡ 0 2 ⎤
⎣ 3⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ B = [a5 , a3 ] = ⎢ ⎥
Daí: ⎣−1 2 / 3 ⎦

Portanto, deve ser x6 a variável que deixará a base.

Passo 3: Atualizar os elementos de cálculo.

Invertendo a nova base, aproveitando os cálculos da iteração anterior. Ou seja:

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

Passo 2: Veri¿car viabilidade e escolha da variável que deixa a base.


bs ⎧ b ⎫
Pelo critério adotado para a melhoria, a variável x2 entrará na base, saindo a variável = mínimo ⎨ i : yik > 0⎬. .
ysk 1 ≤ i ≤ m ⎩ yik ⎭
Novamente é necessário obter a coluna da variável x2, como na iteração anterior. Nesse caso:

⎡ 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 ⎦

A nova base será formada pelas variáveis x2, x3, ou


seja:
⎡ x 5 ⎤ ⎡3 / 4 ⎤ ⎡1/ 2⎤ ⎡3 / 2⎤
⎢ x ⎥= ⎢ 5 / 2 ⎥ / ⎢ 1 ⎥ = ⎢5 / 2 ⎥ Valor mínimo (s = 1)
⎡2 2 ⎤
⎣ 3⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ B = [ a2 , a3 ] = ⎢ ⎥
Daí: ⎣1 3 / 2 ⎦

Passo 3: Atualizar os elementos de cálculo.


Invertendo a nova base, aproveitando os cálculos da iteração anterior. Ou seja:

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

Passo 2: Veri¿car viabilidade e escolha da variável que deixa a base.

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 ⎦

A nova base será formada pelas variáveis x2 , x1 , ou seja:


⎡ x 2 ⎤ ⎡3 / 2 ⎤ ⎡ − 1 / 2 ⎤ ⎡ − − ⎤
⎢ x ⎥ = ⎢ 1 ⎥ / ⎢ 1 ⎥=⎢ 1 ⎥ ⎡2 1⎤
B = [a2 ,a1 ] = ⎢
⎣ 3⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣1 1 ⎥⎦

Passo 3: Atualizar os elementos de cálculo.

Invertendo a nova base tem-se:

⎡ 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 ⎦

Neste ponto: I = {3, 4, 5, 6, 7}, J = {2, 1}, e retorna-se ao Passo 1.


230 Programação Linear e Fluxos em Redes

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

Onde as variáveis y estão associadas aos preços dos produ- 2


tos demandados pelo mercado. De fato o objetivo de maxi-
mização pode ser interpretado como a busca do maior valor
possível para a oferta de combustível. O problema dual admi-
te uma solução grá¿ca, como mostra a Figura 4.9.

Observe-se que qualquer ponto do conjunto de solução do


problema dual está associado a preços de gasolina e de óleo
para os quais nenhuma atividade gera lucro positivo.

No exemplo, a solução dual ótima nos fornece os preços dos


produtos demandados para o qual existe um perfeito equilíbrio
econômico, com custo total igual à receita total. Figura 4.9. Solução Grá¿ca do dual

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

x Considerações gerais sobre o tema


Denomina-se análise de sensibilidade à técnica utilizada para avaliar os impactos que o programa sofre quando ocorrem mo-
di¿cações nas condições de modelagem. Análise de sensibilidade é, basicamente, o estudo de um Modelo de Programação
Matemática submetido a mudanças em suas condições iniciais. As mudanças poderão abranger:
9 mudança no vetor de custos;
9 mudança no vetor de termos independentes;
9 mudança nos coe¿cientes das variáveis;
9 acréscimo de restrições;
9 acréscimo de novas variáveis.

Minimizar z = 8x1+ 12x 2 + 15x 3 + 0x 4 + 0x 5 + 40x 6 + 18x 7


Visando ilustrar as técnicas que resolvem as diversas Sujeito a:
situações de mudanças no modelo será utilizado o mo-
x1 + 2 x 2 +2 x 3 − x4 + x6 =5
delo ao lado para constituir um exemplo numérico.
x1 + x 2 +3 / 2x 3 − x5 + x7 = 3
x1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0, x 4 ≥ 0, x 5 ≥ 0, x 6 ≥ 0, x 7 ≥ 0

O modelo anterior, quando solucionado, nos conduz ao seguinte quadro ótimo do Simplex:

QUADRO 4.5. Quadro ótimo

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

x Mudanças no vetor de custos


As mudanças no vetor de custos poderão incidir sobre dois tipos de variáveis, as básicas e as não básicas.

9 Mudança de custos de variáveis não básicas


A fórmula básica para o cálculo dos custos reduzidos é:

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

Exemplo 1: Mudança no vetor custo aplicado ao problema do combustível.


Seja a possibilidade de mudanças no vetor custo no problema de combustível do item anterior. Sabendo que o programa
inicial era:

Minimizar z = 8x1+ 12x 2 + 15x 3 + 0x 4 + 0x 5 + 40x 6 + 18x 7


Sujeito a:
x1 + 2 x 2 + 2x 3 − x 4 + x6 =5
x1 + x 2 + 3 / 2 x 3 − x5 + x7 = 3
x1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0, x 4 ≥ 0, x 5 ≥ 0, x 6 ≥ 0, x 7 ≥ 0

Com o seguinte sistema associado à solução ótima:

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

9 Mudança de custos de variáveis básicas


Claramente, se os valores dos custos das variáveis básicas sofrerem alterações no sentido de se tornarem ainda mais dese-
jáveis, essas variáveis associadas jamais deixarão a base. Contudo, nada se pode a¿rmar no caso inverso. O que se deseja,
nesse segundo caso, é saber qual o intervalo de variação admissível no vetor custo para que certa variável permaneça na
base sem alterar a base calculada.

Exemplo 2: Exame do caso de mudanças de preço no petróleo importado (variável x2).


Da solução inicial tem-se que:

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

δ −4 ≥ 0 ⇒δ ≥ 4 folga de óleo viável


− δ − 4 ≥ 0 ⇒ δ ≤ − 4 folga de gasolina viável
1/ 2δ + 1 ≥ 0 ⇒ δ ≤ 2 Uso do xisto

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.

x Mudança no vetor de demandas ou termo independente


O impacto da mudança no vetor b é calculado pela seguinte fórmula:

B −1 (b + Δb)

Para o caso da exigência de viabilidade primal, então:

B −1(b + Δb) ≥ 0

Exemplo 3: Mudança no vetor de demanda aplicado ao problema do combustível:

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

Modelo que leva ao seguinte quadro ótimo Simplex:


Maximizar z = x1+ x 2
Sujeito a : Quadro Ótimo x1 x2 x3 x4
Seja o modelo: x1 ≤3 z 9 0 0 -1/3 -1/3
2x1 + 3x 2 ≤ 24 x1 3 1 0 1 0
x1 ≥ 0, x 2 ≥ 0 x2 6 0 1 -2/3 1/3

⎡1 ⎤
9Supondo que o vetor b = ⎡⎢3 ⎤⎥ seja alterado para b = ⎢ ⎥ , o que acontecerá ?
⎣24⎦ ⎣18⎦

O impacto da alteração do vetor b pode ser calculado da seguinte forma:


Que conduz à:

⎡ 1 0 ⎤ ⎡ 1 ⎤ ⎡1 ⎤ ⎡ x1B ⎤ ⎡1 ⎤
x B = B −1b = ⎢ ⎥⎢ ⎥=⎢ ⎥ x = ⎢ B⎥ = ⎢ ⎥
B

⎣− 2 / 3 1/ 3⎦ ⎣18⎦ ⎣2⎦ ⎢⎣ x 2 ⎥⎦ ⎣2⎦

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

Que conduz ao seguinte quadro ótimo:

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

x Mudança nas restrições


9Primeiro caso: Diz respeito ao acréscimo de uma nova restrição ao problema. Sempre que isso ocorre em um programa
matemático, acontece uma redução no espaço das soluções viáveis, o que ou aumenta/reduz (minimização/maximização) o
valor da função-objetivo, ou não altera a solução encontrada. Em nenhuma hipótese o acréscimo de uma restrição “melhora”
o valor numérico da função-objetivo. Como um procedimento geral para esse caso sugere-se a veri¿cação se o acréscimo da
restrição altera a solução ou não. No caso da alteração se con¿gurar será necessário prosseguir na solução do “novo” problema.

Exemplo 5: Acréscimo de restrição no programa que se segue:


Seja o modelo: Modelo que leva ao seguinte quadro ótimo Simplex:
Maximizar z = x1 + 3x 2
Sujeito a: Quadro Ótimo x1 x2 x3 x4
x1 ≤3 z 24 -1 0 0 -1
2x1 + 3x 2 ≤ 24 x3 3 1 0 1 0
x1 ≥ 0, x 2 ≥ 0 x2 8 2/3 1 0 1/3

Supondo agora que se deseja acrescentar ao programa a seguinte restrição:

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.

x Mudança nas variáveis


9 Primeiro caso: Mudança na variável é a eliminação que comporta dois subcasos:
† A variável eliminada é não básica
Certamente, quando uma variável não básica é removida de um programa, o quadro ótimo não é alterado, uma vez
que seu custo reduzido era obrigatoriamente menor ou igual a zero e seu valor na solução era zero.
Método Simplex 237

† A variável eliminada é básica


Uma variável básica não pode ser simplesmente eliminada do quadro ótimo, uma vez que a base foi calculada com sua
presença. Caso isso seja feito, o problema deve ser solucionado novamente. O que se sugere é forçar a saída dessa
variável da base, migrando para uma solução viável vizinha em que essa variável não participe e possa, então, ser
eliminada como uma variável não básica. A migração será realizada através de um pivoteamento forçado, já que existe
regra de parada no quadro. Os critérios para a escolha desse pivoteamento serão discutidos no exemplo a seguir:

Exemplo 6: Eliminação de variável básica no modelo abaixo:

Modelo que leva ao seguinte quadro ótimo Simplex:


Maximizar z = − 5x1+ 5x 2 + 13x 3
Sujeito a: Quadro Ótimo x1 x2 x3 x4 x5
Seja o modelo: −x1 +x 2 + 3x 3 ≤ 20 z -100 0 0 -2 -3 0
12x1+ 4 x 2 + 10x 3 ≤ 90 x2 20 -1 1 3 1 0
x1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0 x5 10 16 0 -2 -4 1

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

z -260/3 -2/3 2/3 0 -7/3 0


x3 20/3 -1/3 1/3 1 1/3 0
x5 50/3 46/3 2/3 0 -10/3 1
238 Programação Linear e Fluxos em Redes

9 Segundo caso: Refere-se ao acréscimo de uma nova variável.


De fato a introdução de uma nova variável (xl) exige o recálculo dos custos reduzidos e da coluna (l) da matriz Y.

Exemplo 7: Acréscimo de uma nova variável


Seja o modelo: Modelo que leva ao seguinte quadro ótimo Simplex:
Maximizar z = x1+ 2x 2 + 7x 3
Quadro Ótimo x1 x2 x3 x4 x5 x6
Sujeito a:
x1 + 2x 3 ≤ 4 z -13 0 0 0 -2 -1 -1
x1 2 1 0 0 3 -2 2
x 2 + 3x 3 ≤ 5
x2 2 0 1 0 3 -2 3
− x1 + x 2 ≤ 0
x1 ≥ 0, x 2 ≥ 0, x 3 ≥ 0 x3 1 0 0 1 -1 1 -1

Supondo que deseje-se acrescentar mais uma atividade, a x7 , com os seguintes elementos:

⎡0 ⎤
a 7 = ⎢⎢1 ⎥⎥ e c 7 = 4
⎢⎣2⎥⎦

Que leva ao cálculo dos valores de z7 − c7 e da coluna y7, da seguinte forma:

⎡ 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⎥⎦

Acrescentando a nova “coluna” no quadro tem-se:

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

Cujo pivoteamento conduz a:

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.

9 Exemplo 8: Modi¿cação da variável básica

Seja o quadro ótimo do Exemplo 6:


Quadro Ótimo x1 x2 x3 x4 x5
⎡ 1 0⎤ ⎡1 ⎤ ⎡ 1 ⎤ z -100 0 0 -2 -3 0
y 2 = B −1a2 = ⎢ ⎥⎢ ⎥=⎢ ⎥
⎣− 4 1⎦ ⎣3⎦ ⎣ − 1⎦ x2 20 -1 1 3 1 0
x5 10 16 0 -2 -4 1

⎡1 ⎤
Supondo que x 2 = ⎢ ⎥ . Sabe-se que:
⎣3 ⎦

Contudo, como a variável é básica, tem-se:

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.

2 Aplicação da Teoria da Dualidade - 1



Para o problema ao lado:
Minimizar z = 2x1 + 3x 2 + 6x 3 + 8x 4
Sujeito a:
1. Escreva o problema dual.
x1 + 2 x 2 + 3 x 3 + x 4 ≥ 3
2. Solucione o dual gra¿camente.
− 2 x1 + x 2 − x 3 + 3 x 4 ≤ − 4
3. A partir da solução do dual, obtenha a x j ≥ 0 j = 1,2,3,4
solução do primal.
Método Simplex 241

3 Aplicação da Teoria da Dualidade - 2



Para o problema ao lado:

1. Solucionar pelo algoritmo Simplex.


Maximizar z = 2x1 + 3x 2 + 6x 3
2. Escrever seu dual.
Sujeito a:
3. Solucionar o problema dual gra¿camente. x1 + 2x 2 + x 3 ≤ 12
4. Calcular, utilizando as condições de x1 − x 2 + 3 x 3 ≤ 7
dualidade e a solução grá¿ca, o quadro x j ≥ 0 j = 1, 2, 3
Simplex ótimo para o dual.

4 Aplicação da Teoria da Dualidade - 3



Para o problema ao lado:

1. Solucionar pelo algoritmo Simplex.


2. Escrever seu dual e determinar gra¿camente a solução.
3. Supondo que b1 (primeiro elemento do termo independente) seja
acrescido de uma unidade. O que acontecerá com o valor da Maximizar z = x1 − x 2 + 2x 3
função-objetivo?
Sujeito a:
4. Supondo que o vetor de custos seja alterado para (2, 1, 1). O que
x1 + x 2 + x 3 ≤ 6
acontecerá com a solução encontrada no primeiro pedido?
− x1 + 2x 2 + 3x 3 ≤ 9
5. Supondo que o vetor de termos independentes seja alterado para
x j ≥ 0 j = 1,2,3
(5,10)t. O que acontecerá com a solução encontrada no primeiro
pedido?
6. Se uma nova variável for incluída no problema com o custo igual a -1,
e com um vetor de restrição igual a (2,1)t, o que acontecerá com a
solução encontrada no primeiro pedido?
7. Se o vetor custo do problema é alterado para (1, -1, 2) + O(1,4,-1).
Determinar as soluções ótimas para todos os valores de O.
242 Programação Linear e Fluxos em Redes

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.

TABELA 4.2. Resumo do problema

Custo unitário de Custo de montagem Limite de produção no


Máquina
produção (US$) das máquinas (US$) tempo disponível
1 1,12 60 300
2 1,23 50 270

Solucionar o problema de forma a minimizar o custo total da produção.

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

4. Resolver o problema pelo método Simplex.


5. De quanto varia o custo mínimo por tonelada de Fe a ser acrescida ao lote encomendado?
6. Qual a interpretação econômica que você pode dar ao problema dual e a suas variáveis?
7. Suponha que apareça um novo fornecedor de um minério de tipo C (min C), que custa R$ 4 000,00 por centena
de toneladas, e que possui 2% de Si e 50% de Fe. Haverá mudança na composição da liga ótima? Se sim, qual
será a nova composição?
8. Qual o máximo preço que a sucata pode ter a ¿m de que seja economicamente vantajosa para produção da liga
em questão?
9. Dentro de que intervalo de custo o mim A será atrativo para permanecer na solução ótima?

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.

TABELA 4.3. Resumo do problema

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.

1. Formular o problema de programação linear que calcula o melhor esquema de produção.


2. Formular o problema dual.
3. Colocar os problemas na forma-padrão.
4. Resolver ambos os problemas pelo método Simplex.
5. Existe algum processo que não está sendo totalmente utilizado? Por que isso está acontecendo?
6. O que aconteceria ao lucro total se um novo trabalhador fosse contratado temporariamente (pagamento por hora
trabalhada).
244 Programação Linear e Fluxos em Redes

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:

O modelo corresponde a um processo de produção em que as variáveis Maximizar z = 2x1 + 4 x 2 + x 3 + x 4


são certos produtos manufaturados que são vendidos no mercado. O re- Sujeito a:
torno da venda dos produtos está indicado, em unidades monetárias, pela
x 1 + 3x 2 +x 4 ≤ 8
função-objetivo. As restrições representam as limitações de disponibilida-
2 x1 + x 2 ≤6
de do insumo A (restrição 1), do insumo B (restrição 2) e do insumo C (res-
trição 3), insumos esses que são consumidos no processo de obtenção de x2 + 4x3 + x4 ≤ 6
cada produto. x j ≥ 0 j = 1,...,4
Denominando por x5, x6 e x7 as variáveis de folga associadas, respecti-
vamente, a primeira, segunda e terceira restrições, e por b = (b1,b2,b3) o ⎡ 1 3 ⎤
⎢− 5 0⎥
termo independente e sabendo-se que a inversa da base ótima (composta ⎢
5

1 1 1⎥
por x1, x3 e x2) corresponde a: B −1 = ⎢−
⎢ 10 20 4⎥
⎢ ⎥
2 1
Responder às perguntas abaixo:
⎢ − 0⎥
⎢⎣ 5 5 ⎥⎦

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

10 Aplicação da Teoria da Dualidade - 1



Ao lado está transcrito o quadro ótimo de determi-
nado Problema de Programação Linear, cuja fun-
ção-objetivo era de maximização e as restrições Quadro Ótimo x1 x2 x3 x4 x5
eram todas do tipo menor ou igual (d). z -20 -2 0 -2 -3 0
1. Escrever o problema original. x2 5 -2 1 1 1 0
2. Escrever o dual desse problema. x5 10 4 0 -2 4 1
3. Obter a solução ótima do problema dual a partir
do quadro inicial.

11 Aplicação da Teoria da Dualidade - 2



Maximizar z = x1 + 8x 2
Sujeito a :
Solucionar o problema ao lado: x1 + x 2 ≥ 2
x1 + 4 x 2 ≤ 4
x j ≥ 0 j = 1,2

12 Aplicação da Teoria da Dualidade - 3



É necessário efetuar a programação diária da montagem de placas-mãe para microcomputadores em uma pequena
manufatura. Cada tipo de placa pode ser montada com dois tipos de CPU. A Tabela 4.4 representa a distribuição de agrega-
ção de valor em UM com a montagem de uma placa-mãe, em função do esquema Tipo de Placa x CPU utilizado.

TABELA 4.4. Agregação de valor em UM na montagem


Tipo 1 Tipo 2
CPU 1 50 70
CPU 2 25 60

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

TABELA 4.5. Tempo de montagem e testes


Tipo 1 Tipo 2
CPU 1 1 3
CPU 2 0,7 5

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:

Tabela 4.6. Disponibilidade de mão de obra


Tipo 1 Tipo 2
CPU 1 250 250
CPU 2 150 250

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

14 Análise de Sensibilidade – Exercício de Introdução



Para o modelo ao lado:
1. Solucionar o modelo pelo primal Simplex. Maximizar z = 20x1 + 5x 2
2. Solucionar gra¿camente o problema. Sujeito a:
3. O que acontecerá se o valor de x2 for aumentado para 10? x1 − x 2 ≤ 1
Faça a solução Simplex, grá¿ca e a análise de sensibilidade. 2x1 + x 2 ≤ 5
4. O que acontecerá se o valor do termo, independentemente da x i ≥ 0, i = 1, 2
segunda restrição, diminuir de 1 para ½? Faça a solução Simplex,
grá¿ca e a análise de sensibilidade.

15 Análise de Sensibilidade – Exercício Abrangente



Para o modelo ao lado:
1. Solucionar o modelo pelo primal Simplex.
2. O que acontecerá se o valor de c3 passar de 13 para 8?
3. O que acontecerá se o valor c1 passar de -5 para -2?
4. O que acontecerá se o valor c2 passar de 5 para 6?
5. O que acontecerá se o vetor b for alterado para [30,90]?
Se for o caso, recalcular o quadro ótimo.
6. O que acontecerá com a solução se a coluna da variável x1 (não Maximizar z = − 5x 1 + 5x 2 + 13x 3
básica) for alterada como se segue?
Sujeito a:
-5 -2 − x 1 + x 2 + 3x 3 ≤ 20
-1 0 12x 1 + 4 x 2 + 10x 3 ≤ 90
12 5 x 1, x 2, x 3 ≥ 0

7. O que acontecerá com a solução se a coluna da variável x2 (variável


básica) for alterada como se segue?
-5 -6
1 2
4 5
8. O que acontecerá com a solução se a seguinte restrição,
2x1 + 3x 2 + 5x 3 ≤ 50, for acrescentada ao modelo?
248 Programação Linear e Fluxos em Redes

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

18 Dual Simplex – 3 - DesaÀo



Minimizar z = x 1 + x 2 + 2x 3
Sujeito a:
2x1 + x 2 + 3x 3 ≥ 70
Solucionar o modelo ao lado pelo método dual Simplex.
x1 + 3x 2 + 2x 3 ≥ 80
3x 1 + 2x 2 + x 3 ≥ 50
x1 , x 2 , x 3 ≥ 0

19 Exercício Abrangente - DesaÀo

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?

20 A Licitação de Transporte de Camarões - DesaÀo

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.

TABELA 4.7. Volumes e pesos disponíveis e custos por quilômetro


C1 C2 C2 C4
Volume Peso Volume Peso Volume Peso
15m 3
6 Toneladas 10m 3
4 toneladas 5m 3
5 toneladas
7 UM/Quilômetro 8 UM/Quilômetro 9 UM/Quilômetro 5 UM/Quilômetro
7 viagens 15 viagens 8 viagens 10 viagens

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.

21 O Problema da Piscicultura - DesaÀo

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.

TABELA 4.9. Produtividade esperada de cada tipo de peixe


em cada lagoa (quilos de peixe, por quilo de larvas)
Tipos de Peixes
Lagoas
P1 P2 P3 P4
1 1.000 2.000 1.900 1.500
2 1.100 1.900 1.700 2.000
3 2.000 2.300 1.500 1.900

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

Peixe 1 Peixe 2 Peixe 3 Peixe 4


Ração (quilos) 0,7 0,5 0,4 0,8
Disponibilidade das larvas 80 Kg 90 Kg 40 Kg 100 Kg

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

Peixe 1 Peixe 2 Peixe 3 Peixe 4


Lagoa 50 UM 25 UM 35 UM 40 UM
Disponibilidade de ração 95 toneladas

1. Formular e solucionar o modelo de produção que otimiza o lucro do negócio.


Depois de realizado o cultivo da fazenda, como sugerido pela solução da questão número 1 do presente problema, surge
a larva Alfa no mercado. Essa larva é um avanço tecnológico e pode ser cultivada simultaneamente com os peixes já
cultivados nas três lagoas, sem alterar sua produtividade ou capacidade de sustentação biológica. A formação do peixe
Alfa não altera a produção dos outros peixes na lagoa, e cada lagoa pode receber uma quantidade adicional de larvas
Alfa, como mostrada a Tabela 4.13.

TABELA 4.13. Capacidade das lagoas em receber quilos da larva Alfa

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.

2. Encontrar a política ótima para a fazenda diante da oferta da larva Alfa.


3. Se houvesse possibilidade de importar ração, quanto a fazenda poderia pagar pelo quilo de ração importada?
4. Se o fazendeiro desejasse usar resíduos biológicos complementares, poderia simular o efeito da ração de peixe.
Cada quilo de resíduo equivale a 300g de ração e 10Kg de resíduo podem ser adquiridos por 0,2 UM. Seria possível
melhorar o lucro da fazenda com a aquisição de resíduos? Considerando que existem resíduos biológicos su¿cientes
para a necessidade da fazenda e que os custos das larvas, da ração e de outros processos necessários à produção
são implicitamente abatidos ao se considerar o lucro nas tabelas conhecidas (todavia não se incluem os custos dos
resíduos biológicos), qual seria o máximo lucro da produção nesse novo cenário?

22 Amanhã é o Dia do Exame de Programação Linear - DesaÀ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

Álgebra Linear Algoritmo Simplex Dualidade Interpretação Econômica


Provável grau 30 60 70 25
Grau de diÀculdade 40 70 60 80

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

Pivoteamento dual: entra x4 na base no lugar de x7.


254 Programação Linear e Fluxos em Redes

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

Problema 13 – O Problema do Sítio

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

Pivoteamento dual: entra x3 na base no lugar de x6.

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

Pivoteamento dual: entra x2 na base no lugar de x5.

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

Pivoteamento dual: entra x1 na base no lugar de x4.


Método Simplex 255

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

Pivoteamento primal: entra x4 na base no lugar de x7.

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

Pivoteamento dual: x1 deve entrar na base no lugar de x5.

1o Quadro x1 x2 x3 x4 x5 Quadro Ótimo x1 x2 x3 x4 x5


z 560 0 -0,11 0 0 -1,12 z 582 0 0 -0,11 0 -1,23
x3 -200 0 -1 1 0 1 x3 200 0 1 -1 0 -1
x4 270 0 1 0 1 0 x4 70 0 0 1 1 1
x1 500 1 1 0 0 -1 x1 300 1 0 1 0 0
Pivoteamento dual: x2 entra na base substituindo x3.
256 Programação Linear e Fluxos em Redes

Intepretação Econômica 13
Modelo primal:

xi { Quantidade do produto i Maximizar Z = 80x1 + 60x 2 + 50x 3


produzido Sujeito a: Z = 960
8x1 + 6x 2 + 4 x 3 ≤ 100 Solução do primal:
i = 1 – mesa, x1 = 12, x 2 = 0, x 3 = 0
5x1 + 4 x 2 + 4 x 3 ≤ 60
2 – escrivaninha e
x1 , x 2 , x 3 ≥ 0
3 – cadeira.
Da solução do modelo primal observa-se que:

8x1 (8.12) + 6x 2 (6.0) + 4 x 3 ( 4.0) = 96 ≤ 100 há folga no uso da madeira


5 x1 (5.12) + 4 x 2 ( 4.0) + 4 x 3 ( 4) = 60 ≤ 60 não há folga no uso do metal

Minimizar W = 100y 1 + 60y 2


Modelo dual:
Sujeito a:
yi { custo do 8y 1 + 5y 2 ≥ 80 W = 960
Solução do dual:
insumo i produzido 6y 1 + 4 y 2 ≥ 60 y 1 = 0, y 2 = 16

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.

Análise de Sensibilidade – Exercício de Introdução 14


1. Solução Simplex

Quadro Inicial x1 x2 x3 x4 1o Quadro x1 x2 x3 x4


z 0 20 5 0 0 z -20 0 25 -20 0
x3 1 1 -1 1 0 1 x1 1 1 -1 1 0 --
x4 5 2 1 0 1 5/2 x4 3 0 3 -2 1 3/3
Método Simplex 257

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

3. Aumento de x2 para 10. Solução Simplex

Quadro Inicial x1 x2 x3 x4 1o Quadro x1 x2 x3 x4


z 0 20 10 0 0 z -20 0 30 -20 0
x3 1 1 -1 1 0 1 x1 1 1 -1 1 0 --
x4 5 2 1 0 1 5/2 x4 3 0 3 -2 1 3/3

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

9 Solução grá¿ca associada

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 ⎦

4. Redução do termo independente

9Solução Simplex

Quadro Inicial x1 x2 x3 x4 1o Quadro x1 x2 x3 x4


z 0 20 5 0 0 z -10 0 25 -20 0
x3 1/2 1 -1 1 0 1/2 x1 1/2 1 -1 1 1 --
x4 5 2 1 0 1 5/2 x4 4 0 3 -2 1 4/3

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

9 Solução grá¿ca associada

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 ⎦

Análise de Sensibilidade – Exercício Abrangente 15


1. Solução do primal Simplex

Quadro Inicial x1 x2 x3 x4 x5 Quadro Ótimo x1 x2 x3 x4 x5


z 0 -5 5 13 0 0 z -100 0 0 -2 -5 0
x4 20 -1 1 3 1 0 x2 20 -1 1 3 1 0
x5 90 12 4 10 0 1 x5 10 16 0 -2 -4 1

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 Inicial x1 x2 x3 x4 x5 1o Quadro x1 x2 x3 x4 x5


z -150 0 0 -2 -5 0 z -120 -16 0 0 -1 -1
x2 30 -1 1 3 1 0 x2 -15 23 1 0 -5 3/2
x5 -30 16 0 -2 -4 1 x3 15 -8 0 1 2 -1/2

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

6. Coluna de x1 – var não básica alterada.


Deve-se atualizar a coluna y1 e recalcular z1- c1, como se sugere abaixo:

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.

7. Coluna de x2 (variável básica) alterada, como abaixo:


Como a variável é básica, seus custos reduzidos serão iguais a zero. Todavia a alteração em a2 implicará alteração em y2. A
nova y2 poderá ser calculada através da inversa da base corrente, como a seguir:

⎡ 1 0 ⎤ ⎡2 ⎤ ⎡ 2 ⎤
y 2 = B −1r2 = ⎢ ⎥⎢ ⎥=⎢ ⎥
⎣ − 4 1 ⎦ ⎣ 5⎦ ⎣ − 3⎦

O que leva ao seguinte quadro Simplex:

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 Inicial x1 x2 x3 x4 x5 1o Quadro x1 x2 x3 x4 x5


z 0 -2 -3 -4 0 0 z 4 0 -4 -1 0 -1
x4 -3 -1 -2 -1 1 0 x4 -1 0 -5/2 1/2 1 -1/2
x5 -4 -2 1 -3 0 1 x1 2 1 -1/2 3/2 0 -1/2

Quadro Ótimo x1 x2 x3 x4 x5

z 28/5 0 0 -9/5 -8/5 -1/5


x2 2/5 0 1 -1/5 -2/5 1/5
x3 11/5 1 0 7/5 -1/5 -2/5
264 Programação Linear e Fluxos em Redes

Referências BibliográÀcas

Chvátal. V. (1983). Linear Programming. W. H. Freeman and Company, Nova York.


Menger, C. (1871). Grundsätze der Volkswirtschaftslehre, Austrian School of Economics.
Capítulo 5
Problemas de Conexão: Árvores,
Caminhos e Emparelhamento

Objetivos
O presente capítulo objetiva:

1. Examinar modelos e algoritmos para problemas de conexão.

2. Examinar modelos e algoritmos para a solução de problemas de caminhos.

3. Examinar modelos e algoritmos para o problema de emparelhamento.

5.1
Introdução

• As origens do problema – a otimização de conexões


Em diversas e importantes situações reais, os modelos de otimização abordam situações de conexão entre facilidades, ou
entre os clientes e suas facilidades. Os Problemas de Localização caracterizam aplicações em que existe a necessidade de
se examinar, por exemplo, uma distribuição de atendimento. Uma outra espécie de situação de modelagem pode exigir o
estudo especí¿co das ligações entre as demandas e seus pontos de atendimento. Nesse último caso, a ênfase do modelo se
desloca para o estabelecimento da conexão ou da forma de acesso ou contato entre a oferta e a demanda. Em problemas
de oferta versus demanda, de modo geral, o tomador de decisão necessita ser capaz de exibir uma topologia adequada ao
modelo, formas de organizar as con¿gurações desejáveis dentro da topologia adotada, e critérios que permitam discriminar
diferentes con¿gurações de alocação da demanda versus atendimento. Considerando problemas em que a tomada de deci-
são é polarizada pela arquitetura de ligação, três estruturas de representação são extremamente importantes:
9 Caminhos
Quando o foco está na escolha da trajetória que ligará a demanda ao consumo, por exemplo.
9 Árvores
Quando o foco está na continuidade da conexão e no estabelecimento de uma espinha dorsal unindo o conjunto de
pontos demandantes.
266 Programação Linear e Fluxos em Redes

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

a) Conexão não direcionada b) Conexão direcionada

Figura 5.1. Formas de conexão


Problemas de Conexão: Árvores, Caminhos e Emparelhamento 267

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:

x Algoritmo busca geral em grafos

ALGORITMO BUSCA GERAL EM GRAFOS

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.

ALGORITMO DE ROY (COMPONENTES FORTEMENTE CONEXAS DE 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

O algoritmo de Roy para a determinação das


componentes fortemente conexas do grafo G 1 7 8 6
= (V, E) será aplicado ao grafo da Figura 5.2.

3 4

Figura 5.2: Grafo exemplo para determinação de componentes conexas


Problemas de Conexão: Árvores, Caminhos e Emparelhamento 269

9 Exemplo de aplicação do algoritmo de Roy


Decidindo sempre escolher o vértice de menor índice para dar sequência à busca, o desenvolvimento da rotulação gerada pelo
algoritmo pode ser acompanhado na Figura 5.3. O algoritmo pode ser utilizado em grafos direcionados ou não direcionados.

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

S1: = {1,2,3,7} Rotulação (+) do vértice 4

+ -2 5 +- + -2 5 +-
+- +-
1 7 8 +- 6 +- 1 7 8 +- 6 +-
+- +-
+- 3 4 +- +- 3 4 +-

Rotulação (-) do vértice 4 S2: = {4,5,6,8}

Figura 5.3: Solução via algoritmo de Roy


270 Programação Linear e Fluxos em Redes

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.

x Formulação matemática do Problema do Caminho Mais Curto

(CMC) Mimimizar z = ∑c x
( i, j ) ∈A
ij ij

É possível formular o Problema do Caminho Sujeito a:


mais Curto como um problema de programação ⎧+ 1 se i = o ⎫
m
⎪ ⎪
matemática, como sugerido no modelo ao lado: ∑ xij − ∑ x ki = ⎨ 0 se i ≠ o ou m ⎬
( i, j ) ∈A ( k, i ) ∈A ⎪− 1 se i = d ⎪
⎩ ⎭
xij ∈ {0,1} i, j = 1, 2,..., m

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

x Alguns problemas correlatos

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.

9 Caminho mais curto com Janelas de Tempo (PCMC-JT)

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.

9 Caminho mais curto em grafos estocásticos (PCMC-GE).

Nesse caso existem algumas linhas de trabalho que incluem:

x Falha nos vértices (Jaillet, 1992).


x Custos estocásticos (Loui, 1983).
x Ligações estocásticas (Psaraftis & Tsitsiklis, 1993).

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.

9 Caminho mais curto k-Centro (PCMC-k)

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:

ˆ Algoritmos com Especialização do Simplex.


ˆ Algoritmos de Fluxo.

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

ˆ Algoritmos de ajustes sucessivos.


ˆ Algoritmos por indução e ajuste.

Em relação ao problema em si, duas situações são distintas:

ˆ O caminho mais curto entre um par de nós.


ˆ O caminho mais curto entre todos os pares de vértices do grafo.

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

É possível descrever o algoritmo como o quadro que se segue:

ALGORITMO DIJKSTRA (CAMINHO MAIS CURTO)

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

Figura 5.4. Exemplo da evolução do algoritmo de Dijkstra

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

O algoritmo de Ford-Moore-Bellman, assim denominado em homenagem ao trabalho simultâneo desses pesquisadores


(Bellman, 1958), contudo publicado em épocas diferentes, não realiza o fechamento de um vértice a cada iteração, examinando
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 275

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 sN }; { 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.

Figura 5.5. Grafo exemplo para o algoritmo de


Ford-Moore-Bellman
276 Programação Linear e Fluxos em Redes

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

l 32 = min{ l ; [ l + l (1,3); l + l (2,3)] } = 4 (melhorou)


1
3
1
1
1
2

l 42 = min{ l ; [ l + l (1,4); l + l (3,4)] } = 3 (melhorou)


1
4
1
1
1
3

l 52 = min{ l ; [ l + l ( 4,5); l + l (3,5)] }= ∞


1
5
1
4
1
3

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

Trabalho Técnica Utilizada Complexidade


Dijkstra (1959) Seleciona o nó de menor potencial O(n2)
Ford (1956), Moore (1957), Bellman
Técnica de rotulação FIFO O(mn)
(1958)
Ford & Fulkerson (1962) Técnica de rotulação FIFO O(mn)
Floyd (1962) Técnica da “operação tríplice” O(n3)
Hu (1968) Algoritmo matricial O(mn)
Dial (1969) “Buckets e FIFO” O(m+Cn)*
Pape (1974) Incremental sobre um conjunto restrito de nós Q(n2n)
Pallottino (1984) Incremental sobre um conjunto restrito de nós O(n2m)
Glover et al. (1984) e (1985) Combinação das abordagens Dijkstra e F-M-B O(mn)
Goldberg & Radzik (1993) Manipulação de conjuntos de rotulação O(mn)
Cohen (1996) Algoritmos paralelos O(log4n)
Algoritmo paralelo para caminho mais curto
Träff & Zaroliagis (1996) O((n2e+n1-e) logn)**
em grafo planar
Henzinger et al. (1997) Caminho mais curto em grafos planares O(n3/4 L logn)***
Aperfeiçoamento da abordagem de Thorup
Pettie & Ramachandran (2005) O(m + n log logn)
(1990) – em bucket-heap.
* A constante C é um limite superior para o peso das arestas.
** 0<H <1/2.
*** L é o valor absoluto do maior comprimento negativo de uma aresta.

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

A primeira restrição garante a formação da ár-


vore geradora, ou seja, passando por todos os
(AGM1) Minimizar ∑c x
( i, j ) ∈M
ij ij

vértices. A segunda restrição garante que o grafo Sujeito a:


é uma árvore, ou seja, é acíclico.
∑x
( i, j ) ∈M
ij = n −1

A formulação AGM1 exige um número exponen- ∑x ij


( i, j ) ∈ M : i ∈ S, j ∈S
≤ S −1 ∀S ⊆ N
cial de restrições de eliminação de ciclo.
xij ∈ {0,1} ∀( i , j ) ∈ M

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.

Para cada subconjunto S  N seja G(S) o


conjunto das arestas cruzando um corte no
(AGM2) - Minimizar ∑c x
( i , j ) ∈M
ij ij

grafo G, com uma extremidade em S e outra Sujeito a:


em N\S.
∑x
( i , j ) ∈M
ij = n −1

Na formulação AGM2 a primeira restrição ∑x ij ≥1


( i , j ) ∈ M : ( i , j ) ∈δ ( G )
∀S ⊆ N ; ∅≠S≠N
garante uma estrutura com n-1 arestas e a
segunda garante uma estrutura conexa. x ij ∈ {0,1} ∀( i , j ) ∈ M

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.

x Problemas correlatos e aplicações


O problema de criar árvores conexas em G atendendo critérios de minimização de custos comporta pelo menos mais
dois modelos de otimização que são:

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

a) Árvore Geradora Mínima b) Árvore Gargalo para limite igual a 3

Figura 5.6. Soluções para a Árvore MinMax

9 Árvore MinMax_MinSum (M3S)


O problema de gargalo anteriormente descrito, pode ser combinado com o problema de minimização de custo, produzindo
um problema de minimização que possui uma parcela de sua função-objetivo associada ao custo e uma segunda parcela
associada ao gargalo. Uma forma de combinar essas duas parcelas está representada no problema da Árvore MinMax_
MinSum (M3S). No caso, a função-objetivo de minimização é composta pela soma algébrica da função-objetivo da Árvore
Geradora Mínima com o gargalo máximo dessa árvore. Todavia o gargalo máximo não é contado sobre os custos que cal-
culam a AGM, mas sobre um segundo conjunto de valores independentes que ponderam as arestas e que pontuam pesos
para a função-objetivo gargalo.

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

Figura 5.7. Exemplo de árvore MinMax_MinSum.

9 Árvore Geradora Mínima de Grau Restrito – (AGM-GR)


A Árvore Geradora Mínima de Grau Restrito (AGM-GR) é uma Árvore Geradora Mínima cujos vértices possuem um determi-
nado grau k, onde k > 2. Papadimitriou (1978) demonstrou que AGM-GR é NP-Completo. O trabalho de Narula & Ho (1980)
apresenta um estudo pioneiro em algoritmos de solução para o problema. Várias abordagens de solução são possíveis, tais
como Savelsbergh & Volgenant (1985) – combinação de arestas, Fekete et al. (1997) – técnicas de Àuxo em rede, Zhou &
Gen (1997) e Rothlauf & Goldberg (1999) – algoritmos genéticos, Raidl (2000) – computação evolucionária.
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 281

9 Árvore Geradora Mínima Capacitada

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 Árvore Geradora Mínima Robusta


Este problema corresponde a um modelo de otimização com incerteza. O problema da árvore Geradora Mínima Robusta
(AGM-R) é que os custos dos arcos se encontram dentro de intervalos, ao invés de serem números ¿xos e conhecidos. No
caso da AGM-R deseja-se encontrar uma árvore geradora que minimize o máximo desvio-padrão de seu custo em relação
a uma árvore geradora mínima que levem em conta todas as possibilidades de custos. No tema destacam-se os seguintes
trabalhos: Andrade et al. (2006), Yaman et al. (2001), Aron & Van Hentenryck (2003), Montemanni & Gambardella (2004).

9 Árvore Geradora de Máximo Número de Folhas


Árvore geradora que maximiza o número de folhas. O trabalho de Galbiati et al. (1994) demonstra que o problema proposto
presentemente é Apx-Completo. Lu & Ravi (1992) apresentam algoritmos heurísticos para sua solução e Fujie (2003) des-
creve um algoritmo exato para o problema.

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:

ˆ Roteamento de meios terrestres na defesa de costa (Moreira,1995).


ˆ Projeto de redes de comunicações (Punnen & Nair, 1996).
ˆ Roteamento de veículos com função multiobjetivo (pedágio, condições de risco, e outros critérios).

x Principais algoritmos de solução para Árvore Geradora Mínima


Como uma AGM atende os requisitos para ser de¿nida em Matroides (ver conceito no Anexo), existe a expectativa de que
sua solução seja e¿ciente e, inclusive, realizada de forma exata através de algoritmos míopes ou gulosos. Tarjan (1981)
apresenta um método geral que inclui todos os métodos baseados em abordagens míopes. Nesse sentido existem três algo-
ritmos clássicos que solucionam o problema de forma e¿ciente: Kruskal (1956), Prim (1957) e Borüvka (algoritmo publicado
em 1926, em Checo, como um método para construir redes de energia elétrica e redescoberto posteriormente apud NešetĜil
et al., 2001). No caso de Prim, a árvore geradora é construída a partir de uma aresta pelo acréscimo guloso de novas
arestas, aumentando-se a arborescência inicial até que todos os vértices são incluídos. No caso de Kruskal, podem ser
282 Programação Linear e Fluxos em Redes

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.

9 Algorítimo Prim Colorido

Considerando os conjuntos S, T, e V, onde S Ž M, T Ž N, V Ž N, tem-se o seguinte algoritmo:

ALGORITMO PRIM (ÁRVORE GERADORA MÍNIMA)

INÍCIO
Ler G = (N, M) e C = [cij] a matriz de custos de G
Escolha qualquer vértice iN
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 jT 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

ALGORITMO PRIM COLORIDO (ÁRVORE GERADORA MÍNIMA)

INÍCIO
Ler G = (N, M) e C = [cij ] a matriz de custos de G.
escolha qualquer vértice jN;
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), jTi 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

Exemplo de funcionamento do algoritmo Prim


Escolhendo-se o vértice 1 para iniciar a árvore, a Figura 5.9 mostra, da esquerda para direita e de cima para baixo, a sequência
de inclusão de arestas que é gerada pela versão clássica do Prim ao ser aplicado ao grafo da Figura 5.8.

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

1a Inclusão de aresta 2a Inclusão de aresta

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

3a Inclusão de aresta 4a Inclusão de aresta

2 2 4
1 3
1 1 3 -3 6
3 2

3 2 5
Última inclusão de arestas

Figura 5.9. Exemplo da evolução do algoritmo de Prim

Exemplo de funcionamento do algoritmo Prim Colorido


A Figura 5.10 mostra as escolhas e marcações do algoritmo Prim_Colorido (V representa arestas “verdes”, as arestas ressal-
tadas são as que o algoritmo denomina por “azuis”, e as que aparecem marcadas com um “x” representam as “vermelhas”).
A escolha do vértice inicial é a mesma do exemplo anterior.
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 285

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értice 2 escolhido para ser examinado z = 3 o aresta (1, 3) colorida de vermelho


z = 4 o aresta (2, 4) colorida de verde z = 3 o aresta (2, 3) colorida de azul
z = 5 o aresta (2, 5) colorida de verde

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

Figura 5.10. Exemplo da evolução do algoritmo Prim_Colorido

9Algoritmo Kruskal
O segundo algoritmo clássico para a AGM é o de Kruskal, que pode ser formalizado como:

ALGORITMO KRUSKAL (ÁRVORE GERADORA MÍNIMA)

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

Exemplo de funcionamento do algoritmo Kruskal


Escolhendo-se o vértice 1 para iniciar a árvore, a Figura 5.11 mostra a sequência de inclusão de arestas do algoritmo de
Kruskal (vetor H = {(4, 3);(1, 2);(2, 3);(5, 6);(3, 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

(a) 1a Inclusão de aresta (b) 2a Inclusão de aresta

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

(c) 3a Inclusão de aresta (d) 4a Inclusão de aresta

2 2 4
1 3
1 1 3 -3 6
3 2

3 2 5
(e) Última inclusão

Figura 5.11. Exemplo da evolução do algoritmo de Kruskal

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:

ALGORITMO BORÜVKA (ÁRVORE GERADORA MÍNIMA)


INÍCIO
Ler G = (N,M) e C = [cij] a matriz de custos de G.
F0 é uma Àoresta inicial com n subarvores Tj , j = 1, .., n de G (todos os vértices isolados)
im0
Enquanto Fi não for uma árvore Faça para cada Tj  Fi
Início
Determine a menor aresta (xD, yD ) incidente em Tj onde xD Tj e yDTj
⎡ ⎤
Faça Fi +1 ← Fi ∪ ⎢ ( xα , y α )⎥

⎣α ⎦
imi+1
Fim
Escrever Fi {arestas da árvore geradora mínima}
FIM

Exemplo de funcionamento do algoritmo Borüvka


A Figura 5.12 mostra a sequência de inclusão de arestas do algoritmo de Borüvka.

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

(a) 1a Iteração (b) 2a Inclusão de aresta

Figura 5.12. Exemplo da evolução do algoritmo de Borüvka


Problemas de Conexão: Árvores, Caminhos e Emparelhamento 289

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

9Algoritmo de Minoux para o problema (M3S)


O algoritmo de Minoux (1989) consiste basicamente em buscar balancear os subproblemas MinMax e MinSum denotado
respectivamente por:

⎧ ⎫
(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 algoritmo e¿ciente que resolve o problema MinSum.

ˆ Max {Pi } para qualquer S  F pode assumir no máximo p = ~E~valores distintos.


e i ∈S

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

9Algoritmo (M3S Busca)


Goldbarg e Gouvêa (1997) sugerem algoritmos heurísticos de bom desempenho para problemas M3S-MS de grande
porte, um deles, denominado Busca, está transcrito no quadro respectivo. Considerando Clr = {ui ... uj ... ui} um ciclo r em
G, tem-se:
290 Programação Linear e Fluxos em Redes

ALGORITMO M3S BUSCA


INÍCIO
Ler os dados de G = (N, M), onde ce é o custo da aresta e  M, e Pe o seu peso.
Procedimento Busca (ui )
Marcar o vértice ui
Enquanto houver aresta (ui, uj) não examinada faça
Seja e a aresta (ui, uj )
Se uj não é marcado então
Se Pe > Pcor , então
Pcor m Pe
Z m Z - Pe + Pcor + ce
Caso Contrário
Se Pe = Pcor então Z m Z + ce
Caso Contrário Ciclo (ui, uj )

Procedimento Ciclo (ui, uj )


Para toda aresta e’ Clr , calcule a contribuição de e’ em Z
Retire de Clr a aresta de maior contribuição calculada.
Em caso de empate escolha a aresta de maior peso.
Se Pe = Pcor
Se e’ é a única aresta que possui o limite máximo na árvore então
Encontrar o novo limite máximo

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.

x Visão geral dos algoritmos de solução para o Problema de Emparelhamento


A literatura que aborda a solução do Problema de Emparelhamento é rica, como de resto é para todos os problemas combi-
natórios importantes. Alguns dos mais importantes trabalhos nessa área estão resumidos na Tabela 5.2.

TABELA 5.2. Algoritmos exatos de solução para o Problema de Emparelhamento


Ano Pesquisador Complexidade
1965 Edmonds O(mn)
1973 Hopcroft & Karp O(n2.5)
1974 Kameda & Munro O(n2.5) - grafos bipartidos
1975 Even & Kariv O(n3)
1975 Even & Tarjan O(n3)
1976 Gabow O(nlogn)- certas classes de grafos
1976 Bondy & Murty O(mn1/2)
1978 Mengido & Tamir O(mn1/2) - grafos bipartidos
1980 Micali & Vazirani O(n4) e O(n3)
1982 Papadimitriou & Steiglitz O(mn1/2)
1982 Papadimitriou & Steiglitz O (mlog4n) e para grafos planares O(nlogn)
1988 Derigs O(mn)
2001 Gabow et al. O(n2.5)

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:

x Curvas de Sierpinski e Hilbert (Bertholdi & Platzman, 1982)


x Curvas de Hilbert (Iri et al., 1983)
x Enquadramento Espiral (Iri et al., 1983)
292 Programação Linear e Fluxos em Redes

A Tabela 5.3 resume alguns desses esforços:

TABELA 5.3. Algoritmos heurísticos de solução para o PE


Ano Pesquisador Complexidade
1981 Iri et al O(n)
1982 Bertholdi & Platzman O(nlogn)
1983 Avis (vários)
1983 Iri et al O(nlogn)

x Problemas correlatos e aplicações


9 O Problema do Emparelhamento Estável
Em relação ao Emparelhamento, o mais conhecido problema correlato é o denominado “Stable Matching Problem” ou Pro-
blema do Emparelhamento Estável. Esse problema visa determinar uma associação entre agentes que possuem uma lista
de prioridades independente. A solução do problema citado consiste em obter um conjunto de associações (emparelhamento
ou “casamento”) tais que não exista um par de agentes unidos onde ambos prefeririam outros parceiros para a associação.
Seja a lista da Tabela 5.4.

TABELA 5.4. Lista de prioridades do Emparelhamento Estável

Pessoa Lista de Preferência


1 2 - 3 - 4 - 5 -6
2 3-4-5-6-1
3 4-5-6-1-2
4 5-6-1-2-3
5 6-1-2-3-4
6 1- 2 - 3 - 4 - 5

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

TABELA 5.5. Exemplo de lista de prioridades para a escolha do “de rancho”

Pessoa Lista de Preferência


1 2-3-4
2 3-1-4
3 1-2-4
4 qualquer um

9 Problema de alocação interna


Trata-se de uma versão generalizada do Problema do Casamento, ou seja, uma versão poligâmica em que os indivíduos
podem ser associados a mais de um outro indivíduo. Um caso prático de aplicação dessa forma de distribuição ocorre na dis-
tribuição de médicos internos em vários hospitais. Cada hospital possui certa quantidade de posições a serem preenchidas
com certa prioridade associada. Por outro lado, os médicos possuem preferências e prioridades em relação aos hospitais.
Uma alocação é considerada não estável nesse caso quando:

1. O médico ou o hospital preferem não ser alocados a participarem de uma associação.


2. Tanto o hospital como o médico possuem uma outra pretensão com maior prioridade.

Roth (1984) de¿ne essa aplicação e apresenta um algoritmo de solução para o problema.

9 Problema de Alocação Interna com Casais


O problema anteriormente descrito sofre uma transformação profunda se for permitido que os médicos possam se juntar em
duplas e unir suas listas de pretensões. Esse caso corresponderá à possibilidade dos médicos internos serem casados e
desejarem ser alocados em regiões geogra¿camente próximas. Esse problema é NP-Árduo (Ronn, 1990).

9 Problema do Emparelhamento com Gargalo


Trata-se da versão MinMax do emparelhamento. O interessante nesse caso do emparelhamento é a existência de um algo-
ritmo bastante e¿ciente e de fácil implementação com complexidade O ( (n log n)1/2 m) (Gabow & Tarjan, 1988).
294 Programação Linear e Fluxos em Redes

x Abordagens de Solução para o 1-Matching

O problema admite algumas abordagens clássicas de solução como:


9 Abordagem de Edmonds – solução construtiva baseada em enumeração de caminhos. Visa a solução do 1-Matching
em grafos não ponderados. Está associada ao desenvolvimento de caminhos dentro do grafo que permitam aumentar o
número de emparelhamentos obtidos. O algoritmo de Edmonds emprega alguns conceitos especí¿cos como

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

(a) Grafo G (b) Um caminho a partir do vértice 1

+ 1 4 5 6 + 1 4 5 6

- 2
+
3 7
-
8 + - 2
+
3 7
-
8 +

- 9 10 + - 9 10 +

(c) Uma rotulação alternada no caminho (d) Um emparelhamento associado

Figura 5.13. Um emparelhamento a partir de um caminho em G

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

Figura 5.14: Caminho Aumentante

Emparelhamento
Um emparelhamento M em G é maximal se e somente se não existir um caminho aumentante associa-
do ao emparelhamento M em G.

Das estruturas anteriormente de¿nidas é possível deduzir que

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:

Contém um único vértice isolado x1 (ou raiz deTa).


Todo caminho que une x1  V a qualquer outro vértice xj  V é um caminho alternante.
Contém todas as arestas de Mt incidentes em vértices de V.
296 Programação Linear e Fluxos em Redes

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

Figura 5.15. Árvore alternante enraizada em 1

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

TABELA 5.6. Descrição das atividades


Atividade de Início mais
Número Atividades Duração
Pré-Requisito Cedo
0 Início do Trabalho - 0 -
1 Projeto de Simulação 0 2 t1
2 Treinamento de Pessoal 1 9 t2
3 Construção de Instalações Especiais 1 4 t2
4 Certi¿cação das Instalações 3,6 1 t3
5 Aquisição de Material 1 1 t2
6 Aferição dos Instrumentos 5 2 t4
7 Teste do Material Adquirido 2,4 3 t5
8 Montagem da Cabine de Simulação 7 1 t6
9 Execução da Simulação 8 2 t7
10 Fim 9 0 t8
298 Programação Linear e Fluxos em Redes

2
(9)

(0)
(0 (2)
(2 (4) (1) (1) (0)
0 1 3 4 7 8 9 10
(3) (2)

(1) (2)
5 6

Figura 5.16. Rede orientada por tarefas.

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.

TABELA 5.7. Exemplo de um programa PERT

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)

Figura 5.20. Rede PERT/CPM


Problemas de Conexão: Árvores, Caminhos e Emparelhamento 301

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 existência de caminhos de duração variada em um mesmo


Data mais Tarde
planejamento implica que, em relação ao tempo de conclu-
são, algumas atividades possuem papel destacado ou críti- Data mais
co, enquanto outras estarão sujeitas a uma menor pressão. Cedo
Essa informação poderá ser muito útil na redistribuição dos
Folga
esforços e meios no planejamento. Podemos examinar vi- Número
n do Vértice
sualmente esse fenômeno acrescentando a cada vértice da
rede da Figura 5.20 o rótulo representado na Figura 5.21.
Figura 5.21. Rótulo do nó na rede PERT/CPM

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.

Figura 5.22. Cálculo do tempo mais cedo em situação de conÀito


302 Programação Linear e Fluxos em Redes

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.

Figura 5.23. Cálculo das datas mais tarde

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.

Figura 5.24. Cálculo dos caminhos críticos do projeto


Problemas de Conexão: Árvores, Caminhos e Emparelhamento 303

5.7
Exercícios Propostos

1 O Problema das Obras de Saneamento



Em um determinado bairro, a Prefeitura pre-
tende instalar a infraestrutura necessária de
água e esgoto. Um trecho do bairro está re-
presentado na Figura 5.25.
As redes de água devem passar por pelo
menos três lados de um quarteirão habita-
do, e as de esgoto por todos. As escavações
realizadas no sentido horizontal são quatro
vezes mais caras do que as de sentido ver-
tical. A praça só precisa ser abastecida por
água em um de seus lados (qualquer um), e
não precisa de rede de esgoto. Para reali-
zar o planejamento da obra e seu respectivo
orçamento, o prefeito determinou ao Depar-
tamento de Engenharia que elaborasse um
projeto inicial de distribuição física das redes
que atendesse as seguintes situações: Figura 5.25. Trecho do bairro a ser atendido

1. Projetos independentes para as redes de água e esgoto.


2. Projetos das redes objetivando utilizar as mesmas escavações, sempre que possível.

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.

2 O Problema do Caminho mais Curto na Cidade Destra



Uma certa cidade possui um código de trânsito rígido e peculiar: em suas ruas jamais é permitido que um veículo faça uma
curva à esquerda. Toda vez que um motorista desejar fazer uma mudança de direção, ele terá que seguir sempre à direita.
Todas as ruas da cidade são de mão dupla. Uma cooperativa de táxi resolveu desenvolver um software para auxiliar os mo-
toristas a encontrarem sempre o caminho mais curto entre sua posição e as chamadas de atendimento. Modi¿car o algoritmo
de Dijkstra (se necessário) para que ele possa funcionar corretamente nesse tipo de malha viária.
304 Programação Linear e Fluxos em Redes

3 O Problema dos Reabastecimentos dos Carros Elétricos



Uma cidade está ativando um novo sistema de transporte pessoal para a sua região central. O sistema é constituído por
pequenos carros elétricos. O sistema visa reduzir a poluição, o barulho e os engarrafamentos na região, minimizando a pre-
sença de veículos convencionais. Os pequenos e ágeis carros elétricos funcionam a partir de dois grandes estacionamentos
articulados com as estações de ônibus e metrô. O principal problema desses carros é que sua autonomia é pequena e eles
necessitam ser abastecidos a cada duas horas de operação contínua. No centro e nas cercanias foram criados vários ele-
tropostos para providenciar esse serviço mas, obviamente, eles possuem limitações de demanda. Para ajudar o motorista
a programar seu trabalho, inclusive fora do centro da cidade, se necessário, o carro dispõe de um software que auxilia a
encontrar sua melhor rota, em face dos pontos de visita desejados. Desenvolva um algoritmo para esse tipo de roteamento,
fazendo as considerações que julgar pertinentes ao caso.

4 O Problema do Labirinto Bifurcado

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.

5 O Problema da Rota mais Barata sujeita a Pedágio

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.

1 [5] 4 [5] 7 1 (1) 4 (5) 7


[1] [4] (8) (1)
[4] [3] (5) (1) (4)
[2]
[4] [3] (4) (6)
S [5] 2 [4] 5 [10] T S (6) 2 (4) 5 (1) T
[3] (1)
[6] (3)
[2] (10)
[3] (3)
3 [8] 6 3 (1) 6

(a) Distâncias entre as cidades (b) Tarifas de pedágio por trechos


Figura 5.26. Tarifas e distâncias do problema
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 305

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.

6 O Problema da Rede de Comunicações

A rede de computadores da Figura 5.27 é de alta


1 (0,02) 4 (0,01) 7
segurança. Dessa forma, o desenho de sua confi-
(0,01)
guração deve contemplar sempre a possibilidade da (0,02) (0,03) (0,02)
(0,01)
existência física de duas rotas (uma de uso corrente (0,07) (0,05) (0,03)

e outra de segurança) para ligar qualquer par de


9 (0,01) 2 (0,06) 5 (0,02) 8
pontos da rede.
(0,04) (0,01)
Desenvolva um algoritmo que seja capaz de determinar (0,03) (0,01)
(0,01) (0,1)
a solução procurada para qualquer instância desse tipo
de problema. Aplique o algoritmo na rede do problema 3 (0,01) 6
(0,06)
encontrando a solução desejada.
Figura 5.27. Rede de comunicações

7 Do Sertão para o Mar



Santana do Ipanema 2 78 Km 5 Palmeira dos Índios

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

Figura 5.28. Rede de Estradas

8 Caminho mais Curto da Carreta de Carga

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.

S.J. do Rio Preto


13
150 210 Ribeirão Preto
Araçatuba
9
14
190

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

Figura 5.29. Distâncias para a carreta de carga

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.

9 O Caminho mais Rápido no Metrô

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

Figura 5.30. Caminho mais Rápido

10 Uma Rede em Fibra Ótica no Centro de Salvador

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

Figura 5.31. Mapa do centro de Salvador

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.

11 Caminho mais Curto em Rede Seletiva



2 10 5 10 9
2
Determinar o caminho mais curto entre 2
5 8 -1 1 3 -2 2
os vértices S e T no mapa da Figura 3
10
5.32, de forma que nunca dois vértices
s 7 3 6 2 8 1 10 5 t
de mesma cor sejam visitados sequen- 8
cialmente. No caso da Figura 5.32 é 5 3
3 3 5 5 2 12
possível a aplicação do algoritmo de 5
Disjkstra para essa solução. 4 8 7 5 11

Figura 5.32. Mapa do problema 11


Problemas de Conexão: Árvores, Caminhos e Emparelhamento 309

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.

TABELA 5.8. Dados do Exercício 12

Atividade de Tempo mais


Número Atividades Duração Arco
Pré-Requisito Cedo
0 Início da Obra - 0 -
1 Terraplenagem 0 2 0-1 t1

2 Fundações 1 3 1-2 t2

3 Estrutura 2 5 2-3 t3

4 Alvenaria Não Estrutural 2 5 2-4 t4

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

10 Acabamento Interno 5,6,7,8 4 vários t10

11 Acabamento Externo 6,9 5 vários t11

12 Entrega da Obra 10,11 0 - t12

13 Rede PERT/CPM no Desenvolvimento de Software



A rede PERT/CPM do presente exercício representa as atividades de desenvolvimento de um software. O desenvolvedor
está interessado em reduzir o prazo ¿nal do projeto. Se uma atividade da rede for contratada a terceiros, seu tempo no
modelo será reduzido a zero.
310 Programação Linear e Fluxos em Redes

Figura 5.33. Rede PERT/CPM do problema 13

Sabendo-se que os valores mostrados sobre as setas representam a duração esperada para a atividade, pede-se:

1. Qual o número máximo de atividades paralelas dessa rede?


2. Qual o caminho crítico da rede?
3. Se o desenvolvedor decidiu contratar apenas uma atividade para melhorar o desempenho do desenvolvimento, qual
será a escolhida? Supõe-se que a atividade contratada deve maximizar a folga ¿nal entre o tempo de projeto (o mais
cedo possível) e o contratual (um certo tempo maior que o de projeto).
Problemas de Conexão: Árvores, Caminhos e Emparelhamento 311

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:

1. Examinar modelos e algoritmos para problemas de conexão.

2. Examinar modelos e algoritmos para a solução de problemas de caminhos.

3. Examinar modelos e algoritmos para o problema de emparelhamento.

6.1
Introdução

x Características dos Modelos de Fluxo em Redes

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.

x Uma taxonomia para os Problemas de Fluxos em Rede

9 Descrição do Problema de Fluxos em Rede


Os chamados problemas de Àuxo abordam o processo de otimização da distribuição de produtos originados em pontos
de oferta e consumidos em pontos de demanda dentro de uma rede de interligações possíveis. Grande parte desses
problemas encontra aplicação prática em situações de deslocamento de materiais em plantas industriais, sistemas de
comunicação e de transporte, sistemas de distribuição de água, dentre outros. Contudo, servem de modelo para inú-
meras outras situações diversas e que lhes podem ser assemelhadas por abstração. Normalmente a oferta de cada
produto, bem como a sua demanda, possui um valor conhecido. O processo de distribuição dos produtos não é realizado,
obrigatoriamente, de um ponto de produção a um ponto de demanda, permitindo-se que pontos intermediários, tais como
316 Programação Linear e Fluxos em Redes

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.

9 Formulação matemática do Problema de Fluxos em Rede


De¿ne-se uma rede, R = (V, E, F) como um grafo direcionado G = (V, E) atravessado por um Àuxo F = {f1, f2, ..., fm} que
circula em suas m arestas, usualmente denominadas de arcos. Em uma rede normalmente existem três tipos de vértices:
Os vértices Fonte, Sumidouros e vértices de Passagem. Um vértice Fonte permite que o Àuxo entre na rede. Um vértice Su-
midouro permite que o Àuxo deixe a rede. Um vértice de Passagem permite que o Àuxo circule na rede. Pode-se representar
o problema de Àuxo modelado na Figura 6.1 através de equações matemáticas. Denominando por xij, o Àuxo que circula no
arco i-j, pode-se representar as restrições expressas nos arcos da seguinte forma:

Restrições de capacidade dos arcos:


Os arcos de uma rede são, via de regra, capacitados. Em caso especial, os limites de capacidade podem ser considerados
como limite superior +f e limite inferior -f, neutralizando, na prática, essa característica. Os limites de Àuxo são representa-
dos dentro de cada arco. O limite inferior ou mínimo de Àuxo do arco (i, j)  E é representado por lij, e o superior ou máximo,
por Lij. A Figura 6.1 exempli¿ca uma rede. As restrições de limite de Àuxo são escritas como se segue ao lado da ¿gura. O
arco pontilhado ligando o vértice 6 ao vértice 1 representa uma alternativa de modelagem no sentido de garantir que a rede
representada seja conservativa em Àuxo, ou seja, um modelo de um sistema fechado. Nesse caso, todos os vértices da rede
são vértices de passagem. Caso o arco pontilhado não existisse na rede da Figura 6.1, o vértice 1 seria um vértice fonte, o
vértice 6 um sumidouro e 1, 3, 4 e 5, vértices de passagem.

Arco i-j Limite Superior Limite Inferior


2 (0, 1, 10) 3
(0, 3, 8) (1, 1, 5)
l ij ≤ x ij ≤ Lij
Arco 1-2 1 (1, 2, 10)
6

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

Figura 6.1. Um exemplo de rede com Àuxo viável


Restrições de equilíbrio de Áuxo em cada vértice
Em uma rede tradicional, os vértices da rede, com exceção dos vértices fonte e sumidouro, são conservativos em relação ao
Àuxo, ou seja, o Àuxo que chega ao vértice é igual ao que deixa o vértice. Os pontos de oferta e demanda da rede, quando
são diferentes dos vértices fonte ou sumidouro, podem ser representados como pontos conservativos de Àuxo, desde que
associados arti¿cialmente a um vértice fonte (pontos de oferta) e a um vértice sumidouro (pontos de demanda). A equação
geral de equilíbrio de Àuxo é:

⎧Fluxo que chega⎫ ⎧Fluxo que sai⎫


⎨ ⎬=⎨ ⎬
⎩ ao vértice i ⎭ ⎩ do vértice i ⎭
Fluxos em Redes 317

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:

9Equilíbrio de Áuxo nos vértices

∑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

9Equilíbrio do vértice 1 (arco 6-1 é o arco artiÀcial de equilíbrio)

x 61 − x12 − x14 = 0, e assim sucessivamente para todos os vértices.

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

Maximizar x12 + x14

9Fluxo de custo mínimo

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

Características da matriz de restrições de uma rede


A matriz das restrições de Àuxo possui uma con¿guração bastante peculiar, como é possível observar na Figura 6.2.
318 Programação Linear e Fluxos em Redes

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.

Formulação geral de Áuxo em rede


Em certos casos é necessário considerar o equilíbrio de Àuxo associado a um vetor de oferta ou de demanda atuando sobre
os vértices da rede. A formulação em redes decorrente dessa situação não deve ser obrigatoriamente realizada pela con-
sideração explícita de um vértice fonte e um vértice sumidouro. Tampouco é indispensável a existência de arcos arti¿ciais
ligando os vértices de oferta a uma fonte e os de demanda a um sumidouro. De fato, a essência da modelagem por Àuxo em
rede não depende da uni¿cação das ofertas e demandas nos vértices fonte e sumidouro, respectivamente. Contudo, para
determinados ¿ns, essa forma de modelagem é mais e¿ciente. De modo geral, a equação de equilíbrio de Àuxo poderá ser
rescrita, para o caso geral, como:

⎧Fluxo que chega⎫ ⎧Fluxo produzido⎫ ⎧Fluxo que sai⎫ ⎧Fluxo consumido⎫
⎨ ⎬+⎨ ⎬=⎨ ⎬+⎨ ⎬
⎩ ao vértice ⎭ ⎩ no vértice ⎭ ⎩ do vértice ⎭ ⎩ no vértice ⎭

Denominando genericamente por di o balanço ¿nal entre o que Minimize z = ∑c x


( i , j ) ∈E
ij ij
é produzido e consumido dentro de cada vértice, xij, o Àuxo que
percorre um arco i-j, e cij, o custo de fazer Àuir uma unidade de Sujeito a:
Àuxo no arco i-j, então é possível reescrever a formulação geral
do problema de Àuxo em rede da seguinte forma: ∑x
( i , j ) ∈E
ij − ∑x
( k ,i ) ∈E
ki = d i i = 1,..., n

A escolha da formulação mais adequada será determinada pelas l ij ≤ x ij ≤ Lij ∀( i , j ) ∈ E


circunstâncias do problema e do algoritmo de solução adotado.
Fluxos em Redes 319

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

sário no arco (i,j), enquanto Lij de¿ne o máximo Sujeito a :


possível, pode-se formular o problema de Àuxo
de custo mínimo em uma rede com n = m + 2 ∑x
( i , j ) ∈E
ij − ∑x
( k ,i ) ∈E
ki = 0 i = 1,..., n
vértices, onde n representa o número de vértices
reais e 2 o número de vértices arti¿ciais da rede l ij ≤ x ij ≤ Lij ∀( i , j ) ∈ E
equilibrada, como ao lado.

9 Uma taxonomia para os problemas de Áuxos em rede

Os problemas em redes podem ser


classi¿cados, de modo geral, dentro da
seguinte hierarquia:

Figura 6.3. Taxonomia para problemas de Àuxos em rede

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

9 Formulação clássica do problema de transporte


m n

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

c ij Ł custo unitário pago pelo Àuxo ao atravessar o arco (i,j). 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

O modelo PTR pode ser reescrito segundo a forma-padrão como m

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:

x ij (vj − u i ) = 0 ∀ par ( i , j ) Implicando que se x ij > 0 então v j − u i = cij

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.

Figura 6.5. O Problema de transporte no formato de Àuxo em redes

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

o conjunto dos vértices de demanda, e por cij o custo do x fi = o i i ∈O


trânsito da unidade de Àuxo pelo arco i-j, tem-se:
x js = d j j ∈ D
x sf = ∑ d j =∑ o i
j ∈D i ∈O

x ij ≥ 0, ( i, j ) ∈ E
322 Programação Linear e Fluxos em Redes

9 Formulação do Problema de Transporte com restrições de igualdade

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

calizadas nos vértices e sem os arcos e vértices m

arti¿ciais da seguinte forma: ∑x


i =1
ij =dj j = 1,..., n

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

A formulação geral do problema pode ser desdobrada da seguinte forma:

Minimizar z = c11 x 11 + ... + c1n x 1n + c 21 x 21 + ... + c 2 n x 2 n + ... + c m1 x m1 + ... + c mn x mn


Sujeito a:
x 11 + ... + x 1n = o1
x 21 + ... + x 2 n = o2
... ... .... ...
+ x m1 + ... + x mn = om
x 11 + x 21 ... + x m1 = d1
.. .. ..
x 1n + x 2n ... . + x mn = dn

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

9Abordagem primal de solução

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 ⎥⎦

O que demonstra que B é uma matriz triangular. Como B é uma


x1C x 2C x1A x1B x a
matriz triangular, existe uma certa permutação de B que solucio-
⎡1 0 1 1 0⎤ ⎡25⎤
na o sistema BxB = b apenas com substituições elementares de ⎢0 ⎥ ⎢25⎥
valores das variáveis. Pode-se exempli¿car o que se apresentou ⎢ 1 0 0 0⎥ ⎢ ⎥
analiticamente no exemplo numérico do problema de transporte. Bx B = ⎢0 [ ]
0 1 0 0⎥ x B = ⎢15 ⎥
⎢ ⎥ ⎢ ⎥
Pode-se obter uma base de A adicionando uma variável arti¿cial ⎢0 0 0 1 0⎥ ⎢15 ⎥
x a ao conjunto formado pelas variáveis x1C , x 2C , x1A , x1B . ⎢⎣1 ⎥
1 1 0 1⎦ ⎢⎣20⎥⎦
324 Programação Linear e Fluxos em Redes

Que poderá ser triangularizada em B i , reformulando-se o produto da seguinte forma:

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:

• Obtenção de uma solução inicial.


• Procedimento de melhoria da solução corrente.
• Regra de parada e de veri¿cação da viabilidade.

Seguindo os três pontos em questão:

Ponto 1: Obtenção da solução básica inicial

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.

x1A x1B x1C x1A x1B x1C

x2A x2B x2C x2A x2B x2C


Figura 6.8. Ciclo {x1B, x1C, x2C, x2B } e {x1A, x1B, x2B, x2A }

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.

x1A x1B x1C x1A x1B x1C

x2A x2B x2C x2A x2B x2C


Figura 6.9. Exemplos de bases para o problema de transporte

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:

9Método do Canto Noroeste.

1. Inicie pela célula (1,1) do quadro de transporte.


~ ~ ~
2. Faça: x11 = min{ o~1,d1 } e substitua o~1 por o~1− x11 e d1 por d1 − x11.
~ ~
2.1. Se o~1> d1 vá para a célula (1,2) e Faça: x12 = min { o~1,d 2 } e substitua o~1 por o~1− x12 e o~2 por o~2 − x12.
~ ~ ~ ~
2.2. Se o~1< d1 vá para a célula (2,1) e Faça: x21 = min { o~2 ,d1 } e substitua o~2 por o~2 − x 21 e d1 por d1 − x 21.
~
2.3. Se o~1= d1 (degeneração) Faça x11 = 0 e vá para (2.2) ou (2.3)

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

Figura 6.10. Quadro do problema de transporte derivado do exemplo numérico

Aplicando-se as regras do método do Canto Noroeste:

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

Que representa a base inicial da Figura 6.11.

2 5 3
15 10 x1C 25
7 4 1
x2A 5 20 25
15 15 20

Figura 6.11. Base inicial obtida pelo método do Canto Noroeste

9Método de Vogel para obtenção de uma solução inicial

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

Ponto 2: Procedimento de melhoria da solução básica corrente


Sabe-se que o método Simplex calcula a contribuição gerada pela entrada na base de cada variável não básica, escolhendo
a variável de maior contribuição para ingressar na base. O cálculo dessa contribuição é obtido através do valor dos “custos
reduzidos”, ou z j − c j para j ∈ J , que são expressos, no caso geral do problema de programação linear, pela já conhecida
relação:

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

z ij − c ij = (cuj − cus + cls − clk + c ik ) − c ij

O cálculo dos termos em z ij − c ij é facilmente justi¿cado,


uma vez que a entrada na base de uma variável, no
contexto do quadro, implica a substituição de variáveis que
têm valor não nulo na linha e na coluna da variável que 2 5 3
entra. A expressão z ij − c ij pode agora ser calculada ape- x1A x1B x1C
nas através do “balanço” contábil. Observa-se que a inde- 7 4 1
pendência linear se caracteriza pelas atribuições (+) e (-). x2A x2B x2C
Variáveis com entradas (-) são linearmente independentes
Figura 6.12. Base para o cálculo dos z ij − c ij
da variável que está sendo examinada. Para exempli¿car o
ponto serão calculados os termos em z ij − c ij do quadro da
Figura 6.12.
330 Programação Linear e Fluxos em Redes

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:

(') = mínimo entre { x2A e x1B }.

Ponto 3: Regra de parada


A regra de parada será dada por zij − cij ≤ 0, ∀i , j do quadro.

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

x1A x1B x1C x2A x2B x2C xa


-120 0 0 -1 -6 0 0 0
x1A 15 1 0 0 1 0 0 0
x1B 10 0 1 1 -1 0 0 0
x2B 5 0 0 -1 1 1 0 0
x2C 20 0 0 1 0 0 1 0
xa 0 0 0 0 0 0 0 1
Fluxos em Redes 331

9 Abordagem utilizando a variável dual


O método de resolução do problema de transporte é também denominado método do ciclo. De posse do quadro inicial
obtido, por exemplo, pelo m do Canto Noroeste, o método calcula os z ij − c ij associados às células não básicas e efetua a
melhoria com a entrada de nova variável (célula ativa). O valor da variável que entra é imediatamente calculado em função
da substituição da variável que sai e a distribuição do quadro atualizada.
É possível, contudo, um outro caminho para o cálculo dos z ij − c ij, da seguinte forma:

zij − cij = c B B −1aij − cij = c B yij − cij

O elemento yij é determinado através da construção de um ciclo pela ocupação da célula i-j, porém sabendo que:

zij − cij = waij − cij

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:

w = (u1 ,..., um , v1 ,..., vn )

Como aij possui um 1 na i-ésima e (m + j)-ésima posições, então w aij = ui + vj . Logo:

zij − cij = ui + vj − cij

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:

(u1 ,..., u m , v 1 ,..., v n )(a pq ,..., a st , e m + n ) = (c pq ,..., a st ,0)

é equivalente (uma vez que aij = ei + em+j)

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

Para a célula (2,C) u2 + v C = 1 ⇒ u2 = 1


Para a célula (2,A) u2 + v A = 7 ⇒ v A = 6
Para a célula (1,A) u1 + v A = 2 ⇒ u1 = − 4
Para a célula (1,B) u1 + v B = 5 ⇒ v B = 9

Com os valores duais podemos calcular os z ij − c ij:

z2A − c2A = u2 + v A − c2A = 1 + 6 − 7 = 0 ( variável básica)


z 2B − c 2B = u 2 + v B − c 2B = 1 + 9 − 4 = + 6
z1C − c1C = u1 + v C − c1C = − 4 − 0 − 3 = − 7

A solução do exemplo numérico


Tanto no exemplo desenvolvido para esclarecer a aplicação do método do Canto Noroeste quanto no exemplo do método de
Vogel a solução ótima foi alcançada. Supondo-se que a base inicial escolhida fosse outra:

• 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

• Procedimento de melhoria da solução corrente.


De posse da base inicial pode-se obter x B e os z ij − c ij (através do procedimento primal, por exemplo). Nesse caso:

z1A − c1A = + 5 − 4 + 7 − 2 = + 6
z 2C − c 2C = + 4 − 5 + 3 − 1 = + 1

• Regra de parada e de veri¿cação da viabilidade.


Como existe z ij − c ij ! 0, a base não é ótima, e x1A deve entrar na base. A variável que deve sair, dentre as que formam
conjuntos L.D. com x1A , é aquela que possui menor valor de atribuição, ou seja, '= min {15, 5}; ' = 5 implica a retirada da
variável x1B. O quadro evolui para:
Fluxos em Redes 333

2 5 3
5 x1B 20 25
7 4 1
10 15 x2C 25
15 15 20

• Procedimento de melhoria da solução corrente.


Nesse caso:

z1B − c1B = + 4 − 7 + 2 − 5 = − 6
z 2C − c 2C = + 7 − 2 + 3 − 1 = + 7

• Regra de parada e de veri¿cação da viabilidade;


Como existe z ij − c ij ≥ 0 , a base não é ótima, e x2C deve entrar na base pois é a variável que possui menor valor de atri-
buição, ou seja, ' = min{10, 20}; ' = 10 implica a retirada da variável x2A. O quadro evolui para:

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

• Regra de parada e de veri¿cação da viabilidade.


Como existe z ij − c ij ! 0, a base não é ótima, e x1B deve entrar na base. A variável que deve sair, dentre as que formam
conjuntos L.D. com x1B, é aquela que possui menor valor de atribuição, ou seja, ' = min{10, 15}; ' = 10 implica a retirada
da variável x1C. O quadro evolui para:

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 O Problema de Designação (alocação ou atribuição)


Um dos casos mais importantes do problema de trans-
porte se con¿gura quando as ofertas e demandas são
unitárias. Esse caso particular alcança a denominação de
Problema de Designação.
n n
Minimizar z = ∑∑ c ij x ij
i =1 j =1
O Problema de Designação pode ser entendido como o Sujeito a:
problema de alocar n células de produção a n tarefas. n
Cada uma das células é capaz de atender à tarefa se-
gundo um custo cij peculiar a cada uma das n células. A
∑x j =1
ij =1 i = 1,..., n

variável binária xij = 1 signi¿ca que a célula i recebeu a n

tarefa j como designação no esquema de trabalho, e 0, ∑x ij =1 j = 1,..., n


caso contrário. i =1

x ij ≥ 0 i = 1,..., n; j = 1,..., n

O problema de otimizar a alocação das células de pro-


dução às tarefas pode ser formulado como sugerido pelo
modelo ao lado:

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

ui, vj irrestritas i, j

Pelo teorema das folgas complementares sabe-se que, no ótimo: (c ij − u i − vj ) x ij = 0, 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:

u~i = mínimo {cij } i = 1,..., n


1≤ j ≤ n

v~j = mínimo {cij − u~i } j = 1,..., n


1≤ i ≤ n
Fluxos em Redes 335

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

1 2 3 4 Valor Mínimo na Linha


1 1 3 4 5 1
2 4 2 4 7 2
3 6 7 8 3 3
4 5 4 2 1 1
Figura 6.15. Valores mínimos nas linhas

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

Figura 6.16. Quadro resultante da primeira subtração

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

Figura 6.18. Alocações possíveis utilizando as posições dos termos nulos


Fluxos em Redes 337

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 Valor Mínimo na Linha


1 3 4 4 2 2
2 7 3 5 1 1
3 4 6 2 5 2
4 1 2 1 1 1
Figura 6.19. Valores mínimos por linha

Que, quando subtraídos, conduzem ao quadro da Figura 6.20.

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

Figura 6.20. Valores mínimos por 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

Figura 6.21. Matriz reduzida do exemplo numérico


338 Programação Linear e Fluxos em Redes

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:

c0 = mínimo {c~ij } > 0


i ∈S r
j ∈Sc

É 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 O Problema de Designação e o 1-Matching Ponderado


O problema de 1-Matching Ponderado é o pro-
blema de obter, em um grafo G, um conjunto n n
maximal independente de arestas a custo míni- (1_Mat) Minimizar z = ∑∑ c ij x ij
mo, como foi apresentado no Capítulo 5. Seja i =1 j =1
G = (N, M), N = {1, ..., 2n}, um grafo bipartido Sujeito a:
em dois conjuntos de nós com n componentes n
cada. Nesse caso, o problema pode ser formu-
lado como ao lado, onde:
∑x
j =1
ij =1 i = 1,..., n

∑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

cij { custo da aresta (i, j) ser escolhida para inte-


grar a solução.

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

Figura 6.26. Fluxo viável

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

A rotulação do quadro da Figura 6.30 leva ao quadro da Figura 6.31.

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

Figura 6.31. Quadro de cálculo após a primeira rotulação

Que corresponde ainda a um Àuxo inviável, como é visível na Figura 6.32.

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

Prosseguindo a aplicação do algoritmo, obtém-se a segunda rotulação, constante da Figura 6.33.

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

x O problema do caminho mais curto s-t em modelo de redes


Esse problema, quando os comprimentos das arestas 4
2 t 1
ou arcos de um grafo são considerados custos, pode
2
ser visto como um caso do transbordo não capacitado, 2 3 1
como mostra a Figura 6.36. 1 1 3
1 s 5
1

1
O problema de transbordo é um problema de Àuxo em 4 1

um grafo G = (V, E), onde cada vértice produz ou con-


some o produto. Figura 6.36. Caminho mais curto em modelo de redes
344 Programação Linear e Fluxos em Redes

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

Em uma rede com n vértices, onde s é


o vértice sumidouro e t o vértice fonte, Sujeito a:
a formulação matemática do problema ⎧ + 1 se i = s ( vértice fonte)
n
⎪ n
pode ser resumida da seguinte forma, ∑ x ij −∑ x ki = ⎨ 0 demais casos
como apresentado no Capítulo 5. j =1 k =1 ⎪− 1 se i = t ( vértice sumidouro)

x ij ≥ 0 ∀( i , j ) ∈ E

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

Figura 6.38. Grafo Questionário

A expressão a seguir resume o custo esperado de um processo exitoso: C = p 4 c + p 5 r + p6 w + p7 e + p8 s .

x Formulação de Áuxo em rede para a AGM


Como observado no Capítulo 5, as formulações clássicas para a programação linear para o problema da árvore geradora
mínima podem resultar em um número proibitivamente grande de restrições. O modelo a seguir, baseado em Àuxo de redes,
possui um número polinomial de variáveis e restrições, R = (N, A, F).
Supondo-se uma rede R = (V, E, F), derivada do grafo G = (V, E) com V = {1, ..., n + 1}, como o conjunto dos vértices,
e E = {1, .., m), o conjunto das arestas, atravessado pelo Àuxo F, F = {1, ..., m} Àuxo nos m arestas. Supondo-se que o
vértice 0 (zero) seja a raiz da árvore que possui n arestas, por ser geradora. Supondo-se também uma matriz quadrada
C, de ordem n + 1, simétrica, cujo elemento cij se refere ao custo da aresta (i, j) e cuja diagonal cii = 0, contabilizando-se
cij = f quando não existe a aresta (i, j) na rede R. Considera-se as variáveis binárias xij para i = 1,...,n - 1 e j = i + 1, ...,
n, tais que xij = 1, caso a aresta (i, j)  E seja incluída na solução e 0, caso contrário. Considera-se também as variáveis
de Àuxo dirigido fij, para i = 1, ..., n e j = 1, ..., n com i z j que especi¿ca um Àuxo monoproduto (single commodity) entre
os vértices i e j da rede.
346 Programação Linear e Fluxos em Redes

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

x Formulação por Áuxo em redes para a AGM capacitada


Considerando-se que a variável qi representa a demanda do vértice i da rede e wij a capacidade a ser instalada na aresta (i, j).
Observe-se que cada aresta (i, j) é representada por um par ordenado, de forma que o índice i é necessariamente menor
que o índice j. Por outro lado, o modelo não impede de que o fluxo siga no sentido de i para j (fij ! 0) ou no sentido
inverso fij ! 0, todavia proibindo-se o Àuxo em ambas as direções. Os Àuxos são direcionados, enquanto a árvore geradora
é de¿nida em um grafo não direcionado.

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

foj ≤ woj xoj ∀(0, j ) ∈ E


f ij ≤ wij xij ∀( i , j ) ∈ E
fji ≤ w ij x ij ∀( i , j ) ∈ E
x ij ∈ {0,1} ∀( i , j ) ∈ E
f ij ≥ 0 ∀ par i = 0,...,n e j = 1,...,n
Fluxos em Redes 347

x Problema de Localização Capacitado


Uma extensão em dois estágios do Problema de Transportes é o Problema de Localização Capacitado. Na verdade, esse
problema une os dois anteriores ao modelar a possibilidade de um Problema de Transporte ser desenvolvido com um con-
junto de nós intermediários entre os pontos de oferta e demanda. A Figura 6.39 descreve esse problema de fazer o Àuxo dos
pontos de oferta (pontos o) chegarem aos pontos de demanda (pontos d) passando por pontos intermediários de “transbor-
do” ou de “armazenagem”.

Vértices de oferta Armazéns Vértices de demanda


(índices i) (índice k) (índices j)
O1 d1
a1
O2 d2
.
. . .
. . .
. as .

Om dn

M = {1,..,m} S = {1,..,s} N = {1,..,n}

Figura 6.39. A rede do problema de localização não capacitado

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.

Podemos formular o problema de localização capacitado (PLC):


348 Programação Linear e Fluxos em Redes

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.

9 Problema de transbordo em rede capacitada com custos no transbordo


Nesse caso é possível reescrever (PCDC) utilizando a rede alternativa da Figura 6.40, que facilita a incorporação desses
tipos de restrições.

Vértices de oferta Armazéns Vértices de demanda


(índices i) (índice k) (índices j)
O1 xik ykj d1
Pk
a1 a´1
O2 d2
. .
. . Armazéns . .
. . . .
. as a´s .

Om dn

M = {1,..,m} S = {1,..,s} N = {1,..,n}

Figura 6.40. Rede para o Problema Multiestágio Capacitado


Fluxos em Redes 349

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.

É possível escrever o problema multiestágio de localização capacitado (PMLC) da seguinte forma:

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.

9 O Problema de multiÁuxo a mínimo custo

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

9 O problema de localização de centros de distribuição de diversos produtos


Seja uma rede R = (V, E, F), com n vértices e m arcos, onde i diferentes produtos transitam, e deseja-se a localização de
centros de distribuição com os seguintes índices e variáveis:

i { o índice dos produtos.


j { o índice dos vértices de produção (regiões de produção).
Fluxos em Redes 351

k { o índice dos vértices passíveis da localização de um depósito (cidades).


l { o índice dos vértices de demanda (regiões de consumo).
sij { oferta da produto i no vértice de produção j.
dij { demanda da produto i no vértice de consumo l.
k
v k e v { capacidade mínima e máxima de utilização de um depósito localizado no vértice k.
fk { custo ¿xo de instalação de um depósito no vértice k.
c ijkl { custo unitário de distribuir o produto i, a partir de um vértice de produção j, através do depósito k para o
vértice de demanda l.
xijkl { quantidade do produto i, transportado a partir do vértice de produção j, através do entreposto localizado no
vértice k para o vértice de consumo l.
yik { variável 0 -1 igual a 1, se o depósito k serve ao vértice de demanda l, e 0, caso contrário.
zk { variável 0 -1 igual a 1, se existe um depósito ativado no vértice k, e 0, caso contrário
iikl { preço ¿nal do produto i na região de consumo l quando a distribuição é realizada através do depósito
localizado na cidade k
uij { preço do produto i no vértice de produção j.

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:

(MMCF) Minimizar z = ∑ cijkl xijkl + ∑ f k z k


ijkl k

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

Xijkl ≥ 0; ykl ∈ {0,1}; zk ∈ {0,1}; ∀i,j,k,l


352 Programação Linear e Fluxos em Redes

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:

ˆ Problema da circulação viável.


ˆ Problema de Àuxo máximo.
ˆ Problema de Àuxo de custo mínimo.

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.

ƕ O problema da circulação viável

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

Figura 6.41. Transformação dos vértices de oferta e demanda em vértices de passagem

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.

Passo 2: (Regra de Parada)


• Se d(f) = 0, então f é uma circulação viável. Fim
Caso contrário, selecione um arco ( x , y ) ∈ E , tal que d ( x , y ) > 0 e vá para o passo 3.

Passo 3: (Regra de Rotulação)


• Se f ( x , y ) > L( x , y ) , então, partindo do vértice i, alcançar o vértice y, rotulando os vértices pelo seguinte processo:
[ ]
ƒ Iniciar rotulando vértice i com j − ,ξ ( x ) = f ( x , y ) − L( x , y ) . A seguir, selecione um vértice rotulado ainda não
examinado i, e rotular os vértices não rotulados j utilizando as seguintes regras:
Fluxos em Redes 355

Ƈ Se ( i , j ) é um arco com f ( i , j ) < L( i , j ) , rotular j com:

[i , ξ ( j ) = min {ξ (i ),L(i , j ) − f (i , j )}]


+

Ƈ Se ( i , j ) é um arco com f ( i , j ) > l ( i , j ) , rotular j com:

[i , ξ ( j ) = min{ξ (i ), f (i , j ) − l (i , j )}]

Continuar a rotulação até que uma das situações ocorra:

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

• Se f ( x , y ) < l ( x , y ) , então rotular o vértice y com:

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

• Continuar a rotulação até que uma das seguintes condições ocorra:


ƒ Se o vértice x for rotulado e portanto um ciclo de y para x for encontrado, modi¿car o Àuxo somando ξ (x ) ao Àuxo
em arcos reversos e subtraindo ξ (x ) em arcos diretos deste ciclo e, ¿nalmente, somar ξ (x ) a f ( x , y ) . Voltar
ao passo 2.
ƒ Se o vértice x não for rotulado, não existe circulação viável. Pare.

9Exemplo numérico de aplicação do algoritmo de circulação

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

Figura 6.43. Viabilização de Àuxo na rede

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

x O problema de Áuxo máximo

O problema de Àuxo máximo corresponde a for-


çar, por uma rede sujeita a limites nos arcos, o
maior Àuxo possível. A Figura 6.44 exempli¿ca 1 [1,7] 4
o problema, onde os parênteses expressam os
valores mínimo e máximo para o Àuxo em cada [5,10] [0,10] [1,12]
arco.
? ?
s [1,8] 2 [0,9] 5 [0,13] t
[0,7]
Criando a base necessária ao entendimento
[0,15] [2,8]
dos algoritmos de Àuxo máximo que serão apre- [1,6]
sentados no presente texto, cumpre abordar os 3 [0,7] 6
aspectos teóricos e de nomenclatura para o
problema, conforme a seguir: Figura 6.44. Fluxo máximo desconhecido
Fluxos em Redes 357

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

Pelo teorema da circulação, a existência de um


Àuxo implica:
1
L( X , X ) ≥ l ( X , X ) ∀X , X ⊆V Figura 6.45. Um corte s-t
Onde conclui-se l ( X , X ) e L( X , X ) representam os limites inferior e superior do Àuxo total entre o conjunto de nós X e X .
Nesse caso, concluí-se que:

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

Caminho de aumento de Áuxo


É um caminho em Gf que liga diretamente s a t. Notar que se existir um caminho ligando s a t em Gf é porque existe um
~
caminho em G que, em relação ao Àuxo corrente, possui uma folga que pode ser calculada por ξ = mínimo {ξ , ξ } . A con-
servação dos Àuxos nos vértices não será afetada se o Àuxo nos arcos diretos for acrescido de ξ e for subtraído ξ do Àuxo
nos arcos reversos do caminho de aumento de Àuxo. A Figura 6.46 exempli¿ca, genericamente, um aumento de Àuxo em um
caminho entre s e t.

f 0 +ξ +ξ +ξ f 0 +ξ
s 1 3 t


2

Figura 6.46. Aumento de Fluxo

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.

9Algoritmo Ford-Fulkerson – utilizando caminhos diretos em Gf


Qualquer caminho existente no grafo de aumento de fluxo que ligue s a t pode ser utilizado para incrementar o fluxo
total de s para t no valor da menor folga existente nesse caminho. Um fluxo que circule entre s e t com o valor da
menor folga do caminho é chamado fluxo aumentante. A seguir será exemplificado o processo de obtenção de uma
sequência de fluxos aumentantes no grafo Gf da Figura 6.47. A Figura 6.48 apresenta o grafo de aumento de fluxos
da rede da Figura 6.47.

[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

ALGORITMO DE FORD-FULKERSON (FLUXO MÁXIMO)

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.

Teorema (Edmonds e Karp)


Se cada aumento de Áuxo é efetuado em um caminho se s para t de mínimo número de arcos, então
um Áuxo máximo é obtido após, no máximo, mn/2 < (n3-n2)/2 aumentos de Áuxo (Lawler, 1976).

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.

Teorema do Aumento de Fluxo


Para qualquer rede s-t existe uma sequência de aumentos de Áuxo a partir dos quais é possível obter
o Á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).

9 Algoritmo de Malhotra, Pramodh-Kamar e Maheshwari (MPM) – 1978


O raciocínio de forçar o Àuxo através dos arcos via caminhos que liguem s e t pode ser estendido aos vértices. De¿nido como
potencial de Àuxo de um vértice como o maior Àuxo capaz de ser forçado através desse vértice, em qualquer caminho que
ligue s a t o máximo de Àuxo passível de ser induzido será o referente ao vértice de menor potencial do caminho. Denomi-
nando *+(p) os sucessores do vértice p e *-(p) os antecessores de p, a Figura 6.51 mostra como o potencial de um vértice
p limita o Àuxo que o atravessa.

Γ − (p) Γ + (p)

s p t

Figura 6.51. Limitação de Àuxo gerada por um vértice da rede

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

Calcular o potencial p(j)


∀ j∈N
dos vértices vj ,∀

Escolher o vértice de referência com índice k


k = {j | p( j ) é mínimo ∀j ∈ N }
Escolher o vértice de referência

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?

Figura 6.52. Fluxograma do Algoritmo MPM

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

Figura 6.53. Rede exemplo


364 Programação Linear e Fluxos em Redes

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

O vértice de referência é 2, com potencial p(2) = 3.

Passo 2: Fluxo forçado

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)

é sempre viável, pois está limitada pelo valor do (2)


(2)
menor gargalo na rede.
Destaque-se que a capacidade do arco (2, 6) é 3 6
esgotada antes de circular Àuxo em (2,5). O Àuxo Figura 6.54. Fluxo forçado pelo vértice 2
s - t passa a ser de 3 unidades.

Passo 3: Eliminações, atualizações e regra de 1 [0,3] 4 [0,5] 7


parada [0,7] [0,3]
[0,4] [0,8]
[0,3
O arco (s, 2) é saturado e o vértice 2 ¿ca sem s 5 [0,2] t
antecessores, sendo eliminado juntamente com
os arcos nele incidentes. O vértice s ainda se liga [0,4] [0,3]
com t. A Figura 6.55 exibe a rede residual após a [0,6]

atualização, comprovando que existem ligações, 3 [0,3] 6


através da rede, entre s e t.
Figura 6.55. Primeira 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 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

Fluir 3 unidades de Àuxo passando pelo vértice 6 e (3) s 5 t (3)

esgotando os arcos que geraram o valor de poten- (3) (3)


cial gargalo (arcos de entrada).
(3)
3 6
O Àuxo entre s e t passa a ser 6. Figura 6.56. Fluxo forçado pelo vértice 6

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

Os arcos (3, 6) e (6, t) são esgotados, sendo elimi- s 5 [0,2] t


nados junto com o vértice 6. O vértice s ainda se
liga com t. [0,1]
[0,6]

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

O vértice de referência é 3, com potencial p(3) = 1.


366 Programação Linear e Fluxos em Redes

Passo 2: Fluxo forçado


1 4 7

Fluir 1 unidade de Àuxo passando pelo vértice


3 e esgotando os arcos que geraram o valor de (1) s 5
(1)
t (1)
potencial gargalo (arcos de entrada).
(1)
(1)

O Àuxo entre s e t passa a ser 7. 3

Figura 6.58. Fluxo forçado pelo vértice 3

Passo 3: Eliminações, atualizações


e regra de parada 1 [0,3] 4 [0,5] 7
[0,7] [0,3]
[0,4] [0,8]
O arco (s, 3) é esgotado e o vértice [0,3
3 ¿ca sem antecessores, sendo re-
s 5 [0,1] t
movido juntamente com o arco (3, 5)
nele incidente. O vértice s ainda se Figura 6.59. Terceira atualização dos arcos e capacidades
liga ao vértice t.

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

O vértice de referência é 4, com potencial p(4) = 3.

Passo 2: Fluxo forçado

(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 3: Eliminações, atualizações e re-


gra de parada 1 7
[0,7]
[0,1] [0,8]
Os arcos (1, 4) e (4, t) são esgotados e
[0,3
o vértice 4 ¿ca sem antecessores, sendo
removido juntamente com o arco (4, 7) s 5 [0,1] t
nele incidente. O vértice s ainda se liga
com o vértice t. Figura 6.61. Quarta 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) 1 1 0 0 0 4 0 3 9

O vértice de referência é 1, com potencial p(1) = 1.

Passo 2: Fluxo forçado

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

Passo 3: Eliminações, atualizações e


regra de parada
7

O arco (s, 1) é esgotado e o vértice 1 [0,8]


¿ca sem antecessores, sendo removi- [0,3
do juntamente com o arco (1, 5) nele s t
5 [0,1]
incidente. O vértice s não mais se liga
com t. Regra de parada. Figura 6.63. Quinta atualização dos arcos e capacidades

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

9 Evolução dos algoritmos de Áuxo máximo


A Tabela 6.1 resume a relação evolutiva dos algoritmos de Àuxo máximo. U representa a capacidade máxima de um arco.

TABELA 6.1. Evolução dos algoritmos para Àuxo máximo

TRABALHO TÉCNICA UTILIZADA COMPLEXIDADE

Dantzig (1951) SIMPLEX O(n2mU)

Ford & Fulkerson (1956) Caminhos de aumento de Àuxo O(mnU)

Dinitz (1970) Fluxo forçado em uma rede em camadas O(nm2) e O(mn2)

Edmonds & Karp (1972) Caminhos de aumento de Àuxo O(nm2) e O(m2logU)

Dinitz (1973); Gabow (1985) Técnicas de escala e redução de resíduos O(mnlogU)

Karzanov (1974) Fluxo forçado em uma rede em camadas O(n3)


Cherkassky (1977) (apud Goldberg
Fluxo forçado em uma rede com procedimentos de rerrotulação
1998) O (n 2 m )

Malhotra et al. (1978) MPM – Fluxo forçado em uma rede em camadas O(n3)

Galil & Naamad (1980) Path compression O(|m| |n|Iog2n)

Shiloach & Vishkin (1982) Programação paralela com n processadores O(n2log(n))

Sleator & Tarjan (1983) Estrutura de dados dinâmica O(mnlogn)

Goldberg & Tarjan (1986) Push-Relabel Method O(mnlog(n2/m)

Goldberg & Tarjan (1987);(1988) 1. Highest Label 2. FIFO Algorithm 3. Lowest Label 1.O(n2m1;2) 2. O(n3) 3. nO(n2m)

Plotkin & Tardos (1989) Simplex especializado O(n2logm) pivôs

Ahuja & Orlin (1989) Simplex Original Excess-scaling O(mn+n2logU)

⎛ n ⎞
Ahuja et al. (1989) Dynamic Trees and Scaling Factor O (mn log ⎜ 2 + logU ⎟
⎝ m ⎠

Cheriyan & Hagerup (1989) Algoritmo Aleatorizado E(nm+n2log2n)

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 ⎠

Alon (1990) Permutações Pseudo Aleatórias O(mn+n8/3logn)


Stack-scaling ⎛ n ⎞
O (mn log ⎜ 2 + logU ⎟
⎝ m ⎠
Ahuja et al. (1991)
O (mn + n 2 logU )
Wave-scaling
Fluxos em Redes 369

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

Goldfarb & Chen (1997) Dual network simplex. O(n2m)

Hochbaum (2008) PseudoÀuxos. O(mnlogn)


Scaling phases similar a Goldberg-Rao (1997) e operações de
Orlin (2012) O(nm) ou O(n2 / logn) se m=O(n)
bottleneck.

x O Problema de Fluxo a Custo Mínimo (PFCM)


O caso corresponde à necessidade de circular um Àuxo em uma rede s - t, pagando o mínimo possível pelo tráfego. Nor-
malmente, o Àuxo a transitar é conhecido e existem restrições de capacidade para o máximo e mínimo Àuxo admissível nos
arcos, bem como um valor associado ao trânsito em cada arco por unidade de Àuxo (cij) [limite inferior, custo do Àuxo, limite
superior]. A Figura 6.64 exempli¿ca uma típica formulação:

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

Figura 6.64. Exemplo da formulação de um problema de Àuxo a custo mínimo

9 O algoritmo Simplex para o (PFCM)

No presente capítulo, o algoritmo Simplex foi especia- 2 5


lizado para solucionar alguns problemas que também
podem ser solucionados por Àuxos em redes. As apli-
cações concentraram-se no problema de transporte,
designação e no 1-Matching. É possível, contudo, uti- 1 6
lizar o Simplex com especializações para a solução de
qualquer problema de Àuxo em rede (formulado pelo
modelo estrito). Seja a rede da Figura 6.65 que possui 3 4
a matriz de incidência vértice x arco representada na
Figura 6.66.
Figura 6.65. Rede exemplo para o (PFCM)
370 Programação Linear e Fluxos em Redes

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

Figura 6.69. Uma matriz básica (m x m) triangularizada

Que corresponde à árvore no grafo de substrato da rede do exemplo, representada na Figura 6.70.

2 5

1 6
(Artificial)

3 4

Figura 6.70. A árvore associada a uma base em A

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

• Obtenção de uma solução inicial.


• Procedimento de melhoria da solução corrente.
• Regra de parada e de veri¿cação da viabilidade.

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.

b1=3 b2=2 b3=-4


1 (c12=2) 2 (c23=3) 3
A Figura 6.72 representa o vetor de demanda
e oferta de Àuxo (o termo independente b da
formulação) sobre a própria rede. (c14=5) (c24=1) (c54=1) (c26=4) (c63=1)

A rede pode ser formulada através do modelo da 4 5 6


Figura 6.73. (c45=2) (c56=2)
b4=-2 b5=5 b6=-4

Figura 6.72. Oferta e demanda


Fluxos em Redes 373

Figura 6.73: Modelo em rede

Obtenção de uma solução para o sistema


Como é conhecido, toda árvore em uma rede R é uma solução básica do sistema de equações de equilíbrio de Àuxo. Toda
árvore que corresponde a um Àuxo viável é uma base viável. A árvore da Figura 6.74 corresponde à matriz triangularizada de
incidência vértice x arco da Figura 6.75, cuja solução é: x14 = 3; x45 = 1; x56 = 6; x63 = 2; x23 = 2 e xa = 0, que é uma circulação
viável, como observado na Figura 6.76, a um custo de 37 unidades.

b1=3 b2=2 b3=-4


Vértices Arcos
1 2 (c23=3) 3 x14 x45 x56 x63 x23 xa bi
(Artificial)
1 +1 3
4 -1 +1 -2
(c14=5) (c63=1)
5 -1 +1 5
6 -1 +1 -4
2 +1 2
4 5 6 3 -1 -1 +1 -4
(c45=2) (c56=2)
b4=-2 b5=5 b6=-4
Figura 6.74. Uma solução básica inicial Figura 6.75. Matriz de restrições triangularizada

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.

x12 ... x14 x45 x56 x63 x23 x1 x2 x3 x4 x5 x6 x7 bi


1 +1 ... +1 +1 3
4 ... -1 +1 +1 -2
5 ... -1 +1 -1 5
6 ... -1 +1 -1 -4
2 -1 ... +1 +1 2
3 ... -1 -1 -1 -4
7 0 0 0 0 0 0 0 -1 -1 +1 1+ -1 +1 1 0
Figura 6.77. Quadro da primeira fase para o exemplo numérico

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

Figura 6.78. Primeira fase do problema

Procedimento de melhoria da solução corrente

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:

Cálculo dos z ij − c ij baseado nas variáveis primais:


Nesse caso, o valor dos z ij − c ij poderá ser obtido diretamente do acréscimo do arco não básico. Quando a árvore formada
pelos arcos da base receber o acréscimo do novo arco deixará de ser um grafo sem ciclos. No ciclo formado, e conside-
rando-se como negativo o sentido do arco acrescentado à árvore, somam-se todos os custos de arcos de sentido contrário
Fluxos em Redes 375

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.

b1=3 b2=2 b3=-4


1 2 (c23=3) 3
(-)
(c14=5) (c26=4)
z 26 − c 26 = − 4 − 1 + 3 = − 2 como é possível acom- (c63=1)
panhar na Figura 6.79:

4 5 6
(c45=2) (c56=2)
b4=-2 b5=5 b6=-4
Figura 6.79. Cálculo de z 26 − c 26

b1=3 b2=2 b3=-4


1 (c12=2) 2 (c23=3) 3

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

Cálculo dos zij − cij baseado nas variáveis duais:

z ij − c ij = waij − c ij Por outro lado, é possível cal-


Sabe-se que: = w (ei − ej ) − c ij cular a variável dual w por sua wB = c B
= wi − wj − c ij de¿nição, ou seja:

Para o exemplo numérico


pode-se calcular z 26 − c 26 e z 26 − c 26 = w 2 − w 6 − c 26
z12 − c12 através das seguintes z12 − c12 = w 1 − w 2 − c12
equações:

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

x14=2 (-) Sentido x63=1


Negativo

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

Figura 6.83. Ciclo formado pela entrada de x24 na base


378 Programação Linear e Fluxos em Redes

6.4
Exercícios propostos

1 Consolidação dos Conceitos Básicos



Considere a rede de¿nida pela tabela 6.2:

TABELA 6.2. Dados do Exercício 1


# Vértice Oferta Demanda # Arco De Para Custo Unidade Fluxo Capacidade do Arco
1 12 1 1 1 1 0 4
2 10 0 2 1 3 3 3
3 5 0 3 2 5 1 8
4 1 11 4 2 4 6 8
5 0 3 5 3 4 5 10
6 3 5 4 12
7 5 4 1 15

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)

Figura 6.84. Rede de transporte da região de Angra dos Reis

3 Fluxo Máximo 2

s (1,4) 4 (0,4) 5 (0,8) 6

(3,8) (0,5) (2,3) (0,11) (0,9) (1,4)

1 (0,5) 3 (1,3) 8 (0,6) 7


A partir da rede da Figura 6.85, calcular o
maior Àuxo possível entre os vértices s e t (0,11) (0,5) (0,5) (2,3)

através do:
(1,3) (0,11)
(0,5) 9 10 (0,12) 11

1. Algoritmo de Ford-Fulkerson. (0,5)


(0,5)
2. Algoritmo MPM.
2 (0,5) 12

(0,3) (0,8) (0,8)

13 (2,8) t

Figura 6.85. Rede do exercício 3


380 Programação Linear e Fluxos em Redes

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.

TABELA 6.3. Dados do Exercício 4

# do Voo Origem Destino Saída Chegada Custo Normal US Reservas 9


São Paulo Goiânia 8h00 10h 120,00 120
Goiânia Salvador 11h00 13h40 120,00 70
501
Salvador Recife 15h50 17h00 100,00 80
Recife Natal 18h00 18h45 80,00 100
São Paulo Brasília 9h00 10h50 50,00 180
513 Brasília Fortaleza 11h45 15h00 180,00 20
Fortaleza Recife 15h50 16h20 100,00 25
Curitiba Manaus 6h50 10h20 320,00 180
581 Manaus Belém 10h50 12h00 100,00 20
Belém Fortaleza 12h50 14h20 100,00 35
Rio de Janeiro São Paulo 6h 07h50 80,00 160
São Paulo Maceió 8h30 11h 180,00 100
587
Maceió Recife 12h00 13h 80,00 120
Recife Natal 15h 15h45 80,00 10
Porto Alegre Curitiba 6h 7h30 100,00 100
590 Curitiba Brasília 10h 11h45 150,00 140
Brasília Recife 14h 16h30 150,00 120
592 Brasília Maceió 12h 14h30 100,00 180
593 Rio de Janeiro Brasília 9h 9h45 100,00 110
Rio de Janeiro Vitória 5h 6h 100,00 130
Vitória Salvador 8h30 9h45 80,00 20
594
Salvador Maceió 10h45 11h45 80,00 100
Maceió Natal 16h45 18h 100,00 50
595 Recife Natal 17h30 18h15 50,00 120
Fluxos em Redes 381

5 O Problema do Transporte da Produção de Soja

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

7 O Problema de Expansão de uma Rede de Comunicação

A rede representada na Figura 6.86 de¿ne o tráfego de


mensagens entre as estações 1 e 2 (lado esquerdo da
rede), e as estações 5, 6 e 7. O tráfego é realizado atra-
vés do chaveamento localizado nos vértices 3 e 4. A atual
rede possui uma certa capacidade tij de tráfego entre os
vértices i e j .

Um plano de expansão prevê a possibilidade de que a


capacidade dos arcos de comunicação seja ampliada e
que os nós de chaveamento possam também processar
um maior número de mensagens.

Figura 6.86. Rede de Comunicação

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.

8 Fluxo de Pessoas em Evacuação de Emergência

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

Figura 6.87. Planta da BigShow

150 150 600

Saídas
400 450 400 400
800 150 400 350

750 500 500 500 500 400 400

800 150 150 400 400 150 400


Saídas

600 600 600 800 600 600

550 550 700 700 550


Saída / Entrada

Figura 6.88. Esquema da capacidade de Àuxo

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

Figura 6.89. Esquema de distribuição de câmeras

10 O Esquema Especial do Metrô ao Término do Expediente de Trabalho

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

Figura 6.90. Rede de Metrô

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:

Explorar estratégias de dividir para conquistar, apresentando os métodos de decompo-


sição em programação linear.

Visualizar os métodos de decomposição como instrumentos de cálculo com descentra-


lização de informação.

Propiciar interpretações econômicas de mecanismos de coordenação pelos preços e


de coordenação pelas quotas.

Apresentar técnicas de transformação de problemas decomponíveis e de estratégias


de resolução.

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.

xMatrizes esparsas em formato bloco-angular

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.

Figura 7.1.Bloco A de Restrições de Acoplamento.

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

Figura 7.2. Estrutura bloco-angular dual.


Métodos de Decomposição 391

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.

xComputação sequencial ou distribuída

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

Informação parcial dos subsistemas

SUBPROBLEMA
1
SUBPROBLEMA
2
... SUBPROBLEMA
R

Figura 7.3. Descentralização de informação e decomposição.

xConvergência entre o critério social e o critério individual

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

xTécnicas de transformação e estratégias de resolução

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.

xAtividades e recursos das usinas

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

Figura 7.4. Entradas, saída e coe¿cientes da usina.


394 Programação Linear e Fluxos em Redes

xO papel da cooperativa e o problema global

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

Minimizar ∑in=1 (ci0 xi0 + ci1 xi1)

sujeito à restrição de acoplamento

∑in=1 (xi0 + xi1) > q


e a um conjunto de blocos de restrições independentes, um para cada usina i = 1, 2,...,n onde o bloco da usina i é dado por

ai xi1 < bi1


ti0 xi0 + ti1 xi1 < bi2
xi0 > 0 , xi1 > 0

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.

xUma instância do sistema com três usinas

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

Figura 7.5. Entradas, processos e saída de uma instância do sistema da cooperativa.

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

xDecomposição com coordenação pelos preços

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

xO subproblema primal da usina i ao preço p do açúcar

O resultado da dualização do problema global em relação à restrição de acoplamento é a separação do problema em


subproblemas independentes, um para cada usina i = 1, 2,...n, onde, para o parâmetro p dado, o problema primal de maxi-
mização do lucro hi(p) da usina i é dado por:

Maximizar (p ci0 ) xi0 + (p ci1 ) xi1

Sujeito a: ai xi1 < xi1


ti0 xi0 + ti1 xi1 < bi2

xi0 > 0 , xi1 > 0


Métodos de Decomposição 397

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

xO subproblema dual da usina i ao preço p do açúcar

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

xIntrodução de variáveis de acoplamento

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.

xDecomposição com coordenação pelas quotas

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

Quota Quota Quota

Preço Preço Preço

0, 3 0, 4 0, 4

Figura 7.10. Subproblemas das usinas e Àuxo de informação na coordenação pelos preços

xSolução ótima do exemplo da cooperativa

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.

TABELA 7.3.Valores da solução ótima do problema da cooperativa (preço p = 20 e quotas y1 = 5, y2 = 6, y3 = 4)


Métodos de Decomposição 401

7.4
Técnicas de Transformação de Problema Decomponível

xFontes de geração de problema mestre

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*

Figura 7.13. Linearização interna de um conjunto convexo

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

xIntrodução de variáveis de acoplamento

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

A operação de projeção se aplica a problemas de forma:

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

E os conjuntos X e Y implícitos em (7.1) são explicitados por, respectivamente:

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

Minimizar [ Minimo { f (x,y) Ňg(x,y) ” 0 } ] (7.2)


y‫ג‬Y x‫ג‬X

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:

V = {y Ň g (x, y) ” 0 para algum x e X} (7.3)

Assim, podemos reescrever (7.2) na forma

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

xFontes de geração de subproblemas

As estratégias de resolução de problemas manipulados constituem as fontes de geração de subproblemas em métodos


de decomposição. O livro já discutiu algumas estratégias de resolução de problemas via programação linear contínua. Por
exemplo, a ideia de relaxar a exigência de se trabalhar com números inteiros foi comum em alguns exemplos ou problemas
especí¿cos já estudados. Viu-se que a área de Àuxos em redes é rica em uma série de problemas em que a propriedade
de matriz unimodular permite essa abordagem. A facilidade de se trabalhar com programação linear contínua leva natural-
mente à ideia de relaxação da exigência de integralidade. Cabe aqui discutir, no contexto de problemas decomponíveis, os
conceitos de Direções Viáveis, Partição, Restrição e Relaxação. Numa visão intuitiva, esses conceitos estão associados,
respectivamente, às ideias de mudanças marginais nos parâmetros de coordenação, de particionamento do conjunto de
soluções, de abandono temporário de variáveis e de abandono temporário de equações.

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

Figura 7.16. A estratégia de resolução por partes (particionamento)

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

xRaízes multidisciplinares da relaxação Lagrangeana

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.

xLei da oferta e da procura

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

Figura 7.17. Hierarquia, informação descentralizada e teoria econômica.

xDualização em relação às restrições de acoplamento

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.

O problema dual consiste em:

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

Figura 7.18. A função dual d(p) é o contorno inferior de funções lineares

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

xRelaxação Lagrangeana e otimização por subgradientes

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

xA questão da diferenciabilidade da função dual

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:

Maximizar ( ) ∑ Minimo [ ] (7.7)’

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 ⎭⎪

garanta satisfação das restrições de acoplamento (7.6), isto é, y e Y, onde

Y {y yr b}
r

O problema a ser resolvido no nível superior é então

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

PL1 Minimizar [ dy + Mínimo {cx ŇAx • b – By} ]


y•0 x•0

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

PL2 Minimizar [ dy + Máximo { p ( b – B y) Ňp A ” c } ]


y•0 p•0

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

PL3 Minimizar [ dy + Máximo { p1 ( b – B y),…, pq (b – B y) } ]


y•0

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

A equivalência entre o PL original e o MESTRE-Benders é de que se ( y 0* , y * ) é otimo no problema MESTRE Benders,


então y * é tambem ótimo no PL, no sentido de que resolvendo o problema SUB Primal com y = y * resulta em um x *
tal que ( x * , y * ) é ótimo no PL original.
Como não se conhece a priori todos os pontos extremos do conjunto de soluções do subproblema dual, surge naturalmente
a relaxação das restrições como a estratégia de resolução do problema MESTRE Benders. Como pela dualidade fraca o
valor de uma solução viável do subproblema dual nunca é superior ao valor da função objetivo de qualquer solução primal,
a informação dos valores duais dos subproblemas gerados permite linearizar externamente a função v(y). A cada ciclo de
comunicação entre o problema mestre e o subproblema é gerado um novo ponto extremo de seu dual. Isso permite construir
o conjunto de soluções viáveis dos subproblemas duais à medida que o procedimento gera diferentes y no nível superior. Por
ser uma relaxação cada vez mais apertada, a solução de qualquer problema mestre resulta em um melhor limitante inferior
LI para o valor ótimo da função objetivo. Por outro lado, a coordenação sempre guarda a melhor solução viável obtida até o
momento, chamada de incumbente, para a qual se registra o melhor limitante superior LS para o problema. Quando LS –
LI d ɽ, onde ɽ é um valor su¿cientemente pequeno, o método para, tendo convergido para uma solução ótima do problema.
Quando a matriz original se apresenta na forma de uma estrutura bloco angular dual, tal como ilustrada na Figura 7.2,
assumindo que seja a partição A que se apresenta sob a forma de blocos independentes, então o processamento no nível
420 Programação Linear e Fluxos em Redes

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.

TABELA 7.4. Propriedades de descentralização nos procedimentos de coordenação pelos preços

Classes 1.1 Dualização/ 1.2 Linearização 1.3. Dualização


Questões Direções Viáveis Interna/Restrição Projeção/Partição

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.

Tabela 7.5. Propriedades de descentralização nos procedimentos de coordenação pelas quotas

Classes 2.2 Dualização,


2.3. Projeção, Linearização
2.1 Projeção/Direções Viáveis Linearização Interna/ 2.4 Projeção/Partição
Externa/Relaxação
Questões Restrição

Convexidade no nível inferior


a.1. Diferenciabilidade Linearidade Convexidade
(único a admitir indivisibilidade)

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

TABELA 7.6. Classi¿cação de referências pioneiras em coordenação pelos preços


Diversas Estratégias de Transformação/Resolução
1.0
Abadie e Williams 63; Balas 66; Malinvaud 67, procedimento para a tecnologia de Leontief-Samuelson; Jennergren 73.
Dualização/Direções Viáveis

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.

TABELA 7.7. Classi¿cação de referências pioneiras em coordenação pelas quotas


Diversas Estratégias de Transformação/Resolução
2.0
Kornal e Liptak 65; Kornal 75; Cremer 77.
Projeção/Direções Viáveis
2.1 Sanders 65; Heal 69, 71; Geoffrion 70b, sec. 4; Lasdon 70, chap. 9; Silverman 72; Grinold 72, secs. 4 e 5; Ermoliev e Ermo-
lieva 73; Shapiro 77; Luna 79b; Geromel e Luna 81.
Dualização, Linearização Interna/Restrição
2.2 Kate 72 (método de Dantzig-Wolfe no dual de um programa linear separável, modi¿cado pela introdução de variáveis de aco-
plamento em vez das restrições de acoplamento).
Projeção, Linearização Externa/Relaxação
2.3 Benders 62; Gomory e Hu 64. p. 351-354; Van Slype e Wets 69, sec. 2; Weltzman 70; Geofrion 70c, sec. 3, 72. Lasdon 70, sec.
7.3; Vegara-Carrio 72; Geoffrion e Graves 74. Manne 73; Armstrong e Willis 75; Luna 79a; França e Luna 82.
Projeção/Partição
2.4 Rosen 63; Rosen e Ornea 63; Beale 63; Gass 66; Varaya 66; Chandy 68; Grigoriadis e Walker 68; Geoffrion 70c, sec. 5; Lasdon
70, secs. 5.4 e 7.2.

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

1.1 MATRIZ – CONCEITOS ELEMENTARES

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

⎡a11 a12 ..... a 1n ⎤


⎢a a ..... a2 n ⎥⎥
Genericamente: A = [a ij ] = ⎢
21

⎢.. .. ...... .. ⎥
⎢ ⎥
⎣am1 am 2 ...... amn ⎦

1.2. MATRIZ – OPERAÇÕES ELEMENTARES

x Soma e subtração de matrizes


A condição para que duas matrizes sejam passíveis de operar em soma ou subtração é que possuam o mesmo número de
linhas e de colunas. O operador neutro na soma de matrizes é a matriz nula (ver matriz C). A soma ou subtração de matrizes
é efetuada operando-se elemento a elemento de cada matriz envolvida. Exemplo:

Somar as seguintes matrizes: D = A + B + C, onde:

⎡4 − 1 ⎤ ⎡1 1 ⎤ ⎡0 0⎤
A=⎢ ⎥ ,B=⎢ ⎥ ,C=⎢
⎣7 2 ⎦ ⎣2 − 1 ⎦ ⎣0 0 ⎥⎦

Nesse caso, D é obtida somando elemento a elemento as matrizes A, B e C (matriz nula).

⎡4 + 1 + 0 = 5 −1 +1 + 0 = 0 ⎤
D=⎢
⎣7 + 2 + 0 = 9 2 − 1 + 0 = 1 ⎥⎦

x Multiplicação por um número real


Dada uma matriz A e um número escalar (ou real) O, o produto OA é uma matriz em que todos os elementos de A foram
multiplicados pelo valor de O. Exemplo:

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

c12 = (a11 x b12) + (a12 x b22) = + 1 - 2 = -1

E assim por diante. No exemplo:

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

Asp Btv = Csv

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

Algumas propriedades da transposição:


1- (kA)t = k(A)t , para todo k um número escalar.
2- (A B)t = (B)t (A)t .
3- ( (A)t )t = A.
4- (A + B)t = (A)t+(B)t .

9 Diagonal principal e escalonamento

A diagonal formada pelo símbolo … é dita principal. A diagonal ⎡⊗ Bs ..... Bs ⎤


⎢Bi ⊗ ..... Bs ⎥⎥
principal divide a matriz na banda superior e na banda inferior. ⎢
A = [a ij ] =
Quando uma matriz apresenta a banda superior ou inferior ⎢.. .. ...... .. ⎥
composta por zeros e a diagonal principal unitária, diz-se que ⎢ ⎥
⎣Bi i ...... ⊗ ⎦
B
a matriz está escalonada à direita ou à esquerda.

⎡ 1 ??? ..... ???⎤


⎢0 1 ..... ???⎥
Exemplo de escalonamento à esquerda: A = [a ij ] = ⎢ ⎥
⎢.. .. ..... .. ⎥
⎢ ⎥
⎣0 0 ..... 1 ⎦

1.3. PARTICIONAMENTO DE MATRIZES

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:

⎡a11 a12 a13 a14 ⎤


⎢a a22 a23 a24 ⎥⎥ Pode ser particionada em quatro matrizes, ⎡A A12 ⎤
A=⎢ A = ⎢ 11
21

⎢a31 a32 a33 a34 ⎥ como exempli¿cado ao lado: ⎣ A21 A22 ⎥⎦


⎢ ⎥
⎣a 41 a 42 a 43 a 44 ⎦

⎡a11 a12 a13 a14 ⎤


⎢a a2 a23 a24 ⎥⎥
A=⎢
21
Pode ser particionada em quatro matrizes
Ou ainda: ⎢a31 a32 a33 a34 ⎥ colunas, como exempli¿cado ao lado: A = [ A11 A12 A13 A14 ]
⎢ ⎥
⎣a 41 a 42 a 43 a 44 ⎦
Anexos 435

1.4. EQUAÇÕES MATRICIAIS

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

a11 x1 + a12 x2 + .... + a 1n xn = b1


a21 x1 + a22 x2 + .... + a2n xn = b2
..................................................
am1 x1 + am2 x2 + .... + amn xn = bm

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

1.5. INVERSÃO DE MATRIZES

A inversa de uma matriz A, quadrada, denominada A-1, é a matriz que atende à seguinte condição:

Propriedade básica das matrizes inversas:

A A-1 = I = A-1A
As matrizes inversas possuem também as seguintes propriedades:

(A-1)-1 = A

(I-1)-1 = I

(k A)-1 = k-1 A-1

(A B)-1 = B-1 A-1

(A B C)-1 = C-1 B-1 A-1

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

Um determinante S, associado à matriz M, é o polinômio obtido da soma algébrica de todos os ter-


mos constituídos pelos produtos de n elementos do quadro, tomados de tal sorte que os primeiros
índices formem a permutação natural e os segundos as permutações possíveis, devendo-se ainda
atribuir a cada termo o sinal positivo ou negativo ao resultado conforme a permutação dos índices
seja de primeira ou segunda classe.

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:

• Aplicar estratégias baseadas na de¿nição da inversa de A.


• Utilizar a propriedade dos determinantes.
• Através de operações elementares.

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.

x Inversão de matrizes pelo Método das Operações Elementares

Seja a equação matricial:


Ax = b

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

Pelo mesmo raciocínio anterior:

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.6 PROPRIEDADE DA INVERSÃO DA MATRIZ AUMENTADA

⎡ 1 1⎤ ⎡2 ⎤
Seja a matriz A e o vetor b, conforme ao lado: A=⎢ ⎥ , b=⎢ ⎥
⎣− 1 0 ⎦ ⎣1 ⎦

Supondo que se deseja realizar a seguinte operação com as


A-1 b
matrizes A e b:

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:

• Agregação da matriz identidade

⎡ 1 1 2 ⎤ ⎡1 0 ⎤
A+ = ⎢ ⎥ I=⎢ ⎥
⎣− 1 0 1 ⎦ ⎣0 1 ⎦

• Operação de canonização da primeira coluna, somando a primeira linha à segunda:

⎡ 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 ⎦

Pode-se notar que:


⎡ 0 − 1 ⎤ ⎡2⎤ ⎡− 1⎤
A −1b = ⎢ ⎥x⎢ ⎥=⎢ ⎥
⎣ 1 1 ⎦ ⎣1 ⎦ ⎣ 3 ⎦

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

2.1. TIPOS DE SISTEMAS 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.

Um sistema linear da forma abaixo:

a11 x1 + a12 x2 + .... + a1n xn = 0


a21 x1 + a22 x2 + .... + a2n xn = 0
..................................................
an1 x1 + an2x2 + .... + ann xn = 0

é denominado homogêneo. Nesse caso:


Anexos 441

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.

Dado um sistema linear com m equações e n incógnitas, m<n da forma abaixo:

a11 x1 + a12 x2 + .... a1 m xm + a1 m+1 xm+1 +.....+ a1n xn = b1


a21 x1 + a22 x2 + .... a2 m xm + a2 m+1 xm+1 +.....+ a2n xn = b2
......................................................................................... (T01)
ap1 x1 + ap2 x2 + .... am m xm + am m+1 xm+1 +.....+ + amn xn = bn

Consideremos a matriz formada pelos coe¿cientes das incógnitas:

⎡a11 a12 .... a1m a1 m +1 .... a1n ⎤


⎢ ⎥
a21 a2 .... a2 m a2 m +1 .... a2 n ⎥
A = ⎢⎢ ⎥
.......... .......... .......... .......... ...
⎢ ⎥
⎢⎣am1 am 2 .... am m am m +1 .... amn ⎥⎦

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

a11 x1 + a12 x2 + .... a1 p xp = b1 - a1 p+1 xp+1 - ..... - a1n xn

a21 x1 + a22 x2 + .... a2 p xp = b2 - a2 p+1 xp+1 - ..... - a2n xn


O sistema proposto pode ser reescrito da (T03)
.........................................................................................
seguinte forma:
ap1 x1 + ap2 x2 + .... ap p xp = bn - ap p+1 xp+1 - .....- apn xn

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

2.2. DEPENDÊNCIA LINEAR ENTRE POLINÔMIOS

Previamente ao tema da dependência linear, é necessário de¿nir a proprie-


dade de combinação linear, que pode ser expressa na equação ao lado, x = λ1x1 + λ2 x 2 + .... + λn x n
onde x é um vetor de dimensão “n” e “O“ um valor escalar.

Existem diversos casos particulares de combinação linear.

x Combinação Cônica
Cônica

x1 x = λ1x1 + λ2 x 2 + .... + λn x n quando λi ≥ 0

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:

x1 (1) , x2 (1) ,...., xn (1) e x1 (2) , x2 (2) ,...., xn (2)

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

Quando O1 z 0, deduz-se que:


-λ2 - λ2 -λ2
x1 (1) = x1 (2), x2 (1) = x2 (2), ....... , xn (1) = xn (2)
λ1 λ1 λ1

Quando O2 z 0, deduz-se que:


- λ1 -λ1 -λ1
x1 (2) = x1 (1) , x2 (2) = x2 (1) , ....... , xn (2) = xn (1)
λ2 λ2 λ2

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.

2.3. DISCUSSÃO DE SISTEMA DE EQUAÇÕES COM MATRIZ DE COEFICIENTE QUADRADA

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:

x1 + 2x2 + x3 = 1 Que pode ser ⎡ 1 2 1 1 ⎤


transformado na S = ⎢ 2 −1 2 2 ⎥
Seja o sistema de equações lineares ao lado: 2x1 - x2 + 2x3 = 2 ⎢ ⎥
matriz aumentada
ao lado: ⎢⎣ 3 1 3 4 ⎥⎦
3x1 + x2 + 3x3 = 4
444 Programação Linear e Fluxos em Redes

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:

Operação 1: Anulando o elemento s21, multiplicando a linha 1 por -2 e somando-a à linha 2:

⎡ 1 2 1 1 ⎤
S1 = ⎢⎢ 0 − 5 0 0 ⎥

⎢⎣ 3 1 3 4 ⎥⎦

Operação 2: Anulando o elemento s31, multiplicando a linha 1 por -3 e somando-a à linha 3:

⎡ 1 2 1 1 ⎤
S2 = ⎢⎢ 0 − 5 0 0 ⎥

⎢⎣ 0 − 5 0 1 ⎥⎦

Operação 3: Tornando unitário o elemento s22, dividindo a linha 2 por -5:

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

x1 + 3x2 + x3 = 5 Que pode ser ⎡ 1 3 1 5 ⎤


Seja o sistema de equações lineares
3x1 - 2x2 - 8x3 = -7
transformado na
S = ⎢⎢ 3 − 2 −8 −7 ⎥
ao lado: Matriz Aumentada ⎥
3x1 + x2 + 3x3 = 4 ao lado: ⎢⎣ 3 1 3 4 ⎥⎦
Anexos 445

Por operações elementares vamos transformar a matriz S em uma matriz escalonada e estudar o comportamento do sistema
de equações:

Operação 1: Anulando o elemento s21, multiplicando a linha 1 por -3 e somando-a à linha 2:

⎡ 1 3 1 5 ⎤
S1 = ⎢⎢ 0 − 11 − 11 − 22 ⎥⎥
⎢⎣ 3 1 3 4 ⎥⎦

Operação 2: Anulando o elemento s31, multiplicando a linha 1 por -3 e somando-a à linha 3:

⎡ 1 3 1 5 ⎤
S2 = ⎢⎢ 0 − 11 − 11 − 22 ⎥

⎢⎣ 0 − 8 0 − 11 ⎥⎦

Operação 3: Tornando unitário o elemento s22, dividindo a linha 2 por -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 ⎥⎦

Operação 5: Tornando unitário o elemento s33, dividindo a linha 3 por 8:

⎡ 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

2.4. DISCUSSÃO DE SISTEMAS DE EQUAÇÕES COM MATRIZES DE COEFICIENTE RETANGULAR

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 ⎥⎦

Observando a matriz aumentada do sistema (T04) é possível encontrar uma solu- x4 x6 b


ção simples para o sistema, ou seja, uma submatriz do tipo (T03) a ser composta
⎡ 1 2 12 ⎤
pelas variáveis x3 e x5. Para efeito de uma solução, o sistema indeterminado (T04) S=⎢
pode ser reescrito como na matriz ao lado: ⎣ 0 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:

O = (O1, O2, O3, O4, O5, O6 ) = (0, 0, 0, 12, 6, 0)

o que levaria à seguinte combinação linear:

⎛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

Os seguintes conceitos são presentemente úteis:

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

A Unimodularidade é uma propriedade matricial de grande aplicação na programação matemática.

3.1. DEFINIÇÕES BÁSICAS:

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 aijA Ÿ aij = 0, + 1, - 1.

3.2. TEOREMAS ÚTEIS

Teorema de Hoffman e Kruskal


Seja (P): Maximizar {z0 = cx | Ax = b, x > 0}, onde a e b são matrizes de elementos inteiros. As seguintes
condições são equivalentes:
9 O determinante de toda base B, deÀnida de A, é 61
9 Os vértices do poliedro {x > 0: Ax = b} são inteiros;
9 A inversa da base B, B-1, deÀnida em A, é uma matriz inteira.

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.

Teorema de Heller & Tompkins


Em uma matriz A com componentes {0,1,-1} totalmente unimodular:
9 Não mais do que dois elementos não nulos aparecem em cada coluna.
9 As linhas de A podem ser particionadas em dois subconjuntos Q1 e Q2 tais que:
Se uma coluna contém dois elementos não nulos com o mesmo sinal, cada um deles está em um dos
subconjuntos.
Se uma coluna contém dois elementos não nulos com sinais diferentes, ambos estão no mesmo
subconjunto.

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.

4.1. ALGUMAS PROPRIEDADES DOS CONJUNTOS CONVEXOS

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

Exemplos de conjuntos convexos e não convexos:


450 Programação Linear e Fluxos em Redes

Conjuntos não convexos Conjuntos convexos


Figura T1. Exemplos para convexidade de conjuntos.

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.

Pontos Não Extremos


x1

x2

Conjunto
o
Convexo C

Figura T2. Pontos Não Extremos.

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

Figura T3. Geração de Pontos Extremos.

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.

4.2. ELEMENTOS GEOMÉTRICOS

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

A Figura T4 representa abstratamente a formação de um Hiperplano H através de um ponto x 0 ∈ H e α

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}

A Figura T5 esclarece o conceito de semiespaço

α
H

x0

Figura T5. Semiespaço.


454 Programação Linear e Fluxos em Redes

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

A Figura T6 mostra a composição de um raio para a direção d

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.

9 Direções extremas de um conjunto convexo


Uma direção d de X é extrema se não puder ser representada como combinação linear positiva de duas direções d1, d 2 (d1 ≠ kd 2 )
k ∈ R , do conjunto X . Em um exemplo numérico, sejam os pontos (0,1), (0,2) e (4,2) e as direções d1 e d2, conforme mostra
a Figura T8. Então:

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)

Figura T8. Direções Extremas de um conjunto não limitado.


456 Programação Linear e Fluxos em Redes

9 Conjuntos poliédricos
Uma interseção de um número ¿nito de semiespaços fechados denomina-se poliedro

H1 = { x tal que x1 ≤ 10}


H 2 = { x tal que x 2 ≤ 20}
H 3 = {x tal que x1+x 2 ≤ 5}
H = H1ˆH2ˆH3

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

Para um ponto qualquer, interno ao poliedro, por exemplo (4,3), tem-se:

( 4,3) = λ1 ( 4 / 3,2) + λ2 (2,4) + λ ( 4,6) + μ1 (1,0) + μ 2 (2,1)

Que conduz, por exemplo:

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

Figura T9. Envoltória Convexa

x Interpretação geométrica no espaço das comodidades

Seja o seguinte problema de programação linear:

(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

Se x∈X, isto é, X ≠ ∅, Ax = b, x ≥ 0. O que pode ser


n n xj b n
expresso como ∑x a j j = b, x j ≥ 0 j = 1,2,..., n ou ∑ξ a
j =1
j =
ξ
, com ξ = ∑ x j
j =1
j =1
como ao lado:

xj
De¿nindo λ j = , 0 ≤ λ j ≤ 1, com j = 1, 2,..., n, segue-se que b ∈k , ou seja, se X z‡, então, bRn 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

x Interpretação geométrica no espaço das atividades

Seja o problema abaixo:

(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

Pode ser representado gra¿camente como em T12 e T13:

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

1.1. DEFINIÇÕES E NOTAÇÕES BÁSICAS

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.

Os termos “vértices” e “nós” são empregados usualmente como sinônimos.


460 Programação Linear e Fluxos em Redes

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

Figura T15. Exemplo de hipergrafo.

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.

x Grafo Ponderado e Rotulado

DeÀnição de Grafo Ponderado

Um grafo G = (N, M) é Ponderado se existem valores B A 3 B


A
numéricos associados a suas arestas ou vértices.
5 2 3 1
DeÀnição de Grafo Rotulado D D 1 7
C C
E E
Um grafo G = (N,M) é Rotulado se existem atribui- 5 1 4
ções associadas a seus nós ou vértices (tanto nu-
méricas como alfabéticas). F
G F
A Figura T16 exempli¿ca grafos com vértices rotu-
lados e um grafo com ponderação em arestas. Grafo Rotulado Grafo Ponderado
Figura T16. Grafos ponderados e rotulados.
Anexos 461

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

A Figura T17 exempli¿ca um multigrafo.


Figura T17. Multigrafo.

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

DeÀnição de Grafo Direcionado

Um grafo é dito Direcionado ou Orientado quando o


sentido das ligações entre os vértices é importante.
Nesse caso, normalmente as arestas são chamadas 2
de Arcos.
1 1 b 2

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

A Figura T18 exempli¿ca grafos direcionados.


462 Programação Linear e Fluxos em Redes

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

Um grafo G é dito Bipartido quando seu conjunto de 4


vértices, N, pode ser dividido em dois conjuntos N1
e N2, tais que N1 ˆ N2 =‡ e N1 ‰ N2 = N e somente
3
existem arestas em G ligando algum vértice de N1
com algum vértice de N2 e vice-versa.
N1 6 5 N2

A Figura T19 exempli¿ca um grafo bipartido.


Figura T19. Grafo bipartido.

x Grafo Completo

DeÀnição de Grafo Completo

Um grafo G é dito Completo se existir ao menos 1 2


uma ligação associada a cada par de vértices. No 1 2
caso não orientado, isso signi¿ca exatamente uma
ligação. 4
3
3 4
Os grafos completos não orientados são denotados
como Kn, onde n representa o número de nós do grafo. K4
6 5
K 3,3
Por analogia, os grafos Completos Bipartidos são Figura T20. Grafos completos.
denotados por Kp,q, sendo p e q as cardinalidades
dos conjuntos disjuntos de vértices do grafo.

A Figura T20 exempli¿ca grafos completos.


Anexos 463

x Grafo Regular

DeÀnição de Grafo Regular


B
A
Grau de um Vértice de um grafo é o número de ares-
tas incidentes no vértice.
D
Um grafo G é dito Regular de Grau r se cada vértice C
em G possui grau r. E

(*) O maior grau de G é notado por '(G).

A Figura T21 exempli¿ca um grafo regular de grau 2. F


G
Figura T21. 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) ~
- +

No caso da Figura T22 é possível calcular o grau do


vértice 4 da seguinte forma:
4
6 3
d(4) = ~d(4) ~ +~d(4) ~=
- +

2
= ~- 2~ + ~+ 2~= 4 7 5
Figura T22. Grau dos vértices em grafos direcionados.

1.2. OUTROS CONCEITOS BÁSICOS

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

DeÀnição de Vizinhança de Vértices


1 2 1 2

Diz-se que dois vértices xi e xj são vizinhos ou adja-


centes quando existe uma aresta que liga xi a xj ou
vice-versa. 3 3
4 5 4 5
(*) A noção de vizinhança é associada a grafos não
orientados.
Grafo Não Direcionado Grafo Direcionado
A Figura T23 ilustra os vizinhos do vértice 3 no caso
de um grafo direcionado e não direcionado. Figura T23. Vizinhos ao vértice 3.

x Sucessores e Antecessores de um Vértice

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 .

(*) No caso da ocorrência da relação inversa, diz-se


que o vértice xj é antecessor de xi. 4 5
A Figura T24 representa o antecessor e os sucesso-
res do vértice 3. Sucessores de 3
Figura T24. Antecessores e sucessores.

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.

DeÀnição de Fecho Transitivo


5
11

Denominaremos Fecho Transitivo Direto do vértice 6


2 12
x, Γ̂ + (x), o conjunto de vértices que podem ser al-
cançados, a partir de x, através de sucessivas rela- 7
ções de vizinhança. 13
(*) No caso inverso dos vértices que podem atingir x
1 8
por sucessivas relações de vizinhança, de¿ne-se o 3
Fecho Transitivo Inverso.
9
A Figura T25 ressalta, com vértices reforçados, o fecho
transitivo direto do vértice 1. O primeiro nível de vizi-
10
nhança do vértice 1 são os vértices 3 e 4. Em um se- 4
gundo nível, o vértice 1 alcança os vértices 7, 8, 9 e 10. Figura T25. Fecho transitivo direto do vértice 1.


Γ +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}.

Alguns autores denominam os Fechos Diretos de Fechos Positivos, e os Inversos, de Negativos.

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

Figura T27. Um caminho 6-5.

x Comprimento de Caminho

DeÀnição de Comprimento de Caminho 1 1

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

x Distância entre um Par de Vértices

DeÀnição de Distância 1

Em um Grafo G, a distância entre dois vértices é 3 1


10
igual ao caminho de menor comprimento entre estes
vértices.
2 3 2 4
A Figura T29 exempli¿ca o cálculo da distância entre 3
os vértices 1 e 3 do grafo do exemplo, sendo 1 + 2 = 3.
Figura T29. Distância entre os vértices 1 e 3.

x Ciclo ou Circuito

DeÀnição de Ciclo

Em um grafo G, um Ciclo é um caminho fechado, 1 2 1 2


ou seja, um caminho que inicia e termina em um
mesmo vértice.
3 3
DeÀnição de Circuito
4 5 4 5
Grafo 1 Grafo 2
Quando o grafo G é orientado, alguns autores deno-
minam Circuito o caminho fechado. Figura T30. Grafos com ciclos.
A Figura T30 exempli¿ca dois ciclos.

x Ciclos e Circuitos Especiais

DeÀnição de Cadeia Euleriana e Ciclo Euleriano

Uma Cadeia Euleriana em um grafo G é uma cadeia


que passa por todas as arestas de G. Se a cadeia 1 2 1 2
inicia e termina no mesmo vértice, então é denomi-
nada Ciclo Euleriano do grafo G. 6 3 6 3

DeÀnição de Ciclo Hamiltoniano 5 4 5 4

Ciclo Hamiltoniano Ciclo Euleriano

Um Ciclo Hamiltoniano em um grafo G é um ciclo Figura T31. Percursos especiais.


que passa por todos os vértices de G.

A Figura T31 exempli¿ca um ciclo Euleriano e um


Hamiltoniano em um grafo.
468 Programação Linear e Fluxos em Redes

x Conexidade

DeÀnição de Grafo Conexo


1 2 1 2

Um grafo G é dito Conexo se existe pelo menos um 6 3 6 3


caminho entre cada par de vértices de G.

Um grafo é desconexo no caso contrário. 5 4 5 4

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.

1.3. ESTRUTURAS PARCIAIS E OPERAÇÕES ELEMENTARES COM GRAFOS

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

Gs = (Ns, Ms) é um subgrafo de G = (N, M) se Ns Ž N e


3 4 3 4
Ms Ž M, e uma aresta (i, j)  Ms somente se i, j  Ns.
Gs = (Ns, Ms) é um subgrafo próprio de G = (N, M) se
Ns  N e Ms Ž A ou Ns Ž N e Ms  A e uma aresta 5 5
(i, j)  Ms se i, j  Ns.
Grafo G Subgrafo Gs
Observa-se que Gs é subgrafo de G.
A Figura T34 exempli¿ca um subgrafo próprio de G. Figura T34. Subgrafo de G.
Anexos 469

x Grafo Complemento

1 2 1 2
DeÀnição de Grafo Complemento

G = (Nc, Mc) é um grafo Complemento de G = (N, M) 3 4 3 4


quando Nc = N, Mc ˆ M = ‡ e Mc ‰ M = U, onde U
representa o conjunto de arestas de um grafo com-
pleto com n vértices. 5 5
Um grafo complemento de um grafo conexo não é Grafo G Complementar Gc
necessariamente conexo.
Figura T35. Grafo complemento de G.

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

Remover 2 Subgrafo Conexo


4
6 3

7 5

Figura T36. Operações de remoção de vértices em G.


470 Programação Linear e Fluxos em Redes

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.

x Componentes Conexas de um Grafo

DeÀnição de Componente Conexa Componente A

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

Observação: Os grafos conexos possuem apenas


uma componente conexa, que é o próprio grafo. 2
7 5
A Figura T38 exempli¿ca as duas componentes co-
nexas do grafo G, que possui N = {1, 2, 3, 4, 5, 6, 7}. Figura T38. Componentes de G.

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

DeÀnição de Corte em Arestas 1

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:

Quando a remoção de somente uma aresta é su- Aresta Ponte


¿ciente para desconectar o grafo G, essa aresta é 7 6
denominada Ponte. A Figura T40 exempli¿ca uma
4
ponte no grafo. u1 3

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.

2.1. REPRESENTAÇÃO ATRAVÉS DA MATRIZ DE ADJACÊNCIA

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.

Grafos não direcionados:


1 2 3 4 5 6
Definição de Matriz de Adjacência 1 0 0 0 1 0 0 2
Uma matriz A = [aij] é denominada de Adjacência 1
do grafo G = (N,M) se: 2 0 0 1 1 0 0

aij = 1 Ligação (i, j) ∈ M 3 0 1 0 1 0 0


4
3
aij = 0 Ligação (i, j) ∈M 4 1 1 1 0 1 1
6
5 0 0 0 1 0 1

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

Matriz de Adjacência Grafo G

Figura T43. Matriz de adjacência de um grafo direcionado.


Anexos 473

2.2. REPRESENTAÇÃO ATRAVÉS DA MATRIZ DE INCIDÊNCIA

Nesse caso, as colunas da matriz correspondem às arestas do grafo e as linhas aos vértices.

Grafos não direcionados:


A Figura T44 exempli¿ca a matriz de incidência de um grafo G
Definição de Matriz de Incidência não direcionado.
Uma matriz A = [aij] é denominada de Incidência
do grafo G = (N,M) se para todo i ≠ j tem-se:
u1 u2 u3 u4
1 2
aij =+ 1 Ligação (i, j) = ui
1 1 0 0 0
u1 u2
2 0 1 0 0
aij = -1 Ligação (j, i) = ui
3 1 1 1 1 u3
3
u4
4 0 0 1 0
aij = 0 Demais casos 5 0 0 0 1 4 5

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

Matriz de Incidência Grafo Direcionado

Figura T45. Matriz de incidência em grafo direcionado.

2.3. REPRESENTAÇÃO ATRAVÉS DE LISTAS ENCADEADAS

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

Lista Encadeada Grafo Não Direcionado

Figura T46. Representação por listas encadeadas de vértices

2.4. REPRESENTAÇÃO VETORIAL

É ú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

Figura T47. Representação vetorial.


Tópico 3
Complexidade de Algoritmos
1
Conceito de Algoritmo

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:

1. Um processo formal de cálculo.

2. Uma sequência bem deÀnida de procedimentos (passos) que levam uma entrada a
ser transformada em uma saída.

3. A certeza de que os procedimentos são executáveis em um computador.

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:

f: oƒ* e t:oƒ* funções quaisquer

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

Figura T49. Função :(.)

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

3.2. FUNÇÃO ASSINTÓTICA COM VÁRIOS PARÂMETROS

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:

f: xoƒ* uma função arbitrária

então é possível estabelecer a seguinte notação:

{
O (f (m , n) ) = t : ℵxℵ → ℜ * | (∃ c ∈ ℜ + ) (∃ m 0 ,n0 ∈ ℵ) (∀ n ≥ n0 ) (∀m ≥ m 0 ) [t (m , n) ≤ cf (m , n)] }

E de forma semelhante para a função :.

3.3. FUNÇÃO ASSINTÓTICA CONDICIONAL

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:

f: oƒ* e P: oB duas funções quaisquer

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.

3.4. CONCEITOS BÁSICOS EM COMPLEXIDADE DE ALGORITMOS

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.

O modelo RAM simula o funcionamento de um Unidade de Processamento


computador elementar. À memória cabe arma-
zenar os dados do programa. Um programa é Funções Lógicas
constituído por um conjunto de instruções ou e Aritméticas
comandos que implementa o algoritmo. O mo-
delo considera que cada instruçãoIpossuirá Unidade de Funções de Controle Unidade de
um tempo associado t(I) para ser operaciona- Entrada Saída
lizada em RAM. Então, ao executarmos um
algoritmo codi¿cado em um programa P (de¿-
nição de programa no de mesmo nome), com Unidade de
uma entrada ¿xa arbitrária, são processadas r1 Memória
instruções do tipo I1, r2 instruções do tipo I2, até
rm instruções do tipo Im. Figura T50. Máquina RAM

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.

Complexidade de Pior e Melhor Caso


Complexidade de Pior Caso O ( f(n) ) é ao valor máximo dentre todas as suas complexidades assintó-
ticas, para entradas de tamanho suÀcientemente grande.
Complexidade de Melhor Caso Ÿ ( f(n) ) ao valor mínimo dentre todas as sua complexidades assintó-
ticas, para entradas de tamanho suÀcientemente grande.

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

Algoritmo Busca Linear (L [1... p], x)


Início
i m1
Enquanto i d p e L[i] z x Faça
Início
imi+1
Fim
Se i d p Imprimir (i)
Senão Imprimir (-1)
Fim

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

Algumas propriedades das funções assintóticas:


1. O(f(n)) + O(g(n)) = O{max{f(n), g(n)}
2. O(cf(n)) = c O(f(n)) = O(f(n)), onde c é uma constante real positiva
3. O(f(n).g(n)) = O(f(n))O(g(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!

Algoritmo Série Fatorial S


Início
Ler (x,n)
S m1
F m1
Para i = 1, n Faça
Início
F m F*i
S m S+ xi / F
Fim
Imprimir (S)
Fim
Anexos 483

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.

f1 = leitura de dois números (2 unidades de tempo) e duas atribuições (2 unidades de tempo)


f1 = 4

O segundo bloco possui um controle de loop, uma atribuição com um


produto, e uma segunda atribuição com uma soma, uma potenciação e
uma divisão. Uma vez que potenciação não é uma instrução simples na n n
n 2 + 7n
máquina RAM, é necessário fazer um subalgoritmo para sua computação. f2 = ∑ [( i − 1) + 4] = ∑ [( i + 3)] =
i =1 i =1 2
Considerando que tal subalgoritmo realiza i – 1 produtos para obter xi, seu
tempo de processamento é i – 1. O loop é realizado n vezes (i = 1,...,n)
com 4 operações e i – 1 produtos. Logo, a computação ¿nal de f2 será:
O terceiro bloco é o procedimento de saída e f3 = 1
⎛ ⎧ n 2 + 7n ⎫⎞
Finalmente, a função é calculada como o valor máximo de operações T (n) = O ⎜⎜máx ⎨4, , 1⎬⎟⎟ = O (n 2 )
⎝ ⎩ 2 ⎭⎠
em cada um dos blocos sequenciais.

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

3.5. DIFICULDADE DE SOLUÇÃO DE PROBLEMAS

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:

z Problema de decisão: Existe um percurso hamiltoniano em G?


z Problema de localização: Exiba um percurso hamiltoniano em G, caso exista.
z Problema de otimização: Determine o percurso hamiltoniano em G que minimiza a soma dos pesos de suas arestas,
caso exista pelo menos um.

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.

Algoritmo Não determinístico


Dada uma entrada E, um algoritmo não determinístico realiza passos determinísticos regulares interca-
lados com o uso de primitivas Nd-Choice, e, no Ànal, ele decide se ACEITA ou NÃO E.

Um algoritmo não determinístico de fato é capaz de realizar


uma operação não determinística através do uso de uma primi-
tiva, não programável na realidade presente do estado da arte
Oráculo
da computação, denominada Nd-Choice. Var Resposta {sim, não}

Primitiva de Escolha – Nd_Choice (Entrada, Resposta)


O uso dessa primitiva é capaz de resolver o problema 3, por
de¿nição, em funcionamento semelhante ao de um oráculo,
como exibido na Figura T51.
Figura T51. Algoritmo não determinístico
486 Programação Linear e Fluxos em Redes

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

Figura T52. Algoritmo Nd com passo de reconhecimento


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

Denominando-se a esse sistema de independência de matroide.


+
Então, sendo c : E → R uma função objetivo e (E,F) um matroide, o problema de minimizar {c (s) | S ∈ F } poderá ser
sempre solucionado de forma exata por uma estratégia gulosa (Welsh, 1968). O resultado indica que um modelo que atenda
as condições de matroides poderá ser solucionado por etapas e através de uma estratégia de decisão simples. Quando
aplicadas a um matroide, as abordagens heurísticas gulosas são capazes de encontrar a solução ótima do problema. O
problema da árvore geradora mínima em grafos atende a estrutura matroide, e por isso mesmo os algoritmos gulosos como
os de Prim (1957) e Kruskal (1956) garantem o ótimo. Por outro lado, o problema geral do caminho mais curto em um grafo
G (sem circuitos negativos), apesar de ser também um problema polinomial, não atende a essas exigências matemáticas,
não podendo ser solucionado exatamente via procedimentos míopes.
488 Programação Linear e Fluxos em Redes

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

canônico, 150, 151 aumentada, 439


-padrão, 153 de adjacência, 472
de custos, 282, 283
G de incidência, 473
Gestão de oportunidades, 26 Matroide, 487
Gradiente, 142, 397 Método
Grafo das duas fases, 160, 173, 189
bipartido, 462 das operações elementares, 437
complemento, 463 do Canto Noroeste, 325
completo, 462 Vogel, 326
conexo, 468 Modelagem, 1, 13
de aumento de Àuxo, 357, 359 matemática, 16
direcionado, 461 Modelo(s)
fortemente conexo, 267 analógicos, 12
ponderado, 459 classi¿cação de Emshoff, 12
regular, 463 classi¿cação mista, 13
rotulado, 459 conceito intuitivo, 1
Grau de um vértice 463 conceituais, 12
construção, 14
H de visualização, 11
Hiperplano, 452 de¿nição, 2
Homeostase, 6 descritivos, 12
físicos, 12
I formulação, 14
Impacto social, 26 icônicos, 12
Inteligência interativos, 11
arti¿cial, 23 matemáticos ou estatísticos, 11
computacional, 23 natureza, 11
Interpretação econômica, 221 procedimentais, 36, 37
Interseção, 143, 456 propriedades, 12
Isomor¿smo, 9 reformulação, 15
simbólicos, 12
J simulação, 15
Jogo, 380 tipo, 11
Joias, 48, 104, 125 validação, 15
variáveis controladas, 12
K Multiagente, 392
Kirschoff, 352
N
L NP-Completo, 280, 281, 486
Lei de Kirschoff, 352 NP-Difícil, 271, 486
Lista de adjacência, 267
P
M Par primal / Dual, 211
Matching, 294 Passeio, 103, 267
Matriz Percurso, 465
492 Programação Linear e Fluxos em Redes

PERT/CPM, 309 em lista encadeada, 473


Pivoteamento, 138 em matriz de adjacência, 472
Ponte, 471 em matriz de incidência, 473
Ponto Extremo, 135, 138 vetorial, 474
Posto, 195
Problema S
da circulação viável, 352 Sensibilidade, 209
da escolha do “de rancho”, 293 Simbiose
de 1-Matching ponderado, 339 externa, 5
de alocação interna, 293 interna, 5
de alocação interna com casais, 293 Simplex revisado, 170
de circulação, 352 Sinergia, 6
de designação, 334 Situação
de emparelhamento, 291 de certeza, 19
de Àuxo a custo mínimo, 369 de conÀito, 19
de localização capacitado, 347 de incerteza, 19
de localização de centros de distribuição de diversos de risco, 19
produtos, 351 Subgrafo, 468
de multiÀuxo, 350 Sucessores, 464
de transporte, 319 Sumidouro, 316
do caminho mais curto s-t, 343
do casamento, 70, 292 T
do emparelhamento com gargalo, 293 Taxonomia, 315
do Àuxo máximo, 356 Teorema
do transbordo, 348 da existência, 214
multiestágio, 348 das folgas complementares, 216
Programação de Camion, 448
inteira, 17 de Cook-Levin, 486
linear, 3, 17 de Cramer, 440
não linear, 17 de Edmonds e Karp, 361
Proporcionalidade, 29 de Heller e Tompkins, 318
do aumento de Àuxo, 361
Q Tomador de decisão, 18
Quadro de pivoteamento, 150 Totalmente unimodular, 318, 448
Qualidade de Vida, 27
Questionário, 344 U
Unimodular, 448
R
Raio, 354 V
Rank, 471 Variável
Rede, 305, 307 arti¿cial, 158, 159
Regra de Bland, 165 de folga, 158, 159
Relaxação lagrangeana, 409 dual, 331
Representação Vértice terminal, 370

Você também pode gostar