Você está na página 1de 208

COPYRIGHT © 2020

CENTRO UNIVERSITÁRIO REDENTOR.


Todos os direitos reservados ao: Centro Universitário Redentor

Todos os direitos reservados e protegidos pela Lei 9.610/98. Nenhuma parte deste
livro, sem prévia autorização por escrito da detentora dos direitos, poderá ser
reproduzida ou transmitida, sejam quais forem os meios empregados: eletrônicos,
mecânicos, fotográficos, gravações ou quaisquer outros.

Diretoria EaD
Muriel Batista de Oliveira | Currículo lattes

Gerência EaD
Jamil Bussade Neto | Currículo lattes

Design Instrucional EaD – Editoração Eletrônica e Diagramação


Joelmir Vinhoza Canazaro | Currículo lattes
Thiago Carneiro Ximenes | Currículo lattes

Projeto Gráfico
Jaqueline de Souza Ferreira Batista | Currículo lattes

Revisão Ortográfica
Eliane Azevedo | Currículo lattes
Sobre a autora

Julliana
NomeAlmeida Piraciaba
do professor

Julliana Almeida Piraciaba, brasileira, natural de Campos dos Goytacazes/RJ,


bacharel em Engenharia de Produção pela Universidade Estadual do Norte
Fluminense (UENF, 2013), Mestra em Engenharia de Produção, ênfase em Pesquisa
Operacional, pela Universidade Estadual do Norte Fluminense (UENF, 2018).
Apresentação

Olá querido aluno (a), seja muito bem-vindo (a)!

Conforme visto no caderno de Pesquisa Operacional I (PO I), a Pesquisa


Operacional é uma ciência aplicada, voltada para a resolução de problemas reais
que envolve situações de tomada de decisões, com o auxílio de modelos
matemáticos que habitualmente são processados por computadores.
Em PO I vimos o que é a Pesquisa Operacional, Problemas Lineares,
Modelagem de Problemas de Programação Linear (PPL), Resolução de PPL pelo
método gráfico e o algoritmo Simplex, Dualidade, Análise pós-ótima das soluções
encontradas nos PPL através da análise de sensibilidade e Resolução de PPL através
de softwares.
Em PO II veremos Teoria dos Grafos, Programação Inteira e Análise Multicritério.

.
.
.

Bons estudos!
Objetivos

Este caderno de estudos tem como objetivos:

 Introdução à Teoria dos Grafos;


 Estudo do algoritmo de Caminho Mínimo;
 Estudo do algoritmo de Fluxo Máximo;
 Programação Inteira;
 Programação Inteira com Software;
 Estudo do Método de Transporte;
 Introdução à Análise Multicritério;
 Método AHP;
 Multicritério com Software;
 Aplicações da PO II.
Sumário

AULA 1 – REVISÃO DA PESQUISA OPERACIONAL I


1 INTRODUÇÃO .............................................................................................. 12
1.1 Problemas de modelagem ........................................................................ 16
1.2 Resolução de programa linear ................................................................. 20

AULA 2 – INTRODUÇÃO À TEORIA DOS GRAFOS


2 INTRODUÇÃO .............................................................................................. 31
2.1 Breve histórico............................................................................................. 31
2.2 Conceitos e definições .............................................................................. 33
2.2.1 Modelo ............................................................................................................. 33
2.2.2 Noções básicas de redes e gráficos ........................................................... 36
2.2.3 Representação matricial .............................................................................. 41
2.3 Otimização em rede .................................................................................. 42

AULA 3 – EXERCÍCIOS DE TEORIAS DOS GRAFOS


3 INTRODUÇÃO .............................................................................................. 50

AULA 4 – ALGORITMO DE CAMINHO MÍNIMO


4 INTRODUÇÃO .............................................................................................. 59
4.1 O problema de caminho mínimo ............................................................. 59
4.2 Algoritmo de Dijkstra .................................................................................. 61

AULA 5 – EXERCÍCIO DE CAMINHO MÍNIMO


5 INTRODUÇÃO .............................................................................................. 72

AULA 6 – INTRODUÇÃO AO ALGORITMO DE FLUXO MÁXIMO


6 INTRODUÇÃO .............................................................................................. 83
6.1 O problema de fluxo máximo ................................................................... 83
6.2 O algoritmo de fluxo máximo ................................................................... 86
AULA 7 – EXERCÍCIOS DE FLUXO MÁXIMO
7 INTRODUÇÃO .............................................................................................. 93

AULA 8 – PROGRAMAÇÃO INTEIRA


8 INTRODUÇÃO ............................................................................................ 104
8.1 Exemplos ................................................................................................... 105

AULA 9 – PROGRAMAÇÃO INTEIRA COM SOFTWARE


9 INTRODUÇÃO ............................................................................................ 113
9.1 Solver do Excel ......................................................................................... 113
9.1.1 Exemplos no Solver do Excel ....................................................................... 113
9.2 Software Lingo ........................................................................................... 119

AULA 10 – INTRODUÇÃO AO MÉTODO DE TRANSPORTE


10 INTRODUÇÃO ............................................................................................ 127
10.1 Introdução aos problemas de transporte, transbordo e designação . 127
10.2 Formulação matemática ......................................................................... 127
10.3 Algoritmo para o problema de transporte ............................................. 129

AULA 11 – SOLUÇÃO INICIAL DO MÉTODO DE TRANSPORTE


11 INTRODUÇÃO ............................................................................................ 135
11.1 Determinação da solução inicial............................................................ 135
11.1.1 Método do canto noroeste ........................................................................ 136
11.1.2 Método do menor custo ............................................................................. 136
11.1.3 Método de aproximação de Vogel.......................................................... 137
11.1.4 Exemplo ......................................................................................................... 137

AULA 12 – OTIMIZAÇÃO DO MÉTODO DE TRANSPORTE


12 INTRODUÇÃO ............................................................................................ 147
12.1 Exemplos ................................................................................................... 147

AULA 13 – INTRODUÇÃO À ANÁLISE MULTICRITÉRIO


13 INTRODUÇÃO ............................................................................................ 159
13.1 Análise multivariada................................................................................. 160
13.2 Classificação de técnicas multivariadas ............................................... 160
13.3 Tipos de técnicas multivariadas .............................................................. 162

AULA 14 – MÉTODO DE ANÁLISE HIERÁRQUICA (AHP)


14 INTRODUÇÃO ............................................................................................ 167
14.1 Construção de hierarquia ........................................................................ 167
14.2 Definição de prioridades ......................................................................... 168
14.3 Consistência lógica .................................................................................. 169

AULA 15 – MULTICRITÉRIO COM SOFTWARE


15 INTRODUÇÃO ............................................................................................ 175
15.1 Download e instalação ............................................................................ 175

AULA 16 – APLICAÇÕES DA PO II
16 INTRODUÇÃO ............................................................................................ 182
Iconografia

SAIBA MAIS ATENÇÃO

PARA
ATIVIDADE
REFLEXÃO

EXEMPLO VÍDEO

ANOTAÇÕES LEMBRETE
Aula 1
Revisão da Pesquisa Operacional

APRESENTAÇÃO DA AULA

Nesta aula veremos uma revisão do que foi visto em Pesquisa Operacional I.
Lembraremos como surgiu a Pesquisa Operacional e faremos alguns exercícios de
Modelagem, resolveremos alguns Programas Lineares pelo método gráfico e pelo
método simplex. Mãos às obras?!.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Revisar o conteúdo de Pesquisa Operacional I;


 Breve Introdução à Pesquisa Operacional II.
P á g i n a | 12

1 INTRODUÇÃO

ATENÇÃO

A Pesquisa Operacional é a aplicação de métodos científicos a problemas


complexos para auxiliar no processo de tomada de decisões, como por exemplo,
projetar, planejar e operar sistemas que necessitam de alocações eficientes de
recursos escassos (ARENALES et al., 2007, p. IX).
As origens das atividades da PO podem ser remontadas há décadas quando
tentativas iniciais foram feitas no emprego de uma abordagem científica na gestão
organizacional. Embora, o início da atividade, denominada pesquisa operacional,
geralmente é atribuído às atividades militares na Segunda Guerra Mundial (HILLIER;
LIEBERMAN, 2006, p. 1).
Durante a Segunda Guerra Mundial, na Inglaterra, iniciaram-se as primeiras
atividades formais de Pesquisa Operacional, também conhecida como PO. Uma
equipe de cientistas britânicos decidiu, com bases científicas, tomar decisões sobre
a melhor utilização de material de guerra (TAHA, 2008, p. 1).
Em 1941, a Seção de Pesquisa Operacional do Comando da Força Aérea de
Combate foi inaugurada com equipes envolvidas em problemas de guerra, tais
como manutenção e inspeção de aviões, escolha do tipo de avião para uma missão
e melhoria na probabilidade de destruição de submarinos, entre outros. A análise
científica da utilização operacional de recursos militares de maneira sistemática foi
iniciada na Segunda Guerra Mundial (ARENALES et al., 2007, p. 1).
A guerra acabou, mas as ideias propostas para as operações militares foram
adaptadas para melhorar a eficiência e a produtividade no setor civil (TAHA, 2008, p.
1). A Pesquisa Operacional evoluiu rapidamente na Inglaterra e nos Estados Unidos
(ARENALES et al., 2007, p. 1).
A pesquisa operacional envolve “pesquisa sobre operações”, ou seja, a
pesquisa operacional é aplicada a problemas que envolvem como conduzir e
coordenar as operações/atividades em uma organização. A natureza das
organizações é essencialmente secundária e a PO tem sido amplamente aplicada
P á g i n a | 13

em áreas tão distintas, ou seja, a gama de aplicações é excepcionalmente grande


(HILLIER; LIEBERMAN, 2006, p. 2).
Uma maneira de sintetizar as fases usuais de um estudo de PO é (HILLIER;
LIEBERMAN, 2006, p. 8):
1) Definir o problema de interesse e coletar dados;
2) Formular um modelo matemático para representar o problema;
3) Desenvolver um procedimento computacional a fim de derivar soluções
para o problema a partir do modelo;
4) Testar o modelo e aprimorá-lo conforme necessário;
5) Preparar-se para a aplicação contínua do modelo conforme prescrito;
6) Implementar.

A resolução de problemas de PO é feita através de modelos matemáticos.


Partindo da observação de fenômenos, processos ou sistemas, buscam-se leis que os
regem, tais leis, caso possíveis de serem descritas por relações matemáticas, dão
origem aos modelos matemáticos. Para formular um modelo matemático, em geral,
simplificações razoáveis do sistema ou problema real precisam ser consideradas e a
validação do modelo depende de a solução do modelo matemático ser coerente
com o contexto de origem. Portanto, o modelo matemático é uma representação
simplificada do problema real. Ele, além de ser suficientemente detalhado para obter
os elementos essenciais do problema, também deve ser suficientemente tratável por
métodos de resolução (ARENALES et al., 2007, p. 3).
A fase mais importante da prática de PO é a fase de definição do problema,
que também é a fase mais difícil. Porém, embora a modelagem matemática seja a
peça fundamental da PO, os fatores intangíveis (como o comportamento humano,
por exemplo) devem ser levados em conta na decisão final (TAHA, 2008, p. 1).
P á g i n a | 14

ATENÇÃO

O modelo matemático de um problema de negócio é um sistema de


equações e de expressões matemáticas relativas que descrevem a essência do
problema. Ou seja, se existirem n decisões que podem ser quantificáveis relacionadas
a serem tomadas, elas serão representadas na forma de variáveis de decisão (x_1,
x_2, ⋯, x_n, por exemplo) cujos respectivos valores devem ser determinados. A
medida de desempenho apropriada é expressa como uma função matemática
dessas variáveis de decisão, chamada de função objetivo. Todas as restrições nos
valores que podem ser atribuídos as variáveis de decisão também são expressas de
forma matemática, seja por meio de desigualdades ou equações. Tais expressões
para limitações são chamadas de restrições. As constantes, isto é, os coeficientes e
lados direitos, nas restrições e na função objetivo são os parâmetros do modelo.
Portanto, o modelo matemático poderia nos dizes que o problema é escolher os
valores das variáveis de decisão de maneira a maximizar (ou minimizar) a função
objetivo sujeita às restrições especificadas. Esse é um típico modelo que é utilizado
em PO (HILLIER; LIEBERMAN, 2006, p. 12).

ANOTAÇÕES

____________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
P á g i n a | 15

O modelo geral de PO pode ser organizado no seguinte formato:

Tabela 1: Modelo Geral de PO.


Maximizar ou minimizar função objetivo
sujeito a
restrições
Fonte: (TAHA, 2008, p. 1)

A solução do modelo poderá ser viável, se satisfizer todas as restrições. Será


ótima se, além de viável, o resultado for o melhor valor (máximo ou mínimo) da
função objetivo (TAHA, 2008, p. 2).
Apesar de os modelos de PO serem elaborados para otimização de um critério
objetivo específico sujeito às restrições, a qualidade da solução resultante depende
do quanto o modelo representa o sistema real (TAHA, 2008, p. 2). Daí a importância
da fase de definição do problema.

ATENÇÃO

Podemos concluir que 'a' solução ótima de um modelo é a melhor solução


para aquele modelo. Caso o modelo representar razoavelmente bem o sistema real,
sua solução vai ser ótima para a situação real também (TAHA, 2008, p. 2).
Em PO, não existe apenas uma técnica para resolver todos os modelos
matemáticos que na prática podem surgir. O que vai determinar a natureza do
método de solução é o tipo e a complexidade do modelo matemático (TAHA, 2008,
p. 2).
O profissional de PO deve ter a capacidade de identificar a técnica mais
apropriada para a solução de determinado tipo de problema, além dos objetivos
para a melhoria, as limitações físicas e computacionais do sistema, porém, o
elemento humano é fundamental nesse processo (RAMOS, 2018, p. 14 apud Belfiore
& Fávero, 2013).
P á g i n a | 16

Sendo a programação linear - que estudamos em PO I - a técnica mais


utilizada. Ela é aplicada a modelos onde as funções objetivo e restrição são lineares.
Já a programação inteira, que veremos neste caderno, as variáveis assumem valores
inteiros. Na programação dinâmica o modelo original pode ser decomposto em
subproblemas mais fáceis de tratar. Na otimização em redes o problema pode ser
modelado como uma rede e na programação não linear as funções do modelo são
não lineares (TAHA, 2008, p. 2).
A maior parte das técnicas de PO tem uma peculiaridade, as soluções não são
obtidas em formas fechadas, com fórmulas. Elas são determinadas por algoritmos,
que fornece regras de cálculo fixas que são executadas repetidas vezes ao
problema, sendo que a solução fica cada vez mais próxima de se tornar ótima a
cada repetição (ou iteração). Os cálculos associados a cada iteração costumam ser
grandes, por isso, é imperativo que os algoritmos sejam executados por meio de
computadores (TAHA, 2008, p. 2).
Ainda assim, alguns modelos matemáticos podem ser tão complexos que
mesmo com a utilização de quaisquer dos algoritmos disponíveis, é impossível resolvê-
los. Em casos assim, pode ser necessário buscar uma boa solução, ao invés de uma
solução ótima, usando heurísticas ou regras práticas (TAHA, 2008, p. 2).
O aluno deve ter consciência que a busca da otimalidade global é sempre
um ideal a ser buscado, porém diante da complexidade dos problemas do mundo
real, muitas vezes é necessário utilizar um método heurístico para a resolução do
problema em questão. É importante saber que o bom senso, a avaliação crítica e a
competência devem prevalecer na abordagem de um problema (GOLDBARG;
LUNA, 2005, p. XIII).
Mas chega de teoria, vamos para alguns exemplos práticos!

Problemas de modelagem

Vamos aos seguintes problemas de modelagem:


1) Uma fazenda cria vacas e carneiros. A fazenda tem estábulos para 50 vacas
e instalação para 200 carneiros. 72 hectares de pasto é disponibilizado. Um hectare
é necessário para sustentar uma vaca e 0,2 hectares para um carneiro. Para cuidar
dos animais, a fazenda pode prover até 110.000 horas de trabalho por ano. Uma
vaca requer 150 horas e um carneiro 25 horas por ano. O lucro anual é de 250 reais
P á g i n a | 17

por vaca e 45 reais por carneiro. A fazenda gostaria de determinar o número de


vacas e carneiros a serem criados de forma que seu lucro seja maximizado.
Modelagem: Primeiro vamos definir as variáveis, nós queremos saber o número
de vacas e de carneiros a serem criados de modo que o lucro seja máximo, logo,
definimos:
𝑥𝑉 = 𝑞𝑢𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝑣𝑎𝑐𝑎𝑠 𝑎 𝑠𝑒𝑟𝑒𝑚 𝑐𝑟𝑖𝑎𝑑𝑎𝑠
𝑥𝐶 = 𝑞𝑢𝑎𝑛𝑡𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝑐𝑎𝑟𝑛𝑒𝑖𝑟𝑜𝑠 𝑎 𝑠𝑒𝑟𝑒𝑚 𝑐𝑟𝑖𝑎𝑑𝑜𝑠

Segundo, vamos definir a função objetivo. Queremos que o lucro seja


maximizado, temos os preços do lucro anual por vaca e por carneiro, assim, a função
objetivo será:

Maximizar 𝑧 = 250𝑥𝑉 + 45𝑥𝑐

Terceiro, vamos as restrições, pelo problema podemos ver que o que restringe
a criação de vacas e carneiros são: os estábulos, os hectares e horas de trabalho por
ano. Assim, temos as seguintes restrições:
𝑥𝑉 ≤ 50 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 𝑒𝑠𝑡á𝑏𝑢𝑙𝑜
𝑥𝑐 ≤ 200 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 𝑒𝑠𝑡á𝑏𝑢𝑙𝑜
𝑥𝑉 + 0,2𝑥𝑐 ≤ 72 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 ℎ𝑒𝑐𝑡𝑎𝑟𝑒𝑠
150𝑥𝑉 + 25𝑥𝑐 ≤ 110.000 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 ℎ𝑜𝑟𝑎𝑠 𝑑𝑒 𝑡𝑟𝑎𝑏𝑎𝑙ℎ𝑜

Assim, temos o seguinte programa linear (PL).


Maximizar 𝑧 = 250𝑥𝑉 + 45𝑥𝑐
Sujeito a 𝑥𝑉 ≤ 50
𝑥𝑐 ≤ 200
𝑥𝑉 + 0,2𝑥𝑐 ≤ 72
150𝑥𝑉 + 25𝑥𝑐 ≤ 110.000
𝑥𝑗 ≥ 0, 𝑗 = 𝑉, 𝐶
P á g i n a | 18

ATIVIDADE

Tente resolvê-lo!
Uma indústria precisa que três tipos de peças-parte passem por três operações
diferentes: corte, perfuração e polimento, pois foram compradas inacabadas. O
custo por hora das três operações está na tabela a seguir, assim como a
capacidade/hora de cada máquina para cada operação.

Tabela 2: Dados do Problema 1.


C:
A: B:
Máquina Custo/hora
Capacidade/hora Capacidade/hora
Capacidade/hora
Corte 20 60 25 150

Perfuração 40 20 40 100

Polimento 20 50 20 200
Fonte: autora.

O custo de aquisição de cada uma das três peças-partes é: A = 120, B = 200 e


C = 400. O preço de venda de cada uma delas é: A = 200, B = 350 3 C = 500. Todas
as peças-partes produzidas são vendidas. Qual a quantidade de cada peça-parte
deve ser produzida de modo a maximizar o retorno da indústria?
Modelagem: Seja 𝑥𝐴 , 𝑥𝐵 e 𝑥𝐶 as quantidades de peça-parte A, B e C,
respectivamente, a serem produzidas. Se a capacidade por hora da operação de
corte é de 20 peças-parte A, isto significa que para cortar uma peça-parte A se gasta
1 1
20
dessa capacidade. Do mesmo modo gasta-se 60
da capacidade para cortar a
1
peça-parte B e da capacidade para cortar a peça-parte C. Assim, para cortar 𝑥𝐴
25

peça-parte A, 𝑥𝐵 peça-parte B e 𝑥𝐶 peça-parte C, a capacidade por hora de corte


1 1 1
tem que ser distribuída de tal forma que 𝑥
20 𝐴
+ 60 𝑥𝐵 + 25 𝑥𝐶 ≤ 1. Fazendo o mesmo

raciocínio para a capacidade por hora de perfuração e de polimento, chega-se a


1 1 1 1 1 1
𝑥
40 𝐴
+ 20 𝑥𝐵 + 40 𝑥𝐶 ≤ 1 e 𝑥
20 𝐴
+ 50 𝑥𝐵 + 20 𝑥𝐶 ≤ 1, que são as restrições do modelo. As

restrições de capacidade das operações são (≤) pois se fossem do tipo (=), indicaria
P á g i n a | 19

que as operações seriam realizadas ao máximo, o que produziria estoques de peças-


parte não acabadas, pois há gargalo na operação.
O lucro para cada peça é calculado da seguinte forma:

𝑙𝑢𝑐𝑟𝑜 = 𝑝𝑟𝑒ç𝑜 𝑑𝑒 𝑣𝑒𝑛𝑑𝑎 − 𝑐𝑢𝑠𝑡𝑜 𝑑𝑒 𝑎𝑞𝑢𝑖𝑠𝑖çã𝑜 − 𝑐𝑢𝑠𝑡𝑜 𝑑𝑎𝑠 𝑜𝑝𝑒𝑟𝑎çõ𝑒𝑠

Onde:

𝑐𝑢𝑠𝑡𝑜 𝑑𝑎𝑠 𝑜𝑝𝑒𝑟𝑎çõ𝑒𝑠 = 𝑐𝑢𝑠𝑡𝑜 𝑐𝑜𝑟𝑡𝑒 + 𝑐𝑢𝑠𝑡𝑜 𝑝𝑒𝑟𝑓𝑢𝑟𝑎çã𝑜 + 𝑐𝑢𝑠𝑡𝑜 𝑝𝑜𝑙𝑖𝑚𝑒𝑛𝑡𝑜

Cálculos dos Custos das Operações para cada peça:

150 𝑟𝑒𝑎𝑖𝑠 1 ℎ𝑜𝑟𝑎 100 𝑟𝑒𝑎𝑖𝑠 1 ℎ𝑜𝑟𝑎 200 𝑟𝑒𝑎𝑖𝑠 1 ℎ𝑜𝑟𝑎


(𝑐𝑢𝑠𝑡𝑜 𝑑𝑎𝑠 𝑜𝑝𝑒𝑟𝑎çõ𝑒𝑠)𝐴 = ( ∗ )+( ∗ )+( ∗ ) = 7,50 + 2,50 + 10 = 20 𝑟𝑒𝑎𝑖𝑠
ℎ𝑜𝑟𝑎 20 ℎ𝑜𝑟𝑎 40 ℎ𝑜𝑟𝑎 20
150 𝑟𝑒𝑎𝑖𝑠 1 ℎ𝑜𝑟𝑎 100 𝑟𝑒𝑎𝑖𝑠 1 ℎ𝑜𝑟𝑎 200 𝑟𝑒𝑎𝑖𝑠 1 ℎ𝑜𝑟𝑎
(𝑐𝑢𝑠𝑡𝑜 𝑑𝑎𝑠 𝑜𝑝𝑒𝑟𝑎çõ𝑒𝑠)𝐵 = ( ∗ )+( ∗ )+( ∗ ) = 2,50 + 5,00 + 4 = 11,50 𝑟𝑒𝑎𝑖𝑠
ℎ𝑜𝑟𝑎 60 ℎ𝑜𝑟𝑎 20 ℎ𝑜𝑟𝑎 50
150 𝑟𝑒𝑎𝑖𝑠 1 ℎ𝑜𝑟𝑎 100 𝑟𝑒𝑎𝑖𝑠 1 ℎ𝑜𝑟𝑎 200 𝑟𝑒𝑎𝑖𝑠 1 ℎ𝑜𝑟𝑎
(𝑐𝑢𝑠𝑡𝑜 𝑑𝑎𝑠 𝑜𝑝𝑒𝑟𝑎çõ𝑒𝑠)𝑐 = ( ∗ )+( ∗ )+( ∗ ) = 6,00 + 2,50 + 10 = 18,50 𝑟𝑒𝑎𝑖𝑠
ℎ𝑜𝑟𝑎 25 ℎ𝑜𝑟𝑎 40 ℎ𝑜𝑟𝑎 20

O lucro para cada peça pode ser calculado como:


𝑙𝑢𝑐𝑟𝑜𝐴 = 200 − 120 − 20 = 60 𝑟𝑒𝑎𝑖𝑠
𝑙𝑢𝑐𝑟𝑜𝐵 = 350 − 200 − 11,50 = 138,50 𝑟𝑒𝑎𝑖𝑠
𝑙𝑢𝑐𝑟𝑜𝐶 = 500 − 400 − 18,50 = 81,50 𝑟𝑒𝑎𝑖𝑠

Assim, a função objetivo é 𝒛 = 𝟔𝟎𝒙𝑨 + 𝟏𝟑𝟖, 𝟓𝒙𝑩 + 𝟖𝟏, 𝟓𝒙𝑪 .

Finalmente, pode-se formular o seguinte modelo:


Maximizar 𝑧 = 60𝑥𝐴 + 138,5𝑥𝐵 + 81,5𝑥𝐶
1 1 1
Sujeito a 𝑥
20 𝐴
+ 60 𝑥𝐵 + 25 𝑥𝐶 ≤ 1
1 1 1
𝑥𝐴 + 𝑥𝐵 + 𝑥𝐶 ≤ 1
40 20 40
1 1 1
𝑥𝐴 + 𝑥𝐵 + 𝑥𝐶 ≤ 1
20 50 20
𝑥𝑖 ≥ 0, 𝑖 = 𝐴, 𝐵, 𝐶
P á g i n a | 20

Resolução de programa linear

Considere o seguinte programa linear:


minimizar 𝑧 = −𝑥1 − 6𝑥2
sujeito a 2𝑥1 − 𝑥2 ≥ 0
𝑥2 ≤ 2
2
𝑥 − 𝑥2 ≤ 0
3 1
𝑥𝑗 ≥ 0, 𝑗 = 1,2

Vamos começar o resolvendo pelo método gráfico. O procedimento gráfico


inclui duas etapas (TAHA, 2008, p. 8):
1. Determinação da região de soluções viáveis, e
2. Determinação da solução ótima entre todos os pontos viáveis da região de
soluções.
Na etapa de determinação da região de soluções viáveis temos:
Levando-se em conta as restrições de não-negatividade de 𝑥1 e 𝑥2 , a
representação gráfica do programa linear se restringe a área de região de soluções
ao primeiro quadrante.
Para levar em conta as três restrições restantes, primeiro substitui-se cada
desigualdade por uma equação e depois se representa graficamente a linha reta
resultante. Ou seja, representa-se:

2𝑥1 − 𝑥2 = 0 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 (𝐼)


