Você está na página 1de 26

Modelos de Fluxo em Redes

1
Problema do Caminho Mínimo Numa
Rede
m m
Minimizar:
∑∑ c x
i =1 j =1
ij ij

⎧1 se i = 1
m m

Sujeito a:
∑ xij − ∑ xkj = ⎨0 se i ≠ 1 ou i ≠ m
j =1 k =1 ⎪− 1 se i = m

xij ∈ { 0 ,1 }

Onde: cij = custo unitário entre o nó i e o nó j


xij=1, a aresta<i,j> faz parte do caminho, = 0, em caso contrário
2
Aplicação 1:
Dado o grafo orientado abaixo, determine a distância mínima entre os
pontos A e L.
10 3
B E H
1 4
8
8 2
2 7 4
6 I 9
A 1 11
C F 4 6 L
9 3
4 9
J
10 7
5
2
D 7 6
G 2
6
K 3
Resolução
Min 2XAB + XAC + 4XAD + 10XBE + 8XBF + 8XBG + 7XCE +
11XCF + 9XCG + 10XDE + 7 XDF + 7XDG + 3XEH + XEI +
2XEJ + 4XFH + 6XFI + 4XFJ + 9XFK + 5XGI + 2XGJ +
6XGK + 4XHL + 6XIJ + 9XIL + 2XJK + 3XJL + 6XKL
S.t.
XAB + XAC + XAD = 1
XBE + XBF + XBG - XAB = 0
XCE + XCF + XCG - XAC = 0
XDE + XDF + XDG - XAD = 0
XEH + XEI + XEJ - XBE - XCE - XDE = 0
XFH + XFI + XFJ + XFK - XBF - XCF - XDF = 0
XGI + XGJ + XGK - XBG - XCG - XDG = 0
XHL - XEH - XFH = 0
XIL + XIJ - XEI - XFI - XGI = 0
XJL + XJK - XEJ - XFJ - XGJ = 0
XKL - XFK - XGK - XJK = 0
-XHL - XIL - XJL - XKL = -1
4
End
Solução
10 3
B E H
1 4
8
8 2
2 7 4
6 I 9
A 1 11
C F 4 6 L
9 3
4 9
J
10 7
5
2
D 7 6
G 2
6
Caminho mínimo: 13
K
Arestas: AC, CE, EJ, JL 5
Problema do Fluxo de Custo Mínimo em
m m
uma Rede
Minimizar:
∑∑ c x
i =1 j =1
ij ij K é o vetor das
capacidade dos arcos
e C o vetor custo por
Sujeito a: n

∑x
unidades de fluxo
1i = v0 sobre os arcos
i =1
m m

∑x −∑x
j =1
ji
j =1
ij = 0 para i, j = 2,..., n − 1
n
− ∑ xin = −v0
i =1

0 ≤ xij ≤ kij para i, j = 1,..., n


6
Aplicação 2:
Dado o grafo orientado representativo de uma rede na figura
abaixo. Os valores em cada aresta representam o custo mínimo
(cij) da aresta entre os dois pontos (i e j), sendo kij, não nulos.
Determine o custo mínimo e a configuração correspondente
para esta rede.
10;3
5
2 3;5
6;7 5;4
1 10;5 7
4
3;2
13;7 6;7
3 4;4
6
6;3
Obs.: O problema de fluxo em custo mínimo é encontrar um fluxo de uma fonte s
7
para um destino t de custo mínimo em uma rede.
Resolução da aplicação para v0=11
Min
6x12 + 13x13 + 5x24 + 10x25 + 3x34 + 6x36 + 6x37 + 10x47 + 3x57 + 4x67
S.t.
x12 + x13 = 11
x24 + x25 - x12 =0
x34 + x36 + x37 - x13 = 0
x47 - x24 - x34 =0
x57 - x25 =0
x67 - x36 =0
-x37 - x47 - x57 - x67 = -11
x12 <= 7
x13 <= 7
x24 <= 4
x25 <= 3
x34 <= 2
x36 <= 3
x37 <= 7
x47 <= 5
x57 <= 5
x67 <= 4 8
End
Solução da aplicação 2
Para v0=11 tem-se função objetivo = 211 e x12 = 4, x13 = 7, x24 = 1,
x25 = 3, x34 = 0, x36 = 0, x37 = 7, x47 = 1, x57 = 3, x67 = 0.

10;3 (3)
5
2 3;5 (3)
6;7(4) 5;4 (1)
1 10;5 (1) 7
4
3;2 (0)
13;7(7) 6;7 (7)
3 4;4 (0)
6
6;3 (0)
9
Problema de Fluxo Máximo
numa Rede
Maximizar: F
Sujeito a: ⎧ F se i = 1
m m

