Sei sulla pagina 1di 29

Fernando Nogueira Fluxo de Custo Mnimo 1

Problema de Fluxo
de Custo Mnimo
The Minimum Cost Flow
Problem
Fernando Nogueira Fluxo de Custo Mnimo 2
O Problema de Fluxo de Custo Mnimo (The Minimum Cost Flow
Problem)
Este problema possui papel principal entre os modelos de otimizao
em redes, uma vez que este engloba uma enorme quantidade de
aplicaes e pode ser resolvido de maneira extremamente eficiente.
O Problema de Transporte, de Designao, de Caminho Mais Curto e
de Fluxo Mximo (vistos anteriormente) so casos especiais do
Problema de Fluxo de Custo Mnimo. A nica exceo o Problema
de rvore Geradora Mnima.
A exemplo dos problemas acima (com exceo do Problema de
rvore Geradora Mnima), o Problema de Fluxo de Custo Mnimo
um Problema de Programao Linear, logo o Simplex pode ser
utilizado para sua resoluo. Uma verso especfica do Simplex,
denominada Mtodo Simplex de Redes pode ser utilizada de maneira
ainda mais eficiente de que o prprio Simplex.
Fernando Nogueira Fluxo de Custo Mnimo 3
Algumas Consideraes
1. A rede representada por um Dgrafo (orientada) e conectada.
2. No mnimo um dos ns um n de fornecimento (origem).
3. No mnimo um dos ns um n de demanda (destino).
4. Todos os ns restantes so ns Transshipment (entreposto,
intermedirio).
5. A rede possui arcos, tanto quanto forem necessrios, com
capacidade suficiente para habilitar todos os fluxos gerados nos
ns de fornecimento para alcanar os ns de demanda.
6. O custo do fluxo atravs de cada arco proporcional a
quantidade daquele fluxo, onde o custo por unidade de fluxo
conhecido.
7. O objetivo minimizar o custo total de enviar o fornecimento
disponvel atravs da rede para satisfazer a demanda dada (um
objetivo alternativo maximizar o lucro total para fazer isto).
Fernando Nogueira Fluxo de Custo Mnimo 4
Exemplos de Aplicaes:
A mais importante aplicao est em planejar a operao de uma rede
de distribuio de uma companhia. Este tipo de aplicao envolve
determinar um plano para transportar bens a partir das fontes
(fbricas, etc) para locais de armazenagem intermedirias (quando
necessrio) e ento para os clientes (demanda).
Fernando Nogueira Fluxo de Custo Mnimo 5
Formulao do Modelo
Considere um Dgrafo conectado, onde nos n ns incluem-se no mnimo um n de
fornecimento e no mnimo um n de demanda. As variveis de deciso (de controle)
so x
ij
= fluxo no arco (i,j). As informaes necessrias so:
c
ij
= custo por unidade de fluxo no arco (i,j)
u
ij
= capacidade de fluxo no arco (i,j) b
i
> 0 se o n i um n de fornecimento
b
i
= fluxo na rede gerado no n i b
i
< 0 se o n i um n de demanda
b
i
= 0 se o n i um n transshipment
A funo-objetivo :
Minimizar
Sujeito a para cada n i
e para cada arco (i,j)

=
= =
n
1 i
n
1 j
ij ij
x c Z
i
n
1 j
ji
n
1 j
ij
b x x =

= =
ij ij
u x 0

=
=
i n chega fluxo x
i n sai fluxo x
n
1 j
ji
n
1 j
ij
Fernando Nogueira Fluxo de Custo Mnimo 6
Em algumas aplicaes, faz-se necessrio ter um limite inferior L
ij
>0 para o fluxo
no arco (i,j). Para evitar alteraes na formulao do modelo, utiliza-se:
com substituindo x
ij ij ij ij
L x x =

ij ij
L x +

Propriedade de Solues Inteiras


Para Problemas de Fluxo de Custo Mnimo, onde todo b
i
e u
ij
so valores inteiros,
todas as variveis bsicas em toda soluo bsica vivel tambm so valores
inteiros.
Propriedade de Solues Viveis
Uma condio necessria para um Problema de Fluxo de Custo Mnimo ter alguma
soluo vivel que , isto , o fluxo total gerado nos ns de fornecimento
deve ser igual ao fluxo total absorvido nos ns de demanda. Quando este fato
violado significa que os fornecimentos ou as demandas representam limites
superiores ao invs de quantidades exatas. No caso do Problema de Transporte, por
exemplo, um destino (origem) auxiliar criado a fim de absorver a oferta
(demanda) em excesso. De maneira anloga, no Problema de Fluxo de Custo
Mnimo cria-se um n de demanda (fornecimento) auxiliar para absorver o
fornecimento (demanda) em excesso.

