Upload
carlos-adriano
View
51
Download
0
Embed Size (px)
Citation preview
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 ede 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 nosns 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 envolvedeterminar 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 xij = fluxo no arco (i,j). As informaes necessrias so:
cij = custo por unidade de fluxo no arco (i,j)
uij = capacidade de fluxo no arco (i,j) bi > 0 se o n i um n de fornecimento
bi = fluxo na rede gerado no n i bi < 0 se o n i um n de demanda
bi = 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
1i
n
1jijijxcZ
in
1jji
n
1jij bxx =
==
ijij ux0
=
=
inchegafluxox
insaifluxox
n
1jji
n
1jij
Fernando Nogueira Fluxo de Custo Mnimo 6
Em algumas aplicaes, faz-se necessrio ter um limite inferior Lij>0 para o fluxo no arco (i,j). Para evitar alteraes na formulao do modelo, utiliza-se:
com substituindo xijijijij Lxx = ijij Lx +Propriedade de Solues Inteiras
Para Problemas de Fluxo de Custo Mnimo, onde todo bi e uij 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
1ii 0b
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:
0xe
80x10x60xxx30xxx0xxx40xx50xxx
aSujeitox2x3xx3x9x4x2ZMinimizar
ij
CE
AB
EDDECE
EDDEAD
CEBCAC
BCAB
ADACAB
EDDECEBCADACAB
=+
=+
=+
=+
=++
++++++=
Fernando Nogueira Fluxo de Custo Mnimo 9
Casos Especiais (demais Problemas de Redes como Problema de Fluxo de Custo Mnimo)
contrriocasojparadesignadoise
01
xux0 ijijij
=
sujeito a:
1. Problema de Transporte
Um n de fornecimento para cada fonte
Um n de demanda para cada destino
Nenhum n Transshipment
uij =
== =
m
1i
n
1jijijxcZmin
=
= =
=
=
== demandadx
idadedisponibilsxbxx
jn
1iij
n
1jiijn
1jiji
n
1jij
( )n,...1j;m,...,1i0xux0 ijijij ==
== =
m
1i
n
1jijijxcZmin
=
= =
=
=
== demanda1x
idadedisponibil1xbxx
n
1iij
n
1jijn
1jiji
n
1jij
sujeito a:
2. Problema de Designao
Igual ao Problema de Transporte, com:
nmero de ns de fornecimento igual ao nmero de ns de demanda
bi = 1 para cada n de fornecimento
bi = -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 nsTransshipment
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 cij e cjiuij =
== =
m
1i
n
1jijijxcZmin
=
=
=== destinoi1
destinoouorigemi0origemi1
xxn
1jji
n
1jij
ijx0
Fernando Nogueira Fluxo de Custo Mnimo 11
0xxn
1jji
n
1jij =
==
ijij ux0
origem,destino
m
1i
n
1jijij xZminxcZmax ==
= =
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 nsTransshipment
cij = 0 para todo (i,j)
Adicionar um arco conectando o n de demanda ao n de fornecimento (neste sentido) com: udemanda,fornecimento= e
cdemanda,fornecimento > 0 (normalmente utiliza-se cdemanda,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 xij = uij recolocada por xij = uij yij, com yij = 0 tornando-se uma varivel no-bsica. Quando yij 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 (xij = uij) do n i para o n j.
ijij ux
( )iju
Fernando Nogueira Fluxo de Custo Mnimo 14
Com isso, quando xij = uij recolocado por xij = uij yij, o arco real i j substitudo pelo arco reverso j i, onde este novo arco possui capacidade uji = uij (mxima quantidade de fluxo que pode ser cancelada) e custo cji = cij. Para refletir o fluxo de xij = uijatravs do arco deletado, altera-se a quantidade de fluxo da rede gerada do n i para o n j por decrementar bi por uij e incrementar bj por uij.
Se yij torna-se uma varivel que deixa a base por alcanar seu limite superior, ento yij = uij recolocado por yij = uij xij com xij= 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 xAB tenha tornado-se uma varivel que deixa a base em alguma iterao por alcanar seu limite superior (xAB = 10).
xAB recolocado por xAB = 10 yAB, com yAB = 0 tornando-se a nova varivel no-bsica. Ento o arco A B substitudo pelo arco B A (com yAB como sua quantidade de fluxo) com capacidade uBA = 10 e custo cBA = -2. bA decrementado de uAB (bA = bA uAB), bA = 50 10 = 40 e bB incrementado de + uAB (bB = bB + uAB), bB= 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 xij representa o fluxo atravs do arco i j. Estes arcos so referidos como arcos bsicos (similarmente, os arcos correspondendo para as variveis no-bsicas xij = 0 ou yij = 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 (xij ou yij) igual a zero.
2)Para arcos que pertencem a rvore Geradora (arcos bsicos), resolver para as variveis correspondentes (xij ou yij) o sistema de equaes lineares fornecido pelas restries dos ns.
Para ilustrar este procedimento, considere a rede anterior que resulta em recolocar xAB = 10 por xAB = 10 yAB. Uma rvore Geradora para esta rede :
Fernando Nogueira Fluxo de Custo Mnimo 19
=+
=+
=+
=+
=++
60xxx30xxx0xxx
50xy40xxy
EDDECE
EDDEAD
CEBCAC
BCAB
ADACAB
Substituindo xAB = 10 yAB nas restries dos ns, fica:
V.B.
xAD = 40
xBC = 50
xCE = 50
xDE = 10
V.N.B.
yAB = 0
xAC = 0
xED = 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:
0xij
80xCE
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 yAB, xAC, e xED.
Escolhendo xAC 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 xAC 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 = cAC + cCE + cDE(-) + cAD(-)
Z = 4 + - 3 - 9 = -7
Fernando Nogueira Fluxo de Custo Mnimo 23
Fazendo = 1, resulta na taxa que Z varia quando xAC 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 yAB a rede fica:
Z = -2 + 9 + 3 +1(-) + 3(-) = 6 = 6 para = 1.
Fernando Nogueira Fluxo de Custo Mnimo 24
Para xED a rede fica:
Z = 2 + 3 = 5 = 5 para = 1.
Resumindo:
===
=1xse51yse6
1xse7Z
ED
AB
AC
Fernando Nogueira Fluxo de Custo Mnimo 25
Assim, o valor negativo para xAC impe que esta varivel entre na base.
Encontrando a Varivel Bsica que deixa a base
Uma vez que xAC 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 (uij). Retomando a rede adicionada do arco AC.
Fernando Nogueira Fluxo de Custo Mnimo 26
Os 5 arcos em questo so:
xAD = 40 - e uAD =
xDE = 10 - e uDE =
xCE = 50 + e uCE = 80
xAC = e uAC =
xBC = 50 (constante) e uBC =
Aumentando =10 resulta em xDE = 0, portanto, a varivel que deixa a base xDE.
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 xED 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