∑ xij − ∑ xkj = ⎨0 se i ≠ 1 ou i ≠ m
j =1 k =1 ⎪− F se i = m

lij ≤ xij ≤ uij ∀i , j = 1,..., m
Onde:
F: função objetivo ou variável de decisão (Fluxo Máximo)
xij: quantidade a fluir do vértice i para o vértice j
O fluxo capacitado em cada aresta é limitado por lij e uij
10
Aplicação 3
Dado o grafo orientado representativo de uma rede na figura
abaixo. Os valores em cada aresta representam a vazão máxima
(uij) suportada pela tubulação (aresta) entre os dois pontos
(vértices i e j); sendo que as vazões mínimas (lij) são nulas.
Determine o Fluxo Máximo e a configuração para esta rede.
3 5
2 3
6 1
7 2
F F
1 1 6 8
4
5 2
5
3 9
7
5
11
Resolução da aplicação 3
Max F
S.t.
x12 + x13 =F
-x12 + x24 + x25 =0
-x13 + x34 + x37 =0
-x24 -x34 + x45 + x46 = 0
-x25 - x45 - x65 +x58 = 0
-x46 + x65 + x67 =0
-x37 - x67 + x78 =0
-x58 - x78 =F
x12 <= 6 x13 <= 5
x24 <= 7 x25 <= 3
x34 <= 5 x37 <= 5
x45 <= 1 x46 <= 1
x58 <= 3 x65 <= 2
x67 <= 2 x78 <= 9
End 12
Solução
F=9
x12 = 4 x13 = 5 x24 = 1 x25 = 3 x34 = 0 x37 = 5
X45 = 0 x46 = 1 x58 = 3 x65 = 0 x67 = 1 x78 = 6

3 (3) 5
2 (0) 3 (3)
6 (4) 7(1) 1 2 (0)
F F
1 1(1) 6 8
4
5 (0) 2 (1)
5(5)
3 9 (6)
7
5 (5)
13
Aplicação 4
A TEXACO deseja comprar a maior quantidade possível de
petróleo por hora via um oleoduto do nó S0 ao nó S1. Sobre este
caminho do nó S0 ao nó S1, o óleo passa através de outras
estações 1,2 e 3. Os vários arcos representam os oleodutos de
diferentes diâmetros. O número máximo de barris de petróleo
que cada arco pode transportar é mostrado abaixo. Cada um
destes números é chamado de capacidade dos arcos. Formule e
resolva o problema de modo a maximizar o número total de
barris por hora que podem ser enviados do nó S0 ao nó S1.

14
Grafo da aplicação 4
3

4
1
2
1 3
S0
3

2 2

S1

15
Resolução da aplicação 4
Max F
s.t.
xs01 + xs02 - F = 0
-xs01 + x13 + x12 = 0
-xs02 - x12 + x2s1 = 0
-x13 + x3s1 = 0
-x2s1 - x3s1 + F= 0
xs01 <= 2
xs02 <= 3
x12 <= 3
x13 <= 4
x2s1 <= 2
x3s1 <= 1
end 16
Solução
F= 3 e xs01 = 2, xs02 = 1, x13 = 1, x12 = 1, x2s1 = 2, x3s1 = 1.

3
(1)
4
1
2 (2) (1)
1 3 (1)
S0
3 (1)

2 2 (2)

S1

17
Exemplo 5
Em uma determinada companhia de transporte existem 7 tipos
de bagagens que deverão ser entregues por 5 transportes de
cargas. São 3 bagagens de cada tipo e a capacidade dos 5
transportes são 6, 4, 5, 4, 3 bagagens por carga,
respectivamente. Através do fluxo máximo, determinar como as
bagagens podem ser alocadas de modo que nenhum transporte
carregue 2 bagagens do mesmo tipo.

18
Resolução da aplicação 5
Bagagens

2
Caminhões

3 9

