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
Algoritmi per il flusso nelle reti Lezione n°17 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi ASD a.a.2010/2011- Lezione 17

2 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 Lemma: Data una rete di flusso, un taglio (S,P) e un flusso f, la quantità di flusso f(S,P) che attraversa il taglio è uguale al valore del flusso nella rete f = ∑f (s,v). Prova f (S,P) = ∑f (x,y), x in S e y in P = (∑f (x,y), y in V) - (∑f (x,y), 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 a.a.2010/2011- Lezione 17 2

3 Algoritmo di Ford e Fulkerson
Algoritmo FF (G(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 Gf do cf () = min cf(u,v), (u,v)  in Gf; 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 ASD a.a.2010/2011- Lezione 17 3

4 Algoritmo di Edmonds e Karp
Algoritmo EK (G(V,E,s,p)) for ogni arco (u,v)  E do f(u,v)=0, f(v,u)=0; While  un cammino minimo  da s a p in Gf do cf () = min cf(u,v), (u,v)  in Gf; for ogni arco (u,v)  do f(u,v) = f(u,v) + cf () , f(v,u)=- f(u,v) Se si considera la rete residua con archi a peso unitario e si calcola il cammino minimo con una visita in ampiezza, l’algoritmo EK richiede tempo O (VE2) ASD a.a.2010/2011- Lezione 17 4

5 Complessità dell’algoritmo di EK
O(VE2) deriva dalle seguenti due affermazioni: ogni iterazione dell’algoritmo EK può essere realizzata in tempo O(E) se effettuata con visita in ampiezza; l’algoritmo esegue al più O(VE) iterazioni. L’affermazione b) deriva dal fatto che su ogni cammino aumentante c’è un arco critico che sparisce dalla rete residua dopo che è stato aumentato il flusso nella rete. Un arco (u,v) può ritornare critico solo quando l’arco (v,u) appare su un cammino aumentante e quindi quando il flusso su (u,v) decresce. Ora df(s,v) = df(s,u) +1 e df’(s,u) = df’(s,v) +1 e df(s,v) ≤ df’(s,v), da cui df’(s,u) = df’(s,v) +1 ≥ df(s,v) + 1 = df(s,u) + 2 La distanza di u dalla sorgente è ≥ 0 e al più può diventare pari a V- 2. L’affermazione b) segue quindi dal fatto che (u,v) può diventare critico al piùVvolte e che ci sono al più E archi. ASD a.a.2010/2011- Lezione 17 5

6 Abbinamento massimo in un grafo bipartito
A partire dal grafo bipartito B(LR,E), si costruisca la rete di flusso G (V, E’, s, p, C) così definita: V = LRs p, con s e p due vertici da aggiungere a quelli di B e che costituiscono la sorgente e il pozzo della costruenda rete; E’ = E  (s,u), u  L  (v,p), v  R; C funzione che associa ad ogni arco (u,v)  E’ una capacità c(u,v) = 1. Lemma: Siano dati B e G come sopra definiti. Per ogni M, abbinamento in B, esiste un flusso f a valori interi in G con valore f = M . In modo analogo vale che per ogni flusso a valori interi in G esiste un abbinamento M in B con cardinalità M = f  ASD a.a.2010/2011- Lezione 17 6

7 Prova del Lemma Un abbinamento M in B corrisponde ad un flusso a valori interi in G
Dato M abbinamento in B, se (u,v)  M, si ponga f(u,v)=0 se (u,v)  M, allora f(s,u)=f(u,v)=f(v,p) =1 e f(u,s)=f(v,u)=f(p,v)= -1, ovvero ogni arco (u,v) in M corrisponde ad una unità di flusso in G che attraversa il cammino s-u-v-p. Inoltre, i cammini indotti dagli archi in M hanno vertici disgiunti, a meno di s e p e il valore del flusso attraverso il taglio(Ls, Rp)è uguale ad M . Infine per vedere che f gode delle tre proprietà (capacità, conservazione del flusso, antisimmetria) basta osservare che f può essere ottenuto come aumento del flusso lungo ognuno di questi cammini.  ASD a.a.2010/2011- Lezione 17 7

8 Prova del Lemma Un flusso a valori interi in G corrisponde ad un abbinamento M in B
Dato f flusso a valori interi in G, si consideri M = (u,v): u  L e v  R e f(u,v)>0, vale che: M è un abbinamento perché ogni vertice di L ha un solo arco entrante (s,u) di capacità 1 e un’unità di flusso netto positivo entra in u iff vi è un solo vertice v in R tale che f(u,v)=1. M = f  infatti  u  L, f(s,u)=1e  (u,v)  E-M, f(u,v)=0, da cui: M = f(L,R)= f  ASD a.a.2010/2011- Lezione 17 8


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

Presentazioni simili


Annunci Google