La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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.

Presentazioni simili


Presentazione sul tema: "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."— Transcript della presentazione:

1 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 and algorithms” Edizioni: North-Holland Per approfondimenti:Di Battista, Eades, Tamassia, Tollis “ Graph drawing” Edizioni: Prentice Hall GRAFI e PLANARITA’ Lezione n°17

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

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

4 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)

5 TEOREMA DI KURATOWSKI(1930) Un grafo è planare sess non contiene sottografi omeomorfi a K 5 e K 3,3

6 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

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

8 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 ……………………………

9 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

10 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à

11 CALCOLO DELLE FUNZIONI Procedura DFS (G) T=Ø; Cont=1; for i=1 to n do marca v i come nuovo; for i=1 to n do RICERCA( v i ). 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))

12 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 = vw 0 w 1 w k-1 w k, con w = w 0 e LOW(w)=w k 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 = vw 0 w 1 w k-1 w k, con w = w 0 e w k vecchio; ovvero il cammino va all’indietro fino al primo vecchio vertice; marca vecchio tutti i vertici e gli spigoli sul PATH. 4.Tutti gli spigoli incidenti in v sono vecchi PATH = Ø.

13 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

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

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

16 PQ-TREE Una forma a cespuglio B k è 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 G k e i figli di un P-nodo possono essere permutati arbitrariamente i Q-nodi rappresentano le componenti biconnesse di G k e i figli di un Q-nodo possono essere solo scambiati le foglie sono i nodi virtuali in B k 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


Scaricare ppt "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."

Presentazioni simili


Annunci Google