Escolar Documentos
Profissional Documentos
Cultura Documentos
Livro Otimização
Livro Otimização
2020/2
Sumário
1 Pesquisa Operacional e Tomada de Decisões 3
1.1 Definição e Origens da Pesquisa Operacional . . . . . . . . . . . 3
1.2 Fases de Resolução de Problemas . . . . . . . . . . . . . . . . . . 4
1.3 Principais Áreas da Pesquisa Operacional . . . . . . . . . . . . . 7
I Programação Linear 10
2 Introdução à programação linear 10
2.1 Definições e exemplos . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Problemas clássicos . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Solução gráfica 20
3.1 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 O método simplex 33
4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Forma padrão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Algoritmo simplex . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Situações especiais . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
II Dualidade 53
5 Dual e sua relação com o primal 53
5.1 Regras para construção do dual . . . . . . . . . . . . . . . . . . . 55
5.2 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1
7 Problema de transporte 61
7.1 Modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.2 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.3 Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.4 Problemas desbalanceados . . . . . . . . . . . . . . . . . . . . . . 77
7.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8 Problema de transbordo 79
8.1 Modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9 Problema de designação 82
9.1 Modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.2 Resolução algébrica . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
IV Otimização em redes 87
10 Introdução a problemas em redes 87
2
1 Pesquisa Operacional e Tomada de Decisões
Tomada de Decisões
• Alternativas viáveis
Tomada de Decisões
1. Identificar o problema
2. Formular objetivos
3. Analisar limitações
4. Avaliar alternativas
Origens
3
– Programação linear
• 1952: ORSA (Sociedade Americana de Pesquisa Operacional)
• 1953: ORS (Sociedade de Pesquisa Operacional) – Inglaterra
Focos distintos
• Pesquisa inglesa: estudos de caso, problemas específicos
• Pesquisa americana: modelos e métodos matemáticos
No Brasil
• 1o. Simpósio: ITA – S. José dos Campos (1968)
• Criação do curso de Engenharia de Produção (ITA)
• SOBRAPO: Sociedade Brasileira de Pesquisa Operacional1
Formulação do problema
• Problemas reais: forma vaga e imprecisa
• Algumas questões:
– Quem tomará decisões?
– Quais os objetivos?
– Que aspectos estão sujeitos ao controle dos decisores (variáveis de
decisão) e sob quais limitações (restrições)?
– Quais aspectos fogem do controle dos decisores?
1 www.sobrapo.org.br
4
Construção do modelo
Mundo real
Mundo real
Modelo
considerado
Obtenção da solução
5
• Varia conforme a área (programação linear, programação em redes, teoria
de filas, etc.)
• Técnicas novas surgem constantemente
• Softwares:
– Solver do Excel
– LINDO – Linear Discrete Optimizer (www.lindo.com)
– ILOG (www.ibm.com/products/ilog-cplex-optimization-studio)
– Simulações: PROMODEL (www.belge.com.br/promodel.php) e ARENA
(www.paragon.com.br)
– etc.
Implementação
z = l × c,
sujeita às restrições:
– 2(l + c) = L,
– l ≥ 0, c ≥ 0.
6
Infinitas soluções
• viáveis: atendem a todas restrições
• ótima: melhor solução viável
Formato geral
Maximizar ou minimizar uma
função objetivo sujeita a
restrições
Problema linear
Exemplo 1.2. maximizar z = 2x1 + 3x2 + 4x3
Obtenção da Solução
z = 15.55
1 5 38
x1 = , x 2 = , x 3 =
3 9 9
Problema de transporte
Exemplo 1.3. O modelo de transporte visa minimizar o custo total do trans-
porte necessário para abastecer n centros consumidores (destinos) a partir de m
centros fornecedores (origens)
7
Modelos em Redes
• Rotas econômicas de transporte
• Distribuição e transporte de bens
• Alocação de pessoal
• Monitoramento de projetos
Empresas de PO
• Reportagem da Revista Época de 19/01/2017:
https://goo.gl/dYch4k
8
Referências
9
Parte I
Programação Linear
2 Introdução à programação linear
Equação linear
• Equação da forma
c1 x1 + c2 x2 + · · · + cn xn = c0
• Elementos:
– c0 , c1 , . . . , cn : coeficientes (conhecidos)
– x1 , x2 , . . . , xn : variáveis (desconhecidos)
• Um conjunto de equações lineares relacionadas a um mesmo grupo de
variáveis recebe o nome de sistema linear.
Variáveis de Decisão
As variáveis de decisão são as incógnitas a serem determinadas pela solução do
modelo e os parâmetros (coeficientes) são valores fixos no problema
Restrições
De modo a levarmos em conta as limitações físicas do sistema, o modelo deve
incluir restrições que limitam as variáveis de decisão a seus valores possíveis (ou
viáveis)
10
Função Objetivo
É uma função matemática que define a qualidade da solução em função das va-
riáveis de decisão; é um critério de escolha das variáveis de decisão representado
por uma função
Recomendações
11
Função objetivo
max L = 6T M + 4CF
Restrições
50T M + 30CF ≤ 90.000
50T M ≤ 60.000
30CF ≤ 60.000
Condições de não-negatividade
TM ≥ 0
CF ≥ 0
Algumas observações
• É necessário que fique claro que essas soluções são ótimas apenas em re-
lação ao modelo que está sendo usado;
• Como o modelo é apenas uma representação da realidade, não há garan-
tia de que a solução ótima para o modelo se comprovará como a melhor
possível que poderia ter sido implementada para o problema real;
• Entretanto, se o modelo for bem formulado e experimentado, as soluções
tendem a ser uma boa representação para a solução a ser adotada no caso
real.
Outro Exemplo
Exemplo 2.2. Uma empresa precisa decidir quais modelos de geladeira produ-
zir em sua nova planta. Existem dois modelos disponíveis: luxo e básico. No
máximo, 1500 unidades do modelo luxo e 6000 unidades do modelo básico po-
dem ser vendidas por mês. Empresa contratou 25000 homens-hora de trabalho
por mês. Os modelos luxos precisam de 10 homens-hora de trabalho para serem
produzidos e os modelos básicos, 8 homens-hora. A capacidade da linha de mon-
tagem é de 4500 geladeiras por mês, pois as geladeiras dividem a mesma linha.
O lucro unitário do modelo luxo é $100, 00 por mês, enquanto o modelo básico
lucra $50, 00 durante o mesmo período.
Determine quanto produzir de cada geladeira, de modo a satisfazer todas as
restrições e maximizar o lucro da empresa.
12
Variáveis de Decisão
Sejam x1 e x2 as quantidades (unidades) produzidas dos modelos luxo e básico,
respectivamente.
Função Objetivo
Admitindo que a função lucro é uma função linear de x1 e x2 , esse lucro deve
ser maximizado por uma escolha de x1 e x2 , tal que:
Forma Geral:
n
X
max(min) Z = cj xj
j=1
sujeito a:
n
X
aij xj , para i = 1, 2, . . . , m
j=1
xi ≥ 0, ∀i
13
Algumas Definições
Solução
Qualquer especificação de valores para as variáveis de decisão, independente de
se tratar de uma escolha desejável ou permissível.
Solução Viável
Uma solução em que todas as restrições são satisfeitas. O conjunto de todos os
pontos que satisfazem todas as restrições é chamado de Conjunto Viável (S).
Solução Ótima
Uma solução viável que tem o valor mais favorável da função objetivo, isto é,
maximiza ou minimiza a função objetivo em toda a região viável. Pode ser única
ou não.
Aditividade
Toda função em um modelo de programação linear é a soma das contribuições
individuais das respectivas variáveis.
Divisibilidade
As variáveis de decisão em um modelo de programação linear podem assumir
quaisquer valores, inclusive valores não-inteiros, que satisfaçam as restrições
funcionais e de não-negatividade.
Quando as variáveis do modelo de programação linear só puderem assumir
valores inteiros, deve-se impor esta condição ao próprio modelo. Passa-se, então,
a lidar com um modelo de programação linear inteira.
Certeza
O valor atribuído a cada parâmetro de um modelo de programação linear é
assumido como uma constante conhecida.
14
Exemplos de problema de mistura
15
Formulação matemática do problema da mistura
Minimizar
f (x1 , . . . , xn ) = c1 x1 + c2 x2 + · · · + cn xn
Sujeito às restrições:
x1 ≥ 0, x2 ≥ 0, . . . , xn ≥ 0
Exemplo: ração
Exemplo 2.3. Queremos saber quais as quantidades ideais de cada ingrediente
para fazer uma quantidade de ração para aves, com as necessidades nutricionais
atendidas e o custo total dos ingredientes seja o menor possível. Temos dispo-
níveis dois ingredientes (milho e farinha de osso), cujos custos (em $ por Kg) e
ingredientes (em unidades por Kg) estão listados na tabela a seguir:
16
Modelo Matemático
Mix de produção
Problemas de mix de produção envolvem decidir quais produtos, e quanto fabri-
car de cada produto em um certo período.
Maximizar
f (x1 , . . . , xn ) = `1 x1 + `2 x2 + · · · + `n xn
Sujeito às restrições:
17
Outro exemplo (MARINS, 2011)
Exemplo 2.4. Uma empresa deseja programar a produção de um utensílio de
cozinha e requer o uso de 2 recursos: mão-de-obra e material. Ela está consi-
derando a fabricação de 3 modelos de acordo com os dados da tabela que segue,
sendo que a disponibilidade diária de mão-de-obra é 150 horas, e o suprimento
de material é 200 kg/dia.
Modelo
A B C
Mão-de-obra (horas/unidade) 7 3 6
Material (kg/unidade) 4 4 5
Lucro ($/unidade) 4 2 3
Modelagem
• xa , xb , xc : produções diárias de A, B e C.
• Restrições:
– 7xa + 3xb + 6xc ≤ 150 (limitação de mão-de-obra)
– 4xa + 4xb + 5xc ≤ 200 (limitação de material)
– xa ≥ 0, xb ≥ 0, xc ≥ 0 (não-negatividade)
2.3 Exercícios
18
3. Uma fundição tem de produzir 10 toneladas de um tipo de liga metálica e,
para isso, tem disponível: lingotes de ferro, grafite e sucata. 2 componentes
são relevantes para a liga: carbono e silício. A tabela fornece a fração
destes elementos nos ingredientes disponíveis, seus custos unitários, suas
disponibilidades em estoque, bem como a composição da liga de acordo
com as especificações. Quais quantidades dos ingredientes devem compor a
liga, de modo que as especificações sejam satisfeitas e o custo seja mínimo?
Referências
19
3 Solução gráfica
Nota
Vamos considerar, por questões de conveniência, todas as restrições sob a forma
de inequações.
x1 + x2 ≤ 4
x1 ≤ 2
x2 ≤ 3
x1 ≥ 0, x2 ≥ 0
• Condições de não-negatividade:
6
5
4
x2
3
2
1
0
0 1 2 3 4 5 6 7
x1
20
• Adicionando a restrição x1 + x2 ≤ 4 às de não-negatividade:
6
5
4
x2
3
2
1
0
0 1 2 3 4 5 6 7
x1
6
5
4
x2
3
2
1
0
0 1 2 3 4 5 6 7
x1
21
• Por fim, adicionando a restrição x2 ≤ 3 às anteriores: obtém-se a região
factível ou região viável do problema:
qualquer ponto da região é uma solução viável do mesmo.
6
5
4
x2
3
2
1
0
0 1 2 3 4 5 6 7
x1
f (x1 , x2 ) = x1 + 2x2 ,
pode assumir infinitos valores – qualquer par (x1 , x2 ).
Os pontos (x1 , x2 ) do R2 que resultam em f = 0 estão na reta x1 + 2x2 = 0.
Esta reta define a curva de nível 0 da função.
Curva de nível
A curva de nível f0 de uma função f é dada pelo conjunto de pontos no R2 os
quais, aplicados à função f , resultam em f = f0 .
x2
6
5
4
3
2
1
x1
1 2 3 4 5 6 7
22
Vetor gradiente
O vetor gradiente de uma função f (x1 , x2 ), dado por
∂f ∂f
∇f (x1 , x2 ) = ,
∂x1 ∂x2
indica o sentido de maior crescimento da função. Se a função for linear, o
gradiente será constante (a direção e o sentido não variam)
Observação
Na prática, também podemos testar tomando pontos de um lado e de outro de
uma curva de nível, e verificando o valor de f .
Temos, para a função objetivo do problema,
∂ ∂
∇f (x1 , x2 ) = (x1 + 2x2 ), (x1 + 2x2 ) = (1, 2),
∂x1 ∂x2
indicado pelo vetor representado no gráfico anterior.
Como se deseja maximizar a função objetivo, busca-se o maior valor possível
de f dentro da região viável. Portanto, “caminha-se” no sentido para o qual o
vetor gradiente aponta.
x2
6
5
4
3
2
1
x1
1 2 3 4 5 6 7
23
• Acrescentando-se a curva de nível 7:
x2
6
5
4
Solução ótima
3
2
1
x1
1 2 3 4 5 6 7
Considerações
sujeito a
24
x2 ≤ 6000
x1 ≥ 0; x2 ≥ 0
8 000 x
2
6 000
4 000
0 ≤ x1 ≤ 1 500
0 ≤ x2 ≤ 6 000
2 000
x1
2 000 4 000 6 000 8 000
8 000 x
2
6 000
4 000
2 000
x1
2 000 4 000 6 000 8 000
25
• 10x1 + 8x2 ≤ 25 000 (limitação da mão-de-obra)
8 000 x
2
6 000
4 000
2 000
x1
2 000 4 000 6 000 8 000
8 000 x
2
6 000
4 000
2 000
x1
2 000 4 000 6 000 8 000
• Candidatos a solução ótima: pontos (1500, 0), (1500, 1250) e (0, 3125)
(pontos extremos na direção do crescimento).
26
• max f (x1 , x2 ) = 100x1 + 50x2
– Na solução básica viável (1500, 0), temos f = 150 000.
8 000 x
2
6 000
4 000
2 000
x1
2 000 4 000 6 000 8 000
8 000 x
2
6 000
4 000
• Esta é a solução ótima, pois a solução básica viável não testada – (0, 3125)
– está no sentido oposto ao de crescimento da função objetivo, em relação
à curva de nível.
27
Solução do problema da ração
Voltando ao modelo da ração (problema de mistura):
sujeito a:
2x1 + 3x2 ≥ 7
3x1 + 2x2 ≥ 9
1x1 + 0x2 ≥ 1
x1 ≥ 0; x2 ≥ 0
• Não-negatividade
x2
4
1
x1
1 2 3 4
• 1x1 + 0x2 ≥ 1.
x2
4
1
x1
1 2 3 4
28
• 2x1 + 3x2 ≥ 7.
x2
4
1
x1
1 2 3 4
• 3x1 + 2x2 ≥ 9.
x2
4
1
x1
1 2 3 4
x2
4
1
(7/2,0)
x1
1 2 3 4
29
• min C = 65x1 + 30x2
– Na solução básica viável (13/5, 3/5), temos C = $187.
x2
4
1 (13/5,3/5)
x1
1 2 3 4
1
x1
1 2 3 4
Outras situações
Exemplo 3.2. Maximizar f (x1 , x2 ) = x1 + 2x2 sujeito a:
−3x1 + x2 ≤ 2
x2 ≤ 3
x1 + 2x2 ≤ 9
3x1 + x2 ≤ 18
x1 ≥ 0, x2 ≥ 0
30
• max f (x1 , x2 ) = x1 + 2x2
4 x2 Múltiplas
soluções
3 ótimas
2
1
x1
1 2 3 4 5 6 7 8
x2
x1
x2
x1
31
Região vazia
x2
x1
3.1 Exercícios
Referências
32
4 O método simplex
4.1 Introdução
2x1 + x2 + x3 = 5
x1 + 3x2 ≥ 7,
onde tem-se o lado esquerdo maior ou igual ao lado direito, é possível re-
presentar a diferença pela subtração de uma variável de folga não-negativa:
x1 + 3x2 − x4 = 7 .
Observação
Apenas as restrições técnicas são reescritas como equações.
As restrições de não-negatividade são mantidas.
33
4.2 Forma padrão
Observação
Alguns autores – ex.: Marins (2011) – trabalham com definições alternativas
para a forma padrão. A adotada no curso foi considerada por questões didáticas.
Exemplo 4.1.
max Z(x1 , x2 ) = 5x1 + 2x2
sujeito a
x1 ≤ 3
x2 ≤ 4
x1 + 2x2 ≤ 9
x1 ≥ 0, x2 ≥ 0
x1 + x3 = 3
x2 + x4 = 4
x1 + 2x2 + x5 = 9
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0
34
4.3 Algoritmo simplex
Quadro inicial
x1 x2 x3 x4 x5 b
(0)
L0 Z −5 −2 0 0 0 0
(0)
L1 x3 1 0 1 0 0 3
(0)
L2 x4 0 1 0 1 0 4
(0)
L3 x5 1 2 0 0 1 9
• O super-índice entre parênteses (k) das linhas indica que as mesmas são
as linhas obtidas após a k-ésima iteração do simplex.
– (0) indica que estas são as linhas do quadro inicial.
• O vetor b contém as constantes (termos independentes) das restrições,
bem como da função objetivo reescrita.
x3 = 3 x1 = 0
x4 = 4 x2 = 0
x5 = 9 Z=0
Algoritmo
35
• No quadro inicial, portanto, as variáveis de folga são chamadas de
básicas (representadas na coluna à esquerda no mesmo), e as variáveis
de decisão originais do problema, não básicas.
• Esta etapa do algoritmo consiste em colocar na base uma variável
de decisão, retirando da mesma uma das variáveis básicas (deve ser
repetida até que a condição da etapa 1 seja satisfeita)
Etapas do passo 2
↓ x1 x2 x3 x4 x5 b
(0)
L0 Z −5 −2 0 0 0 0
(0)
L1 x3 1 0 1 0 0 3
(0)
L2 x4 0 1 0 1 0 4
(0)
L3 x5 1 2 0 0 1 9
b1 3 b2 4 b3 9
= =3 = = ∞ (ignora-se) = =9
c11 1 c21 0 c31 1
36
• O elemento c11 = 1, dado pelo cruzamento das linhas e colunas pivô,
é o número pivô da iteração.
• No caso,
(0) (0)
(1) L1 L
L1 = = 1
c11 1
• Note que agora x1 faz parte da base, e x3 passou a ser não-básica.
x1 x2 x3 x4 x5 b
(0)
L0 Z −5 −2 0 0 0 0
(1)
L1 x1 1 0 1 0 0 3
(0)
L2 x4 0 1 0 1 0 4
(0)
L3 x5 1 2 0 0 1 9
• Detalhamento:
(0)
1 0 1 0 0 3 L1
(1)
÷1: 1 0 1 0 0 3 L1
x1 x2 x3 x4 x5 b
(1)
L0 Z 0 −2 5 0 0 15
(1)
L1 x1 1 0 1 0 0 3
(0)
L2 x4 0 1 0 1 0 4
(0)
L3 x5 1 2 0 0 1 9
• Detalhamento:
(1)
1 0 1 0 0 3 L1
×5: 5 0 5 0 0 15
(0)
−5 −2 0 0 0 0 L0
(1)
0 −2 5 0 0 15 L0
37
(1) (0) (1) (0)
• Linha 2: L2 = L2 − 0 L1 = L2 (inalterada)
x1 x2 x3 x4 x5 b
(1)
L0 Z 0 −2 5 0 0 15
(1)
L1 x1 1 0 1 0 0 3
(1)
L2 x4 0 1 0 1 0 4
(0)
L3 x5 1 2 0 0 1 9
x1 = 3 x2 = 0
x4 = 4 x3 = 0
x5 = 6 Z = 15
38
Solução básica viável após iteração 2 (solução ótima)
x1 = 3 x3 = 0
x4 = 1 x5 = 0
x2 = 3 Z = 21
x1 ≤ 3
x2 ≤ 4
4x1 + 3x2 ≤ 12
x1 ≥ 0, x2 ≥ 0
x1 x2 x3 x4 x5 b
(0)
L0 Z −5 −2 0 0 0 0
(0)
L1 x3 1 0 1 0 0 3
(0)
L2 x4 0 1 0 1 0 4
(0)
L3 x5 4 3 0 0 1 12
39
x1 entrará na base. As candidatas a sair da base (menor razão não-negativa):
b1 3 b3 12
x3 : = =3 x5 : = =3
c11 1 c31 4
Escolhe-se, por exemplo, x3 para deixar a base:
x1 ↓ x2 x3 x4 x5 b
(1)
L0 Z 0 −2 5 0 0 15
(1)
L1 x1 1 0 1 0 0 3
(1)
L2 x4 0 1 0 1 0 4
(1)
L3 ← x5 0 3 −4 0 1 0
Note que x5 é nula, mesmo sendo variável básica. Isto ocorre devido à
condição de empate e a solução viável encontrada é dita degenerada.
x1 x2 x3 x4 x5 b
(2)
L0 Z 0 0 7/3 0 2/3 15
(2)
L1 x1 1 0 1 0 0 3
(2)
L2 x4 0 0 4/3 1 −1/3 4
(2)
L3 x2 0 1 −4/3 0 1/3 0
Pode ocorrer a ciclagem (ou retorno cíclico) – o valor da função objetivo não
melhora, sendo possível que o método entre em uma sequência de iterações sem
nunca melhorar tal valor e satisfazer a condição de otimalidade. Neste exemplo,
esta última foi satisfeita (encontrou-se solução ótima).
Exemplo de caso em que ocorre ciclagem (Taha, 2008):
3 1
max Z = x1 − 20x2 + x3 − 6x4
4 2
sujeito a
1
x1 − 8x2 − x3 + 9x4 ≤ 0
4
1 1
x1 − 12x2 − x3 + 3x4 ≤ 0
2 2
x3 ≤ 1
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0
• Na forma de equações:
3 1
max Z(x1 , x2 , x3 , x4 , x5 , x6 , x7 ) − x1 + 20x2 − x3 + 6x4 = 0
4 2
40
sujeito a
1
x1 − 8x2 − x3 + 9x4 + x5 = 0
4
1 1
x1 − 12x2 − x3 + 3x4 + x6 = 0
2 2
x3 + x7 = 1
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0, x7 ≥ 0
↓ x1 x2 x3 x4 x5 x6 x7 b
(0)
L0 Z −3/4 20 −1/2 6 0 0 0 0
(0)
L1 ← x5 1/4 −8 −1 9 1 0 0 0
(0)
L2 x6 1/2 −12 −1/2 3 0 1 0 0
(0)
L3 x7 0 0 1 0 0 0 1 1
x1 ↓ x2 x3 x4 x5 x6 x7 b
(1)
L0 Z 0 −4 −7/2 33 3 0 0 0
(1)
L1 x1 1 −32 −4 36 4 0 0 0
(1)
L2 ← x6 0 4 3/2 −15 −2 1 0 0
(1)
L3 x7 0 0 1 0 0 0 1 1
x1 x2 ↓ x3 x4 x5 x6 x7 b
(2)
L0 Z 0 0 −2 18 1 1 0 0
(2)
L1 ← x1 1 0 8 −84 −12 8 0 0
(2)
L2 x2 0 1 3/8 −15/4 −1/2 1/4 0 0
(2)
L3 x7 0 0 1 0 0 0 1 1
x1 x2 x3 ↓ x4 x5 x6 x7 b
(3)
L0 Z 1/4 0 0 −3 −2 3 0 0
(3)
L1 x3 1/8 0 1 −21/2 −3/2 1 0 0
(3)
L2 ← x2 −3/64 1 0 3/16 1/16 −1/8 0 0
(3)
L3 x7 −1/8 0 0 21/2 3/2 −1 1 1
x1 x2 x3 x4 ↓ x5 x6 x7 b
(4)
L0 Z −1/2 16 0 0 −1 1 0 0
(4)
L1 ← x3 −5/2 56 1 0 2 −6 0 0
(4)
L2 x4 −1/4 16/3 0 1 1/3 −2/3 0 0
(4)
L3 x7 5/2 −56 0 0 −2 6 1 1
41
x1 x2 x3 x4 x5 ↓ x6 x7 b
(5)
L0 Z −7/4 44 1/2 0 0 −2 0 0
(5)
L1 x5 −5/4 28 1/2 0 1 −3 0 0
(5)
L2 ← x4 1/6 −4 −1/6 1 0 1/3 0 0
(5)
L3 x7 0 0 1 0 0 0 1 1
↓ x1 x2 x3 x4 x5 x6 x7 b
(6)
L0 Z −3/4 20 −1/2 6 0 0 0 0
(6)
L1 ← x5 1/4 −8 −1 9 1 0 0 0
(6)
L2 x6 1/2 −12 −1/2 3 0 1 0 0
(6)
L3 x7 0 0 1 0 0 0 1 1
x1 + 2x2 ≤ 5
x1 + x2 ≤ 4
x1 ≥ 0, x2 ≥ 0
x1 ↓ x2 x3 x4 b
(0)
L0 Z −2 −4 0 0 0
(0)
L1 ← x3 1 2 1 0 5
(0)
L2 x4 1 1 0 1 4
↓ x1 x2 x3 x4 b
(1)
L0 Z 0 0 2 0 10
(1)
L1 x2 1/2 1 1/2 0 5/2
(1)
L2 ← x4 1/2 0 −1/2 1 3/2
42
x1 x2 x3 x4 b
(2)
L0 Z 0 0 2 0 10
(2)
L1 x2 0 1 1 −1 1
(2)
L2 x1 1 0 −1 2 3
• Isto ocorre, provavelmente, porque o modelo foi mal formulado, seja por
omitir restrições relevantes, seja por declará-las de modo incorreto.
Exemplo:
max Z = 2x1 + x2 sujeito a
x1 − x2 ≤ 10
2x1 ≤ 40
x1 ≥ 0, x2 ≥ 0
↓ x1 x2 x3 x4 b
(0)
L0 Z −2 −1 0 0 0
(0)
L1 ← x3 1 −1 1 0 10
(0)
L2 x4 2 0 0 1 40
Todos os coeficientes das restrições sob x2 são todos negativos ou zero. Note
que x2 pode ser aumentada indefinidamente sem desobedecer nenhuma das res-
trições. Embora x1 entre na base pelo critério de otimalidade, note que caso
x2 entrasse na base, nem x3 nem x4 poderia sair da mesma pelo critério de
viabilidade.
43
x1 ↓ x2 x3 x4 b
(1)
L0 Z 0 −3 2 0 20
(1)
L1 x1 1 −1 1 0 10
(1)
L2 ← x4 0 2 −2 1 20
x1 x2 ↓ x3 x4 b
(2)
L0 Z 0 0 −1 3/2 50
(2)
L1 ← x1 0 0 0 1/2 30
(2)
L2 x2 0 1 −1 1/2 10
Como consequência do observado para x2 no quadro inicial, agora x3 possui
as mesmas características, sendo a única variável candidata a entrar na base:
nem x1 nem x2 podem sair.
Obs.: É suficiente a análise do quadro inicial para concluir que a solução é
ilimitada.
5. Problema de minimização
Quando a função objetivo tiver de ser minimizada pode-se fazer duas coisas,
a saber:
• Inverter o teste de otimização e o critério de entrada na base. Assim, se
todos os coeficientes da linha L0 forem negativos, ou nulos, a solução é
ótima. Caso contrário, escolha a variável xj para entrar que apresente o
maior valor.
• Transformar o problema de minimização em um problema de maximiza-
ção. Sabe-se que achar o mínimo de uma função é equivalente a encontrar
o máximo do simétrico desta função.
44
Lado direito negativo
• Para que a resolução vista possa ser empregada, é preciso que o lado direito
das restrições seja não-negativo.
• Por exemplo, a restrição
−x1 + x2 ≤ −3
−x1 + x2 + x3 = −3, x3 ≥ 0 .
x1 − x2 − x3 = 3 .
• Neste caso, o coeficiente de x3 é −1. Logo, esta não pode entrar na base
(na equação reescrita é variável de excesso). Isto equivale a partirmos da
inequação
x1 − x2 ≥ 3 .
x1 + x3 = 3
x2 + x4 = 4
x1 + 2x2 − x5 = 9
x1 , . . . , x5 ≥ 0
• Variáveis não-básicas: x1 = x2 = 0.
• Variáveis básicas: x3 = 3, x4 = 4, x5 = −9.
• Não é solução viável, pois x5 deveria ser não-negativa.
Pode-se acrescentar uma variável artificial na equação problemática. Esta
variável ocupará o lugar de x5 na base inicial. Logo:
Método do M -grande
• Como as variáveis artificiais não fazem parte do modelo, estas sofrerão
punições na função objetivo:
– As punições visam zerar tais variáveis na solução ótima.
– Isto sempre ocorrerá se houver solução viável.
– −M , em problemas de maximização;
– M , em problemas de minimização.
46
Retornando ao exemplo anterior:
x1 + x3 = 3 x1 + x3 = 3
x2 + x4 = 4 x2 + x4 = 4
x1 + 2x2 − x5 + t1 = 9 x1 + 2x2 − x5 + t1 = 9
x1 , . . . , x5 , t1 ≥ 0 x1 , . . . , x5 , t1 ≥ 0
x1 x2 x3 x4 x5 t1 b
(0)
L0 Z −5 −2 0 0 0 100 0
(0)
L1 x3 1 0 1 0 0 0 3
(0)
L2 x4 0 1 0 1 0 0 4
(0)
L3 t1 1 2 0 0 −1 1 9
x1 ↓ x2 x3 x4 x5 t1 b
(0)
L0 Z −105 −202 0 0 100 0 −900
(0)
L1 x3 1 0 1 0 0 0 3
(0)
L2 ← x4 0 1 0 1 0 0 4
(0)
L3 t1 1 2 0 0 −1 1 9
• Detalhamento:
(0)
1 2 0 0 −1 1 9 L3
×(−100): −100 −200 0 0 100 −100 −900
(0)
−5 −2 0 0 0 100 0 L0 original
(0)
−105 −202 0 0 100 0 −900 L0 ajustada
47
Solução básica viável inicial
x3 = 3 x1 = 0
x4 = 4 x2 = 0
t1 = 9 x5 = 0
Z = −900
↓ x1 x2 x3 x4 x5 t1 b
(1)
L0 Z −105 0 0 202 100 0 −92
(1)
L1 x3 1 0 1 0 0 0 3
(1)
L2 x2 0 1 0 1 0 0 4
(1)
L3 ← t1 1 0 0 −2 −1 1 1
x1 x2 x3 ↓ x4 x5 t1 b
(2)
L0 Z 0 0 0 −8 −5 105 13
(2)
L1 ← x3 0 0 1 2 1 −1 2
(2)
L2 x2 0 1 0 1 0 0 4
(2)
L3 x1 1 0 0 −2 −1 1 1
x1 x2 x3 x4 ↓ x5 t1 b
(3)
L0 Z 0 0 4 0 −1 101 21
(3)
L1 ← x4 0 0 1/2 1 1/2 −1/2 1
(3)
L2 x2 0 1 −1/2 0 −1/2 1/2 3
(3)
L3 x1 1 0 1 0 0 0 3
x1 x2 x3 x4 x5 t1 b
(4)
L0 Z 0 0 5 2 0 100 23
(4)
L1 x5 0 0 1 2 1 −1 2
(4)
L2 x2 0 1 0 1 0 0 4
(4)
L3 x1 1 0 1 0 0 0 3
48
• Inicialmente, variáveis artificiais são introduzidas ao modelo, como no mé-
todo anterior.
• Como o nome sugere, há duas fases ou etapas:
– Fase I: consiste em resolver um problema de minimização cuja função
objetivo é dada pelo somatório das variáveis artificiais. Espera-se
que o mínimo seja zero (requisito para Fase II).
Observação
Caso o valor mínimo da soma seja diferente de zero, o problema
não tem nenhuma solução viável, o que encerra o processo – variável
artificial positiva indica que restrição original não foi satisfeita.
– Fase II: Usa-se a solução da Fase I como solução básica viável inicial
para o problema original.
Seja o problema:
Variáveis de folga:
max Z = 4x1 + x2
max Z = 4x1 + x2
sujeito a sujeito a
3x1 + x2 = 3 3x1 + x2 = 3
4x1 + 3x2 ≥ 6 4x1 + 3x2 − x3 = 6
x1 + 2x2 ≤ 4 x1 + 2x2 + x4 = 4
x1 ≥ 0, x2 ≥ 0 x1 ≥ 0, . . . , x4 ≥ 0
Como não há uma solução básica viável são inseridas as variáveis artificiais
t1 e t2 às restrições envolvendo ≥ e =:
max Z = 4x1 + x2
sujeito a
3x1 + x2 + t1 = 3
4x1 + 3x2 − x3 + t2 = 6
x1 + 2x2 + x4 = 4
x1 ≥ 0, . . . , x4 ≥ 0, t1 ≥ 0, t2 ≥ 0 .
W = t1 + t2
49
Fase I
min W = t1 + t2
sujeito a
3x1 + x2 + t1 = 3
4x1 + 3x2 − x3 + t2 = 6
x1 + 2x2 + x4 = 4
x1 ≥ 0, . . . , x4 ≥ 0, t1 ≥ 0, t2 ≥ 0 .
x1 x2 x3 x4 t1 t2 b
(0)
L0 −W 0 0 0 0 1 1 0
(0)
L1 t1 3 1 0 0 1 0 3
(0)
L2 t2 4 3 −1 0 0 1 6
(0)
L3 x4 1 2 0 1 0 0 4
Como a linha L0 é incompatível com o sistema – possui coeficientes para
(0) (0) (0) (0)
variáveis t1 e t2 da base – faz-se L0 = L0 − L1 − L2 :
↓ x1 x2 x3 x4 t1 t2 b
(0)
L0 −W −7 −4 1 0 0 0 −9
(0)
L1 ← t1 3 1 0 0 1 0 3
(0)
L2 t2 4 3 −1 0 0 1 6
(0)
L3 x4 1 2 0 1 0 0 4
Detalhamento:
(0)
3 1 0 0 1 0 3 L1
(0)
4 3 −1 0 0 1 6 L2
(0)
L1 × (−1): −3 −1 0 0 −1 0 −3
(0)
L2 × (−1): −4 −3 1 0 0 −1 −6
(0)
0 0 0 0 1 1 0 L0 original
(0)
−7 −4 1 0 0 0 −9 L0 redefinido
x1 ↓ x2 x3 x4 t1 t2 b
(1)
L0 −W 0 −5/3 1 0 7/3 0 −2
(1)
L1 x1 1 1/3 0 0 1/3 0 1
(1)
L2 ← t2 0 5/3 −1 0 −4/3 1 2
(1)
L3 x4 0 5/3 0 1 −1/3 0 3
x1 x2 x3 x4 t1 t2 b
(2)
L0 −W 0 0 0 0 1 1 0
(2)
L1 x1 1 0 1/5 0 3/5 −1/5 3/5
(2)
L2 x2 0 1 −3/5 0 −4/5 3/5 6/5
(2)
L3 x4 0 0 1 1 1 1 1
50
• No quadro (2), −W = 0 (logo, W = 0), e não há coeficientes negativos
para as variáveis fora da base. Portanto, a fase I está concluída.
• A solução básica viável é dada por:
x1 = 3/5 x2 = 6/5 x4 = 1
Fase II
Após eliminar as colunas das variáveis artificiais, reescreve-se o problema
original como:
max Z = 4x1 + x2
sujeito a
x1 + 1/5x3 = 3/5
x2 − 3/5x3 = 6/5
x3 + x4 = 1
x1 ≥ 0, . . . , x4 ≥ 0 .
Quadro inicial desta fase – note que é preciso adequar a linha L0 antes de
prosseguir para o algoritmo do simplex:
x1 x2 x3 x4 b
(0)
L0 Z −4 −1 0 0 0
(0)
L1 x1 1 0 1/5 0 3/5
(0)
L2 x2 0 1 −3/5 0 6/5
(0)
L3 x4 0 0 1 1 1
4.5 Exercícios
51
2. Usando simplex, determine a solução do problema
sujeito a
2x1 + 3x2 ≥ 7
3x1 + 2x2 ≥ 9
x1 ≥ 1
x1 ≥ 0, x2 ≥ 0 .
Referências
2. TAHA, H. Pesquisa operacional. 8ª. ed. São Paulo: Prentice Hall, 2008.
52
Parte II
Dualidade
5 Dual e sua relação com o primal
Vantagens
• Uma vantagem do uso do modelo dual está na possibilidade de se gerar
um problema menor, cuja solução seja mais rápida/menos cara que no
modelo original.
• Outra vantagem: transformar um problema de minimização num de ma-
ximização – o que permite aplicação direta do algoritmo simplex.
53
5. Os coeficientes da função objetivo do dual são dados pelas constantes (lado
direito) das restrições do primal;
• Primal: • Dual:
n
X m
X
max Z = cj xj min D = bi yi
j=1 i=1
sujeito a sujeito a
n
X m
X
aij xj ≤ bi , (i = 1, . . . , m) aji yi ≥ cj , (j = 1, . . . , n)
j=1 i=1
xj ≥ 0 yi ≥ 0
Exemplo
• Primal: • Dual:
x1 + x2 ≤ 50
2x1 + x2 ≤ 80 y1 + 2y2 + 2y3 ≥ 25
2x1 + 5x2 ≤ 220 y1 + y2 + 5y3 ≥ 20
x1 ≥ 0, x2 ≥ 0 . y1 ≥ 0, y2 ≥ 0, y3 ≥ 0 .
• Note pelo caso geral e exemplo vistos que o sinal de desigualdade das
restrições duais está associado ao tipo de otimização: se o dual for de
minimização, todas as restrições serão (≥).
• Outro fato é que as variáveis duais yi são não negativas, mas nem sempre
isto ocorre.
54
5.1 Regras para construção do dual
x1 + 2x2 ≥ 3
2x1 − 4x2 ≤ 5
x1 ≥ 0, x2 ≥ 0 .
y1 + 2y2 ≤ 15
x1 + 2x2 − x3 + 0x4 = 3 (y1 ) 2y1 − 4y2 ≤ 12
2x1 − 4x2 + 0x3 + x4 = 5 (y2 ) −1y1 + 0y2 ≤ 0
xi ≥ 0, i = 1, . . . , 4. 0y1 + 1y2 ≤ 0 .
y1 + 2y2 ≤ 15
2y1 − 4y2 ≤ 12
y1 ≥ 0
y2 ≤ 0 .
55
Exercício
Verifique, para o exemplo de maximização visto anteriormente, que as res-
trições de não negatividade para y1 , y2 e y3 são coerentes com os coeficientes
das variáveis de folga do problema.
sujeito a
x1 + 2x2 + x3 ≤ 10
2x1 − x2 + 3x3 = 8
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 .
y1 + 2y2 ≥ 5
x1 + 2x2 + x3 + x4 = 10 (y1 ) 2y1 − y2 ≥ 12
2x1 − x2 + 3x3 + 0x4 = 8 (y2 ) y1 + 3y2 ≥ 4
xi ≥ 0, i = 1, . . . , 4. y1 + 0y2 ≥ 0 .
x1 + 2x2 = 5
−x1 + 5x2 ≥ 3
4x1 + 7x2 ≤ 8
x1 irrestrita, x2 ≥ 0 .
56
• Uma situação não apresentada no modelo primal é a de variável irrestrita.
• Nesta situação, se xi é irrestrita, então definem-se duas variáveis não-
negativas, x−
i e xi , cuja diferença entre ambas resulta na irrestrita:
+
xi = x− +
i − xi
• Sendo assim:
– Se xi ≥ 0, então x− +
i ≥ xi ≥ 0;
−
– Se xi < 0, então x+
i > xi ≥ 0.
max Z = 5x− +
1 − 5x1 + 6x2 min D = 5y1 + 3y2 + 8y3
sujeito a sujeito a
x− +
1 − x1 + 2x2 = 5 (y1 ) y1 − y2 + 4y3 ≥ 5
− x− +
1 + x1 + 5x2 − x3 = 3 (y2 ) −y1 + y2 − 4y3 ≥ −5
4x− +
1 − 4x1 + 7x2 + x4 = 8 (y3 ) 2y1 + 5y2 + 7y3 ≥ 6
x− +
1 ≥ 0, x1 ≥ 0, −y2 + 0y3 ≥ 0
x2 ≥ 0, x3 ≥ 0, x4 ≥ 0 . 0y2 + y3 ≥ 0
y1 − y2 + 4y3 = 5
2y1 + 5y2 + 7y3 ≥ 6
y1 irrestrita, y2 ≤ 0, y3 ≥ 0 .
Teoremas
Teorema I (Dualidade fraca)
Se ambos o primal e o dual possuem soluções viáveis, então Z ≤ D para
qualquer solução viável do primal de maximização e qualquer solução viável do
dual de minimização.
57
• Se o primal é de minimização, então o dual é de maximização e temos
Z ≥ D.
x1 ≤ 3
x2 ≤ 4 y1 + y3 ≥ 5
x1 + 2x2 ≤ 9 y2 + 2y3 ≥ 2
x1 ≥ 0, x2 ≥ 0 . y1 ≥ 0, y2 ≥ 0, y3 ≥ 0 .
• Temos, portanto Z ≤ D.
• Considere agora o par de soluções viáveis (x1 , x2 ) = (3, 3) para o primal e
(y1 , y2 , y3 ) = (4, 0, 1) para o dual:
Z = 5(3) + 2(3) = 21
D = 3(4) + 4(0) + 9(1) = 21 .
• Como Z = D = 21, pode-se afirmar que as duas soluções são ótimas para
o primal e dual.
58
Teorema da folga complementar
Seja o problema primal representado pelo quadro inicial:
x1 x2 ... xn xn+1 xn+2 . . . xn+m b
(0)
L0 Z −c1 −c2 . . . −cn 0 0 ... 0 0
(0)
L1 xn+1 a11 a12 . . . a1n 1 0 ... 0 b1
(0)
L2 xn+2 a21 a22 . . . a2n 0 1 ... 0 b2
.. .. .. .. .. .. .. .. .. ..
. . . . . . . . . 0 .
(0)
Lm xn+m am1 am2 ... amn 0 0 ... 1 bm
yi∗ = pn+i , i = 1, . . . , m.
∗
ym+j = pj − cj , j = 1, . . . , n.
Uma vez que o dual do dual é o próprio problema primal, pode-se determinar
a solução do primal a partir da solução do dual.
5.2 Exercícios
59
sujeito a
2x1 + 3x2 ≥ 7
3x1 + 2x2 ≥ 9
x1 ≥ 1
x1 ≥ 0, x2 ≥ 0 .
Referências
1. TAHA, H. Pesquisa operacional. 8ª. ed. São Paulo: Prentice Hall, 2008.
60
Parte III
Problemas de transporte
6 Introdução a problemas de transporte
Problemas de transporte, transbordo e designação
• Dentro da PL, existem diversos modelos obtidos a partir de problemas
reais
• Com relação a problemas de logística, podemos destacar:
– Problemas de transporte;
– Problemas de transbordo;
– Problemas de designação.
7 Problema de transporte
7.1 Modelagem
Formulação matemática do problema de transporte
• m centros de produção (origens);
• n centros consumidores (destinos);
c11
a1 1 1 b1
a2 2 2 b2
.. .. .. ..
. . . .
cmn
am m n bn
61
Componentes do modelo
ai : as quantidades disponíveis, ou ofertadas, em cada origem i
bj : as quantidades requeridas (demandadas) , em cada destino j
cij : o custo unitário de transporte da origem i ao destino j
xij : a quantidade a ser transportada da origem i ao destino j
n
X
xij ≤ ai
j=1
m
X
xij = bj
i=1
• O problema consiste em
m X
X n
min C(x11 , x12 , . . . , xmn ) = cij xij (custo total)
i=1 j=1
sujeito às restrições
n
X
xij ≤ ai i = 1, . . . , m
j=1
Xm
xij = bj j = 1, . . . , n
i=1
xij ≤ 0 i = 1, . . . , m; j = 1, . . . , n
62
P2
P1
Esquema para
D2 D3 m = 4 pedreiras e
n = 3 depósitos
D1 P3
P4
Depósitos
Pedreiras 1 2 3 Oferta
1 30 13 21 433
2 12 40 26 215
3 27 15 35 782
4 37 25 19 300
demanda 697 421 612
sujeito a
63
Distribuição para centros de consumo
• Uma empresa fabrica um determinado produto em três cidades P1 , P2 e
P3 ; o produto destina-se a quatro centros de consumo C1 , C2 , C3 e C4 .
O custo estimado de transportar o produto das fábricas para os centros
consumidores, assim como a demanda de cada centro e a oferta de cada
fábrica é dado na tabela a seguir:
Destino
Origem C1 C2 C3 C4 Oferta
P1 10 7 6 5 9
P2 2 8 9 1 10
P3 11 12 8 4 8
Demanda 7 6 10 4
7.2 Exercícios
64
L1 L2 L3 L4
P1 30 20 24 18
P2 12 36 30 24
P3 8 15 25 20
Depósitos/ Rio de
Florianópolis Salvador Manaus Produções
Fábricas Janeiro
Curitiba 1 0,8 3 4,5 470
São Paulo 1,5 0,6 2,5 3 400
Aracaju 6 5 1,2 2,8 400
Demanda 350 300 300 120
65
7.3 Resolução
Resolução de problemas de transporte
m
X n
X
ai = bj
i=1 j=1
Exemplo
Destino
Origem C1 C2 C3 C4 Oferta
P1 10 7 6 5 9
P2 2 8 9 1 10
P3 11 12 8 4 8
Demanda 7 6 10 4
66
• O modelo é dado por:
sujeito a
x11 + x12 + x13 + x14 = 9
x21 + x22 + x23 + x24 = 10
x31 + x32 + x33 + x34 = 8
x11 + x21 + x31 = 7
x12 + x22 + x32 = 6
x13 + x23 + x33 = 10
x14 + x24 + x34 = 4
x11 ≥ 0, x12 ≥ 0, . . . , x34 ≥ 0
Quadro de soluções
Destino
1 2 ... n Oferta
Origem
c11 c12 ... c1n
1 a1
c21 c22 ... c2n
2 a2
.. .. ..
. ... ... . ... .
cm1 cm2 ... cmn
m am
Demanda b1 b2 ... bn
67
Destino
1 2 3 4 Oferta
Origem
10 7 6 5
1 9
2 8 9 1
2 10
11 12 8 4
3 8
Demanda 7 6 10 4
Solução Inicial
• Sabe-se que uma solução inicial deverá ser uma solução básica viável do
sistema formado pelas restrições do modelo
• Além disso:
Teorema
Qualquer equação do sistema formado pelas restrições do modelo pode ser
obtida por uma combinação linear das demais, indicando que só existem
(m + n − 1) equações independentes naquele sistema.
68
Regra do canto Noroeste
A regra será aplicada ao quadro de soluções segundo os seguintes passos:
1. Comece pela célula superior esquerda (ou seja, o “canto Noroeste” do
quadro), associado ao custo c11 ;
2. Coloque nessa célula a maior quantidade permitida pela oferta (linha) e
demanda (coluna) correspondentes;
3. Atualize os valores da oferta e da demanda que foram modicados pelo
passo (2);
4. Siga para a célula à direita se houver alguma oferta restante e volte ao
passo (2); Caso contrário, siga para a célula inferior e volte ao passo (2).
69
• No caso, temos
Observação
É importante observar que na regra do canto Noroeste a solução inicial é ob-
tida sem levar em consideração os custos dos transportes cij , isto é, depende
exclusivamente das ofertas das origens e das demandas dos destinos.
• Este processo para fornecer uma solução inicial leva em consideração, além
das ofertas e das demandas, os valores dos custos
• Os seguintes passos devem ser seguidos:
1. Localize no quadro o menor cij que não tenha oferta ou demanda
nula
2. Coloque na célula a maior quantidade permitida pela oferta e de-
manda correspondente
3. Atualize os valores da oferta e da demanda que foram modicadas pelo
passo (2) e volte ao passo (1).
• O processo se repete até que sejam esgotadas as ofertas e suprimidas as
demandas de todos os destinos
Destino
1 2 3 4 Oferta
Origem
10 7 6 5
1 9
2 8 9 1
2 10
11 12 8 4
3 8
Demanda 7 6 10 4
70
Processo de Custo Mínimo
Destino
1 2 3 4 Oferta
Origem
10 7 6 5
1 9 9
2 8 9 1
2 6 4 10 6
11 12 8 4
3 1 6 1 8 7 1
Demanda 7 1 6 10 1
4
Teste de otimalidade
• Conhecida uma solução básica viável inicial, devemos obter a função obje-
tivo somente em função das variáveis não básicas, para saber se a presente
solução já é ótima.
• Da mesma forma como é feito no método simplex, caso a solução ainda
não seja ótima devemos determinar a variável que entra e a que sai da
base.
Método u − v
71
• Sejam v1 , v2 , . . . , vn os múltiplos análogos para cada restrição de demanda:
m X
X n
min C − cij xij = 0
i=1 j=1
n
X
x1j = a1 (u1 )
j=1
..
.
n
X
xmj = am (um )
j=1
Xm
xi1 = b1 (v1 )
i=1
..
.
m
X
xin = bn (vn )
i=1
xij ≥ 0, i = 1, . . . , m, j = 1, . . . , n
cij − ui − vj = 0
x13 : 6 − u1 − v3 = 0
x21 : 2 − u2 − v1 = 0
x24 : 1 − u2 − v4 = 0
x31 : 11 − u3 − v1 = 0
x32 : 12 − u3 − v2 = 0
x33 : 8 − u3 − v3 = 0
72
• Atribuindo um valor arbitrário a u1 , descobrimos os demais valores de ui
e vj .
• Por exemplo, para u1 = 0, temos:
v1 = 9 v2 = 10 v3 = 6 v4 = 8
u1 = 0 u2 = −7 u3 = 2
x11 : 10 − 0 − 9 = 1
x12 : 7 − 0 − 10 = −3
x14 : 5 − 0 − 8 = −3
x22 : 8 + 7 − 10 = 5
x23 : 9 + 7 − 6 = 10
x34 : 4 − 2 − 8 = −6
• Uma solução básica viável é ótima se, e somente se, cij − ui − vj ≥ 0 para
todo i, j tal que xij seja uma variável não básica.
• Sendo assim, como as variáveis x12 , x14 e x34 apresentaram coeficientes
negativos a solução ainda não é ótima.
73
Passo 1: Encontrar a variável que entra na base
• Considerando apenas as variáveis não básicas, devemos escolher aquelas
tais que
cij − ui − vj < 0
.
• No exemplo, escolhemos x12 , x14 e x34 ;
• Garantimos, assim, que o custo total seja reduzido.
• Seguindo esse raciocínio, dentre as candidatas, escolhemos a de menor
valor, ou seja, x34 , cujo coeficiente é −6.
Passo 2 (continuação)
• Estabelecemos, então, um valor θ para variável x34 , o que significa diminuir
x24 na mesma quantidade para restabelecer a demanda igual a 4 (coluna
4)
• Essa mudança requer, então, aumentar x21 na mesma quantidade para
continuar obedecendo a oferta (linha 2)
• Mais uma vez, tal mudança requer diminuir a variável x31 na mesma
quantidade para restabelecer a demanda 7 (coluna 1)
• Esse decrescimento também restabelece a oferta da origem 3 igual 8 (linha
3)
Destino
1 2 3 4 Oferta
Origem
10 7 6 5
1 9 9
2 8 9 1
2 6+θ 4−θ 10
11 12 8 4
3 1−θ 6 1 θ 8
Demanda 7 6 10 4
74
Passo 2 (continuação)
• Devemos, agora, determinar o maior valor permitido a θ, isto é, o valor
de θ que gera a variável básica que se anula mais rapidamente.
• Do quadro anterior, temos:
x21 = 6 + θ
x24 = 4 − θ ≥ 0 ∴ θ ≤ 4
x31 = 1 − θ ≥ 0 ∴ θ ≤ 1
Destino
1 2 3 4 Oferta
Origem
10 7 6 5
1 9 9
2 8 9 1
2 7 3 10
11 12 8 4
3 0 6 1 1 8
Demanda 7 6 10 4
x13 : 6 − u1 − v3 = 0
x21 : 2 − u2 − v1 = 0
x24 : 1 − u2 − v4 = 0
x32 : 12 − u3 − v2 = 0
x33 : 8 − u3 − v3 = 0
x34 : 4 − u3 − v4 = 0
• Fazendo u3 = 0, temos:
u1 = −2 u2 = −3
v4 = 4 v1 = 5 v3 = 8 v2 = 12
75
• Em seguida, encontramos o valor de cada coeficiente das variáveis não
básicas (cij − ui − vj ):
x11 : 10 + 2 − 5 = 7
x12 : 7 + 2 − 12 = −3
x14 : 5 + 2 − 4 = 3
x22 : 8 + 3 − 12 = −1
x23 : 9 + 3 − 8 = 4
x31 : 11 − 0 − 5 = 6
Destino
1 2 3 4 Oferta
Origem
10 7 6 5
1 θ 9−θ 9
2 8 9 1
2 7 3 10
11 12 8 4
3 6−θ 1+θ 1 8
Demanda 7 6 10 4
x13 = 9 − θ ≥ 0 ∴ θ ≤ 9
x32 = 6 − θ ≥ 0 ∴ θ ≤ 6
x33 = 1 + θ ≥ 0
• Sendo assim, o valor máximo que θ pode assumir é 6 e a variável que deve
deixar a base é x32
Destino
1 2 3 4 Oferta
Origem
10 7 6 5
1 6 3 9
2 8 9 1
2 7 3 10
11 12 8 4
3 0 7 1 8
Demanda 7 6 10 4
76
• Ao final desse passo, calculamos novamente os valores de ui e vj :
x12 : 7 − u1 − v2 = 0
x13 : 6 − u1 − v3 = 0
x21 : 2 − u2 − v1 = 0
x24 : 1 − u2 − v4 = 0
x33 : 8 − u3 − v3 = 0
x34 : 4 − u3 − v4 = 0
• Para u1 = 0, temos:
v2 = 7 u3 = 2 u2 = −1
v1 = 1 v3 = 6 v4 = 2
x11 : 10 − 0 − 1 = 9
x14 : 5 − 0 − 2 = 3
x22 : 8 + 1 − 7 = 2
x23 : 9 + 1 − 6 = 4
x31 : 11 − 2 − 1 = 8
x32 : 12 − 2 − 7 = 3
C = 137
Introduzir uma fonte de oferta fantasma (fonte dummy), com custos uni-
tários zero para todos os destinos, e com oferta igual à diferença entre o
total demandado e o total ofertado.
77
7.5 Exercícios
D1 D2 D3 D4
F1 10 5 12 4
F2 2 0 1 9
F3 13 11 14 6
Referências
78
8 Problema de transbordo
Introdução
• Em determinadas situações, podem-se usar localidades intermediárias en-
tre a origem e o destino dos produtos a serem transportados
– Tais localidades são denominadas de transbordo;
– Podem representar, por exemplo, depósitos ou centros de distribuição
regionais;
– Problemas de transporte contendo estes pontos intermediários são
chamados de problemas de transbordo.
8.1 Modelagem
j 4
79
Exemplo
• (ARENALES, 2006) Considere uma empresa de bebidas com 2 centros de
produção (Araraquara e S. José dos Campos, com um suprimento de 800
e 1 000 unidades, respectivamente) e 3 mercados consumidores principais
– S. Paulo, Belo Horizonte e R. de Janeiro, com demandas respectivas de
500, 400 e 900 unidades.
• A empresa dispõe de 2 depósitos para abastecer tais mercados, localizados
em Campinas e Barra Mansa. Suponha que os mercados sejam abastecidos
somente a partir de tais depósitos.
Os custos unitários de transporte de cada centro de produção para cada
depósito, e de cada depósito para cada mercado consumidor é dado pelas
tabelas que seguem.
• Custos unitários de transporte de centros de produção aos depósitos
Depósitos
Centros de suprimento
Campinas (3) Barra Mansa (4)
Araraquara (1) 1 3
S. José dos Campos (2) 1 2
Mercados consumidores
Depósitos
São Paulo (5) B. Horizonte (6) R. Janeiro (7)
Campinas (3) 1 3 3
Barra Mansa (4) 3 4 1
80
Referências
81
9 Problema de designação
Introdução
• Por exemplo:
– Escalar vendedores para pontos de venda;
– Distribuir atividades entre membros de uma equipe;
– Alocar máquinas para resolver diferentes tarefas.
9.1 Modelagem
Exemplo
Deseja-se designar quatro operários para quatro tarefas, de maneira que o nú-
mero total de homens-hora seja mínimo. Cada homem desempenha cada tarefa
em um determinado número de horas, conforme indicam os dados da matriz de
custos a seguir:
Operário 1 Operário 2 Operário 3 Operário 4
Tarefa 1 10 12 15 16
Tarefa 2 14 12 13 18
Tarefa 3 10 16 19 15
Tarefa 4 14 12 13 15
Função Objetivo
m X
X n
min C = cij xij
i=1 j=i
82
Restrições
n
X
xij = 1, i = 1, 2, . . . , m
j=1
m
X
xij = 1, j = 1, 2, . . . , n
i=1
xij ∈ {0, 1}
83
Passos do Método Húngaro
1. Subtrair de cada linha seu menor valor; em seguida fazer o mesmo com
as colunas; cada linha e cada coluna deverá, então, apresentar pelo menos
um elemento nulo (zero).
2. Designar origens para destinos nas células em que aparece o elemento
nulo; dar preferência às linhas ou colunas que tenham apenas um zero
disponível; cada designação efetuada invalida os outros zeros na linha e
na coluna da célula designada; se a designação se completa, o problema
está resolvido.
3. Se não estiver resolvido, devemos:
(a) Cobrir os zeros da tabela com o menor número de traços – horizontais
e verticais – possível;
(b) Subtrair o menor valor dentre os números não cobertos, de todos os
elementos da tabela;
(c) Retornar ao item (2).
Exemplo
• Para a matriz de custos do exemplo anterior:
10 12 15 16
14 12 13 18
10 16 19 15
14 12 13 15
• Subtraindo o menor elemento das linhas (respectivamente: 10, 12, 10, 12):
0 2 5 6
2 0 1 6
0 6 9 5
2 0 1 3
84
• Não encontramos uma solução ótima, pois a terceira linha não apresenta
uma designação válida.
85
9.3 Exercícios
1. (TAHA, 2008) Os três filhos de Joe Klyne – John, Karen e Terri – querem
ganhar algum dinheiro para gastar durante uma excursão da escola. O Sr.
Klyne escolheu três tarefas para seus filhos: 1) cortar grama; 2) pintar a
porta da garagem; e 3) lavar os carros da família. Para evitar concorrência
entre os filhos, ele pediu que cada um apresentasse propostas fechadas do
que fosse considerado um pagamento justo para realizar cada uma das
tarefas. Ficou combinado que os três concordariam com a decisão do pai
sobre quem executaria qual tarefa. A tabela a seguir resume as propostas
recebidas, em $:
Referências
1. TAHA, H. Pesquisa operacional. 8ª. ed. São Paulo: Prentice Hall, 2008.
86
Parte IV
Otimização em redes
10 Introdução a problemas em redes
Aplicações tradicionais
Problemas de otimização em redes incluem algumas aplicações comuns, como
(TAHA, 2008):
Algumas definições
87
Exemplo: N = {1, 2, 3, 4, 5},
A = {(1, 2), (1, 3), (2, 3), (2, 5), (3, 4), (3, 5), (4, 2), (4, 5)}
1 3 5
2 4
Exemplo clássico
Pontes de Königsberg, Prússia
Visitar todas as quatro partes A, B, C e D da cidade (atual Kaliningrado, na
Rússia), voltando ao ponto de partida e passando apenas uma vez por cada uma
das sete pontes (a a g) sobre o Rio Prególia.
88
Representação do problema como uma rede:
A D
Exemplos
• Entrega de uma mercadoria do depósito de uma fábrica até o endereço de
um cliente: Qual o menor caminho a percorrer?
• Pode ser modelado como problema de otimização em redes.
– Nós correspondem às esquinas das ruas – esquinas interligadas por
arestas.
– 2 nós para o depósito (A) e o endereço do cliente (B).
– Qualquer caminho interligando A e B é um caminho real pela cidade.
– Se o peso de cada aresta corresponder à distância entre esquinas, o
comprimento do caminho é a soma dos pesos das arestas entre A e
B.
• (ARENALES, 2006) Vendedor se desloca de São Paulo a Fortaleza para
levar produtos a um cliente importante.
• Ao longo do caminho, visitará outros clientes.
• Se a rede for tal que os nós correspondam às junções das principais ro-
dovias – e as arestas, portanto, aos trechos de rodovia entre dois nós – é
possível definir o peso de cada aresta como sendo o custo líquido esperado
no trecho.
89
• Custo líquido: custo das despesas rodoviárias (combustível, pedágios, ma-
nutenção) menos a comissão esperada no respectivo trecho.
• Algumas arestas podem ter valor negativo, indicando lucro ao invés de
custo.
• O vendedor deve escolher a rota correspondente ao “menor caminho” (me-
nor custo líquido possível) entre os nós correspondentes às duas cidades.
Outras situações podem ser representadas pelo problema do menor cami-
nho.
• (TAHA, 2008): A RentCar está desenvolvendo uma política de reposição
para sua frota de carros, considerando uma projeção de planejamento de
4 anos.
Ao início de cada ano, é tomada uma decisão sobre a conservação em
operação ou a reposição de um carro.
• Um carro deve permanecer em serviço por no mínimo um ano e no máximo
três anos.
• A tabela a seguir dá o custo de reposição em função do ano que o carro
foi adquirido e do número de anos em operação.
9 800
5 400 7 100
8 700
• Menor caminho: 1 → 3 → 5.
90
11.1 Formulação matemática
n
X X
min C = cij xij
i=1 j∈S(i)
sujeito a
X
x1j = 1,
j∈S(1)
X
xin = 1,
j∈P (n)
X X
xij = xjk j = 2, . . . , n − 1
i∈P (j) k∈S(j)
91
• Retornando ao exemplo anterior (da reposição de carros):
sujeito a
x13 = x35 = 1,
x12 = x23 = x24 = · · · = x45 = 0,
C = 5 400 + 7 100 = 12 500
92
• Assim, se ui é a menor distância (ou custo) entre o nó de origem e o nó
i, e cij ≥ 0 é o peso/distância/custo da aresta (i, j), então é definido um
rótulo de um nó imediatamente posterior, j:
– O rótulo do nó inicial é [0, −], já que este não possui nenhum prede-
cessor.
– Os rótulos podem ser temporários – podem ser modificados, se pos-
sível achar rota melhor – ou permanentes.
Exemplo
1 3 5
30 60
100 20 10 50
15
2 4
93
• Iteração 1: Nós 2 e 3 podem ser alcançados pelo nó 1 (último rotulado
permanentemente):
Nó Rótulo Condição
1 [0, −] Permanente
2 [0 + 100, 1] = [100, 1] Temporário
3 [0 + 30, 1] = [30, 1] Temporário
Nó Rótulo Condição
1 [0, −] Permanente
2 [0 + 100, 1] = [100, 1] Temporário
3 [30, 1] Permanente
4 [30 + 10, 3] = [40, 3] Temporário
5 [30 + 60, 3] = [90, 3] Temporário
Nó Rótulo Condição
1 [0, −] Permanente
2 [40 + 15, 4] = [55, 4] Temporário
3 [30, 1] Permanente
4 [40, 3] Permanente
5 [90, 3] ou [40 + 50, 4] = [90, 4] Temporário
94
• O caminho mais curto entre o nó 1 e qualquer outro nó da rede é encon-
trado partindo-se do nó de destino desejado e percorrendo-se a rota no
sentido inverso, usando a informação dos rótulos permanentes.
[30, 1](1)
2 → [55, 4] →
4 → [40, 3] →
3 → [30, 1] →
1
11.3 Exercício
1. 1 e 8;
2. 1 e 6;
3. 2 e 6.
3 4 6
2 1 3 2
2 5 6
1 1 5 8
3 7
1 2 6
2 4 7
5 8
95
11.4 Algoritmo de Floyd
k
dik dkj
i j
dij
Algoritmo
96
Define-se também a matriz de sequência de nós S0 :
− 2
... j ... n
1 − ... j ... n
S0 = . .
.. .. .. ..
.. .. . . . .
1 2 ... j ... −
(
(0) j, i 6= j;
– Ou seja, sij = .
não definido, i = j
Resultado
97
Exemplo
2 4
3 5
4
1 6 5
10 15
• Iteração 0: matrizes D0 e S0 .
− 3 10 ∞ ∞ − 2
3 4 5
3 − ∞ 5 ∞
1 −
3 4 5
D0 =
10 ∞ − 6 15
S0 =
1 2 − 4 5
∞ 5 6 − 4 1 2 3 − 5
∞ ∞ ∞ 4 − 1 2 3 4 −
− 3 10 ∞ ∞ − 2
3 4 5
3 − 13 5 ∞
1 −
1 4 5
D1 =
10 13 − 6 15
S1 =
1 1 − 4 5
∞ 5 6 − 4 1 2 3 − 5
∞ ∞ ∞ 4 − 1 2 3 4 −
98
• Iteração 2: k = 2 ⇒ Linha pivô 2 e coluna pivô 2 (sombreadas em D1 ).
Nas operações triplas, os únicos elementos atualizados são d14 e d41 (desta-
cados em D1 e S1 ). Logo, de forma análoga à iteração anterior, obtém-se:
− 3 10 8 ∞ − 2
3 2 5
3 − 13 5 ∞
1 −
1 4 5
D2 =
10 13 − 6 15
S2 =
1 1 − 4 5
8 5 6 − 4 2 2 3 − 5
∞ ∞ ∞ 4 − 1 2 3 4 −
− 3 10 − 2
8 25 3 2 3
3 − 13 5 28
1 −
1 4 3
D3 =
10 13 − 6 15
S3 =
1 1 − 4 5
8 5 6 − 4 2 2 3 − 5
∞ ∞ ∞ 4 − 1 2 3 4 −
− − 2
3 10 8 12 3 2 4
3 − 11 5 9
1 −
4 4 4
D4 =
10 11 − 6 10
S4 =
1 4 − 4 4
8 5 6 − 4 2 2 3 − 5
12 9 10 4 − 4 4 4 4 −
99
(4)
1. Como s15 = 4 6= 5, a rota inicialmente é dada como 1 → 4 → 5.
(4)
2. Como s14 = 2 6= 4, o segmento (1, 4) não é uma conexão direta
entre 1 e 4, e a rota agora se torna 1 → 2 → 4 → 5.
(4) (4) (4)
3. Como s12 = 2, s24 = 4 e s45 = 5, nenhum desmembramento é
desnecessário e portanto 1 → 2 → 4 → 5 é o caminho ótimo.
11.5 Exercícios
(a) Do nó 5 ao nó 1;
(b) Do nó 3 ao nó 5;
(c) Do nó 5 ao nó 3;
(d) Do nó 5 ao nó 2;
2 400
700 200 6
100
1 300 4
200 700 300 500
600 5
3
Referências
100
12 Problema do fluxo máximo
• Outro problema bastante comum que pode ser modelado por grafos;
Exemplos
1 4 7
3 6 8
Origem Destino
2 5 9
101
Representação do fluxo
• Dada uma aresta (i, j), com i < j, pode-se usar a notação
(C̄ij , C̄ji )
C̄ij C̄ji
i j
Cortes
Corte
Conjunto de arestas que, se eliminado do grafo, causa um rompimento total do
fluxo entre o nó de origem e o nó de destino.
Exemplo
102
• Capacidades dos cortes representados:
• Pelos cortes ilustrados, conclui-se que o fluxo máximo da rede não pode
exceder 60 unidades.
• Para determinar o fluxo máximo, entretanto, todos os cortes precisam ser
encontrados.
Exercício
Encontre no grafo anterior 2 cortes adicionais, e determine sua capacidade.
max y
sujeito a
X X
x1j − xk1 = y, nó de origem 1
j∈S(1) k∈P (1)
X X
xij = xki , i = 2, . . . , n − 1
j∈S(i) k∈P (i)
X X
xnj − xkn = −y, nó de destino n
j∈S(n) k∈P (n)
• Isto é, deseja-se determinar xij para toda (i, j) ∈ A que maximize o fluxo
entre origem e destino.
103
• Reescrevendo-se as restrições técnicas, com as variáveis do lado esquerdo:
X X
x1j − xk1 − y = 0,
j∈S(1) k∈P (1)
X X
xij − xki = 0, i = 2, . . . , n − 1
j∈S(i) k∈P (i)
X X
xnj − xkn + y = 0,
j∈S(n) k∈P (n)
Aresta de retorno
max xn1
sujeito a
X X
xij − xki = 0, i = 1, . . . , n
j∈S(i) k∈P (i)
Exemplo
0 4
20
10 5
1 30 0
0 20 0 5
0
10 C̄51
0 30 0 20
2 40
0 3
104
Modelagem do problema de fluxo máximo:
0 ≤ x12 ≤ 20
max x51
0 ≤ x13 ≤ 30
0 ≤ x14 ≤ 10
sujeito a 0 ≤ x23 ≤ 40
0 ≤ x25 ≤ 30
x12 + x13 + x14 − x51 = 0 0 ≤ x34 ≤ 10
x23 + x25 − x12 = 0 0 ≤ x35 ≤ 20
x34 + x35 − x13 − x23 − x43 = 0 0 ≤ x43 ≤ 5
x43 + x45 − x14 − x34 = 0 0 ≤ x45 ≤ 20
x51 − x25 − x35 − x45 = 0 0 ≤ x51 ≤ C̄51
Formulação alternativa
• Por exemplo, numa aresta (i, j) com capacidade inicial (C̄ij , C̄ji ) (a má-
xima), quando parte desta capacidade é usada numa rota de escoamento,
temos uma capacidade residual (cij , cji ).
– À medida que as arestas são reutilizadas, os valores cij , cji são atua-
lizados.
• Rótulos: quando um nó j recebe um fluxo aj de algum nó i ∈ P (j),
definimos um rótulo ao mesmo,
[aj , i],
Etapas (do nó 1 ao nó n)
Etapa 1 : Para cada aresta (i, j), iguale à capacidade residual à inicial:
Ou seja, qual dos sucessores permite a passagem com maior fluxo possível.
Determine ak = cik e rotule o nó k com [ak , i].
106
• Se k = n, o nó destino foi rotulado, portanto uma rota de passagem foi
obtida. Siga para a etapa 5.
• Caso contrário, faça i = k e retorne à etapa 2.
Etapa 6 : (Solução).
107
Ajuste da etapa 5
[5, 1] [5, 3]
2 2 2 0
0 55 5 05 5 5
5 0 [5, 3] 0 0 [5, 2] 0 5
[∞, −] 1 5 4 [∞, −] 1 5 4 1 0 4
00 0 05 5 50 5
3 5 3 0 3 0
[5, 2] [5, 1]
Rota: 1 → 2 → 3 → 4 Rota: 1 → 3 → 2 → 4 Nenhuma rota
f1 = 5 f2 = 5 de passagem
(a) (b) (c)
Exemplo
0 4
20
10 5
1 30 0
20 0 5
10 0
0 30 0 20
2 3
40 0
108
Iteração 1
Inicialmente, iguale as capacidades residuais iniciais às capacidades iniciais
(C̄ij , C̄ji ) de cada aresta.
Este passo somente é feito antes da iteração 1 (primeira rota).
5 → [20, 3] →
3 → [30, 1] →
1
0 4
20
10 5
[∞, −] 1 30 0
20 f1 = 20
0 5 [20, 3]
10 0
0 30 0 20
2 3 [30, 1]
40 0
109
Iteração 2
[10, 3]
0 4
20
10 5
[∞, −] 1 10 0
20 f2 = 10
0 5 [20, 4]
10 20
0 30 20 0
[20, 1] 2 3 [40, 2]
40 0
110
Iteração 3
0 4
10
10 15
[∞, −] 1 10 10
10 f3 = 10
0 5 [30, 2]
0 20
10 30 20 0
[10, 1] 2 3 X[30,
X
2]
30 10 X
111
Iterações 4 a 6
Exercício
Encontre as rotas N4 e N5 (ambas com fluxo 10)5 .
Iteração 6: Todas as arestas partindo do nó 1 têm residual 0.
Portanto, todas as rotas possíveis foram encontradas. Passa-se à Etapa 6
F = f1 + f2 + · · · + f5 = 20 + 10 + 10 + 10 + 10 = 60
12.3 Exercícios
Referências
112