𝑥2 = 2 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 (𝐼𝐼)
2
𝑥 − 𝑥2 = 0 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 (𝐼𝐼𝐼)
3 1

A Figura 1 mostra as três equações no plano 𝑥1 𝑥2.


P á g i n a | 21

Figura 1: Representação gráfica.

Representação Gráfica
3

x_2 2

0
0 1 2 3 4
x_1

Restrição (I) Restrição (II) Restrição (III)

Fonte: a autora.

Em seguida, tem-se que considerar o efeito da desigualdade.

Figura 2: Efeito da desigualdade.

Representação Gráfica
3

2
x_2

0
0 1 2 3 4
x_1

Restrição (I) Restrição (II) Restrição (III)

Fonte: a autora.

As setas na Figura 2 representam qual meia-região é viável, ou seja, que satisfaz


a desigualdade de suas respectivas restrições.
P á g i n a | 22

A região de soluções viáveis do programa representa a área do primeiro


quadrante na qual todas as restrições são satisfeitas simultaneamente. Como
mostrado na Figura 3.

Figura 3: Região viável.

Representação Gráfica
3

2
B
C
x_2

0
A0 1 2 3 4
x_1

Restrição (I) Restrição (II) Restrição (III)

Fonte: a autora.

Na Figura 3 qualquer ponto que esteja dentro ou sobre o contorno da área


ABC é parte da região de soluções viáveis.
Na etapa de determinação da solução ótima, a solução ótima está sempre
associada a um ponto extremo (TAHA, 2008, p. 9). Podemos encontrar a solução
ótima enumerando todos os pontos extremos e calculando o valor para 𝑧. A Tabela
3 mostra esses pontos extremos. A solução ótima é no ponto C, onde 𝑥1 = 3, 𝑥2 = 2 e
𝑧 = −15.

Tabela 3: Enumeração dos pontos extremos.


Ponto extremo (𝑥1 , 𝑥2 ) 𝑧
A (0,0) 0
B (1,2) −13
C (3,2) −15
Fonte: a autora.
P á g i n a | 23

Solução pelo método Simplex:


O desenvolvimento dos cálculos do método simplex é facilitado pela
imposição de dois requisitos às restrições do problema (TAHA, 2008, p. 38):
1. Todas as restrições (com exceção da não-negatividade das variáveis) são
equações cujos lados direitos são não negativos.
2. Todas as variáveis são não negativas.

Etapa 1: Conversão de desigualdades em equações com o lado direito não


negativo.
Para transformar as restrições de desigualdades em equações no programa
linear estudado, precisamos inserir variáveis de sobra ou de folga não-negativas nas
restrições de desigualdade, sendo subtraída na restrição (≥) e adicionada nas
restrições (≤). Assim temos:
minimizar 𝑧 = −𝑥1 − 6𝑥2
sujeito a 2𝑥1 − 𝑥2 − 𝑥3 =0
(I)
𝑥2 + 𝑥4 =2
(II)
2
𝑥 − 𝑥2 + 𝑥5 = 0 (III)
3 1
𝑥𝑗 ≥ 0, 𝑗 = 1,2, … , 5

Etapa 2: Cálculo do Algoritmo Simplex.


Multiplicando a equação (I) por (-1) para ficar na forma canônica (marcado
de vermelho na tabela 4) e colocando na tabela simplex, temos:

Tabela 4: Iteração 0.
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5
𝑥3 -2 1 1 0 0 0
𝑥4 0 1 0 1 0 2
𝑥5 2/3 -1 0 0 1 0
-1 -6 0 0 0 𝑧
Fonte: a autora.

Olhando para a função objetivo, ou seja, a linha de 𝑧 (a última linha na tabela),


temos que a variável 𝑥2 tem o coeficiente mais negativo, isto significa que um
aumento desta variável diminui mais o valor da função objetivo do que um aumento
P á g i n a | 24

na outra variável, logo, a variável 𝑥2 é a que entra na base. A variável que sai da
base é aquela em que o cálculo da razão não negativa entre o lado direito da
equação e o coeficiente de restrição correspondente da variável que entra na base
é mínima. A Tabela 5 mostra os cálculos.

Tabela 5: Razão mínima.


Entrando Razão
Base 𝑥2 (ou interseção)
𝑥3 1 0 𝑥2 = 0⁄1 = 0 ← 𝑖𝑔𝑛𝑜𝑟𝑎𝑟
𝑥4 1 2 𝑥2 = 2⁄1 = 2 ← 𝑚í𝑛𝑖𝑚𝑜
𝑥5 -1 0 𝑥2 = 0⁄−1 = 0 ← 𝑖𝑔𝑛𝑜𝑟𝑎𝑟
Conclusão: 𝑥2 entra e 𝑥4 sai
Fonte: a autora.

O novo conjunto de soluções é determinado pela troca entre a variável que


entra na base, 𝑥2 , e a variável que sai da base, 𝑥4 , na tabela simplex para produzir os
seguintes conjuntos de variáveis não básicas e básicas:
 Variáveis não básicas (zero): (𝑥1 , 𝑥4 );
 Variáveis básicas: (𝑥2 , 𝑥3 , 𝑥5 )

O processo de troca é baseado nas operações de Gauss-Jordan, que


identifica a coluna da variável que entra na base como a coluna do pivô, e a linha
da variável que sai como a linha do pivô. A interseção da coluna do pivô com a linha
do pivô é denominada elemento pivô. (TAHA, 2008, p. 44).

Tabela 6: Coluna e linha Pivôs.


Entra

𝑥1 𝑥2 𝑥3 𝑥4 𝑥5
𝑥3 -2 1 1 0 0 0
Sai 𝑥4 0 1 0 1 0 2 Linha do Pivô
𝑥5 2/3 -1 0 0 1 0
-1 -6 0 0 0 𝑧
Coluna do
pivô
Fonte: a autora.
P á g i n a | 25

Os cálculos por Gauss-Jordan necessários para produzir a nova solução básica


são de dois tipos:
1. Linha do pivô
a. Substituir a variável que sai da base na coluna Base pela variável que entra
na base.
b. Nova linha do pivô = Linha do pivô atual ÷ elemento pivô.
2. Todas as outras linhas, incluindo 𝑧
Nova linha = (Linha atual) – (Seu coeficiente de coluna do pivô) x (Nova linha
do pivô).
Esses cálculos são aplicados à Tabela 3 da seguinte maneira:
1. Substituir 𝑥4 na coluna Base por 𝑥2 :
𝑁𝑜𝑣𝑎 𝑙𝑖𝑛ℎ𝑎 𝑥2 = 𝑙𝑖𝑛ℎ𝑎 𝑥4 𝑎𝑡𝑢𝑎𝑙 ÷ 1 = (0 1 0 1 0 2)
2. 𝑁𝑜𝑣𝑎 𝑙𝑖𝑛ℎ𝑎 𝑥3 = 𝐿𝑖𝑛ℎ𝑎 𝑥3 𝑎𝑡𝑢𝑎𝑙 − 1(0 1 0 1 0 2) = (−2 1 1 0 0 0) − (0 1 0 1 0 2) =
(−2 0 1 − 1 0 − 2)
2
3. 𝑁𝑜𝑣𝑎 𝑙𝑖𝑛ℎ𝑎 𝑥5 = 𝐿𝑖𝑛ℎ𝑎 𝑥5 𝑎𝑡𝑢𝑎𝑙 − (−1)(0 1 0 1 0 2) = ( − 1 0 0 1 0) +
3
2
(0 1 0 1 0 2) = ( 0 0 1 1 2)
3

4. 𝑁𝑜𝑣𝑎 𝑙𝑖𝑛ℎ𝑎 𝑧 = 𝐿𝑖𝑛ℎ𝑎 𝑧 𝑎𝑡𝑢𝑎𝑙 − (−6)(0 1 0 1 0 2) = (−1 − 6 0 0 0 𝑧) +


(0 6 0 6 0 12) = (−1 0 0 6 0 𝑧 + 12)
A nova solução básica é (𝑥3 , 𝑥2 , 𝑥5 ), e a nova tabela se torna da seguinte
maneira:

Tabela 7: Iteração 1.
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5
𝑥3 -2 0 1 -1 0 -2
𝑥2 0 1 0 1 0 2
𝑥5 2/3 0 0 1 1 2
-1 0 0 6 0 𝑧 + 12
Fonte: a autora.

Fazendo o mesmo procedimento, 𝑥1 entra na base e 𝑥3 sai, a Tabela 8 mostra


a Iteração 2.
P á g i n a | 26

Tabela 8: Iteração 2.
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5
𝑥1 1 0 -1/2 1/2 0 1
𝑥2 0 1 0 1 0 2
𝑥5 0 0 1/3 2/3 1 4/3
0 0 -1/2 13/2 0 𝑧 + 13
Fonte: a autora.

Do mesmo modo, 𝑥3 entra na base e 𝑥5 sai, a Tabela 9 mostra a Iteração 3.

Tabela 9: Iteração 3.
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5
𝑥1 1 0 0 3/2 3/2 3
𝑥2 0 1 0 1 0 2
𝑥3 0 0 1 2 3 4
0 0 0 15/2 3/2 𝑧 + 15
Fonte: a autora.

Não se tem mais nenhum coeficiente não negativo na linha de 𝑧, então para-
se e a solução ótima é 𝑥1 = 3, 𝑥2 = 2, 𝑥3 = 4 , 𝑥4 = 0, 𝑥5 = 0 e 𝑧 = 15.
Resumo

Nesta aula vimos como surgiu a Pesquisa Operacional, falamos sobre as


técnicas utilizadas, como a programação linear, inteira, dinâmica, otimização em
redes e programação não linear.
Vimos também dois exemplos de modelagem e resolvemos um programa
linear pelo método algébrico e pelo método simplex.
Na próxima aula veremos a Teoria dos Grafos, onde utilizaremos a otimização
em redes. Como estamos na era da Tecnologia e Informação, vocês vão gostar da
Teoria dos Grafos!
Referências

Básica:
ARENALES, M. et al. Pesquisa operacional. Rio de Janeiro: Elsevier Campus, 2007.

GOLDBARG, M.; LUNA, H. Otimização combinatória e programação linear: modelos e


algoritmos. São Paulo: Elsevier Editora Ltda, 2005.

HILLIER, F. S.; LIEBERMAN, G. J. Introdução à pesquisa operacional. São Paulo:


McGraw-Hill, 2006.

RAMOS, R. F. Pesquisa operacional I. Itaperuna: IBL, 2018.

TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.


Exercícios
AULA 1

ATIVIDADE

1) Onde e como surgiu a Pesquisa Operacional?

2) Resolva pelo método simplex o problema 1 da seção 1.2.

3) Resolva pelo método simplex o problema 2 da seção 1.2.


Aula 2
Introdução à teoria dos grafos

APRESENTAÇÃO DA AULA

Nesta aula veremos uma breve introdução da Teoria dos Grafos, onde a
Pesquisa Operacional utiliza modelos de grafos na busca por melhores soluções dos
seus problemas. Veremos alguns conceitos e definições dessa Teoria e nas próximas
aulas veremos alguns exemplos, assim como alguns algoritmos.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Histórico da Teoria dos Grafos;


 Definição e conceitos da Teoria;
 Familiarização com os termos.
P á g i n a | 31

2 INTRODUÇÃO

Breve histórico

ATENÇÃO

Um dos primeiros problemas que se tem registro sobre a Teoria dos Grafos tem
a data de 1736, na cidade de Königsberg, na Prússia Oriental (atualmente a cidade
se chama Kaliningrad). A cidade era cortada pelo rio Pregel e sobre ele havia duas
ilhas. As ilhas eram ligadas entre si por uma ponte e elas ainda se ligavam às margens
por mais seis pontes ao todo, conforme pode ser visto na figura 4.

Figura 4: Disposição das Pontes nas ilhas do Rio Pregel.

Fonte: BOAVENTURA NETTO; JURKIEWICZ (2019, p. 2)

Os intelectuais da cidade estavam discutindo como sair de uma das margens,


percorrer uma única vez cada ponte e retornar a margem de saída. Apesar de
parecer simples, o problema ainda não tinha sido resolvido.
P á g i n a | 32

PARA
REFLEXÃO

Tente resolvê-lo! É como aqueles jogos que aparecem em jornais ou charadas,


de percorrer todas as linhas de uma figura, sem tirar a caneta do papel.
Na época, Euler, um grande matemático e geômetra, observou que o número
de passagens de uma margem para uma ilha, ou entre as duas ilhas, sempre era
ímpar, conforme podemos observar na figura 5. E isto indica que se pode passar, mas
que em algum momento não se conseguirá retornar. Ele conseguiu provar que a
questão discutida só seria possível se cada pedaço de terra se ligasse a outro por um
número par de pontes.

Figura 5: Modelo de Grafo das Pontes do Rio Pregel.

Fonte: BOAVENTURA NETTO; JURKIEWICZ (2019, p. 2)

Esse esquema da figura 2 é uma representação gráfica de modelo de grafo,


onde 𝑚1 e 𝑚2 indicam as margens e 𝑖1 e 𝑖2 indicam as ilhas. 𝑚1 , 𝑚2 , 𝑖1 𝑒 𝑖2 são
chamados de nós ou vértices e cada “ponte” é chamada de aresta, este conjunto
é chamado de rede ou grafo.
O problema das pontes de Königsberg foi deixado de lado, o que não foi bom
para a evolução da teoria dos grafos.
Apenas em 1847, ou seja, 111 anos depois, que alguns resultados importantes
para a teoria foram produzidos por uma pesquisa de Kirchhoff. Ele publicou resultados
P á g i n a | 33

sobre circuitos elétricos, nos quais eram utilizados modelos de grafos (BOAVENTURA
NETTO; JURKIEWICZ, 2019, p. 3).
O interesse de muitos matemáticos pelo estudo dos grafos cresceu ao longo
do século XX. A partir da década de 1950, a Pesquisa Operacional começou a utilizar
os modelos de grafos, na busca de melhores soluções para os seus problemas de
projeto, organização e distribuição. Dois acontecimentos motivaram o rápido
desenvolvimento da PO, um foi a criação do algoritmo simplex, conhecido de vocês,
e o outro foi a proliferação dos microcomputadores e o rápido aumento em sua
velocidade de processamento. Com a invenção do computador, essas aplicações
puderam promover grande divulgação do tipo de modelagem e o caminho foi
aberto para a aplicação dos conceitos desenvolvidos no período.
Hoje em dia, a teoria dos grafos é um campo de interesse crescente, cujas
aplicações são inúmeras e nos mais variados campos, vão desde problemas mais
simples, como sua rede de amigos, por exemplo, até mais complexos, como a rede
de Internet.
A Internet é um exemplo de uma rede complexa, que podemos definir
informalmente como uma grande coleção de nós interconectados. Um nó pode ser
qualquer coisa: uma pessoa, uma organização, um computador, uma célula
biológica, e assim por diante. Interconectado significa que dois nós podem ser
ligados, por exemplo, porque duas pessoas se conhecem, duas organizações trocam
bens, dois computadores têm um cabo que conecta os dois, ou porque dois
neurônios estão conectados por meio de sinapses para passar sinais. O que torna
essas redes complexas é que elas são geralmente tão grandes que é impossível
entender ou prever seu comportamento geral, olhando para o comportamento de
nós individuais ou links (STEEN, 2010).

Conceitos e definições

2.2.1 Modelo

Como a PO utiliza modelos em seus programas, vamos defini-lo de uma


maneira mais formal.
P á g i n a | 34

ATENÇÃO

Um modelo é uma simplificação de uma realidade com a qual nos interessa


trabalhar, construída de modo a conter aquilo que mais nos interessa e de forma que
nos permita obter as respostas de que necessitamos (BOAVENTURA NETTO;
JURKIEWICZ, 2019, p. 7).

Vamos a um exemplo bem simples.

EXEMPLO

Suponha que uma professora queira construir um modelo de relacionamento


e peça a seus alunos que indique os colegas dos quais cada um mais gosta. Após,
ela escreve os nomes dos alunos em um papel e coloca setas de um lado para outro
que indica quem gosta de quem. Tal modelo se chama sociograma. Pelo modelo a
professora pode descobrir se um aluno está deslocado na turma, quantos grupos são
formados, quais as pessoas mais sociáveis. Tal modelo está representado na Figura 6.
P á g i n a | 35

Figura 6: Modelo de Sociograma.

Fonte: (BOAVENTURA NETTO; JURKIEWICZ (2019, p. 7).

Podemos representar cada aluno por vértices e as setas por arestas, o que
podemos visualizar na figura 7.

Figura 7: Modelo de Grafo.

Fonte: a autora.

Vamos ver alguns conceitos para poder desbravar mais sobre esse incrível
mundo dos Grafos!
P á g i n a | 36

2.2.2 Noções básicas de redes e gráficos

Em diversos problemas podemos identificar conjuntos de elementos


fundamentais, que mantêm uma relação entre si, por exemplo, no sociograma
apresentado na seção anterior, ou em um conjunto de cidades e um conjunto de
estradas que ligam as cidades diretamente, suas conexões nas redes sociais, a
própria rede de Internet, um conjunto de tarefas e a relação de precedência entre
elas etc.

ATENÇÃO

Vamos supor que o número de elementos fundamentais seja finito, de maneira


que possamos enumerá-los. Estes elementos fundamentas são chamados de vértices
ou nós, 𝑣1 , 𝑣2 , ⋯ , 𝑣𝑛 . Para indicar que o vértice 𝑖 se relaciona com o vértice 𝑗, utilizamos
(𝑣𝑖 , 𝑣𝑗 ) ou (𝑖, 𝑗) (ARENALES et al., 2007, p. 289). Vamos para a nossa primeira definição:
Definição 1: Seja 𝑁 um conjunto finito, que contêm elementos chamados de
nós (ou vértices) e 𝐸 um conjunto de pares de nós, onde os elementos (𝑖, 𝑗) são
chamados de arestas. O par 𝐺 = (𝑁, 𝐸) é chamado grafo. Uma rede é um grafo onde
nós e/ou arestas têm valores associados.
Podemos querer saber o número de elementos de um conjunto 𝑋, esse número
é chamado de cardinalidade de 𝑋 e é denotado por |𝑋|. Assim, se o grafo 𝐺 = (𝑁, 𝐸)
tem 𝑛 nós e 𝑚 arestas, significa dizer que |𝑁| = 𝑛 e |𝐸| = 𝑚, ou seja, a cardinalidade
de 𝑁 é 𝑛 e a cardinalidade de 𝐸 é 𝑚.
A representação gráfica de um grafo 𝐺 = (𝑁, 𝐸) pode ser feita da seguinte
maneira: cada nó 𝑖 é representado por um círculo com o rótulo 𝑖, e cada aresta (𝑖, 𝑗)
por uma linha que conecta os dois círculos rotulados de 𝑖 e 𝑗.
Vamos ver como ficaria a representação gráfica do seguinte conjunto de nós
𝑁 = {1,2,3,4} e o conjunto de arestas 𝐸 = {(1,2), (2,3), (3,4), (4,1)}.
P á g i n a | 37

Figura 8: Representações gráficas de um Grafo.

Fonte: a autora.

PARA
REFLEXÃO

Na figura 8 temos três exemplos de representar o grafo com o conjunto de nós


e arestas dado. Existe uma maneira correta de representar? Isso vai depender de o
que você estiver representando. Os nós {1,2,3,4} podem representar quatro cidades
e as arestas representar as estradas ligando-as, ou podem representar quatro pessoas
e as arestas a ligação entre elas etc.
Se uma aresta (𝑖, 𝑗) pertence a 𝐸, dizemos que a aresta (𝑖, 𝑗) é incidente nos
nós 𝑖 e 𝑗, e estes nós são adjacentes. No exemplo da figura 5 temos que os nós 1 e 2
são adjacentes, a aresta (1,2) é incidente nos nós 1 e 2; e os nós 1 e 3 não são
adjacentes, observe que não existe a aresta (1,3).
As arestas que representam as relações entre os nós podem ser orientadas ou
não. O grafo cujas arestas não têm orientação é denominado grafo não orientado,
como na figura 5. Já o grafo cujas arestas são todas orientadas, é denominado grafo
orientado, como na figura 8. Vamos para a nossa segunda definição:
Definição 2: Um grafo 𝐺 = (𝑁, 𝐸) no qual as arestas são pares ordenados
(subconjunto 𝑁 × 𝑁) é chamado grafo orientado ou dígrafo. Neste caso, o par
ordenado (𝑖, 𝑗) é chamado arco, e 𝑖 é o nó inicial e 𝑗 o nó final. Uma rede orientada
é um grafo orientado cujos nós e/ou arestas têm valores associados.
Na representação gráfica, o grafo orientado é representado de forma
análoga ao grafo, o que muda é que o arco (𝑖, 𝑗) é representado por uma flecha de
𝑖 para 𝑗, no lugar de uma linha, para indicar a orientação relevante. Dada a
P á g i n a | 38

orientação do arco (𝑖, 𝑗), podemos dizer que o arco é de saída (ou emergente) do
nó 𝑖 e de entrada no nó 𝑗. O nó inicial 𝑖 é chamado de nó cauda do arco (𝑖, 𝑗) e o nó
final 𝑗 é chamado de nó cabeça do arco (𝑖, 𝑗) (ARENALES et al., 2007, p. 290).
Pode existir um ou mais valores numéricos associados a cada aresta ou arco
(𝑖, 𝑗) ∈ 𝐸 representando parâmetros relativos à aresta ou ao arco, como custo ou
comprimento da aresta ou arco. Assim como pode existir também um ou mais valores
numéricos associados a cada nó 𝑖 ∈ 𝑁, que pode indicar a demanda ou suprimento,
a capacidade do nó etc. Em uma representação gráfica os valores associados às
arestas ou aos arcos podem ser indicados sobre eles, e os valores associados aos nós
podem ser indicados ao lado deles.
Por exemplo, considerando o conjunto de vértices 𝑁 = {1,2,3,4}, o conjunto de
arcos 𝐸 = {(1,2), (1,3), (2,4), (3,4)} e os valores associados a cada arco, 𝑡12 = 2, 𝑡13 = 4,
𝑡24 = 2 e 𝑡34 = 3. A figura 9 mostra a representação gráfica desta rede orientada.

Figura 9: Exemplo de Representação Gráfica de uma Rede Orientada.

Fonte: a autora.

Os nós do exemplo anterior podem representar quatro tarefas que precisam


ser executadas. Os nós podem representar a relação de precedência entre elas, por
exemplo, a tarefa 2 e 3 só podem ser executadas depois que a 1 for concluída. Os
valores associados a cada arco podem representar tempos de espera, ou seja, para
que uma tarefa possa ser executada, é necessário esperar um tempo após o término
da tarefa precedente.
Definição 3: Sendo 𝑖0 e 𝑖𝑘 dois nós, um caminho do nó 𝑖0 ao nó 𝑖𝑘 é uma
sequência de arcos 𝐶 = {(𝑖0 , 𝑖1 ), (𝑖1 , 𝑖2 ), (𝑖2 , 𝑖3 ), ⋯ , (𝑖𝑘−1 , 𝑖𝑘 )}, em que o nó inicial de cada
arco é o nó final do arco imediatamente anterior na sequência, e todos os nós são
distintos, ou seja, 𝑖0 ≠ 𝑖2 ≠ 𝑖3 ≠ ⋯ ≠ 𝑖𝑘−1 ≠ 𝑖𝑘 .
Por exemplo, no dígrafo da figura 6, um caminho do nó 1 ou nó 4 seria
{(1,3), (3,4)}, outro caminho seria {(1,2), (2,4)}.
P á g i n a | 39

Definição 4: Diferentemente do caminho, onde os arcos precisam estar


coerentemente orientados, uma cadeia é uma sequência de arcos de modo que
cada arco tem exatamente um nó em comum como o arco imediatamente anterior
na sequência. Ou seja, na cadeia o nó inicial de cada arco não necessariamente é
o nó final do arco imediatamente anterior na sequência, apenas precisam tem um
nó em comum.

ATENÇÃO

Todo caminho é uma cadeia, mas nem toda cadeia é um caminho.

Definição 5: Um circuito é um caminho fechado, isto é, é um caminho de um


nó 𝑖0 a um nó 𝑖𝑘 onde 𝑖𝑘 = 𝑖0 . Um ciclo é o correspondente ao circuito, no caso da
cadeia, ou seja, o ciclo é uma cadeia fechada. No dígrafo da figura 9, nós não temos
um circuito, mas temos ciclos, por exemplo, os ciclos {(1,2), (2,4), (3,4), (1,3)} e
{(1,3), (3,4), (2,4), (1,2)}.

ATENÇÃO

Perceberam a diferença entre circuito e ciclo? O circuito só ocorre em um


caminho, onde a orientação do grafo importa. Já o ciclo ocorre na cadeia, onde a
orientação do grafo não importa.
Quando em um grafo não há nenhum circuito, dizemos que o grafo é acíclico,
caso contrário, ele é cíclico.
P á g i n a | 40

Definição 6: Se existe pelo menos uma cadeia entre quaisquer dois dos nós de
um grafo, ele é dito fracamente conectado (ou simplesmente conectado), e ele é
fortemente conectado se existe pelo menos um caminho de cada nó a todos os
demais nós do grafo.
Definição 7: Uma árvore é um grafo conectado sem ciclos. Diz-se que um grafo
𝐺 ′ = (𝑁 ′ , 𝐸 ′ ) é um subgrafo de 𝐺 = (𝑁, 𝐸) se 𝑁 ′ ⊆ 𝑁 e 𝐸 ′ ⊆ 𝐸, com a condição de que,
se (𝑖, 𝑗) ∈ 𝐸 ′ , então 𝑖 e 𝑗 também devem pertencer a 𝑁 ′ . Uma árvore geradora de um
Grafo 𝐺 é um subgrafo de 𝐺 que é uma árvore e inclui todos os nós do grafo 𝐺.
(ARENALES et al., 2007, p. 292)
Árvores geradoras são de grande interesse no estudo de fluxos em redes e elas
possuem algumas propriedades que a caracterizam. Vamos ver algumas delas!
Propriedade 1: Considere um grafo 𝐺 = (𝑁, 𝐸), com |𝑁| = 𝑛 (isto é, 𝑁 tem
cardinalidade 𝑛, em outras palavras, 𝐺 tem 𝑛 nós), e um subgrafo de 𝐺 ′ = (𝑁, 𝐸 ′ ) de
𝐺. As seguintes afirmações são equivalentes:
i. 𝐺 ′ = (𝑁, 𝐸 ′ ) é uma árvore geradora de 𝐺;
ii. |𝐸 ′ | = 𝑛 − 1 (isto é, 𝐺 ′ tem 𝑛 − 1 arcos) e 𝐺 ′ é conectado;
iii. |𝐸 ′ | = 𝑛 − 1 e 𝐺 ′ não tem ciclos

Resumindo, toda árvore geradora de um grafo com 𝑛 nós tem 𝑛 − 1 arcos e


basta que seja um subgrafo conectado ou sem ciclos.

Vamos aos exemplos!

ATENÇÃO

Considerando o Grafo da Figura 7, podemos ver algumas árvores geradoras


deste grafo na figura 8. Note que em cada caso temos 4 nós e 3 arcos, nenhum ciclo
e todos os nós estão conectados, o que está de acordo com as propriedades de
árvores geradoras.
P á g i n a | 41

Figura 10: Exemplo de Grafo.

Fonte: a autora.

Figura 11: Árvores Geradoras do Grafo da Figura 7.

Fonte: a autora.

2.2.3 Representação matricial

Os grafos também podem ser representados em forma de matrizes. Tal


representação é útil na formalização de modelos matemáticos de problemas que
podem ser representados por grafos. A forma matricial também é útil para armazenar
o grafo (ou rede) no computador.
Definição 8: Seja 𝐺 = (𝑁, 𝐸) um grafo em que |𝑁| = 𝑛. A matriz 𝑴 = [𝑚𝑖𝑗 ]𝑛×𝑛 é

chamada matriz de adjacências, onde 𝑚𝑖𝑗 = 1 se (𝑖, 𝑗) ∈ 𝐸 e 𝑚𝑖𝑗 = 0, caso contrário.


Por exemplo, a matriz de adjacência do Grafo (orientado) da figura 7 é a seguinte:

1 2 3 4
0 1 1 0 1
𝑴= 0 0 1 1] 2
[ 3
0 0 0 1
0 0 0 0 4

Caso o grafo não fosse orientado, a matriz 𝑴 seria simétrica, pois a matriz de
grafos não orientado é sempre simétrica (𝑴 = 𝑴𝑻 ). No caso de uma rede, onde cada
arco (𝑖, 𝑗) têm um valor associado 𝑐𝑖𝑗 ≠ 0, podemos colocar essa informação em 𝑴,
fazendo 𝑚𝑖𝑗 = 𝑐𝑖𝑗 para todo (𝑖, 𝑗) ∈ 𝐸 e 𝑚𝑖𝑗 = 0, caso contrário. A matriz de incidência
P á g i n a | 42

nó-aresta ou nó-arco é uma outra forma utilizada para a representação de um grafo,


vamos ver nas definições 9 e 10.
Definição 9: Seja 𝐺 = (𝑁, 𝐸) um grafo não orientado em que |𝑁| = 𝑛 e |𝐸| = 𝑚,
isto é, o grafo possui 𝑛 nós e 𝑚 arestas. A matriz 𝑷 = [𝑝𝑖𝑘 ]𝑛×𝑚 é chamada matriz de
incidência nó-aresta, tal que:
 𝑝𝑖𝑘 = 1 se a aresta 𝑘 é definida por (𝑖, 𝑗) ∈ 𝐸 ou (𝑗, 𝑖) ∈ 𝐸, ou seja, a aresta 𝑘 é
incidente ao nó 𝑖, e
 𝑝𝑖𝑘 = 0, caso contrário.

Definição 10: Seja 𝐺 = (𝑁, 𝐸) um grafo orientado em que |𝑁| = 𝑛 e |𝐸| = 𝑚, isto
é, o grafo possui 𝑛 nós e 𝑚 arestas. A matriz 𝑷 = [𝑝𝑖𝑘 ]𝑛×𝑚 é chamada matriz de
incidência nó-arco, tal que:
 𝑝𝑖𝑘 = +1 se o arco 𝑘 é (𝑖, 𝑗)
 𝑝𝑖𝑘 = −1 se o arco 𝑘 é (𝑗, 𝑖)
 𝑝𝑖𝑘 = 0, caso contrário.

O Grafo da figura 7 pode ser representado pela seguinte matriz de incidência


nó-arco.

Tabela 10: Definição 10.


(1,2) (1,3) (2,3) (2,4) (3,4)
1 1 0 0 0 1
−1 0 1 1 0 2
𝑷=
0 −1 −1 0 1 3
0 0 0 −1 −1 4
Fonte: a autora.

Podemos observar que caso o grafo da figura 10 fosse não orientado, a matriz
de incidência seria nó-aresta, e onde 𝑝𝑖𝑘 = −1 seria 𝑝𝑖𝑘 = 1.

Otimização em rede

Muitos problemas práticos de otimização podem ser analisados melhor


utilizando-se a estrutura de grafo ou rede. Os problemas de otimização em redes
podem aparecer em diversas aplicações e em diversas formas (ARENALES et al., 2007,
p. 289). Iremos ver alguns problemas nas próximas aulas.
P á g i n a | 43

LEMBRETE

Vamos em frente que ainda temos muita coisa para aprender!


Resumo

Nesta aula vimos o que é um grafo, como representá-lo graficamente e


através de matrizes (matrizes adjacências e de incidência nó-aresta e nó-arco).
Vimos também a diferença entre grafo orientado e não orientado. O conceito de
caminho e cadeia e circuito e ciclo. Aprendemos o que é uma árvore, um subgrafo
e um árvore geradora.

Agora vamos praticar com alguns exercícios na próxima aula.


Complementar

VÍDEO

Vale muito apena conferir essa playlist sobre Introdução à Teoria dos Grafos do
Professor Marcos Paulo Ferreira de Araújo:1

1 Introdução à Teoria dos Grafos - Aula 1 - O que é um grafo?. [S. l.: s. n.], 2016. 1 vídeo (11
min). Publicado pelo canal Programa de Iniciação Cientifica da OBMEP. Disponível em:
https://www.youtube.com/watch?v=Frmwdter-vQ&list=PLrVGp617x0hAm90-
7zQzbRsSOnN2Vbr-I. Acesso em: 25 ago. 2019.
Referências

Básica:
ARENALES, M. et al. Pesquisa operacional. Rio de Janeiro: Elsevier Campus, 2007.

BOAVENTURA NETTO, P. O.; JURKIEWICZ, S. Grafos: introdução e prática. São Paulo


(SP): Blucher, 2019.

STEEN, M. VAN. Graph theory and complex networks: an introduction. S.l.: Maarten van
Steen, 2010.
Exercícios
AULA 2

ATIVIDADE

1. Considerando o modelo de sociograma da Figura 3:


a. Há pode aluno deslocado na turma? Qual o nome?
b. Quantos grupos são formados?
c. Quais as pessoas mais sociáveis?

2. Considere o conjunto de nós 𝑁 = {1,2,3,4} e o conjunto de arestas 𝐸 =


{(1,2), (1,4), (4,3), (2,3), (2,4)}. Faça a representação gráfica do grafo 𝐺 = (𝑁, 𝐸).

3. Qual a diferença entre Grafo orientado e não orientado?

4. Defina caminho.

5. Defina cadeia.

6. Qual a diferença entre caminho e cadeia?

7. Qual a diferença entre circuito e ciclo?

8. Por que os subgrafos a seguir não são árvores geradoras do Grafo da figura
10?
P á g i n a | 48

Figura 12: Exercício.

Fonte: a autora.

9. Considere o Grafo da figura 12 como um grafo não orientado, como seria


a sua matriz de adjacência?

10. Faça a matriz de adjacência do grafo da figura 7.


Aula 3
Exercícios de Teoria dos Grafos

APRESENTAÇÃO DA AULA

Nesta aula faremos juntos alguns exercícios sobre a Teoria dos Grafos,
apresentada na aula anterior, para melhor aprendizado e fixação dos conceitos.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Fazer exercícios;
 Fixar o conteúdo da Teoria dos Grafos.
P á g i n a | 50

3 INTRODUÇÃO

1) Seja 𝐺 = (𝑁, 𝐸) não orientado com o seguinte conjunto de nós 𝑁 = {1,2,3,4,5}


