Pesquisa Operacional 20201
Pesquisa Operacional 20201
Sumário
1 Introdução 4
1.1 Definição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Metodologia da Pesquisa Operacional . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Desenvolvimento de um modelo matemático e aquisição dos dados . . 5
1.2.3 Resolução do modelo matemático . . . . . . . . . . . . . . . . . . . . 5
1.2.4 Validação, instrumentação e controle da solução . . . . . . . . . . . . 5
1.3 Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Áreas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Programação Linear 6
2.1 Exemplos de problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Exercı́cios Complementares . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Análise Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 Procedimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.3 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Exercı́cios Complementares . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 O problema de Programação linear . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.1 Formulação Genérica . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.2 Interpretação Econômica . . . . . . . . . . . . . . . . . . . . . . . . . 20
3 O Método do Simplexo 21
3.1 Algoritmo Simplexo - Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Exercı́cios Complementares . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4 Problemas Especiais de Formulação . . . . . . . . . . . . . . . . . . . . . . . 25
3.4.1 Formulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4.2 Dificuldades Durante a Solução pelo Método do Simplexo . . . . . . . 25
3.5 Método do Simplexo - Fase I/Fase II . . . . . . . . . . . . . . . . . . . . . . 26
3.5.1 Procedimento para a Fase I . . . . . . . . . . . . . . . . . . . . . . . 26
3.5.2 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5.3 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5.4 Exercı́cios complementares . . . . . . . . . . . . . . . . . . . . . . . . 28
1
2
4 Análise de Sensibilidade 29
4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2.1 Variação na Função Objetivo . . . . . . . . . . . . . . . . . . . . . . 29
4.2.2 Variação na Quantidade de Recursos Escassos . . . . . . . . . . . . . 30
4.2.3 Preço Sombra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Exercı́cio - Problema - Alocação de Recursos . . . . . . . . . . . . . . . . . . 32
4.4 Exercı́cios complementares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5 Solver 35
5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6 O problema Dual 38
6.1 Caracterização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.2 Explicação econômica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.3 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.4 Exercı́cio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8 Programação Inteira 62
8.1 Tipos de problemas de programação inteira (PI) . . . . . . . . . . . . . . . . 62
8.2 Programação Inteira e Programação Linear (PL) . . . . . . . . . . . . . . . . 62
8.3 Abordagem para solução de problemas de PI . . . . . . . . . . . . . . . . . . 62
8.4 Método Branch-and-Bound para solução de problemas PIs puros . . . . . . . 62
8.5 Aspectos importantes do Branch-and-bound p/ PIs puros . . . . . . . . . . . 66
8.6 Método Branch-and-Bound para solução de PIs mistos . . . . . . . . . . . . 67
8.7 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.8 Exemplo Branch-and-Bound em problemas de sequenciamento de trabalhos
em máquinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.9 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 3
9 Programação Dinâmica 72
9.1 Caracterização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.2 Aplicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.3 Problema de viagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.4 Problema de estoque (produção discreta) . . . . . . . . . . . . . . . . . . . . 74
10 Provas anteriores 76
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 4
1 Introdução
1.1 Definição
É uma metodologia de estruturar processos aparentemente não estruturados por meio da
construção de modelos. Utiliza um conjunto de técnicas quantitativsas com o intuito de
resolver os aspectos matemáticos dos modelos. (Pierre Jacques Ehrlich)
Aplicação do Método Cientı́fico, por equipes interdisciplinares a problemas que dizem res-
peito ao controle de seistema organizados (homem-máquina), com a finalidade de obter as
soluções que melhor satisfaçãm aos objetivos da organização, como um todo. (João Vitor
Moccelin)
Definição do
Problema
?
Desenvolvimento de um Resolução do
modelo matemático e - modelo - Solução
aquisição dos dados matemático
6 ?
Q
Q
Q
Modificações no não
Solução QQ
QQ válida?
modelo Q
Q
Q
sim
?
Implementação
Comprender;
Descrever.
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 5
Função Objetivo;
Restrições.
Métodos Heurı́sticos;
Métodos Metaheurı́sticos.
1.3 Aplicação
Aplica-se na seleção de alternativas, buscando a maximização do lucro ou minimização de
custo (geralmente).
1.3.1 Áreas
Processos de produção
Finanças
1.3.2 Ferramentas
Matemática;
Análise de sistemas;
Estatı́stica.
1.4 Exercı́cios
1) Responda: O que é Pesquisa Operacional? (2014)
3) A solução dos modelos de pesquisa operacional pode ser feito com métodos ótimos e
heurı́sticos. Uma classe dos métodos heurı́sticos são os metaheurı́sticos. Entre eles
alguns são baseados em processos naturais. Dessa maneira, marque os dois processos
naturais que forneceram base teórica para metaheurı́sticas: (2014)
Bando de Tatu Bola e Bando de Quatis.
Colônia de Formigas e Colônia Artificial de Abelhas.
Colônia de Formigas e o Método Construtivo do João de Barro.
Colônia Artificial de Abelhas e o Método Construtivo do João de Barro.
Colônia de Cupins e o Método Construtivo do João de Barro.
2 Programação Linear
2.1 Exemplos de problemas
1) Um fabricante deseja maximizar a receita bruta. A tabela ilustra as composições das
ligas metálicas, seus preços e as limitações na disponibilidade de matéria prima.
Função Objetivo
Maximizar Z= 30.xa + 50.xb
Restrições
Sujeito A 2xa + xb ≤ 16 (para o cobre)
xa + 2.xb ≤ 11 (para o zinco)
xa + 3.xb ≤ 15 (para o chumbo)
Restrições de não xa ≥ 0
Negatividade xb ≥ 0
(Não podemos fabricar quantidade negativa de liga)
2) Um fazendeiro tem que decidir o quanto vai plantar de milho e de alfafa para maximizar
o lucro. Os lucros são de R$ 2.000 por alqueire de milho e de R$ 1.000 por alqueire
de alfafa. Suponha que suas limitações sejam: terra disponı́vel = 8 alqueires; água
disponı́vel para irrigação = 80.000 litros; deseja plantar no máximo 4 alqueires de
milho; cada alqueire de milho requererá 10.000 litros de água para irrigação; cada
alqueire de alfafa requererá 20.000 litros de água para irrigação.
4) Uma fábrica utiliza dois tipos de insumos: - A a um custo unitário CA e com uma
quantidade máxima disponı́vel NA .
- B a um custo unitário CB e com uma quantidade máxima disponı́vel NB .
Esses insumos podem ser processados pelos Processos I, II ou III a um custo operacional
nulo. Serão produzidos os produtos α, β, γ, que alcançaram preços de venda Pα ,
Pβ , Pγ , respectivamente (preços unitários).
- Uma unidade de A processada em I produz, simultaneamente 5α e 1γ;
- Uma unidade de A junto com duas unidades de B conjuntamente processadas em II
produz, simultaneamente 3α, 9β e 8γ;
- Uma unidade de B processada em III produz simultaneamente 1α, 4β, 1γ.
Formule o problema como programação linear de modo a maximizar o lucro.
5) Um jovem estava saindo com duas namoradas: Maria e Luı́sa. Sabe, por experiência,
que:
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 8
(a) Maria, elegante, gosta de freqüentar lugares sofisticados, mais caros, de modo que
uma saı́da de três horas custará 80 reais;
(b) Luı́sa, mais simples, prefere um divertimento mais popular, de modo que, uma
saı́da de três horas custará 55 reais;
(c) seu orçamento permite dispor de 330 reais mensais para diversão;
(d) seus afazeres escolares lhe dão liberdade de, no máximo, 18 horas e 40.000 calorias
de sua energia para atividades sociais;
(e) cada saı́da com Maria consome 5.000 calorias, mas com Luı́sa, mais alegre e
extrovertida, gasta o dobro;
(f) ele gosta das duas com a mesma intensidade.
Como deve planejar sua vida social para obter o número máximo de saı́das? Formule
o problema.
Horário Quantidade de
motoristas
1 ás 5 horas 15
5 ás 9 horas 30
9 ás 13 horas 26
13 ás 17 horas 32
17 ás 21 horas 30
21 ás 1 horas 19
Considerando que cada motorista trabalha 8 horas seguidas e que o serviço pode ser
iniciado ás 1, 5, 9, 13, 17 ou 21 horas, elaborar um plano de trabalho para os motoristas,
de modo que o número destes seja mı́nimo.
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 9
Além disso, são conhecidos os custos unitários dos recursos, conforme mostra
a Tabela ??.
Conhecendo os preços de venda dos produtos, pode-se calcular a contribuição
Obs.: Mão-de-Obra: Custo horário próprio, encargos e custo de operação das máquinas (R$ /H.h).
Madeira: Custo por m2 (R$ /m2 ).
unitária (preço de venda menos custos variáveis de produção) de cada um, conforme
mostra a Tabela ??.
8) Uma empresa tem três tipos de máquinas na sua linha de produção, tendo cada uma
delas velocidade e precisão diferente. A máquina do tipo 1 produz 20 peças por hora
com 99% de precisão. A máquina do tipo 2 produz 15 peças por hora com 95% de
precisão. E a máquina do tipo 3 produz 10 peças por hora com 100% de precisão. A
máquina do tipo 1 custa R$ 2,00 por hora de operação, o tipo 2 custa R$ 1,75 por
hora de operação e o tipo 3 custa R$ 1,50 por hora de operação. A empresa possui 15
operadores fixos disponı́veis para as máquinas 1 e 2, e todos devem ser utilizados, os
outros serão contratados temporariamente. Devem ser processados por dia pelo menos
3.500 peças (dia de 8 horas), mas só se dispõe de 8 máquinas do tipo 1, dez máquinas
do tipo 2 e 20 máquinas do tipo 3. Cada peça errada custa R$ 1,00.
Pergunta-se:
(a) Quantas máquinas de cada tipo devem ser usadas para minimizar o custo.
W
R$ 5
?
X - A - C - D -
R$ 20 15 min 10 min 15 min P
6
Y - B - C
R$ 20 15 min 5 min
?
Z - A - B - D -
R$ 20 10 min 15 min 5 min
Q
despesas operacionais.
Modelo
A B C
Mão-de-obra (horas por unidade) 5 4 6
Materiais (g/ unidade produzida) 3 5 5
Lucro (R$ / unidade) 4 2 3
4) Uma empresa possui três celulas de produção, C1, C2 e C3, que trabalham por bate-
lada. Cada batelada da C1 consome 12 kg de matéria-prima, 4 h de mão-de-obra e
25 kwh de energia para produzir 22 peças P1 e 12 peças P2. Da mesma maneira, C2
consome 14 kg de matéria-prima, 2 h de mão-de-obra e 35 kwh de energia para pro-
duzir 15 peças P3 e 15 peças P2. Além disso, a C3 consome 20 kg de matéria-prima,
4 h de mão-de-obra e 25 kwh de energia para produzir 25 peças P3. As peças são
vendidas por R$ 20,0, R$ 25,0 e R$ 30,0, respectivamente P1, P2 e P3. Numa semana
são disponı́veis 450 kg de matéria-prima, 120 h de mão-de-obra e 600 kwh de energia.
A demanda semanal de P1 é no máximo 500 unidades e a demanda de P2 é sempre
maior que duas vezes a demanda de P3. Formular maximizando a receita semanal.
5) Uma fábrica utiliza nas suas instalações carvão mineral (CM), carvão vegetal (CV) e
energia elétrica (EE). Cada unidade de energia (UNE) baseada em CM custa R$ 12,5,
assim como cada UNE baseada em CV custa R$ 10,5 e cada UNE baseada em EE
custa R$ 15,0. Para a produção mensal é necessário 2.000 UNE. Existem a disponibi-
lidade de 1000 UNECM, 800 UNECV e 3000 UNEEE. Nos processos que se utilizam
UNECV necessariamente se utiliza no mı́nimo metade de UNEEE juntamente. Devido
as polı́ticas ambientais vigentes não se pode utilizar mais do que 1200 UNE baseadas
em carvão mineral ou carvão vegetal.
Modelar usando a programação linear para obter um custo mı́nimo no consumo de
engergia.
Recurso/Produto P Q Z X
Recurso A 20 min 40 min 10 min 30 min
Recurso B 60 min 50 min Não usa 40 min
7) Uma fábrica produz nas suas instalações mesas, cadeiras e bancos. Cada mesa é vendida
por R$ 350, assim como cada cadeira é vendida por R$ 120 e cada banco é vendido
por R$ 60. Para se produzir cada banco é necessário 0,5 m2 de madeira, 10 conectores
e 2 horas de trabalho. Para a mesa é necessário 3 m2 de madeira, 12 conectores e 12
horas de trabalho e para a cadeira é necessário 4 horas de trabalho, 1 m2 de madeira
e 10 conectores.
Existem a disponibilidade de 300 m2 de madeira, 2000 conectores e 800 horas de
trabalho. Além disso, deseja-se fabricar no máximo 20 bancos e um número de cadeiras
igual ou maior a 4 vezes o número de mesas.
Modelar usando a programação linear para obter um lucro máximo.
8) Uma célula de produção com 4 postos de trabalho (1 operador por posto, op1, op2,
op3 e op4) produz três produtos (p1, p2, p3 e p4). Cada operador absorve uma
carga de trabalho de no máximo 80 horas. O produto 1 consome 2; 3; 4; e 3 horas,
respectivamente, operadores op1 a op4. O produto 2 consome 2; 2; 1; e 2 horas,
respectivamente, operadores op1 a op4. O produto 3 consome 3; 2; 2; e 2 horas,
respectivamente, operadores op1 a op4. O produto 4 consome 1; 1; 2; e 2 horas,
respectivamente, operadores op1 a op4. Modelar utilizando da melhor maneira a carga
de trabalho de cada operador. (2015)
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 15
2.3.1 Procedimentos
O gráfico é feito usando-se um eixo para cada variável de decisão. Todas as restrições devem
ser representadas graficamente.
Cada inequação vai dividir o espaço em duas regiões. A Região de Aceitação é o espaço de
respostas para todas as restrições simultaneamente. Quando não existe região de aceitação,
o problema não tem resposta.
Na Programação Linear, onde a função objetivo é um plano, os pontos que maximizam
ou minimizam estão na fronteira da região de aceitação. Portanto a busca pelo Ponto Ótimo,
aquele que maximiza ou minimiza a função objetivo, é feita pesquisando-se os vértices da
região de aceitação.
Definido o ponto ótimo, podemos definir as Folgas, o quanto sobra de recurso escasso em
cada restrição quando o nı́vel de produção (ponto ótimo) é utilizado.
2.3.2 Exemplo
Max. Z= 30.xa + 50.xb
Sujeito A 2xa + xb ≤ 16 (para o cobre)
xa + 2.xb ≤ 11 (para o zinco)
xa + 3.xb ≤ 15 (para o chumbo)
xa ≥ 0
xb ≥ 0
A solução gráfica indica uma região de aceitação com cinco vértices. O vértice que produz
o máximo valor (ponto ótimo) é aquele formado pela interseção da fronteira da restrição para
o cobre e para o zinco (conforme a Fig. 3).
Com a
2.3.3 Exercı́cios
1) Resolva graficamente, mostrando a região de pontos viáveis (região de aceitação), in-
dicando o ponto ótimo.
Max. Z= −10.x + 15.y
Sujeito A x + y ≤ 12
2.x + 5.y ≤ 40
x≥2
x≤8
y≥1
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 16
xa
zinco 15 chumbo
ponto ótimo
10
cobre
5
região de aceitação
0
0 5 10 15 xb
3) Resolva graficamente
Min. Z= −x1 + 2.x2
Sujeito A −x1 + x2 ≤ 1
6.x1 + 4.x2 ≤ 24
x1 ≥ 0
x2 ≥ 2
4) Resolva graficamente
Min. Z= 2.x1 + x2
Sujeito A 4.x1 − 5.x2 ≤ 40
5.x1 + 8.x2 ≤ 40
9.x1 − 6.x2 ≥ 0
x1 ≥ 0
x2 ≥ 2
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 17
(D) x1 = 4 e x2 = 0
(E) x1 = 5 e x2 = 0
x1
10
região de aceitação 4
0
0 1 2 3 4 5 6 7 8 9 10 x2
Programação Linear é uma ferramenta de planejamento que nos ajuda a selecionar que
atividades (variáveis de decisão) empreender, dado que essas atividades (diversas alternati-
vas) competem entre si pela utilização de recursos escassos (restrições) ou então precisam
satisfazer certos requisitos mı́nimos. O objetivo será maximizar (ou minimizar) uma função
das atividades, geralmente lucros (perdas).
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 20
Função Objetivo
Maximizar Z= c1 .x1 + c2 .x2 + . . . + cn .xn
Restrições Principais {
≤
Sujeito A a11 .x1 + a12 .x2 + . . . + a1n .xn b1
{ ≥
≤
a21 .x1 + a22 .x2 + . . . + a2n .xn b
≥ 2
......... {
≤
am1 .x1 + am2 .x2 + . . . + amn .xn b
≥ m
onde bi ≥ 0 para i=1,. . ., m
3 O Método do Simplexo
O Método do simplexo é um algoritmo iterativo convergente, que pesquisa os vértices do
poliedro de restrições, passando, em cada iteração f de um vértice para outro vértice com
valor associada não pior que o anterior. Em um número finito de iterações, o algoritmo
fornece.
- A solução ótima
- A indicação da inexistência da solução
O Método do Simplexo explora o fato de o máximo, ou o mı́nimo da função objetiva, ocorrer
num vértice do poliedro convexo de restrições.
Atividades Folgas
x1 x2 y1 y2 y3 b
1o Tableau 16
2 1 1 0 0 16 1
11
1 2 0 1 0 11 2
1 3
0 0 1 15 15
3
-30 -50 0 0 0 0 6
@
I menor relação
@ mais negativo
Procedimento:
4) Repita as etapas 1,2,3 até que não haja mais valores negativos na última linha c.
Atividades Folgas
x1 x2 y1 y2 y3 b
2o Tableau
5/3
0 1 0 −1/3 11
1/3 0 0 1 −2/3 1
1/3 1 0 0 1/3 5
−40/3 0 0 0 50/3 250
Atividades Folgas
x1 x2 y1 y2 y3 b
3o Tableau
0 0 1 -5 3
6
1 0 0 3 −2 3
0 1 0 -1 1 4
0 0 0 40 −10 290
Atividades Folgas
x1 x2 y1 y2 y3 b
4o Tableau
0 0 1/3 -5/3 1 2
1 0 2/3 -1/3 0 7
0 1 -1/3 2/3 0 2
0 0 10/3 70/3 0 310
Resultados
Z = 310
x1 = 7
x2 = 2
x3 = 0
y1 = 0
y2 = 0
y3 = 2
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 23
3.2 Exercı́cios
1) Resolva pelo Simplexo:
Max. Z= 2.x1 + x2
Sujeito A x1 + x2 ≤ 5
x1 + 2.x2 ≤ 8
x1 ≤ 4
x1 ≥ 0
x2 ≥ 0
Resultados: Zmáx.= 9; x1 = 4; x2 = 1; x3 = 0; x4 = 2; x5 = 0
Max. Z = 3x1 + x2
S.A.
x1 − x2 ≤ 4
x1 ≤ 7
x1 + x2 ≤ 12
x2 ≤ 10
−5x1 + x2 ≤ 5
x1 ≥ 0
x2 ≥ 0
Resultados: Zmáx.= 26; x1 = 7; x2 = 5; x3 = 2; x4 = 0; x5 = 0; x6 = 5; x7 = 35
x1 ≥ 0
x2 ≥ 0
Resultados: Zmáx.= 25; x1 = 7; x2 = 4; x3 = 2; x4 = 0; x5 = 0; x6 = 5
x1 ≥ 0
x2 ≥ 0
Resultados: Zmáx.= 17; x1 = 3; x2 = 7; x3 = 5; x4 = 0; x5 = 0; x6 = 1
2) xj livre:
Uma variável é livre quando não tem condições de não negatividade.
Resolve-se introduzindo as variáveis xj ′ e xj ′′.
Com
xj = xj ′ − xj ′′xj ′ ≥ 0xj ′′ ≥ 0 (1)
E resolvendo o problema nas novas variáveis.
Exemplo
Max. Z= 4.x1 + x2 + 3.x3
Sujeito A x1 − 2.x2 + x3 = 20
x1 + 5.x2 − 2.x3 ≤ 50
x1 ≥ 0
x2 ≥ 0
x3 livre
gido. Não podemos, entretanto, garantir, a priori, qual a melhor escolha do ponto de
vista de terminar o problema em um menor número de iterações.
Primeiro Tableau
x1 x2 x3 x4 x5 b
1 0 1 0 0 4
0 1 0 1 0 6
3 2 0 0 1 12
-3 -5 0 0 0 0
A Fase I encontrará (se possı́vel) a solução inicial e a Fase II termina de otimizar o va-
lor da função objetiva.
Se a Fase I não encontrar uma solução inicial, poderemos concluir que não existe solução.
4) Aplique o algoritmo simplexo, tomando como base de decisão para quem deve entrar
na base a linha W.
5) Quando a Fase I terminar, ou seja, quando na linha W não mais tiver números nega-
tivos, e a coluna b estiver zerada, a Fase I teve sucesso.
3.5.2 Exemplo
Max. Z= −x1 − 6.x2 + 7.x3 − x4 − 5.x5
Sujeito A 5.x1 − 4.x2 + 13.x3 − 2.x4 + x5 ≥ 20
x1 − x2 + x3 − x4 + x5 = 8
2.x1 + x2 − x3 + 4.x4 ≤ 15
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0
x4 ≥ 0
x5 ≥ 0
x1 x2 x3 x4 x5 x6 x7 y1 y2 b
5 -4 +13 -2 1 -1 0 1 0 20
1 -1 1 -1 1 0 0 0 1 8
Primeiro Tableau - Fase I
2 1 -1 4 0 0 1 0 0 15
1 6 -7 1 5 0 0 0 0 0
-6 5 -14 3 -2 1 0 0 0 -28
3.5.3 Exercı́cios
1) Resolva pelo Simplexo Fase I/Fase II:
Max. Z= 2.x1 + x2 + x3
Sujeito A 3.x1 + 4.x2 + x3 = 5
x1 + x2 + 2.x3 = 3
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 28
x1 ≥ 0
x2 ≥ 0
x1 ≥ 0
x2 ≥ 0
4 Análise de Sensibilidade
4.1 Introdução
A resposta final de um problema de Programação Linear, muitas vezes, tem valor limitada.
Além da simples resposta do valor das variáveis, devemos saber o que acontece com elas,
se existir variações nos coeficientes dados no problema original.
Muitas vezes queremos saber, quanto podemos variar nos coeficientes da função objetiva
e na quantidade de recursos escassos de maneira que aquela resposta final otimizada (as
alternativas que devemos usar) não será modificada.
4.2 Exemplo
x1 x2 x3 x4 x5 x6 x7 b
1 1 1 1 1 0 0 35
Primeiro Tableau 1 4 2 2 0 1 0 80
2 3 6 1 0 0 1 90
-5 -4 -6 8 0 0 0 0
x1 x2 x3 x4 x5 x6 x7 b
1 3/4 0 5/4 3/2 0 -1/4 30
Último Tableau 0 11/4 0 5/4 -1/2 1 -1/4 40
0 1/4 1 -1/4 -1/2 0 1/4 5
0 5/4 0 51/4 9/2 0 1/4 180
No último Tableau, na linha de custo reduzido, podemos notar valores positivos para
as variáveis não básicas (x2 e x4 ). Se estes valores fossem negativos, o processo de
otimização continuaria, e estas variáveis seriam candidatas a entrar na base.
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 30
Para que isto aconteça, basta aumentar o valor inicial do coeficiente cj , exatamente no
valor encontrado no último Tableau.
Se o recurso escasso tem folga, um aumento na sua quantidade só vai aumentar o
valor final da folga. Portanto, não existe limite para acréscimo.
Se o recurso escasso tem folga, o limite para decréscimo na sua quantidade é a própria
folga.
Disponibilidade de Recursos
mão-de-obra: 3520 H.h. por mês
estoque de madeira: 10.000 m2 por mês
Processo de Fabricação
e Alocação Inicial de Mão-De-Obra
a) Corte ⇒ 704 H.h. d) Pintura ⇒ 528 H.h.
b) Preparação ⇒ 1232 H.h.
c) Montagem ⇒ 704 H.h. e) Embalagem ⇒ 352 H.h.
Contribuição Unitária
Modelagem
Variáveis de Decisão
x1 = número de conjuntos ALFA
x2 = número de conjuntos BETA
x3 = número de conjuntos GAMA
Primeiro Tableau
1 0,350 0,400 0,300 1,000 0,000 0,000 0,000 0,000 0,000 704,000
2 0,450 0,300 0,400 0,000 1,000 0,000 0,000 0,000 0,000 1232,000
3 0,350 0,350 0,400 0,000 0,000 1,000 0,000 0,000 0,000 704,000
4 0,350 0,450 0,200 0,000 0,000 0,000 1,000 0,000 0,000 528,000
5 0,070 0,110 0,040 0,000 0,000 0,000 0,000 1,000 0,000 352,000
6 3,000 4,500 6,000 0,000 0,000 0,000 0,000 0,000 1,000 10000,000
Z -19,000 -20,000 -23,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000
Último Tableau
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 34
1 0,000 0,000 0,000 1,000 0,000 -0,500 -0,500 0,000 -0,000 88,000
2 0,000 0,000 0,000 0,000 1,000 -2,308 0,385 0,000 0,074 554,051
3 1,000 0,000 0,000 0,000 0,000 9,231 -1,539 0,000 -0,564 45,129
4 0,000 1,000 0,000 0,000 0,000 -7,692 4,615 0,000 0,359 611,282
5 0,000 0,000 0,000 0,000 0,000 0,154 -0,292 1,000 -0,007 234,174
6 0,000 0,000 1,000 0,000 0,000 1,154 -2,692 0,000 0,179 1185,641
Z 0,000 0,000 0,000 0,000 0,000 48,077 1,154 0,000 0,590 40352,820
5 Solver
5.1 Introdução
O Solver é um módulo do Excel que permite-nos de uma forma muito simples e rápida
obter soluções para problemas de programação linear.
5.2 Exemplo
Como exemplo, vamos resolver o exercı́cio envolvendo a companhia ALT-M que produz
móveis de escritório que, por questões de marketing, agrupou em três conjuntos básicos
cujos modelos são: ALFA, BETA E GAMA. Exercı́cio resolvido e analisado em sala.
Em geral o módulo Solver não está disponı́vel no arranque do Excel. Devemos ativá-lo
no menu Ferramentas - Suplementos. Para rodar o módulo Solver selecione a função
Solver no menu Ferramentas.
Organize as informações pertinentes da melhor forma possı́vel em uma planilha.
(Exemplo: última folha).
rode o Solver
no parâmetro Definir célula destino (conforme figura acima) coloque a célula reser-
vada para o Z ($E$18).
aplique Resolver
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 37
6 O problema Dual
6.1 Caracterização
Os problemas de programação linear postos na forma padrão (Primal) admitem um pro-
blema paralelo chamado Dual.
As condições para o ponto ótimo são as mesmas, tanto para o problema Primal quanto
para o Dual. Ou seja, os dois problemas têm a mesma solução.
Se o Primal é de maximização o Dual é de minimização, ou vice-versa. Cada variável no
Primal é equivalente a uma restrição no problema Dual e vice-versa.
Primal
∑
n
Max. Z= cj xj
∑ j=1
Sujeito A aij xj ≤ bi (i = 1, . . . , m)
xj ≥ 0 ∀ i
Onde o objetivo é maximizar o lucro (Z) considerando as variáveis de decisão (xj ) como
sendo a quantidade de cada tipo de máquina considerando seu lucro unitário (cj ).
O problema Dual representaria a opção de venda das máquinas:
Dual
∑
m
Min. L= bi y i
∑ i=1
Sujeito A aij yj ≥ cj (j = 1, . . . , n)
yj ≥ 0 ∀ i
L é o preço mı́nimo de venda das máquinas, igual ao lucro máximo (Z) obtido na produção
com elas.
Notar a inversão dos coeficientes da função objetivo (cj ) com as quantidades de recursos
escassos (bj ) entre Primal e Dual, e a manutenção dos coeficientes tecnológicos (aij ) nos dois
problemas.
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 39
6.3 Exemplos
Max. Z = 4x1 + x2
Sujeito A 9x1 + x2 ≤ 18
Primal 3x1 + x2 ≤ 12
x1 ≥ 0
x2 ≥ 0
Solução:
Primal
Último tableau
Primeito tableau
1,0 0,0 1/6 -1/6 1,0
9,0 1,0 1,0 0,0 18,0
3,0 1,0 0,0 1,0 12,0 0,0 1,0 -1/2 3/2 9,0
-4,0 -1,0 0,0 0,0 0,0 0,0 0,0 1/6 5/6 13,0
Dual
Primeito tableau Último tableau
9,0 3,0 -1,0 0,0 1,0 0,0 4,0 1,0 0,0 -1/6 1/2 1/6
1,0 1,0 0,0 -1,0 0,0 1,0 1,0
0,0 1,0 1/6 -3/2 5/6
18,0 12,0 0,0 0,0 0,0 0,0 0,0
-10,0 -4,0 1,0 1,0 0,0 0,0 -5,0 0,0 0,0 1,0 9,0 -13,0
Nos detalhes:
valor das variáveis do Primal são iguais aos valores dos preços sombras para as variáveis
correspondentes no Dual e vice-versa.
6.4 Exercı́cio
1) Resolver aplicando o método simplexo (2015)
Min. Z = 3 x1 + 2 x2 + x3
{
3 x1 − x2 + 2 x3 ≥ 8
Sujeito A
2 x1 + x2 + 3 x3 ≥ 12
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 41
7.1 Caracterização
As redes de precedência são uma maneira de representar graficamente a seqüência de ativida-
des de um projeto, obedecendo sua ordem temporal e as restrições de precedência. Existem
diversas técnicas para elaboração dessas redes. As mais conhecidas são PERT (Program
Evaluatiom and Review Technique) e CPM (Critical Path Method ), entre outras tais como
P-PERT, PERT-Custo, GERT, PDM e Corrente Crı́tica.
PERT - Desenvolvido pela marinha Americana para o planejamento e controle do Pro-
grama do Mı́ssil Polaris. A ênfase foi completar o programa em menor tempo possı́vel.
7.2 Redes
As redes são graficadas a partir de dois elementos: as atividades, representadas por setas,
que consomem tempo; e os eventos, representados por cı́rculos, marcando o inı́cio ou término
de uma ou mais atividades.
?
'$ ? ?
'$
A -
1 2
&%4h &%
6
tempo
7.3 Caminho Crı́tico
O caminho crı́tico de uma rede de precedência é a seqüência de atividades, entre o primeiro
e o último evento, que consome maior tempo. Ou seja, é o mı́nimo tempo que o projeto vai
demandar, se não houver atrasos na execução dessas atividades crı́ticas.
Exemplo: Num projeto de lançamento de um novo produto foi programado, com base
na rede PERT acima, o tempo necessário para a sua execução. Na qualidade de gestor
do projeto, a qual seqüência de atividades você dispensaria maior atenção, ojetivando não
atrasas o lançamento do produto (caminho crı́tico)(MEC - Provão 1999).
* 2 @
A E @F
@
5 4@
3
@
@
R
1 B - 3 G - 5
HH 3 2
H @
HH @
HDH @C H
2 H 6@
H 3
H @
R
H
j 4
H
Para determinar o caminho crı́tico basta verificar todas possibilidades de “rotas”entre o pri-
meiro e o último evento, aquela seqüência que somar o tempo máximo é o caminho crı́tico.
Dessa maneira:
A+F =9
B + E + F = 10
B+G=5
B + C + H = 12
D+H =5
Exemplo:
Como exemplo vamos modelar a seguinte rede de precedência:
* 2 @
@F
A
E @
5 4@
3
@
B @
R
1 - 3 G - 5
HH 3 2
H @
HH @
HD @C H
HH
2 H 6@ 3
HH
@
R
j 4
H
x1 = tempo do evento 1
x2 = tempo do evento 2
x3 = tempo do evento 3
x4 = tempo do evento 4
x5 = tempo do evento 5
x2 − x1 ≥ 5 (Atividade A)
x3 − x1 ≥ 3 (Atividade B)
x4 − x3 ≥ 6 (Atividade C)
x4 − x1 ≥ 2 (Atividade D)
x2 − x3 ≥ 3 (Atividade E)
x5 − x2 ≥ 4 (Atividade F)
x5 − x3 ≥ 2 (Atividade G)
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 44
x5 − x4 ≥ 3 (Atividade H)
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0
x4 ≥ 0
x5 ≥ 0
@
@
@
@
Atividades @
R
Atividade -
antecessoras
imediatas
@
@
@
@
@
R
Atividades Duração da
Atividade antecessoras tarefa -
imediatas (Dias)
A - Compra e entrega de matéria-prima -.- 2
B - Corte e preparação de madeira A 1
C - Preparação da estrutura metálica da base A 3
D - Acabamento da madeira B 4
E - Pintura da base C 4
F - Controle de qualidade da madeira D 5
G - Controle de qualidade da base metálica E 2
H - Montagem e embalagem FeG 5
As atividades declaradas na tabela podem então, obedecendo as restrições quanto ativi-
dades antecessoras imediatas, serem desenhadas na forma de rede de precedência:
3 D - 5
4
@
B @F
1 @
5 @
@
R
1 A - 2 7 H - 8
2 5
@
@ G
@C 2
3 @
@
R E4 - 6
4
A + B + D + F + H = 17
A + C + E + G + H = 16
teremos uma data fixada para ocorrer determinado evento. Mas, os outros eventos que não
fazem parte do caminho crı́tico não tem uma data fixa para ocorrer, e sim podem variar
entre duas datas: a data mais cedo e a data mais tarde do evento.
Tanto a folga nas atividades (fA ), quanto a data mais cedo (dmc) e a data mais tarde
(dmt) dos eventos são determinados através do detalhamento da rede de precedência:
............. .............
............ ................. ............ .................
..... ..... ..... .....
...... ... .
. .... ...
.. ... .. ...
...
.... i ...
... Ak .
-...
.
.... j ...
...
... .. ..
.
... ...
. ... ..
...dmci dmti .. tk ; fk ... dmcj dmtj ..
... .
.... ... .... ...
.....
........ .
........ .....
.......... .
........
................................. .............................
Sendo que a folga de cada atividade é igual a data mais tarde do evento posterior menos
a data mais cedo do evento anterior menos o tempo da atividade:
fA = dmtj − dmci − tA (2)
Primeiro determina-se a data mais cedo de cada evento calculando do primeiro ao último
evento somando-se os tempos de cada atividade. Adota-se o maior tempo no caso de duas
atividades chegarem no mesmo evento. O data mais cedo do evento 1 pode ser uma data
de calendário ou como no exemplo igual a zero (unidade de tempo). Dessa maneira, a data
mais cedo do evento 3 é calculada: dmc3 = dmc1 + tB = 0 + 3 = 3. Note que o evento 3 é
precedente ao evento 2.
A data mais cedo do evento 2 é calculada considerando o maior tempo, entre: dmc2 =
dmc1 + tA e dmc2 = dmc3 + tE , ou seja: dmc2 = dmc3 + tE = 3 + 3 = 6.
#
2
*
@
"!6
@
@ F
A @
E
@
5 4 @
3 @
# # @ #
@
R
1 B - 3 G - 5
HH 3 0 3 2 12
"! "! @ "!
HH @
H
HH @
H D @C H
HH @
H 6 @
2 HH 3
H #R
@
HH
j 4
H
9
"!
A data mais cedo do último evento é o tempo crı́tico da rede de precedência, no exemplo:dmc5 =
12.
A determinação da data mais tarde de cada evento é feita do último para o primeiro
evento. Inicialmente repete-se a data mais tarde igual a data mais cedo no último evento e
diminui-se os tempos das atividades.
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 47
Dessa maneira, a data mais tarde do evento 2 é calculada: dmt2 = dmt5 −tF = 12−4 = 8.
Considera-se a menor resposta obtida. Assim a data mais tarde do evento 3 é calculada
considerando-se os valores: dmt3 = dmt2 − tE ou dmt3 = dmt5 − tG ou dmt3 = dmt4 − tC ,
resultado em dmt3 = dmt4 − tC = 9 − 6 = 3, o menor valor.
#
2
*
"!6 8 @
@
@ F
A @
E
@
5 4 @
3 @
# # @ #
@
R
1 B - 3 G - 5
0 0 H 3 3 3 2 12 12
"! H "! @ "!
HH @
H
HH @
H D @C H
HH @
H 6 @
2 HH 3
H #R
@
HH
j 4
H
9 9
"!
7.7 Exercı́cios
Detalhar as redes de precedência:
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 48
Atividades Duração da
Atividade antecessoras tarefa -
imediatas (Dias)
1) A -.- 3
B A 2
C B 2
D C 2
Atividades Duração da
Atividade antecessoras tarefa -
imediatas (Dias)
2)
A -.- 3
B -.- 2
C AeB 2
Atividades Duração da
Atividade antecessoras tarefa -
imediatas (Dias)
A -.- 3
3) B A 2
C A 2
D B 2
E C 1
F DeE 2
Atividades Duração da
Atividade antecessoras tarefa -
imediatas (Dias)
A -.- 3
B A 2
C A 2
4) D B 2
E B 1
F D 2
G E 2
H C 2
I HeG 2
J IeF 2
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 49
Atividades Duração da
Atividade antecessoras tarefa -
imediatas (Dias)
A − 3
B − 2
C A 2
D B 2
E C 2
F C, D 2
... ... ...
A C E
B D F
C E
fantasma
B
D F
Nesse caso a atividade fantasma não demanda tempo e o detalhamento da rede de pre-
cedência é feito da mesma maneira.
Este próximo exemplo também pode ser corrigido com a adição de uma atividade fan-
tasma:
Atividades Duração da
Atividade antecessoras tarefa -
imediatas (Dias)
A − 3
B A 2
C A 2
D B, C 2
A B D
A B D
C
fantasma
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 51
1) Se uma atividade só deve começar quanto outra tiver terminada, ou após a consecução
de um dado evento, ou após um prazo mı́nimo decorrido desde o inı́cio do projeto.
a τ a τ a
X
τ
b
τ = tempo
a
b
ou
b
a
7.10 Exercı́cios
1) As tarefas E e H possuem restrições adicionais conforme a tabela seguinte. Montar e
detalhar a rede de precedência.
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 52
Atividades
Duração da
Atividade antecessoras Restrição
tarefa - (Dias)
imediatas
A − 2
B A 3
C A 2
D A 2
Após 6 dias do inı́cio do
E B 3
projeto
F B 2
G C, E 3
Após 6 dias do término da
H D, F, G 2
atividade C
Atividades
Duração da
Atividade antecessoras Restrição
tarefa - (Dias)
imediatas
A − 2
B A 3 Recurso M2
C A 2 Recurso M2
D B 3 Recurso M1
E B 2
F C 3
G C 2 Recurso M1
H D 3
I E, F 2
J G 3
K H, I, J 2
Figura 5: Representação com diagrama, detalhando: duração, folga, primeira e última data de
inı́nicio e primeira e última data de término.
Atividade
Duração Folga
PDI PDT
UDI UDT
7.11.1 Exemplo
Para exemplificar vamos utilizar um exercı́cio já feito com o método americano (Figura 7).
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 55
* 2
@
"! @
@ F
A @
E
@
5 4 @
3 @
# # @ #
R
@
B - G -
1 3 5
"!H 3 "! 2
HH @ "!
HH @
H @
HH @C
HDH @
H
HH 6 @
2 H #@
R
3
HH
H
H
j
4
"!
A F
5 4
E
3
B G
3 2
C
6
D H
2 3
A Primeira Data de Inı́cio é considerada igual a 0 para as atividades iniciais, para as de-
mais atividades é igual a Primeira Data de Término das atividades antecessoras considerando-
se o maior valor.
Por seu turno, a Primeira Data de Término é igual a Primeira Data de Inı́cio da atividade
mais duração menos, conforme Figura 9.
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 56
Figura 9: Indicação e cálculo das Primeira Data de Inı́cio e Primeira Data de Término
A F
5 4
0 5 E 6 10
B 3 6 G
3 2
0 3 C 3 5
D 3 9 H
2 3
0 2 9 12
A maior Primeira Data de Término das atividades (tempo crı́tico) torna-se a Última Data
de Término das últimas atividades do projeto. Para as demais atividades a Última Data de
Término é igual a menor Última Data de Inı́cio dos eventos precedentes.
O Última Data de Ínicio é calculada subtraindo-se a duração da Última Data de Término,
conforme Figura 10.
Figura 10: Indicação e cálculo das Última Data de Inı́cio e Última Data de Término
A F
5 4
0 5 E 6 10
3 8 3 8 12
B 3 6 G
3 5 8 2
0 3 C 3 5
0 3 6 10 12
D 3 9 H
2 3 9 3
0 2 7 12
7 9 9 12
Finalmente o cálculo da folga é feito a partir da diferença entre a Última Data de Término
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 57
menos a Primeira Data de Inı́cio ou, Última Data de Término menos a Primeira Data de
Término, conforme Figura 11.
A F
5 3 4 2
0 5 E 6 10
3 8 3 2 8 12
B 3 6 G
3 0 5 8 2 7
0 3 C 3 5
0 3 6 0 10 12
D 3 9 H
2 7 3 9 3 0
0 2 9 12
7 9 9 12
A descrição das Primeira Data de Inı́cio, Última Data de Inı́cio, Primeira Data de Tér-
mino e Última Data de Término facilitam o posicionamento de cada atividade dentro da
faixa de tempo possı́vel. Por exemplo, em problemas envolvendo nivelamento de recurso, o
conhecimento das datas de inı́cio e término facilitam encontrar a melhor possibilidade.
D
8 0
G
B 6 14
6 0
2 2 6 14
14 20
2 4
14 20
A 4 6 E
2 0 3 5
0 2 6 9
H
0 2 C 11 14
3 11
4 0
6 9
2 6 F
17 20
2 6 5 9
6 11
15 20
7.13 Exercı́cios
1) Resolver a rede de precedência (método francês) e fazer o gráfico da necessidade de
recurso com a mellhor situação de nivelamento.
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 60
8 Programação Inteira
Passo 2
Passo 3
x1 ≥ 4 arco x1 ≤ 3
SP2: Z ∗ = 41, x1 =
4, x2 = 9/5
nodo SP3: Z ∗ =?
Passo 4
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 64
– SP4 não apresenta soluções viáveis, não podendo, assim, gerar uma solução ótima
para o problema de PI:
* Assim, diz-se que este nodo da árvore foi terminado
– Dentre os SPs não resolvidos, escolhe-se o mais recente, SP5:
* Solução vêm apresentada na árvore do problema, a seguir
x1 ≥ 4 x1 ≤ 3
SP2: Z ∗ = 41, x1 =
4, x2 = 9/5 SP3: Z ∗ =?
x2 ≥ 2 x2 ≤ 1
SP5: Z ∗ = 365/9, x1 =
SP4: inviável
40/9, x2 = 1
x1 ≥ 4 x1 ≤ 3
SP2: Z ∗ = 41, x1 =
4, x2 = 9/5 SP3: Z ∗ =?
x2 ≥ 2 x2 ≤ 1
SP5: Z ∗ = 365/9, x1 =
SP4: inviável
40/9, x2 = 1
x1 ≥ 5 x1 ≤ 4
SP7:
∗
SP6: Z =? Z ∗ = 37, x1 = 4, x2 = 1
Solução candidata
x1 ≥ 4 x1 ≤ 3
SP2: Z ∗ = 41, x1 =
4, x2 = 9/5 SP3: Z ∗ =?
x2 ≥ 2 x2 ≤ 1
SP5: Z ∗ = 365/9, x1 =
SP4: inviável
40/9, x2 = 1
x1 ≥ 5 x1 ≤ 4
SP6:
∗ SP7:
Z = 40, x1 = 5, x2 = 0 ∗
Z = 37, x1 = 4, x2 = 1
Limite Inferior = 37
Solução excluı́da
Solução candidata
A regra último a entrar, primeiro a sair, que indica qual SP deve ser trabalhado dentre
vários candidatos força o analista a trabalhar um mesmo da ramo da árvore de soluções
até o final:
Quando um SP apresenta solução ótima com duas ou mais variáveis de decisão fracio-
nárias, trabalhe com aquela que representar maior ganho na função objetivo
8.7 Exercı́cios
1) Exercı́cio 1
PI puro
Min Z = 4 x1 + 5 x2
s.a:
x1 + 4 x2 ≥ 5
3 x1 + 2 x2 ≥ 7
x1 , x2 ≥ 0 e inteiros
2) Exercı́cio 2
PI misto
Max Z = 2 x1 + x2
s.a:
5 x1 + 2 x2 ≤ 8
x1 + x2 ≤ 3
x1 , x2 ≥ 0; x1 inteiro
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 68
Atraso do trabalho é medido pelo número de dias após a data de entrega em que o
trabalho é completado:
{
1, quando o trabalho i for processado na posição j
Variáveis de decisão xij =
0, caso contrário
– Qualquer que seja a sequência, ela terá x14 = 1, x24 = 1, x34 = 1 ou x44 = 1.
Assim, cria-se uma árvore com quatro nodos e calcula-se o limite inferior no atraso
total associado a cada nodo
– Cálculo do atraso para o quarto trabalho é: x44 = 1, ou seja, o trabalho 4 seria
completado com atraso total de 23 − 16 dias. Os 23 dias foram obtidos somando
(6 + 4 + 5 + 8)
Qualquer sequência associada a este nodo deve ter x12 = 1 ou x22 = 1. Os atrasos
totais são:
Melhor sequenciamento
x12 = 1 x32 = 1
NODO 8: NODO 9:
D = 12 D = 16
Desdobra-se o nodo 3
Melhor sequenciamento
x12 = 1 x32 = 1
NODO 8: NODO 9:
D = 12 D = 16
8.9 Exercı́cios
1) Aplique o algoritmo Branch-and-Bound para resolver o problema de PI: (2015)
Minimizar Z = 2 x1 + x2
{
x1 + x2 ≥ 6
Sujeito A
−x1 + x2 ≤ 3
x1 ≥ 0 (inteiro); x2 ≥ 0 (inteiro)
9 Programação Dinâmica
9.1 Caracterização
A Programação Dinâmica é uma técnica que resolve problemas de otimização considerando
a soluçao de sub-problemas, partes do problema original.
9.2 Aplicações
A Programação Dinâmica pode ser aplicada a diversos tipos de problemas de otimização,
entre eles: Problema de viagem e Problema de estoques.
A C F J
12 5
3 9
7 I
3
11
D G
4
4
H:7
10
6
7
9
5 8
A C F J
12 5
3 9
7 I:5
3
11
D G
4
B E:13
6
4
4
H:7
6
10 7
9
5 8
A C F:17 J
12 5
9
3
I:5
7
3
11
D G:8
4
B:17 E:13
6
4
H:7
4
10
6
7
9
5 8
A C:15 F:17 J
12 5
9
3
I:5
7
3
11
D:19 G:8
4
B:17 E:13
6
4
4
H:7
10
6
7
9
5 8
A:20 C:15 F:17 J
12 5
9
3
I:5
7
3
11
D:19 G:8
P1 =? P2 =? P3 =? P4 =? P5 =?
X0 = 1.500 X1 X2 X3 X4 X5 = 0
1 2 3 4 5
10 Provas anteriores
20171-P1
Responda/Resolva as Questões
x1 ≥0
x2 ≥0
x3 ≥0
x4 ≥0
3) Montar o modelo a partir do primeiro tableau:
x1 x2 x3 x4 x5 x6 x7 b
3 -2 1 1 1 0 0 16
2 2 1 -1 0 1 0 12
1 2 1 2 0 0 1 15
2 -2 4 -3 0 0 0 0
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 77
20171-P2
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0
2) Considerando o primeiro e o último tableau, fazer a análise de sensibili-
dade de todos os coeficientes da função objetivo e de todas as quantida-
des de recurso escasso :
1,0 2,0 2,0 1,0 1,0 0,0 0,0 120,0
1,0 2,0 1,0 2,0 0,0 1,0 0,0 140,0
1,0 1,0 2,0 2,0 0,0 0,0 1,0 150,0
-2,0 -3,0 -4,0 -5,0 0,0 0,0 0,0 0,0
1/2 5/2 0,0 0,0 1,0 1,0 -3/2 35,0
1/2 3/2 0,0 1,0 0,0 1,0 -1/2 65,0
0,0 -1,0 1,0 0,0 0,0 -1,0 1,0 10,0
1/2 1/2 0,0 0,0 0,0 1,0 3/2 365,0
20171-P3
{
6 x1 + 4 x2 ≤ 24
Sujeito A
3 x1 + 8 x2 ≤ 24
x1 ≥ 0 (inteiro); x2 ≥ 0 (inteiro)
4) Aplique o algoritmo Branch-and-Bound para resolver o problema de pro-
gramação inteira envolvendo o sequenciamento de tarefas em uma má-
quina objetivando minimizar o tempo total de atraso:
Tempo necessário (dias) Data de entrega
Tarefa 1 8 Final do dia 8
Tarefa 2 10 Final do dia 10
Tarefa 3 6 Final do dia 14
Tarefa 4 4 Final do dia 20
1a Prova - 2018/2
Responda/Resolva as Questões
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0
2a Prova - 2018/2
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0
2) Considerando o primeiro e o último tableau, fazer a análise de sensibili-
dade de todos os coeficientes da função objetivo e de todas as quantida-
des de recurso escasso :
1,0 2,0 2,0 1,0 1,0 0,0 0,0 0,0 160,0
1,0 2,0 1,0 2,0 0,0 1,0 0,0 0,0 140,0
2,0 1,0 2,0 2,0 0,0 0,0 1,0 0,0 120,0
1,0 1,0 2,0 2,0 0,0 0,0 0,0 1,0 140,0
-2,0 -3,0 -4,0 -5,0 0,0 0,0 0,0 0,0 0,0
1,5 0,0 2,5 0,0 1,0 -1,5 1,0 0,0 70,0
-1,0 1,0 -1,0 0,0 0,0 1,0 -1,0 0,0 20,0
1,5 0,0 1,5 1,0 0,0 -0,5 1,0 0,0 50,0
-1,0 0,0 0,0 0,0 0,0 0,0 -1,0 1,0 20,0
2,5 0,0 0,5 0,0 0,0 0,5 2,0 0,0 310,0
3a Prova - 2018/2
4 7
B E H
6 9
4 8
8
5
3 4 2
A C F J K
5 10 10
9
5
4
9 4
D G I
Prof. Evandro Bittencourt - Pesquisa Operacional - 2020 86
P1 =? P2 =? P3 =? P4 =?
X0 = 2.500 X1 X2 X3 X4 = 1.000
1 2 3 4