Reti, flussi e tagli Lezione n°11 Prof.ssa Rossella Petreschi Lezione del 19/11/2013 del Corso di Algoritmica
Rete di flusso Una rete di flusso è un grafo orientato e pesato R (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 R è connesso e che |E| ≥ |V| -1 2
Flusso nella rete Un (assegnamento) di flusso in una rete R(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 antisimmetria : f (u,v) = - f (v,u), u,v V xV; vale il vincolo di conservazione del flusso : ∑f (u,v) = 0, u V -s,p e v V ; Notare che f (u,u) = 0 u V 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) . 4
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 ≤ 2Eperché (u,v) e (v,u) sono entrambi presenti in Rf se f(u,v) < c(u,v) Rf = R, se f è un flusso nullo. 5
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 . 6
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 psulla rete Rf , segue cheil valore del flusso su Rpuò essere incrementato da f a (f fp). 7
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. 8