e o conjunto de arestas 𝐸 = {(1,2), (1,3), (2,3), (2,4), (2,5), (3,4), (3,5), (4,5)}.
a) Faça a representação gráfica;
b) Qual a cardinalidade de 𝑁 e de 𝐸?

Figura 13: Representação gráfica do Grafo do exercício 1.

Fonte: a autora.

Uma representação gráfica do grafo 𝐺 = (𝑁, 𝐸) está desenhada na Figura 1.


Para desenhá-lo, comece pelos vértices, após, vá conectando cada par (𝑖, 𝑗) do
conjunto 𝐸 de arestas.
A cardinalidade de 𝑁 é cinco, ou seja, |𝑁| = 5 e a cardinalidade de 𝐸 é |𝐸| =
8. Isso significa que o grafo possui cinco nós e oito arestas.
2) Desenhe o grafo definido por:
𝑁 = {1,2,3,4,5,6}
𝐸 = {(1,2), (1,5), (2,3), (2,4), (2,5), (3,4), (3,5), (4,6), (5,6)}

Figura 14: Representação gráfica do Grafo do exercício 2.

Fonte: a autora.
P á g i n a | 51

Uma representação gráfica do grafo 𝐺 = (𝑁, 𝐸) está desenhada na Figura 14.


Podemos ver que temos seis nós e nove arestas e que o grafo não é orientado.

3) Para cada rede da Figura 15 determine:


a) Um caminho;
b) Um ciclo;
c) Uma árvore geradora.

Figura 15: Redes do Exercício 3.

Fonte: a autora.

No caminho os arcos precisam estar coerentemente orientados, então 𝐶𝑖 =


{(1,3), (3,4), (4,2), (2,5)} é um caminho do nó 1 ao nó 5 em (𝑖). E 𝐶𝑖𝑖 = {(1,2), (2,3), (3,4)}
é um caminho do nó 1 ao nó 4 em (𝑖𝑖).
Sendo o ciclo uma cadeia fechada, onde cadeia é uma sequência de arcos
onde a orientação não importa, temos que 𝐷𝑖 = {(1,2), (2,5), (4,5), (3,4), (3,1)} é um
ciclo em (𝑖) e 𝐷𝑖𝑖 = {(1,3), (3,4), (2,4), (1,2)} é um ciclo de (𝑖𝑖).
Sabendo que uma árvore é um grafo conectado sem ciclos e que árvore
geradora de um grafo com 𝑛 nós tem 𝑛 − 1 arcos e é um subgrafo conectado ou sem
ciclos, temos em (𝑖) e em (𝑖𝑖) as árvores desenhadas na Figura 13.
P á g i n a | 52

Figura 16: Árvores dos Grafos do Exercício 3.

4) Para os grafos das figuras 1, 2 e 3, faça:


a) Matriz de adjacência;
b) Matriz de incidência nó-aresta ou nó-arco.
Sendo matriz de adjacência a matriz 𝑴 = [𝑚𝑖𝑗 ]𝑛×𝑛 onde 𝑚𝑖𝑗 = 1 se (𝑖, 𝑗) ∈ 𝐸 e

𝑚𝑖𝑗 = 0, caso contrário, temos as seguintes matrizes de adjacências dos grafos das
figuras 13 a 16:

Tabela 11: Exercícios.


0 1 0 0 0 0 1 0 0 1 0
1 0 1 1 1 1 0 1 1 1 0
𝑀1 = 1 1 0 1 1 0 1 0 1 1 0
𝑀2 =
0 1 1 0 1 1 0 1 0 0 1
[0 1 1 1 0] 1 1 1 0 0 1
[0 0 0 1 1 0]

0 1 1 0 0 0 1 1 0
0 0 0 0 1 𝑀3𝑖𝑖 = [0 0 1 1]
𝑀3𝑖 = 0 0 0 1 1 0 0 0 1
0 1 0 0 1 0 0 0 0
[1 0 0 0 0]
Fonte: a autora.

Sendo matriz de incidência nó-aresta a matriz 𝑷 = [𝑝𝑖𝑘 ]𝑛×𝑚 , tal que 𝑝𝑖𝑘 = 1 se a
aresta 𝑘 é definida por (𝑖, 𝑗) ∈ 𝐸 ou (𝑗, 𝑖) ∈ 𝐸, ou seja, a aresta 𝑘 é incidente ao nó 𝑖, e
𝑝𝑖𝑘 = 0, caso contrário. Temos para os grafos das Figuras 13 e 16 as matrizes de
incidência nó-aresta 𝑃1 e 𝑃2 , respectivamente.
P á g i n a | 53

Tabela 12: Exercícios.


(1,2) (1,3) (2,3) (2,4) (2,5) (3,4) (3,5) (4,5)
1 1 0 0 0 0 0 0 1
1 0 1 1 1 0 0 0 2
𝑃1 = 0 1 1 0 0 1 1 0 3
0 0 0 1 0 1 0 1 4
0 0 0 0 1 0 1 1 5
Fonte: a autora.

Tabela 13: Exercícios.


(1,2) (1,5) (2,3) (2,4) (2,5) (3,4) (3,5) (4,6) (5,6)
1 1 0 0 0 0 0 0 0 1
1 0 1 1 1 0 0 0 0 2
0 0 1 0 0 1 1 0 0 3
𝑃2 =
0 0 0 1 0 1 0 1 0 4
0 1 0 0 1 0 1 0 1 5
0 0 0 0 0 0 0 1 1 6
Fonte: a autora.

Sendo a matriz de incidência nó-arco a matriz 𝑷 = [𝑝𝑖𝑘 ]𝑛×𝑚 tal que 𝑝𝑖𝑘 = +1 se
o arco 𝑘 é (𝑖, 𝑗), 𝑝𝑖𝑘 = −1 se o arco 𝑘 é (𝑗, 𝑖) e 𝑝𝑖𝑘 = 0, caso contrário, temos as seguintes
matrizes nó-arco dos grafos da figura 15:

Tabela 14: Exercícios.


(1,2) (1,3) (2,5) (3,4) (3,5) (4,2) (4,5) (5,1)
1 1 −1 1
−1 1 −1 2
𝑃3𝑖 = −1 1 1 3
−1 1 1 4
−1 −1 −1 1 5
Fonte: a autora.
P á g i n a | 54

Tabela 15: Exercícios.


(1,2) (1,3) (2,3) (2,4) (3,4)
1 1 0 0 0 1
−1 0 1 1 0 2
𝑃3𝑖𝑖 =
0 −1 −1 0 1 3
0 0 0 −1 −1 4
Fonte: a autora.
Resumo

Nesta aula vimos alguns exercícios sobre a Teoria dos Grafos, desenhamos
grafos não orientado e orientado, assim como vimos a cardinalidade dos nós e
arestas. Encontramos um caminho, um ciclo e uma árvore geradora de grafos e
fizemos as matrizes de adjacências, incidência nó-aresta e nó-arco dos grafos dados.
Com isso, revisamos os conceitos dados na aula anterior e fixamos o conteúdo
dado. Nas próximas aulas veremos algumas aplicações desta Teoria.
Referências

Básica:
ARENALES, M. et al. Pesquisa operacional. Rio de Janeiro: Elsevier Campus, 2007.

BOAVENTURA NETTO, P. O.; JURKIEWICZ, S. Grafos: introdução e prática. São Paulo (SP):
Blucher, 2019.

STEEN, M. VAN. Graph theory and complex networks: an introduction. S.l.: Maarten van
Steen, 2010.
Exercícios
AULA 3

ATIVIDADE

1) Para cada rede da Figura 3 determine:


a) O conjunto 𝑁 e 𝐸:
b) Outro caminho;
c) Outro ciclo
d) Outra árvore geradora.

2) Construir os grafos 𝐻6,10 e 𝐻7,10 , onde 𝐻𝑘,𝑛 representa o grafo de Harary de 𝑛


vértices e 𝑘-conectividade, ou seja, 𝑘 é o menor número de vértices ou arestas a
serem removidos para desconectar o grafo 𝐻𝑘,𝑛 .
Observação: para construir um grafo 𝐻𝑘,𝑛 seguir as regras:
 Caso k par - organizar os vértices formando um ciclo 𝐶𝑛 , rotulá-los segundo
𝑘
{0, 1, 2, ⋯ , 𝑛 − 1}, adicionar as arestas ligando o vértice 𝑖 ao vértice vizinho
2
𝑘
a esquerda (sentido anti horário) e ao vértice vizinho a direita (sentido
2

horário).
 Caso k impar e n par - primeiro construir 𝐻𝑘−1,𝑛 e adicionar as arestas, (0, 𝑛⁄2),
(1, (1 + 𝑛⁄2)), ⋯ , ( (𝑛 − 2)⁄2 , (𝑛 − 1))
 Caso k impar e n ímpar - primeiro construir 𝐻𝑘−1,𝑛 e adicionar as arestas

 (0, (𝑛 − 1)⁄2), (1, (1 + ((𝑛 − 1)⁄2))) , ⋯ , ( (𝑛 − 1)⁄2 , (𝑛 − 1))


Aula 4
Algoritmo de caminho mínimo

APRESENTAÇÃO DA AULA

Até agora vimos teoria e alguns exercícios, nesta aula veremos uma aplicação
da Teoria dos Grafos. Iremos ver o problema do caminho mínimo e utilizaremos
algoritmo para resolvê-lo.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Apresentação do Problema do Caminho Mínimo;


 Introdução ao Algoritmo de Caminho Mínimo;
 Exemplos de resolução de Problemas de Caminho Mínimo utilizando
algoritmo.
P á g i n a | 59

4 INTRODUÇÃO

Uma grande quantidade de situações de pesquisa operacional pode ser


modelada e resolvida como redes ou grafos. A solução dessas situações é obtida por
meio de uma variedade de algoritmos de otimização em redes. Por exemplo, o
problema de determinar o caminho mais curto entre duas cidades em uma rede de
rodovias existentes pode ser resolvido através do Algoritmo de Caminho Mais Curto
(TAHA, 2008, p. 105). É esse algoritmo que aprenderemos nesta aula!

O problema de caminho mínimo

Primeiramente, vamos contextualizar algumas situações que poderiam ser


resolvidas utilizando o algoritmo de Caminho Mínimo.
Vamos ver alguns exemplos adaptados de Arenales et al. (2007, p. 297), os de
números 1 e 2, e de Taha (2008, p. 109–110), o de número 3:
1. Suponha que o gerente de uma pizzaria esteja recebendo reclamações
que a pizza está chegando fria na casa de seus clientes. O gerente decide minimizar
a rota que o motoboy faz da pizzaria até o cliente. Qual seria o menor caminho que
o motoboy percorreria? Este problema pode ser modelado como um problema de
otimização em redes da seguinte forma:
a) Construa um grafo onde os nós correspondem às esquinas das ruas da
cidade e inclua mais dois nós correspondentes à pizzaria e ao endereço do cliente.
Os arcos do grafo correspondem às ruas que ligam as esquinas, e a pizzaria e o
endereço do cliente às esquinas de suas ruas;
b) Defina um valor para cada arco igual ao comprimento do trecho
correspondente de cada rua;
c) Ache no grafo o caminho de menor valor entre o nó da pizzaria ao nó do
endereço do cliente.

2. Suponha que um vendedor de material hospitalar da cidade de São Paulo


tenha que viajar a Fortaleza para visitar um importante cliente. Ele deve ir de carro e
já que vai utilizar as estradas principais, irá aproveitar a viagem e visitar outros clientes
ao longo do caminho. O vendedor tem uma estimativa média da comissão que
pode ganhar de cada um de seus clientes no caminho e deve atingir seu objetivo.
Qual rota entre São Paulo e Fortaleza ele deve escolher? Da mesma forma que o
P á g i n a | 60

exemplo anterior o problema pode ser modelado como um problema de otimização


em redes:
a) Construa um grafo cujos nós correspondem às junções das estradas
principais e os arcos correspondem às estradas que unem os respectivos nós;
b) Defina o valor de cada arco no grafo como o custo líquido esperado
naquele trecho de estrada;
c) O vendedor deve escolher a rota correspondente ao menor caminho neste
grafo do nó que representa a junção da estrada em São Paulo ao nó que representa
a junção da estrada em Fortaleza.

3. Uma loja de aluguel de carros está desenvolvendo uma política de


reposição para a sua frota de carros, considerando uma projeção de planejamento
de quatro anos, em que no início de cada ano é tomada uma decisão sobre a
conservação de um carro em operação ou a reposição dele. Um carro deve
permanecer em serviço por no mínimo um ano e no máximo três anos. A Tabela 1
mostra o custo de reposição como uma função do ano em que o carro foi adquirido
e do número de anos em operação. O problema também pode ser modelado como
um problema de otimização em redes:
a) Construa um grafo na qual os nós 1 a 5 representam o início dos anos 1 a 5.
Os arcos provenientes do nó 1, ou seja, ano 1, só podem chegar aos nós 2, 3 e 4
porque um carro deve estar em operação entre 1 e 3 anos. A mesma regra para os
outros nós.
b) O comprimento de cada arco é igual ao custo de reposição;
c) A solução do problema equivale a achar o caminho mais curto entre os nós
1 e 5.

Tabela 16: Custo de reposição.


Equipamento adquirido no Custo de reposição (R$) por anos em operação
início do ano 1 2 3
1 4.000 5.400 9.800
2 4.300 6.200 8.700
3 4.800 7.100 __
4 4.900 __ __
Fonte: Adaptado de Taha (2008, p. 109)

A Figura 17 mostra a rede resultante.


P á g i n a | 61

Figura 17: Problema da reposição de equipamento como um problema de caminho


mínimo.

Fonte: adaptado de TAHA (2008, p. 109)

ATENÇÃO

Alguns problemas à primeira vista não parecem ser um problema de


otimização em redes. Nesses casos é necessária uma análise preliminar do problema
para que possamos compreender que ele pode ser transformado em um problema
em grafos. Vamos aprender um algoritmo para conseguir a solução dos problemas
de caminho mínimo.

Algoritmo de Dijkstra

O algoritmo de Dijkstra foi desenvolvido para determinar o caminho mínimo


entre o nó de origem e qualquer outro nó da rede (TAHA, 2008, p. 111).

ATENÇÃO

Seja 𝑢𝑖 a distância mais curta do nó de origem 1 ao nó 𝑖, e defina-se 𝑑𝑖𝑗 (≥ 0)


como o comprimento do arco (𝑖, 𝑗). Então, o algoritmo define o rótulo para um nó
imediatamente posterior, 𝑗, como:
P á g i n a | 62

[𝑢𝑗 , 𝑖] = [𝑢𝑖 + 𝑑𝑖𝑗 , 𝑖], 𝑑𝑖𝑗 ≥ 0

O rótulo para o nó inicial é [0, −], o que indica que o nó não tem nenhum
predecessor, ou seja, nenhum nó anterior a ele.
Os rótulos dos nós nesse algoritmo são de dois tipos:
i. Temporários: pode ser modificado se for possível encontrar uma rota mais
curta até um nó;
ii. Permanente: se não for possível encontrar nenhuma rota melhor, o status do
rótulo temporário muda para permanente.

O algoritmo de Dijkstra tem as seguintes etapas:


Etapa 0: Rotule o nó de origem (nó 1) com o rótulo permanente [0, −].
Determine 𝑖 = 1.
Etapa i:
a) Calcule os rótulos temporários [𝑢𝑖 + 𝑑𝑖𝑗 , 𝑖] para cada nó 𝑗 que puder ser
alcançado partindo do nó 𝑖, contando que 𝑗 não seja permanentemente rotulado.
Se o nó 𝑗 já estiver rotulado com [𝑢𝑗 , 𝑘] passando por um outro nó 𝑘, e se 𝑢𝑖 + 𝑑𝑖𝑗 < 𝑢𝑗 ,
substitua [𝑢𝑗 , 𝑘] por [𝑢𝑖 + 𝑑𝑖𝑗 , 𝑖].
b) Se todos os nós tiverem rótulos permanentes, pare. Caso contrário, selecione
o rótulo [𝑢𝑟 , 𝑠], cuja distância (= 𝑢𝑟 ), é a mais curta entre todos os rótulos temporários
(empates são resolvidos arbitrariamente). Determine 𝑖 = 𝑟 e repita a etapa 𝑖.

EXEMPLO

Vamos ver um exemplo!

A rede da Figura 18 mostra as possíveis rotas e seus comprimentos em


quilômetros entre a Cidade 1 (nó 1) e quatro outras cidades (nós 2 a 5). Determine os
P á g i n a | 63

caminhos mais curtos entre a Cidade 1 e cada uma das quatro outras cidades
utilizando o algoritmo de Dijkstra.

Figura 18: Exemplo de Rede para o algoritmo de caminho mímino de Dijkstra.

Fonte: adaptado de TAHA (2008, p. 111).

Iteração 0: o nó 1 recebe o rótulo [0, −] e status permanente.


Iteração 1: Do nó 1 pode-se ir aos nós 2 e 3. Assim, podemos fazer uma lista
com os nós rotulados (temporários e permanentes) como na Tabela 17.

Tabela 17: Lista de nós – Iteração 1.


Nó Rótulo Status
1 [𝟎, −] Permanente
2 [0 + 100, 1] = [100, 1] Temporário
3 [0 + 30, 1] = [30, 1] Temporário
Fonte: adaptado de TAHA (2008, p. 111).

Olhando os rótulos dos nós com status temporário podemos ver que o nó 3
resulta na menor distância 𝑢3 = 30, com isso, podemos mudar o status do nó 3 de
temporário para permanente.

Iteração 2: Os nós 4 e 5 podem ser alcançados através do nó 3, e a lista de nós


fica como demostrado na Tabela 18.
P á g i n a | 64

Tabela 18: Lista de nós - Iteração 2.


Nó Rótulo Status
1 [0, −] Permanente
2 [100, 1] Temporário
3 [𝟑𝟎, 𝟏] Permanente
4 [30 + 10, 3] = [40, 3] Temporário
5 [30 + 60, 3] = [90, 3] Temporário
Fonte: adaptado de TAHA (2008, p. 112).

O status do rótulo temporário no nó 4 muda para permanente com 𝑢4 = 40,


não há mais caminhos que levem a ele. Passamos para a próxima iteração.
Iteração 3: Os nós 2 e 5 ainda podem ser alcançados através do nó 4. Assim,
a lista de nós rotulados é atualizada como mostra a Tabela 19.

Tabela 19: Lista de nós – Iteração 3.


Nó Rótulo Status
1 [0, −] Permanente
2 [40 + 15, 4] = [55, 4] Temporário
3 [30, 1] Permanente
4 [𝟒𝟎, 𝟑] Permanente
5 [90, 3] ou [40 + 50, 4] = [90, 4] Temporário
Fonte: adaptado de TAHA (2008, p. 112).

O rótulo temporário [100, 1] do nó 2 obtido na iteração 1 muda para [55, 4]


na iteração 3, o que indica que foi encontrada uma rota mais curta que passa pelo
nó 4. Além disso, na iteração 3, o nó 5 tem dois rótulos alternativos com a mesma
distância 𝑢5 = 90, um que passa pelo nó 3 e outro que passa pelo nó 4.
A lista para a iteração 3 mostra que o rótulo para o nó 2 muda para
permanente.

