AULA 5
MODELOS DE TRANSPORTE
Autor: Anibal Tavares de Azevedo
INTRODUÇÃO À META-HEURÍSTICAS
DEZ PROBLEMAS DE PROGRAMAÇÃO LINEAR
Carteira de Investimentos Escala de Funcionários
Fluxo Caixa Multiperíodo Problema de Mistura
Produção e Estoque Transporte
Escala de Produção Redes de Distribuição
Carteira de Investimentos Escala de Funcionários
Fluxo Caixa Multiperíodo Problema de Mistura
Produção e Estoque Transporte
Escala de Produção Redes de Distribuição
Menor Caminho Plantio em Fazendas
Teoria dos Grafos
Leonard Euler
O problema das Sete Pontes de Konigsberg
Percorrer todas as sete pontes sem
Teoria dos Grafos
No grafo o importante são as conexões
Essa mesma ideia é empregada no
mapa de um mêtro
Grafo
Pontos (nós)
Retas (arcos)
1 2
3
4
5 6
Menor Caminho
No problema do menor
caminho ascidadespodem ser vistas comonós (pontos)e os
caminhoscomoarcos (retas).
Teoria dos Grafos
Grafo
Pontos (nós)
Retas (arcos)
1
2
3 4
5
A B(t=3)
(t=4)
D(t=1)
E(t=2)
C(t=3)
F(t=3)
PERT/CPM
O PERT/CPM é uma técnica para detecção de atividades críticas (“gargalos”) usada no gerenciamento de projetos. Cada nó (A, B, C, D, E, F)
representa uma etapa do projeto e cada arco
representa uma atividade
Fluxo em Redes
Fluxo
Pontos (nós)
Retas (arcos) Fluxo na
aresta
Transporte
Além denósearcos, um grafo pode ter um fluxo. O fluxo pode representar, por exemplo, uma quantidade de um produto que vai de um nó ao outro. Esse tipo de modelo pode ser usado para energia elétrica, água, etc.
Wassily Leontief Nobel Prize
in 1973
Modelo Entrada-Saída
Fluxo em Redes
Pai da Química Antoine Lavoisier
Na Natureza nada se cria,
nada se perde,
tudo se transforma.
Fluxo em Redes
Entra
Sai
Tudo que entra =
Tudo que sai
Lei de Conservação em um nó
Fluxo em Redes
Lei de Conservação em um nó
Entra
Sai
10 8
5 13
Caso 1
Tudo que entra =
Tudo que sai
Fluxo em Redes
Entra
Sai
Lei de Conservação em um nó
Caso 2
Tudo que entra + produção =
Lei de Conservação em um nó
Caso 2
Entra
Sai
10 8
10 10
Tudo que entra + produção =
Tudo que sai
2
Fluxo em Redes
Entra
Sai
Lei de Conservação em um nó
Caso 3
Tudo que entra =
Fluxo em Redes
Lei de Conservação em um nó
Caso 3
Entra
Sai
10 8
9 8
Tudo que entra =
Tudo que sai + consumo
1
Fluxo em Redes
Entra
Sai
Lei de Conservação em um nó
Caso 4
Tudo que entra + produção =
Lei de Conservação em um nó
Caso 4
Entra
Sai
10 8
10 9
Tudo que entra + produção =
Tudo que sai + consumo
1
2
Fluxo em Redes
Lei de Conservação em um nó
Caso
Geral
Entra
Sai
x1 x2
x4 x3
x1 + x2 + p1 = x3 + x4 + d1
d1
Fluxo em Redes
Entra
x1 x2
d1
p1
Exercício 1: Escrever a equação matemática correspondente a situação apresentada no grafo
Fluxo em Redes
Entra
x1 x2
x1 + x2 + p1 = d1
d1
p1
Entra
Sai
x1 x2
x4 x3
d1
Exercício 2: Escrever a equação matemática correspondente a situação apresentada no grafo
Fluxo em Redes
Entra
Sai
x1 x2
x4 x3
x1 + x2 = x3 + x4 + d1
d1
Transporte
A Bike S.A. produz bicicletas a partir de 3 fábricas localizadas no Rio de Janeiro, São Paulo e Belo Horizonte. A produção das fábricas deve atender a demanda das cidades de Recife, Salvador e Manaus. Considerando os custos de transporte unitários, a capacidade de produção das fábricas e a demanda dos centros consumidores dados na Tabela 1, determinar quanto deve ser produzido e entregue por cada fábrica em cada centro consumidor tal que os custos de transporte são minimizados.
Transporte
Fábrica/Centro Consumidor
Recife (1)
Salvador (2)
Manaus (3)
Capacidade
Rio de Janeiro(1)
25 20 30 2.000
São Paulo (2) 30 25 25 3.000
B.Horizonte(3) 20 15 23 1.500
Demanda 2.000 2.000 1.000
i j
xij
Variáveis de Decisão
Xij= Quantidade transportada do nó i para o nó j.
x
i j
Origem
(fábrica)
Destino
(mercado)
1
2
x22
1
2
x21 x12 x11
Variáveis de Decisão
Xij= Quantidade transportada da fábrica i para o mercado j.
Fluxo em Redes
Entra
Sai
Lei de Conservação em um nó
Caso 2
Tudo que entra + produção =
Tudo que sai
Fluxo em Redes
Entra
Sai
Lei de Conservação em um nó
Caso 2
Tudo que entra + produção =
Sai
Lei de Conservação em um nó
Caso 2
produção = Tudo que sai
1 1
2
x12 x11
Restrição: Quantidades enviadas de cada fábrica 1 para todos os destinos não excede a capacidade f1.
x11 + x12 = f1
∑
==
n
j
j
f
x
1
1 1
n = no. de mercados
1
2
Restrição: Quantidades enviadas de cada fábrica 2 para todos os destinos não excede a capacidade f2.
x21 + x22 = f2
∑
==
n
j
j
f
x
1
2 2
2
x22 x21
n = no. de mercados
Transporte
1
2
x22
1
2
x21 x12 x11
m
i
f
x
nj
i
ij
,
1
,
,
1
L
=
=
∑
=Restrição: Quantidades enviadas de cada fábrica i para todos os destinos não excede a capacidade fi.
m = no. de fábricas n = no. de mercados
Entra
Sai
Lei de Conservação em um nó
Caso 3
Tudo que entra =
Tudo que sai + consumo
Fluxo em Redes
Entra
Sai
Lei de Conservação em um nó
Caso 3
Tudo que entra =
Fluxo em Redes
Entra
Lei de Conservação em um nó
Caso 3
Tudo que entra =
consumo
1
2
1
x21 x11
x11 + x21 = d1
∑
==
m
i
i
d
x
1
1 1
m = no. de fábricas
Restrição: Quantidades recebidas para o mercado 1 de todas as fábricas não excede a demanda d1.
1
2
x22
2
x12
x12 + x22 = d2
∑
==
m
i
i
d
x
1
2 2
m = no. de fábricas
Restrição: Quantidades recebidas para o mercado 2 de todas as fábricas não excede a demanda d2.
1
2
x22
1
2
x21 x12 x11
n
j
d
x
mi
j
ij
,
1
,
,
1
L
=
=
∑
= n = no. de mercados
m = no. de fábricas
Restrição: Todas quantidades recebidas para o mercado j, das fábricas i, não excede a demanda dj.
1 2 x22 1 2 x21 x12 x11
∑
∑
= ==
n j j m i id
f
11 n = no. de mercados
m = no. de fábricas
Restrição (implícita): tudo o que for produzido nas fábricas (fi) deve ser consumido pelos mercados (di).
Transporte
Min S.a.: MODELO COMPLETOTransporte
∑
∑
= ==
n j j m i id
f
1 1m
i
f
x
n j iij
,
1
,
,
1
L
=
=
∑
=n
j
d
x
m i jij
,
1
,
,
1
L
=
=
∑
=∑∑
= = m i n j ij ijx
c
1 1n = no. de mercados m = no. de fábricas Cap. fábrica
Cap. mercado
Balanço (implícito)
∑
∑
= ==
n j j m i id
f
1 1Modelo anterior supõe implicitamente que tudo que é produzido será consumido. Neste caso, o modelo de
transporte é dito balanceado.
Existem, porém, 2 casos nos quais esta restrição não é satisfeita:
Caso 1
Capacidade >Demanda
Caso 2
Capacidade < Demanda
Transporte
Para o caso em que a capacidade é maior que a demanda, a modificação na restrição da capacidade da fábrica para ≤ pode
ser interpretada como a criação de um mercado “fantasma”
que irá absorver a oferta excedente.
Caso 1
Capacidade >Demanda
x
f
i
m
n
j
i
ij
,
1
,
,
1
L
=
≤
∑
= Não transportar tudo que foi produzido !
m
i
f
x
x
n j i inij
,
1
,
,
1
1
=
=
L
+
∑
= +
Variável associada ao mercado “fantasma”
Os valores destas variáveis na função objetivo são iguais a
zero, pois apenas indicam excesso de
Transporte
1
2
x22
1
2
x21 x12 x11
3
mercado “fantasma”
Caso 1
Transporte
∑
∑
= =
=
nj j m
i
i
d
f
1 1
Modelo anterior supõe implicitamente que tudo que é produzido será consumido. Neste caso, o modelo de
transporte é dito balanceado.
Existem, porém, 2 casos nos quais esta restrição não é satisfeita:
Caso 1
Capacidade >Demanda
Caso 2
Para o caso em que a capacidade é menor que a demanda, a modificação na restrição da demanda dos mercados para ≤
pode ser interpretada como a criação de uma fábrica “fantasma”que irá produzir a demanda que falta.
n
j
d
x
x
m i j j mij
,
1
,
,
1
1
=
=
L
+
∑
= +
Variável associada à fábrica “fantasma”
Caso 2
Capacidade <Demanda
x
d
j
n
i
j
ij
,
1
,
,
1
L
=
≤
∑
= Não pode atender a todas as demandas !
Os valores destas variáveis na função objetivo são iguais a
zero, pois apenas indicam falta de
Transporte
∑
∑
= ==
n j j m i id
f
1 1Modelo anterior supõe implicitamente que tudo que é produzido será consumido. Neste caso, o modelo de
transporte é dito balanceado.
Existem, porém, 2 casos nos quais esta restrição não é satisfeita:
Caso 1
Capacidade >Demanda
Caso 2
Capacidade < Demanda
m
i
f
x
n j iij
,
1
,
,
1
L
=
≤
∑
=n
j
d
x
m i jij
,
1
,
,
1
L
=
=
∑
=m
i
f
x
n j iij
,
1
,
,
1
L
=
=
∑
=n
j
d
x
m i jij
,
1
,
,
1
L
=
≤
∑
= Não precisatransportar tudo !
Não pode atender todos !
Transporte
Fábrica/Centro Consumidor Recife (1) Salvador (2) Manaus (3) Capacidade Rio de Janeiro(1)25 20 30 2.000
São Paulo (2) 30 25 25 3.000
B.Horizonte(3) 20 15 23 1.500
Demanda 2.000 2.000 1.000
6.500 5.000
Caso 1
Capacidade >Demanda
x
f
i
m
n
j
i
ij
,
1
,
,
1
L
=
≤
∑
= Não precisa
Min
S.a.:
MODELO COMPLETO PARTICULAR
m
i
f
x
n j iij
,
1
,
,
1
L
=
≤
∑
=n
j
d
x
m i jij
,
1
,
,
1
L
=
=
∑
=∑∑
= = m i n j ij ijx
c
1 1n = no. de mercados m = no. de fábricas Cap. fábrica
Cap. mercado
Custo de transporte
Transporte
1
2
1
2
x11
3
x21 + x22 + x23 + x24 = f2
4
x12 x13 x14 x21 x22 x23 x24 3
x31 x32 x33 x34
x11 + x12 + x13 + x14 = f1
x31 + x32 + x33 + x34 = f3
Transporte
1
2
1
2
x11
3
x12 + x22 + x32 = d2
4
x12 x13 x14 x21 x22 x23 x24 3
x31 x32 x33 x34
x11 + x21 + x31 = d1
x14 + x24 + x34 = d4 x13 + x23 + x33 = d3
Fábrica/Centro Consumidor
Recife (1)
Salvador (2)
Manaus (3)
Capacidade
Rio de Janeiro(1)
25 20 30 2.000
São Paulo (2) 30 25 25 3.000
B.Horizonte(3) 20 15 23 1.500
Demanda 2.000 2.000 1.000
Min 25x11 + 20x12 + 30x13 + 30x21 + 25x22 + 25x23 + 20x31 + 15x32 + 23x33
S.a.:
x11 + x12 + x13 + x14 = 2.000 x21 + x22 + x23 + x24 = 3.000 x31 + x32 + x33 + x34 = 1.500 x11 + x21 + x31 = 2.000
x12 + x22 + x32 = 2.000 x13 + x23 + x33 = 1.000 x14 + x24 + x34 = 1.500
MODELO COMPLETO DETALHADO
Transporte
Min 25x11 + 20x12 + 30x13 + 30x21 + 25x22 + 25x23 + 20x31 + 15x32 + 23x33
Cap. fábrica
Cap. mercado
Min
S.a.:
MODELO COMPLETO GERAL
Transporte
m
i
f
x
n j iij
,
1
,
,
1
L
=
≤
∑
=n
j
d
x
m i jij
,
1
,
,
1
L
=
≥
∑
=∑∑
= = m i n j ij ijx
c
1 1n = no. de mercados m = no. de fábricas Cap. fábrica
Cap. mercado
Custo de transporte
GLPK Lab for Windows
# MODELO DO PROBLEMA DE TRANSPORTE
# Este problema encontra o menor custo de transporte # que atende as requisões de demanda e produção. set I; /* fábricas */
set J; /* markets */
param a{i inI}; /* produção das i fábricas */ param b{j inJ}; /* demandas dos j mercados */ param d{i inI, j in J}; /* distância em km */ param f; /* custo de frete: R$/1000 km */ /* custo de transporte em R$ * 1000 */ param c{i inI, j in J} := f * d[i,j] / 1000;
#Parametros para impressao dos resultados do modelo em arquivos. param file, symbolic, default "ResumoTransporte.txt";
/* quantidade transportada da fábrica i para o mercado j */ var x{i in I, j in J} >= 0;
/* Minimização dos custos em milhares de reais (R$ 1000) */ minimize cost: sum{i inI, j in J} c[i,j] * x[i,j];
/* Tentar escoar a produção fábrica i */ s.t. supply{i inI}: sum{j in J} x[i,j] <= a[i];
/* Tentar atender a demanda do mercado j */ s.t. demand{j inJ}: sum{i in I} x[i,j] >= b[j];
# MODELO DO PROBLEMA DE TRANSPORTE
# Este problema encontra o menor custo de transporte # que atende as requisões de demanda e produção. set I; /* fábricas */
set J; /* markets */
param a{i inI}; /* produção das i fábricas */ param b{j inJ}; /* demandas dos j mercados */ param d{i inI, j in J}; /* distância em km */ param f; /* custo de frete: R$/1000 km */ /* custo de transporte em R$ * 1000 */ param c{i inI, j in J} := f * d[i,j] / 1000;
#Parametros para impressao dos resultados do modelo em arquivos. param file, symbolic, default "ResumoTransporte.txt";
/* quantidade transportada da fábrica i para o mercado j */ var x{i in I, j in J} >= 0;
/* Minimização dos custos em milhares de reais (R$ 1000) */ minimize cost: sum{i inI, j in J} c[i,j] * x[i,j];
/* Tentar escoar a produção fábrica i */ s.t. supply{i inI}: sum{j in J} x[i,j] <= a[i];
/* Tentar atender a demanda do mercado j */ s.t. demand{j inJ}: sum{i in I} x[i,j] >= b[j];
PARTE 1 - FORMULAÇÃO Índices das variáveis
Dados do modelo
Variáveis
Modelo
GLPK Lab for Windows
solve;
/* RELATORIO */ printf '\n' >> file;
printf '---\n' >> file;
printf 'Solucao Encontrada \n' >> file;
printf '---\n' >> file;
printf ' Fluxo [Origem - Destino [ton]] \n' >> file;
printf ' \n' >> file;
printf '---\n' >> file;
printf{i in I, j in J} " %10s - %10s: = %8.2f \n ", i, j, x[i,j] >> file;
printf '---\n' >> file;
printf 'Custo total (z): ' >> file; printf ' %10.2f \n', cost >> file; printf '---\n'>> file;
printf '\n' >> file;
GLPK Lab for Windows
data;
set I := Rio Sampa BH;
set J := Recife Salvador Manaus;
param a := Rio 2000 Sampa 3000 BH 1500;
param b := Recife 2000 Salvador 2000 Manaus 1000;
param d : Recife Salvador Manaus := Rio 25 20 30 Sampa 30 25 25 BH 20 15 23;
param f := 1000;
end; PARTE 3 - FORMULAÇÃO
GLPK Lab for Windows
Fábrica/Centro Consumidor Recife (1) Salvador (2) Manaus (3) Capacidade Rio de Janeiro(1) 25 2000 20 0.0 30 0.0 2.000
São Paulo (2) 30 0.0 25 500.0 25 1000.0 3.000 B.Horizonte(3) 20 0.0 15 1500.0 23 0.0 1.500
Demanda 2.000 2.000 1.000 6.500
5.000
Caso 1
Capacidade >Demanda x f i m
n j
i
ij , 1, ,
1 L = ≤
∑
=EXERCÍCIO 1
MODIFICAR O MODELO DE MODO QUE:
(A) Como modificar o modelo para penalizar o excesso de produção ou a falta de atendimento da demanda?
(B) Como considerar que existem limites de fluxo entre dois ou mais nós?
(C) Como o modelo fornecido poderia ser modificado para considerar diferentes modais de transporte?