=
=
n
1 i
i
0 b
Fernando Nogueira Fluxo de Custo Mnimo 7
Exemplo
O dgrafo abaixo ilustra uma rede de distribuio de uma companhia, onde os ns
A e B so duas fbricas desta companhia, os ns D e E so dois estoques e o n C
um centro de distribuio (transshipment).
Fernando Nogueira Fluxo de Custo Mnimo 8
O modelo de Programao Linear para este exemplo fica:
0 x
e
80 x
10 x
60 x x x
30 x x x
0 x x x
40 x x
50 x x x
a Sujeito
x 2 x 3 x x 3 x 9 x 4 x 2 Z Minimizar
ij
CE
AB
ED DE CE
ED DE AD
CE BC AC
BC AB
AD AC AB
ED DE CE BC AD AC AB

= +
= +
= +
= +
= + +
+ + + + + + =
Fernando Nogueira Fluxo de Custo Mnimo 9
Casos Especiais (demais Problemas de Redes como Problema de Fluxo de Custo
Mnimo)
contrrio caso
j para designado i se
0
1
x u x 0
ij ij ij

=
sujeito a:
1. Problema de Transporte
Um n de fornecimento para cada fonte
Um n de demanda para cada destino
Nenhum n Transshipment
u
ij
=

=
= =
m
1 i
n
1 j
ij ij
x c Z min


=
=
= =
demanda d x
idade disponibil s x
b x x
j
n
1 i
ij
n
1 j
i ij
n
1 j
i ji
n
1 j
ij
( ) n ,... 1 j ; m ,..., 1 i 0 x u x 0
ij ij ij
= =

=
= =
m
1 i
n
1 j
ij ij
x c Z min


=
=
= =
demanda 1 x
idade disponibil 1 x
b x x
n
1 i
ij
n
1 j
ij
n
1 j
i ji
n
1 j
ij
sujeito a:
2. Problema de Designao
Igual ao Problema de Transporte, com:
nmero de ns de fornecimento igual
ao nmero de ns de demanda
b
i
= 1 para cada n de fornecimento
b
i
= -1 para cada n de demanda
Fernando Nogueira Fluxo de Custo Mnimo 10
sujeito a:
para cada arco (i,j)
3. Problema de Caminho Mais Curto
Apenas um n de fornecimento
(origem) com fornecimento = 1
Apenas um n de demanda (destino)
com demanda = 1
Todos demais ns so ns
Transshipment
Todo arco permite fluxo em ambos
sentidos (i j e j i), com exceo
dos arcos que saem da origem e dos
arcos que chegam no destino
Distncias so os custos c
ij
e c
ji
u
ij
=

=
= =
m
1 i
n
1 j
ij ij
x c Z min

=

=
=

= =
destino i 1
destino ou origem i 0
origem i 1
x x
n
1 j
ji
n
1 j
ij

ij
x 0
Fernando Nogueira Fluxo de Custo Mnimo 11
0 x x
n
1 j
ji
n
1 j
ij
=

= =
ij ij
u x 0
origem , destino
m
1 i
n
1 j
ij ij
x Z min x c Z max = =

= =
sujeito a:
para cada arco (i,j)
4. Problema de Fluxo Mximo
Apenas um n de fornecimento
(origem)
Apenas um n de demanda (destino)
Todos demais ns so ns
Transshipment
c
ij
= 0 para todo (i,j)
Adicionar um arco conectando o n de
demanda ao n de fornecimento (neste
sentido) com: u
demanda,fornecimento
= e
c
demanda,fornecimento
> 0 (normalmente
utiliza-se c
demanda,fornecimento
= 1 para
simplificar clculos).
Obs: a adio deste arco auxiliar torna
os ns de fornecimento e de demanda
tambm ns Transshipment.
Fernando Nogueira Fluxo de Custo Mnimo 12
Modelo de Fluxo Mximo a partir do modelo de Fluxo de Custo Mnimo para o
exemplo do Parque Seervada (cdigo Lindo).
MIN TO !MAX TO !PODE USAR MAX TO OU MIN -TO
SUBJECT TO
R1) OA + OB + OC - TO = 0
R2) AB + AD - OA = 0
R3) BD + BE + BC - AB - OB = 0
R4) CE - BC - OC = 0
R5) DT - AD - BD - ED = 0
R6) ED + ET - BE - CE = 0
R7) TO - DT - ET = 0
END
!LIMITES SUPERIORES
SUB OA 5
SUB OB 7
SUB OC 4
SUB AB 1
SUB AD 3
SUB BC 2
SUB BD 4
SUB BE 5
SUB CE 4
SUB DT 9
SUB ED 1
SUB ET 6
VARIABLE VALUE
TO 14.000000
OA 3.000000
OB 7.000000
OC 4.000000
AB 0.000000
AD 3.000000
BD 4.000000
BE 3.000000
BC 0.000000
CE 4.000000
DT 8.000000
ED 1.000000
ET 6.000000
Fernando Nogueira Fluxo de Custo Mnimo 13
Mtodo Simplex de Rede
O Mtodo Simplex de Rede uma verso do Simplex para
resolver problemas de Fluxo de Custo Mnimo.
Tcnica de Limite Superior
Esta tcnica necessria para tratar as restries do tipo .
Uma varivel no-bsica em seu limite superior x
ij
= u
ij