Iteração 4: Somente o nó 3 pode ser alcançado com base no nó 2. Porém, o


nó 3 tem o status permanente e não pode ser rotulado novamente. A nova lista de
rótulos permanece igual à da iteração 3, exceto que o status do nó 2 agora é
permanente. Deixando só o nó 5 com status de temporário, mas o nó 5 não leva a
outros nós, assim o seu status é convertido em permanente, e o processo termina. A
Tabela 20 mostra como ficaram os rótulos dos nós.
P á g i n a | 65

Tabela 20: Lista de nós - Final.


Nó Rótulo Status
1 [0, −] Permanente
2 [55, 4] Permanente
3 [30, 1] Permanente
4 [40, 3] Permanente
5 [90, 3] 𝑜𝑢 [90, 4] Permanente
Fonte: a autora.

ANOTAÇÕES

____________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________
__________________________________________________________________________________

Os cálculos do algoritmo podem ser executados mais facilmente na própria


rede, como podemos ver na Figura 19.

Figura 19: Procedimento de rotulagem do algoritmo de Disjktra.

Fonte: adaptado de TAHA (2008, p. 112).


Resumo

Nesta aula vimos exemplos de problemas que podem ser modelados como
problema de otimização em redes. Vimos também como resolver tais problemas com
o algoritmo de Dijkstra.
Na próxima aula resolveremos mais exercício utilizando o algoritmo para
fixação da matéria.
Complementar

SAIBA MAIS

Outro algoritmo utilizado para resolver problemas de caminho mínimo é o


algoritmo de Floyd. Ele é mais abrangente porque permite a determinação do
caminho mais curto entre quaisquer dois nós da rede. Para mais detalhes ver Taha
página 113 a 115.
Referências

Básica:
ARENALES, M. et al. Pesquisa operacional. Rio de Janeiro: Elsevier Campus, 2007.

TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.


Exercícios
AULA 4

ATIVIDADE

1) Reconstrua o problema de reposição de equipamento do Exemplo 3 da


seção 4.2 considerando que um carro deve ser mantido em serviço no mínimo por
dois anos, com uma vida útil máxima em serviço de quatro anos. O horizonte de
planejamento é do início do ano 1 ao final do ano 5. A tabela a seguir apresenta os
dados necessários.

Tabela 21: Exercícios.


Custo de reposição (R$) por anos em operação
Ano de aquisição
2 3 4
1 3.800 4.100 6.800
2 4.000 4.800 7.000
3 4.200 5.300 7.200
4 4.800 5.700 __
5 5.300 __ __
Fonte: a autora.

2) A rede da Figura a seguir dá as distâncias em quilômetros entre pares de


cidade de 1 a 8. Utilize o algoritmo de Dijkstra para achar o caminho mínimo entre as
seguintes cidades:
P á g i n a | 70

Figura 20: Exercício.

Fonte: a autora.

a) Cidades 1 e 8;
b) Cidades 1 e 6;
c) Cidades 4 e 8;
d) Cidades 2 e 6.
Aula 5
Exercícios de caminho mínimo

APRESENTAÇÃO DA AULA

Para fixação do conceito, nesta aula resolveremos juntos problemas de


caminho mínimo utilizando o algoritmo apresentado na aula anterior, o algoritmo de
Dijkstra.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Apresentar problemas que podem ser formulados como caminho


mínimo;
 Resolver problemas de caminho mínimo utilizando o algoritmo de
Dijkstra;
 Fixação do conteúdo da aula anterior.
P á g i n a | 72

5 INTRODUÇÃO

A Figura 25 apresenta uma rede de comunicação entre duas estações, 1 e 7.


A probabilidade de uma conexão operar sem falhas é mostrada em cada arco.
Mensagens são enviadas da Estação 1 à Estação 7, e o objetivo é determinar o
caminho que maximizará a probabilidade de uma transmissão bem-sucedida.
Formule a situação como um problema de caminho mínimo e determine a solução
ótima.

Figura 21: Rede do Exercício 1.

Fonte: adaptado de TAHA (2008, p. 110).

A probabilidade de uma conexão operar sem falhas é o produto das


probabilidades associadas aos arcos. Por exemplo, a probabilidade de a conexão
operar sem falhas saindo da estação 1 e passando pelas estações 2 e 5 para chegar
a 7, ou seja, fazendo o caminho 1 → 2 → 5 → 7, é igual a 0,8 × 0,5 × 0,8 = 0,32. Como o
objetivo é maximizar a probabilidade de uma transmissão bem-sucedida, o problema
pode ser formulado como um problema de caminho mínimo usando uma
transformação logarítmica que converte o produto das probabilidades na soma dos
logaritmos das probabilidades, isto é, se 𝑝1𝑘 = 𝑝1 × 𝑝2 × ⋯ × 𝑝𝑘 é a probabilidade de
uma conexão operar sem falhar, então, utilizando a função logarítmica em ambos
lados, temos log 𝑝1𝑘 = log 𝑝1 × log 𝑝2 × ⋯ × log 𝑝𝑘 .
P á g i n a | 73

Como log 𝑝1𝑘 ≤ 0, significa que a maximização de log 𝑝1𝑘 é equivalente à


minimização de −log 𝑝1𝑘 . Assim, as probabilidades 𝑝𝑗 nos arcos da rede da Figura 21
são substituídas por − log 𝑝𝑗 para todos os 𝑗 na rede, o que podemos ver na Figura 22.

Figura 22: Representação da conexão mais confiável como um problema de caminho


mínimo.

Fonte: adaptado de TAHA (2008, p. 110).

Iteração 0: o nó 1 recebe o rótulo [0, −] e status permanente.


Iteração 1: do nó 1 podemos ir para os nós 2, 3 e 4, o que está representado
na Tabela 1.

Tabela 22: Lista de nós - iteração 1.


Nó Rótulo Status
1 [𝟎, −] Permanente
2 [0 + 0,0969, 1] = [0,0969, 1] Temporário
3 [0 + 0,5229, 1] = [0,5229, 1] Temporário
4 [0 + 0,1871, 1] = [0,1871, 1] Temporário
Fonte: a autora

Olhando os rótulos dos nós com status temporário podemos ver que o nó 2
resulta no menor valor 𝑢2 = 0,0969, com isso, podemos mudar o status do nó 2 de
temporário para permanente.
P á g i n a | 74

Passamos para a próxima iteração, onde começaremos as saídas do nó que


mudou de status temporário para permanente nesta iteração, ou seja, do nó 2.
Iteração 2: do nó 2 podemos ir até os nós 4 e 5, assim temos os resultados na
Tabela 22.

Tabela 23: Lista de nós - Iteração 2.


Nó Rótulo Status
1 [0, −] Permanente
2 [𝟎, 𝟎𝟗𝟔𝟗, 𝟏] Permanente
3 [0,5229, 1] Temporário
4 [0,0969 + 0,0458, 2] = [0,1427, 2] Temporário
5 [0,0969 + 0,3010, 2] = [0,3979, 2] Temporário
Fonte: a autora

ATENÇÃO

Como o acesso ao nó 4 pelo nó 2 resultou em um valor menor de 𝑢4 do que o


encontrado anteriormente, este é substituído.
Da mesma forma, olhando para os rótulos dos nós com status temporários,
temos que o nó 4 resulta no menor valor 𝑢4 = 0,1427, assim, seu status passa para
permanente.
Iteração 3: Do nó 4 podemos ir para os nós 3, 5 e 6, as contas podem ser vistas
na Tabela 3.
Tabela 24 - Lista de Nós - Iteração 3.
Nó Rótulo Status
1 [0, −] Permanente
2 [0,0969, 1] Permanente
3 [0,1427 + 0,0706, 4] = [0,2133, 4] Temporário
4 [𝟎, 𝟏𝟒𝟐𝟕, 𝟐] Permanente
5 [0,1427 + 0,1549, 4] = [0,2976, 4] Temporário
6 [0,1427 + 0,2218, 4] = [0,3645, 4] Temporário
Fonte: a autora
P á g i n a | 75

Os caminhos vinho do nó 4 levaram a um menor valor dos rótulos dos nós 3 e


5, assim, substituímos esses valores. O nó 3 passa a ter o status permanente, pois tem
o menor valor 𝑢3 = 0,2133. E o nó 5 também passa a ter status permanente com 𝑢5 =
0,2976, pois esgotaram-se as entradas nele.
Iteração 4: Do nó 3 podemos ir ao nó 6 e do nó 5 podemos ir para os nós 6 e 7,
as contas podem ser vistas na Tabela 4.

Tabela 25: Lista de nós - Iteração 4.


Nó Rótulo Status
1 [0, −] Permanente
2 [0,0969, 1] Permanente
3 [𝟎, 𝟐𝟏𝟑𝟑, 𝟒] Permanente
4 [0,1427, 2] Permanente
5 [𝟎, 𝟐𝟗𝟕𝟔, 𝟒] Permanente
[0,3645, 4]
6 [0,2133 + 0,0223, 3] = [0,2356, 3] Temporário
[0,2976 + 0,3010, 5] = [0,5986, 5]
7 [0,2976 + 0,0969, 5] = [0,3945, 5] Temporário
Fonte: a autora

A rota para o nó 6 passando pelo nó 3 deu um valor menor do que a rota


passando pelos nós 4 e 5, ou seja, substituímos o valor. O nó 6 passa para status
permanente com 𝑢6 = 0,2356.
Iteração 5: Do nó 6 podemos ir para o nó 7, as contas podem ser vistas na
Tabela 5.

Tabela 26: Lista de nós - Iteração 5.


Nó Rótulo Status
1 [0, −] Permanente
2 [0,0969, 1] Permanente
3 [0,2133, 4] Permanente
4 [0,1427, 2] Permanente
5 [0,2976, 4] Permanente
6 [𝟎, 𝟐𝟑𝟓𝟔, 𝟑] Permanente
[0,3945, 5]
7 Temporário
[0,2356 + 0,0458, 6] = [0,2814, 6]
Fonte: a autora
P á g i n a | 76

O nó 7, o nó que nos interessa, o caminho mínimo resultou em 1 → 2 → 4 → 3 →


6 → 7 com um “valor” correspondente a 0,2814, lembrando que utilizamos a função
logarítmica para transformar um problema de produto de probabilidade em soma.
Agora temos que fazer 0,2814 = − log 𝑝17 . Assim a probabilidade máxima de uma
conexão operar sem falhar é 0,5231. A Figura 23 mostra na rede o caminho mínimo.

Figura 23: Caminho mínimo da Rede do Exercício 1.

Fonte: adaptado de TAHA (2008, p. 110).

3) A rede da Figura 24 dá as distâncias em quilômetros entre pares de cidade


de 1 a 8. Utilize o algoritmo de Dijkstra para achar o caminho mínimo entre as
seguintes cidades:

Figura 24: Rede do Exercício 2.

Fonte: adaptado de TAHA (2008, p. 112).


P á g i n a | 77

e) Cidades 1 e 8;
Iteração 0: o nó 1 recebe o rótulo [0, −] e status permanente.
Iteração 1: Do nó 1 pode-se ir aos nós 2 e 3. Assim, podemos fazer uma lista
com os nós rotulados (temporários e permanentes) como na Tabela 26.

Tabela 27: Lista de nós: iteração 1.


Nó Rótulo Status
1 [𝟎, −] Permanente
2 [0 + 1, 1] = [1, 1] Temporário
3 [0 + 2, 1] = [2, 1] Temporário
Fonte: a autora

Olhando os rótulos dos nós com status temporário podemos ver que o nó 2
resulta na menor distância 𝑢2 = 1, com isso, podemos mudar o status do nó 2 de
temporário para permanente.
Iteração 2: Os nós 3, 4 e 5 podem ser alcançados através do nó 2 e a lista de
nós fica como demostrado na Tabela 27.

Tabela 28: Lista de nós: iteração 2.


Nó Rótulo Status
1 [0, −] Permanente
2 [𝟏, 𝟏] Permanente
[2, 1]
3 Temporário
[1 + 1, 2] = [2, 2]
4 [1 + 5, 2] = [6, 2] Temporário
5 [1 + 2, 2] = [3, 2] Temporário
Fonte: a autora.

Os status do rótulo temporário do nó 3 muda para permanente com 𝑢3 = 2.


Passamos para a próxima iteração.

Iteração 3: Os nós 4, 5 e 6 podem ser alcançados através do nó 3 e a lista de


nós fica como demostrado na Tabela 28.
P á g i n a | 78

Tabela 29: Lista de Nós - Iteração 3.


Nó Rótulo Status
1 [0, −] Permanente
2 [1, 1] Permanente
[𝟐, 𝟏]
3 Permanente
[𝟐, 𝟐]
4 [2 + 2, 3] = [4, 3] Temporário
5 [2 + 1, 3] = [3, 3] Temporário
Fonte: a autora.

Os status do rótulo temporário do nó 5 muda para permanente com 𝑢5 = 3.


Iteração 4: Os nós 6 e 7 podem ser alcançados através do nó 5 e a lista de nós
fica como demostrado na Tabela 29.

Tabela 30: Lista de Nós - Iteração 4.


Nó Rótulo Status
1 [0, −] Permanente
2 [1, 1] Permanente
[2, 1]
3 Permanente
[2, 2]
4 [4, 3] Temporário
5 [𝟑, 𝟑] Permanente
6 [3 + 3, 5] = [6, 5] Temporário
7 [3 + 7, 5] = [10, 5] Temporário
Fonte: a autora.

Os status do rótulo temporário do nó 6 muda para permanente com 𝑢6 = 6.

Iteração 4: Os nós 7 e 8 podem ser alcançados através do nó 6 e a lista de nós


fica como demostrado na Tabela 30.
P á g i n a | 79

Tabela 31: Lista de Nós - Iteração 5.


Nó Rótulo Status
1 [0, −] Permanente
2 [1, 1] Permanente
[2, 1]
3 Permanente
[2, 2]
4 [4, 3] Temporário
5 [3, 3] Permanente
6 [𝟔, 𝟓] Temporário
[10, 5]
7 Temporário
[6 + 5, 6] = [11, 6]
8 [6 + 2, 6] = [8, 6] Temporário
Fonte: a autora

Os status do rótulo temporário do nó 8 muda para permanente com 𝑢8 = 8.


Assim temos que um caminho mínimo entre as cidades 1 e 8 é 1 → 3 → 5 → 6 → 8 com
8 quilômetros.
Resumo

Nesta aula vimos dois exercícios que pudemos aplicar o algoritmo de Dijkstra.
O primeiro exercício nós utilizamos a função logarítmica para transformar um
problema que a princípio não era de caminho mínimo em um que pudéssemos
aplicar o algoritmo de caminho mínimo.
Referências

Básica:
TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.
Aula 6
Introdução ao Algoritmo de Fluxo
Máximo

APRESENTAÇÃO DA AULA

Até agora vimos problemas de otimização em rede em que o objetivo era


encontrar o caminho mínimo de um nó a outro e os resolvemos através do algoritmo
de Dijkstra.
Nesta aula iremos ver mais um algoritmo para problemas de otimização em
redes, o algoritmo de fluxo máximo.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Apresentação do Problema de Fluxo Máximo;


 Introdução ao Algoritmo de Fluxo Máximo.
P á g i n a | 83

6 INTRODUÇÃO

Conforme vimos na Aula 04, uma grande quantidade de situações de


pesquisa operacional pode ser modelada e resolvida como redes ou grafos. A
solução dessas situações é obtida por meio de uma variedade de algoritmos de
otimização em redes. Vimos que o problema de determinar o caminho mais curto
entre duas cidades em uma rede de rodovias existentes pode ser resolvido através
do Algoritmo de Caminho Mais Curto (TAHA, 2008, p. 105).
Nesta aula iremos ver, por exemplo, como podemos determinar a capacidade
máxima que uma tubulação pode levar de lama de carvão da mina de carvão até
as usinas geradoras de energia elétrica.
Vários outros problemas envolvem o transporte ou fluxo de algum item ou itens
de um nó a outro nó na rede com um dado objetivo. Tais problemas de fluxo podem
ser encontrados em diversas situações na prática, como, por exemplo (ARENALES et
al., 2007, p. 335–336):
 Transmissão de mensagens em redes de comunicação de dados;
 Envio de água em uma rede de distribuição de água;
 Transporte de carga em uma rede viária.

A solução dessas situações e de outras parecidas é obtida através do


Algoritmo de Fluxo Máximo.

O problema de fluxo máximo

Consideremos uma rede de tubulações que transporte petróleo cru dos poços
a refinarias. Nesta rede também foram instaladas estações intermediárias de
impulsores auxiliares e de bombeamento a distâncias adequadas para o transporte
pela rede do petróleo cru. Cada segmento de tubulação tem uma taxa (ou
capacidade) de fluxo de petróleo cru. Na Figura 25 temos a representação de uma
rede de tubulações típica. Como faríamos para determinar a capacidade máxima
da rede entre os poços e as refinarias?
P á g i n a | 84

Figura 25: Rede capacitada que conecta poços e refinarias por meio de estações de
impulsores auxiliares.

Fonte: adaptado de TAHA (2008, p. 118).

A solução do problema requer que a rede seja equipada com uma única
origem e um único sorvedouro usando arcos unidirecionais com capacidade infinita
que estão representados na Figura 1 pelos arcos tracejados.
Seja o arco (𝑖, 𝑗) com 𝑖 < 𝑗, usaremos a notação (𝐶𝑖𝑗
̅ , 𝐶𝑗𝑖̅ ) para representar as

capacidades de fluxo nas duas direções, 𝑖 → 𝑗 e 𝑗 → 𝑖, respectivamente, já que um


segmento de tubulação pode ser unidirecional ou bidirecional, isso irá depender do
seu projeto.
Para eliminar ambiguidades, iremos colocar 𝐶𝑖𝑗
̅ no arco próximo ao nó 𝑖 e 𝐶𝑗𝑖̅

no arco próximo ao nó 𝑗.
Antes de prosseguirmos temos que conceituar o que é um corte e a sua
capacidade.
P á g i n a | 85

ATENÇÃO

Um corte define um conjunto de arcos que, se eliminarmos da rede, causará


um rompimento total do fluxo entre o nó de origem e o nó sorvedouro. A capacidade
do corte é igual à soma das capacidades de seus arcos. Entre todos os possíveis
cortes na rede, o que tiver a menor capacidade dá o fluxo máximo na rede, pois este
é o gargalo da rede.
Por exemplo, considere a rede da Figura 26, as capacidades bidirecionais são
mostradas nos respectivos arcos. A Figura 26 ilustra três cortes cujas capacidades
estão calculadas na Tabela 31.

Figura 26: Exemplos de cortes em redes de fluxo.

Fonte: adaptado de TAHA (2008, p. 119).


P á g i n a | 86

Tabela 32: Cortes.


Corte Arcos associados Capacidade
1 (1,2), (1,3), (1,4) 20 + 30 + 10 = 60
2 (1,3), (1,4), (2,3), (2,5) 30 + 10 + 40 + 30 = 110
3 (2,5), (3,5), (4,5) 30 + 20 + 20 = 70
Fonte: adaptado de TAHA (2008, p. 118).

A única informação que podemos tirar dos três cortes é que o fluxo máximo na
rede não pode ultrapassar 60 unidades, o que corresponde ao corte 1, mas será que
na rede não existe outro corte com uma capacidade menor?

ATIVIDADE

Verifique que na rede da Figura 26 existem mais cortes.


Para determinar o fluxo máximo, é necessário enumerar todos os cortes de
uma rede, uma tarefa bem complicada. Por isso, necessitamos de um algoritmo
eficiente.

O algoritmo de fluxo máximo

O algoritmo de fluxo máximo é baseado em encontrar rotas de passagem com


fluxo líquido positivo entre o nó de origem e o nó de sorvedouro. Cada rota
compromete parte ou toda a capacidade de seus arcos no fluxo da rede (TAHA,
2008, p. 119).
Consideremos o arco (𝑖, 𝑗) com capacidade inicial (𝐶𝑖𝑗
̅ , 𝐶𝑗𝑖̅ ). As capacidades

restantes do arco são atualizadas à medida que porções dessas capacidades são
comprometidas ao fluxo no arco. Usaremos a notação (𝑐𝑖𝑗 , 𝑐𝑗𝑖 ) para representar essas
capacidades restantes.
Para um nó 𝑗 que recebe fluxo do nó 𝑖, adicionamos um rótulo [𝑎𝑗 , 𝑖], no qual 𝑎𝑗
é o fluxo do nó 𝑖 ao nó 𝑗. Assim, podemos resumir as etapas do algoritmo da seguinte
maneira:
P á g i n a | 87

Etapa 1: Para todos os arcos (𝑖, 𝑗), iguale a capacidade restante à capacidade
inicial, isto é, (𝑐𝑖𝑗 , 𝑐𝑗𝑖 ) = (𝐶𝑖𝑗
̅ , 𝐶𝑗𝑖̅ ). Seja 𝑎𝑖 = ∞ e rotule o nó de origem com [∞, −].

Determine 𝑖 = 1 e passe para a etapa 2.


Etapa 2: Determine 𝑆𝑖 , o conjunto de nós 𝑗 não rotulados que podem ser
alcançados diretamente do nó 𝑖 por arcos com possuem restantes positivos (isto é,
𝑐𝑖𝑗 > 0 para todo 𝑗 ∈ 𝑆𝑖 ). Se 𝑆𝑖 ≠ ∅, vá para a etapa 3. Caso contrário, vá para a etapa
4.
Etapa 3: Determine 𝑘 ∈ 𝑆𝑖 tal que:

𝑐𝑖𝑘 = 𝑚𝑎𝑥{𝑐𝑖𝑗 }

Determine 𝑎𝑘 = 𝑐𝑖𝑘 e rotule o nó 𝑘 com [𝑎𝑘 , 𝑖]. Se 𝑘 = 𝑛, o nó sorvedouro foi


rotulado e foi encontrada uma rota de passagem, vá para a etapa 5. Caso contrário,
determine 𝑖 = 𝑘 e vá para a etapa 2.
Etapa 4 (Percorrer a rota inversa): Se 𝑖 = 1, nenhuma rota de passagem é
possível; vá para a etapa 6. Caso contrário, determine que 𝑟 seja o nó que foi rotulado
imediatamente antes do nó atual 𝑖 e elimine 𝑖 do conjunto de nós adjacentes a 𝑟.
Determine 𝑖 = 𝑟 e vá para a etapa 2.
Etapa 5 (Determinação das capacidades restantes): Defina os nós da p-ésima
rota de passagem do nó de origem ao nó de sorvedouro 𝑛 como 𝑁𝑝 = (1, 𝑘1 , 𝑘2 , ⋯ , 𝑛).
Então, o fluxo máximo ao longo da rota é calculado por:

𝑓𝑝 = 𝑚𝑖𝑛{𝑎1 , 𝑎𝑘1 , 𝑎𝑘2 , ⋯ , 𝑎𝑛 }

A capacidade restante de casa arco ao longo da rota de passagem é


reduzida de 𝑓𝑝 na direção do fluxo e aumentada de 𝑓𝑝 na direção contrária; isto é,
para os nós 𝑖 e 𝑗 na rota, o fluxo restante é alterado do atual (𝑐𝑖𝑗 , 𝑐𝑗𝑖 ) para:
a) (𝑐𝑖𝑗 − 𝑓𝑝 , 𝑐𝑗𝑖 + 𝑓𝑝 ) se o fluxo for de 𝑖 para 𝑗;
b) (𝑐𝑖𝑗 + 𝑓𝑝 , 𝑐𝑗𝑖 − 𝑓𝑝 ) se o fluxo for de 𝑗 para 𝑖;

Reinstale quaisquer nós que foram eliminados na etapa 4. Determine 𝑖 = 1 e


retorne à etapa 2 para tentar uma nova rota de passagem.
P á g i n a | 88

Etapa 6 (Solução):
a) Dado que foram determinadas 𝑚 rotas de passagem, o fluxo máximo na
rede é:

𝐹 = 𝑓1 + 𝑓2 + ⋯ + 𝑓𝑚

b) Usando as capacidades restantes iniciais e finais do arco (𝑖, 𝑗), (𝐶𝑖𝑗


̅ , 𝐶𝑗𝑖̅ ) e

(𝑐𝑖𝑗 , 𝑐𝑗𝑖 ), respectivamente, o fluxo ótimo do arco (𝑖, 𝑗) é calculado da seguinte


maneira: seja (𝛼, 𝛽) = (𝐶𝑖𝑗
̅ − 𝑐𝑖𝑗 , 𝐶𝑗𝑖̅ − 𝑐𝑗𝑖 ). Se 𝛼 > 0, o fluxo ótimo de 𝑖 a 𝑗 é 𝛼. Caso

contrário, se 𝛽 > 0, o fluxo ótimo de 𝑗 a 𝑖 é 𝛽.


Resumo

Nesta aula vimos alguns problemas de fluxo máximo e uma introdução ao


algoritmo de Fluxo Máximo.
Na próxima aula iremos resolver problemas de fluxo utilizando o algoritmo
dado nesta aula.
Referências

Básica:
ARENALES, M. et al. Pesquisa operacional. Rio de Janeiro: Elsevier Campus, 2007.

TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.


Exercícios
AULA 6

ATIVIDADE

1) Para a rede da Figura 26, determine mais três cortes e ache as respectivas
capacidades.
Aula 7
Exercícios de Fluxo de Máximo

APRESENTAÇÃO DA AULA

Nesta aula veremos a resolução passo a passo de problemas de fluxo máximo


com a utilização do algoritmo de fluxo máximo.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Resolver problemas de Fluxo Máximo utilizando o algoritmo de fluxo


máximo;
 Fixação do conteúdo da aula anterior.
P á g i n a | 93

7 INTRODUÇÃO

Conforme visto na aula anterior, um problema de fluxo máximo consiste em


determinar o valor do maior fluxo possível que pode ser enviado de um nó a outro na
rede.
O problema de fluxo máximo pode aparecer em uma empresa, por exemplo,
quando se deseja determinar qual a capacidade máxima de produção de um
determinado produto. O produto pode ser fabricado utilizando-se caminhos
diferentes passando por diferentes centros de fabricação, cada um deles com uma
capacidade instalada definida (ARENALES et al., 2007, p. 339).

Vamos aos exercícios!

1) Determine o fluxo máximo na rede da Figura 27.

Figura 27: Rede para o Exercício 1.

Fonte: adaptado de TAHA (2008, p. 119)

Iteração 1: Iguale as capacidades restantes iniciais (𝑐𝑖𝑗 , 𝑐𝑗𝑖 ) às capacidades


iniciais (𝐶𝑖𝑗
̅ , 𝐶𝑗𝑖̅ ).
P á g i n a | 94

 Etapa 1: Determine 𝑎1 = ∞ e rotule o nó 1 com [∞, −]. Determine 𝑖 = 1;


 Etapa 2: Determine 𝑆1 , ou seja, o conjunto dos nós 𝑗 que não foram rotulados
