Escolar Documentos
Profissional Documentos
Cultura Documentos
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.