La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Lezione n°12 Prof.ssa Rossella Petreschi

Presentazioni simili


Presentazione sul tema: "Lezione n°12 Prof.ssa Rossella Petreschi"— Transcript della presentazione:

1 Lezione n°12 Prof.ssa Rossella Petreschi
Lezione del 14/11/2014 del Corso di Algoritmica

2 Reti con sorgenti e pozzi multipli
Un problema di flusso massimo a più sorgenti e più pozzi è riconducibile ad un problema di flusso massimo con una sola sorgente e un solo pozzo. Si aggiunge una supersorgente s e un superpozzo p. Si aggiungono poi gli archi orientati (s,si) per ognuna delle molteplici sorgenti della rete e (pi,p) per ognuno dei molteplici pozzi. Si impone c(s,si) = c (pi,p)=∞. Ogni flusso nella rete con m sorgenti si e t pozzi pi corrisponde ad un flusso nella nuova rete con una sola sorgente s e un solo pozzo p. 2

3 Quantità di flusso nella rete
Dato un flusso f in una rete R, si definisce: valore di un flusso: la quantità di flusso che esce dalla sorgente (f = f(s, V) = ∑f (s,v)); flusso nullo: la funzione f0 tale che f0(x,y) = 0,  (x,y)  E; flusso massimo: un flusso f* tale che f*= maxf f ; somme di flussi: (f1+ f2)(x,y) = f1(x,y) + f2(x,y) ; differenze di flussi: (f1- f2)(x,y) = f1(x,y) - f2(x,y) . 3

4 Cammini aumentanti Data una rete R e un flusso f, definiamo
capacità di un cammino cc (c cammino semplice in R dalla sorgente s al pozzo p) la minima fra tutte le capacità degli archi su c. flusso massimo rispetto ad un cammino fc è così definito: fc(u,v) = cc, se (u,v) è un arco di c  fc(u,v) = - cc, se (v,u) è un arco di c  fc(u,v) = 0, altrimenti. cammino aumentante p un cammino semplice dalla sorgente s al pozzo p nella rete residua Rf sul quale esista un flusso fp > 0 Fatto: Se esiste un cammino aumentante psulla rete Rf , segue cheil valore del flusso su Rpuò essere incrementato da f a (f  fp). 4

5 Metodo dei cammini aumentanti
Collo di bottiglia di un cammino: cf() = min cf(u,v), con (u,v) arco di  sulla rete Rf Metodo:Inizialmente si considera associato alla rete R un flusso nullo, f = f0 Idea: si trovi, se esiste, un cammino aumentante  sulla rete Rf . Si scelga f’ su Rf così definito: f’(u,v) = cf() , se (u,v) è un arco di ; f’(u,v) = - cf(), se (v,u) è un arco di ; f’(u,v) = 0, altrimenti. Segue che f’= cf() e il valore del flusso f+f’ su R è pari a f’ + cf() . Si procede per iterazione finchè a R non è assegnato un flusso massimo f*. 5

6 Algoritmo di Ford e Fulkerson (1956)
Algoritmo FF (R(V,E,s,p)) for ogni arco (u,v)  E do f(u,v)=0, f(v,u)=0; While  un cammino  da s a p in Rf do cf () = min cf(u,v), (u,v)  in Rf; for ogni arco (u,v)  do f(u,v) = f(u,v) + cf () , f(v,u)=- f(u,v) Se le capacità della rete sono intere, l’algoritmo FF richiede tempo O(m f*) nel caso peggiore f* numero di iterazioni dell’algoritmo che incrementa il flusso di almeno una unità ad ogni passo edm tempo richiesto dalla visita ad ogni passo. Esistono: casi di capacità intera che raggiungono il limite temporale superiore: casi di capacità reale non convergenti in tempo finito. 6