e que podem ser alcançados diretamente do nó 1 por arcos com residuais
positivos. 𝑆1 = {2,3,4}(≠ ∅);
 Etapa 3: 𝑘 = 3 porque 𝑐13 = 𝑚𝑎𝑥{𝑐12 , 𝑐13 , 𝑐14 } = 𝑚𝑎𝑥{20,30,10} = 30. Determine
𝑎3 = 𝑐13 = 30, e rotule o nó 3 com [30,1]. Determine 𝑖 = 3 e repita a etapa 2.
 Etapa 2: 𝑆3 = {4,5};
 Etapa 3: 𝑘 = 5 e 𝑎5 = 𝑐35 = 𝑚𝑎𝑥{𝑐34 , 𝑐35 , } = 𝑚𝑎𝑥{10,20} = 20. Rotule o nó 5 com
[20,3]. Uma rota de passagem é obtida. Vá para a etapa 5;
 Etapa 5: A rota de passagem é determinada pelos rótulos que iniciam no nó
5 e percorrem a rota inversa até o nó 1, isto é, (5) → [20,3] → (3) → [30,1] →
(3). Assim, 𝑁1 = {1,3,5} e 𝑓1 = 𝑚𝑖𝑛{𝑎1 , 𝑎3 , 𝑎5 } = {∞, 30,20} = 20. As capacidades
restantes ao longo da rota 𝑁1 são:

(𝑐13 , 𝑐31 ) = (30 − 20,0 + 20) = (10,20)


(𝒄𝟑𝟓 , 𝒄𝟓𝟑 ) = (𝟐𝟎 − 𝟐𝟎, 𝟎 + 𝟐𝟎) = (𝟎, 𝟐𝟎)

Figura 28: Iteração 1 com 𝒇𝟏 = 𝟐𝟎.

Fonte: adaptado de TAHA (2008, p. 120)


P á g i n a | 95

Iteração 2: Iguale as capacidades restantes iniciais (𝑐𝑖𝑗 , 𝑐𝑗𝑖 ) às capacidades


iniciais (𝐶𝑖𝑗
̅ , 𝐶𝑗𝑖̅ ). Ou seja, 𝑐13 = 10, 𝑐31 = 20, 𝑐35 = 0 e 𝑐53 = 20.

 Etapa 1: Determine 𝑎1 = ∞, e rotule o nó 1 com [∞, −]. Determine 𝑖 = 1.


 Etapa 2: 𝑆1 = {2,3,4}.
 Etapa 3: 𝑘 = 2 e 𝑎2 = 𝑐12 = 𝑚𝑎𝑥{𝑐12 , 𝑐13 , 𝑐14 } = 𝑚𝑎𝑥{20,10,10} = 20. Rotule o nó
2 com [20,1]. Determine 𝑖 = 2 e repita a etapa 2.
 Etapa 2: 𝑆2 = {3,5}.
 Etapa 3: 𝑘 = 3 e 𝑎3 = 𝑐23 = 𝑚𝑎𝑥{𝑐23 , 𝑐25 , } = 𝑚𝑎𝑥{40,30} = 40. Rotule o nó 3 com
[40,2]. Determine 𝑖 = 3 e repita a etapa 2.
 Etapa 2: 𝑆3 = {4}. Não podemos ir para o nó 5 pois 𝑐35 = 0.
 Etapa 3: 𝑘 = 4 e 𝑎4 = 𝑐34 = 𝑚𝑎𝑥{𝑐34 } = 𝑚𝑎𝑥{10} = 10. Rotule o nó 4 com [10,3].
Determine 𝑖 = 4 e repita a etapa 2.
 Etapa 2: 𝑆4 = {5}. Só temos o nó 5 para incluir em 𝑆4 pois os nós 1 e 3 já estão
rotulados.
 Etapa 3: 𝑘 = 5 e 𝑎5 = 𝑐45 = 𝑚𝑎𝑥{𝑐45 } = 𝑚𝑎𝑥{20} = 20. Rotule o nó 5 com [20,4].
Como conseguimos uma rota de passagem, vamos para a etapa 5.
 Etapa 5: 𝑁2 = {1,2,3,4,5} e 𝑓2 = 𝑚𝑖𝑛{𝑎1 , 𝑎2 , 𝑎3 , 𝑎4 , 𝑎5 } = {∞, 20,40,10,20} = 10. As
capacidades residuais ao longo da rota de 𝑁2 são:

(𝑐12 , 𝑐21 ) = (20 − 10,0 + 10) = (10,10)


(𝑐23 , 𝑐32 ) = (40 − 10,0 + 10) = (30,10)
(𝑐34 , 𝑐43 ) = (10 − 10,5 + 10) = (0,15)
(𝑐45 , 𝑐54 ) = (20 − 10,0 + 10) = (10,10)
P á g i n a | 96

Figura 29: Iteração 2 com 𝒇𝟐 = 𝟏𝟎.

Fonte: adaptado de TAHA (2008, p. 120)

Iteração 3: agora temos 𝑐12 = 10, 𝑐21 = 10, 𝑐23 = 30, 𝑐32 = 10, 𝑐34 = 0, 𝑐43 = 15,
𝑐45 = 10 e 𝑐54 = 10.
 Etapa 1: Determine 𝑎1 = ∞, e rotule o nó 1 com [∞, −]. Determine 𝑖 = 1.
 Etapa 2: 𝑆1 = {2,3,4}.
 Etapa 3: 𝑘 = 2 e 𝑎2 = 𝑐12 = 𝑚𝑎𝑥{𝑐12 , 𝑐13 , 𝑐14 } = 𝑚𝑎𝑥{10,10,10} = 10. Temos um
empate, poderíamos escolher aleatoriamente, mas vamos escolher o nó
que está vinculado ao menor índice. Rotule o nó 2 com [10,1]. Determine 𝑖 =
2 e repita a etapa 2.
 Etapa 2: 𝑆2 = {3,5}.
 Etapa 3: 𝑘 = 3 e 𝑎3 = 𝑐23 = 𝑚𝑎𝑥{𝑐23 , 𝑐25 , } = 𝑚𝑎𝑥{30,30} = 30. Outro empate,
escolhemos o nó vinculado ao menor índice. Rotule o nó 3 com [30,2].
Determine 1 = 3 e repita a etapa 2.
 Etapa 2: 𝑆3 = ∅, pois 𝑐34 = 𝑐35 = 0 e o nó 1 já está rotulado. Vamos para a
etapa 4 para percorrer a rota inversa.
P á g i n a | 97

 Etapa 4: Rota Inversa: O rótulo [30,2] no nó 3 nos dá que 𝑟 = 2, ou seja, 2 é o


nó imediatamente precedente. O nó 3 é eliminado do conjunto de nós
adjacentes a 2. Determine 𝑖 = 2 e repita a etapa 2.
 Etapa 2: 𝑆2 = {5}.
 Etapa 3: 𝑘 = 5 e 𝑎5 = 𝑐25 = 𝑚𝑎𝑥{𝑐25 , } = 𝑚𝑎𝑥{30} = 30. Rotule o nó 5 com [30,2].
Conseguimos uma rota de passagem, vamos para etapa 5.
 Etapa 5: 𝑁3 = {1,2,5} e 𝑓3 = 𝑚𝑖𝑛{𝑎1 , 𝑎2 , 𝑎5 } = {∞, 10,30} = 10. As residuais ao
longo da rota de 𝑁3 são:

(𝑐12 , 𝑐21 ) = (10 − 10,10 + 10) = (0,20)


(𝑐25 , 𝑐52 ) = (30 − 10,0 + 10) = (20,10)

Figura 30: Iteração 3 com 𝒇𝟑 = 𝟏𝟎.

Fonte: adaptado de TAHA (2008, p. 120)

Iteração 4: Essa iteração dá 𝑁4 = {1,3,2,5} com 𝑓4 = 10.


Iteração 5: 𝑁5 = {1,4,5} com 𝑓5 = 10.
Iteração 6: Todos os arcos que partem do nó 1 estão com residuais iguais a
zero. Então, não há mais nenhuma rota de passagem possível. Vamos para a etapa
6 para determinar a solução.
P á g i n a | 98

Figura 31: Iteração 6, sem residuais saindo do nó 1.

Fonte: adaptado de TAHA (2008, p. 120)

 Etapa 6: o fluxo máximo na rede é 𝐹 = 𝑓1 + 𝑓2 + 𝑓3 + 𝑓4 + 𝑓5 = 20 + 10 + 10 +


10 + 10 = 60 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠.
Resumo

Nesta aula vimos uma revisão do problema de fluxo máximo, visto na aula
passada. E resolvemos um exercício utilizando o algoritmo de fluxo máximo, também
visto na aula passada.
Estudem bem até aqui, na próxima aula estudaremos um outro tipo de
programação, a programação inteira.
Complementar

VÍDEO

Vale a pena conferir esse vídeo onde o Washington Lemos transforma um


problema de Fluxo Máximo em Programação Linear e utiliza o Solver do MS Excel para
resolvê-lo.

Pesquisa Operacional - Fluxo Máximo2

2 Pesquisa Operacional - Fluxo Máximo. [S. l.: s. n.], 2014. 1 vídeo (32 min). Publicado pelo
canal Washington Lemos. Disponível em: https://www.youtube.com/watch?v=EfeEtlxTdQs.
Acesso em: 25 ago. 2019.
Referências

Básica:
ARENALES, M. et al. Pesquisa operacional. Rio de Janeiro: Elsevier Campus, 2007.

TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.


Exercícios
AULA 7

ATIVIDADE

1) Verifique as iterações 4, 5 e 6 do exercício apresentado nessa aula.


Aula 8
Programação inteira

APRESENTAÇÃO DA AULA

Nas aulas anteriores vimos a Teoria dos Grafos e como resolver problemas de
otimização em rede através do algoritmo de caminho mínimo, com o algoritmo de
Dijkstra, e do algoritmo de Fluxo Máximo. Nesta aula veremos um outro tipo de
programação, a Programação Inteira, em que algumas das variáveis pertencem ao
subconjunto dos números inteiros.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Apresentar a Programação Inteira;


 Aplicações da Programação Inteira;
 Exemplos de Programação Inteira.
P á g i n a | 104

8 INTRODUÇÃO

Até agora vimos alguns exemplos das diversas aplicações de programação


linear. Entretanto, há uma importante limitação que impede um número maior de
aplicações, que é a hipótese da divisibilidade, pois ela requer que valores não-inteiros
sejam permitidos para as variáveis de decisão. Porém, para muitos problemas
práticos, as variáveis de decisão precisam ter valores inteiros. Problemas desse tipo,
com a exigência de valores inteiros, são chamados de programação inteira (PI)
(HILLIER; LIEBERMAN, 2006, p. 462).
Ou seja, na Programação Inteira (PI) as programações são lineares nas quais
algumas ou todas as variáveis estão restritas a valores inteiros (ou discretos), é essa a
característica que distingue a PI, também conhecida como otimização discreta ou
combinatória (ARENALES et al., 2007, p. 163).
Problemas de programação inteira aparecem em abundância na nossa vida
e suas aplicações acontecem em diversas áreas. Uma extensa variedade de
aplicações pode ser encontrada em engenharia de produção, nas áreas de
planejamento e programação da produção, projeto de layout de sistemas de
produção, localização de instalações e distribuição de produtos. As variáveis
discretas que são importantes nessas aplicações envolvem, por exemplo, a empresa
decidir se fabrica um produto ou não em um período, escolher a melhor sequência
de itens a serem processados por uma máquina, entre outras (ARENALES et al., 2007,
p. 163).
O modelo matemático para programação inteira é o modelo linear, estudado
em PO I, com uma restrição adicional de que as variáveis devem ter valores inteiros.
Se apenas algumas variáveis tiverem valores inteiros, o modelo é denominado
programação inteira mista (PIM). Se todas as variáveis possuírem essa restrição, se
trata de programação inteira pura (HILLIER; LIEBERMAN, 2006, p. 462).
Existem inúmeras aplicações de programação inteira que envolvem uma
extensão direta da programação linear em que a hipótese da divisibilidade deve ser
eliminada (HILLIER; LIEBERMAN, 2006, p. 462). Porém, uma área de aplicação, talvez
até mais importante, são problemas que envolvem decisões do tipo “sim ou não”. Por
exemplo, deveríamos investir em determinado projeto? Deveríamos construir um
prédio em um dado local? Com apenas duas opções, podemos representar tais
decisões por variáveis de decisão restritas apenas a dois valores, por exemplo, 0 e 1.
Essas variáveis são chamadas de variáveis binárias. Assim, problemas de PI contendo
P á g i n a | 105

apenas variáveis binárias podem ser chamadas de programação inteira binária (PIB)
(HILLIER; LIEBERMAN, 2006, p. 462–463).

Vamos ver alguns exemplos!

Exemplos

Exemplo1
Uma empresa está estudando a possibilidade de se expandir com a
construção de uma nova fábrica na Cidade A ou então na Cidade B, ou até em
ambas. Ela também está estudando a possibilidade de construir pelo menos um novo
depósito, mas a escolha do local se restringe a uma cidade na qual a nova fábrica
será construída. O valor presente líquido de cada uma das alternativas é mostrado
na quarta coluna da Tabela 33. A última coluna fornece o capital necessário para
cada investimento. O objetivo é encontrar a combinação de alternativas que
maximize o valor presente líquido total.

Tabela 33: Dados do Exemplo 1.


Variável Valor
Capital
Decisão Pergunta de Presente
Necessário
decisão Líquido
1 Construir a fábrica na Cidade 𝑥1 R$ 9 milhões R$ 6 milhões
1?
2 Construir a fábrica na Cidade 𝑥2 R$ 5 milhões R$ 3 milhões
2?
3 Construir o depósito na Cidade 𝑥3 R$ 6 milhões R$ 5 milhões
1?
4 Construir o depósito na Cidade 𝑥4 R$ 4 milhões R$ 2 milhões
2?
Capital disponível: R$ 10 milhões
Fonte: Adaptado de HILLIER; LIEBERMAN (2006, p. 463).

Vamos formular o modelo de PIB, onde todas as variáveis de decisão possuem


a forma binária, ou seja:
1 𝑠𝑒 𝑎 𝑑𝑒𝑐𝑖𝑠ã𝑜 𝑗 𝑓𝑜𝑟 𝑠𝑖𝑚,
𝑥𝑗 = { (𝑗 = 1,2,3,4)
0 𝑠𝑒 𝑎 𝑑𝑒𝑐𝑖𝑠ã𝑜 𝑗 𝑓𝑜𝑟 𝑛ã𝑜,
P á g i n a | 106

A função objetivo deve ser igual ao valor presente líquido total dessas
decisões. Assim, se o investimento for feito para construir determinada instalação a
variável de decisão 𝑥𝑗 correspondente terá valor 1, caso contrário terá valor 0 e o seu
valor presente líquido não entrará no cálculo da função objetivo, pois será
multiplicada por 0. Então, usando unidade de milhões de reais, a função objetivo é:

𝑧 = 9𝑥1 + 5𝑥2 + 6𝑥3 + 4𝑥4

A última coluna nos fornece que o volume de capital gasto nas quatro
instalações não pode exceder R$ 10 milhões. Portanto, uma restrição no modelo é:

6𝑥1 + 3𝑥2 + 5𝑥3 + 2𝑥4 ≤ 10 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 𝐼

A segunda restrição vem do fato de as duas decisões representarem


alternativas mutuamente exclusivas, pois a empresa quer no máximo um depósito
novo, então podemos representar da seguinte forma:

𝑥3 + 𝑥4 ≤ 1 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 𝐼𝐼

Como as decisões 3 e 4 são decisões contingentes, ou seja, elas dependem


da decisão da empresa. A empresa consideraria construir um depósito em
determinada cidade caso também fosse construir uma nova fábrica na mesma
cidade. Assim, no caso da decisão 3, é necessário que 𝑥3 = 0 se 𝑥1 = 0. Podemos
representar essa limitação da seguinte forma:

𝑥3 ≤ 𝑥1 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 𝐼𝐼𝐼

Dessa forma garantimos que a decisão 3 não terá valor binário igual a 1 caso
a decisão 1 tenha valor 0.
Da mesma forma para 𝑥4 , temos a restrição:

𝑥4 ≤ 𝑥2 → 𝑟𝑒𝑠𝑡𝑟𝑖çã𝑜 𝐼𝑉

Com isso, temos o seguinte modelo de PIB:


Maximizar 𝑧 = 9𝑥1 + 5𝑥2 + 6𝑥3 + 4𝑥4
P á g i n a | 107

Sujeito a 6𝑥1 + 3𝑥2 + 5𝑥3 + 2𝑥4 ≤ 10


𝑥3 + 𝑥4 ≤ 1
−𝑥1 + 𝑥3 ≤ 0
−𝑥2 + 𝑥4 ≤ 0
𝑥𝑗 é 𝑏𝑖𝑛á𝑟𝑖𝑎 𝑝𝑎𝑟𝑎 𝑗 = 1,2,3,4

Exemplo 2
Cinco projetos estão sob avaliação dentro de uma projeção de planejamento
de três anos. A Tabela 34 registra os retornos esperados para cada projeto e os
desembolsos anuais associados.

Tabela 34: Retorno esperados.


Desembolsos (milhões R$)/ano
Retornos
Projeto 1 2 3
(milhões R$)
1 5 1 8 20
2 4 7 10 40
3 3 9 2 20
4 7 4 1 15
5 8 6 10 30
Fundos disponíveis
25 25 25
(milhões R$)
Fonte: Adaptado de TAHA (2008, p. 156).

Quais projetos devem ser selecionados na projeção dos três anos?


O problema se reduz a uma decisão “sim-não” para cada projeto.
Defina-se a variável binária 𝑥𝑗 como:

1 𝑠𝑒 𝑜 𝑝𝑟𝑜𝑗𝑒𝑡𝑜 𝑗 𝑓𝑜𝑟 𝑠𝑒𝑙𝑒𝑐𝑖𝑜𝑛𝑎𝑑𝑜


𝑥𝑗 = {
0 𝑠𝑒 𝑜 𝑝𝑟𝑜𝑗𝑒𝑡𝑜 𝑗 𝑛ã𝑜 𝑓𝑜𝑟 𝑠𝑒𝑙𝑒𝑐𝑖𝑜𝑛𝑎𝑑𝑜

O problema de PLI é:
Maximizar 𝑧 = 20𝑥1 + 40𝑥2 + 20𝑥3 + 15𝑥4 + 30𝑥5
Sujeito a 5𝑥1 + 4𝑥2 + 3𝑥3 + 7𝑥4 + 8𝑥5 ≤ 25
𝑥1 + 7𝑥2 + 9𝑥3 + 4𝑥4 + 6𝑥5 ≤ 25
8𝑥1 + 10𝑥2 + 2𝑥3 + 𝑥4 + 10𝑥5 ≤ 25
P á g i n a | 108

𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 = (0,1)

A solução inteira ótima é 𝑥1 = 𝑥2 = 𝑥3 = 𝑥4 = 1, 𝑥5 = 0, com 𝑧 = 95 milhões de


reais. Esta solução mostra que todos os projetos, tirando o 5, devem ser selecionados.
Resumo

Nesta aula vimos uma introdução à Programação Inteira, onde diferente da


Programação linear que vimos em PO I, as variáveis devem ter valores inteiros. Assim
como também podemos ter problemas onde as variáveis de decisão devem ter
valores “sim-ou-não”, neste caso, temos a programação linear binária. Vimos
também dois exemplos na prática e na próxima aula iremos aprender a resolver esses
problemas utilizando software.
Referências

Básica:
ARENALES, M. et al. Pesquisa operacional. Rio de Janeiro: Elsevier Campus, 2007.

HILLIER, F. S.; LIEBERMAN, G. J. Introdução à pesquisa operacional. São Paulo:


McGraw-Hill, 2006.

TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.


Exercícios
AULA 8

ATIVIDADE

Modele o seguinte problema de programação inteira.


1. Para promover a segurança no campus, o Departamento de Segurança de
uma universidade iniciou um processo de instalação de câmeras de segurança em
locais selecionados. O departamento quer instalar o número mínimo de câmeras,
contando que cada uma das ruas principais do campus seja atendida por no mínimo
uma câmera. A Figura 32 mapeia as ruas principais (A a K) do campus.

Figura 32: Mapa de ruas do campus da universidade.

Fonte: Adaptado de TAHA (2008, p. 158)


Aula 9
Programação inteira com software

APRESENTAÇÃO DA AULA

Nas aulas 09 e 10 de Pesquisa Operacional I, vimos formas de resolver


problemas de programação linear através do computador utilizando o solver do
Excel e o software Lingo.
Nesta aula iremos ver como resolver problemas de programação inteira por
esses softwares. Não iremos entrar em detalhes de como fazer a instalação deles.
Caso precise relembrar como instalar, revise as aulas 09 e 10 do Caderno de PO I.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Utilizar o Solver do Excel para resolver problemas de programação


inteira;
 Utilizar o software Lingo para resolver problemas de programação
inteira.
P á g i n a | 113

9 INTRODUÇÃO

Conforme visto no caderno de Pesquisa Operacional I, existem diversos


softwares no mercado para resolução de problemas de programação linear.
Nós iremos continuar focando em dois deles, o Solver do Excel e o software
Lingo.

Solver do Excel

O Solver faz parte de um conjunto de programas chamado, algumas vezes,


de ferramentas de análise hipotética. Com ele você pode localizar um valor ideal
para uma fórmula em uma célula, chamada de célula de destino na planilha do
Excel. O Solver trabalha com um grupo de células relacionadas direta ou
indiretamente com a fórmula inserida na célula de destino. Ele ajusta os valores nas
células que contêm as variáveis, onde você preencheu, que são chamadas de
ajustáveis, para produzir o resultado especificado por você na fórmula da célula de
destino. Você pode aplicar as restrições para que o Solver possa restringir os valores
usados no modelo e as restrições podem se referir a outras células que afeta a fórmula
da célula de destino (RAMOS, 2018, p. 159).

Vamos ver alguns exemplos!

9.1.1 Exemplos no Solver do Excel

Vamos resolver a modelagem do Exemplo 1 apresentado na Aula 08.


Uma empresa está estudando a possibilidade de se expandir com a
construção de uma nova fábrica na Cidade A ou então na Cidade B, ou até em
ambas. Ela também está estudando a possibilidade de construir pelo menos um novo
depósito, mas a escolha do local se restringe a uma cidade na qual a nova fábrica
será construída. O valor presente líquido de cada uma das alternativas é mostrado
na quarta coluna da Tabela 35. A última coluna fornece o capital necessário para
cada investimento. O objetivo é encontrar a combinação de alternativas que
maximize o valor presente líquido total.
P á g i n a | 114

Tabela 35: Dados do Exemplo 1.


Variável Valor
Capital
Decisão Pergunta de Presente
Necessário
decisão Líquido
1 Construir a fábrica na Cidade 𝑥1 R$ 9 milhões R$ 6 milhões
1?
2 Construir a fábrica na Cidade 𝑥2 R$ 5 milhões R$ 3 milhões
2?
3 Construir o depósito na Cidade 𝑥3 R$ 6 milhões R$ 5 milhões
1?
4 Construir o depósito na Cidade 𝑥4 R$ 4 milhões R$ 2 milhões
2?
Capital disponível: R$ 10 milhões
Fonte: Adaptado de HILLIER; LIEBERMAN (2006, p. 463)

Maximizar 𝑧 = 9𝑥1 + 5𝑥2 + 6𝑥3 + 4𝑥4


Sujeito a 6𝑥1 + 3𝑥2 + 5𝑥3 + 2𝑥4 ≤ 10
𝑥3 + 𝑥4 ≤ 1
−𝑥1 + 𝑥3 ≤ 0
−𝑥2 + 𝑥4 ≤ 0
𝑥𝑗 é 𝑏𝑖𝑛á𝑟𝑖𝑎 𝑝𝑎𝑟𝑎 𝑗 = 1,2,3,4

Vamos passar os parâmetros do exercício para o Excel.

Na Figura 33 temos um modelo dos parâmetros passados para uma planilha


do Excel. Preste bastante atenção onde colocar cada variável para não errar na
hora de preencher os campos no Solver. Estamos utilizando o Excel Office 365.
P á g i n a | 115

Figura 33: Planilha do Excel para o exemplo 1.

Fonte: a autora.

De acordo com o modelo na Figura 1 temos na(s):


 Células B3:E3: coeficientes das variáveis da função objetivo;
 Células B4:E4: valores das variáveis de decisão, o Solver irá preencher com
os valores ótimos encontrados;
 Célula B5: foi inserida a fórmula da função objetivo, ou seja,
=(B3*B4)+(C3*C4)+(D3*D4)+(E3*E4), com isso, após preenchido os campos
das variáveis de decisão pelo Solver nas células B4:E4, o valor ótimo da
função objetivo aparecerá na célula B5;
 Células B9:E12: coeficientes das variáveis de decisão nas restrições;
 Células F9:F12: valores que o lado esquerdo das restrições irá assumir de
acordo com os valores das variáveis de decisão encontradas pelo Solver.
As células também estão com fórmulas:
o F9 = (B9*$B$4)+(C9*$C$4)+(D9*$D$4)+(E9*$E$4);
o F10 = (B10*$B$4)+(C10*$C$4)+(D10*$D$4)+(E10*$E$4);
o F11 = (B11*$B$4)+(C11*$C$4)+(D11*$D$4)+(E11*$E$4);
o F12 = (B12*$B$4)+(C12*$C$4)+(D12*$D$4)+(E12*$E$4).
 Células H9:H12: valores constantes do lado direito das restrições.

Após preenchida a planilha do Excel com os valores do nosso modelo, temos


que abrir o Solver. A Figura 34 mostra como podemos fazer, primeiro vamos clicar em
Dados e após em Solver. Caso a opção Solver não esteja habilitada, clique em
Arquivo → Opções → Suplementos, em Gerenciar selecione a opção Suplementos
do Excel e clique em Ir → marque a opção Solver e clique em Ok.
P á g i n a | 116

Figura 34: Abrindo o Solver.

Fonte: a autora.

Assim, já podemos inserir os valores dos parâmetros no Solver. A Figura 35


mostra esse processo.

Figura 35: Inserindo os valores no Solver.

Fonte: a autora.

1. Em Definir Objetivo vamos selecionar a célula B5;


2. Como o nosso modelo é de maximizar, vamos marcar a opção Máx;
3. Em Alterando Células Variáveis vamos selecionar as células B4:E4;
P á g i n a | 117

4. Em Sujeito às Restrições vamos clicar em adicionar e irá aparecer uma caixa


igual à da Figura 36. Em Referência de Célula selecione a célula F9, marque a opção
<= e em Restrição selecione a célula H9 e clique em Ok. Isso irá adicionar a primeira
restrição. Repita para cada restrição, ou seja, para a restrição 2 seleciona F10 <= H10,
restrição 3 F11 <= H11 e assim por diante.

Figura 36: Inserindo as Restrições.

Fonte: a autora.

5. Também temos que inserir que as variáveis de decisão devem ser do tipo
binária, fazemos isso inserindo mais uma restrição. Da mesma forma que fizemos em
4, vamos abrir a caixa de Adicionar Restrição, em Referência de Célula vamos marcar
as nossa variáveis de decisão, ou seja B4:E4, em seguida vamos selecionar a opção
bin, o valor binário aparece automaticamente no campo Restrição e damos Ok. A
Figura 5 ilustra esse processo.

Figura 37: Inserindo restrição Binário.

Fonte: a autora.

6. Em Selecionar um Método de Solução selecionamos a opção LP Simplex e


clicamos em Resolver.
Pronto! Já colocamos os parâmetros no Solver e já dizemos para ele que se
trata de um Problema de Programação Inteira Binário.
Após clicar em Resolver aparecerá a seguinte caixa, mostrada na Figura 6.
Vamos clicar em Manter Solução do Solver e em Ok.
P á g i n a | 118

Figura 38: Resultados do Solver.

Fonte: a autora.

Só faça isso após conferir os valores das variáveis de decisão, caso não esteja
na forma Binária, algo está errado, então clique em Restaurar Valores Originais e em
Ok. Revise os valores inseridos e as opções selecionadas.
Feito tudo certo, temos o resultado, conforme podemos ver na Figura 7. Temos
que a solução ótima é 𝑥1 = 𝑥2 = 1, 𝑥3 = 𝑥4 = 0 e 𝑧 = 14.

Figura 39: Resultado do Solver.

Fonte: a autora.
P á g i n a | 119

Software Lingo

O LINGO é um software gratuito para resolução de problemas, é da empresa


LINDO System. Ele é uma ferramenta simples onde podemos resolver problemas de
otimização linear, não linear e inteira.
Vimos na aula 10 de PO I como resolver problemas de otimização linear. Agora
vamos ver como resolver programação inteira.
Para isso, vamos conferir o resultado do Exemplo 2 da aula 08.
Cinco projetos estão sob avaliação dentro de uma projeção de planejamento
de três anos. A Tabela 36 registra os retornos esperados para cada projeto e os
desembolsos anuais associados.

Tabela 36: Retorno esperados.


Desembolsos (milhões R$)/ano
Retornos
Projeto 1 2 3
(milhões R$)
1 5 1 8 20
2 4 7 10 40
3 3 9 2 20
4 7 4 1 15
5 8 6 10 30
Fundos disponíveis
25 25 25
(milhões R$)
Fonte: Adaptado de Taha (2008, p. 156)

Quais projetos devem ser selecionados na projeção dos três anos?


O problema se reduz a uma decisão “sim-não” para cada projeto.
Defina-se a variável binária 𝑥𝑗 como:

1 𝑠𝑒 𝑜 𝑝𝑟𝑜𝑗𝑒𝑡𝑜 𝑗 𝑓𝑜𝑟 𝑠𝑒𝑙𝑒𝑐𝑖𝑜𝑛𝑎𝑑𝑜


𝑥𝑗 = {
0 𝑠𝑒 𝑜 𝑝𝑟𝑜𝑗𝑒𝑡𝑜 𝑗 𝑛ã𝑜 𝑓𝑜𝑟 𝑠𝑒𝑙𝑒𝑐𝑖𝑜𝑛𝑎𝑑𝑜

O problema de PLI é:
Maximizar 𝑧 = 20𝑥1 + 40𝑥2 + 20𝑥3 + 15𝑥4 + 30𝑥5
Sujeito a 5𝑥1 + 4𝑥2 + 3𝑥3 + 7𝑥4 + 8𝑥5 ≤ 25
𝑥1 + 7𝑥2 + 9𝑥3 + 4𝑥4 + 6𝑥5 ≤ 25
P á g i n a | 120

8𝑥1 + 10𝑥2 + 2𝑥3 + 𝑥4 + 10𝑥5 ≤ 25


𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 = (0,1)

A solução inteira ótima é 𝑥1 = 𝑥2 = 𝑥3 = 𝑥4 = 1, 𝑥5 = 0, com 𝑧 = 95 milhões.

Vamos conferir esse resultado no LINGO. A Figura 40 mostra como passamos


os parâmetros do nosso exemplo para o software. Por enquanto colocamos:
 a função objetivo: MAX = 20*X1 + 40*X2 + 20*X3 + 15*X4 + 30*X5;
 as restrições:
o 5*X1 + 4*X2 + 3*X3 + 7*X4 + 8*X5 <= 25;
o 1*X1 + 7*X2 + 9*X3 + 4*X4 + 6*X5 <= 25;
o 8*X1 + 10*X2 + 2*X3 + 1*X4 + 10*X5 <= 25;

Figura 40: Acrescentando os parâmetros no Software Lingo.

Fonte: a autora.

Para acrescentarmos que o Programa se trata de uma Programação Inteira


Binária temos que acrescentar as restrições:
 @bin (X1);
 @bin (X2);
 @bin (X3);
 @bin (X4);
 @bin (X5);

Conforme podemos ver na Figura 41.


P á g i n a | 121

Figura 41: Acrescentando o tipo das variáveis.

Fonte: a autora.

Clicando no Botão Solve, temos a seguinte janela, conforme podemos ver na


Figura 42.

Figura 42: Solver Status.

Fonte: a autora.
P á g i n a | 122

Por fim, temos a solução, que podemos ver na Figura 43. Conforme podemos
ver a solução ótima é 𝑥1 = 𝑥2 = 𝑥3 = 𝑥4 = 1, 𝑥5 = 0, com 𝑧 = 95 milhões, que é a
mesma solução dada na Aula 08.

Figura 43: Solução Lingo.

Fonte: a autora.

Caso o problema seja de Programação Inteira Pura, podemos definir o tipo


das variáveis sendo @gin, isso fará com que as variáveis sejam do tipo inteiro. Para
Programação Inteira Mista, só colocar @bin, @gin ou acrescentar a restrição variável
>= 0.
Resumo

Nesta aula vimos dois exemplos de Programação Inteira Binária sendo


resolvidos em dois softwares, o Solver do Excel e o Lingo.
Referências

Básica:
HILLIER, F. S.; LIEBERMAN, G. J. Introdução à pesquisa operacional. São Paulo:
McGraw-Hill, 2006.

RAMOS, R. F. Pesquisa operacional I. Itaperuna: IBL, 2018.

TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.


Exercícios
AULA 9

ATIVIDADE

1) Faça o Exemplo 2 no Solver do Excel.

2) Faça o Exemplo 1 no Lingo.


Aula 10
Introdução ao método de transporte

APRESENTAÇÃO DA AULA

Nesta aula iremos ver uma introdução aos problemas de transporte, a


formulação matemática e o algoritmo simplex.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Introdução ao Método de Transporte;


 Formulação matemática do problema de transporte;
 Introdução ao algoritmo simplex para problemas de transporte.
P á g i n a | 127

10 INTRODUÇÃO

Introdução aos problemas de transporte, transbordo e designação

Os problemas de transporte, transbordo e designação referem-se ao


transporte ou distribuição de produtos dos centros de produção aos mercados
consumidores, ou seja, aos clientes. Os produtos podem ser os mais variados possíveis.
O problema consiste em transportar o produto do local de origem, ou seja, dos
centros de produção, até os mercados consumidores, minimizando o custo total de
transporte e admitindo que as quantidades produzidas ou ofertadas em cada centro
e as quantidades demandadas em cada mercado sejam conhecidas. Sendo que o
transporte deve ser efetuado respeitando-se as limitações de oferta e atendendo à
demanda (ARENALES et al., 2007, p. 21).

Formulação matemática

Para facilitar, vamos denominar os centros de produção como origens e os


mercados consumidores, como destinos. Vamos definir como:
 𝑚: quantidade de origens;
 𝑛: quantidade de destinos para um produto;
 𝑐𝑖𝑗 : custo de transportar uma unidade do produto da origem 𝑖 para o destino
𝑗;
 𝑎𝑖 : oferta do produto na origem 𝑖; e
 𝑏𝑗 : demanda do produto no destino 𝑗.

Na Figura 44 podemos ver uma representação gráfica das origens, destinos,


disponibilidades do produto e as demandas.
P á g i n a | 128

Figura 44: Rede de transporte.

Fonte: adaptado de ARENALES et al (2007, p. 21).

As variáveis do problema são as quantidades transportadas das origens aos


destinos, então temos:
 𝑥𝑖𝑗 : quantidade transportada do produto da origem 𝑖 para o destino 𝑗.
Como essas quantidades não podem ser negativas, temos que acrescentar as
restrições:
 𝑥𝑖𝑗 ≥ 0, 𝑖 = 1, ⋯ , 𝑚 𝑒 𝑗 = 1, ⋯ , 𝑛.
Se 𝑥𝑖𝑗 é a quantidade transportada do produto da origem 𝑖 para o destino 𝑗,
então 𝑐𝑖𝑗 𝑥𝑖𝑗 é o custo para realização deste transporte. Portanto, o custo total de
transporte é o somatório dos custos de transporte de todas as quantidades
transportadas de todas as origens 𝑖 a todos os destinos 𝑗. Ou seja:

𝑚 𝑛

∑ ∑ 𝑐𝑖𝑗 𝑥𝑖𝑗
𝑖=1 𝑗=1

Queremos minimizar esse custo, ou seja, nossa função objetivo é:


Minimizar
P á g i n a | 129

𝑚 𝑛

𝑧 = ∑ ∑ 𝑐𝑖𝑗 𝑥𝑖𝑗
𝑖=1 𝑗=1

Para as restrições sabemos que o que é transportado de cada origem 𝑖 a todos


os destinos 𝑗, 𝑗 = 1,2, ⋯ , 𝑛, não pode ultrapassar a quantidade disponível do produto
na origem 𝑖. E que as quantidades transportadas das diversas origens ao destino 𝑗
deve satisfazer a demanda requerida neste destino. Então temos:
𝑛

∑ 𝑥𝑖𝑗 ≤ 𝑎𝑖
𝑗=1
𝑚

∑ 𝑥𝑖𝑗 = 𝑏𝑗
𝑖=1

Assim, temos o modelo completo como:


Minimizar
𝑚 𝑛

𝑧 = ∑ ∑ 𝑐𝑖𝑗 𝑥𝑖𝑗
𝑖=1 𝑗=1

Sujeito a:
𝑛

∑ 𝑥𝑖𝑗 ≤ 𝑎𝑖 𝑖 = 1, ⋯ , 𝑚
𝑗=1
𝑚

∑ 𝑥𝑖𝑗 = 𝑏𝑗 𝑗 = 1, ⋯ , 𝑛
𝑖=1
𝑥𝑖𝑗 ≥ 0 𝑖 = 1, ⋯ , 𝑚 𝑒 𝑗 = 1, ⋯ , 𝑛

Algoritmo para o problema de transporte

O algoritmo para o problema de transporte segue praticamente as mesmas


etapas do método simplex. Porém, no lugar de usarmos a tabela simplex normal,
aproveitaremos a estrutura especial do problema de transporte para que possamos
organizar os cálculos de uma maneira que seja mais conveniente.
As etapas do algoritmo do problema de transporte são um paralelo exato das
etapas do algoritmo simplex (TAHA, 2008, p. 91).
As etapas são:
Etapa 1: Determine uma solução inicial viável e passe para a etapa 2.
P á g i n a | 130

Etapa 2: Use a condição de otimalidade do método simplex para determinar


a variável que entra entre todas as variáveis não básicas. Se a condição de
otimalidade for satisfeita, pare. Senão, passe para a etapa 3.
Etapa 3: Use a condição de viabilidade do método simplex para determinar a
variável que sai entre todas as variáveis básicas atuais e ache a nova solução básica.
Volte para a etapa 2.
Resumo

Nesta aula tivemos uma introdução ao Problema de Transporte, assim como a


formulação matemática de tal problema e as etapas do algoritmo simplex.
Nas próximas aulas iremos aprender a resolver as etapas do algoritmo.
Referências

Básica:
ARENALES, M. et al. Pesquisa operacional. Rio de Janeiro: Elsevier Campus, 2007.

TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.


Exercícios
AULA 10

ATIVIDADE

Faça a formulação matemática do seguinte problema:

1) Uma empresa de automóveis tem três fábricas, nas Cidades A, B e C, e duas


