MASSIMO FLUSSO -...
Transcript of MASSIMO FLUSSO -...
MASSIMO FLUSSO
Marco Sciandrone
Dicembre 2016
Definizioni fondamentali
Grafo orientato ),( EVG
nvvV ,,1
VVeeE m ,,1
insieme finito di elementi detti nodi
insieme di coppie ordinate detti archi
cammino orientato: insieme ordinato pjhjhj vevevP ,,,,,
2110
iii jjh vve ,
1
1e 2e
3e
2v
1v
3v
4v
Sia dato un grafo orientato e assumiamo chead ogni arco sia assegnata una capacità
),( EVG ),( ji 0ijc
Supponiamo che esistano in V due nodi s e t tali che
-s detto sorgente ha solo archi uscenti-t detto pozzo ha solo archi entranti
Un vettore è un flusso s-t ammissibile se mf
tsViff
Ejicf
Eihhhi
Ejijij
ijij
, 0
),( 0
),(:),(:
vincoli di capacità
vincoli di conservazione
Dato un flusso , definiamo valore del flusso mf
Ejsj
sjfv),(:
Problema del massimo flusso
Trovare un flusso ammissibile tale che il valoredel flusso sia massimo
*f*v
Esempio
Per ogni arco: il primo numero rappresenta il flusso lungol’arco, il secondo rappresenta la capacità dell’arco
s1
2 3
4
t2,4
1,2
1
2,3
2
1,4
3
2,5
1,1
Il valore del flusso è pari a 3 v
Problema di PL
Ejicf
Ejif
tsViff
vf
vfv
ijij
ij
Eihhhi
Ejijij
Ethhht
Ejsjsj
),(
),( 0
, 0
0
0 max
),(:),(:
),(:
),(:
Problema di PL in forma matriciale
cf
veeAf
v
ts
0
0)(
max
A matrice di incidenza del grafo
È un problema di PL
Ha insieme ammissibile non vuoto ( ammissibile)
Ha funzione obiettivo limitata superiormente(grazie ai vincoli di capacità)
0,0 vf
Il problema del massimo flusso ammette soluzione ottima perché:
Definiamo taglio (o sezione) una partizione dell’insieme dei nodi V tale che
),( WWWWs t
Definiamo capacità di un taglio la quantità),( WW
WjWi
ijcWWC,
),(
Dato un flusso ammissibiledefiniamo flusso netto di un taglio la quantità),( WW
WjWi
jiWjWi
ij ffWWF,,
),(
mf
EsempioPer ogni arco: il primo numero rappresenta il flusso lungol’arco, il secondo rappresenta la capacità dell’arco; se compareun solo numero si intende che rappresenti la capacità e si sottointendeflusso nullo
s1
2 3
4
t2,4
1,2
1
2,3
2
1,4
3
2,5
1,1
2,1,sW tW ,4,3
9423),( WWC 312),( WWF
Teorema 1.Dato un flusso ammissibile , il flusso netto diun qualsiasi taglio è uguale al valore del flusso, ossia
f ),( WWF),( WW
),( WWFv
Dim. Vedi dimostrazione Teorema 52, pp. 362-363 libro F. Schoen
Teorema 2.Dato un flusso ammissibile , il flusso netto diun qualsiasi taglio è tale che
f ),( WWF),( WW
),(),( WWCWWF
Dim. Dalle definizioni di flusso e di capacità di un taglio segue
),(),(,,,
WWCcffWWFWjWi
ijWjWi
jiWjWi
ij
Teorema 3.Il flusso massimo è minore o uguale della capacità diun qualsiasi taglio, ossia
),(* WWCv
*v
Dim. Segue dai teoremi 2 e 3.
Dato un cammino semplicechiamiamo arco diretto un arco del tipoe arco inverso un arco del tipo
puuuuuP ,,),,(, 1100 ),( 1 iii uue
),( 1 iii uue
Dato un flusso ammissibile , definiamo cammino aumentanteda un cammino semplicetale che
per ogni arco diretto
per ogni arco inverso
xpuu a 0 puuuusuP ,,),,(, 1100
),( 1 iii uue iuiuii
cf uu ,11 ,
),( 1 iii uue 01, ii uuf
un arco diretto tale che è detto saturoiuiuii
cf uu ,11 ,
un arco inverso tale che è detto vuoto01, ii uuf
Esempio
s1
2 3
4
t2,4
1,3
1,3
3,3
2
4
3
3,5
2
Il cammino non è un cammino aumentante ),4(),4,1(),1,( tsP
Il cammino è un cammino aumentante:
gli archi (s,1),(2,3),(3,t) sono archi direttil’arco (1,2) è un arco inverso
),3(),3,2)(2,1(),1,( tsP
(l’arco (1,4) è saturo)
Supponiamo di avere un flusso ammissibile e uncammino aumentante P da s a t
f
inverso arco con :
diretto arco con :
iii
iii
ePeePePeeP
PPP
,min min min),(),( ijPjiijijPji
ffc
Si ponga
Definiamo un flusso modificato nel seguente modo
PjifPjifPjif
fij
ij
ij
ij
),( se ),( se ),( se
Definiamo un flusso modificato nel seguente modo
Possiamo dimostrare che il flusso modificato è ammissibile
Inoltre, poiché il primo arco di P è sempre diretto e uscenteda s il flusso totale viene aumentato di e risulta quindi
vvmod
PjifPjifPjif
fij
ij
ij
ij
),( se ),( se ),( se
L’esistenza di un cammino aumentante (s,t) permette quindidi aumentare il valore del flusso
Esempio
s1
2 3
4
t2,4
1,3
1,3
3,3
2
4
3
3,5
2
Il cammino è un cammino aumentante: ),3(),3,2)(2,1(),1,( tsP
11,2min
11min
2)02(),04(),24(min
,min min min),(),(
ijPjiijijPjiffc
)2,1( ),3(),3,2(),1,( PtsP
valore del flusso originario =3
s1
2 3
4
t2,4
1,3
1,3
3,3
2
4
3
3,5
2
1
s1
2 3
t3,4
1,3
3
3,3
2
1,4
3
3,5
1,2
flusso modificato
valore del flusso modificato= 3+ =4
Definiamo un flusso modificato nel seguente modo
Possiamo dimostrare che il flusso modificato è ammissibile
PjifPjifPjif
fij
ij
ij
ij
),( se ),( se ),( se
è scelto in modo che i vincoli di capacità sono soddisfatti
per quanto riguarda i vincoli di conservazione, per ogni nodoappartenente al cammino aumentante abbiamo 4 possibili casi;vedremo che in ognuno dei 4 casi i vincoli di conservazione del flusso sono soddisfatti
h i j
0 hp
pijl
ilhiij ffff
h i j
h i j
h i j
0,
p
pihjl
ilihij ffff
0 jp
pihl
iljiih ffff
0,
jhp
pil
iljihi ffff
non esistono cammini aumentanti (s,t) massimo.
Teorema 4.Un flusso ammissibile di valore è massimo se e solo senon esistono cammini aumentanti
f v
Dim.
f massimo non esistono cammini aumentanti (s,t) C.N.Se esistesse un cammino aumentante, per definizione di camminoaumentante, il flusso non sarebbe massimo
fC.S.
Sia W l’insieme dei nodi raggiungibili con un cammino aumentante.
Poiché non esistono cammini aumentanti (s,t) risulta
Gli archi diretti che attraversano il taglio sono saturi,ossia
WtWs ,
),( ts
),( WWWjWijicf ijij ,:),(
Gli archi inversi che attraversano il taglio sono vuoti,ossia
Di conseguenza abbiamo
),( WW
(continua dim. c.s.)
WiWjijf ji ,:),( 0
),(),(,,,
WWCcffWWFvWjWi
ijWjWi
jiWjWi
ij
massimo v (per il Teorema 3)
Sia W l’insieme dei nodi raggiungibili con un cammino aumentante.Risulta (altrimenti non sarebbe il flusso massimo) Gli archi diretti che attraversano il taglio sono saturiGli archi inversi che attraversano il taglio sono vuoti
Teorema 5. (massimo flusso-minimo taglio)Un flusso ammissibile di valore è massimo se e solo serisulta
dove è la capacità minima del taglio
f v),(min WWCv
),(min WWC
Dim.C.N.
WtWs ,),( WW),( WW
),(),( min WWCWWFv
f
C.S. segue dal Teorema 3.
Algoritmo di Ford e Fulkerson
Dati. Flusso ammissibile (esempio )
Inizializzazione. Poni
Passo k-esimo. Cerca un cammino aumentante da s a t rispetto a
Se non esiste Stop, è la soluzione ottima.
Altrimenti poni
k=k+1 e vai al passo k
f
0,0 kff
kf
kf
PjifPjif
Pjiff
kij
kij
kij
kij
),( se ),( se
),( se 1
0f
Esempio
s
1
4
3
2
t3
4
2
6
3
4
1
2
1
I cammino aumentante (s,2,4,1) 1
s
1
4
3
2
t3
1,4
2
6
3
1,4
1
2
1,1
II cammino aumentante (s,3,t) 2
s
1
4
3
2
t3
1,4
2,2
6
3
1,4
1
2,2
1,1
III cammino aumentante (s,2,t) 1
s
1
4
3
2
t3
2,4
2,2 3
1,4
1,1
2,2
1,1
6
(s,1,2,3,4) è l’insieme dei nodi raggiungibili da un cammino aumentante
t non è raggiungibile conun cammino aumentante
s
1
4
3
2
t3
2,4
2,2 3
1,4
1,1
2,2
1,1
6
W
W
Taglio di capacità minima pari a 4
Rete residua
G=(V,E) grafo orientato con flusso ammissibile f
Rete residua stessi nodi del grafo),( '' EVG
,),( ,),( 'ijijijijij -fcrEjicfEji
,),( 0 ,),( 'ijjiij frEijfEji
Un cammino aumentante (s,t) può essere determinato individuando un qualsiasi cammino orientato (s,t) nella rete residua
Archi e etichette degli archi della rete residua
Esempio
s
1
4
3
2
t1,3
1,4
6
1,3
1,4
1
2
2,4
Rete residua
s
1
4
3
2
t2
3
6
2
3
1
2
11
2
21
Il cammino (s,2,4,1,3,t) è un cammino aumentante con 12,6,1,3,3min
Teorema 6. (Finitezza dell’algoritmo di Ford-Fulkerson)
Dim. Vedi dimostrazione Teorema 51, pp. 351-352 libro F. Schoen.
Se le capacità superiori degli archi sono espresse da numerirazionali, l’algoritmo termina in un numero finito di iterazioni