Lezione n°14 Prof.ssa Rossella Petreschi

Slides:



Advertisements
Presentazioni simili
Il problema del minimo albero ricoprente in un grafo non cooperativo
Advertisements

Cammini minimi con una sorgente
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Algoritmo di Ford-Fulkerson
Il problema del minimo albero ricoprente in un grafo con archi privati
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati (Mod. B)
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.
Algoritmi e Strutture Dati
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Prof.ssa Rossella Petreschi Lezione del 3 /12/ 2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 3 del testo Nishizeki,Chiba “Planar graphs:theory.
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.
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:
GRAFI e PLANARITA’ Lezione n°19 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
La funzione Path e le forme a cespuglio
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°17 Prof.ssa Rossella Petreschi
Lezione n°15 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Cammini minimi tra tutte le coppie
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
Lezione n°4 Prof.ssa Rossella Petreschi
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
Branch and Bound Lezione n°18 Prof.ssa Rossella Petreschi
Schema generale, visita in ampiezza e profondità.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Usi (meno scontati) della visita DFS
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
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Il problema del flusso nelle reti
Unione per ranghi compressi
Algoritmi e Strutture Dati
Transcript della presentazione:

Lezione n°14 Prof.ssa Rossella Petreschi Lezione del 21/11/2014 del Corso di Algoritmica

Algoritmo di Edmonds e Karp(1972) Algoritmo EK (R(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 Rf do (minimo rispetto alla distanza) cf () = min cf(u,v), (u,v)  in Rf; 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 distanza unitaria e si calcola il cammino minimo con una visita in ampiezza, l’algoritmo EK richiede tempo O (VE2) 2

Lemma delle distanze Lemma Prova Si esegua l’algoritmo EK su una rete di flusso di R (V,E,s,p,C). Per ogni v in V-s,p, la distanza f(s,v) in Rf cresce monotonomamente con ogni aumento di flusso.f(u,v)= lunghezza del cammino minimo da u a v in Rf ) Prova Per assurdo si supponga che esistano dei vertice r tali che f’(s,r) < f(s,r). Sia v quello più vicino alla sorgente in Rf , ovvero f’(s,v) < f’(s,r) < f(s,r). Per gli altri vertici w vale f(s,w) ≤ f’(s,w). Sia u il vertice che precede v sul cammino minimo da s a v, si ha f’(s,u) = f’(s,v)-1. Sia f il flusso in R prima dell’aumento del flusso in Rf ,si ha: se (f(u,v) < c(u,v)), f(s,v) ≤ f(s,u)+1 < f’(s,u)+1 = f’(s,v). se (f(u,v) = c(u,v)), f(s,v) = f(s,u)-1 ≤ f’(s,u)-1 = (f’(s,v)-1)-1< f’(s,v). 3

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. La prima volta si ha df(s,v) = df(s,u) +1 e la seconda si ha df’(s,u) = df’(s,v) +1 Per il Lemma delle distanze vale df(s,v) ≤ df’(s,v), da cui df’(s,u) = df’(s,v) +1 ≥ df(s,v) + 1 = df(s,u) + 2 Fra i due momenti di criticità di (u,v), la distanza di u dalla sorgente aumenta almeno di 2 unità. Quindi tale distanza può variare da 0 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. 4

Abbinamento massimo in un grafo bipartito e reti di flusso 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  5

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.  6

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  7

Algoritmi di abbinamento massimo Grafo bipartito: O(n3/2(m/logn)1/2) Alt, Blum, Mehlhorn, Paul 1991 O(n1/2(m+n) (log(1 + n2/m))/logn) Feder, Motwani 1991 Grafo qualunque O(mn1/2) Micali, Vazirani 1980 8

GRAFI PLANARI Un grafo si dice planare se è possibile disegnarlo sul piano in modo che nessuna coppia dei suoi spigoli si intersechi. 9

Formula di Eulero In un grafo planare connesso con n vertici, m spigoli e f facce, vale: n - m + f =2 Prova (per induzione su m): Passo base: vero sia se m=0 e n=1, f=1; sia se m=1 e n=2, f=1; Ipotesi induttiva: vero per tutti i valori fino ad m -1; Tesi: vale per G con m archi, n vertici e f facce G albero e v foglia, allora G-v ha m-1 archi, n-1 vertici e f facce per cui (n-1)-(m-1)+f=2 e conseguentemente n-m+f=2; G ha almeno un ciclo ed s è uno spigolo del ciclo, allora G-s ha m-1 archi, n vertici e f-1 facce per cui n-(m-1)+(f-1)=2 e conseguentemente n-m+f=2 10

Dalla formula di Eulero Se G è un grafo planare con n ≥ 3 vertici ed m spigoli, vale che m ≤ 3n – 6 Prova. Si consideri un embedding di G planare massimale (si possono sempre aggiungere spigoli senza incrementare il numero dei vertici). Poiché ogni faccia è limitata da 3 spigoli ed ogni spigolo è sul bordo di due facce, vale: 2m = 3f (ovvero f = 2/3m) Per la formula di Eulero si ha: n- m +2/3m = 2, da cui l’asserto Se G anche bipartito, vale m ≤ 2n – 4 Prova. Analoga alla precedente. L’unica differenza sta nel fatto che i un grafo bipartito non ci sono cicli dispari, per cui 2m=4f (ovvero f = 1/2m) 11

TEOREMA DI KURATOWSKI(1930) Un grafo è planare sess non contiene sottografi omeomorfi a K5 e K3,3 12

UN PO’ DI STORIA 1961(Auslander e Parter) primo algoritmo a complessità polinomiale (quadratico) 1974(Hopcroft e Tarjan ) primo algoritmo a complessità lineare (per aggiunta di cammini) 1967(Lempel, Even e Cederbaum ) primo algoritmo per aggiunta di vertici (quadratico) 1976(Even e Tarjan ) algoritmo lineare per st-numerazione 1976(Booth e Lueker ) si introducono i PQ trees 1985(Chiba, Nishizeki,Abe,Ozawa) "A linear algorithm for embedding planar graphs using PQ–trees”" 19??(De Fraisseix e Rosenstiehl) costruttivo, visita in profondità, mai pubblicato 1993(Shih e Hsu ) costruttivo, visita in profondità, lineare …………………………… 13