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

Slides:



Advertisements
Presentazioni simili
Flusso Massimo Applicazione di algoritmi
Advertisements

Algoritmi e Strutture Dati
Cammini minimi con una sorgente
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Algoritmi e Strutture Dati
Algoritmo di Ford-Fulkerson
Flusso Massimo Applicazione Algoritmi Esercizio 1 Sia dato la seguente rete di flusso, in cui la sorgente è il nodo 1 e la destinazione è il nodo 6. I.
Algoritmi e Strutture Dati
1 Algoritmo di Ford-Fulkerson s t G: Valore del flusso = 0 0 flusso capacità
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Flusso Massimo Applicazione di algoritmi
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Cammini minimi Moreno Marzolla
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.
Prof.ssa Rossella Petreschi Lezione del 29 /10/2014 del Corso di Algoritmica Lezione n°8.
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°10 Prof.ssa Rossella Petreschi
Cammini minimi in grafi:
Algoritmi Avanzati a.a.2015/2016 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
Analisi di sequenze di operazioni Union-Find
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Complessità ammortizzata degli algoritmi Union Find
Lezione n°14 Reti di flusso Prof.ssa Rossella Petreschi
La gestione degli insiemi disgiunti
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Lezione n°16 Abbinamento Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 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ì!
Lezione n°11 Prof.ssa Rossella Petreschi
Lezione n°12 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
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
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
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Cammini minimi in grafi:
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Grafi e problem solving
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
Il problema del flusso nelle reti
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Unione per ranghi compressi
Algoritmi e Strutture Dati
Algoritmo di Ford-Fulkerson
Transcript della presentazione:

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

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

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

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

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

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

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

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