MASSIMO FLUSSO -...

Post on 21-Feb-2019

238 views 0 download

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