GRAFI e PLANARITA’ Lezione n°19 Prof.ssa Rossella Petreschi

Slides:



Advertisements
Presentazioni simili
Master Bioinformatica 2002: Visite di Grafi La struttura dati D è una PILA (STACK) Visita in profondità o Depth-First-Search (DFS)
Advertisements

Grafi: rappresentazione e visita
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 5/12/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 11 del testo Anany Levitin “The design.
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.
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°10 Prof.ssa Rossella Petreschi
Cammini minimi in grafi:
Inserzione e Cancellazione
Branch and Bound Lezione n°19 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
Progettare algoritmi veloci usando strutture dati efficienti
Alberi di ricerca di altezza logaritmica
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
Alberi binari Definizione Sottoalberi Padre, figli
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.2014/2015 Prof.ssa Rossella Petreschi
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ì!
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
Introduzione agli Algoritmi e alle Strutture Dati
Schema generale, visita in ampiezza e profondità.
Algoritmi e Strutture Dati
Backtracking Lezione n°13 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Lezione n°14 Prof.ssa Rossella Petreschi
Progettare algoritmi veloci usando strutture dati efficienti
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
Backtracking Lezione n°17 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
Tabelle dinamiche Lezione n°3
Transcript della presentazione:

GRAFI e PLANARITA’ Lezione n°19 Prof.ssa Rossella Petreschi Lezione del 19 /01/ 2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 3 del testo T.Nishizeki, N.Chiba “Planar graphs:theory and algorithms” Edizioni: North-Holland ASD-A.A.2011/2012 1

GRAFI PLANARI Un grafo si dice planare se è possibile disegnarlo sul piano in modo che nessuna coppia dei suoi spigoli si intersechi. ASD-A.A.2011/2012 2

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 Fatto: Se G è un grafo planare con n ≥ 3 vertici ed m spigoli, vale che m ≤ 3n – 6 e che, se G è bipartito, m ≤ 2n – 4 ASD-A.A.2011/2012 3

TEOREMA DI KURATOWSKI(1930) Un grafo è planare sess non contiene sottografi omeomorfi a K5 e K3,3 ASD-A.A.2011/2012 4

EMBEDDING Dato un disegno planare di un grafo G, si ordini la lista di adiacenza di G in modo che tutti i vicini di ogni vertice v seguano il verso dell’orologio sul disegno dato. L’insieme delle liste così ordinato è chiamato incastonamento (embedding) di G. 1 2 3 6 5 2 5 4 3 1 3 2 4 6 1 4 2 5 6 3 5 4 2 1 6 6 4 5 1 3 ASD-A.A.2011/2012 5

ST-NUMERAZIONE Una numerazione 1,2,…,n degli n vertici di G (V,E) è detta st-numerazione se: il vertice 1 è detto sorgente (s) e il vertice n è detto pozzo(t) ed s e t sono adiacenti; fra tutti i vertici adiacenti ad un qualunque j in V, j≠s,t, esistono sempre due vertici i ed k tali che i<j<k Vale: esiste una st-numerazione per ogni grafo 2-connesso; non è possibile trovare una st-numerazione valida per un grafo non 2-connesso. Un grafo è 2-connesso se è privo di punti di articolazione. Un vertice in G è punto di articolazione se la sua eliminazione aumenta il numero di componenti connesse in G. ASD-A.A.2011/2012 6

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 …………………………… ASD-A.A.2011/2012 7

EVEN e TARJAN 1976 TEOREMA Sia G(V,E) un grafo 2-connesso, siano s e t due nodi di V tali che (s,t) sia un arco di E. Allora esiste una st-numerazione tale che s sia il primo nodo e t sia l’ultimo. Dimostrazione La dimostrazione è data in forma costruttiva e consiste nel fornire un algoritmo di st-numerazione(basato sulla visita in profondità) Complessità Lineare in m ASD-A.A.2011/2012 8

DFN, FATH e LOW Definiamo: DFN(v) : identifica l’ordine di visita di v nella visita in profondità del grafo. Tutti i vertici del grafo saranno poi identificati con il loro DFN. FATH(v) : riporta il numero di identificazione nella visita in profondità del padre di v LOW(v) : min (v,w), per ogni w estremo dello spigolo di riporto (u,w) (back edge) con u discendente e w ascendente di v nell’albero generato dalla visita in profondità. In modo equivalente: LOW(v) : min (v, LOW(x), w), per ogni x figlio di v e w estremo dello spigolo di riporto (v,w) (back edge). Queste tre funzioni si calcolano con una semplice modifica della visita in profondità ASD-A.A.2011/2012 9