4 10
1 5 14
11
6
12
7 OBS:As setas que saem
das bagagens 3, 4, 5, 6, 7, 8
13 não foram colocadas para
8 não ficar confuso
19
Resolução
Máx F
S. t.
x12 + x13 + x14 + x15 + x16 + x17 + x18 – F = 0
-x12 + x29 + x210 + x211 + x212 + x213 = 0
-x13 + x39 + x310 + x311 + x312 + x313 = 0
-x14 + x49 + x410 + x411 + x412 + x413 = 0
-x15 + x59 + x510 + x511 + x512 + x513 = 0
-x16 + x69a + x610 + x611 + x612 + x613 = 0
-x17 + x79 + x710 + x711 + x712 + x713 = 0
-x18 + x89 + x810 + x811 + x812 + x813 = 0
-x29 – x39 – x49 – x59 – x69 – x79 – x89 + x914 = 0
20
Resolução
-x210 – x310 – x410 – x510 - x610 - x710 - x810 + x1014 = 0
-x211 – x311 - x411 - x511 - x611 - x711 - x811 + x1114 = 0
-x212 - x312 - x412 - x512 - x612 - x712 - x812 + x1214 = 0
-x213 – x313 - x413 - x513 - x613 - x713 - x813 + x1314 = 0
-x914 – x1014 – x1114 – x1214 – x1314 + F = 0
X12<=3; X13<=3; X14<=3; X15<=3;
X16<=3;X17<=3; X18<=3;

21
Resolução
X29<=1; X210<=1; X211<=1; X212<=1; X213<=1;
X39<=1; X310<=1; X311<=1; X312<=1; X313<=1;
X49<=1; X410<=1; X411<=1; X412<=1; X413<=1;
X59<=1; X510<=1; X511<=1; X512<=1; X513<=1;
X69<=1; X610<=1; X611<=1; X612<=1; X613<=1;
X79<=1; X710<=1; X711<=1; X712<=1; X713<=1;
X89<=1; X810<=1; X811<=1; X812<=1; X813<=1;
X914<=6; X1014<=4; X1114<=5; X1214<=4; X1314<=3;

22
Resolução no LINGO
Model:
sets:
nodes /1 ..14/;
arcs(nodes, nodes)/1,2 1,3 1,4 1,5 1,6 1,7 1,8 2,9 2,10 2,11
2,12 2,13 3,9 3,10 3,11 3,12 3,13 4,9 4,10 4,11 4,12 4,13
5,9 5,10 5,11 5,12 5,13 6,9 6,10 6,11 6,12 6,13 7,9 7,10
7,11 7,12 7,13 8,9 8,10 8,11 8,12 8,13 9,14 10,14 11,14
12,14 13,14 14,1/: cap,flow;
endsets
max=flow(14,1);
@for(arcs(i, j): flow(i, j) < cap(i, j));
@for(nodes(i): @sum(arcs(j,i): flow(j, i)) = @sum(arcs(i, j):
flow(i, j)));
data:
cap = 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 6, 4, 5, 4, 3, 1000;
enddata
end

23
Solução
FLOW( 1, 2) 3.000000
FLOW( 1, 3) 3.000000
FLOW( 1, 4) 3.000000
FLOW( 1, 5) 3.000000
FLOW( 1, 6) 3.000000
FLOW( 1, 7) 3.000000
FLOW( 1, 8) 3.000000
FLOW( 2, 9) 1.000000
FLOW( 2, 10) 1.000000
FLOW( 2, 11) 1.000000
FLOW( 2, 12) 0.000000
FLOW( 2, 13) 0.000000
FLOW( 3, 9) 1.000000
FLOW( 3, 10) 0.000000
FLOW( 3, 11) 1.000000
FLOW( 3, 12) 0.000000

24
Solução
FLOW( 3, 13) 1.000000
FLOW( 4, 9) 1.000000
FLOW( 4, 10) 1.000000
FLOW( 4, 11) 0.000000
FLOW( 4, 12) 1.000000
FLOW( 4, 13) 0.000000
FLOW( 5, 9) 1.000000
FLOW( 5, 10) 1.000000
FLOW( 5, 11) 1.000000
FLOW( 5, 12) 0.000000
FLOW( 5, 13) 0.000000
FLOW( 6, 9) 1.000000
FLOW( 6, 10) 1.000000
FLOW( 6, 11) 0.000000
FLOW( 6, 12) 1.000000
FLOW( 6, 13) 0.000000
FLOW( 7, 9) 1.000000

25
Solução
FLOW( 7, 10) 0.000000
FLOW( 7, 11) 0.000000
FLOW( 7, 12) 1.000000
FLOW( 7, 13) 1.000000
FLOW( 8, 9) 0.000000
FLOW( 8, 10) 0.000000
FLOW( 8, 11) 1.000000
FLOW( 8, 12) 1.000000
FLOW( 8, 13) 1.000000
FLOW( 9, 14) 6.000000
FLOW( 10, 14) 4.000000
FLOW( 11, 14) 4.000000
FLOW( 12, 14) 4.000000
FLOW( 13, 14) 3.000000
FLOW( 14, 1) 21.00000

26