Você está na página 1de 18

Fluxo em Redes

Prof. Gustavo Peixoto Silva


1. Otimizao em Redes
um caso particular da Programao Linear, onde pretende-se
minimizar uma funo de custo que depende do fluxo que
passa pelos arcos de uma rede.
Os modelos de fluxo em redes apresentam muitas aplicaes,
associados tanta ao fluxo de material fsico, como o fluxo de
informaes, atribuio de tarefas, designao de locais,
entre outros.
Devido estrutura de rede, temos algoritmos especializados Devido estrutura de rede, temos algoritmos especializados
com grandes vantagens computacionais.
A geometria de uma rede, que relaciona as entidades envolvidas
no problema, sempre pode ser desenhada no plano, permitindo
fcil compreenso do problema estudado.
Nem sempre possvel representar um problema, mesmo que
seja de uma rede real, como um problema de Otimizao em
Redes.
2. Alguns sistemas abordados como redes:
Sistemas de produo/distribuio
Sistemas logsticos militar
Sistemas de trfego urbano
Sistemas de rodovias (transporte)
Sistemas de comunicao Sistemas de comunicao
Sistema de localizao
Sistema de roteamento e programao
Redes eltricas
Rede de dutos/tubulaes
Redes de relacionamento, entre outras.
3. Notao e Definies
Um grafo direcionado G = (N, A) apresenta um conjunto N de
ns e um conjunto A de arcos. Os arcos so pares ordenados de
ns distintos.
Arcos ligaes unidirecionais de transporte de produtos,
informaes ou outra entidade qualquer.
Ns locais de produo/consumo, terminais de conexo, etc.
Uma rede direcionada um grafo direcionado com valores
associados aos seus ns e/ou arcos.
Arcos custos , quant. min, capacidade e fluxo.
Ns oferta, demanda, custo/lucro marginal.
Normalmente utilizamos n para denotar o nmero de ns e m
para denotar o nmero de arcos em G, ou seja, |N| = n e |A| = m.
Uma rede pode ser armazenada em uma matriz nm
sendo uma linha para cada n, e uma coluna para cada
arco, dita matriz de incidncia n-arco.
A coluna correspondente ao arco (i, j) tem apenas dois
elementos no nulos, + 1 na linha do n i e 1 na linha
do n j.
Min cx (1) sujeito a
Ax = b (2)
0 x u, (3) ou l x u (3.1) 0 x u, (3) ou l x u (3.1)
c = vetor de custos nos arcos
x = vetor de fluxo nos arcos (incgnita)
A = matriz de incidncia n-arco
b = vetor de demanda nos ns
u = vetor de capacidade dos arcos
l = quantidade mnima de fluxo no arco
Min cx (1) sujeito a
Ax = b (2)
0 x u, (3)
A equao (1) minimizar o custo devido ao fluxo atravs
dos arcos da rede.
A equao (2) garante o equilbrio de fluxo em cada n
da rede.
E a restrio (3) assegura que o fluxo no ultrapasse a E a restrio (3) assegura que o fluxo no ultrapasse a
capacidade limite de cada arco.
Para cada n i temos:
Se bi > 0 ento i um n produtor.
bi < 0 ento i um n consumidor.
bi = 0 ento i um n de transbordo.
) 3 , 4 ( ) 2 , 4 ( ) 4 , 3 ( ) 2 , 3 ( ) 3 , 1 ( ) 2 , 1 (
X 6 5 4 3 2 1 X X X X X
4
3
2
1
(
(
(
(



1 1 1 0 0 0
1 0 1 1 1 0
0 1 0 1 0 1
0 0 0 0 1 1
(
(
(
(

4
2
2
4
A = , b =
6 5 4 3 2 1 15 5 10 10 15 20 X X X X X X Min + + + + +
4
3
2
1
n
n
n
n

= + +
= + +
=
= +
4
2
2
4
6 5 4
6 4 3 2
5 3 1
2 1
X X X
X X X X
X X X
X X
Assim o modelo que otimiza o fluxo na rede da Figura1 :

10 0 15 0 10 0
15 0 40 0 10 0
6 5 4
3 2 1


X X X
X X X
Obs.: A matriz tem apenas 2m elementos no nulos entre as nm posies. Esta
matriz, que tem apenas +1 e -1 dita unimodular, de importncia terica, pois
garante a existncia de algoritmos mais eficientes na resoluo de problemas de
otimizao associados a ela.
O = vetor origem, D = vetor destino, C = vetor de custos, a rede pode ser armazenada assim:
10 15 3 4 6
15 5 2 4 5
10 10 4 3 4
15 10 2 3 3
40 15 3 1 2
10 20 2 1 1
U C D O arco
Os Problema de Fluxo em Redes podem ser formulado como:
a sujeito
) , (

A j i
CijXij Min
N i bi Xji Xij
A i j i A j i j
=

) , ( : ) , ( :
(fluxo sai de i) - (fluxo entra em i) = (fluxo disponvel em i)
A j i Uij Xij ) , ( 0
n
Assim temos as seguintes leis para modelar um problema de fluxo em redes :
1. Lei de conservao de fluxo nos ns: fluxo entra + b
n
= fluxo sai do n
2. Lei de equilbrio de fluxo na rede: oferta de fluxo = demanda de fluxo

=
=
n
i
bi
1
0
DEFINIES
Grafos e redes direcionados
Grafo G=(N, A) , Rede R=(N, A, c, l, u, b, x) onde N um conjunto de ns e A
um conjunto de arcos que so pares ordenados de ns distintos.
Graus de entrada de um n igual ao nmero de arcos que chagam no n.
Grau de sada de um n, igual ao nmero de arcos que saem do n.
Lista de adjacncia
Lista de arcos adjacentes A(i) de um n i o conjunto de arcos que saem de i. Lista de arcos adjacentes A(i) de um n i o conjunto de arcos que saem de i.
A(i)={(i,j) A | j N}
Propriedade:

=
N i
m i A | ) ( |

Como nossa definio no permite arcos paralelos nem laos, temos
m < n(n - 1) < n
2
Um grafo esparso se m = O(n) e denso em caso contrrio (em particular,
no caso m = (n
2
).
Caminho
Caminho uma seqncia alternada contnua de ns e arcos, sem repeties.
Pode ter arcos no sentido direto ou no sentido oposto do caminho.
Caminho direcionado ou Cadeia
um caminho com todos os arcos orientados no sentido direto.
Observao: Podemos armazenar um caminho definindo um ndice (vetor)
predecessor pred(i) para todo n i do caminho.
Se i e j so ns consecutivos segundo a orientao do caminho, ento pred(j)=i.
Na figura a seguir temos: Pred(7)=5, pred(5)=2, pred(2)=1 e pred(1)= 0
1 2 5 7
1 7 4
incio
fim
Caminho
Sentido do caminho
Ciclo - um caminho fechado
Circuito - uma cadeia fechada
Grafo Conectado - Existe um caminho conectando qualquer par de ns
Grafo Fortemente Conectado - Existe uma cadeia (caminho direcionado)
conectando qualquer par de ns
rvore - um grafo conectado sem ciclos
rvore Geradora - uma rvore e um subgrafo gerador
Corte - uma partio dos ns de N em duas partes, S e = N S.
Cada corte define um conjunto de arcos a um extremo em S e outro em .
Estes arcos so denotados por [S, ].
A capacidade de um corte dada pela soma da capacidade dos arcos que
ligam ns se S a ns de menos a soma do limite inferior dos arcos que
ligam ns de aos ns de S.
S
S
S
S
S
Um vetor de fluxo x dito factvel se satisfaz as condies:
N i bi Xji Xij
A i j i A j i j
=

) , ( : ) , ( :
(fluxo sai de i) - (fluxo entra em i) = (fluxo disponvel em i)
A j i Uij Xij ) , ( 0
n

=
=
n
i
bi
1
0
Armazenamento de uma rede
Lista de ns adjacentes: Para cada n i temos uma lista ligada contendo os
seus ns adjacentes j e as informaes do arco (i,j).
Para acessar as n listas temos um vetor de ponteiros para a primeira clula
de cada lista. Essa primeira clula dita first . Se a lista de adjacentes do
n i vazia first(i)=0 .
Armazenamento de Uma Rede
Representao forword star
1
5
4 2
3
(25,30)
(15,40)
(15,30)
1
(35,50)
(25,20)
(45,60)
(35,50)
j i
(Cij,Uij)
1
1
2
3
4
5
j
Cij Uij
next
2
25 30
4
15
4 0
2
45 10 0
3 35 50
Armazenamento de uma rede
Ns trabalharemos com os vetores O[ ], D[ ], C[ ], etc.
Teremos tambm um vetor de listas adj_saida[ ] com os ndices dos
arcos adjacentes de sada (e de entrada) do n i.
adj_saida[i] = {1, 2}, adj_saida [2] = { }, adj_saida [3] ={3, 4} ,
adj_saida [4] = {5, 6}
PROBLEMAS CLSSICOS DE OTIMIZAO EM REDES
Problema do Caminho Mnimo (PCM): Qual a melhor forma de percorrer
uma rede indo de um dado ponto origem a um outro ponto destino, com o
menos custo possvel?
Condies
Problema de Fluxo Mximo (PFM): Qual o mximo de fluxo que pode-se
enviar de um dado ponto origem a outro ponto destino da rede, respeitando a
capacidade dos arcos? Como feito este envio?
Condies
Problema de Fluxo com Custo Mnimo(PFCM): Considerando que
1. conhecido o custo por unidade de fluxo que passa em cada arco da rede,
2. que os arcos podem ser podem ser capacitados,
3. e que precisamos enviar unidades de fluxo alocados em determinados ns
(oferta/produo) para outros ns (demanda/consumo),
Devemos responder como fazer este envio pela rede com o menor custo
possvel tal que toda a demanda seja devidamente atendida?
Formulao do Problema do Caminho Mnimo como um PPL
1. de um n origem s para um dado n destino t.
Fazemos b
S
= 1, b
t
= -1 e b
i
= 0 i s e i t, temos o PCM representado como
um problema de fluxo a custo mnimo.
2. de um n s para todos os demais ns da rede.
Fazendo b
S
= n-1 e b
i
= 1 i s, o problema se transforma e num PFCM.

Você também pode gostar