Вы находитесь на странице: 1из 30

Universidade Federal de Ouro Preto

Instituto de Cincias Exatas e Biolgicas


Departamento de Computao

















Apostila de
CIC373 Fluxo em Redes





Aluno: Diego Faria Lemes

Professor: Gustavo Peixoto Silva


Programa PR-ATIVA da UFOP















Junho de 2006

APOSTILA DE FLUXO EM REDES 2


Sumrio

1 Introduo
2 Alguns sistemas abordados como redes:
3 Notao e Definies
4 Problemas Clssicos
4.1 Problema do caminho mnimo
4.2 Problema de Fluxo Mximo (PFM)
4.3 Problema de Transporte
4.4 Problema de transbordo
4.5 Problema de Designao ou assinalamento (casamento)
4.6 Problema de Circulao
4.7 Fluxo Generalizado
4.8 Problema de multifluxo ou mltiplos produtos
5 Definies
5.1 Grafos e redes direcionados
5.2 Graus
5.3 Lista de adjacncia
5.4 Subgrafo
5.5 Caminho
5.6 Caminho direcionado ou cadeia
5.7 Ciclo
5.8 Circuito
5.9 Grafo Conectado
5.10 Grafo Fortemente Conectado
5.11 rvore
5.12 rvore Geradora
5.13 Corte
5.14 rvore Enraizada
5.15 Fluxo Factvel
6 Armazenamento de uma rede
7 Transformao da rede
7.1 Arcos no direcionados para arcos direcionados
7.2 Removendo Limitante Inferior no Zero
7.3 Arco Reverso
7.4 Removendo Arcos Capacitados
7.5

Diviso de N
8 Algoritmo de Busca
8.1 Aplicaes
9 Caminho Mnimo
9.1 Classificao dos Algoritmos de Caminho Mnimo
9.2 Rotulamento
10 Padro Dimac
11 Complexidade do algoritmo de Dijkstra
12 Condies de Otimalidade
12.1 Definio
12.2 Propriedades

APOSTILA DE FLUXO EM REDES 3

13 Caminho Mnimo de S para t pelo Dijkstra
14 Algoritmo de rotulamento modificado para o caminho mnimo.
14.1 Operao na Fila
15 Fluxo Mximo
15.1 Cortes: Separando a origem e o destino
15.2 Formulao
15.3 Caminho de Aumento de Fluxo (CAP)
15.4 Problema do fluxo factvel (aplicao do fluxo mximo)
15.5 Teorema do fluxo mximo/corte mnimo
15.6 Problema do fluxo mximo
16 Algoritmo genrico de caminhos aumentantes
17 Aplicaes do problema de fluxo mximo
17.1 Problema dos representantes
17.2 Programao de Maquinas Paralelas Uniformes
17.3 Arredondamento de matriz
18 Problema de Fluxo com Custo Mnimo
18.1 Algoritmos Bsicos
18.1.1 Primal-Dual
18.1.2 Out-of-Kilter
18.1.3 Simplex para rede
18.2 Condies de Otimalidade do PFCM
18.2.1 Ciclo Negativo
18.2.2 Custo reduzido
18.3 Interpretao Econmica
18.4 Folgas Complementares
18.5 Relacionando Fluxo timo com Potencial timo
18.5.1 Calculando o potencial timo conhecido o fluxo timo
(dado
*
obter
*
X )
18.5.2 Obtendo o fluxo timo, conhecido o potencial
timo(dado
*
X obter
*
)
18.6 Soluo bsica factvel para o problema de fluxo com custo mnimo
18.7 Resolvendo uma rede com n ns.
18.8 Computando os coeficientes da F.O. para uma soluo bsica factvel.
18.9 Determinando de uma soluo bsica factvel tima.
18.10 Pivoteamente no simplex para rede (melhoramento da F.O.)















APOSTILA DE FLUXO EM REDES 4

1. Introduo

Programao Linear : minimizao de uma funo que depende do fluxo
(custo/lucro) em uma rede.
Modelos de fluxo em redes em varias aplicaes. Isso permite o desenvolvimento
de algortimos especializados com grandes vantagens computacionais.
A geometria das redes, em relao entre as entidades, pode ser desenhada no
plano, permitindo fcil compreenso do problema.

2. Alguns sistemas abordados como redes:

Sistemas de produo/distribuio.
Sistemas logsticos militar.
Sistemas de trafego urbano.
Sistemas de rodovias (transporte).
Sistemas de comunicao.
Rede de dutos/tubulaes.
Sistema de localizao.
Sistema de roteamento e programao.
Redes eltricas, ...

3. Notao e Definies

Um grafo direcionado G = (N,A) consiste de um conjunto N de ns e outro A de
arcos.
Os arcos so pares ordenados de ns distintos.
Arcos ligaes unidirecionais de transporte de produtos.
Ns locais de produo /consumo, terminais de conexo.
Uma rede direcionada um grafo direcionado com valores associados aos seus
ns e/ou arcos.
Arcos custos, capacidade, fluxo.
Ns oferta, demanda, custo/lucro marginal.
Normalmente se utiliza n para denotar o numero de ns e m para denotar o
numero de arcos em G, ou seja, |N| = n e |A| = m.
A estrutura de uma rede pode ser armazenada em uma matriz nxm que tem 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.
Geralmente um Problema de Fluxo em Redes :

Min Cx (1)
Sujeito a Ax = b (2)
0 x u, (3)

Onde:
C = vetor de custos nos arcos.
x = vetor de fluxo nos arcos (incgnita).
A = matriz de incidncia n-arco.
b = vetor de demanda nos arcos.

APOSTILA DE FLUXO EM REDES 5

u = vetor de capacidade nos arcos.
A equao (1) minimizar os custos, na (2) garantido o equilbrio de fluxo em cada n
da rede e a restrio (3) assegura que o fluxo no ultrapasse o limite de cada arco.

Para cada n i temos que:
Se b
i
< 0


i n produtor.

b
i
>

0

i no consumidor.
b
i
= 0 i n de transbordo.


