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:

Slides:



Advertisements
Presentazioni simili
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Advertisements

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 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:
Branch and Bound Lezione n°19 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
Reti, flussi e tagli Lezione n°11
Alberi di ricerca di altezza logaritmica
Analisi di sequenze di operazioni Union-Find
Lezione n°9 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Lezione n°7 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
B-alberi e alberi autoaggiustanti
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Il problema del cammino minimo
Complessità ammortizzata degli algoritmi Union Find
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Lezione n°14 Reti di flusso Prof.ssa Rossella Petreschi
La gestione degli insiemi disgiunti
Macchine sequenziali Capitolo 4.
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 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
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Paths, tree and flowers Lezione n°14
K4 è planare? E K3,3 e K5 sono planari? Sì!
per rappresentare grafi
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
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
Alberi di ricerca Lezione n°4
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
Insiemi disgiunti.
Unione per ranghi compressi
Algoritmi e Strutture Dati
Transcript della presentazione:

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: design tecniques and analysis” Edizioni: World Scientific paragrafo 12.4 del testo J.H.Kingston“Algorithms and data structures” Edizioni: Addison Wesley Abbinamento Lezione n°12

L’abbinamento Abbinamento (accoppiamento) in un grafo connesso non orientato (e privo di loop) è un qualsiasi insieme M di archi a due a due non incidenti. La cardinalità di M è la cardinalità dell’abbinamento. Un nodo si dice saturo (esposto) se è (non è) estremo di un qualche arco in M. M è un abbinamento massimale se non è sottoinsieme proprio di alcun abbinamento in G. M è un abbinamento massimo se non esiste un altro abbinamento in G con cardinalità maggiore di quella di M. M è un abbinamento perfetto se non lascia alcun nodo esposto.

Proprietà dell’abbinamento Grafi qualunque G ( V, E ),  V  = n Ogni abbinamento massimo è massimale Ogni abbinamento perfetto è massimo Un abbinamento massimo non è detto sia perfetto In un grafo possono esistere distinti abbinamenti perfetti Un abbinamento può avere al più  n/2  archi Un abbinamento è perfetto se e solo se ha n/2 archi Se un grafo ha un abbinamento perfetto, allora ha un numero pari di nodi

Sui grafi bipartiti G(XUY,E) VALE La cardinalità di un abbinamento massimo è al più il minimo fra la cardinalità di X e quella di Y G non può avere un abbinamento perfetto se |X| ≠ |Y| Teorema del matrimonio (Jacobi 1890, Frobenius 1917, Hall 1935) G(XUY, E) ha un abbinamento perfetto sse  X  =  Y   S  ≤  N(S)  per ogni S in X Teorema di Konig-Egervary (Konig 1930, Egervary1931) In ogni grafo bipartito la cardinalità massima di un abbinamento è uguale alla cardinalità minima di un ricoprimento (insieme di nodi che copre tutti gli archi del grafo)

Applicazioni Grafo bipartito In una azienda n nuovi assunti da assegnare ad n differenti lavori Scegliere fra i componenti di una squadra di nuoto il team giusto da portare ad una gara in modo da poter partecipare a tutte le discipline Grafo qualunque Scegliere opportunamente coppie di persone a cui far condividere una stanza d’albergo. Una compagnia aerea multiculturale deve scegliere i due piloti dello stesso aereo in modo che abbiano lo stesso tipo di addestramento e parlino una lingua comune e poi abbinamenti di strutture chimiche, scheduling parallelo di differenti lavori su diverse macchine, assegnamento di turni in una fabbrica……….

Cammini alternanti/aumentanti Dato G (V,E) ed M abbinamento su G si definisce p: cammino M-alternante un cammino che alterna archi in M con archi in E/M p: cammino M-aumentante un cammino M-alternante che inizia e termina con un nodo esposto

L’Operatore XOR M 1, M 2 abbinamenti,  M 1  = r,  M 2  = s, s > r p: cammino M 1 -aumentante si definisce M 1  M 2 = (M 1  M 2 ) - (M 1  M 2 ) = (M 1 -M 2 )  (M 2 -M 1 ) vale M 1  p è un abbinamento di dimensione r+1 M 1 è massimo sess nel grafo non esistono cammini M 1 - aumentanti (Petersen1891, Berge 1957, Norman-Rabin1959) M 1  M 2 contiene almeno k=s-r cammini M 1 -aumentanti a nodi disgiunti prova Le componenti connesse di G(V, M 1  M 2 ) possono essere vertici isolati,cicli pari o cammini, sia pari che dispari. Cicli e cammini pari non sono M 1 -aumentanti. I restanti k cammini dispari sono M 1 -aumentanti.

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 

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

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 

Albero ungherese ( coniato da Kuhn nel 1955 in onore di Konig e Egervary ) G(XUY,E),  X  +  Y  =n,  E  =m, M’ abbinamento arbitrario in G Sia r un vertice esposto in X. T, albero alternante radicato in r (ovvero albero in cui ogni cammino dalla radice ad una foglia sia alternante) si costruisce nella seguente maniera: a partire da r, si aggiunga a T un arco non in M’, sia (r,y). Per ogni z adiacente ad y, si aggiunga l’arco (y,z) in M’(se esiste). Si ripeta il procedimento finchè: o si incontra un nodo z esposto; e quindi un cammino aumentante o l’albero non può più crescere; in tal caso si ha un albero ungherese. NOTE In un albero ungherese l’unico nodo esposto è r nessun cambiamento all’interno di un albero ungherese può cambiare la cardinalità dell’abbinamento.

Grafi bipartiti e albero ungherese Input: G(XUY,E),  X  +  Y  =n,  E  =m, M’ abbinamento arbitrario in G (M può essere l’insieme vuoto) Output: M massimo abbinamento Algoritmo: finchè esistono due vertici esposti, uno in X e uno in Y, costruisci un albero alternante T, radicato in r (in X), tramite visita in ampiezza; se T è ungherese, rimuovi T da G altrimenti M = M  p, dove p è il cammino aumentante trovato Complessità: O(nm) ≤ O(n 3 ) O(m) costruzione di un albero alternante con visita in ampiezza; al più O(n) alberi DA RICORDARE un grafo bipartito non contiene cicli dispari

La contrazione del germoglio ( Paths,trees and flowers Edmonds,1965) Germoglio: ciclo dispari costituito da una alternanza di spigoli appartenenti e non appartenenti all’abbinamento. In un germoglio si individua la base e lo stelo. Edmonds’ idea: ogni germoglio va compresso in un supernodo Teorema: Sia G(V,E) un grafo non orientato e sia G’ il grafo ottenuto da G comprimendo un germoglio in un supernodo. G’ contiene un cammino aumentane sse G lo contiene

Abbinamento in grafi qualunque Input: G(V,E),  V  =n,  E  =m, M’ abbinamento arbitrario in G (M può essere l’insieme vuoto) Output: M massimo abbinamento Algoritmo: finchè esistono due vertici esposti, x e y, si costruisca un cammino alternante T, se trovi un germoglio, contrailo e prosegui l’algoritmo su G’ se trovi p, cammino aumentante, incrementa M : M = M  p, se l’abbinamento è stato trovato su G’, decontrai i germogli e produci M su G Complessità: O(nm) ≤ O(n 3 )

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