La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "GRAFI e PLANARITA’ Lezione n°19 Prof.ssa Rossella Petreschi"— Transcript della presentazione:

1 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

2 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

3 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 – e che, se G è bipartito, m ≤ 2n – 4 ASD-A.A.2011/2012 3

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

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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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


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

Presentazioni simili


Annunci Google