Il problema del flusso nelle reti

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Algoritmi e Strutture Dati
Algoritmo di Ford-Fulkerson
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi e Strutture Dati
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 13 Cammini minimi: Algoritmo di ordinamento topologico, di Dijkstra, e di Floyd e Warshall Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof.ssa Rossella Petreschi Lezione del 29/10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 19 del testo Cormen, Leiserson, Rivest,
Prof.ssa Rossella Petreschi Lezione del 1 /12/ 2011 del Corso di Algoritmi e Strutture Dati Riferimenti: capitolo 17 del testo M.H.Alsuwaiyel “Algorithms:
Prof.ssa Rossella Petreschi Lezione del 3/12/2013 del Corso di Algoritmica GRAFI e PLANARITA’ Lezione n°15.
Alberi autoaggiustanti
Lezione n°10 Prof.ssa Rossella Petreschi
Cammini minimi in grafi:
Branch and Bound Lezione n°19 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
Reti, flussi e tagli Lezione n°11
Alberi di ricerca di altezza logaritmica
Approssimazione Lezione n°20 Prof.ssa Rossella Petreschi
Analisi di sequenze di operazioni Union-Find
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°17 Prof.ssa Rossella Petreschi
Lezione n°15 Prof.ssa Rossella Petreschi
B-alberi e alberi autoaggiustanti
Algoritmi e Strutture Dati
Il problema del cammino minimo
Lezione n°14 Reti di flusso Prof.ssa Rossella Petreschi
La gestione degli insiemi disgiunti
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Lezione n°16 Abbinamento Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Paths, tree and flowers Lezione n°14
K4 è planare? E K3,3 e K5 sono planari? Sì!
Approssimazione Lezione n°15 Prof.ssa Rossella Petreschi
per rappresentare grafi
Lezione n°11 Prof.ssa Rossella Petreschi
Lezione n°12 Prof.ssa Rossella Petreschi
ABBINAMENTO Lezione n°13
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Algoritmi per il flusso nelle reti
Algoritmi per il flusso nelle reti
Lezione n°6 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Cammini di costo minimo su un grafo pesato
Gestione dinamica di tabelle
Schema generale, visita in ampiezza e profondità.
Algoritmi e Strutture Dati
Usi (meno scontati) della visita DFS
Lezione n°14 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Automi e stringhe Lezione n°24 Prof.ssa Rossella Petreschi
Estensione di strutture dati e
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Cammini minimi in grafi:
Grafi e problem solving
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Unione per ranghi compressi
Tabelle dinamiche Lezione n°3
Analisi ammortizzata Lezione n°2
Algoritmo di Ford-Fulkerson
Transcript della presentazione:

Il problema del flusso nelle reti Lezione n°10 Prof.ssa Rossella Petreschi Lezione del 21 /11/ 2011 del Corso di Algoritmi e Strutture Dati Riferimenti: capitolo 16 del testo M.H.Alsuwaiyel “Algorithms: design tecniques and analysis” Edizioni: World Scientific capitolo 27 del testo Cormen,Leiserson, Rivest “Introduzione agli algoritmi” Edizioni: Jackson libri capitolo 14 del testo Demetrescu,Finocchi, Italiano “Algoritmi e strutture dati” Edizioni: McGraw Hill ASD 2011/2012

Rete di flusso Una rete di flusso è un grafo orientato e pesato G (V, E, s, p, C), tale che:  s vertice sorgente (da s escono solo archi e non ne entra alcuno);  p vertice pozzo (in p entrano solo archi e non ne esce alcuno);  C (C funzione da V2 a R+) che associa ad ogni arco (u,v) una capacità c(u,v) ≥ 0, ovvero c(u,v) > 0 se (u,v)  E, c(u,v) = 0 se (u,v)  E;  v  V,  un cammino da s a p passante per v Notare che G è connesso e che |E| ≥ |V| -1 ASD 2011/2012 2

Flusso nella rete Un (assegnamento) di flusso in una rete G(V, E, s, p, C), è una funzione f tale che: f: V xV R+ 0 vale il vincolo di capacità : f (u,v) ≤ c(u,v),  u,v  V xV; vale il vincolo di conservazione del flusso : ∑f (u,v) = 0,  u  V -s,p e v  V ; vale il vincolo di antisimmetria : f (u,v) = - f (v,u),  u,v  V xV; Notare che f (u,u) = 0  u  V ASD 2011/2012 3

Quantità di flusso nella rete Dato un flusso f in una rete G, 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) . ASD 2011/2012 4

Tagli in reti di flusso Un taglio (S,P) di una rete di flusso G è una partizione dei vertici di G tale che S contenga la sorgente s e P = V-S contenga il pozzo p. Capacità del taglio: c(S,P)= ∑c(x,y), x in S e y in P. Flusso attraverso il taglio: f(S,P)= ∑f(x,y), x in S e y in P. Lemma: Data una rete di flusso, un flusso f e un taglio (S,P), la quantità di flusso f(S,P) che attraversa il taglio è uguale al valore del flusso nella rete f = ∑f (s,v), (s,v) in E. Prova f (S,P) = ∑f (x,y), x in S e y in P = (∑f (x,y), x in S e y in V) - (∑f (x,y),x in S e y in S) = = (∑f (s,y), y in V+ ∑f (x,y), x in (S-s) e y in V ) - (∑f (x,y), x in S e y in S) = = ∑f (s,y), y in V= f  dato che ∑f (x,y), x in (S-s) e y in V = 0 per la conservazione del flusso ∑f (x,y), x in S e y in S = 0 per l’antisimmetria ASD 2011/2012 5

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(u,v)= c(u,v) + f(v,u)) *rispetto ad una data assegnazione di flusso Rete residua: data una rete di flusso G (V, E, s, p, C) e un flusso f su G, si definisce rete residua la rete di flusso Gf (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 Gf se f(u,v) < c(u,v) Gf = G, se f è un flusso nullo. ASD 2011/2012 6

Metodo delle reti residue Inizialmente si considera associato alla rete G un flusso nullo, f = f0 Idea: data una rete G con assegnato un flusso f (non massimo), si costruisca una rete residua Gf. Trovato un flusso f’ su Gf , si assegni a G il flusso f+f’. Si procede per iterazione finchè a G 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. ASD 2011/2012 7

Correttezza del metodo delle reti residue Lemma: se f è un flusso su G e f’un flusso su Gf, allora (f+f’) è un flusso su G con valore f + f’ = f  +  f’ . Prova: si deve dimostrare che su G 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 ASD 2011/2012 8

Cammini aumentanti Data una rete G e un flusso f, definiamo capacità di un cammino cc (c cammino semplice in G dalla sorgente s al pozzo p) la minima fra tutte le capacità degli archi su c. flusso su 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 Gf sul quale esista un flusso fp > 0 Fatto: Se esiste un cammino aumentante psulla rete Gf , segue cheil valore del flusso su Gpuò essere incrementato da f a f  fp. ASD 2011/2012 9

Massimo flusso-minimo taglio Teorema: Data una rete G e un flusso f in G, i seguenti tre asserti sono equivalenti: esiste un taglio (S,P) con C(S,P) = f; f è un massimo flusso in G; non vi sono cammini aumentanti in G 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 G per f, allora f non sarebbe massimo; da c. a a. sia S l’insieme dei vertici raggiungibili da s nella rete residua Gf e P = V-S. Poiché non vi sono cammini aumentanti in G per f, in Gf non vi sono spigoli da S a P, ovvero in G tutti gli spigoli da S a P sono saturati, ovvero C(S,P) = f. ASD 2011/2012 10