La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi

Presentazioni simili


Presentazione sul tema: "Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi"— Transcript della presentazione:

1 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Il problema del flusso nelle reti Lezione n°16 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi ASD a.a.2010/2011- Lezione 16

2 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 funzione che associa ad ogni arco (u,v) una capacità c(u,v) ≥ 0, ovvero c(u,v) > 0 se c(u,v)  E, c(u,v) = 0 se c(u,v)  E;  v  V,  un cammino da s a p passante per v Notare che G è connesso e che |E| ≥ |V| -1 ASD a.a.2010/2011- Lezione 16

3 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,t 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 a.a.2010/2011- Lezione 16 3

4 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)); 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) . ASD a.a.2010/2011- Lezione 16 4

5 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 t. 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. ASD a.a.2010/2011- Lezione 16 5

6 Reti residue 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)) *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 Gf = G, se f è un flusso nullo. ASD a.a.2010/2011- Lezione 16 6

7 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 a.a.2010/2011- Lezione 16 7

8 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(x,y) - f’(x,y) = - (f(x,y) + f’(x,y))== -= - (f+ f’)(x,y) e, per il valore: f + f’= ∑(f+f’)(s,y) = ∑(f(x,y) +f’(x,y)) = ∑f(x,y) + ∑f’(x,y)= f  + f’ ASD a.a.2010/2011- Lezione 16 8

9 Metodo dei cammini aumentanti
Data una rete G e un flusso f, definiamo cammino aumentante p un cammino semplice dalla sorgente s al pozzo p nella rete residua Gf . capacità (residua) di un cammino: cf () = min cf(u,v), con (u,v) arco di sulla rete Gf Metodo:Inizialmente si considera associato alla rete G un flusso nullo, f = f0 Idea: si trovi, se esiste, un cammino aumentante sulla rete Gf . Si scelga f’ su Gf 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 Gè pari a f  cf () . Si procede per iterazione finchè a G non è assegnato un flusso massimo. ASD a.a.2010/2011- Lezione 16 9


Scaricare ppt "Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi"

Presentazioni simili


Annunci Google