grandes centrais de distribuição nas Cidade 1 e 2. As capacidades das três fábricas
para o próximo trimestre são 1.000, 1.500 e 1.200 carros. As demandas trimestrais nas
duas centrais de distribuição são 2.300 e 1.400 carros. A empresa transportadora
encarregada do transporte dos carros cobra 8 centavos por Km por carro. Os custos
de transporte por carro nas diferentes rotas estão na Tabela 37.

Tabela 37: Custo (R$ de transporte por carro.


Cidade 1 Cidade 2
(1) (2)
Cidade A 1.000 2.690
(1)
Cidade B (2) 1.250 1.350
Cidade C 1.275 850
(3)

Fonte: Adaptado de TAHA (2008, p. 85).


Aula 11
Solução inicial do método de
transporte

APRESENTAÇÃO DA AULA

Na aula anterior, vimos que o problema de transporte é uma classe especial


dos problemas de programação linear, em que trata do envio de um produto de um
ponto de origem a um ponto de destino. Vimos também as etapas do algoritmo
simplex.
Nesta aula iremos ver a Etapa 1, como determinar a Solução Inicial do Método
de Transporte.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Apresentar a solução inicial do método de transporte.


P á g i n a | 135

11 INTRODUÇÃO

Conforme visto na Aula 10, o problema de transporte trata do envio de um


produto de um ponto de origem para um ponto de destino. O objetivo da
programação linear é determinar o conjunto de variáveis que minimize o custo total
do envio e ao mesmo tempo atenda os limites de oferta e demanda.
A aplicação do problema de transporte pode ser estendida a outras áreas de
operações, como controle de estoque, programação de empregos e designação
de pessoal (TAHA, 2008, p. 85).
As etapas do algoritmo de transporte são exatamente as do método simplex,
visto no Caderno de Pesquisa Operacional I. Porém, para o problema de transporte,
a tabela simplex é útil na modelagem de uma classe de problemas de maneira
concisa. Em particular, o formato da tabela simplex para o problema de transporte
simplifica sua solução pelo Solver do Excel (TAHA, 2008, p. 85).
Na aula anterior vimos que as etapas são:
Etapa 1: Determine uma solução inicial viável e passe para a etapa 2.
Etapa 2: Use a condição de otimalidade do método simplex para determinar
a variável que entra entre todas as variáveis não básicas. Se a condição de
otimalidade for satisfeita, pare. Senão, passe para a etapa 3.
Etapa 3: Use a condição de viabilidade do método simplex para determinar a
variável que sai entre todas as variáveis básicas atuais e ache a nova solução básica.
Volte para a etapa 2.

Determinação da solução inicial

Em um problema geral de transporte com 𝑚 origens e 𝑛 destinos, nós temos


𝑚 + 𝑛 equações de restrição, isto é, uma para cada par origem-destino. Porém, como
o problema de transporte é sempre equilibrado, ou seja, a soma das ofertas é igual a
soma das demandas, temos que uma dessas equações é redundante. Assim, o
problema tem 𝑚 + 𝑛 − 1 equações de restrição independentes, o que significa que a
solução básica inicial consiste em 𝑚 + 𝑛 − 1 variáveis básicas (TAHA, 2008, p. 91).
Essa estrutura especial do problema de transporte permite garantir uma
solução básica inicial não artificial usando um de três métodos (TAHA, 2008, p. 91):
 Método do canto noroeste;
 Método do menor custo;
P á g i n a | 136

 Método de aproximação de Vogel.


Os três métodos são diferentes em relação à “qualidade” da solução básica
inicial que produzem, no sentido de que uma melhor solução inicial resulta em um
menor valor para a função objetivo. Em geral, nem sempre o método de
aproximação de Vogel dá a melhor solução básica inicial, e o método do canto
noroeste dá o pior, porém, este envolve menor quantidade de cálculos (TAHA, 2008,
p. 91).

Vamos ver cada um deles!

11.1.1 Método do canto noroeste

O método do canto noroeste começa na célula do canto noroeste da tabela


simplex, isto é, na célula onde está a variável 𝑥11 .
Etapa 1: Aloque o máximo possível à célula selecionada e ajuste as
quantidades associadas fornecidas e demandadas subtraindo a quantidade
alocada.
Etapa 2: Cancele a linha ou coluna com suprimento ou demanda zero para
indicar que nenhuma outra designação pode ser feita àquela linha ou coluna. Se
uma linha e uma coluna chegam a zero simultaneamente, cancele somente uma e
deixe um suprimento/demanda zero na linha/coluna não cancelada.
Etapa 3: Se restar exatamente uma linha ou coluna não cancelada, pare.
Senão, passe para a célula à direita se uma coluna acabou de ser cancelada ou
para a célula abaixo se uma linha foi cancelada. Volte para à etapa 1.

11.1.2 Método do menor custo

O método do menor custo acha uma solução inicial melhor concentrando-se


nas rotas mais baratas. O método designa o máximo possível à célula que tiver o
menor custo unitário, com empates resolvidos arbitrariamente. Em seguida, a linha ou
coluna que estiver satisfeita é cancelada e as quantidade ofertadas ou demandadas
são ajustadas de acordo.
Se ambas, linha e coluna, forem satisfeitas simultaneamente, só uma delas é
cancelada, semelhantemente ao método do canto noroeste. Em seguida, procure
P á g i n a | 137

a célula não cancelada que tenha o menor custo unitário e repita o processo até
restar exatamente uma linha ou coluna não cancelada.

11.1.3 Método de aproximação de Vogel

O método de aproximação de Vogel (MAV) é uma versão melhorada do


método do menor custo. Porém, nem sempre produz soluções iniciais melhores.
Etapa 1: Para cada linha/coluna, determine uma multa subtraindo o elemento
de menor custo unitário da linha/coluna do próximo elemento de menor custo da
mesma linha/coluna.
Etapa 2: Identifique a linha ou coluna que tenha a maior multa. Resolva os
empates arbitrariamente. Aloque o máximo possível à variável que tiver o menor
custo unitário da linha ou coluna selecionada. Ajuste a oferta e a demanda, e
cancele a linha ou coluna satisfeita. Se uma linha e uma coluna forem satisfeitas
simultaneamente, cancele apenas uma das duas e atribua zero na linha/coluna da
oferta/demanda restante.
Etapa 3:
a) Se exatamente uma linha ou coluna com zero oferta ou demanda
permanecer não cancelada, pare.
b) Se uma linha/coluna com oferta/demanda positiva permanecer não
cancelada, determine as variáveis básicas na linha/coluna pelo método do menor
custo. Pare.
c) Se todas as linhas e colunas restantes não canceladas tiverem oferta e
demanda zero, determine as variáveis básicas zero pelo método do menor custo.
Pare.
d) Caso contrário, volte à etapa 1.

11.1.4 Exemplo

A Empresa X despacha caminhões de cana-de-açúcar provenientes de três


canaviais para quatro moinhos. As quantidades de oferta e de demanda, em cargas
de caminhão, estão na Tabela 38, juntamente com os custos unitários 𝑐𝑖𝑗 de
transporte por caminhão nas diferentes rotas (em centenas de reais). O modelo
procura a programação de expedição de custo mínimo 𝑥𝑖𝑗 entre o canavial 𝑖 e a
usina de moagem 𝑗 (𝑖 = 1,2,3; 𝑗 = 1,2,3,4).
P á g i n a | 138

Tabela 38: Modelo de transporte da Empresa X.


Moinho
1 2 3 4 Oferta
10 2 20 11

1 15
𝑥11 𝑥12 𝑥13 𝑥14

12 7 9 20
Canavial

2 25
𝑥21 𝑥22 𝑥23 𝑥24

4 14 16 18

3 10
𝑥31 𝑥32 𝑥33 𝑥34

Demanda 5 15 15 15
Fonte: adaptado de TAHA (2008, p. 91).

A aplicação do procedimento do método do canto noroeste ao modelo dá


a solução básica inicial apresentada na Tabela 2, onde as setas indicam a ordem na
qual as quantidades alocadas são geradas. A solução básica inicial é:

𝑥11 = 5, 𝑥12 = 10, 𝑥22 = 5, 𝑥23 = 15, 𝑥24 = 5, 𝑥34 = 10

E o custo associado à essa solução básica inicial é:

𝑧 = (5 ∗ 10) + (10 ∗ 2) + (5 ∗ 7) + (15 ∗ 9) + (5 ∗ 20) + (10 ∗ 18) = 520


P á g i n a | 139

Tabela 39: Solução inicial do canto noroeste.


Moinho
1 2 3 4 Oferta
10 2 20 11
1 5 10 15

12 7 9 20
Canavial

2 5 15 5 25

4 14 16 18
3 10 10

Demanda 5 15 15 15
Fonte: Adaptado de TAHA (2008, p. 92).

Vamos ver qual a solução inicial que o método do menor custo dará para o
mesmo exemplo.
O método do menor custo é aplicado ao exemplo dado da seguinte maneira:
1. A célula (1,2) tem o menor custo unitário da tabela simplex (𝑐12 = 2). O
máximo que pode ser despachado do Canavial 1 para o Moinho 2 são 15 caminhões,
ou seja 𝑥12 = 15, o que satisfaz a linha 1 e coluna 2 simultaneamente. Vamos cancelar
arbitrariamente a coluna 2 e ajustamos a oferta na linha 1 para 0.
2. A célula (3,1) tem o menor custo unitário não cancelado, (𝑐31 = 4). Designe
𝑥31 = 5 e cancele a coluna 1 pois ela está satisfeita; após, ajuste a demanda da linha
3 para 10 − 5 = 5 caminhões.
3. Continuando da mesma maneira, designamos sucessivamente 15
caminhões à célula (2,3), 0 caminhões à célula (1,4), 5 caminhões à célula (3,4) e 10
caminhões à célula (2,4).
A solução inicial resultante está resumida na Tabela 3, onde as setas indicam
a ordem em que as alocações foram feitas. A solução inicial, que consiste em seis
variáveis básicas, é:

𝑥12 = 15, 𝑥14 = 0, 𝑥23 = 15, 𝑥24 = 10, 𝑥31 = 5, 𝑥34 = 5

E o valor para a função objetivo é:


P á g i n a | 140

𝑧 = (15 ∗ 2) + (0 ∗ 11) + (15 ∗ 9) + (10 ∗ 20) + (5 ∗ 4) + (5 ∗ 18) = 475

Tabela 40: Solução Inicial do método do menor custo.


Moinho
1 2 3 4 Oferta
10 2 20 11
1 15 0 15

12 7 9 20
Canavial

2 15 10 25

4 14 16 18
3 5 5 10

Demanda 5 15 15 15
Fonte: Adaptado de TAHA (2008, p. 92).

Podemos ver que a solução inicial pelo método do menor custo é melhor do
que a dada pelo método do canto noroeste, pois temos um menor valor de 𝑧. 𝑧 =
520 pelo método do canto noroeste e 𝑧 = 475 pelo método do menor custo.
Vamos ver a resolução do método de aproximação de Vogel.
O método de aproximação de Vogel é aplicado ao nosso exemplo da
seguinte forma:
 Na Tabela 41 temos calculado o primeiro conjunto de multas. Como temos
a maior valor de multa na linha 3 e a célula (3,1) tem o menor custo unitário
daquela linha, a quantidade 5 é designada à variável 𝑥31 . A coluna 1 está
satisfeita e é cancelada.
 Novas multas são calculadas e os resultados estão na Tabela 5. A linha 1
agora tem a maior multa, com isso, designamos a máxima quantidade
possível à célula (1,2), isto é 𝑥12 = 15, o que faz com que tenhamos a linha 1
e a coluna 2 satisfeitas simultaneamente. Cancelamos arbitrariamente a
coluna 2 e ajustamos a oferta na linha 1 para zero.
 Continuando da mesma maneira, a linha 2 produzirá a multa mais alta (=11),
e designamos 15 a variável 𝑥23 , o que cancela a coluna 3 e deixa 10
P á g i n a | 141

unidades na linha 2. Sobra apenas a coluna 4, e ela tem uma oferta positiva
de 15 unidade. Aplicando o método do menor custo a essa coluna,
designamos sucessivamente 𝑥14 = 0, 𝑥34 = 5, 𝑥24 = 10. E o valor associado
para a função objetivo para essa solução inicial é:

𝑧 = (15 ∗ 2) + (0 ∗ 11) + (15 ∗ 9) + (10 ∗ 20) + (5 ∗ 4) + (5 ∗ 18)

Podemos perceber que essa solução tem o mesmo valor para a função
objetivo que o método do menor custo.

Tabela 41: Multas de linha e coluna pelo Método de Aproximação de Vogel.


Multa de
1 2 3 4
linha
10 2 20 11 10 − 2 = 8
1 15
Canavial

12 7 9 20 9−7=2
2 25

4 14 16 18 14 − 4 = 10
3 10
𝟓
5 15 15 15
Multa de 10 − 4 7−2 16 − 9 18 − 11
coluna =6 =5 =7 =7
Fonte: Adaptado de TAHA (2008, p. 93).
P á g i n a | 142

Tabela 42: Primeira designação pelo Método de Aproximação de Vogel e novos valores das
multas.
Multa de
1 2 3 4
linha
10 2 20 11 11 − 2 = 9
1 15
𝟏𝟓

12 7 9 20 9−7=2
Canavial

2 25

4 14 16 18 14 − 16 = 2
3 10
𝟓

5 15 15 15
Multa de 7−2 16 − 9 18 − 11

coluna =5 =7 =7
Fonte: Adaptado de TAHA (2008, p. 93).
Resumo

Nesta aula vimos três métodos para calcular a solução básica inicial do
algoritmo do método de transporte.

Na próxima aula estudaremos as próximas etapas.

Não deixe de estudar!


Referências

Básica:
TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.
Exercícios
AULA 11

ATIVIDADE

1) Compare as soluções iniciais obtidas pelos métodos do canto noroeste, do


menor custo e de Vogel para cada um dos seguintes modelos:
a.
0 2 1 6
2 1 5 7
2 4 3 7
5 5 10
Aula 12
Otimização do método de transporte

APRESENTAÇÃO DA AULA

Nas aulas anteriores vimos o Problema do Transporte, apresentamos o


algoritmo e resolvemos a primeira etapa dele. Aprendemos três métodos para achar
uma solução básica inicial. Agora vamos ver as outras etapas.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Apresentar as próximas etapas do algoritmo para otimização do


Método do Transporte;
 Resolver problemas de transporte.
P á g i n a | 147

12 INTRODUÇÃO

Depois de termos determinado a solução inicial, utilizando um dos métodos