O custo dado por unidade de fluxo que passa pelo arco. Assim temos o modelo de
programao linear equivalente.


) 3 , 4 ( ) 2 , 4 ( ) 4 , 3 ( ) 2 , 3 ( ) 3 , 1 ( ) 2 , 1 (
X 6 5 4 3 2 1 X X X X X

Matriz A =
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
, b =
(
(
(
(

4
2
2
4


Assim o modelo que otimiza o fluxo nesta rede (figura1) :

6 5 4 3 2 1 15 5 10 10 15 20 X X X X X X Min + + + + +
Sujeito a
4
3
2
1
n
n
n
n

= + +
= + +
=
= +
1
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



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


X X X
X X X


APOSTILA DE FLUXO EM REDES 6


Observao: A matriz tem apenas 2xm elementos no nulos entre as nxm posies.
Esta matriz, que tem apenas +1 e -1 dita uni modular, de importncia terica
pois garante a existncia de algortimos mais eficientes na resoluo de problemas de
otimizao associados a ela.

Seja O = vetor origem, D = vetor destino e C = custos nos arcos, ento uma
outra representao para a rede :

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 arco


O problema de Fluxo com custo mnimo (PFCM) pode ser formulado como:

A j i
CijXij Min
) , (

Sujeito a

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

) , ( : ) , ( :


(fluxo sai) (fluxo entra) (fluxo disponvel)


A j i Uij Xij ) , ( 0

=
=
n
i
bi
1
0


Lei de conservao de fluxo nos ns:

fluxo entra = fluxo sai.


4. Problemas Clssicos
a. Problema do Caminho Mnimo(PCM): Qual a melhor forma de percorrer uma
rede indo de um dado ponto a outro, com o menos custo possvel?
b. Problema de Fluxo Mximo(PFM): uma rede com arcos capacitados, como e
qual o mximo de fluxo o que possvel de se enviar de um dado ponto a outro da
rede, respeitando a capacidade dos arcos?
c. Problema de Fluxo com Custo Mnimo(PFCM): Considerando um dado custo por
unidade de fluxo em uma rede ( nos seus arcos) com arcos capacitados, e que
precisamos enviar unidades de fluxo alocados em determinados ns
(oferta/produo) para outros ns (demanda/consumo), como faze-lo com o menor
custo possvel?


APOSTILA DE FLUXO EM REDES 7

4.1 Problema do caminho mnimo
De um n s dito origem para um dado n destino t. Fazemos b
S
= 1, b
t
= -1 e
b
i
= 0 is e it, temos o PCM representado como um problema de fluxo a
custo mnimo.
De um n S para todos os demais ns. Fazendo b
S
= n-1 e b
i
= 0 is, o
problema se transforma e num PFCM.



4.2 Problema de Fluxo Mximo (PFM)
Consiste em enviar a quantidade mxima de fluxo de uma dada origem s para um
certo destino t em uma rede capacitada, ou seja, C
i
< i=1,..,m.
Criando, ou seja, adicionando um arco de t para s com custo igual a -1 e U= , e
fazendo C
i
=0, para os demais arcos, o PFM transformado em PFCM.
Fluxo Mximo
1
2
4
3
(0,3)
(0,5)
(0,2) (0,1)
(0,1) (0,4)
(-1,999999)
arco artificial ou
arco de retorno


4.3 Problema de Transporte
Rede bipartida onde uma parte contm ns de oferta e a outra contm os ns de
demanda. Os arcos ligam os ns de oferta diretamente aos ns de demanda.
Problema de Transporte
1
2
3
4
5
ns de
oferta
ns de
demanda
{10}
{15}
{15}
{-20}
{-20}




4.4 Problema de transbordo
um problema de transporte com ns intermedirios com b = 0 ou seja a demanda
dos ns intermedirios igual a 0.

APOSTILA DE FLUXO EM REDES 8


4.5 Problema de Designao ou assinalamento (casamento)
Rede bipartida onde o nmero de ns de oferta igual ao nmero de ns de
demanda. Para que haja o assinalamento 1 a 1, fazemos b
k
=1 onde k n de oferta e
b
L
=-1 onde L n de demanda.

Operarios
Mquina
Problema de Designao
ou Assinalamento
1
2
3
1
2
3
(habilidade/satisfao, 1)
{1}
{1}
{1}
{-1}
{-1}
{-1}


4.6 Problema de Circulao
No existe oferta nem demanda nos ns. Neste caso a rede deve ter alguma
caracterstica que gere a movimentao de unidades produzindo um fluxo na rede.
Assim temos b = 0, e ( C
k
< 0 ou l
M
>0) para algum k ou M.
Problema de Circulao
(custo, lim inf, lim sup)
1
2
3
4
5


Exerccio 1: Uma secretaria de educao esta colhendo propostas de 4 empresas de
transporte escolar para realizar as 4 rotas pr-determinadas. Os dados so:


APOSTILA DE FLUXO EM REDES 9

5000 4000 4
2000 3000 3
4000 4000 2
5000 4000 1
4 3 2 1
empresa
empresa
empresa
empresa
rota rota rota rota

a) Supondo que cada empresa s pode ficar com uma rota, montar a rede que
minimiza o custo total da secretaria (usando assinalamento).
b) E se cada empresa puder operar em duas rotas, como fica o modelo de
assinalamento?

Exerccio 2: Uma companhia produz leo em 2 poos. possvel enviar petrleo
diretamente para seus clientes C1 e C2, ou enviar o petrleo a 2 portos distintos P1 e P2
e ento despachar para os clientes. Os dados so:

000 . 140 000 . 160 000 . 200 000 . 150 /
15 2
15 1
16 14 6 2
17 16 6 1
25 26 12 15 2
28 25 13 10 1
2 1 2 1 2 1
demanda oferta
cliente
cliente
porto
porto
poo
poo
cliente cliente porto porto poo poo


A oferta e a demanda dada em barris/dia, enquanto que os custos so para
transportar 1.000 barris.

Exerccio 3: Uma empresa produz e vende um nico artigo. O artigo produzido em
trs fabricas localizadas em cidades diferentes, com as seguintes capacidades mensais,
em unidades:
Fabrica A: 20 unidades
Fabrica B: 35 unidades
Fabrica C: 40 unidades
O artigo vendido a trs clientes exclusivos. O cliente F quer comprar 30
unidades por ms, o cliente G quer pelo menos 25 unidades por ms e o cliente H esto
dispostos a comprar quaisquer quantidades em excesso dos respectivos mnimos
estipulados.
Como os clientes so de cidades diferentes e, alem disso, os preos pagos por
eles diferem entre si, o lucro por unidade auferido pela empresa depende tato da fabrica
de origem como do cliente de destino. Esses lucros, em milhares de cruzados, so dados
na tabela a seguir:


APOSTILA DE FLUXO EM REDES 10

2 $ 6 $ 3 $
4 $ 1 $ 2 $
5 $ 3 $ 7 $
C
B fbricas
A
H G F
clientes


Suponha que a empresa queira estabelecer um plano de distribuio das
produes das fabricas para os clientes que maximize o seu lucro total. Mostre como
este problema pode ser formulado como o modelo de transporte de programao
linear.

Exerccio 4: Um sistema de escoamento de produo precisa levar 20.000 t/dia de trs
regies para dois pontos de embarque. O material precisa ser acondicionado em ter
entrepostos intermedirios. Monte o problema da determinao de fluxo de transporte, a
um mnimo custo global, como de programao linear. Indique claramente quais so as
variveis de deciso.

Produo a
ser escoada
5.000t/dia-------------8.000t/dia-------------7.000t/dia
Icap.mx.
8.000t/dia
IIcap.mx.
6.000t/dia
IIIcap.mx.
8.000t/dia
A B C
1 2
Capacidade maxima
de embarque
12.000t/dia-------------11.000t/dia
Exerccio 4


Custo Unitrio de transporte $/t
6
7 7
6
7 5
4 6 7
5 8
2 1







C
B
A



4.7 Fluxo Generalizado
No PFCM existe conservao de fluxo no arco, o fluxo que entra igual ao fluxo
que sai do arco.
No problema de fluxo generalizado o arco pode consumir ou produzir fluxo.
Exemplos onde isso ocorre:

APOSTILA DE FLUXO EM REDES 11

(a) transmisso de energia por linhas eltricas
(b) gua transportada por dutos ou canais
(c) investimentos financeiros onde os arcos representam oportunidade de
investimento.

4.8 Problema de multifluxo ou mltiplos produtos
Este problema surge quando vrios produtos usam a mesma rede, ou tem
diferentes pontos de origem e destino. Exemplos:
(a) Transporte de passageiros de diferentes pontos
(b) O roteamento de veculos no homogneos
(c) Transporte de gros
(d) Envio de mensagens


5 Definies
5.1 Grafos e redes direcionados
G=(N,A) ou R=(N,A,c,l,u,b) onde N um conjunto de ns e A um conjunto de
arcos que so pares ordenados de ns distintos.

5.2 Graus

Graus de entrada: o grau de entrada de um n igual ao nmero de arcos que
chagam no n.
Grau de sada: o grau de sada de um n, igual ao nmero de arcos que saem do
n.

5.3 Lista de adjacncia
Lista de arcos adjacentes A(i) de um n i o conjunto de arcos que saem de i.
A(i)={(i,j) A:jN}
Propriedade

=
N i
m i A | ) ( |

5.4 Subgrafo
G=(N,A) um subgrafo de G se N N e A A. G subgrafo gerador de G se
N=N e AA.
5.5 Caminho
Caminho uma seqncia alternada contnua de ns e arcos, sem repetio de ns.
Pode ter arcos no sentido direto ou no sentido oposto do caminho.

5.6 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


APOSTILA DE FLUXO EM REDES 12


5.7 Ciclo
um caminho fechado.

5.8 Circuito
uma cadeia fechada.

5.9 Grafo Conectado
Existe um caminho conectando qualquer par de ns.

5.10 Grafo Fortemente Conectado
Existe uma cadeia (caminho direcionado) conectando qualquer par de ns.

5.11 rvore
um grafo conectado sem ciclos.

5.12 rvore Geradora
uma rvore e um subgrafo gerador.

5.13 Corte
uma partio dos ns de N em duas partes, S e
S

= N S. Cada corte define um


conjunto de arcos a um extremo em S e outro em
S

. Estes arcos so denotados por [S,


S

]. A capacidade de um corte dada pela soma da capacidade dos arcos que ligam ns
se S a ns de
S

menos a soma do limite inferior dos arcos que ligam ns de


S

a ns de
S.

5.14 rvore Enraizada
uma rvore com um dado n denominado raiz.

5.15 Fluxo Factvel
Seja X = (X
ij
) vetor de fluxo em cada arco da rede. X um vetor de fluxo factvel
se A j i u X l ij ij ij ) , ( e,
Equao de conservao de fluxo

=
=
=






tranbordo i se X X
demanda i se v X X
oferta i se v X X
Ai j Bj i
ji ij
Ai j Bj i
ji ij
Ai j Bj i
ji ij
0
,



6 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 .

APOSTILA DE FLUXO EM REDES 13

Armazenamento de Uma Rede
1
5
4 2
3
(25,30)
(15,40)
(15,30)
1
(35,50)
(25,20)
(45,60)
(35,50)
j i
(Cij,Uij)

A representao por lista de adjacncia da rede acima dada, de forma resumida a
seguir.
1
1
2
3
4
5
j Cij Uij next
2 25 30
4 15 4 0
2 45 10 0
3 35 50
Representao forword star



7 Transformao da rede
Transformao da rede
Mostrar equivalncia
Inicializao mtodo/representao padro requerido

Considere a formulao do PFCM

A j i
CijXij Min
) , (

Sujeito a

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

) , ( : ) , ( :


A j i Uij Xij ) , ( 0

=
=
n
i
bi
1
0




APOSTILA DE FLUXO EM REDES 14

7.1 Arcos no direcionados para arcos direcionados
Se {i,j}A com C
ij
0 e capacidade U
ij
, permite fluxo de i para j e de j para i e X
ij

+ X
ji
U
ij
e na Funo objetivo temos C
ij
X
ij
+ C
ij
X
ji
.
Se C
ij
0 ento X
ij
*
=0 ou X
ji
*
=0 e considere l
ij
=0.
Transformao: trocar {i,j} pelos arcos (i,j) e (j,i), ambos com custo C
ij
e
capacidade U
ij
.
Assim, se {i,j} tem fluxo de i para j na rede transformada teremos X
ij
= e X
ji
=0
e vice-versa.
Analogamente, se X
ij
0 e X
ji
0 na rede direcionada X
ij
X
ji
>0 ento o fluxo em
{i,j} ser de X
ij
X
ji
unidades no sentido de i para j.
Se X
ji
X
ij
>0 ento {i,j} ter X
ji
X
ij
unidades de fluxo no sentido de j para i.
Em ambos os casos o fluxo contrario igual a 0.
Se X
ij
= X
ji
o fluxo {i,j} zero.


7.2 Removendo Limitante Inferior no Zero
Se arco (i,j) tem limitante inferior l
ij
>0 sobre X
ij
, trocar X
ij
por X
ij
+ l
ij
na
formulao. Ento teremos l
ij
X
ij
+ l
ij
U
ij
e depois 0 X
ij
U
ij
- l
ij
.
Segundo a equao de equilbrio de fluxo teremos: b(i) passa para b(i)- l
ij
e b(j)
passa para b(j)- l
ij.
H o acrscimo de uma constante na Funo Objetivo que pode ser ignorada no
processo de otimizao.

7.3 Arco Reverso
Usado para eliminar arcos com custo negativo.
Seja U
ij
capacidade de (i,j), trocar X
ij
por U
ij
- X
ij
ento C
ij
X
ij
= C
ij
U
ij
- C
ij
U
ji
,
trocar o arco (i,j) pelo (j,i) com custo - C
ij
.
Onde X
ji
a quantidade de fluxo a ser retirada do fluxo completo U
ij
.
i j
(Cij,Uij)
Arco reverso
Xij
b(i)
b(j)
i j
(Cij - Uij)
Xji
b(i) - Uij
b(j) +Uij

7.4 Removendo Arcos Capacitados
Seja (i,j) com capacidade U
ij
, ento introduzir um n adicional tal que a restrio
de capacidade se transfira para a restrio de equilbrio de fluxo.

APOSTILA DE FLUXO EM REDES 15

Suponha que introduzimos uma varivel de folga S
ij
0, e escrevemos a restrio
de capacidade na forma de igualdade.
X
ij
U
ij
ento X
ij
+ S
ij
= U
ij
(-1) assim - X
ij
- S
ij
=- U
ij
.
Subtraindo - X
ij
- S
ij
=- U
ij
da equao de fluxo do n j temos X
ij
e S
ij
somente em
duas equaes. Tais operaes corresponde a:

Exemplo:
Na rede bipartida os ns da esquerda so iguais aos ns da rede original com
oferta igual b(i) +

} ) , ( : { A i k k
ki U e os ns da direita so iguais aos arcos (i+j)A na rede
original com demanda igual a -U
ij
. Cada n (i-j) tem exatamente dois arcos chegando
neste com origens nos ns i e j da esquerda.
A rede transformada tem n+m ns e 2m arcos.

i j
(Cij, 0 ,Uij)
Removendo arcos capacitados
Xij
b(i)
b(j)
i k
(Cij -
Xik
b(i) -Uij
j
Xjk
b(j) +Ucj
8
)
(0 -
8
)

Um exemplo de remoo de arcos capacitados apresentado a seguir.

APOSTILA DE FLUXO EM REDES 16

1
2
3
1-2
1-3 20
35
25
Exemplo Removendo arcos capacitados
1
2
4
3
(5,10)
(6,30)
(4,20) (1,10)
(3,5) (2,15) 20
10
-30
0
4
10
2-3
2-4
3-2
3-4
-10
-20
-5
-30
-15
-10
5
4
0
3
6
0
0
0
2
1
0
0



7.5 Diviso de N
Divide cada n i nos ns i e i com funes de n de sada e entrada.
Cada arco (i,j) se transforma em (i, i) de mesmo custo e capacidade. Adiciona o
arco (i,i) a custo zero, e a capacidade infinita, ou de acordo com a necessidade.
A oferta/demanda da rede transformada :
Se b(i)>0 ento b(i)=b(i) e b(i)=0.
Se b(i)<0 ento b(i)=b(i) e b(i)=0.
Caso contrario b(i)=b(i)=0.
Exemplo
Esta transformao pode ser usada para representar situaes onde os ns tem
capacidade de custo para unidade que passa por ele.

Diviso de n
i
i' i"
b(i)
b(i") b(i')


APOSTILA DE FLUXO EM REDES 17



8 Algoritmo de Busca
Serve para encontrar ns de uma rede com determinadas caractersticas.
Muitas variantes esto nos algoritmo de fluxo mximo e fluxo com
caminho mnimo.
8.1 Aplicaes
Encontrar todos os ns que esto ligados a um dado n origem atravs de
um caminho direcionado e vice-versa.
Identificar todos os componentes conexos de uma dada rede.
Determinar se uma dada rede bipartida.
Encontrar um ciclo direcionado numa rede.

Exemplo: G=(N,A), encontrar os ns eu so alcanados a partir de um n origem S, por
um caminho direcionado.
1. marcar o n S. Os demais so ns no marcados.
2. buscar, a partir de S, os ns que satisfazem uma dada condio e marca-los.
3. suponha i marcado e j no marcado. Ento, se existe o arco (i,j), este arco
dito como admissvel. Caso contrario, ele inadmissvel.
4. Examinando arcos admissveis, o algoritmo ir marcar novos ns. Se o
procedimento marcar um n j examinando um arco admissvel (i,j), dizemos
que o n i predecessor do n j, isto , pred(j)=i.
5. o algoritmo termina quando a rede no possui arcos admissveis.

A busca percorre os ns marcados em uma dada ordem. Gravamos esta ordem
num vetor ordem(i)=k. Neste caso, o n i esta na k-sima posio do caminho.
Lista o conjunto de ns marcados ainda por examinar se existir arco admissvel
saindo dele.
Ao final, esto marcados todos os ns alcanveis, a partir de S via caminho
direcionado.
O vetor predecessor define uma rvore com todos os caminhos marcados.
Complexidade: (m+n)=(m).

9 Caminho Mnimo
G=(N,A), c
ij =
comprimento de arco (i,j). O comprimento de um caminho
direcionado P dado por:

P j i
ij C
) , (

Considerando n origem S e o n destino A, o modelo matemtico fica:

A j i
ij ij X C
) , (
min


Sujeito a
=

A i j A j i
Xji Xij
) . ( ) , (

=
=
contrario caso
t i se
s i se
0
1
1


APOSTILA DE FLUXO EM REDES 18


No caso, G no pode conter ciclos negativos.

Caminho Mnimo
{1} {-1}
1
6
5
4 2
3
4
5
2
1
2
3
1 4
3
2
Do n 1 para o n 6 ou ...


9.1 Classificao dos Algoritmos de Caminho Mnimo
Label setting (rotulamento), no admite custo negativo nos arcos.
Label correcting (rotulamento modificado) admite custo negativo nos
arcos.
Esses algoritmos atribui estimativas de distncias aos ns, a cada passo.
Variaes esto na maneira como atualizam a distncia de um passo para o outro, e
como convergem para a soluo.
Rotulamento: atribui uma distncia como permanente (tima) a cada iterao.
Rotulamento modificado: considera todos os rotulamentos como temporrios,
at o final, quando ento elas se tornam permanentes.
Rotulamento: aplicveis quando G acclicos e com custos no negativos nos
arcos.
Rotulamento modificado: G no pode ter ciclos negativos, mas pode ter arcos
com custo negativo.

9.2 Rotulamento
Algoritmo de Dijkstra: encontra o caminho mnimo a partir de uma dada origem
para todos os demais ns de G.
Caractersticas:
- mantm d(i) i N com limite superior para a distancia de S at i.
-divide os ns: 1. rotulados permanente
2. rotulados temporariamente
-o rtulo permanente a menos distancia de S at o n.
d(j)=d(i) + C
ij
ocorre quando o n j rtulo permanente de tem o arco (i,j) no
caminho mnimo.
d(j)d(j) + C
ij
(i,j) A

Idia bsica:
Partir de S e rotular permanentemente os ns na ordem de suas distancias de S.
Inicializao: d(s) := 0
d(i):= i N- {S}

APOSTILA DE FLUXO EM REDES 19

A cada iterao, o rtulo de um n i que a menos distancia desde a origem por
um caminho cujos ns intermedirios so todos rotulados permanentemente.
O algoritmo seleciona o n com o menor rtulo temporrio, o rtulo como
permanente e pesquisa os arcos que saem de i, atualizando a distancia dos seus ns
adjacentes.
O algoritmo termina quando todos os ns estiverem rotulados.

10 Padro Dimac de armazenamento de redes
superior inferior
custo limite limite cabea calda
C U L h t
. . . . .
. . . . .
. . . . .
C U L h t
C U L h t
b n
. .
. .
. .
b n
b n
rede.txt
n n n n n
2 2 2 2 2
1 1 1 1 1
n n
2 2
1 1


Para maiores detalhes, visitar o site do Center for Discrete Mathematics and Theoretical
Computer Science em <http://dimacs.rutgers.edu/>

11 Complexidade do algoritmo de Dijkstra
seleo dos ns: so realizadas n selees pra encontrar o mnimo entre os ns no
rotulados, com um tempo total de m+(m-1)+(m-2)+...+1=(n
2
).
atualizao da distncia: so realizadas |A(i)|. No total temos
m i A
N i
=

| ) ( |
.
Cada operao requer (1) ento temos (m) para a atualizao da distncia .
Como (n
2
) (m), temos que a complexidade (n
2
) para o algoritmo.
Observao: para rede densa m n
2
, para rede espaa m n.

Rotulamento Permanente: trabalha com redes acclicas e com custos no negativos.
Rotulamento modificado: trabalha com redes acclicas e com custos que podem ser
negativos.
Ambos reduzem a distancia de um n a cada iterao considerando uma busca
local do tipo: o comprimento do arco e a distancia corrente dos seus ns adjacentes.

12 Condies de Otimalidade
Seja d(j) js o comprimento do caminho mnimo da origem at j, ento temos
que:
A (i,j) Cij d(i) d(j) +

APOSTILA DE FLUXO EM REDES 20

Ou seja, para cada (i,j) A, o comprimento do caminho mnimo at j no pode ser
maior do que o caminho mnimo at i mais o comprimento do arco (i,j).

12.1 Definio
A distancia reduzida do arco (i,j) em relao ao rtulo distancia d(i) c
a
ij
=c
ij
+d(i)-d(j)

12.2 Propriedades
para qualquer ciclo direcionado W, temos que


=
W j i
ij
W j i
d
ij
c c
) , ( ) , (

Para qualquer caminho direcionado P do n K ao n L, temos que


+ =
P j i
l k ij
P j i
d
ij
d d c c
) , ( ) , (
) ( ) (

se d(i) representa a distancia de caminhos mnimos, ento A (i,j) c
d
ij
0

Exerccio _
Aplicar Dijkstra rede acima escrevendo a cada iterao o contedo de S, S, d e pred(i).

13 Caminho Mnimo de S para t pelo Dijkstra
Ao final o vetor d contm a distancia mnima de S at o referido n.
Para encontrar o caminho mnimo de S para t, basta interromper o processo
quando o n t for escolhido para ser rotulado permanentemente, ou seja, quando
d(t)=min{d(j):j

S }.

14 Algoritmo de rotulamento modificado para o caminho mnimo.
Suponha que a rede no tenho ciclos negativos. No algoritmo do rotulamento
modificado, a lista examinada pelo mtodo FIFO (first-in,first-out), ou seja, a lista
uma fila.

Teorema: o algoritmo do rotulamento modificado FIFO para o problema co
caminho mnimo tem complexidade (nm).

Implementao com uma dequene: mais rpida para redes esparsas.
Dequene: lista onde podemos incluir ou retirar elementos do inicio ou do final.
Retira sempre da frente da fila. Para adicionar um n fila observe: se j estiver
anteriormente fila, adicionar na frente. Caso contrario, adicionar o n no final da fila.
Representamos uma fila por um vetor do tamanha n=1 para armazenar at n
elementos.

4 2 8 5
8 7 6 5 4 3 2 1
fila

ltimo prieiro


Temos um ponteiro prim, que mantm o ndice da primeira posio na fila menos um,
e mantemos o outro ponteiro ult com o ndice do ultimo elemento da fila.


APOSTILA DE FLUXO EM REDES 21

14.1 Operao na Fila
A fila estar vazia se prim=ult
o primeiro elemento da fila acessado por fila(prim+1), ou seja, para retirar faa
prim:=prim+1 e I:=fila(prim)
para inserir um elemento i na lista, faa ult:=ult+1 e fila(ult):=i.

Exerccio
Executar o algoritmo nas redes do captulo do livro de Ahuja, Magnanti e Orlin.
15 Fluxo Mximo

15.1 Cortes: Separando a origem e o destino
G rede direcionada. G(N,A,l,u,s,t). Sejam
X subconjuntos de ns de G contendo a origem,
__
X subconjunto de ns de G contendo o
destino tal que G X X =
__
e =
__
X X .
A partio ) , (
__
X X define um corte separando os ns de origem e destino.
Os arcos diretos do corte ) , (
__
X X so {(i,j):(i,j), X i e
__
X j }.
Os arcos reversos do corte ) , (
__
X X so {(i,j):(i,j),
__
X i e X j }.
A capacidade do corte ) , (
__
X X dada por

) , ( ) , ( j i j i
ij ij l U
15.2 Formulao
Considere a rede capacitada G=(N,A) com capacidade no negativa U
ij
para cada arco
(i,j)A. A formulao matemtica para o problema de fluxo mximo do n origem s
para o n destino t fica:

Max v

s.a

t t se v
t s N i
s i se v
X X
A j i i A i j j
ji ij
=

=
=



} , { 0

) , ( : { ) , ( : {


A j i U X ij ij ) , ( 0 ]
Consideramos o problema de fluxo mximo nas seguintes condies:
1.a rede direcionada
2.todas as capacidades so inteiras no negativas
3.a rede contm um caminho direcionado de s para t com capacidade infinita
4.a rede no contm arcos paralelos.

15.3 Caminho de Aumento de Fluxo (CAP)
Seja X=(X
ij
) um vetor de fluxo factvel de valor v numa rede G=(N,A,l,u,s,t). Um
caminho P de s para t dito um caminho de aumento de fluxo em relao a X se:
X
ij
<U
ij
para os arcos diretos de P
X
ij
>l
ij
ara os arcos reversos de P
Seja = min{
1
,
2
} onde

APOSTILA DE FLUXO EM REDES 22

1
=min{(U
ij
-X
ij
):(i,j) um arco direto em P}

2
=min{(X
ij
-l
ij
):(i,j) um arco reverso em P}
Define-se um novo fluxo a partir de
__
X dado por:
__
X
ij
= X
ij
se (i,j)P
__
X
ij
= X
ij
+ se (i,j) arco direto em P
__
X
ij
=X
ij
- se (i,j) arco reverso em P.
Assim
__
X um fluxo factvel e dado um fluxo factvel e um CAF, possvel construir
um outro fluxo factvel com valor maior que o anterior.

15.4 Problema do fluxo factvel (aplicao do fluxo mximo)
Identificar um fluxo X na rede G=9N,A) tal que:
0
(1) ) , ( 0



} ) , ( : { } ) , ( : {
=

=


N I
i
ij ij
ij
A i j j
ji
A j i j
ij
b
A j i U X
N i b X X

Encontramos um fluxo factvel resolvendo um problema de fluxo mximo numa rede
aumentada como segue.
Introduzimos dois ns s-super origem e t-super destino. Para cada i com bi>0
acrescentamos um arco (s,i) com capacidade bi e para cada n i com bi<0,
acrescentamos um arco (i,t) com capacidade bi.
Esta a rede transformada, sobre a qual calculamos o fluxo mximo de s pata t.
Se o fluxo mximo saturar todos os arcs ligados a s e a t, entoo problema (1) tem um
fluxo factvel caso contrario ele ser infactvel.
Caso exista, o fluxo factvel ser aquele definido de fluxo mximo na rede original da
rede transformada.

15.5 Teorema do fluxo mximo/corte mnimo
O valor do fluxo mximo igual a capacidade mnima dentre os cortes que
separam a origem e o destino.

15.6 Problema do fluxo mximo
Dados dois ns s origem e destino t numa rede capacitada, enviar o mximo de
fluxo de s pata t.
Tipos bsicos de algoritmo:
1.algoritmos de caminhos aumentantes que mantm o equilbrio de fluxo nos ns
com exceo de s para t.
2.Algoritmos Preflow-push inundam a rede onde os ns podem ter excesso de fluxo
pr fluxo. Os excessos so empurrados para t ou de volta para s.

16 Algoritmo genrico de caminhos aumentantes
Algoritmo caminho aumentante
Begin
X:=0;
While G(x) contm um caminho direcionado de s para t faa

APOSTILA DE FLUXO EM REDES 23

Begin
Identifique um caminho aumentante P de s pata t;
=min{rij:(i,j)P}
Aumente unidades de fluxo de s para t em P
Atualize G(x),
End;
End;

17 Aplicaes do problema de fluxo mximo

17.1 Problema dos representantes

Uma cidade tem r residentes R1, R2, ,Rr; q clubes C1, C2, ,Cq; e p partidos
polticos P1, P2,, Pp. Cada residente membro pelo menos de um clube e pode
pertencer a exatamente um partido poltico. Cada clube deve nomear um de seus
membros para represent-lo na comisso que ir governar a cidade de modo que o
nmero dos membros da comisso que pertencem ao partido poltico Pk seja de no
mximo uk. possvel encontrar uma comisso que satisfaa esta restrio de
equilbrio?
Ilustramos esta formulao com um exemplo.
Consideramos um problema com r=7, q=4, p=3, e formulamo-lo como um
problema de fluxo mximo. Figura 1. Os ns R1, R2...,R7 representam os residentes, os
ns C1, C2... C4 representam os clubes, e os ns P1, P2...,P3, representam os partidos
polticos.

s
C1
C2
C3
C4
R1
R2
R3
R4
R5
R6
R7
P1
P2
P3
t
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
u1
u2
u3

Figura 1


A rede contm tambm um n s de origem e o n t de destino. Existe um arco
(s,Ci) para cada n Ci que denota um clube, um arco (Ci, Pk) se o residente Rj pertencer
ao partido poltico Pk. Finalmente, adicionamos um arco (Pk, t) para cada k=1....3 com
a capacidade Uk; todos arcos restantes tm a capacidade igual a 1

APOSTILA DE FLUXO EM REDES 24

Encontramos em seguida um fluxo mximo nesta rede. Se o valor mximo do
fluxo igualar q, a cidade tem uma comisso equilibrada; caso contrrio, no. A prova
desta afirmao fcil de estabelecer mostrando que:
(1) o fluxo de valor q na rede corresponde a uma comisso equilibrada, e que
(2) a comisso equilibrada implica um fluxo de valor q na rede.
Este tipo de modelo tem aplicaes em diversos problemas de distribuio de
recurso. Para o exemplo, suponha que os residentes so pessoas especialistas, o clube
Ci o conjunto de pessoas com uma habilidade particular, e o partido poltico Pk
corresponde a uma experincia de cada pessoa.
Neste exemplo, um conselho equilibrado da cidade corresponde a uma
atribuio de pessoas comisso de diretores para governar a cidade, de modo que cada
classe de especialidade tenha representantes na comisso e que nenhum tipo de
experincia tenha um nmero dominante de representantes.

17.2 Programao de Maquinas Paralelas Uniformes

Nesta aplicao consideramos o problema de escalonar um conjunto de J jobs em M
mquinas uniformes paralelas. Cada job j J tem um processamento requerido pj
(significando a quantidade de maquina-dia requerido para completar o job), uma data de
liberao rj (representando a data em que o job j se tornou disponvel para
processamento) uma data de trmino do job dj = rj + pj (representando a data em que
o job deve ser finalizado). Assume-se que uma mquina pode trabalhar somente em um
job por vez e que cada job pode ser processado por mais de uma mquina por vez.
Todavia, permitida a preempo, ou seja, pode-se interromper um job e process-lo
em diferentes mquinas e em dias distintos. O objetivo do problema determinar um
escalonamento vivel que complete todos os jobs antes da data limite para o seus
respectivos trminos, ou mostrar que tal escalonamento no existe.
Este tipo de problema de programao aparece em sistemas produtivos em
massa, ou seja, em lotes com grandes nmeros de unidades. O problema de
escalonamento da produo, descrito no pargrafo acima, um problema fundamental
neste contexto e pode ser usado como uma sub-rotina para uns problemas de
programao mais gerais, tais como o problema do tempo de entrega mnimo, e o
problema da mxima da utilizao.
O problema de escalonamento foi formulado como um problema de fluxo
mximo, conforme ilustra a Tabela 1. No exemplo da Figura 2 tem-se que M = 3
mquinas. Em primeiro lugar, todas as datas de liberao rj e as datas finais dj so
ordenadas ascendentemente e determina-se P2|J|-1 intervalos mutuamente disjuntos
de datas entre instantes consecutivos. Seja Tk;l um intervalo que inicia na data k e
termina no incio do dia l + 1. No exemplo em questo, a ordem das datas de liberao e
finais a seguinte: 1; 3; 4; 5; 7; 9. Existem 5 intervalos representados por T
1,2
, T
3,3
, T
4,4
,
T
5,6
e T
7,8
. Note que dentro de cada intervalo Tk
,l
, o conjunto de jobs disponveis no se
altera. Podem-se processar todos os jobs j com rj k e dj l+1 no intervalo.
O problema de escalonamento foi formulado como um problema de fluxo mximo
em uma rede bipartida G. Foi introduzido um n origem s, um n destino t, um n
correspondente a cada job j e um n correspondente a cada intervalo Tk,1 conforme
pode ser visualizado na Figura 2. Conecta-se o n origem com todos os ns jobs j com
um arco de capacidade pj , indicando que so necessrios pj dias de tempo de mquina
para o job j. Conecta-se cada intervalo de n Tk,1 ao n destino t com um arco de
capacidade (l - k + 1)M, representando o nmero total de mquinas-dia disponveis no
intervalo de dias de k a l. Finalmente, conecta-se um n job j a todos intervalos de nos

APOSTILA DE FLUXO EM REDES 25

Tk,l se rj k e dj l+1 por um arco de capacidade (l-k+1) que representa o nmero
mximo de mquinas que podem ser destinadas ao job j no intervalo de dias de k a l. O
problema de fluxo mximo nesta rede foi resolvido. O problema possui um
escalonamento vivel se, somente se, o valor do fluxo mximo for igua

J j
i p .
9 7 4 5
5 3 1 3 ) (
6 , 3 1 , 2 25 , 1 5 , 1 ) ( Pr
4 3 2 1 ) (
Entrega
rj Liberao
pj o ocessament
j Job

Tabela 1
s
t
1
2
3
4
T1,2
T3,3
T4,4
T5,6
T7,8

Figura 2


17.3 Arredondamento de matriz
Dada uma matriz pxq de reais D={dij} cuja soma das linhas i e a soma das
colunas j.
Podemos arredondar qualquer nmero a para

ou

a
.
O problema de arredondamento requer que a soma dos arredondantes seja igual ao
arredondamento das somas.
Pode-se encontrar um arredondante consistente resolvendo o problema do fluxo
mximo para a rede correspondente.

(
(
(

5 , 6 2 , 1 6 , 3
7 , 0 4 , 2 6 , 9
3 , 7 8 , 6 1 , 3

3 , 11
7 , 12
2 , 17

5 , 14 4 , 10 3 , 16

APOSTILA DE FLUXO EM REDES 26

1
2
3
1'
2'
3'
s t
(17,18)
(12,13)
(11,12)
i j'
(lij,Uij)
(16,17)
(10,11)
(14,15)
(3,4)
(6,7)
(7,8)
(9,10)
(2,3)
(0,1)
(3,4)
(1,2)
(6,7)

18 Problema de Fluxo com Custo Mnimo

18.1 Algoritmos Bsicos

Algoritmo de cancelamento de fluxo negativo
Usa caminho mnimo para encontrar ciclos aumentantes com custo negativo
(ciclo negativo), ento aumenta o fluxo neste ciclo. Ele repete a operao at que
nenhum ciclo negativo exista na rede residual

Algoritmo de sucessivos caminhos mnimos
Introduz gradualmente fluxo na rede de algum n origem para algum n destino,
cada vez selecionando um caminho mnimo devidamente construdo.
Primal-dual e out-of-kilter
Usam estratgias similares: a cada iterao resolve um problema de caminho
mnimo e aumentam o fluxo em um ou mais caminhos mnimos.
18.1.1 Primal-Dual
Usam o algoritmo do fluxo mximo para aumentar o fluxo simultaneamente em
vrios caminhos mnimos.
18.1.2 Out-of-Kilter
Permite que o fluxo viole a capacidade nos arcos. Usa o caminho mnimo ou de
aumento de fluxo para encontrar fluxos que satisfazem a capacidade e as condies de
otimalidades.

18.1.3 Simplex para rede

Utiliza como idias central rvore geradora mnima que esta associada a uma base
do sistema linear. As arvores geradoras mnimas so solues obtidas atribuindo aos
arcos fora da rvore um fluxo igual a zero ou igual capacidade do arco.
O problema de fluxo com custo mnimo tem pelo menos uma soluo arvore
geradora mnima tima. A cada iterao um arco fora da rvore entra nela e um arco
fora dela retirado.

Hipteses
Todos os dados so inteiros
A rede direcionada

=
N i
i b 0
Todos os custos so no-negativos

APOSTILA DE FLUXO EM REDES 27

Rede residual segundo um fluxo X, G(X).

18.2 Condies de Otimalidade do PFCM
18.2.1 Ciclo Negativo
Teorema 1: Uma soluo factvel X
*
tima para o problema de fluxo com custo
mnimo se e somente se a rede residual G(X
*
) no contm ciclo (direcionado) negativo.
18.2.2 Custo reduzido
A j i d d C C j i
ij
d
ij
+ = ) , ( 0 ) ( ) (
Definies: N i R i ) ( dito potencial do n i.
) ( I a varivel dual correspondente restrio de equilbrio no n i
Seja
A j i C C j i
ij ij
+ = ) , ( ) ( ) (

o custo reduzido do arco (i,j). Observe que ) ( I = -


d(i).
Propriedades:
a) Para qualquer caminho direcionado P de k a l temos
) ( ) (
) , ( ) , (
l k C C
P j i
ij
P j i
ij

+ =



b) Para qualquer ciclo direcionado W


=
W j i
ij
W j i
ij
C C
) , ( ) , (


a) Potenciais no alteram o caminho mnimo entre k e l, pois aumentam em
) ( ) ( k l .
b) Ciclo negativo para C tambm o para

C .
Teorema 2:Uma soluo factvel X* tima para o problema de fluxo com
custo mnimo se e somente se algum conjunto de potenciais satisfaz:
*) ( ) , ( 0 x G j i C
ij


A j i C C j i
ij ij
+ = ) , ( 0 ) ( ) (


Podemos tambm definir potencial timo como o conjunto que satisfaz a
condio ) ( ) , ( 0 x G j i C
ij

para algum fluxo factvel X.



18.3 Interpretao Econmica
Cij= custo de transportar uma unidade do produto de i para j e
(i) = -(i) custo para produzir uma unidade do produto em i
Cij+ (i) o custo do produto obtido em i e transportado at j.
) ( ) ( ou ) ( ) ( 0 i
ij
j j i
ij
C C + +
Significa que no timo, o custo para obter uma unidade em j no pode ser maior que
obt-la em i e transporta-la at j pelo arco (i,j).

18.4 Folgas Complementares

Os dois teoremas anteriores impem condies sobre a rede residual. Estas
condies so agora colocadas em termos da rede residual.
Teorema 3 Uma soluo factvel X
*
tima para o problema de fluxo com
custo mnimo, se e somente se, para algum conjunto de potenciais . O fluxo e o
custo reduzido satisfazem as condies:
Para , ) , ( A j i
Se ij
*
ij ij
l X C = > ento 0,



APOSTILA DE FLUXO EM REDES 28

Se ij
*
ij
ij
ij
U X l C < < = ento 0,


Se . ento 0, ij
*
ij ij
U X C = <


18.5 Relacionando Fluxo timo com Potencial timo
18.5.1 Calculando o potencial timo conhecido o fluxo timo
(dado
*
obter
*
X )
Seja G(X
*
) a rede residual em relao ao fluxo timo X
*
. G(X
*
) no contm ciclos
negativos pois X
*
tima. Seja d(i) o vetor de distancias mnimas a partir do n 1 para
todos ns na rede residual, considerando Cij o tamanho do arco (i,j).
A condio de otimalidade para o caminho mnimo implica que:
) ( ) , ( ) (
*
) ( X G j i d C j d i
ij
+ fazendo = -d temos que:
). ( ) , ( 0
*
) ( ) ( X G j i C C j i
ij ij
+ =


18.5.2 Obtendo o fluxo timo, conhecido o potencial
timo(dado
*
X obter
*
)
Calcular o custo reduzido A j i ) , ( C
ij


Se A de j) (i, deletar e 0 : 0 = >
*
ij ij
X C


Se e A de j) (i, deletar , : 0 ij
*
ij ij
U X C = <

ij i i U b b = ) ( ) ( : e
ij j j U b b + = ) ( ) ( : .
Se 0 0 ij
*
ij ij
U X C < < =

(Que valor atribuir a X* neste caso?)


Seja G(N,A) e b o vetor oferta/demanda modificado. Agora o problema se
resume em encontrar um fluxo factvel e G que atende oferta/demanda modificada b
nos ns. Usar a aplicao do problema de fluxo mximo para encontrar um fluxo
factvel.

18.6 Soluo bsica factvel para o problema de fluxo com custo mnimo
Qualquer soluo bsica factvel contm trs tipos de variveis.
Variveis Bsicas sem degenerao, cada varivel bsica X
ij
satisfaz l
ij
< X
ij
<U
ij.
Com degenerao, possvel que uma varivel bsica assuma um valor dos
limitantes do arco.
Variveis no bsicas X
ij
: Assumem o valor do limite superior do arco U
ij.

Variveis no bsicas X
ij
: Assume o valor o limite inferior do arco l
ij
.

18.7 Resolvendo uma rede com n ns.
Vamos considerar as n restries de conservao de fluxo e ignorar as restries
de capacidade.
Qualquer soluo satisfazendo n-1 restries automaticamente satisfaz a ultima
restrio.
Uma soluo bsica factvel para uma rede com n ns ter n-1 variveis bsicas.
Como determinar uma soluo bsica factvel com n-1 variveis?
Um conjunto A de n-1 variveis ser uma soluo bsica factvel se e somente se
seus arcos formam uma rvore geradora para a rede.

18.8 Computando os coeficientes da F.O. para uma soluo bsica factvel.
Para uma dada soluo bsica factvel, seja ] ,..., [ .B 1
-1
n
ij
C = os
potenciais dos ns.

APOSTILA DE FLUXO EM REDES 29

Se definirmos 0 1 = , ento os coeficientes de X
ij
na linha da funo objetivo
podem ser escritos como ) ( ) ( j i
ij ij
C C

+ = .
Como cada varivel bsica deve ter 0 =

ij
C , podemos encontrar n ,..., 1
resolvendo o seguinte sistema linear:

+ =
=
=

) ( ) (
) ( ) (
) 1 ( 0
j ij i
j i ij
C
C



18.9 Determinando de uma soluo bsica factvel tima.
Basta que todas as variveis no bsicas satisfaam as condies de
otimalidade.
Uma soluo bsica factvel tima se e somente se as seguintes condies
so satisfeitas:
1. Se uma varivel no bsica X
ij
=l
ij
se e somente se 0

ij
C .
2. Se uma varivel no bsica X
ij=
U
ij
se e somente se 0

ij
C .
Se alguma das condies acima no for satisfeita, a funo objetivo pode ser
melhorada.

18.10 Pivoteamente no simplex para rede (melhoramento da F.O.)
Uma vez detectada uma varivel a entrar na base, o seu arco deve fazer parte da
nova arvore geradora, algum arco da arvore deve sair. Para tanto basta aplicar a lei de
conservao de fluxo aos ns que esto no ciclo formado com a incluso deste novo
arco.
Aumentando o fluxo do arco que entra na base aquele arco do ciclo que chegar
primeiro em um dos seus limites ser o arco a sair da arvore.
Com a nova base, voltar para o calculo dos coeficientes da F.O.
Exemplo:
Calculando Os coeficientes da F.O.
0 ) 1 ( =
) 3 ( ) 1 (
13
= C ,
) 5 ( ) 3 (
35
= C ,
) 5 ( ) 2 (
25
= C ,
) 5 ( ) 4 (
45
= C

0 ) 1 ( =
12 ) 3 ( =
19 7 ) 5 ( ) 5 ( ) 3 ( = =
13 19 6 ) 2 ( ) 2 ( = + =
16 19 3 ) 4 ( ) 4 ( = + =

3 ) 13 ( 10 0 ) 2 ( ) 1 (
12 12
= + + =

C C in-kilter
10 ) 16 ( 0 6 ) 4 ( ) 1 (
14 14
= + + =

C C in-kilter
1 ) 13 ( ) 12 ( 2 ) 2 ( ) 3 (
32 32
= + + =

C C in-kilter
1 ) 16 ( ) 12 ( 3 ) 4 ( ) 3 (
34 34
= + + =

C C out-of-kilter

APOSTILA DE FLUXO EM REDES 30



Portanto como X
34
=0 e 0
34
<

C ento X
34
deve crescer tanto quanto possvel. Para
cada unidade de fluxo no arco (3,4) causar o decrscimo de 1 unidade na funo
objetivo.
= 34 X
+ = 4 45 X
=1 35 X
} 1 , 2 , 5 { 35 45 34 max = = = =
5 max =


BIBLIOGRAFIA

Ahuja, R.K., Magnanti, T.L. & Orlin, J.B. (1993) Network Flows: Theory, Algorithms
and Applications. Ed. Prentice-Hall, New Jersey.

Goldbarg, M. C. e Luna, H. P. L. (2000) Otimizao Combinatria e Programao
Linear: Modelos e Algoritmos. Editora Campus, Rio de Janeiro.

Lachtermacher, G (2002) Pesquisa Operacional na Tomada de Decises. Editora
Campus, Rio de Janeiro.

Lindo Systems Inc. (2001) LINGO: the modeling language and optmizer, Chicago.

Winston, W. L. (1993) Operations Research: Applications and algorithms, Duxbury
Press, Belmont.

Вам также может понравиться