fluxo custo minimo

Upload: carlos-adriano

Post on 14-Oct-2015

35 views

Category:

Documents


0 download

TRANSCRIPT

  • 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