recolocada por x
ij
= u
ij
y
ij
, com y
ij
= 0 tornando-se uma
varivel no-bsica. Quando y
ij
torna-se uma varivel bsica com
valores estritamente positivos , este valor pode ser entendido
como um fluxo a partir do n j para o n i (prm em sentido
errado no arco i j) cancelando a quantidade de fluxo
previamente designada (x
ij
= u
ij
) do n i para o n j.
ij ij
u x
( )
ij
u
Fernando Nogueira Fluxo de Custo Mnimo 14
Com isso, quando x
ij
= u
ij
recolocado por x
ij
= u
ij
y
ij
, o arco real
i j substitudo pelo arco reverso j i, onde este novo arco
possui capacidade u
ji
= u
ij
(mxima quantidade de fluxo que pode
ser cancelada) e custo c
ji
= c
ij
. Para refletir o fluxo de x
ij
= u
ij
atravs do arco deletado, altera-se a quantidade de fluxo da rede
gerada do n i para o n j por decrementar b
i
por u
ij
e incrementar
b
j
por u
ij
.
Se y
ij
torna-se uma varivel que deixa a base por alcanar seu
limite superior, ento y
ij
= u
ij
recolocado por y
ij
= u
ij
x
ij
com x
ij
= 0 como a nova varivel bsica invertendo o processo descrito
acima (recolocar o arco j i por i j, etc).
Para ilustrar o processo acima, considere o exemplo dado
anteriormente.
Fernando Nogueira Fluxo de Custo Mnimo 15
Suponha que x
AB
tenha tornado-se uma varivel que deixa a base em alguma iterao
por alcanar seu limite superior (x
AB
= 10).
x
AB
recolocado por x
AB
= 10 y
AB
, com y
AB
= 0 tornando-se a nova varivel no-
bsica. Ento o arco A B substitudo pelo arco B A (com y
AB
como sua
quantidade de fluxo) com capacidade u
BA
= 10 e custo c
BA
= -2. b
A
decrementado de
u
AB
(b
A
= b
A
u
AB
), b
A
= 50 10 = 40 e b
B
incrementado de + u
AB
(b
B
= b
B
+ u
AB
), b
B
= 40 + 10 = 50. A rede fica:
Fernando Nogueira Fluxo de Custo Mnimo 16
Fernando Nogueira Fluxo de Custo Mnimo 17
Correspondncia entre solues Bsicas Viveis e rvores
Geradoras Viveis
Uma soluo bsica vivel possui (n-1) variveis bsicas para
uma rede com n ns, onde cada varivel bsica x
ij
representa o
fluxo atravs do arco i j. Estes arcos so referidos como
arcos bsicos (similarmente, os arcos correspondendo para as
variveis no-bsicas x
ij
= 0 ou y
ij
= 0 so denominados arcos
no-bsicos).
Uma propriedade fundamental que arcos bsicos nunca
formam ciclos. Portanto, qualquer conjunto de n-1 arcos que
no contm ciclos formam uma rvore Geradora.
Solues bsicas viveis podem ser obtidas resolvendo
rvores Geradoras como:
Fernando Nogueira Fluxo de Custo Mnimo 18
1)Para arcos que no pertencem a rvore Geradora (arcos no-bsicos),
colocar as variveis correspondentes (x
ij
ou y
ij
) igual a zero.
2)Para arcos que pertencem a rvore Geradora (arcos bsicos), resolver
para as variveis correspondentes (x
ij
ou y
ij
) o sistema de equaes
lineares fornecido pelas restries dos ns.
Para ilustrar este procedimento, considere a rede anterior que resulta em
recolocar x
AB
= 10 por x
AB
= 10 y
AB
. Uma rvore Geradora para esta
rede :
Fernando Nogueira Fluxo de Custo Mnimo 19