7 Reti residue *rispetto ad una data assegnazione di flusso
Capacità residua di un arco* : quantità di flusso che si può mandare sull’arco senza eccederne la capacità (r(u,v)= c(u,v) - f(u,v), r(v,u) = c(v,u) - f(v,u) = c(v,u) + f(u,v)) *rispetto ad una data assegnazione di flusso Rete residua: data una rete di flusso R (V, E, s, p, C) e un flusso f su R, si definisce rete residua la rete di flusso Rf (V, Ef, s, p, R) in cui (u,v)  Ef se e solo se r(u,v) > 0. Notare che  Ef  ≤ 2Eperché (u,v) e (v,u) sono entrambi presenti in Rf se f(u,v) < c(u,v) Rf = R, se f è un flusso nullo. 7

8 Metodo delle reti residue
Inizialmente si considera associato alla rete R un flusso nullo, f = f0 Idea: data una rete R con assegnato un flusso f (non massimo), si costruisca una rete residua Rf. Trovato un flusso f’ su Rf , si assegni a R il flusso f+f’. Si procede per iterazione finchè a R non è assegnato un flusso massimo. Se le capacità degli archi sono intere, l’algoritmo trova sempre un flusso massimo in tempo finito e la velocità di convergenza del metodo dipende da come viene calcolato f’. Se le capacità degli archi sono reali, l’algoritmo potrebbe avvicinarsi asintoticamente all’ottimo senza raggiungerlo mai. 8

9 Correttezza del metodo delle reti residue
Lemma: se f è un flusso su R e f’un flusso su Rf, allora (f+f’) è un flusso su R con valore f + f’ = f  +  f’ . Prova: si deve dimostrare che su R per f+f’ valgono le 3 proprietà del flusso capacità: (f+ f’)(x,y) = f(x,y) + f’(x,y) ≤ f(x,y) +c(x,y)- f(x,y)= c(x,y) conservazione del flusso:∑(f+f’)(x,y) = ∑(f(x,y) + f’(x,y)) = ∑f(x,y) +∑ f’(x,y) = 0 antisimmetria: (f+ f’)(x,y) = f(x,y) + f’(x,y) = -f(y,x) - f’(y,x) = - (f(y,x) + f’(y,x)) = - (f+ f’)(y,x) e, per il valore: f + f’= ∑(f+f’)(s,y) = ∑(f(s,y) +f’(s,y)) = ∑f(s,y) + ∑f’(s,y)= f  + f’ y in E y in E y in Ef y in E y in Ef 9

10 Taglio nella Rete Un Taglio (S,P) è una partizione dei vertici V di R (V, E, s, p, C) in due sottoinsiemi tali che ssia in S e p in P. La capacità del taglio, chiamata C(S,P), è pari alla somma di tutte le capacità c(u,v), con u in S e v in P Il flusso che attraversa un taglio (S,P), denotato con f(S,P), è pari alla somma di tutti i flussi f(u,v), con u in S e v in P Vale : sia R(V, E, s, p, C) una rete sulla quale è assegnato un flusso f , allora la cardinalità del flusso di ogni taglio in R è pari alla cardinalità di f . 10

11 Massimo flusso-minimo taglio
Teorema: Data una rete R e un flusso f in R, i seguenti tre asserti sono equivalenti: esiste un taglio (S,P) con C(S,P) = f; f è un massimo flusso in R; non vi sono cammini aumentanti in R per f. Prova: da a. a b f ≤ C(A,B) per ogni taglio, quindi f = C(S,P) implica f massimo; da b. a c se ci fosse un cammino aumentante in R per f, allora f non sarebbe massimo; da c. a a sia S l’insieme dei vertici raggiungibili da s nella rete residua Rf e P = V-S. Poiché non vi sono cammini aumentanti in R per f, in Rf non vi sono spigoli da S a P, ovvero in R tutti gli spigoli da S a P sono saturati, ovvero C(S,P) = f. 11


Scaricare ppt "Lezione n°12 Prof.ssa Rossella Petreschi"

Presentazioni simili


Annunci Google