apresentados na aula anterior, utilizaremos as seguintes etapas do algoritmo para
determinar a solução ótima:
Etapa 1: Use a condição de otimalidade do simplex para designar a variável
que entra na base como a variável não básica atual que pode melhorar a solução.
Se a condição for satisfeita, pare. Senão, passe para a etapa 2.
Etapa 2: Determine a variável que sai da base usando a condição de
viabilidade do simplex. Mude a base e volte à etapa 1.
No método de transporte, as condições de otimalidade e viabilidade não
envolvem as conhecidas operações de linha utilizadas no método simplex. No lugar
disso, a estrutura especial do problema de transporte permite cálculos mais simples
(TAHA, 2008, p. 93).

Vamos aos exemplos.

Exemplos

Vamos voltar ao exemplo da aula anterior e resolver as outras etapas do


algoritmo para encontramos a solução ótima.
A Empresa X despacha caminhões de cana-de-açúcar provenientes de três
canaviais para quatro moinhos. As quantidades de oferta e de demanda, em cargas
de caminhão, estão na Tabela 43, juntamente com os custos unitários 𝑐𝑖𝑗 de
transporte por caminhão nas diferentes rotas (em centenas de reais). O modelo
procura a programação de expedição de custo mínimo 𝑥𝑖𝑗 entre o canavial 𝑖 e a
usina de moagem 𝑗 (𝑖 = 1,2,3; 𝑗 = 1,2,3,4).
P á g i n a | 148

Tabela 43: Modelo de transporte da Empresa X.


Moinho
1 2 3 4 Oferta
10 2 20 11

1 15
𝑥11 𝑥12 𝑥13 𝑥14

12 7 9 20
Canavial

2 25
𝑥21 𝑥22 𝑥23 𝑥24

4 14 16 18

3 10
𝑥31 𝑥32 𝑥33 𝑥34

Demanda 5 15 15 15
Fonte: adaptado de TAHA (2008, p. 91).

A aplicação do procedimento do método do canto noroeste ao modelo dá


a solução básica inicial apresentada na Tabela 44.
P á g i n a | 149

Tabela 44: Solução inicial do canto noroeste.


Moinho
1 2 3 4 Oferta
10 2 20 11

1 15
5 10

12 7 9 20
Canavial

2 25
5 15 5

4 14 16 18

3 10
10

Demanda 5 15 15 15
Fonte: Adaptado de TAHA (2008, p. 92).

A solução básica inicial é:

𝑥11 = 5, 𝑥12 = 10, 𝑥22 = 5, 𝑥23 = 15, 𝑥24 = 5, 𝑥34 = 10

E o custo associado à essa solução básica inicial é:

𝑧 = (5 ∗ 10) + (10 ∗ 2) + (5 ∗ 7) + (15 ∗ 9) + (5 ∗ 20) + (10 ∗ 18) = 520

A determinação da variável que entra na base entre as variáveis não básicas


que temos é feita com o cálculo dos coeficientes não básicos da linha 𝑧 usando o
método dos multiplicadores (TAHA, 2008, p. 93).
Neste método, associamos os multiplicadores 𝑢𝑖 e 𝑣𝑗 com a linha 𝑖 e a coluna 𝑗
da tabela simplex de transporte. Para cada variável básica atual 𝑥𝑖𝑗 , esses
multiplicadores devem satisfazer as seguintes equações:

𝑢𝑖 + 𝑣𝑖 = 𝑐𝑖𝑗 , para cada 𝑥𝑖𝑗 básica


P á g i n a | 150

Como podemos ver na Tabela 45, a solução inicial para o nosso exemplo tem
seis variáveis básicas, o que irá resultar em seis equações com sete incógnitas. Para
resolver essas equações, o método dos multiplicadores recomenda estabelecer
qualquer 𝑢𝑖 = 0 e então resolver para as variáveis restantes.
Vamos aos cálculos!

Tabela 45: Resolução das seis equações.


Variável Equação (𝒖, 𝒗) Solução
básica
𝑥11 𝑢1 + 𝑣1 = 10 Faça 𝑢1 = 0 → 𝑣1 = 10
𝑥12 𝑢1 + 𝑣2 = 2 𝑢1 = 0 → 𝑣2 = 2
𝑥22 𝑢2 + 𝑣2 = 7 𝑣2 = 2 → 𝑢2 = 5
𝑥23 𝑢2 + 𝑣3 = 9 𝑢2 = 5 → 𝑣3 = 4
𝑥24 𝑢2 + 𝑣4 = 20 𝑢2 = 5 → 𝑣4 = 15
𝑥34 𝑢3 + 𝑣4 = 18 𝑣4 = 15 → 𝑢3 = 3
Fonte: Adaptado de TAHA (2008, p. 93).

Em resumo temos:
𝑢1 = 0, 𝑢2 = 5, 𝑢3 = 3
𝑣1 = 10, 𝑣2 = 2, 𝑣3 = 4, 𝑣4 = 15

O próximo passo é utilizar 𝑢𝑖 e 𝑣𝑗 para avaliar as variáveis não básicas


calculado:
𝑢𝑖 + 𝑣𝑗 − 𝑐𝑖𝑗 para cada 𝑥𝑖𝑗 não básica

Os cálculos estão na Tabela 46.

Tabela 46: Resultados das avaliações.


Variável não 𝑢𝑖 + 𝑣𝑗 − 𝑐𝑖𝑗
básica
𝑥13 𝑢1 + 𝑣3 − 𝑐13 = 0 + 4 − 20 = −16
𝑥14 𝑢1 + 𝑣4 − 𝑐14 = 0 + 15 − 11 = 4
𝑥21 𝑢2 + 𝑣1 − 𝑐21 = 5 + 10 − 12 = 3
𝑥31 𝑢3 + 𝑣1 − 𝑐31 = 3 + 10 − 4 = 9
𝑥32 𝑢3 + 𝑣2 − 𝑐32 = 3 + 2 − 14 = −9
𝑥33 𝑢3 + 𝑣3 − 𝑐33 = 3 + 4 − 16 = −9
P á g i n a | 151

Fonte: Adaptado de TAHA (2008, p. 94).

Os cálculos que fizemos, na realidade, foi equivalente a calcular a linha 𝑧 da


tabela simplex, como pode ser visto em resumo na Tabela 47.

Tabela 47: Resumo.


B𝑥11 𝑥12 𝑥13 𝑥14 𝑥21 𝑥22 𝑥23 𝑥24 𝑥31 𝑥32 𝑥33 𝑥34
ase
𝑧 0 0 −16 4 3 0 0 0 9 −9 −9 0
Fonte: Adaptado de TAHA (2008, p. 94).

Como queremos minimizar o custo, a variável que entra na base é a que tem
o coeficiente mais positivo na linha 𝑧, ou seja, 𝑥31 é a variável que entra na base.
Os cálculos para o problema de transporte costumam ser feitos diretamente
na tabela simplex, como mostrado na Tabela 48, isso significa que não é necessário
escrever as equações (𝑢, 𝑣) explicitamente.

Tabela 48: Cálculos da iteração 1.


𝑣1 = 10 𝑣2 = 2 𝑣3 = 4 𝑣4 = 15 Oferta
10 2 20 11
𝑢1 = 0 𝟓 𝟏𝟎 15
-16 4
12 7 9 20
𝑢2 = 5 𝟓 𝟏𝟓 𝟓 25
3
4 14 16 18
𝑢3 = 3 𝟏𝟎 10
9 -9 -9
Demanda 5 15 15 15
Fonte: Adaptado de TAHA (2008, p. 94).

Podemos começar fazendo 𝑢1 = 0 e após podemos calcular os valores de 𝑣


de todas as colunas que têm variáveis básicas na linha 1, ou seja, calculamos 𝑣1 e
𝑣2 . Em seguida, calculamos 𝑢2 com base na equação (𝑢, 𝑣) da variável básica 𝑥22 .
Sabendo o valor de 𝑢2 , podemos calcular 𝑣3 e 𝑣4 . Por fim, determinamos 𝑢3
usando a equação básica de 𝑥33 .
P á g i n a | 152

Uma vez que todas as 𝑢 e 𝑣 estejam determinadas, podemos avaliar as


variáveis não básicas com o cálculo de 𝑢𝑖 + 𝑣𝑗 − 𝑐𝑖𝑗 para cada 𝑥𝑖𝑗 não básica. Na
Tabela 48 temos essas avaliações mostradas no pequeno quadrado no canto inferior
direito de cada célula.
Temos que 𝑥31 foi identificada como a variável que entra na base, agora
precisamos determinar a variável que sai da base.
A seleção de 𝑥31 como a variável que entra na base significa que queremos
que os produtos sejam despachados por essa rota pois ela reduz o custo total de
expedição. Agora precisamos saber qual é o máximo que podemos despachar por
essa nova rota? Podemos observar na Tabela 6 que, se forem despachadas 𝜃
unidades, ou seja 𝑥31 = 𝜃 pela rota (3,1), então o valor máximo de 𝜃 é determinado
com base em duas condições:
1. Os limites de oferta e os requisitos da demanda continuam satisfeitos;
2. Os despachos por todas as rotas permanecem não negativos.

Essas duas condições determinam o valor máximo de 𝜃 e a variável que sai da


base da seguinte maneira:
1. Um circuito fechado que começa e termina na célula da variável que entra
na base (3,1) é construído. Esse circuito consiste somente em segmentos horizontais e
verticais conectados (diagonais não são permitidas). Com exceção da célula da
variável que entra na base, cada canto do circuito fechado deve coincidir com a
variável básica. A Tabela 7 mostra o circuito para 𝑥31 . Existe exatamente um circuito
para uma dada variável que entra na base;
2. Designamos a quantidade 𝜃 à célula da variável que entra na base, (3,1).
Para que os limites de oferta e demanda permaneçam satisfeitos, temos de alternar
entre subtrair e somar a quantidade 𝜃 nos cantos sucessivos do circuito, como pode
ser visto na Tabela 7. Portanto, para 𝜃 ≥ 0, os novos valores das variáveis permanecem
não negativas se:
𝑥11 = 5 − 𝜃 ≥ 0
𝑥22 = 5 − 𝜃 ≥ 0
𝑥34 = 10 − 𝜃 ≥ 0

O valor máximo correspondente de 𝜃 é 5, o que ocorre quando ambas, 𝑥11 e


𝑥22 , alcançam nível zero. Como somente uma variável básica atual deve sair da
P á g i n a | 153

solução básica, podemos escolher tanto 𝑥11 quanto 𝑥22 para ser a variável que sai da
base. Vamos escolher arbitrariamente a variável 𝑥11 .

Tabela 49: Determinação do circuito fechado para 𝒙𝟏𝟑 .


𝑣1 = 10 𝑣2 = 2 𝑣3 = 4 𝑣4 = 15 Oferta
10 2 20 11
𝑢1 = 0 𝟓−𝜽 𝟏𝟎 + 𝜽 15
- + -16 4
12 7 9 20
𝑢2 = 5 𝟓−𝜽 𝟏𝟓 𝟓+𝜽 25
3 - +
4 14 16 18
𝑢3 = 3 𝜽 𝟏𝟎 − 𝜽 10
+ 9 -9 -9 -
Demanda 5 15 15 15
Fonte: Adaptado de TAHA (2008, p. 94)

A seleção de 𝑥31 (= 5) e de 𝑥11 como as variáveis que entra e sai da base,


respectivamente, requer que ajustemos os valores das variáveis básicas nos cantos
do circuito fechado, como podemos ver na Tabela 50. Como cada unidade
despachada pela rota (3,1) reduz o custo de expedição em R$ 9 (= 𝑢3 + 𝑣1 − 𝑐31 ), o
custo total associado com a nova programação é 𝑅$ 9 × 5 = 𝑅$ 45, menor do que na
programação anterior. Assim, temos que o novo custo é 𝑅$ 520 − 𝑅$ 45 = 𝑅$ 475.
P á g i n a | 154

Tabela 50: Cálculos da iteração 2.


𝑣1 = 1 𝑣2 = 2 𝑣3 = 4 𝑣4 = 15 Oferta
10 2 20 11
𝑢1 = 0 𝟏𝟓 − 𝜽 𝜽 15
-9 - -16 + 4
12 7 9 20
𝑢2 = 5 𝟎+𝜽 𝟏𝟓 𝟏𝟎 − 𝜽 25
-6 + -
4 14 16 18
𝑢3 = 3 𝟓 𝟓 10
-9 -9
Demanda 5 15 15 15
Fonte: Adaptado de TAHA (2008, p. 95)

Dada a nova solução básica, repetimos o cálculo dos multiplicadores 𝑢 e 𝑣,


como podemos ver na Tabela 50. A variável que entra na base é 𝑥14 . Pelo circuito
fechado temos que 𝑥14 = 10 e que a variável que sai da base é 𝑥24 .
Podemos ver a nova solução na Tabela 51, que resulta em 𝑅$4 × 10 = 𝑅$40 a
menos que a iteração anterior, logo, o novo custo é de 𝑅$475 − 𝑅$40 = 𝑅$435.
Como os novos valores de 𝑢𝑖 + 𝑣𝑗 − 𝑐𝑖𝑗 agora são negativos para todas as
variáveis 𝑥𝑖𝑗 não básicas, temos que a solução da Tabela 9 é ótima.

Tabela 51: Cálculos da iteração 3 (ótima).


𝑣1 = −3 𝑣2 = 2 𝑣3 = 4 𝑣4 = 11 Oferta
10 2 20 11
𝑢1 = 0 𝟓 𝟏𝟎 15
-13 -16
12 7 9 20
𝑢2 = 5 𝟏𝟎 𝟏𝟓 25
-10 -4
4 14 16 18
𝑢3 = 7 𝟓 𝟓 10
-5 -5
Demanda 5 15 15 15
Fonte: Adaptado de TAHA (2008, p. 95)
Resumo

Nesta aula vimos mais duas etapas do algoritmo para resolver problemas de
transporte. Com isso, completamos o assunto de Otimização do Método de
Transporte.
Referências

Básica:
TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.
Exercícios
AULA 12

ATIVIDADE

1) Considere os problemas de transporte da Tabela 10.


a) Use o método do canto noroeste para achar a solução inicial.
b) Desenvolva as iterações que levam à solução ótima.

Tabela 52: Problemas de transporte (Exercício 1).


(𝑖) (𝑖𝑖) (𝑖𝑖𝑖)
𝑅$ 0 𝑅$ 2 𝑅$ 1 𝟔 𝑅$ 10 𝑅$ 4 𝑅$ 2 𝟔 − 𝑅$ 3 𝑅$ 5 𝟒
𝑅$ 2 𝑅$ 1 𝑅$ 5 𝟗 𝑅$ 2 𝑅$ 3 𝑅$ 4 𝟗 𝑅$ 7 𝑅$ 4 𝑅$ 9 𝟕
𝑅$ 2 𝑅$ 4 𝑅$ 3 𝟓 𝑅$ 1 𝑅$ 2 𝑅$ 0 𝟓 𝑅$ 1 𝑅$ 8 𝑅$ 6 𝟏𝟗
𝟓 𝟓 𝟏𝟎 𝟓 𝟓 𝟏𝟎 𝟓 𝟔 𝟏𝟗
Aula 13
Introdução à análise multicritério

APRESENTAÇÃO DA AULA

Nesta aula será apresentada uma visão geral da análise multivariada, assim
como as técnicas utilizadas.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Apresentar uma visão simplificada da análise multivariada;


 Apresentar as técnicas de análise multivariada.
P á g i n a | 159

13 INTRODUÇÃO

Outro ramo da Pesquisa Operacional é o Auxílio Multicritério à Decisão (AMD),


que tem como objetivo fornecer ao decisor algumas ferramentas que o auxiliarão no
tratamento de um problema de tomada de decisão em que vários critérios e pontos
de vista devem ser considerados (FREITAS, 2007).
Os métodos multicritérios agregam um valor significativo na tomada de
decisão. Pois, além deles permitem a abordagem de problemas considerados
complexos e, por isto, não tratáveis pelos procedimentos intuitivo-empíricos usuais,
eles também oferecem clareza e transparência ao processo de tomada de decisão
(MARINS, 2009).
Nós estamos em uma época em que os negócios devem ser mais lucrativos,
onde devemos reagir mais rapidamente e oferecer produtos e serviços de maior
qualidade, minimizando recursos e o custo. O que faz com que tenhamos a exigência
da criação e gerenciamento de conhecimento eficaz. No entanto, não há falta de
informação, mas escassez de conhecimento eficaz (HAIR et al., 2009, p. 23).
Cada vez mais cresce a quantidade de informação disponível para auxiliar-
nos no processo de tomada de decisão. Toda essa informação tem sido armazenada
em bancos de dados. Podemos utilizar estatística simples em parte dessa informação
para analisá-la e compreendê-la. Mas outra parte demanda técnicas estatísticas
multivariadas mais complexas para converter os dados em informação e
conhecimento (HAIR et al., 2009, p. 23).
O uso de estatística multivariada se tornou mais atraente e alguns fatores que
levaram a isso foram:
i. A revolução do computador pessoal: que proporcionou poder de trabalho,
onde passamos de cartões perfurados para reconhecimento de voz;
ii. Avanços na disponibilidade e na facilidade de uso de programas
estatísticos: desde pacotes computacionais completamente integrados a programas
especializados em técnicas como redes neurais e análise conjunta;
iii. Desenvolvimento contínuo de novas técnicas: como análise conjunta e
modelagem de equações estruturais.

Todos esses avanços levaram a uma necessidade crescente de maior


capacidade analítica. A enorme quantidade de dados gerados nos últimos anos tem
pesado sobre os recursos físicos para lidar e analisar toda a informação disponível e
P á g i n a | 160

exigido também uma reavaliação da abordagem à análise de dados. Além de que,


a combinação da complexidade dos tópicos abordados e o crescente papel da
teoria no planejamento de pesquisa requer técnicas mais rigorosas e sofisticadas
para executar as análises confirmatórias necessárias (HAIR et al., 2009, p. IX).
Os métodos de análise multivariada estão influenciando cada vez mais os
aspectos analíticos de pesquisa e o planejamento e a abordagem da coleta de
dados para tomada de decisões e resolução de problemas.
Apesar de as técnicas multivariadas terem muitas características em comum
com suas contrapartes univariada e bivariada, importantes diferenças surgem na
transição para uma análise multivariada. Por isso existe uma classificação das
técnicas multivariadas.

Análise multivariada

As técnicas de análise multivariada são populares pois elas permitem a criação


de conhecimento pelas organizações, assim, melhorando na tomada de decisões. A
análise multivariada se refere a todas técnicas estatísticas que analisam
simultaneamente múltiplas medidas sobre indivíduos ou objetos sob investigação.
Sendo assim, a princípio, qualquer análise simultânea de mais de duas variáveis pode
ser considerada como multivariada (HAIR et al., 2009, p. 23).
Algumas técnicas multivariadas (regressão múltipla ou análise multivariada de
variância, por exemplo) nos fornecem um meio de executarmos em uma única
análise aquilo que antes tínhamos que realizar com múltiplas análises univariadas.
Porém, outras técnicas multivariadas são exclusivamente planejadas para lidar
com aspectos multivariados, como a análise fatorial, que identifica a estrutura
inerente a um conjunto de variáveis, ou a análise discriminante, que distingue entre
grupos baseada em um conjunto de variáveis.
A análise é considerada verdadeiramente multivariada quando todas as
variáveis são aleatórias e inter-relacionadas de tal maneira que seus diferentes efeitos
não podem ser significativamente interpretados em separado.

Classificação de técnicas multivariadas

Para nos familiarizarmos com as técnicas multivariadas específicas, a Figura 1


mostra uma classificação de métodos multivariados. Essa classificação é baseada
P á g i n a | 161

em três julgamentos que nós devemos fazer sobre o objetivo da pesquisa e a natureza
dos dados (HAIR et al., 2009, p. 28–29):
1. As variáveis podem ser divididas em classificações independentes e
dependentes com base em alguma teoria?
2. Se podem, quantas variáveis são tratadas como dependentes em uma
única análise?
3. Como as variáveis, sejam dependentes ou independentes, são medidas?

A seleção da técnica multivariada adequada dependerá das respostas a


essas três perguntas.
Figura 45: Seleção de uma técnica multivariada.

Fonte: Adaptado de HAIR et al (2009, p. 30–31)

Quando se considera a aplicação de técnicas estatísticas multivariadas, a


resposta à primeira questão – as variáveis podem ser divididas em classificações
independentes e dependentes com base em alguma teoria? – Indica se uma técnica
de dependência ou interdependência deveria ser utilizada.
As técnicas de dependência estão no lado esquerdo na Figura 1, e as de
interdependência estão à direita. Uma técnica de dependência pode ser definida
como uma na qual uma variável ou conjunto de variáveis é identificada como a
variável dependente a ser prevista ou explicada por outras variáveis conhecidas
como variáveis independentes. Um exemplo de técnica de dependência é a análise
P á g i n a | 162

de regressão múltipla. Em contrapartida, uma técnica de interdependência é aquela


em que nenhuma variável ou grupo de variáveis é definida como sendo
independente ou dependente. Ao invés disso, o procedimento envolve a análise
simultânea de todas as variáveis no conjunto. Análise fatorial é um exemplo de
técnica de interdependência.

Tipos de técnicas multivariadas

Análise multivariada é um conjunto de técnicas para análise de dados que


está sempre em expansão e que engloba um vasto domínio de possíveis situações
de pesquisa (HAIR et al., 2009, p. 32–33).
As técnicas mais estabelecidas são as seguintes:
1. Análise de componentes principais e análise dos fatores comuns;
2. Regressão múltipla e correlação múltipla;
3. Análise discriminante múltipla e regressão logística;
4. Análise de correlação canônica;
5. Análise multivariada de variância e covariância;
6. Análise conjunta;
7. Análise de agrupamentos;
8. Mapeamento perceptual, também conhecido como escalonamento
multidimensional;
9. Análise de correspondência
10. Modelagem de equações estruturais e análise fatorial confirmatória
Resumo

Nesta aula vimos o que é a Análise Multivariada, os tipos de técnicas utilizadas


e como fazer a seleção da técnica multivariada mais adequada.
Referências

Básica:
FREITAS, A. L. P. Uma abordagem multicritério para a classificação de hotéis. São
Paulo: s.a, 2007.

HAIR, JR. J. F. et al. Análise multivariada de dados. 6. ed. Porto Alegre (RS): Bookman,
2009.

MARINS, C. O Uso do Método de Análise Hierárquica (AHP) na Tomada de Decisões


Gerenciais - Um Estudo de Caso. p. 11, 2009.
Exercícios
AULA 13

ATIVIDADE

1) Defina análise multivariada com suas próprias palavras.

2) Liste os fatores mais importantes que contribuem para a crescente


aplicação de técnicas para a análise multivariada de dados na última década.
Aula 14
Método de análise hierárquica (AHP)

APRESENTAÇÃO DA AULA

Nesta aula iremos falar sobre um método de apoio à decisão multicritério, que
é o método de Análise Hierárquica (AHP).

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Apresentar o método AHP.


P á g i n a | 167

14 INTRODUÇÃO

Um dos métodos de auxílio à decisão sob múltiplos critérios mais reconhecidos


cientificamente é o Método de Análise Hierárquica (Analytic Hierarchy Process, AHP).
O AHP foi desenvolvido por Tomas L. Saaty no início da década de 80 e é o
método de multicritério mais utilizado e conhecido no apoio a tomada de decisão e
resolução de conflitos negociados em problemas com múltiplos critérios (MARINS,
2009).
Este método tem como base o método newtoniano e cartesiano de pensar,
onde busca tratar a complexidade decompondo e dividindo o problema em fatores,
estes podem ser decompostos em novos fatores também, até o nível mais baixo, de
forma clara, onde possam ser dimensionáveis e estabelecendo relações para depois
serem sintetizados (MARINS, 2009).
O AHP tem como objetivo a seleção/escolha de alternativas em processo que
considere múltiplos critérios.
Os princípios são:
1. Construção de Hierarquias;
2. Definição de Prioridades;
3. Consistência Lógica.

Vamos ver cada um deles!

Construção de hierarquia

Na construção de hierarquia são identificados: o foco principal; os critérios; os


subcritérios (quando houver); e, as alternativas.
Na Figura 46 é demostrada um modelo de hierarquia. Na primeira camada
está representado o foco do problema. Na segunda camada ficam os critérios e
subcritérios e na terceira camada ficam as alternativas do problema.
P á g i n a | 168

Figura 46: Hierarquia.

Definição de prioridades

Esta etapa consiste em se fazer julgamentos paritariamente dos elementos de


um nível da hierarquia à luz de cada um dos elementos em conexão em uma
camada superior da hierarquia.
Saaty propôs duas escalas para o julgamento de valor, apresentadas na
Tabela 53.

Tabela 53: Equivalência entre as escalas Numérica e Verbal.


Escala Numérica Escala Verbal
1 Igual Preferência (importância)
3 Preferência (importância) Fraca
5 Preferência (importância) Moderada
7 Preferência (importância) Forte
9 Preferência (importância) Absoluta

Com os julgamentos paritariamente formamos uma matriz de Julgamentos


genérica A, onde a quantidade de julgamentos necessários para a construção desta
matriz é n(n-1)/2, onde n é o número de elementos pertencentes a esta matriz.
A matriz genérica A é definida como:
P á g i n a | 169

𝑎𝑖𝑗 > 0 → 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑎


1 𝑎12 … 𝑎1𝑛
𝑎𝑖𝑗 = 1 ∴ 𝑎𝑗𝑖 = 1
1/𝑎12 1 … 𝑎2𝑛
[ ], onde 1
𝑎𝑖𝑗 = 𝑎 → 𝑟𝑒𝑐í𝑝𝑟𝑜𝑐𝑎
⋮ ⋮ … ⋮
𝑗𝑖
1/𝑎1𝑛 1/𝑎2𝑛 … 1
{𝑎𝑖𝑘 = 𝑎𝑖𝑗 . 𝑎𝑗𝑘 → 𝑐𝑜𝑛𝑠𝑖𝑠𝑡ê𝑛𝑐𝑖𝑎

A obtenção da Matriz com os julgamentos paritariamente é o primeiro passo


na priorização no AHP.
O segundo passo é normalizar a Matriz de Julgamento através da soma dos
elementos de cada coluna das matrizes de julgamento e posterior divisão de cada
elemento destas matrizes pelo somatório dos valores da respectiva coluna.
O terceiro passo é a obtenção das prioridades médias locais (PML’s). As PML’s
são as médias das linhas dos quadros normalizados.
O último passo é a obtenção das prioridades globais (PG). O objetivo deste
passo é indicar um vetor que armazene a prioridade associada a cada alternativa
em relação ao foco principal ou objetivo global.

Consistência lógica

Uma forma de mensurar a intensidade ou grau de inconsistência em uma


matriz de julgamentos paritários é avaliar o quanto o maior autovalor desta matriz se
afasta da ordem da matriz.
Saaty propõe a seguinte equação para o cálculo do Índice de inconsistência
(IC).

|𝜆𝑚𝑎𝑥 − 𝑁|
𝐼𝐶 =
𝑁−1

Onde N é a ordem da matriz, 𝜆𝑚𝑎𝑥 é o maior autovalor da matriz de julgamentos


paritários.
Saaty propôs o uso da Razão de Consistência (RC), que permite avaliar a
inconsistência em função da ordem de uma matriz de julgamentos.

𝐼𝐶
𝑅𝐶 =
𝐼𝑅
P á g i n a | 170

𝐼𝑅 é um índice de consistência obtido para uma matriz recíproca, com


elementos não-negativos e gerada de forma randômica.
Se a Razão de Consistência (RC) ≤ 0,1, indica que o valor está dentro do
padrão.
Resumo

Nesta aula vimos um método de Auxílio Multicritério à Decisão (AMD), o


Método de Análise Hierárquica (AHP).
Referências

Básica:
MARINS, C. O Uso do Método de Análise Hierárquica (AHP) na Tomada de Decisões
Gerenciais - Um Estudo de Caso. p. 11, 2009.
Exercícios
AULA 14

ATIVIDADE

1) Qual é o objetivo do AHP?