CALCOLO DELLE FUNZIONI Procedura DFS (G) T=Ø; Cont=1; for i=1 to n do marca vi come nuovo; for i=1 to n do RICERCA( vi). Procedura RICERCA (v) marca v come vecchio; DFN(v) = Cont; Cont=Cont+1; LOW(v)= DFN(v); for ogni vertice w nella lista di adiacenza di v do if w è marcato nuovo then aggiungi (v,w) a T; FATH (w)=v; RICERCA(w); LOW(v)=min(LOW(v),LOW(w)) else if FATH (v) ≠ w then LOW(v)=min(LOW(v),DFN(w)) ASD-A.A.2011/2012 10

LA FUNZIONE PATH Inizialmente s,t e (s,t) sono identificati vecchi, tutti gli altri vertici e spigoli di G sono identificati nuovi. Si conoscono poi DFS(t)=1, DFS(s)=2. La funzione PATH(v) prende come valore un cammino da v ad un vertice vecchio. Si considerano 4 casi: 1. vi è un nuovo back edge (v,w) PATH = vw; marca (v,w) vecchio. 2. vi è un nuovo tree edge (v,w) PATH = vw0w1wk-1wk, con w = w0 e LOW(w)=wk ovvero ci si arrampica sull’albero finchè un back- edge non ci porta in un vertice u tale che DFN(u)=LOW(w); marca vecchio tutti i vertici e gli spigoli sul PATH. 3. vi è un nuovo back edge (w,v) PATH = vw0w1wk-1wk, con w = w0 e wk vecchio; ovvero il cammino va all’indietro fino al primo vecchio vertice; 4. Tutti gli spigoli incidenti in v sono vecchi PATH = Ø. ASD-A.A.2011/2012 11

PROCEDURA DI ST-NUMERAZIONE Procedura ST-NUMERAZIONE (G) Inizializzazione: si marcano s,t e (s,t) come vecchi e tutti gli altri vertici e spigoli come nuovi;si inseriscono t ed s nello stack S, nell’ordine, cont =1;pop v da S; while v ≠ t do if PATH =Ø then STN(v)=cont; cont=cont +1; else push tutti i vertici di PATH in ordine inverso a v(v deve rimanere al top) pop v da S STN(t)=cont ASD-A.A.2011/2012 12

RAPPRESENTAZIONE A CESPUGLIO Si consideri G(V,E) sui cui vertici è imposta una st-numerazione v1, …, vn e Gk (Vk,Ek) sottografo di G indotto dai vertici Vk= (v1, …,vk). Se k<n, deve esistere almeno uno spigolo con un estremo in Vke un estremo in V-Vk. Si costruisca Gk’ aggiungendo a Gktutti gli spigoli di questo tipo con la caratteristica che un vertice in V- Vk connesso a d vertici in Vk sarà rappresentato con d copie virtuali di grado 1. Una rappresentazione a cespuglio di Gk’ è un ebedding di Gk’ con tutti i vertici virtuali posizionati sulla faccia esterna(usualmente sulla stessa orizzontale). ASD-A.A.2011/2012 13

ANCORA SUI CESPUGLI (Even 1979) Sia (s,t) disegnato sul bordo della faccia esterna di un embedding di G. Si consideri Gk sottografo piano di G. Per 1≤ k ≤n vale: tutti i vertici e gli spigoli di G-Gk sono disegnati sulla faccia esterna del sottografo piano Gk di G; per una qualunque forma a cespuglio di Gk , esiste una sequenza di permutazioni e di scambi che porta tutte le copie del vertice “k+1” ad occupare posizioni consecutive sulla linea orizzontale ASD-A.A.2011/2012 14

PQ-TREE Una forma a cespuglio Bk è normalmente rappresentata tramite una struttura dati chiamata PQ-tree. I nodi di un PQ-tree sono divisi in tre classi: P-nodi, Q-nodi e foglie, dove: i P-nodi rappresentano punti di articolazione di Gk e i figli di un P-nodo possono essere permutati arbitrariamente i Q-nodi rappresentano le componenti biconnesse di Gke i figli di un Q-nodo possono essere solo scambiati le foglie sono i nodi virtuali in Bk le foglie si muovono in accordo ai movimenti dei P-nodi (o dei Q-nodi) Booth e Lueker hanno provato che le permutazioni e gli scambi nominati sopra possono essere trovati applicando ripetutamente 9 trasformazioni base ASD-A.A.2011/2012 15