= +
= +
= +
= +
= + +
60 x x x
30 x x x
0 x x x
50 x y
40 x x y
ED DE CE
ED DE AD
CE BC AC
BC AB
AD AC AB
Substituindo x
AB
= 10 y
AB
nas restries dos ns, fica:
V.B.
x
AD
= 40
x
BC
= 50
x
CE
= 50
x
DE
= 10
V.N.B.
y
AB
= 0
x
AC
= 0
x
ED
= 0
Fernando Nogueira Fluxo de Custo Mnimo 20
Uma vez que a soluo satisfaz a restrio de no-negatividade
e tambm a restrio de capacidade mxima dos arcos
a rvore Geradora uma rvore Geradora Vivel e
portanto tem-se uma soluo vivel. A rede com os fluxos fica:
0 x
ij

80 x
CE

Fernando Nogueira Fluxo de Custo Mnimo 21
Selecionando a varivel que entra na base
O mtodo Simplex (tradicional) seleciona a varivel que entra na base
escolhendo dentre as variveis no-bsicas, a que melhore a funo-
objetivo com melhor taxa (de crescimento no caso de maximizao e de
decrescimento no caso de minimizao).
No exemplo, as variveis no-bsicas so y
AB
, x
AC
, e x
ED
.
Escolhendo x
AC
inicialmente implica em adicionar o arco A C.
Adicionar um arco no-bsico para uma rvore Geradora sempre cria
um ciclo, onde o ciclo neste caso AC-CE-DE-AD.
Se x
AC
entra com um fluxo , ocasionar um fluxo adicional de nos
arcos de mesmo sentido de AC e um decrscimo de nos arcos de
sentido oposto ao de AC. Arcos que no pertencem ao ciclo gerado no
so alterados. Os custos so multiplicados por de maneira anloga ao
fluxo. A rede fica:
Fernando Nogueira Fluxo de Custo Mnimo 22
O incremento total no custo Z fica:
Z = c
AC
+ c
CE
+ c
DE
(-) + c
AD
(-)
Z = 4 + - 3 - 9 = -7
Fernando Nogueira Fluxo de Custo Mnimo 23
Fazendo = 1, resulta na taxa que Z varia quando x
AC
acrescido.
Z = -7
Uma vez que o objetivo minimizar Z, est parece ser uma boa taxa de
decrescimento em Z.
Faz-se necessrio computar as mesmas taxas para as demais variveis
no-bsicas.
Para y
AB
a rede fica:
Z = -2 + 9 + 3 +1(-) +
3(-) = 6 = 6 para = 1.
Fernando Nogueira Fluxo de Custo Mnimo 24
Para x
ED
a rede fica:
Z = 2 + 3 = 5 = 5 para = 1.
Resumindo:

=
=
=
=
1 x se 5
1 y se 6
1 x se 7
Z
ED
AB
AC
Fernando Nogueira Fluxo de Custo Mnimo 25
Assim, o valor negativo para x
AC
impe que esta varivel entre na base.
Encontrando a Varivel Bsica que deixa a base
Uma vez que x
AC
a varivel que entra na base, o fluxo no arco AC
deve ser aumentado o mximo possvel at que uma das variveis bsicas
alcancem seu limite inferior (0) ou seu limite superior (u
ij
). Retomando a
rede adicionada do arco AC.
Fernando Nogueira Fluxo de Custo Mnimo 26
Os 5 arcos em questo so:
x
AD
= 40 - e u
AD
=
x
DE
= 10 - e u
DE
=
x
CE
= 50 + e u
CE
= 80
x
AC
= e u
AC
=
x
BC
= 50 (constante) e u
BC
=
Aumentando =10 resulta em x
DE
= 0, portanto, a varivel que
deixa a base x
DE
.
A rvore Geradora resultante :
Fernando Nogueira Fluxo de Custo Mnimo 27
O resultado timo se no existe nenhuma varivel no-bsica
com coeficiente negativo. Faz-se necessrio testar.
Fernando Nogueira Fluxo de Custo Mnimo 28
A tabela abaixo mostra as variveis no-bsicas (arcos no-
bsicos), os ciclos criados e seus coeficientes.
A varivel x
ED
possui o menor coeficiente negativo,
indicando, portanto, que a soluo ainda pode ser melhorada.
Outra iterao necessria. O leitor dever realizar as
iteraes restantes. A prxima figura mostra o resultado final.
Fernando Nogueira Fluxo de Custo Mnimo 29
Soluo Final

Potrebbero piacerti anche