2) Quais são as etapas do método?


Aula 15
Multicritério com software

APRESENTAÇÃO DA AULA

Nesta aula veremos como baixar, instalar e utilizar o software Decisor que utiliza
o Método de Decisão Multicritério definido por AHP, que nós vimos na aula passada.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Utilizar software para o método AHP;


 Resolver problemas de Multicritério através do software.
P á g i n a | 175

15 INTRODUÇÃO

Nesta aula iremos utilizar o software Decisor, que utiliza o Método de Decisão
Multicritério definido por Analytic Hierarchy Process (AHP).
Sabendo que esta técnica é amplamente utilizada por empresas,
organizações e tomadores de decisão do mundo inteiro, o software pode ser usado
para modelar problemas que apresentam múltiplos critérios, variáveis, alternativas e
pesos entre estes elementos.
Diversos problemas atuais podem ser modelados com o auxílio deste método,
desde a aquisição de máquinas em empresas, seleção de fornecedores e pode ser
usado até mesmo para tomar a decisão de trocar ou não de empresa.
Em problemas sociais sejam eles urbanos ou não, e que englobam a análise
de duas ou mais variáveis para a tomada de decisão, o software Decisor também
pode ser utilizado, auxiliando o tomador de decisão na escolha da melhor alternativa
(CZEKSTER et al., 2019).

Download e instalação

O download do software pode ser feito através do link


https://www.unisc.br/pt/2016-09-19-20-55-20/decisor.
Ao acessar o link, no final da página aparecerá um formulário para cadastro,
semelhante ao da Figura 47.
P á g i n a | 176

Figura 47: Cadastro do software Decisor.

Fonte: UNISC (2020, s.p)

Após preenchimento dos dados, aparecerá uma página para confirmação


do envio da mensagem, basta selecionar a caixa ao lado de “Não sou um robô” e
clicar em “Confirmar Envio de Mensagem”, o que levará para uma página
semelhante ao da Figura 48. Ao clicar em “Decisor-1.2.3.zip”, marcado com uma
caixa vermelha na Figura 47, o download começará.
P á g i n a | 177

Figura 48: Baixando o Software.

Acesse a pasta onde você colocou para baixar os arquivos no seu


computador, descompacte a pasta baixada. E para abrir o software basta clicar no
arquivo executável, ou seja, com a extensão exe, marcado de vermelho na Figura
49.

Figura 49: Instalando o Software Decisor.


P á g i n a | 178

A Figura 50 mostra a página inicial do software aberto. Basta preencher com


os parâmetros e fazer as análises.

Figura 50: Página Inicial do Software Decisor.


Resumo

Nesta aula vimos como fazer o download e instalação de um software usado


para auxílio multicritério a decisão utilizando o método AHP.
Referências

Básica:
CZEKSTER, R. M. et al. Decisor: A Software Tool to Drive Complex Decisions with Analytic
Hierarchy Process. International Journal of Information Technology & Decision Making,
v. 18, n. 01, p. 65–86, jan. 2019.
Aula 16
Aplicação da PO II

APRESENTAÇÃO DA AULA

Nesta aula faremos um resumo de todo o conteúdo que vimos ao longo das
últimas aulas. Ou seja, vamos resumir as aplicações da Pesquisa Operacional II.

OBJETIVOS DA AULA

Esperamos que, após o estudo do conteúdo desta aula, você seja capaz de:

 Resumir as principais aplicações da Pesquisa Operacional II.


P á g i n a | 182

16 INTRODUÇÃO

A Pesquisa Operacional é a aplicação de métodos científicos a problemas


complexos para auxiliar no processo de tomada de decisões, como por exemplo,
projetar, planejar e operar sistemas que necessitam de alocações eficientes de
recursos escassos ARENALES, M. et al. Pesquisa operacional. Rio de Janeiro: Elsevier
Campus, 2007, p. IX.
Sendo a programação linear a técnica mais utilizada. Ela é aplicada a
modelos onde as funções objetivo e restrição são lineares. Já a programação inteira
as variáveis assumem valores inteiros. Na otimização em redes o problema pode ser
modelado como uma rede TAHA, H. A. Pesquisa operacional, São Paulo: Pearson
Prentice Hall, 2008, p. 2.
Na Aula 01 – Revisão de Pesquisa Operacional I vimos como surgiu a Pesquisa
Operacional, falamos sobre as técnicas utilizadas, e vimos exemplos da
programação linear.
Na Aula 02 – Introdução à Teoria dos Grafos vimos o que é um grafo, como
representá-lo graficamente e através de matrizes (matrizes adjacências e de
incidência nó-aresta e nó-arco). Vimos também a diferença entre grafo orientado e
não orientado. O conceito de caminho e cadeia e circuito e ciclo. Aprendemos o
que é uma árvore, um subgrafo e um árvore geradora.
Na Aula 03 – Exercícios de Teoria dos Grafos vimos alguns exercícios sobre a
Teoria dos Grafos, desenhamos grafos não orientado e orientado, assim como vimos
a cardinalidade dos nós e arestas. Encontramos um caminho, um ciclo e uma árvore
geradora de grafos e fizemos as matrizes de adjacências, incidência nó-aresta e nó-
arco dos grafos dados.
Na Aula 04 – Algoritmo de Caminho Mínimo vimos exemplos de problemas que
podem ser modelados como problema de otimização em redes. Vimos também
como resolver tais problemas com o algoritmo de Dijkstra.
Na Aula 05 – Exercícios de Caminho Mínimo vimos dois exercícios que pudemos
aplicar o algoritmo de Dijkstra. O primeiro exercício nós utilizamos a função
logarítmica para transformar um problema que a princípio não era de caminho
mínimo em um que pudéssemos aplicar o algoritmo de caminho mínimo.
Na Aula 06 – Introdução ao Algoritmo de Fluxo Máximo vimos alguns problemas
de fluxo máximo e uma introdução ao algoritmo de Fluxo Máximo.
P á g i n a | 183

Na Aula 07 – Exercícios de Fluxo Máximo vimos uma revisão do problema de


fluxo máximo. E resolvemos um exercício utilizando o algoritmo de fluxo máximo.
Na Aula 08 – Programação Inteira vimos uma introdução à Programação
Inteira, onde diferente da Programação linear que vimos em PO I, as variáveis devem
ter valores inteiros. Assim como também podemos ter problemas onde as variáveis de
decisão devem ter valores “sim-ou-não”, neste caso, temos a programação linear
binária. Vimos também dois exemplos na prática.
Na Aula 09 – Programação Inteira com Software vimos dois exemplos de
Programação Inteira Binária sendo resolvidos em dois softwares, o Solver do Excel e o
Lingo.
Na Aula 10 – Introdução ao Método do Transporte tivemos uma introdução ao
Problema de Transporte, assim como a formulação matemática de tal problema e as
etapas do algoritmo simplex.
Na Aula 11 – Solução Inicial do Método do Transporte vimos três métodos para
calcular a solução básica inicial do algoritmo do método de transporte.
Na Aula 12 – Otimização do Método do Transporte vimos mais duas etapas do
algoritmo para resolver problemas de transporte. Com isso, completamos o assunto
de Otimização do Método de Transporte.
Na Aula 13 – Introdução à Análise Multicritério vimos o que é a Análise
Multivariada, os tipos de técnicas utilizadas e como fazer a seleção da técnica
multivariada mais adequada.
Na Aula 14 – Método de Análise Hierárquica (AHP) vimos um método de Auxílio
Multicritério à Decisão (AMD), o Método de Análise Hierárquica (AHP).
Por fim, na Aula 15 – Multicritério com Software vimos como fazer o download
e instalação de um software utilizado para auxílio multicritério a decisão com o
método AHP.
Resumo

Nesta Aula vimos uma revisão de todos os assuntos abordados ao longo da


nossa jornada.
Referências

Básica:
ARENALES, M.; ARMENTANO, V.; MORABITO, R. et al. Pesquisa operacional. Rio de
Janeiro: Elsevier Campus, 2007.

TAHA, H. A. Pesquisa operacional. São Paulo: Pearson Prentice Hall, 2008.


Exercícios
AULA 16

ATIVIDADE

1) Onde e como surgiu a Pesquisa Operacional?

2) Qual a diferença entre Grafo orientado e não orientado?

3) Defina caminho.

4) Defina cadeia.

5) Qual a diferença entre caminho e cadeia?

6) Qual a diferença entre circuito e ciclo?

7) Construir os grafos 𝐻6,10 e 𝐻7,10 , onde 𝐻𝑘,𝑛 representa o grafo de Harary de 𝑛


vértices e 𝑘-conectividade, ou seja, 𝑘 é o menor número de vértices ou arestas a
serem removidos para desconectar o grafo 𝐻𝑘,𝑛 .

Observação: para construir um grafo 𝐻𝑘,𝑛 seguir as regras:


 Caso k par - organizar os vértices formando um ciclo 𝐶𝑛 , rotulá-los segundo
𝑘
{0, 1, 2, ⋯ , 𝑛 − 1}, adicionar as arestas ligando o vértice 𝑖 ao vértice vizinho
2
𝑘
a esquerda (sentido anti horário) e ao vértice vizinho a direita (sentido
2

horário).
 Caso k impar e n par - primeiro construir 𝐻𝑘−1,𝑛 e adicionar as arestas, (0, 𝑛⁄2),
(1, (1 + 𝑛⁄2)), ⋯ , ( (𝑛 − 2)⁄2 , (𝑛 − 1))
 Caso k impar e n ímpar - primeiro construir 𝐻𝑘−1,𝑛 e adicionar as arestas
P á g i n a | 187

 (0, (𝑛 − 1)⁄2), (1, (1 + ((𝑛 − 1)⁄2))) , ⋯ , ( (𝑛 − 1)⁄2 , (𝑛 − 1))

8) A rede da Figura a seguir dá as distâncias em quilômetros entre pares de


cidade de 1 a 8. Utilize o algoritmo de Dijkstra para achar o caminho mínimo entre as
seguintes cidades:

Figura 51: Exercício.

a) Cidades 1 e 8;
b) Cidades 1 e 6;
c) Cidades 4 e 8;
d) Cidades 2 e 6.
Gabarito
AULA 1

1) A Pesquisa Operacional teve origem na Inglaterra, durante a Segunda


Guerra Mundial, em que os recursos eram escassos e os militares necessitavam que
esses recursos fossem utilizados de forma otimizada.

2) 𝑥𝑉 = 50, 𝑥𝐶 = 110, 𝑧 = 17.450

3) 𝑥𝐴 = 0, 𝑥𝐵 = 12,5, 𝑥𝐶 = 15, 𝑧 = 2.953,75


Gabarito
AULA 2

1)
a) Sim, há aluno deslocado, que é o César, não tem nenhuma seta
apontando para ele, o que indica que nenhum aluno o indicou como amigo que
mais gostasse.
b) São formados dois grupos, um composto por Eduardo, João e Sérgio, as
setas entre eles apontam nas duas direções da ligação. O mesmo acontece com
Cristina, Ana e Amélia.
c) Amélia, que tem quatro ligações e que são recíprocas, ou seja, tem seta
nas duas extremidades da ligação.

2)

Figura 52: Exercícios.

3) Em um grafo orientado, as arestas são chamadas de arcos e saem de um


nó inicial 𝑖 até um nó final 𝑗, os arcos são representados por seta. No grafo não
orientado não há diferença entre as arestas (𝑖, 𝑗) e (𝑗, 𝑖), já que não tem orientação.

4) Um caminho é uma sequência de arcos 𝐶, em que o nó inicial de cada arco


é o nó final do arco imediatamente anterior na sequência, e todos os nós são distintos.

5) Uma cadeia é uma sequência de arcos de modo que cada arco tem
exatamente um nó em comum como o arco imediatamente anterior na sequência.
P á g i n a | 190

6) No caminho os arcos precisam estar coerentemente orientados, já na


cadeia o nó inicial de cada arco não necessariamente é o nó final do arco
imediatamente anterior na sequência, apenas precisam tem um nó em comum.

7) O circuito só ocorre em um caminho, onde a orientação do grafo importa.


Já o ciclo ocorre na cadeia, onde a orientação do grafo não importa.

8) Porque estes subgrafos, além de formarem ciclos, estão desconectados.

1 2 3 4
0 1 1 0 1
9) 𝑴 = 1 0 1 1] 2
[ 3
1 1 0 1
0 1 1 0 4

0 1 1 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0
1 1 0 1 0 0 0 0 0
0 0 0 0 1 0 0 1 0
10) 𝑴= 0 0 1 1 0 0 0 1 1
0 1 0 0 1 0 0 0 1
1 0 0 1 0 0 0 1 0
0 0 0 1 1 0 1 0 1
[0 0 0 0 0 0 0 1 0]
Gabarito
AULA 3

1)
a) Em (𝑖) temos:
𝑁 = {1,2,3,4,5}
𝐸 = {(1,2), (1,3), (2,5), (3,4), (4,2), (4,5), (5,1)}

Em (𝑖𝑖) temos:
𝑁 = {1,2,3,4}
𝐸 = {(1,2), (1,3), (2,3), (2,4), (3,4)}

b) 𝐶𝑖 = {(1,2), (2,5)} é um caminho do nó 1 ao nó 5 em (𝑖) e 𝐶𝑖𝑖 = {(1,2), (2,4)} é


um caminho do nó 1 ao nó 4 em (𝑖𝑖).
c) 𝐷𝑖 = {(1,3), (3,4), (4,2), (1,2)} é um ciclo em (𝑖) e 𝐷𝑖𝑖 = {(1,2), (2,3), (1,3)} é um
ciclo de (𝑖𝑖).
d)

Figura 53: Exercício.


P á g i n a | 192

2)

Figura 54: Exercício.


Gabarito
AULA 4

1) Rede do Exercício 1

Figura 55: Exercício.

2)
a) Cidade 1 e 8:

Figura 56: Exercício.


P á g i n a | 194

b) Cidades 1 e 6:

Figura 57: Exercício.

c) Cidades 4 e 8:

Figura 58: Exercício.

d) Cidades 2 e 6:

Figura 59: Exercício.


Gabarito
AULA 5

1) Cortes

Figura 60: Exercício.

Tabela 54: Exercício.


Corte Arcos associados Capacidade
1 (1,2), (2,3), (2,5) 20 + 40 + 30 = 90
2 (1,3), (2,3), (3,4), (3,5) 30 + 40 + 5 + 20 = 95
3 (1,4), (3,4), (4,5) 10 + 5 + 20 = 35
Gabarito
AULA 6

1)
Iteração 4: agora temos 𝑐12 = 0, 𝑐21 = 20, 𝑐25 = 20 e 𝑐52 = 10.
 Etapa 1: Determine 𝑎1 = ∞, e rotule o nó 1 com [∞, −]. Determine 𝑖 = 1.
 Etapa 2: 𝑆1 = {3,4}. 𝑐12 = 0.
 Etapa 3: 𝑘 = 3 e 𝑎3 = 𝑐13 = 𝑚𝑎𝑥{𝑐13 , 𝑐14 } = 𝑚𝑎𝑥{10,10} = 10. Temos mais um
empate, vamos escolher o nó que está vinculado ao menor índice. Rotule
o nó 3 com [10,1]. Determine 𝑖 = 3 e repita a etapa 2.
 Etapa 2: 𝑆3 = {2}. 𝑐34 = 𝑐35 = 0 e o nó 1 já está rotulado.
 Etapa 3: 𝑘 = 2 e 𝑎2 = 𝑐32 = 𝑚𝑎𝑥{𝑐32 } = 𝑚𝑎𝑥{10} = 10. Rotule o nó 2 com [10,3].
Determine 𝑖 = 2 e repita a etapa 2.
 Etapa 2: 𝑆2 = {5}. Os nós 1 e 2 já estão rotulados.
 Etapa 3: 𝑘 = 5 e 𝑎5 = 𝑐25 = 𝑚𝑎𝑥{𝑐25 } = 𝑚𝑎𝑥{20} = 20. Rotule o nó 5 com [20,2].
Achamos uma rota de passagem, vamos para etapa 5.
 Etapa 5: 𝑁4 = {1,3,2,5} e 𝑓4 = 𝑚𝑖𝑛{𝑎1 , 𝑎3 , 𝑎2 , 𝑎5 } = {∞, 10,10,20} = 10. As residuais
ao longo da rota de 𝑁4 são:

(𝑐13 , 𝑐31 ) = (10 − 10,20 + 10) = (0,30)


(𝑐32 , 𝑐23 ) = (10 − 10, 30 + 10) = (0, 40)
(𝑐25 , 𝑐52 ) = (20 − 10, 10 + 10) = (10, 20)
P á g i n a | 197

Iteração 4 com 𝑓4 = 10.

Figura 61: Exercício.

Fonte: adaptado de TAHA (2008, p. 120)

Iteração 5: agora temos 𝑐13 = 0, 𝑐31 = 30, 𝑐32 = 0, 𝑐23 = 40, 𝑐25 = 10 e 𝑐52 = 20.
 Etapa 1: Determine 𝑎1 = ∞, e rotule o nó 1 com [∞, −]. Determine 𝑖 = 1.
 Etapa 2: 𝑆1 = {4}. 𝑐12 = 𝑐13 = 0.
 Etapa 3: 𝑘 = 4 e 𝑎4 = 𝑐14 = 𝑚𝑎𝑥{𝑐14 } = 𝑚𝑎𝑥{10} = 10. Rotule o nó 4 com [10,1].
Determine 𝑖 = 4 e repita a etapa 2.
 Etapa 2: 𝑆4 = {3,5}.
 Etapa 3: 𝑘 = 3 e 𝑎3 = 𝑐43 = 𝑚𝑎𝑥{𝑐43 , 𝑐45 } = 𝑚𝑎𝑥{15, 10} = 15. Rotule o nó 3 com
[15,4]. Determine 𝑖 = 3 e repita a etapa 2.
 Etapa 2: 𝑆3 = ∅, pois 𝑐32 = 𝑐35 = 0 e o nó 1 já está rotulado. Vamos para a
etapa 4 para percorrer a rota inversa.
 Etapa 4: Rota Inversa: O rótulo [15,4] no nó 3 nos dá que 𝑟 = 4, ou seja, 4 é o
nó imediatamente precedente. O nó 3 é eliminado do conjunto de nós
adjacentes a 4. Determine 𝑖 = 4 e repita a etapa 2.
 Etapa 2: 𝑆4 = {5}.
P á g i n a | 198

 Etapa 3: 𝑘 = 5 e 𝑎5 = 𝑐45 = 𝑚𝑎𝑥{𝑐45 } = 𝑚𝑎𝑥{10} = 10. Rotule o nó 5 com [10,4].


Achamos uma rota de passagem, vamos para etapa 5.
 Etapa 5: 𝑁5 = {1,4,5} e 𝑓5 = 𝑚𝑖𝑛{𝑎1 , 𝑎4 , 𝑎5 } = {∞, 10,10} = 10. As residuais ao
longo da rota de 𝑁5 são:

(𝑐14 , 𝑐41 ) = (10 − 10,0 + 10) = (0,10)


(𝑐45 , 𝑐54 ) = (10 − 10, 10 + 10) = (0, 20)

Iteração 5 com 𝑓5 = 10.

Figura 62: Exercício.

Fonte: adaptado de TAHA (2008, p. 120)


Gabarito
AULA 7

1) O lógico é colocar as câmeras nos cruzamentos das ruas, de modo que


cada câmera cubra no mínimo duas ruas. A Figura 1 mostra que o layout das ruas
requer um máximo de oito localizações de câmeras. Defina-se:

1 𝑠𝑒 𝑢𝑚𝑎 𝑐â𝑚𝑒𝑟𝑎 𝑓𝑜𝑟 𝑖𝑛𝑠𝑡𝑎𝑙𝑎𝑑𝑎 𝑛𝑜 𝑙𝑜𝑐𝑎𝑙 𝑗


𝑥𝑗 {
0 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜

As restrições do problema requerem a instalação de no mínimo uma câmera


em cada uma das 11 ruas. Assim, temos o modelo:
Minimizar 𝑧 = 𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8
Sujeito a:
𝑥1 + 𝑥2 ≥1 (𝑅𝑢𝑎 𝐴)
𝑥2 + 𝑥3 ≥ 1 (𝑅𝑢𝑎 𝐵)
𝑥4 + 𝑥5 ≥ 1 (𝑅𝑢𝑎 𝐶)
𝑥7 + 𝑥8 ≥ 1 (𝑅𝑢𝑎 𝐷)
𝑥6 + 𝑥7 ≥1 (𝑅𝑢𝑎 𝐸)
𝑥2 + 𝑥6 ≥1 (𝑅𝑢𝑎 𝐹)
𝑥1 + 𝑥6 ≥ 1 (𝑅𝑢𝑎 𝐺)
𝑥4 + 𝑥7 ≥1 (𝑅𝑢𝑎 𝐻)
𝑥2 + 𝑥4 ≥ 1 (𝑅𝑢𝑎 𝐼)
𝑥5 + 𝑥8 ≥ 1 (𝑅𝑢𝑎 𝐽)
𝑥3 + 𝑥5 ≥ 1 (𝑅𝑢𝑎 𝐾)
𝑥𝑗 = (0,1), 𝑗 = 1,2, ⋯ ,8

A solução ótima do problema requer a instalação de quatro câmeras de


segurança nos cruzamentos 1, 2, 5 e 7.
Gabarito
AULA 8

1)

Figura 63: Exercício.

2)

Figura 64: Exercício.


P á g i n a | 201

Figura 65: Exercício.


Gabarito
AULA 9

1) Minimizar
𝑧 = 80𝑥11 + 215𝑥12 + 100𝑥21 + 108𝑥22 + 102𝑥31 + 68𝑥32

Sujeito a
𝑥11 + 𝑥12 = 1.000 𝐶𝑖𝑑𝑎𝑑𝑒 𝐴
𝑥21 + 𝑥22 = 1.500 𝐶𝑖𝑑𝑎𝑑𝑒 𝐵
𝑥31 + 𝑥32 = 1.200 𝐶𝑖𝑑𝑎𝑑𝑒 𝐶
𝑥11 + 𝑥21 + 𝑥31 = 2.300 𝐶𝑖𝑑𝑎𝑑𝑒 1
𝑥12 + 𝑥22 + 𝑥32 = 1.400 𝐶𝑖𝑑𝑎𝑑𝑒 2
𝑥𝑖𝑗 ≥ 0 𝑖 = 1,2,3; 𝑗 = 1,2
Gabarito
AULA 11

1)
a.
Canto Noroeste Menor Custo Aproximação de Vogel

05 21 1 6 05 2 11 6 05 2 11 6

2 14 53 7 2 15 52 7 2 15 5 7
2
2 4 37 7 2 4 37 7 2 4 37 7

5 5 10 5 5 10 5 5 10

𝑧𝐶𝑁 = (5 ∗ 0) + (1 ∗ 2) + (4 ∗ 1) + (3 ∗ 5) + (7 ∗ 3) = 0 + 2 + 4 + 15 + 21 = 42
𝑧𝑀𝐶 = (5 ∗ 0) + (1 ∗ 1) + (5 ∗ 1) + (7 ∗ 3) + (2 ∗ 5) = 0 + 1 + 5 + 21 + 10 = 37
𝑧𝐴𝑉 = (5 ∗ 0) + (1 ∗ 1) + (7 ∗ 3) + (5 ∗ 1) + (2 ∗ 5) = 0 + 1 + 21 + 5 + 10 = 37
Gabarito
AULA 13

1) Análise Multivariada é uma técnica analítica que utiliza diversas fontes de


informações simultaneamente, para obter uma imagem melhor, mais completa e
mais otimizada do ambiente.

2) A evolução do computador pessoal, os avanços na disponibilidade e na


facilidade de uso de programas estatísticos e desenvolvimento contínuo de novas
técnicas.
Gabarito
AULA 14

1) O AHP tem como objetivo a seleção/escolha de alternativas em processo


que considere múltiplos critérios.

2) As etapas são construção de hierarquias, definição de prioridades e


consistência lógica.
Gabarito
AULA 16

1) A Pesquisa Operacional teve origem na Inglaterra, durante a Segunda


Guerra Mundial, em que os recursos eram escassos e os militares necessitavam que
esses recursos fossem utilizados de forma otimizada.

2) Em um grafo orientado, as arestas são chamadas de arcos e saem de um


nó inicial 𝑖 até um nó final 𝑗, os arcos são representados por seta. No grafo não
orientado não há diferença entre as arestas (𝑖, 𝑗) e (𝑗, 𝑖), já que não tem orientação.

3) Um caminho é uma sequência de arcos 𝐶, em que o nó inicial de cada arco


é o nó final do arco imediatamente anterior na sequência, e todos os nós são distintos.

4) Uma cadeia é uma sequência de arcos de modo que cada arco tem
exatamente um nó em comum como o arco imediatamente anterior na sequência.

5) No caminho os arcos precisam estar coerentemente orientados, já na


cadeia o nó inicial de cada arco não necessariamente é o nó final do arco
imediatamente anterior na sequência, apenas precisam tem um nó em comum.

6) O circuito só ocorre em um caminho, onde a orientação do grafo importa.


Já o ciclo ocorre na cadeia, onde a orientação do grafo não importa.
P á g i n a | 207

7)

Figura 66: Exercício.

8)
e) Cidade 1 e 8:

Figura 67: Exercício.

f) Cidades 1 e 6:

Figura 68: Exercício.


P á g i n a | 208

g) Cidades 4 e 8:

Figura 69: Exercício.

h) Cidades 2 e 6:

Figura 70: Exercício.

Você também pode gostar