MASSIMO FLUSSO -...

30
MASSIMO FLUSSO Marco Sciandrone Dicembre 2016

Transcript of MASSIMO FLUSSO -...

Page 1: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

MASSIMO FLUSSO

Marco Sciandrone

Dicembre 2016

Page 2: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 3: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 4: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 5: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 6: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

Problema di PL

Ejicf

Ejif

tsViff

vf

vfv

ijij

ij

Eihhhi

Ejijij

Ethhht

Ejsjsj

),(

),( 0

, 0

0

0 max

),(:),(:

),(:

),(:

Page 7: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

Problema di PL in forma matriciale

cf

veeAf

v

ts

0

0)(

max

A matrice di incidenza del grafo

Page 8: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

È 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é:

Page 9: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 10: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 11: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 12: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

Teorema 3.Il flusso massimo è minore o uguale della capacità diun qualsiasi taglio, ossia

),(* WWCv

*v

Dim. Segue dai teoremi 2 e 3.

Page 13: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 14: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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)

Page 15: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 16: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo 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

Page 17: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 18: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 19: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 20: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 21: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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 ,:),(

Page 22: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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)

Page 23: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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.

Page 24: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 25: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 26: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 27: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 28: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 29: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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

Page 30: MASSIMO FLUSSO - webgol.dinfo.unifi.itwebgol.dinfo.unifi.it/.../uploads/2016/10/massimo-flusso16.pdf · (massimo flusso-minimo taglio) Un flusso ammissibile di valore è massimo se

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