Programacao Linear
Programacao Linear
c
Copyright
2.000 por Mauricio Pereira dos Santos
1 Introdução 1
1.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Solução gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Respostas (parciais) dos exercícios da seção 1.3 . . . . . . . . . . . . . . . . . . . . . 12
1.5 O modelo geral da Programação Linear . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Variações do Modelo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7 O que está implícito em qualquer modelo de P.Linear . . . . . . . . . . . . . . . . . 16
1.8 Exemplos de formulação de modelos de Programação Linear . . . . . . . . . . . . . . 18
1.9 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.10 Respostas dos exercícios da seção 1.9 . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2 O Método Simplex 33
2.1 Definições básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2 Um método não muito eficiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3 Situações que podem acontecer no Método Simplex . . . . . . . . . . . . . . . . . . . 43
2.3.1 Empate na escolha da variável entrante . . . . . . . . . . . . . . . . . . . . . 43
2.3.2 Empate na escolha da variável sainte . . . . . . . . . . . . . . . . . . . . . . 44
2.3.3 Não existência de variável sainte . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3.4 Múltiplas (infinitas) soluções ótimas . . . . . . . . . . . . . . . . . . . . . . . 46
2.3.5 Modelos de Minimização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3.6 Modelos com variáveis irrestritas em sinal . . . . . . . . . . . . . . . . . . . 51
2.4 Outras formas de modelos - O Simplex de 2 fases . . . . . . . . . . . . . . . . . . . . 52
2.5 Novos algorítimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.7 Respostas dos exercícios da seção 2.6 . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.9 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.10 Respostas dos exercícios da seção 3.9 . . . . . . . . . . . . . . . . . . . . . . . . . . 91
1.1 Exemplo
Para entender melhor os conceitos da Programação Linear, vamos trabalhar com
um exemplo que servirá de base para apresentarmos alguns dos aspectos relacio-
nados com os modelos de Programação Linear.
Uma empresa produz 2 produtos em uma de suas fábricas. Na fabricação dos 2
produtos, 3 insumos são críticos em termos de restringir o número de unidades dos
2 produtos que podem ser produzidas: as quantidades de matéria prima (tipos A e
B) disponíveis e a mão de obra disponível para a produção dos 2 produtos.
Assim, o Departamento de Produção já sabe que, para o próximo mês, a fábrica
terá disponível, para a fabricação dos 2 produtos, 4900 kilos da matéria prima A e
2 Introdução
Temos que identificar o objetivo que se deseja alcançar e traduzí-lo por uma função
matemática linear contendo as variáveis de decisão. Assim, no nosso exemplo, o
objetivo é maximizar o lucro total obtido com a produção dos 2 produtos. Cada uni-
dade, a ser produzida, do produto tipo I dá um lucro de $20. Como vamos produzir
x1 unidades, teremos um lucro de 20x1 . Da mesma forma, cada unidade do produto
tipo II dá um lucro de $60, ou seja, pelo produto tipo II teremos um lucro de 60x 2 .
Desta forma a função de lucro total, que queremos maximizar, será uma função da
forma: 20x1 + 60x2 .
Esta função é chamada de função objetivo e é representada, pela maioria dos au-
tores, como uma função de uma variável Z representando o sentido da otimização
que, no nosso caso, é de maximização. Assim, podemos escrever:
(MAX)Z = 20x1 + 60x2 ⇒ função objetivo.
1
Chamamos de x1 e x2 mas poderíamos usar qualquer nome para rotular as variáveis de decisão
1.1 Exemplo 3
Evidentemente que o nosso modelo não se restringe a função objetivo pois se assim
fosse, a solução seria simplesmente x1 = x2 = ∞ , o que, sem muita análise, per-
cebemos que é impossível bastando observar a quantidade disponível de qualquer
uma das matérias primas. Desta forma os valores que x1 e x2 podem assumir estão
condicionados pelas restrições do modelo que, no nosso exemplo, são as as quanti-
dades das 2 matérias primas e a quantidade de mão de obra disponível. Temos que
representar cada restrição física por uma função matemática linear contendo as
variáveis de decisão do modelo. A 1a restrição que temos diz que a quantidade dis-
ponível de matéria prima tipo A, no próximo mês é de 4900 kilos. Cada unidade a
ser produzida do produto I vai consumir 70 kilos desta matéria prima. Por sua vez,
cada unidade a ser produzida do produto II também vai consumir 70 kilos desta
mesma matéria prima. Logo 70x1 + 70x2 vai nos dar toda a matéria prima tipo
A a ser utilizada. Esta quantidade não pode ser maior do que a empresa vai ter
disponível, ou seja 4900 kilos. Podemos escrever então: 70x 1 + 70x2 ≤ 4900
Fazendo-se o mesmo tipo de raciocínio para a matéria prima tipo B, podemos escre-
ver: 90x1 + 50x2 ≤ 4500.
Temos ainda que representar a restrição relativa a mão de obra. Para a produ-
ção do produto tipo I, temos 80 homens-hora disponíveis. Cada unidade, para ser
produzida, utiliza 2 homens-hora. Logo, 2x1 indica todo o consumo de mão de
obra, apta para produzir o produto I, no próximo mês. Como temos disponíveis 80
homens-hora, a restrição fica: 2x1 ≤ 80.
Podemos escrever uma restrição semelhante para o produto tipo II, ou seja: 3x 2 ≤
180.
A primeira vista poderá parecer que formulamos todas as restrições. No entanto,
há um tipo de restrição não tão evidente. Como visto anteriormente, x 1 e x2 repre-
sentam as unidades dos 2 tipos de produto a serem fabricadas. Ora não podemos
produzir, por exemplo, –10 unidades do produto tipo I ou do produto tipo II, ou seja,
x1 e x2 não podem ser negativos. Matematicamente temos: x1 ,x2 ≥ 0
Podemos agora escrever todo o modelo de programação linear para o nosso exem-
plo:
(MAX) Z = 20x1 + 60x2 ⇒ Função Objetivo
s.a
70x1 + 70x2 ≤ 4900
90x1 + 50x2 ≤ 4500
Restrições do modelo
2x1 ≤ 80
3x2 ≤ 180
x1 ,x2 ≥ 0 Restrição de não negatividade
4 Introdução
x2
(0,0) x1
x2
70
(0,0)
70
x1
R1
Como o ponto (0,0) está abaixo da reta e como (0,0) satisfaz a restrição, todos os
pontos da reta para “baixo” são pontos que satisfazem a restrição.
Vamos fazer o mesmo com a 2a restrição que na igualdade, 90x1 + 50x2 = 4500 é
uma reta que passa pelos pontos (50,0) e (0,90). Traçando-a temos:
x2
R2
90
70
50
(0,0)
70
x1
R1
Como o ponto (0,0) está abaixo da reta e como (0,0) satisfaz a restrição, todos os
pontos da reta para “baixo” são pontos que satisfazem a restrição.
A 3a restrição, na igualdade (2x1 = 80), é uma reta paralela ao eixo x2 passando
pelo ponto 40 em x1 . Temos então:
6 Introdução
x2
R3
R2
90
70
50
(0,0) 40
70
x1
R1
Como o ponto (0,0) está a esquerda da reta e obedece a restrição, todos os pontos
da reta para a esquerda são pontos que satisfazem a 3a restrição.
A 4a restrição na igualdade, 3x2 = 180, é uma reta paralela ao eixo x1 , passando
pelo ponto 60 no eixo x2 . Traçando-a, temos:
x2
R3
R2
90
70
R4
60
50
(0,0) 40
70
x1
R1
Como o ponto (0,0) está abaixo da reta e obedece a restrição, todos os pontos da reta
para baixo são pontos que satisfazem a 4a restrição.
Como todas as restrições foram traçadas temos o chamado Espaço Solução que
é o conjunto de todos os pontos candidatos a serem o ponto ótimo, ou seja, todos
os pontos que “obedecem” a todas as restrições do modelo. No gráfico o Espaço
Solução é o polígono hachurado, como podemos ver a seguir:
1.2 Solução gráfica 7
x2
R3
R2
R4
x1
R1
x2
R3
R2
R4
x1
Z=1200
R1
Como queremos maximizar o valor de Z, vamos escolher agora um valor maior, por
exemplo Z = 2400, ou seja uma reta passando pelos pontos (120,0) e (0,40). Vamos
ver como fica graficamente:
x2
R3
R2
R4
x1
Z=2400
R1 Z=1200
1.2 Solução gráfica 9
Como esperado, a nova reta Z = 2400 é uma reta paralela a reta anterior Z =
1200. Descobrimos também que traçando-se paralelas a Z = 1200, acima dela,
obtemos valores maiores para Z. Como obter o ponto ótimo ? Simplesmente tra-
çando a paralela, mais “alta” possível, que toque, pelo menos, um ponto do espaço
solução. Graficamente temos:
x2
R3
R2
Ponto Ótimo
R4
x 2*
Z*
x 1*
x1
Z=2400
R1 Z=1200
O “*” indica, em programação matemática o valor ótimo. Assim, x∗1 quer dizer o
valor ótimo de x1 .
O ponto ótimo ter sido um dos vértices do espaço solução não é uma mera coinci-
dência. Na verdade o ponto ótimo é sempre um dos vértices do espaço solução a não
ser quando temos múltiplas (infinitas) soluções ótimas, pois neste caso, os pontos
ótimos são todos os pertencentes a um dos lados do espaço solução. Para ilustrar
este último caso, mude a função objetivo para (MAX) Z = 90x1 + 50x2 . Resolva
graficamente e observe que todos os pontos de um dos lados do espaço solução são
pontos ótimos! Isto acontece porque a função objetivo é a uma função paralela a 2 a
restrição.
10 Introdução
1.3 Exercícios
A) Resolva graficamente o modelo abaixo:
(MAX) Z = 3x1 + 5x2
s.a
(1) x1 ≤ 4
(2) 2x2 ≤ 12
(3) 3x1 + 2x2 ≤ 18
(4) x1 ≥ 0
(5) x2 ≥ 0
Indique o espaço solução (hachurando), o ponto ótimo (apontando) e as restri-
ções redundantes (pelo número).
Exercício A
14
12
10
-2 0 2 4 6 8 10 12 14
-2
1.4 Respostas (parciais) dos exercícios da seção 1.3 13
Exercício B
50
40
30
20
10
0 5 10 15 20 25 30 35
Exercício C
15
10
-5
-10
Exercício D
10
-10 -5 0 5 10
-5
-10
20
15
10
-10 -5 0 5 10
-5
-10
Exercício F
-6 -4 -2 2 4 6 8 10 12
0
-2
-4
-6
-8
10
-10 -5 0 5 10
-5
-10
Redundante: (1)
16 Introdução
b) Aditividade
Esta consideração implica em que não há interação entre as diversas variáveis
do modelo, ou seja, a contribuição do total de variáveis é a soma das contribui-
ções individuais de cada uma das variáveis. Para exemplificar vamos considerar
o nosso exemplo protótipo. A contribuição para o lucro total da variável x 1 é
20x1 independentemente se x2 é igual a 1 ou 10.000. Por sua vez a contribuição
de x2 para o lucro total é 60x2 seja qual for o valor assumido por x1 . No mundo
real isto, normalmente, também não acontece assim, ou seja, a quantidade de
um produto pode influir na produção de outro independentemente das restrições
tecnológicas.
Se em um modelo a consideração da aditividade modifica a essência do pro-
blema, deve-se usar programação não linear.
c) Divisibilidade
A partir da construção de um modelo de P.Linear nós transformamos um pro-
blema do mundo real para o “mundo matemático”. Para encontrarmos a solução
que procuramos, temos que resolver o problema matematicamente. A solução
gráfica, por exemplo, é um procedimento matemático. Assim sendo, é perfeita-
mente normal que a solução de um modelo de P.Linear dê, como solução ótima,
valores fracionários. Assim sendo poderia ter acontecido que a resposta para o
nosso exemplo fosse x∗1 = 17, 96 e x∗2 = 14, 88. Mas x1 e x2 representam unida-
des de produtos. Como fabricar “pedaços” de produtos ? Será que a solução seria
cortar a parte fracionária ? Isto poderia nos tirar do ótimo pois nem sempre o
ótimo inteiro é o ótimo fracionário com a parte fracionária cortada.
Como se resolve na prática este tipo de problema ? Se as variáveis de decisão
representam bens cujo valor de mercado é reduzido (uma mesa, por exemplo)
trabalhamos com programação linear e simplesmente cortamos a parte fracio-
nária dos valores ótimos. Se no entanto as variáveis representam bens de alto
valor (um avião, por exemplo), temos que trabalhar com Programação Linear
Inteira acrescentando as restrições de que as variáveis tem de ser inteiras. Por-
que, para este tipo de modelo, não trabalhar sempre com P.Linear inteira ? Por-
que o processo de obtenção da solução ótima é muito mais lento que a P.Linear
simples.
d) Certeza
Esta consideração implica em que todos parâmetros do sistema são constantes
conhecidas não se aceitando nenhuma incerteza de qualquer tipo. Se alguns dos
parâmetros tem qualquer nível de incerteza a formulação como um modelo de
P.Linear poderá levar a resultados incorretos.
18 Introdução
Solução
Variáveis de decisão
xi ⇒ Kilos do ingrediente i a serem usados na ração (i=1 (Cevada), i=2 (Aveia),
i=3 (Soja), i=4 (Milho)).
Solução
Para um melhor entendimento do problema, vamos mostrar uma solução possí-
vel para o problema:
50 50 70 90 40
5000
20000
30000
i=3 (90))
O modelo fica como:
(MIN) Z = 30x2 +10x3 +30x5 +10x6 +10x7 +40x8 +20x9 +50S1 +70S2 +90S3
s.a.
2x1 + 4x4 + 2x5 + 2x6 + x7 = 10000 + S1 (largura 50cms)
x2 + x5 + 2x7 + x8 = 30000 + S2 (largura 70cms)
x3 + x6 + x8 + 2x9 = 20000 + S3 (largura 90cms)
Si , x i ≥ 0
Solução
Variáveis de decisão
xi ⇒ no de guardanapos a serem comprados no iésimo dia
yi ⇒ no de guardanapos usados enviados, no iésimo dia, para a lavanderia –
serviço de 24 horas
ti ⇒ no de guardanapos usados enviados, no iésimo dia, para a lavanderia –
serviço de 48 horas
Visando auxiliar a formulação do modelo vamos construir uma tabela mos-
trando as várias fontes para se obter, a cada dia, guardanapos limpos :
1.8 Exemplos de formulação de modelos de Programação Linear 21
DIA
Origem 1 2 3 4 5
Novo x1 x2 x3 x4 x5
Lav. – 24 horas y1 y2 y3
Lav. – 48 horas t1 t2
Total Necessário 110 210 190 120 100
As restrições para a necessidade de guardanapos limpos são:
x1 = 110 ⇒ não precisa entrar no modelo
x2 = 210 ⇒ não precisa entrar no modelo
x3 + y1 = 190
x4 + y2 + t1 = 120
x5 + y3 + t2 = 100
Para se definir as restrições correspondentes as quantidades de guardanapos
usados temos que definir uma outra variável decisão:
vi ⇒ no de guardanapos usados que, no iésimo dia, não são enviados para a
lavanderia.
Devemos nos lembrar que o ótimo não implica, necessáriamente, em que todos
os guardanapos usados sejam lavados.
As restrições ficam :
v1 + y1 + t1 = 110
y2 + t2 + v2 = 210 + v1
y3 + v3 = 190 + v2
v4 = 120 + v3
v5 = 100 + v4
O modelo fica como:
(MIN) Z = 10(x3 + x4 + x5 ) + 5(y1 + y2 + y3 ) + 3(t1 + t2 )
s.a.
x3 + y1 = 190
x4 + y2 + t1 = 120
x5 + y3 + t2 = 100
v1 + y1 + t1 = 110
y2 + t2 + v2 = 210 + v1
y3 + v3 = 190 + v2
v4 = 120 + v3
v5 = 100 + v4
xi ,yi ,ti ,vi ≥ 0
22 Introdução
1.9 Exercícios
A) Na produção de unidades de 4 tipos de produtos, são utilizadas 2 máquinas.
O tempo utilizado na fabricação de cada unidade, de cada tipo de produto, em
cada uma das 4 máquinas está dado na tabela abaixo:
Tempo por unidade produzida (horas)
Máquina Produto 1 Produto 2 Produto 3 Produto 4
1 2 3 4 2
2 3 2 1 2
O custo total de produção de uma unidade de cada produto é diretamente pro-
porcional ao tempo de uso da máquina. Considere que o custo por hora para
as máquinas 1 e 2 são $10 e $15 respectivamente. O total de horas disponíveis
para todos os produtos nas máquinas 1 e 2 são 500 e 380 respectivamente.
Se o preço de venda, por unidade, dos produtos 1, 2, 3 e 4 é de $65, $70, $55 e
$45, formule o problema como um modelo de P.Linear com o objetivo de maxi-
mizar o lucro líquido total.
G) Uma companhia deseja obter uma nova liga metálica com 30% de chumbo, 20%
de zinco e 50% de estanho a partir de alguns minérios tendo as seguintes pro-
priedades:
MINÉRIOS
Propriedades 1 2 3 4 5
% – Chumbo 30 10 50 10 50
% – Zinco 60 20 20 10 10
% – Estanho 10 70 30 80 40
Custo ($/kg) 8,5 6 8,9 5,7 8,8
O objetivo é determinar as proporções destes minérios que deveriam ser mistu-
rados para produzir a nova liga com o menor custo possível.
Formule este problema como um modelo de P.Linear.
H) Uma família de fazendeiros possui 100 acres de terra e tem $30.000 em fun-
dos disponíveis para investimento. Seus membros podem produzir um total de
3.500 homens-hora de trabalho durante os meses de inverno e 4.000 homens-
horas durante o verão. Se todos estes homens-horas não são necessários, os
membros mais jovens da família podem ir trabalhar em uma fazenda da vizi-
nhança por $4,00 por hora durante o inverno e $4,50 por hora durante o verão.
A família obtém renda com 3 colheitas e 2 tipos de criação de animais: vacas
leiteiras e galinhas (para obter ovos). Nenhum investimento é necessário para
as colheitas mas no entanto cada vaca necessita de um investimento de $900 e
cada galinha de $7. Cada vaca necessita de 1,5 acre de terra, 100 homens-hora
de trabalho no inverno e outros 50 homens-hora no verão. Cada vaca produzirá
uma renda líquida anual de $800 para a família. Por sua vez cada galinha não
necessita de área, requer 0,6 homens-hora durante o inverno e 0,3 homens-hora
no verão. Cada galinha produzirá uma renda líquida de $5 (anual). O galinheiro
pode acomodar um máximo de 3.000 galinhas e o tamanho dos currais limita
o rebanho para um máximo de 32 vacas. As necessidades em homens-hora e
a renda líquida anual, por acre plantado, em cada uma das 3 colheitas estão
mostradas abaixo:
Soja Milho Feijão
Homens–hora no inverno 20 35 10
Homens–hora no verão 50 75 40
Renda anual líquida ($) 375 550 250
A família deseja maximizar sua renda anual.
Formule este problema como um modelo de P.Linear.
1.9 Exercícios 27
J) Para um bar que funciona 24 horas por dia, a seguinte quantidade de emprega-
dos é necessária:
K) Uma fábrica descontinuou a produção de um produto que não estava dando lu-
cro. Isto criou uma considerável capacidade de produção ociosa. A gerência está
considerando em usar esta capacidade ociosa em um ou mais, de 3 produtos, os
quais chamaremos de produtos 1, 2 e 3. A capacidade disponível das máquinas
que poderiam limitar a saída está dada na tabela abaixo:
Tempo disponível
Tipo de Máquina (em máquinas–hora por semana)
A 500
B 350
C 150
O número de máquinas-hora necessárias para cada produto é:
xij ≥ 0
Exercício D
Xt ⇒ $ investido na atividade X(X=A,B,C e D) no período t(t=1,2,3,4,5)
Rt ⇒ $ não investido no período t(t=1,2,3,4,5)
(MAX) Z = 2C2 + 1, 7B3 + 1, 4A4 + 1, 3D5 + R5
s.a.
A1 + B1 + R1 = 10000
−R1 + A2 + B2 + C2 + R2 = 0
−1, 4A1 − R2 + A3 + B3 + R3 = 0
−1, 7B1 − 1, 4A2 − R3 + A4 + R4 = 0
−1, 7B2 − 1, 4A3 − R4 + D5 + R5 = 0
Xt , R t ≥ 0
30 Introdução
Exercício E
Cada hora de estudo na disciplina D1 garante ao aluno 5 pontos.
Para a disciplina D2 o rendimento é de 4 pontos por hora.
X ⇒ no de horas que o aluno estudará D1 .
Y ⇒ no de horas que o aluno estudará D2 .
3X + 5Y
(MAX) Z =
8
s.a.
X + Y = 30
5X ≥ 50
4Y ≥ 50
X, Y ≥ 0
Exercício F
xij ⇒ indústria Ui instalada na cidade Lj .
(MAX) Z = 1, 5x11 + x12 + 2x13 + 0, 8x21 + 0, 6x22 + 2, 5x23 + 2x31 + 0, 7x32 + x33
s.a.
x11 + x12 + x13 = 1
x21 + x22 + x23 = 1
x31 + x32 + x33 = 1
x11 + x21 + x31 = 1
x12 + x22 + x32 = 1
x13 + x23 + x33 = 1
Xij = 0 ou 1
Exercício G
xi ⇒ fração de 1 kilo do minério i usada na produção de 1 kilo da nova liga.
(MIN) Z = 8, 5x1 + 6x2 + 8, 9x3 + 5, 7x4 + 8, 8x5
s.a.
x1 + x 2 + x 3 + x 4 + x 5 = 1
0, 3x1 + 0, 1x2 + 0, 5x3 + 0, 1x4 + 0, 5x5 = 0, 3
0, 6x1 + 0, 2x2 + 0, 2x3 + 0, 1x4 + 0, 1x5 = 0, 2
0, 1x1 + 0, 7x2 + 0, 3x3 + 0, 8x4 + 0, 4x5 = 0, 5
xi ≥ 0
a
Observe que a 1 restrição é redundante pois é a soma das outras 3.
Exercício H
xi (i = 1, 2, 3) ⇒ acres plantados com soja, milho e feijão, respectivamente.
xi (i = 4, 5) ⇒ no de vacas e galinhas, respectivamente.
xi (i = 6, 7) ⇒ excesso de homens-hora no inverno e verão, respectivamente.
(MAX) Z = 375x1 + 550x2 + 250x3 + 800x4 + 5x5 + 4x6 + 4, 5x7
s.a.
x1 + x2 + x3 + 1, 5x4 ≤ 100
900x4 + 7x5 ≤ 30000
20x1 + 35x2 + 10x3 + 100x4 + 0, 6x5 + x6 = 3500
50x1 + 75x2 + 40x3 + 50x4 + 0, 3x5 + x7 = 4000
x4 ≤ 32
x5 ≤ 3000
xi ≥ 0
1.10 Respostas dos exercícios da seção 1.9 31
Exercício I
xij ⇒ toneladas de carga i (i = 1, 2, 3, 4) armazenadas no compartimento j (j =
1, 2, 3) onde 1(frente), 2(centro) e 3(traseira).
(MAX) Z = 100(x11 + x12 + x13 ) + 130(x21 + x22 + x23 ) + 115(x31 + x32 + x33 ) +
90(x41 + x42 + x43 )
s.a.
x11 + x12 + x13 ≤ 14
x21 + x22 + x23 ≤ 11
x31 + x32 + x33 ≤ 18
x41 + x42 + x43 ≤ 9
x11 + x21 + x31 + x41 ≤ 8
x12 + x22 + x32 + x42 ≤ 12
x13 + x23 + x33 + x43 ≤ 3
14x11 + 20x21 + 17x31 + 11x41 ≤ 140
14x12 + 20x22 + 17x32 + 11x42 ≤ 200
14x13 + 20x23 + 17x33 + 11x43 ≤ 85
x11 + x21 + x31 + x41 x12 + x22 + x32 + x42 x13 + x23 + x33 + x43
= =
8 12 7
xij ≥ 0
Exercício J
xj ⇒ no de empregados começando no início do período j (j = 1, 2, ..., 6).
(MIN) Z = x1 + x2 + x3 + x4 + x5 + x6
s.a.
x1 + x 6 ≥ 4
x1 + x 2 ≥ 8
x2 + x3 ≥ 10
x3 + x 4 ≥ 7
x4 + x5 ≥ 12
x5 + x 6 ≥ 4
xj ≥ 0
Exercício K
(MAX) Z = 30x1 + 12x2 + 15x3
s.a
9x1 + 3x2 + 5x3 ≤ 500
5x1 + 4x2 ≤ 350
3x1 + 2x3 ≤ 150
x3 ≤ 20
xi ≥ 0
32 Introdução
Capítulo 2
O Método Simplex
Solução Impraticável É qualquer solução em que pelo menos uma das restrições
do modelo é violada.
x2
inf
R3
4
R2
2 14 15 R4
5 12
10
11 9 inf
13
7
1 8 x1
R1
das soluções básicas ? Não é simples coincidência pois pode-se provar que:
Se um modelo de Programação linear possui uma única solução
ótima, então ela é uma solução básica do sistema de equações
lineares formado pelas restrições do modelo acrescidas das suas
respectivas variáveis de folga.
No gráfico podemos observar que a solução ótima só pode ser um dos vértices (pon-
tos extremos) do espaço solução pois eles são justamente as soluções básicas prati-
cáveis. Isto vem do fato de que o espaço solução é sempre um conjunto convexo onde
cada solução básica é a intersecção de tantas restrições quantas forem as variáveis
de decisão do modelo (duas, x1 e x2 no nosso caso).
No caso de termos mais de uma solução ótima, teremos sempre
um no infinito de soluções ótimas pois serão ótimos todos os pon-
tos que unem 2 vértices (pontos extremos) adjacentes, ou seja,
todos os pontos de um dos lados do espaço solução.
Os 2 postulados acima nos levam a conclusão de que um modelo de programação
linear só pode ter 2 tipos de soluções ótimas: ou ela é única, ou seja, um único
ponto, ou tem um número infinito de pontos ótimos. Assim, é impossível existir um
modelo de programação linear que tenha, por exemplo, 5 soluções ótimas.
Com o que já vimos, parece que para achar a solução ótima de um modelo de Progra-
mação Linear basta encontrar as soluções básicas do sistema de equações lineares
formado pelas suas restrições, e escolher a melhor, em função do objetivo, dentre
as praticáveis.
Um exemplo, no entanto, nos mostra que este método é totalmente impraticável.
Vamos supor que temos um modelo com 50 restrições e 100 variáveis. É importante
ressaltar que um modelo deste tamanho é apenas um modelo de programação li-
near de tamanho de pequeno para médio. Quantas soluções básicas teríamos que
encontrar ?
100!
= 1029 , levaria-se anos mesmo usando-se os computadores mais velozes.
50!50!
Veremos a seguir que o método simplex examina apenas um no muito pequeno des-
tas soluções básicas para encontrar a solução ótima.
Vamos ver mais uma definição:
Solução básica praticável adjacente: Duas soluções básicas praticáveis são ad-
jacentes se elas diferem por apenas uma variável não básica (óbviamente, como
o total de varáveis é a soma das não básicas com as básicas, elas diferem também
por uma variável básica).
Assim,
as soluções básicas a seguir, são adjacentes:
F 1 = 4900
F 1 = 2100
F2 = 4500 x1 = 0 F2 = 900 F3 = 0
VB VNB e VNB
F3 = 80
x2 = 0
x1 = 40
x2 = 0
F4 = 180 F4 = 180
O no de soluções básicas praticáveis adjacentes à cada solução básica é igual ao
número de variáveis de decisão do modelo (duas, x1 e x2 no nosso caso). Assim,
como pode ser visto no gráfico onde são mostradas as soluções básicas, a solução n o
2.2 Um método não muito eficiente 37
2. Dada uma solução básica testar se ela é melhor que suas adjacentes. Se for, é
a solução ótima.
Olhando agora com mais atenção podemos reparar em mais uma característica da
forma padrão: variável básica só aparece uma única vez, ou seja, em uma única
equação com coeficiente igual a 1. Qual a vantagem disto ? A vantagem é que ao se
eliminar as variáveis não básicas (porque são iguais a zero), obtemos, diretamente,
o valor numérico das variáveis básicas.
Durante o simplex, nas sucessivas soluções básicas que serão obtidas, trabalhare-
mos sempre usando esta forma padrão para aproveitar esta propriedade.
Como temos uma solução básica, temos que testar se ela é a solução ótima. Para
ser a ótima ela tem que ser melhor que as suas adjacentes.
Estudando a solução básica em questão, vemos que ela tem 2 adjacentes: uma em
que x1 sairia do “time” de não básicas (óbviamente uma básica teria que sair do
time de básicas) e outra em que x2 sairia do time de não básicas.
É importante entender que, por exemplo, x1 sair do time de não básicas, ou seja das
iguais a zero, implica em ela se tornar básica, ou seja, maior que 0 (vamos ignorar
aqui o fato de que, excepcionalmente, ela pode ser degenerada).
Vamos escrever a função objetivo em função das variáveis de decisão:
(0) Z = 20x1 + 60x2
O que observamos é que se x1 se tornar básica o valor de Z vai aumentar (20 uni-
dades por unidade de x1 ), ou seja vai melhorar a função objetivo. Isto mostra que
a adjacente à atual solução básica, ou seja aquela em que x1 é básica é melhor que
a solução atual. Podemos afirmar então, que a atual solução não é ótima pois pelo
menos uma adjacente é melhor.
Vamos examinar se a outra adjacente, ou seja aquela em x2 vai se tornar básica
também melhora o valor da função objetivo. Como podemos ver acima, para cada
unidade que x2 assuma, a função objetivo aumenta de 60 unidades. Esta adjacente
também é melhor que a solução atual!
A etapa 2 do método simplex diz que se a atual solução básica não é ótima, deve-se
ir para a melhor adjacente. Matemáticamente é impossível saber, a não ser em
problemas pequenos, qual a melhor adjacente. O que na verdade nós fazemos, é
ir para aquela adjacente que aparenta dar o maior ganho para o valor de Z. No
nosso caso a melhor adjacente aparente é aquela em que x2 passaria a ser básica
pois para cada unidade de x2 , temos um aumento de 60 em Z contra um aumento
de 20 no caso de x1 .
É importante deixar claro que o método simplex funciona, ou seja vai levar-nos a
solução ótima, independente da escolha a ser feita. A razão de termos escolhido a
que aparenta dar maior ganho prende-se unicamente ao desejo de se fazer, princi-
palmente quando se trabalha manualmente, o mínimo de iterações. Via de regra,
embora não obrigatoriamente, quando se escolhe a que dá maior ganho este desejo
é atendido.
Escolhemos então x2 como a variável que vai se tornar básica ou, em outras pa-
lavras, a variável que vai entrar na base. Ela é chamada de variável entrante.
Resumindo temos:
Candidatas à variável entrante (são sempre as não básicas): x1 e x2 .
Variável entrante: x2
Como x2 vai entrar na base, ou seja se tornar básica, uma das atuais variáveis
2.2 Um método não muito eficiente 39
básicas vai ter que deixar de ser básica ou em outras palavras, sair da base. Esta
variável é chamada de variável sainte.
As candidatas à variável sainte (sempre as variáveis básicas) são: F 1 , F2 , F3 e F4 .
Neste ponto fica claro porque não colocamos Z no “colchete” das variáveis básicas.
Mesmo sendo uma variável básica, Z nunca é levada em conta como candidata à va-
riável sainte pois ela é o objetivo. Não teria sentido tirá-la da base, transformando-
a em variável não básica igual a 0.
Como escolher a variável sainte ? Vamos escrever as restrições em função das can-
didatas a variável sainte:
(1) F1 = 4900 − 70x1 − 70x2
(2) F2 = 4500 − 90x1 − 50x2
(3) F3 = 80 − 2x1
(4) F4 = 180 − 3x2
Na análise que vamos fazer podemos eliminar x1 . Porque ? porque x1 é variável
não básica e não é a “entrante”, ou seja vai permanecer como não básica, igual a 0.
Temos então:
(1) F1 = 4900 − 70x2
(2) F2 = 4500 − 50x2
(3) F3 = 80
(4) F4 = 180 − 3x2
Neste momento, temos que ter atenção em 2 pontos: o 1o é que estamos trabalhando
em um sistema de equações lineares e, obviamente, o valor de cada variável está
relacionado ao valor das demais variáveis. O 2o é que, como vimos anteriormente,
todas as variáveis (exceto Z) só podem ser ≥ 0. Em outras palavras a única variá-
vel que pode assumir valores negativos é Z.
Como x2 é a variável entrante e cada unidade que ela assumir vai aumentar o
Z em 60, queremos que x2 assuma o maior valor possível. No entanto este valor
está condicionado a que nenhuma outra variável se torne negativa. Na equação (1)
acima, vemos que x2 pode ir até 70 antes que F1 se torne negativa. Já na equação
(2), x2 só pode ir até 90 pois, acima disto, F2 se tornaria negativa. Pela equação (3)
poderíamos levar x2 até o ∞. Finalmente na (4) observamos que x2 poderia ir até
60.
A equação (4) é que limita o valor máximo de x2 , ou seja x2 não pode passar de 60
pois quando ela atinge este valor, F4 chega a zero.
Como F4 foi a variável que chegou a zero primeiro quando tentávamos atribuir o
maior valor possível para x2 (a entrante), ela será a variável sainte.
Já temos então o time de variáveis básicas e não básicas da solução básica adja-
centemelhor do que a que acabamos de testar. Teremos:
F 1
F2 x1 = 0
VB VNB
F3 F4 = 0
x2
Em um modelo pequeno como o que estamos aplicando o simplex, poderá ser ten-
tador se obter o valor numérico das variáveis básicas por simples substituição. Em
modelos maiores este procedimento tornaria inviável a obtenção da solução ótima.
40 O Método Simplex
Por esta razão o simplex passa de uma solução básica para outra mantendo a es-
trutura padrão que vimos anteriormente ou seja, variável básica aparecendo uma
única vez, no sistema de equações lineares, com coeficiente igual a 1.
Como x2 , a entrante, vai substituir F4 , a sainte, como variável básica, temos que
construir um sistema linear equivalente em que x2 apareça em uma única equa-
ção com coeficiente igual a 1 e não apareça nas demais equações, ou seja tenha
coeficiente igual a zero.
Em que equação x2 vai aparecer com coeficiente igual 1 ? Naquela em que F4 , a
sainte, aparecia com coeficiente igual a 1, ou seja a equação (4). Como fazer com
que o coeficiente de x2 seja igual a 1 ? Basta dividir ambos os lados da equação por
3, obtendo:
1
(4) x2 + F4 = 60
3
Como eliminar x2 , ou seja fazer seu coeficiente igual a 0, da equação (0) ? Podemos
usar 2 procedimentos: o 1o é tirar o valor de x2 da nova equação (4) e substituir na
equação (0); o 2o, mais “elegante”, é aplicar a propriedade dos sistemas de equações
lineares que diz que um sistema não se altera quando somamos (ou subtraímos) à
uma equação uma outra multiplicada por uma constante.
Podemos então multiplicar a nova equação (4) por 60 e somar a equação (0), ob-
tendo:
Z − 20x1 − 60x2 = 0
60x2 + 20F4 = 3600 +
70
70x1 + F1 − F4 = 700
3
Processo semelhante para eliminarmos x2 da equação (2). Multiplicamos a nova
(4) por −50 e somamos a equação (2), obtendo:
50
90x1 + F2 − F4 = 1500
3
2.2 Um método não muito eficiente 41
(3) 2x1 + F3 = 80
1
(4) x2 + F4 = 60
3
F 1 = 700
( )
F2 = 1500 x1 = 0
VB VNB
F 3 = 80
F4 = 0
x2 = 60
Z = 3600
Mais uma vez podemos observar que, eliminadas as variáveis não básicas (= 0),
obtemos, diretamente, o valor numérico das variáveis básicas.
Temos que testar se esta nova solução básica é melhor que as suas adjacentes, ou
seja se ela é a ótima.
Como antes, temos 2 soluções adjacentes a esta: uma em que x1 passaria a variável
básica e outra em que F4 voltaria ao time das básicas. Vamos analisar a equação
de Z:
Z = 3600 + 20x1 − 20F4
Se x1 passar a básica, o valor de Z, para cada unidade de x1 , aumentará de 20.
Logo a atual solução não é ótima: já descobrimos uma adjacente melhor.
Vamos examinar a outra adjacente possível, ou seja aquela em que F 4 passaria a
ser variável básica. Como todas as variáveis, exceto Z, tem que ser ≥ 0, qualquer
valor atribuído a F4 iria diminuir o valor de Z, logo esta alternativa é pior que a
atual solução. Assim x1 é a variável entrante.
Para escolher a sainte, vamos escrever as restrições em função das candidatas a
variável sainte, ou seja as atuais variáveis básicas:
70
(1) F1 = 700 − 70x1 + F4
3
50
(2) F2 = 1500 − 90x1 + F4
3
(3) F3 = 80 − 2x1
1
(4) x2 = 60 − F4
3
42 O Método Simplex
F4 não precisa ser levada em consideração pois é não básica, não é a entrante e,
portanto, vai continuar sendo igual a 0.
Na equação (1) x1 pode ir até 10 antes de F1 se tornar negativa. Pela equação (2),
x1 pode ir até 16,67. Na (3), x1 pode ser levado até 40 e pela equação (4), x1 poderia
ir até o ∞.
O limite para o valor de x1 está na equação (1), logo F1 é a que chega a zero pri-
meiro e será a variável sainte.
Temos que construir a nova solução básica em que x1 vai substituir F1 como variá-
vel básica. Assim, na equação (1), que era onde aparecia a sainte (F 1 ), vamos fazer
com que x1 apareça com coeficiente igual a 1, eliminando x1 das demais equações.
Para fazer com que x1 fique com coeficiente 1, vamos dividir, ambos os lados, a
equação (1) por 70, obtendo:
(1) x1 + 70
1
F1 − 13 F4 = 10
Para eliminar x1 da equação (0) podemos tirar o valor de x1 da nova equação (1) e
substituir na equação (0) ou podemos multiplicar a nova equação (1) por 20 e somar
à equação (0), obtendo:
20 40
Z+ F1 + F4 = 3800
70 3
Para eliminar x1 da equação (2), podemos multiplicar a nova equação (1) por −90
e somar a eq.(2), obtendo:
50
90x1 + F2 − F4 = 1500
3
90
−90x1 − F1 + 30F4 = −900 +
70
90 40
− F1 + F 2 + F4 = 600
70 3
Para eliminar x1 da equação (3), multiplicamos a nova equação (1) por −2 e soma-
mos a equação (3), obtendo:
2x1 + F3 = 80
2 2
−2x1 − F1 + F4 = −20 +
70 3
2 2
− F1 + F 3 + F4 = 60
70 3
2.3 Situações que podem acontecer no Método Simplex 43
(3) 2x1 + F3 = 80
1
(4) x2 + F4 = 60
3
F 1 = 700
( )
F2 = 1500 x1 = 0
VB VNB
F 3 = 80
F4 = 0
x2 = 60
Z = 3600
Reescrevendo a equação (0), Z = 3600 + 20x1 − 20F4 , podemos ver que x1 é a
variável entrante. Para escolher a sainte, vamos explicitar as equações em função
das candidatas, que são as variáveis básicas:
70
(1) F1 = 700 − 70x1 + F4
3
50
(2) F2 = 900 − 90x1 + F4
3
(3) F3 = 80 − 2x1
1
(4) x2 = 60 − F4
3
F4 pode ser desconsiderada por ser não básica (= 0) e não é a entrante. Na 1 a
podemos levar x1 até 10, na 2a também podemos levá-lo até 10. Na 3a até 40 e na
4a até ∞.
Temos então um empate na escolha da variável sainte: tanto F1 quanto F2 chegam
a zero quando x1 chega a 10. Aqui também a escolha é arbritária, mas vamos
ver o que acontece na próxima solução básica. Escolhendo, arbritariamente, F 1
como a sainte a próxima solução fica como:
2.3 Situações que podem acontecer no Método Simplex 45
20 40
(0) Z+ F1 + F4 = 3800
70 3
1 1
(1) x1 + F1 − F4 = 10
70 3
90 40
(2) − F1 + F 2 +
F4 = 0
70 3
2 2
(3) − F1 + F3 + F4 = 60
70 3
1
(4) x2 + F4 = 60
3
x 1 = 10
( )
F2 = 0 F1 = 0
VB VNB
F3 = 60
F4 = 0
x2 = 60
Z = 3800
Observando o conjunto de variáveis básicas notamos que uma delas, F 2 ou seja a
não escolhida no empate, é uma variável básica degenerada, ou seja, igual a zero.
Sempre que houver empate entre n candidatas à variável sainte, aparecerão, na
próxima solução básica, n − 1 variáveis básicas degeneradas.
Este fato não afeta o método e, caso a solução não seja a ótima, o simplex
deve ser continuado normalmente, devendo as variáveis degeneradas se-
rem tratadas como variáveis básicas normais.
X2
B
30
Z=
A
14
Z=
X1
Como as retas “Z” são paralelas a um dos lados do espaço solução, a reta de Z ótima
se confunde com o próprio lado do espaço solução e todos os pontos do segmento de
reta (A – B) são pontos ótimos. Como em um segmento de reta temos um n o infinito
de pontos temos um no infinito de soluções ótimas.
Como o simplex vai nos mostrar que temos infinitas soluções ótimas ? Aplicando-se
o simplex ao modelo temos:
(0) Z − 8x1 − 8x2 = 0
(1) 2x1 + 2x2 + F1 = 12
(2) 2x1 + x2 + F2 = 9
(3) x1 + 3x2 + F3 = 16
F1 = 12
( )
x1 = 0
VB F2 = 9 VNB
x2 = 0
F3 = 16
Z=0
Variável entrante: x1 Variável sainte: F2
Nova solução básica:
(0) Z − 4x2 + 4F2 = 36
(1) x2 + F1 − F2 = 3
1 1 9
(2) x1 + x2 + F2 =
2 2 2
5 1 23
(3) x2 − F2 + F 3 =
2 2 2
48 O Método Simplex
F1 = 3
9
( )
x2 = 0
VB x1 = VNB
2 F2 = 0
F3 = 23
2
Z = 36
Variável entrante: x2 Variável sainte: F1
Nova solução básica:
(0) Z + 4F1 = 48
(1) x 2 + F 1 − F2 = 3
1
(2) x1 − F1 + F 2 = 3
2
5
(3) − F1 + 2F2 + F3 = 4
2
2 x ∗
= 3 ( )
F ∗
= 0
VB x∗1 = 3 VNB 1
F2∗ = 0
F3 = 4
∗
Z = 48
A solução é ótima e é o ponto A do gráfico, ou seja um dos extremos do segmento de
reta ótimo.
Como o simplex nos indica que o modelo tem infinitas soluções ótimas ? Se obser-
varmos a equação de Z ótima, Z + 4F1 = 48, podemos observar que ela tem uma
característica incomum: uma variável não básica, F2 , não aparece, ou seja tem
coeficiente igual a 0, na equação. O fato de uma, ou mais, variáveis não básicas
não aparecerem (coeficiente igual a 0) na equação (0) da solução ótima, indica que
o modelo tem infinita soluções ótimas. Como obtê-las ?
Podemos fazer com que F2 , a variável não básica que não aparece na equação de
Z, seja variável entrante. Como o seu coeficiente é igual a 0, ela não vai alterar o
valor ótimo de Z.
Escolhemos a variável sainte pelo processo normal e obtemos:
Variável entrante: F2 Variável sainte: F3
Nova solução básica:
(0) Z + 4F1 = 48
1 1
(1) x2 − F1 + F3 = 5
4 2
3 1
(2) x1 + F1 − F3 = 1
4 2
5 1
(3) − F1 + F 2 + F3 = 2
4 2
2.3 Situações que podem acontecer no Método Simplex 49
2x ∗
= 5 ( )
F ∗
= 0
VB x∗1 = 1 VNB 1
F3∗ = 0
F2 = 2
∗
Z = 48
A nova solução, que também é ótima, é o ponto B do gráfico, ou seja o outro extremo
do segmento de reta.
Como o nosso modelo é um modelo de 2 variáveis de decisão (x 1 e x2 ), o “lado” do
espaço solução é um segmento de reta. Para se definir qualquer ponto de um seg-
mento de reta precisamos de 2 pontos do segmento. O simplex nos deu os 2 pontos:
A:(3,3) e B:(1,5). Como definir genericamente um ponto (a,b) do segmento de reta
limitado pelos pontos (3,3) e (1,5) ?
Cada
ponto ótimo (a, b)∗ deve obedecer a:
(a, b) = α1 (3, 3) + α2 (1, 5)
∗
α1 + α 2 = 1
α1 , α 2 ≥ 0
Generalizando,
se temos n pontos ótimos (p1 , p2 , . . . , pn ), devemos ter:
(a, b, . . . , n) = α1 p1 + α2 p2 + . . . + αn pn
∗
α1 + α 2 + . . . + α n = 1
αi ≥ 0
Resumindo, em um modelo de P.Linear com n variáveis de decisão e múltiplas
(infinitas) soluções ótimas temos que encontrar pelo Simplex n pontos ótimos.
Qualquer combinação linear destes n pontos será também um ponto ótimo pois
será um dos pontos do lado “ótimo” do espaço solução.
F(x)
f(x)
Min[f(x)]
x
x0
Max[-f(x)]
-f(x)
O que podemos inferir deste gráfico, considerando que f (x) e −f (x) são recípro-
cas ? O valor do mínimo de f (x) é igual, em valor absoluto, ao valor do máximo
de −f (x). Também podemos observar que o valor, x0 , que minimiza f (x) e que
maximiza −f (x) é o mesmo. Assim sendo, se quisermos achar o mínimo de f (x),
podemos multiplicar por −1 e achar o máximo de −f (x).
No simplex podemos fazer a mesma coisa, qual seja multiplicar a função objetivo
por −1 e resolver por maximização. Quando tivermos a solução ótima do problema
de maximização basta multiplicar o valor ótimo de Z por −1 para ter a solução do
modelo de minimização. Os valores das variáveis é o mesmo para os 2 problemas.
Não devemos confundir uma variável irrestrita em sinal com uma variável, por
exemplo x3 , para a qual exista uma restrição do tipo x3 ≥ −4. Como esta va-
riável pode assumir alguns valores negativos, o que não é permitido no simplex,
temos que fazer uma substituição. Para isto criamos uma variável não existente
no modelo, por exemplo x5 , e fazemos com que x5 seja igual a x3 + 4. Temos então
x3 = x5 − 4. Substituímos, no modelo, cada x3 por x5 − 4, considerando x5 ≥ 0.
Resolvemos o simplex e o valor ótimo de x∗3 será igual x∗5 − 4
52 O Método Simplex
dade um valor diferente de zero para qualquer destas variáveis indicaria que o
modelo não tem solução praticável pois qualquer valor (6= 0) para uma variável
artificial indicaria uma solução impraticável.
Para resolver isto vamos dividir o simplex em 2 fases: Na primeira vamos abando-
nar, provisoriamente, a função objetivo original e criar uma outra função objetivo,
que chamaremos de W , visando minimizar o somatório das variáveis artificiais. Se
a função objetivo ótima desta primeira fase for igual a zero, o modelo tem solução
pois as variáveis artificiais foram zeradas e podemos então partir para a 2 a fase
que objetivará otimizar a função objetivo original.
Voltando ao nosso exemplo, podemos criar a função objetivo da fase I que será:
(MIN) W = A1 + A3 que, como já vimos, é equivalente a (MAX) W = −A1 − A3 .
Esta transformação de minimização em maximização não é obrigatória e, obvia-
mente, poderíamos trabalhar com minimização.
O sistema de equações lineares fica como:
(0) W + A1 + A3 = 0
(1) x1 + 2x2 + A1 = 10
(2) 6x1 + 6x2 + F2 = 40
(3) x1 − F3 + A3 = 2
Neste ponto devemos observar que as variáveis A1 e A2 foram criadas para serem
as variáveis básicas iniciais. Pela estrutura utilizada no simplex, variáveis básicas
só devem aparecer uma única vez com coeficiente igual a 1. Como podemos ver
acima, A1 e A3 estão aparecendo, indevidamente, na equação (0). Assim, antes de
começar o simplex temos que eliminá-las de lá. Mais uma vez, temos 2 formas de
fazer isto: obter os valores de A1 e A3 das equações (1) e (3) e substituir na equação
(0) ou multiplicar as equações (1) e (3) por −1 e somá-las à equação (0), obtendo:
W + A1 + A3 = 0
−x1 − 2x2 − A1 = −10 +
−x1 + F3 − A3 = −2
(0) W + A 1 + A3 = 0
1 1 1
(1) x2 + F3 + A1 − A3 = 4
2 2 2
(3) x − F3 + A3 = 2
1
2
x = 4
3
A = 0
VB F2 = 4 VNB A1 = 0
x1 = 2 F3 = 0
W =0
Chegamos ao ótimo da fase I e o valor de W é zero ou seja conseguimos levar a zero
as variáveis artificiais.
Se no ótimo da fase I o valor ótimo de W é diferente de zero, ou seja o valor ótimo
de uma ou mais variáveis artificiais é diferente de 0, significa que o modelo não
tem solução praticável. Quando isto acontece é porque não existe nenhum ponto
que satisfaça a todas as restrições ou, em outras palavras, o espaço solução é o
conjunto vazio.
Como este não foi o caso do nosso exemplo, podemos passar para a fase II. Para
fazer isto, eliminamos a equação de W e todas as variáveis artificiais. Trazemos
de volta a função objetivo original, ficando nosso sistema como:
(2) F2 + 3F3 = 4
(3) x1 − F3 = 2
Como x1 e x2 são variáveis básicas, elas tem que ser eliminadas da equação de Z.
Podemos tirar o valor de x1 da equação (3) e de x2 da equação (1) e substituir na
equação (0). Podemos também multiplicar as equações (1) e (3) por 3 e 4 e somar a
2.4 Outras formas de modelos - O Simplex de 2 fases 55
5
Z− F3 = 20
2
A solução básica inicial da fase II fica como:
5
(0) Z− F3 = 20
2
1
(1) x 2 + F3 = 4
2
(2) F2 + 3F3 = 4
(3) x − F3 = 2
1
x 2 = 4
n o
VB F2 = 4 VNB F3 = 0
x1 = 2
Z = 20
Lembrando que o objetivo é maximizar o valor de Z, temos:
Variável entrante: F3 Variável sainte: F2
A nova solução básica fica como:
5 70
(0) Z+ F2 =
6 3
1 10
(1) x2 − F2 =
6 3
1 4
(2) F2 + F 3 =
3 3
1 10
(3) x1 + F2 =
3 3
10
x ∗
=
2
3
n o
VB 4 VNB F2 = 0
∗
F3∗ =
3
10
x1 =
∗
3
70
Z∗ = A solução é ótima !
3
56 O Método Simplex
2.6 Exercícios
A) Resolva o modelo a seguir pelo Simplex:
s.a.
2x1 + 4x2 ≤ 22
−x1 + 4x2 ≤ 10
2x1 − x2 ≤ 7
x1 − 3x2 ≤ 1
x1 , x2 ≥ 0
s.a.
3x1 + x2 + 3x3 ≤ 30
xi ≥ 0
(MAX) Z = 2x1 − x2 + x3
s.a.
3x1 + x2 + x3 ≤ 60
x1 − x2 + 2x3 ≤ 10
x1 + x2 − x3 ≤ 20
xi ≥ 0
58 O Método Simplex
s.a.
xi ≥ 0
(MAX) Z = x1 + x2 + x3 + x4
s.a.
x1 + x 2 ≤ 2
x3 + x 4 ≤ 5
xi ≥ 0
s.a.
x1 + 2x2 ≤ 4
x1 + x 2 = 3
xi ≥ 0
2.6 Exercícios 59
s.a.
2x1 + x2 ≥ 10
−3x1 + 2x2 ≤ 6
x1 + x 2 ≥ 6
xi ≥ 0
s.a.
−3x1 + x2 ≤ 6
x1 + 2x2 ≤ 10
x2 ≥ −3
x1 ⇒ Irrestrita em sinal
(MAX) Z = x1 + 2x2 − x3
s.a.
−2x1 − x2 + 3x3 ≥ −5
−4x1 − x2 + x3 ≤ 4
x1 + 3x2 ≤ 6
x1 , x2 ⇒ Irrestritas em sinal
x3 ≥ 0
60 O Método Simplex
s.a.
5x1 + x2 + x3 + 8x4 = 10
xi ≥ 0
s.a.
3x1 + 2x2 ≥ 6
xi ≥ 0
s.a.
5x1 + 3x2 + x3 ≤ 9
2x1 + x2 + x3 ≥ 5
xi ≥ 0
2.7 Respostas dos exercícios da seção 2.6 61
s.a.
x1 + 2x2 + 4x3 = 20
xi ≥ 0
Vimos nos capítulos anteriores como obter uma solução ótima para um modelo
de P.Linear. Normalmente, em aplicações reais, somente a solução ótima não é
suficiente para se ter todo tipo de informações que queremos. Assim, é comum se
desejar saber o que aconteceria com a solução do modelo se um dos parâmetros
sofresse algum tipo de variação. Uma alternativa óbvia seria resolver o modelo
modificado e obter a nova solução ótima. Este processo no entanto é demorado e
caro pois implicaria no uso, repetida vezes, do computador.
Veremos neste capítulo que, sem resolver o modelo novamente, é possível obter
quase todas as informações necessárias em conseqüência de variações nos parâme-
tros do modelo.
Para uma melhor compreensão das técnicas usadas vamos trabalhar com o se-
guinte exemplo:
Uma empresa produz 3 produtos em uma de suas fábricas. Na fabricação dos 3
produtos, 3 insumos são críticos em termos de restringir a capacidade de produção
possível: a mão de obra disponível, a quantidade de matéria prima e o espaço para
a armazenagem das unidades produzidas. Assim, o Depto de Produção já sabe que,
para o próximo mês, a fábrica terá disponível 100 kilos de matéria prima, 360 m 2
de área para estocar as unidades produzidas e 400 homens–hora de mão de obra.
Cada unidade produzida do produto 1 consome 1 kilo de matéria prima, precisa de
6 m2 para ser armazenada e necessita de 8 homens–hora em termos de mão de
obra. Já cada unidade do produto 2 consome 2 kilos de matéria prima, necessita
também de 6 m2 para ser armazenada e envolve o uso de 4 homens–hora de mão
de obra. Por sua vez, cada unidade produzida do produto 3 precisa de 2 kilos de
matéria prima, 4 m2 para ser armazenada e o trabalho equivalente a 4 homens–
hora.
Reduzindo do preço de venda todos os custos diretos e indiretos, foi determinado
que o lucro unitário é igual a $4 para o produto 1, $5 para o produto 2 e $3 para
cada unidade produzida do produto 3.
Levando em conta que o objetivo da empresa é maximizar o lucro com a produção
e a venda dos 3 produtos foi formulado o seguinte modelo de P.Linear visando de-
terminar as quantidades que deveriam ser fabricadas de cada produto no próximo
mês.
Variáveis de decisão:
64 Análise depois do Ótimo
s.a
xi ≥ 0
Submetido ao Simplex, a solução apresentou as seguintes soluções básicas onde (I)
é a solução inicial e (F) é a solução final ou seja, a ótima:
Solução (I)
Como x1 é variável básica, temos que eliminá-la da equação (0). Para isto multi-
plicamos a equação (2), que é onde x1 aparece como básica na solução (F), por ∆ e
somamos à equação (0),
obtendo:
2 1 1
(0)F Z + 1 − ∆ x3 + [1 − ∆] F1 + + ∆ F2 = 280 + 20∆
3 2 3
Para garantir que a solução (F) continua sendo a ótima, temos que ter todos os
coeficientes ≥ 0, ou seja:
2 3
1− ∆≥0⇒∆≤
3 2
1−∆≥0⇒∆≤1
1 1 3
+ ∆≥0⇒∆≥−
2 3 2
Como há superposição temos:
-3/2 0 1 3/2
-40 -20 0 20
3.4 Dualidade
O termo dualidade refere-se ao fato de que cada modelo de P.Linear consiste de 2
formas. A primeira, ou original, é chamada de primal e a segunda forma do mo-
delo é chamada de dual. Como seria esperado, as propriedades de uma das formas
do modelo estão relacionadas com as propriedades da outra. Como resultado disto
é possível, dada a solução ótima de uma das formas do modelo, encontrar a solução
ótima da outra forma do modelo.
A solução do chamado modelo dual fornece informações significativas sobre as
questões econômicas existentes em qualquer modelo de P.Linear.
escrever então:
16y1 + 25y2 ≥ 4x1 + 5x2 + 9x3
ou
Y ≥Z
Este resultado implica em que o valor da função objetivo de uma solução praticável
de um dos modelos é um limite para qualquer outra solução praticável do outro
modelo.
Assim, por exemplo, se considerarmos a solução praticável, para o modelo primal,
em que x1 = 1, x2 = 2 e x3 = 2, dando um valor igual a 32 para Z e a solução
praticável y1 = 0 e y2 = 3 para o dual, dando um valor igual a 75 para Y , que
conclusão podemos tirar ?
Qualquer solução praticável, inclusive a ótima, para o primal será menor ou igual
a 75 e qualquer solução praticável, inclusive a ótima, para o dual será maior ou
igual a 32. A conclusão óbvia é que a solução ótima será aquela em que Z = Y .
Podemos então formular o enunciado do chamado Teorema Dual:
No evento em que tanto o modelo dual quanto o primal possuam
soluções praticáveis, temos que: Z ∗ = Y ∗ , ou seja, o valor ótimo
dos 2 modelos é o mesmo.
Um corolário deste teorema é que se um dos modelos tem solução ilimitada, então
o outro modelo não tem solução praticável pois caso tivesse, seria uma contradição
ao exposto anteriormente.
Logo podemos enunciar o corolário como:
Se um dos modelos tem solução ótima ilimitada (Z ∗ ou Y ∗ = ±∞),
então o outro modelo não tem solução praticável.
3.4 Dualidade 73
1
Coef. de xn em (1)F = 3 × 1 + 6 × − +4×0=2
6
1
Coef. de xn em (2)F = 3 × −1 + 6 × + 4 × 0 = −1
3
Coef. de xn em (3)F = 3 × 4 + 6 × −2 + 4 × 1 = 4
Podemos
então escrever o novo sistema (F):
1
(0) Z + x3 + F1 + F2 − 2xn = 280
2
(1) x2 + 4 x3 + F1 − 1 F2 + 2xn = 40
(F) 3 6
2 1
(2) x 1 − x 3 − F 1 + F2 − xn = 20
3 3
(3) 4x3 + 4F1 − 2F2 + F3 + 4xn = 80
F 1 = 0
x2 = 40
F2 = 0
VB x1 = 20 VNB
x3 = 0
F3 = 80
xn = 0
Z = 280
Exercício: Prosseguir com o simplex e achar a nova solução ótima.
Resp: Z ∗ = 320 x∗1 = 40 x∗n = 20
3.9 Exercícios
A) Seja o seguinte modelo de P.Linear:
(MAX) Z = 4x1 + 5x2 + 9x3 + 11x4
s.a.
x1 + x2 + x3 + x4 ≤ 15
7x1 + 5x2 + 3x3 + 2x4 ≤ 120
3x1 + 5x2 + 10x3 + 15x4 ≤ 100
xi ≥ 0
Aplicando-se o Simplex, temos as seguintes soluções básicas onde (I) é a solução
inicial
e (F) é a solução final (ótima):
(0) Z − 4x1 − 5x2 − 9x3 − 11x4 = 0
(1) x1 + x2 + x3 + x4 + F1 = 15
(I)
(2) 7x1 + 5x2 + 3x3 + 2x4 + F2 = 120
(3) 3x1 + 5x2 + 10x3 + 15x4 + F3 = 100
x1 = 0
F1 = 15
x2 = 0
VB F2 = 120 VNB
x3 = 0
F3 = 100
x4 = 0
Z=0
Variável
entrante: x4 Variável Sainte: F3
9 4 5 11 220
(0) Z − x1 − x2 − x3 + F3 =
5 3 3 15 3
4 2 1 1 25
(1)
x1 + x2 + x3 + F 1 − F3 =
(1) 5 3 3 15 3
33 13 5 2 320
(2) x + x + x + F − F =
1 2 3 2 3
5 3 3 15 3
(3) 1 x1 + 1 x2 + 2 x3 + x4 + 1 F3 = 20
5 3 3 15
3
25
x = 0
1
F =
1
3
x = 0
VB 320 VNB 2
F2 =
3
x = 0
3
20
x4 =
3
F3 = 0
220
Z=
3
Variável entrante: x1 Variável Sainte: F1
82 Análise depois do Ótimo
1 11 9 7 1105
(0) Z + x2 − x3 + F1 + F3 =
6 12 4 12 12
5 5 5 1 125
(1) x1 + x2 +
x3 + F1 − F3 =
(2) 6 12 4 12 12
7 13 33 5 455
(2) − x2 − x3 − F1 + F 2 + F3 =
6 12 4 12 12
(3) 1 x2 + 7 x3 + x4 − 1 F1 + 1 F3 = 55
6 12 4 12 12
125
x = 0
2
x =
1
12
x = 0
VB 455 VNB 3
F =
2
12
F = 0
1
55
x4 =
12
F3 = 0
1105
Z=
12
Variável
entrante: x3 Variável Sainte: x4
3 11 13 5 695
(0) Z + x2 + x4 + F1 + F3 =
7 7 7 7 7
5 5 10 1 50
(1) x1 + x3 − x4 +
F1 − F3 =
(F) 7 7 7 7 7
7 13 61 4 325
(2) − x2 + x4 − F1 + F 2 + F3 =
6 7 7 7 7
(3) 2 x2 + x3 + 12 x4 − 3 F1 + 1 F3 = 55
7 7 7 7 7
50
x ∗
= 0
x ∗
= 2
1
7
x = 0
∗
VB 325 VNB 4
F2∗ =
7
F = 0
∗
1
55
x3 =
∗
7
F3 = 0
∗
695
Z∗ =
7
Responda as seguintes perguntas relativas ao modelo acima:
7 12 1 4
(0) Z+ x1 + x4 +F2 = 11F1 +
5 5 5 5
3 4 2 1
(1) x1 + x 2 + x4 + F1 + F2 = 4
10 5 5 10
1 2 1 3
(2) − x1 + x 3 + x4 + F1 + F2 = 5
10 5 5 10
1 1
(3) x1 + 10x4 + F1 − F2 + F3 = 11
2 2
D) A Companhia Móveis Finos S/A fabrica vários tipos de móveis, inclusive móveis
rústicos para casas de campo. Atualmente eles fabricam 3 produtos na linha
de produção de móveis rústicos: uma cadeira de balanço, um banco de jardim e
uma mesa de jantar.
Estes produtos são fabricados em 2 etapas envolvendo a seção de corte de ma-
deira e a seção de montagem dos móveis.
O tempo, em horas, necessário para cada item em cada seção é mostrado abaixo:
Produto
Cadeira Banco Mesa Capacidade (horas)
Seção de Corte 1,2 1,7 1,2 1.000
Seção de Montagem 0,8 0 2,3 1.200
O lucro que a Móveis Finos S/A recebe pela fabricação e venda de cada uni-
dade é $3 para a cadeira, $3 para o banco e $5 para a mesa.
A Companhia está tentando planejar a sua produção para o próximo mês. Como
a procura é muito grande por este tipo de móveis, qualquer quantidade que ve-
nha a ser produzida será vendida.
A produção está limitada, no entanto, pelas horas disponíveis nas seções de
corte e montagem, além da quantidade de madeira disponível para este tipo de
móveis.
No próximo mês a Companhia disporá de somente 2.000 m3 de madeira para
fazer os móveis da linha rústica, sendo que cada cadeira gasta 2 m3 , cada banco
3 m3 e cada mesa 4,5 m3 .
De maneira a determinar a produção ótima do próximo mês foi formulado o se-
guinte modelo de P.linear:
(MAX) Z = 3x1 + 3x2 + 5x3
s.a
1, 2x1 + 1, 7x2 + 1, 2x3 ≤ 1000
0, 8x1 + 2, 3x3 ≤ 1200
2x1 + 3x2 + 4, 5x3 ≤ 2000
xi ≥ 0
onde:
x1 ⇒ No de cadeiras a serem fabricadas no próximo mês
x2 ⇒ Idem, bancos
x3 ⇒ Idem, mesas
O modelo foi submetido ao Simplex, obtendo-se o seguinte sistema final:
86 Análise depois do Ótimo
83 7 4 8300
(0) Z+ x2 + F1 + F3 =
60 6 5 3
27 3 2
(1) x1 + x2 + F1 − F3 = 700
20 2 5
37 1 3 1000
(2) − x2 + F1 + F 2 − F3 =
30 3 5 3
1 2 2 400
(3) x2 + x 3 − F1 + F3 =
15 3 5 3
Responda as seguintes questões:
(4) x3 + x4 − F4 = 100
(1) x3 + F1 − F2 + F3 = 1000
4 2
(2) x1 − x3 +
F2 − F 3 = 2000
33
15
(3) x2 + x3 − F2 + F3 = 1000
3 3
Exercício A
1) –25/21; 3/42; 4/7
2) –34/21; –5/42; 1/7
3) 18/7
4) 4/7
5) Somente a CLD da equação (2) é alterada.
260/3; 215/12; 185/7
6) 643/7; 10/7; 569/7; 67/7; sim
7) O Dual do problema original é:
(MIN) Y = 15y1 + 120y2 + 100y3
s.a
y1 + 7y2 + 3y3 ≥ 4
y1 + 5y2 + 5y3 ≥ 5
y1 + 3y2 + 10y3 ≥ 9
y1 + 2y2 + 15y3 ≥ 11
yi ≥ 0
11) 4
12) 93/7
Exercício B
1) Z = 11 x2 = 4 x3 = 5 F3 = 11 única.
3
2) [−∞, −
5
3) [−∞, 25 ]
4) (a) [−3; ∞]
(b) [− 14
3
; 34]
(c) [−1; ∞]
92 Análise depois do Ótimo
5)
(MIN) Y = 7y1 + 12y2 + 10y3
s.a
y1 − y2 − y3 ≥ −2
3y1 − 2y2 − 4y3 ≥ −1
−y1 + 4y2 + 3y3 ≥ 3
2y1 + 8y3 ≥ −2
yi ≥ 0
6) y1 = 5 y2 = 54 y3 = 0 Y = 11
1
7) Sim
8) –7
9) –7/14;
Exercício C
1)
(MIN) Y = y1 + y2 + y3 + y4 + y5
s.a
y1 + y 5 ≥ 8
y1 + y 2 ≥ 7
y1 + y3 ≥ 10
y3 + y4 ≥ 10
y4 + y 5 ≥ 2
yi ≥ 0
2)
(MAX) Z = 8x1 + 7x2 + 10x3 + 10x4 + 2x5
s.a
x1 + x 2 ≤ 1
x2 + x 3 ≤ 1
x3 + x 4 ≤ 1
x4 + x 5 ≤ 1
x1 + x 5 ≤ 1
3) Z = 37/2 x2 = 1/2 x3 = 1/2 x1 = 1/2 x4 = 1/2 x5 = 1/2
Y = 37/2 y1 = 13/2 y2 = 1/2 y3 = 19/2 y4 = 1/2 y5 = 3/2
4) Y = 19 y1 = 7 y2 = 0 y3 = 10 y4 = 0 y5 = 2
Exercício D
1)
x1 = cadeiras = 700
x2 = bancos = 0
400
x3 = mesas =
3
8300
Z=
3
3.10 Respostas dos exercícios da seção 3.9 93
2) Sim
3) Isto equivale a ter uma nova restrição no Dual:
1, 8y1 + 0, 5y2 + 13y3 ≥ L
4
1, 8 × 1, 166 + 0, 5 × 0 + 13 × ≥ L
5
L > 3, 14
20
4) [ ; 5] Com 2,5 a solução ótima não se altera.
9
8300
Logo a solução atual continua ótima e o lucro passa a ser: Z = − (3 −
3
7250
2.5) × 700 =
3
Exercício E
1)
x2 = Standard = 50
x3 = Viajante = 100
Z = 11000
2) [1700; ∞], Sim
3) Sim, pois o valor implícito é $30.
4) O mesmo pois a restrição dual não é violada.
5) Sim, pois a nova restrição dual é violada.
Exercício F
1)
(MIN) Y = 480y1 + 800y2 + 900y3
s.a
2y1 + 5y2 + 7y3 ≥ 90
8y1 + 4y2 + 8y3 ≥ 160
4y1 + 8y2 + 3y3 ≥ 40
2y1 + 5y2 + 5y3 ≥ 100
y1 = 12, 5 y2 = 15 y3 = 0
Exercício H
1)
x1 [7, 5; 15]
x2 [11; 20]
x3 [−∞; 11, 667]
2)
(a) [5000; ∞]
(b) [6000; 10000]
(c) [3000; 6000]
Exercício I
1) [2; 6] 6,01
2) [−11; ∞]
3)Não, a restrição dual é violada.
4)
(0) . . . − 13x4 = 33
(1) . . . − 7x4 = 35
3
(2) . . . − x4 = 5, 5
2
(3) . . . − 2x4 = 16
Capítulo 4
Algorítimo dos Transportes
Veremos neste capítulo o chamado Algorítimo dos Transportes. Este algorítimo re-
solve, de maneira muito mais rápida, modelos de programação linear cuja formu-
lação apresenta certas características que permitem o uso do algorítimo. Veremos
também que o Algorítimo dos Transportes nada mais é do que uma forma diferente
de se fazer o simplex.
4.1 Um exemplo
Uma empresa tem 3 fábricas que produzem um determinado produto. A capaci-
dade de produção mensal das 3 fábricas é de 6, 1 e 10 unidades respectivamente. A
empresa tem 4 armazéns de vendas que vendem mensalmente 7, 5, 3 e 2 unidades
do produto respectivamente. O custo de transportar 1 unidade de cada fábrica para
cada armazém está dado na tabela abaixo:
Armazém
Fábrica 1 2 3 4
1 2 3 11 7
2 1 0 6 1
3 5 8 15 9
Podemos observar que todo o modelo, ou seja a função objetivo e as restrições estão
“escritas” no quadro.
4.4 Fonte ou destino artificial 97
1 2 3 4 Disp.
2 3 11 7
1 6
1 0 6 1
2 1
5 8 15 9
3 20
Nec. 7 5 3 2
Será necessário criar então um destino ARTIFICIAL (destino 5), com custos de
transporte iguais a ZERO (o destino não existe fisicamente):
1 2 3 4 5 Disp.
2 3 11 7 0
1 6
1 0 6 1 0
2 1
5 8 15 9 0
3 20
Nec. 7 5 3 2 10
3. Se não for a ótima, obter a melhor sol. básica adjacente e voltar a etapa 2.
Etapas do Método
1. Calcule para cada linha e cada coluna a diferença entre os 2 menores custos. No
caso dos 2 menores custos serem iguais a diferença é zero.
4. Elimine a linha ou coluna esgotada. No caso em que uma linha e uma coluna
são esgotadas ao mesmo tempo, só podemos esgotar uma delas ficando a outra
com zero, mas não esgotada.
5. Voltar a etapa 1.
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
2 3 11 7
1 6 1
1 0 6 1
2 1 1
5 8 15 9
3 10 3
Nec. 7 5 3 2
Diferenças 1 3 5 6
Na 4a coluna temos a maior diferença (6). Nesta coluna, escolhemos a cela com o
menor custo. É a cela correspondente a x24 que tem custo igual a 1.
Agora temos que atribuir a maior quantidade possível para x24 , lembrando que a
soma da linha 2 tem que dar 1 e a soma da coluna 4 tem que dar 2. Assim, o maior
valor que pode ser atribuído a x24 é o MIN(1,2), ou seja 1.
Ao se atribuir 1 a x24 , a linha 2 fica esgotada, ou seja nada pode ser atribuído as
outras variáveis da linha (serão variáveis não básicas = 0) pois a soma já deu 1.
Por sua vez, na coluna 4, cuja soma tem que dar 2, fica faltando 1 pois 2 − 1 = 1.
Temos que recalcular as diferenças entre os 2 menores custos de cada linha e co-
luna, sem considerar a linha 2 que está eliminada. Como a última eliminação foi
de uma linha, a diferença nas linhas, obviamente, não se alteraram. Basta então
calcular as diferenças das colunas, obtendo-se:
100 Algorítimo dos Transportes
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
2 3 11 7
1 6 1
2 1 1
5 8 15 9
3 10 3
Nec. 7 5 3 1
Diferenças 3 5 4 2
A maior diferença está agora na 2a coluna (5). A cela de menor custo (=3) nesta
coluna é a correspondente a variável x12 . Como a soma da linha tem que dar 6 e a
soma da coluna tem que dar 5, a maior quantidade que pode ser atribuída a x12 é
o MIN(5,6), ou seja 5.
Com 5 em x12 , a coluna fica esgotada e na linha ainda fica faltando 1 (6 − 5).
Temos quer voltar a calcular a diferença entre os 2 menores custos, sem conside-
rar a coluna 2 que está eliminada. Como acabamos de eliminar uma coluna, as
diferenças só podem ter se alterado nas linhas. Temos então:
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
2 11 7
1 5 1 5
2 1 1
5 15 9
3 10 4
Nec. 7 5 3 1
.
Diferenças 3 4 2
A maior diferença está agora na 1a linha (5). A cela de menor custo desta linha é a
correspondente a x11 que tem custo igual a 2. O máximo que conseguimos atribuir
a x11 é o MIN(1,7) ou seja 1. Ao fazer isto, a linha 1 fica esgotada e na coluna 1
ficam ainda faltando 6 (7 − 1). Eliminando-se a linha 1, temos a seguinte matriz:
4.8 Métodos para achar a solução básica inicial 101
Armazém
Fábrica 1 2 3 4 Disp.
1 1 5 6
2 1 1
5 15 9
3 10
Nec. 6 5 3 1
Neste ponto não é mais necessário seguir com o algorítimo pois como na coluna 1
só resta, com possibilidade de receber valor, a cela correspondente a variável x 31 e
restam 6 para serem atribuídos, fazemos x31 = 6.
Aplicando-se o mesmo raciocínio, temos x33 = 3 e x34 = 1.
Temos então a solução básica inicial:
Armazém
Fábrica 1 2 3 4 Disp.
2 3 11 7
1 1 5 6
1 0 6 1
2 1 1
5 8 15 9
3 6 3 1 10
Nec. 7 5 3 2
x 11 = 1
x 13 = 0
x = 5 x = 0
12
14
x24 = 1 x21 = 0
VB VNB
x31 = 6
x22 = 0
x 33 = 3
x 23 = 0
x34 = 1 x32 = 0
Z = 1 × 2 + 5 × 3 + 1 × 1 + 6 × 5 + 3 × 15 + 1 × 9 = 102
102 Algorítimo dos Transportes
Exercício: Achar a solução básica inicial, pelo método de Vogel, para o modelo
abaixo:
Armazém
Fábrica 1 2 3 4 Disp.
5 8 3 6
1 30
4 5 7 M
2 50
6 2 4 5
3 40
Nec. 30 20 40 30
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
5 8 3 6
1 30 2
4 5 7 M
2 50 1
6 2 4 5
3 40 2
Nec. 30 20 40 30
Diferenças 1 3 1 1
A maior diferença está na 2a coluna. A cela de menor custo desta coluna é a cor-
respondente a x32 . O máximo possível de atribuir a x32 é igual ao MIN(40,20),
ou seja 20. Esgota-se a 2a coluna e ficam faltando 20 (= 40 − 20) na 3a linha.
Recalculando-se as diferenças (só das linhas) temos:
4.8 Métodos para achar a solução básica inicial 103
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
5 3 6
1 30 2
4 7 M
2 50 3
6 4 5
3 20 20 1
Nec. 30 20 40 30
.
Diferenças 1 1 1
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
3 6
1 30 3
7 M
2 30 20 M−7
4 5
3 20 20 1
Nec. 30 20 40 30
. .
Diferenças 1 1
A maior diferença está na 2a linha (M − 7). A cela de menor custo é a que corres-
ponde a x23 . Pode-se colocar nela o MIN(20,40), ou seja 20. Esgota-se a 2 a linha e
na 3a coluna ainda restam 20.
Recalculando-se as diferenças (só das colunas), temos:
104 Algorítimo dos Transportes
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
3 6
1 30 3
2 30 20 50
4 5
3 20 20 1
Nec. 30 20 20 30
. .
Diferenças 1 1
2 30 20 50
5
3 20 20
Nec. 30 20 40 30
Como na 4a coluna só restam as celas (1,4) e (3,4) temos x14 = 10 e x34 = 20.
A solução básica inicial é:
Armazém
Fábrica 1 2 3 4 Disp.
5 8 3 6
1 20 10 30
4 5 7 M
2 30 20 50
6 2 4 5
3 20 20 40
Nec. 30 20 40 30
4.9 Esgotamento simultâneo de linha e coluna 105
x 13 = 20
x = 10
14
x21 = 30
n o
VB VNB as demais = 0
x 23 = 20
x 32 = 20
x34 = 20
Z = 3 × 20 + 6 × 10 + 4 × 30 + 7 × 20 + 2 × 20 + 5 × 20 = 520
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
5 8 3 6
1 30 2
4 5 7 M
2 50 1
9 2 4 8
3 30 2
Nec. 30 30 40 10
Diferenças 1 3 1 2
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
5 3 6
1 30 2
4 7 M
2 50 3
9 4 8
3 30 0 4
Nec. 30 30 40 10
.
Diferenças 1 1 2
A maior diferença está agora na 3a linha. A cela de menor custo é (3,3) e o maior
valor que podemos atribuir a x33 é igual ao MIN(0,40), ou seja 0. Logo x33 vai
ser uma variável básica degenerada na solução básica inicial. Recalculando-se a
diferença entre os 2 menores custos temos:
Armazém
Fábrica 1 2 3 4 Disp. Diferenças
5 3 6
1 30 2
4 7 M
2 50 3
3 30 0 30
Nec. 30 30 40 10
.
Diferenças 1 4 M–6
1 2 3 4 Disp.
2 3 11 7
1 6 6
1 0 6 1
2 1 1
5 8 15 9
3 1 4 3 2 10
Nec. 7 5 3 2
108 Algorítimo dos Transportes
x 11 = 6
x = 1
22
x31 = 1
n o
VB VNB as demais = 0
x 32 = 4
x 33 = 3
x34 = 2
Z = 112
Vamos escrever as restrições do modelo dual associadas às variáveis básicas:
x11 → v1 + w1 ≤ 2
x22 → v2 + w2 ≤ 0
x31 → v3 + w1 ≤ 5
x32 → v3 + w2 ≤ 8
x33 → v3 + w3 ≤ 15
x34 → v3 + w4 ≤ 9
Como o coeficiente de variável básica na equação (0) é igual a zero temos:
vi + wj − cij = 0
pois o Lesq − Ldir da restrição dual associada é igual ao coeficiente da variável na
eq.(0), ou seja igual a zero no caso de variáveis básicas.
Assim, por causa desta propriedade podemos escrever:
v1 + w1 − 2 = 0
v2 + w2 − 0 = 0
v3 + w1 − 5 = 0
v3 + w2 − 8 = 0
v3 + w3 − 15 = 0
v3 + w4 − 9 = 0
Como temos 6 equações e 7 incógnitas, escolhemos uma das variáveis (preferenci-
almente a que aparece mais) e atribuímos um valor qualquer (normalmente zero).
Assim fazendo v3 = 0 temos como solução do sistema:
w4 = 9, w3 = 15, w2 = 8, w1 = 5, v2 = −8, v1 = −3
Para saber se uma solução básica é ótima temos que “olhar” a equação de Z (eq.
0), ou seja, os coeficientes das variáveis não básicas que são os que aparecem na
equação (0).
Para obter estes coeficientes basta aplicar a propriedade que diz que o L esq − Ldir
da restrição dual associada é igual ao coeficiente da variável na eq. (0).
Assim temos:
x12 → v1 + w2 − c12 = 2
x13 → v1 + w3 − c13 = 1
x14 → v1 + w4 − c14 = −1
x21 → v2 + w1 − c21 = −4
x23 → v2 + w3 − c23 = 1
x24 → v2 + w4 − c24 = 0
Logo a equação (0) é:
(0) Z + 2x12 + x13 − x14 − 4x21 + x23 = 112
Como o problema é de minimização, a solução não é ótima e as candidatas à variá-
4.10 Teste para saber se uma solução básica é ótima 109
1 2 3 4 Disp.
1 6 + 6
2 1 1
3 1 4 3 2 10
Nec. 7 5 3 2
O + na cela (1,2) indica que a variável x12 (entrante) vai sair de não básica (=0)
para básica onde ela vai ser maior que zero (vamos esquecer, por ora, que ela pode
ser básica degenerada, ou seja também igual a zero). Considerando então que ela
vai ser maior que zero, para que a soma da 1a linha continue dando 6, temos que
diminuir em uma das 3 outras celas da linha. No entanto, é impossível se diminuir
qualquer valor das celas (1,3) e (1,4) pois isto faria com que as variáveis x 13 e x14 se
tornassem negativas. Logo a única variável que pode ser diminuída é x 11 . Temos
então:
1 2 3 4 Disp.
1 6− + 6
2 1 1
3 1 4 3 2 10
Nec. 7 5 3 2
No entanto se x11 vai diminuir de valor, para a soma da 1a coluna continuar dando
7 temos que aumentar x21 ou x31 . Não podemos aumentar x21 pois teríamos uma
2a variável entrante. Logo teremos que aumentar x31 . Temos então:
1 2 3 4 Disp.
1 6− + 6
2 1 1
3 1+ 4 3 2 10
Nec. 7 5 3 2
Como vamos aumentar x31 , para a 3a linha continuar somando 10, teremos que
diminuir uma das outras celas da 3a linha. Se diminuirmos x34 , teríamos que au-
mentar uma das celas da 4a coluna e isto faria com que tivéssemos uma 2a variável
entrante. O mesmo raciocínio se aplica para x33 . Logo a diminuição só pode acon-
tecer em x32 . Temos então:
110 Algorítimo dos Transportes
1 2 3 4 Disp.
1 6− + 6
2 1 1
3 1+ 4− 3 2 10
Nec. 7 5 3 2
Pode-se observar que se formou um laço fechado de + e −. Sempre se forma um
laço fechado e se não é possível fechá-lo, é porque a resolução contém algum erro.
Neste ponto o objetivo é atribuir o maior valor possível para a variável entrante
sem que, obviamente, nenhuma outra variável se torne negativa. Assim, as candi-
datas a variável sainte são x11 e x32 pois elas estão sendo diminuídas quando se
aumenta a entrante. Quando a entrante (x12 ) chega a 4, x32 chega a zero, logo ela
é a variável sainte.
A nova solução básica passa a ser (4 é somado e subtraído no laço):
1 2 3 4 Disp.
1 2 4 6
2 1 1
3 5 3 2 10
Nec. 7 5 3 2
x11 = 2
x = 4
12
x22 = 1
n o
VB VNB as demais = 0
x31 = 5
x 33 = 3
x34 = 2
Z = 104
Para saber se esta solução é ótima não precisamos escrever todas as equações do
modelo dual pois podemos usar o próprio quadro para fazer o teste.
1 2 3 4 vi
2 3 11 7
1 • •
1 0 6 1
2 •
5 8 15 9
3 • • •
wj
4.10 Teste para saber se uma solução básica é ótima 111
1 2 3 4 vi
2 3 11 7
1 • •
1 0 6 1
2 •
5 8 15 9
3 • • • 0
wj 5 15 9
1 2 3 4 vi
2 3 11 7
1 • • -3
1 0 6 1
2 • -6
5 8 15 9
3 • • • 0
wj 5 6 15 9
1 2 3 4 vi
2 3 11 7
1 • • 1 -1 -3
1 0 6 1
2 -2 • 3 2 -6
5 8 15 9
3 • -2 • • 0
wj 5 6 15 9
1 2 3 4 Disp.
1 2 4 6
2 1 + 1
3 5 3 2 10
Nec. 7 5 3 2
1 2 3 4 Disp.
1 2− 4+ 6
2 1− + 1
3 5+ 3− 2 10
Nec. 7 5 3 2
1 2 3 4 Disp.
1 1 5 6
2 1 1
3 6 2 2 10
Nec. 7 5 3 2
4.10 Teste para saber se uma solução básica é ótima 113
x 11 = 1
x = 5
12
x23 = 1
n o
VB VNB as demais = 0
x 31 = 6
x 33 = 2
x34 = 2
Z = 101
No teste para saber se esta solução é a ótima, vamos fazer v3 = 0. Usando-se
vi + wj − Cij = 0 para as variáveis básicas, chegamos a:
1 2 3 4 vi
2 3 11 7
1 • • -3
1 0 6 1
2 • -9
5 8 15 9
3 • • • 0
wj 5 6 15 9
Calculando-se vi + wj − Cij para as variáveis não básicas, temos:
1 2 3 4 vi
2 3 11 7
1 • • 1 -1 -3
1 0 6 1
2 -5 -3 • -1 -9
5 8 15 9
3 • -2 • • 0
wj 5 6 15 9
Como é a única que tem coeficiente maior que zero, x13 é a variável entrante.
Escolha da variável sainte:
1 2 3 4 Disp.
1 1− 5 + 6
2 1 1
3 6+ 2− 2 10
Nec. 7 5 3 2
114 Algorítimo dos Transportes
Como x11 chega a zero quando a entrante chega a 1, ela é a variável sainte.
A nova solução básica (somando-se e subtraindo-se 1 no laço) é:
1 2 3 4 Disp.
1 5 1 6
2 1 1
3 7 1 2 10
Nec. 7 5 3 2
x12 = 5
x13 = 1
x23 = 1
n o
VB VNB as demais = 0
x31 = 7
x33 = 1
x34 = 2
Z = 100
1 2 3 4 vi
2 3 11 7
1 • • -4
1 0 6 1
2 • -9
5 8 15 9
3 • • • 0
wj 5 7 15 9
1 2 3 4 vi
2 3 11 7
1 -1 • • -2 -4
1 0 6 1
2 -5 -2 • -1 -9
5 8 15 9
3 • -1 • • 0
wj 5 7 15 9
Como nenhum dos coeficientes é maior que zero, a solução atual é ótima. Logo:
x12 = 5
∗
x ∗
= 1
13
x23 = 1
∗ n o
VB VNB as demais ∗
= 0
x∗31 = 7
x33 = 1
∗
x34 = 2
∗
Z ∗ = 100
Caso algum dos coeficientes fosse igual a zero teríamos soluções ótimas alternati-
vas (como obtê-las ?).
1 2 3 4 Disp.
1 5 1 6
2 1− + 1
3 7 1+ 1− 9
Nec. 7 5 3 2
1 2 3 4 Disp.
1 5 1 6
2 0 1 1
3 7 2 9
Nec. 7 5 3 1
Como regra geral se temos um empate entre n candidatas a variável sainte, tere-
mos n − 1 variáveis básicas degeneradas.
Vamos supor agora que nesta solução básica, x22 seja a variável entrante. Temos o
seguinte laço:
1 2 3 4 Disp.
1 5− 1+ 6
2 + 0− 1 1
3 7 2 9
Nec. 7 5 3 1
Como x23 é uma variável básica degenerada e já igual a zero, ela não pode ser
diminuída pois ficaria negativa. Assim, ela será a variável sainte e a entrante será
uma básica degenerada. A nova solução será:
1 2 3 4 Disp.
1 5 1 6
2 0 1 1
3 7 2 9
Nec. 7 5 3 1
Fábricas Armazéns
1 2 I II III
Fábricas 1 – 80 10 20 30
2 10 – 20 50 40
I 20 80 – 40 10
Armazéns II 40 20 10 – 20
III 60 70 80 20 –
1 2 I II III Disp.
0 80 10 20 30
1 100+300
10 0 20 50 40
2 200+300
20 30 0 40 10
I +300
40 20 10 0 20
II +300
60 70 80 20 0
III +300
Nec. +300 +300 100+300 100+300 100+300
Como a solução ótima implica em que uma quantidade não passe 2 vezes pelo
mesmo ponto, se somarmos a quantidade total envolvida (300 no exemplo) a cada
fonte e a cada destino estaremos garantindo a praticabilidade da quantidade que
sofre baldeação.
Antes de somar esta quantidade se a produção das fábricas for maior que a ne-
cessidadePdos armazéns, temos Pque criar um armazém artificial com a diferença
entre o ( disponibilidades − necessidades). Se for o inverso, criamos uma
fábrica artificial.
Aplicando o algorítimo dos transportes no problema modificado chegaremos a se-
guinte solução ótima:
1 2 I II III
1 300 0 100
2 300 200
I 200 100
II 300
III 300
Eliminando os termos da diagonal pois não tem sentido físico, obtemos a solução
ótima para o problema de baldeação:
4.14 Adaptação do modelo da baldeação ao algorítimo do transporte 119
I
1 100
II 100
200
2
III
Máquinas
Tarefas I II III IV
1 10 9 8 7
2 3 4 5 6
3 2 1 1 2
4 4 3 5 6
Deseja-se escolher que máquina deve fazer que tarefa de maneira que o custo total
seja mínimo.
Este problema pode ser resolvido como um modelo de transportes em que todas as
disponibilidades e todas as necessidades são iguais a 1.
Máquinas
Tarefas I II III IV Disp.
1 10 9 8 7 1
2 3 4 5 6 1
3 2 1 1 2 1
4 4 3 5 6 1
Nec. 1 1 1 1
Cada solução básica terá 7 variáveis básicas e como qualquer variável x ij (tarefa
i atribuída à máquina j) só pode ser 0 ou 1, teremos sempre 3 variáveis básicas
degeneradas.
Para resolver este tipo de problema foi desenvolvido um algorítimo bem mais rápido
que o de transportes. Este algorítimo é conhecido como “Algorítimo Húngaro”.
c) Se não foi possível fazer todas as atribuições, subtraia o menor custo de cada
coluna de cada custo da coluna, obtendo uma nova matriz de custos.
e) Se não foi possível fazer todas as atribuições, risque todos os zeros com o menor
número possível de linhas verticais e horizontais. O número de linhas deve ser
igual ao número máximo de atribuições que se conseguiu fazer no passo anterior.
f) Subtraia de cada custo não riscado pelas linhas, o menor dos custos não riscados.
g) Some este menor custo dos não riscados às intersecções das linhas traçadas no
passo e.
h) Voltar ao passo d.
Máquinas
Tarefas I II III IV
1 10 9 8 7
2 3 4 5 6
3 2 1 1 2
4 4 3 5 6
Passo a: Subtrair, em cada linha, o menor custo da linha de todos os outros custos
da linha.
Temos então:
I II III IV
1 3 2 1 0
2 0 1 2 3
3 1 0 0 1
4 1 0 2 3
I II III IV
1 3 2 1 0
2 0 1 2 3
3 1 0 0 1
4 1 0 2 3
122 Algorítimo dos Transportes
Como foi possível fazer a atribuição (um para um) nos custos iguais a zero, encon-
tramos a solução ótima:
Tarefa Máquina Custo
1 IV 7
2 I 3
3 III 1
4 II 3
Z = 14
∗
Exemplo 2:
Quatro tarefas tem que ser atribuídas a 4 máquinas. O custo de atribuir cada
tarefa a cada máquina está dado abaixo:
Máquinas
Tarefas I II III IV
1 10 9 7 8
2 5 8 7 7
3 5 4 6 5
4 2 3 4 5
coluna.
Temos então:
I II III IV
1 3 2 0 0
2 0 3 2 1
3 1 0 2 0
4 0 1 2 2
I II III IV
1 3 2 0 0
2 0 3 2 1
3 1 0 2 0
4 0 1 2 2
I II III IV
1 3 2 0 0
2 0 3 2 1
3 1 0 2 0
4 0 1 2 2
A matriz possui agora 2 tipos de custos: riscados pelas linhas e não riscados.
Passos f e g: Subtrair o menor dos custos não riscados de todos os não riscados e
somar este menor não riscado as intersecções das linhas traçadas.
Obs. Os custos riscados que não estão nas intersecções, se mantém inalterados.
Temos então:
124 Algorítimo dos Transportes
I II III IV
1 4 2 0 0
2 0 2 1 0
3 2 0 2 0
4 0 0 1 1
Voltamos ao Passo d: Tentar fazer a atribuição nos custos iguais a zero. Temos
então:
I II III IV
1 4 2 0 0
2 0 2 1 0
3 2 0 2 0
4 0 0 1 1
I II III IV
1 4 2 0 0
2 0 2 1 0
3 2 0 2 0
4 0 0 1 1
Máquinas
Tarefas I II III IV
1 10 9 − 8
2 5 8 7 7
3 5 4 6 5
4 − 3 4 5
Por razões técnicas, a tarefa 1 não pode ser feita pela máquina III e a máquina I
não pode fazer a tarefa 4.
Este é o caso em que temos que garantir que, na solução ótima, tanto x1,III quanto
x4,I sejam iguais a zero. Para forçar esta situação vamos atribuir, da mesma forma
que fizemos no algorítimo dos transportes, um custo muito alto a estas variáveis.
Este custo, que chamamos de M, representa um valor tão grande quanto se queira
imaginar. Assim teríamos:
Máquinas
Tarefas I II III IV
1 10 9 M 8
2 5 8 7 7
3 5 4 6 5
4 M 3 4 5
Máquinas
Tarefas I II III IV V VI
1 10 9 6 8 9 10
2 5 8 7 7 4 8
3 5 4 6 5 11 8
4 10 3 4 5 7 9
Para aplicarmos o algorítimo, temos que criar 2 tarefas artificiais, com custos
iguais a zero:
Máquinas
Tarefas I II III IV V VI
1 10 9 6 8 9 10
2 5 8 7 7 4 8
3 5 4 6 5 11 8
4 10 3 4 5 7 9
5 0 0 0 0 0 0
6 0 0 0 0 0 0
4.19 Exercícios
A) Uma empresa tem 3 fábricas produzindo um certo produto que deve ser reme-
tido para 4 centros de distribuição. As fábricas 1, 2 e 3 produzem 12, 17 e 11
unidades do produto, por mês, respectivamente. Cada centro de distribuição
necessita receber 10 unidades por mês. A distancia de cada fábrica para cada
um dos centros de distribuição é mostrado abaixo (em kms) :
Centro de Distribuição
Fábricas 1 2 3 4
1 800 1300 400 700
2 1100 1400 600 1000
3 600 1200 800 900
Qual deve ser o uso da terra em cada país de maneira que a demanda mundial
por estes 3 alimentos seja satisfeita e que o custo seja mínimo ?
Resolva este problema como um modelo de Transportes.
Freguês
Fábrica 1 2 3 4
1 65 63 62 64
2 68 67 65 62
3 63 60 59 60
Destinos
Fontes 1 2 3 4 Disponibilidades
1 3 7 6 4 5
2 2 4 3 2 2
3 4 3 8 5 3
Necessidades 3 3 2 2
Destinos
Fontes 1 2 3 4 5 Disponibilidades
1 8 6 3 7 5 20
2 5 M 8 4 7 30
3 6 3 9 6 8 30
4 0 0 0 0 0 20
Necessidades 25 25 20 10 20
Destinos
Fontes 1 2 3 4 5 6 Disponibilidades
1 10 18 29 13 22 0 100
2 13 M 21 14 16 0 120
3 0 6 11 3 M 0 140
4 9 11 23 18 19 0 80
5 24 28 36 30 34 0 60
Necessidades 100 120 100 60 80 40
H) O custo ($) de carga aérea, por tonelada, entre 7 cidades é dado pela tabela
abaixo (“–” significa que não existe serviço direto de carga aérea):
1 2 3 4 5 6 7
1 0 21 50 62 93 77 –
2 21 0 17 54 67 – 48
3 50 17 0 60 98 67 25
4 62 54 60 0 27 – 38
5 93 67 98 27 0 47 42
6 77 – 67 – 47 0 35
7 – 48 25 38 42 35 0
130 Algorítimo dos Transportes
Se a estudante trocar de carro nos próximos 4 anos, ela poderá fazê-lo no fim de
um dos anos por outro carro idêntico a um dos 2 tipos acima.
É certo que no fim dos 4 anos ela comprará um carro novo.
A estudante deseja minimizar os seus gastos nos próximos 4 anos.
Resolva este problema como um modelo de baldeação.
Fábrica Armazém
1 2 I II III
Fábrica 1 0 6 7 8 9
2 6 0 5 4 3
I 7 2 0 5 1
Armazém II 1 5 1 0 4
III 8 9 7 6 0
1 2 3 4 5
I 3 8 2 10 3
II 8 7 2 9 7
III 6 4 2 7 5
IV 8 4 2 3 5
V 9 10 6 9 10
1 2 3 4 5
I 3 9 2 3 7
II 6 1 5 6 6
III 9 4 7 10 3
IV 2 5 4 2 1
V 9 6 2 4 6
Máquina
Operador 1 2 3 4
1 5 5 – 2
2 7 4 2 3
3 9 3 5 –
4 7 2 6 7
132 Algorítimo dos Transportes
N) Suponha que no exemplo anterior uma 5a máquina está disponível. Seus cus-
tos de atribuição para os 4 operadores são 2, 1, 2 e 8 respectivamente. A nova
máquina substituirá uma das existentes se isto puder ser justificado economi-
camente.
Reformule o problema e resolva.
O) Um treinador de uma equipe de natação tem que formar um time para nadar
no revezamento 4x100 (4 estilos) na próxima etapa do campeonato.
Os 5 melhores nadadores da equipe e os seus respectivos tempos (em segundos)
em cada um dos estilos é mostrado abaixo:
Nadador
Estilo Carlos Celso Artur Antonio Flávio
I 37.7 32.9 33.8 37.0 35.4
II 43.4 33.1 42.2 34.7 41.8
III 33.3 28.5 38.9 30.4 33.6
IV 29.2 26.4 29.6 28.5 31.1
Armazém
Fábrica 1 2 3 4 Disp.
I 1.0 7.5 8.5 11.0 40000
II 7.5 4.5 3.0 7.5 50000
III 10.0 6.5 1.0 6.0 35000
Necessidades 35000 20000 25000 45000
Operadores
Máquinas 1 2 3 4 5 6
I 12 14 9 13 10 16
II 11 13 15 17 13 11
III 9 15 9 14 12 13
IV 10 12 11 13 14 14
V 13 10 15 10 16 15
Freguês
Fábrica 1 2 3 4 3#
1 -65 -63 -62 -64 -62 3000
2 -68 -67 -65 -62 -65 5000
3 -63 -60 -59 -60 -59 4000
D M M 0 0 0 4000
4000 3000 1000 4000 4000
Solução ótima:
Fábrica Freguês
1 4 3.000
2 1 1.000
2 2 3.000 Z = 775000
2 3 1.000
3 4 1.000
3 1 3.000
4.20 Respostas dos exercícios da seção 4.19 135
Exercício E
Fonte Destino
1 4 2
1 1 3 Z = 32
2 3 2
3 2 3
Exercício F
Fonte Destino
1 3 20
2 1 20
2 4 10 Z = 305
3 1 5
3 2 25
4 5 20
Exercício G
Fonte Destino
1 1 100 7
2 3 40
2 5 80
3 2 20 Z = 5520
3 3 60
3 4 60
4 2 80
5 2 20
5 6 40
Exercício H
Fonte Destino
1 4 20
1 6 50
2 4 10
2 5 60
2 3 10
3 7 60
Exercício I
Façamos Cijk
ser o custo de comprar um carro velho (k = 1) ou um carro semi-novo
(k = 2) no inicio do ano i revendendo no final do ano j.
Cij = Preço de Compra + Custos de Operação e manutenção para os anos 1, 2, . . . , j−
i + 1− Valor de Revenda após j − i + 1 anos.
Cij = MIN (Cij 1
+ Cij2
)
136 Algorítimo dos Transportes
1 2 3 4 5 Disp.
1 0 575 1125 1650 2275 1
2 M 0 55 1125 1650 0
3 M M 0 575 1125 0
4 M M M 0 575 0
5 M M M M 0 0
Necessidade 0 0 0 0 1
Exercício O
Estilo 1: Artur
Estilo 2: Antonio
Estilo 3: Celso
Estilo 4: Carlos
Exercício P
Fábrica Armazém
I 1 35.000
III 3 25.000
I 2 5.000 Z = 487500
II 2 15.000
II 4 35.000
III 4 10.000
Exercício Q
I→5
III → 3
V→2
II → 6
IV → 1
138 Algorítimo dos Transportes
5
Bibliografia de Pesquisa Operacional
a) Muitos dos livros estrangeiros desta relação não são encontrados nas livrarias
do Brasil e, se desejados, tem que ser encomendados. Alguns são encontrados
em bibliotecas.
2. Pesquisa Operacional
• Wagner, Harvey M.
– Prentice – Hall do Brasil
140 Bibliografia de Pesquisa Operacional
5. Pesquisa Operacional
• Ackoff e Sasieni
– Livros Técnicos e Científicos
6. Pesquisa Operacional
• Ellenrieder
– Almeida Neves
7. Pesquisa Operacional
• Richard Bronson
– McGraw-Hill – Coleção Schaum
9. Pesquisa Operacional
• Ermes Medeiros, Elio Medeiros, Valter Gonçalves, Afrânio Murolo
– Atlas