Anda di halaman 1dari 9

Teoria dei Grafi

I grafi sono strutture matematiche discrete molto diffuse nelle discipline scientifiche; il loro nome deriva dalla possibilit di rappresentarli graficamente (o pittoricamente); a differenza dei grafici di una funzione, i grafi permettono di creare una rete o network di elementi. Parte 1 Definizione e nomenclatura. Un grafo G consiste di un insieme finito V di elementi detti vertici e di un sottoinsieme di V2 E formato da coppie di vertici detti archi o lati (edges). Un grafo pu essere dotato di un vertice singolo, ma mai di un arco singolo. Ordine: il numero di vertici. Dimensione: il numero di archi di un grafo. La formula per calcolare il numero massimo di archi, dati n vertici, : ( ) Un grafo si indica con G=(V,E), dove: V linsieme dei vertici; E linsieme formato da coppie di vertici, cio da archi. V = { a, b, c, d, z } E = { (a, b) , (b, c) , (c, d) , (d, z)} ( )

Per esempio, dati gli insiemi:

Si pu dare la rappresentazione pittorica del grafico:

Oppure si pu dare la sua lista dadiacenza: al di sopra si scrive il vertice considerato, al di sotto si inseriscono tutti i vertici a cui connesso. In questo esempio, il vertice a connesso a b, mentre b connesso ad a e c. a b c d z b a d c d c b z Ladiacenza. Due vertici connessi da un arco si dicono adiacenti; due archi connessi da un vertice si dicono adiacenti (o incidenti).
A-B, B-X1, X1-X2 sono vertici adiacenti. Non sono adiacenti, invece, A e X1.

Grafo completo e incompleto. Un grafo completo se tutti i vertici sono adiacenti tra loro (cio, per cos dire, se non possibile aggiungere nessun altro arco perch sono gi presenti tutti gli archi). Se almeno due vertici non sono adiacenti, allora il grafo incompleto.

possibile anche calcolare il numero di archi di un grafo completo (=ossia il numero massimo di archi dati n vertici): ( ) ( )

Esercizio. Sia dato un grafo di 5 vertici. Qual il numero massimo di archi possibili? ( ) ( )

Sottografo completo e incompleto. Dato un grafo G, un suo sottografo un grafo che ha gli stessi vertici ma un numero inferiori di archi rispetto a G. Se il sottografo presenta gli archi originari di G, allora tale sottografo detto completo. In caso manchi anche un solo arco, il sottografo diventa incompleto.

Grafo complementare. Dato il grafo G, il complementare G il grafo che ha per vertici gli stessi vertici di G, e per archi gli archi non connessi in G. In formule: Dati G=(V,E) e G=(V, E), se (x,y) V allora (x, y) V

Parte 2 - Cammini. Dato un grafo G, si ha un cammino su G se il grafo presenta una sequenza di vertici adiacenti. Ci significa che, dato V={ v1, v2, , vn }, se vn e vn+1 sono adiacenti ed possibile passare da un vertice al successivo, allora si ha un cammino. Lunghezza del cammino. La lunghezza del cammino il numero di lati che lo compongono, cio il numero di vertici n -1. Grafo connesso. Un grafo G = (V, E) detto connesso se, per ogni qualsiasi coppia di vertici (u, v) V, esiste un cammino che collega u a v. Ci non significa che u e v debbano essere legati direttamente da un arco: sufficiente che esista un cammino che li colleghi. Ogni grafo connesso con n vertici ha almeno lati.

In questo grafo, ogni vertice collegato allaltro da un cammino: per esempio il vertice 4 collegato al vertice 8 passando per i vertici 2 e 5. Prendiamo invece in considerazione i due grafi a destra: il primo un grafo connesso perch qualsiasi vertice legato a qualsiasi altro tramite un percorso; il secondo, invece, non connesso: i due triangoli 3-ciclici non sono infatti connessi tra loro, cio i vertici di uno non sono collegabili ai vertici dellaltro tramite un percorso. Le classi dequivalenza. Individuare un cammino in un grafo significa individuare una classe dequivalenza allinterno del grafo stesso; la relazione far parte di un cammino, indicata con x~y, divide cio un grafo in un certo numero di classi dequivalenza V1, V2, , VN V tra loro disgiunte, formate da quei vertici che creano, insieme, un cammino. Due vertici appartenenti alla stessa classe saranno legati da un percorso, mentre due vertici di due classi diverse non saranno appartenenti ad uno stesso percorso. Esempio. Data la seguente lista dadiacenze, trovare le componenti connesse del grafo che se ne ottiene.

Il grafo ottenuto questo:

Individuiamo quindi le classi dequivalenza di questo grafo. Ricordiamo che le classi dequivalenza sono formate dai vertici che fanno parte dello stesso cammino, cio di una sequenza di vertici adiacenti (anche passando pi volte per uno stesso vertice. Individuiamo quindi tre classi dequivalenza: 1) a f i a f j 2) b c e g b c g 3) h d che possiamo scrivere cos: 1) G = (V, E) V = {a, f, i, j}, E = {(a,f), (f, i), (i, a), (f, j), (a, j)] 2) G=(V, E) V={b, c, e, g}, E={ (b,c), (c,e), (e,g), (g,b), (g, c)} 3) G=(V,E) V={h, d}, E={(h,d)} Grafo componente. un grafo nel grafo, cio un sottografo di G che forma per un percorso. Le classi dequivalenza di un grafo G, ad esempio, sono considerabili componenti di G. Se un grafo ha un solo componente, allora grafo e grafo componente si dicono connessi. Il grafo qui sopra, per esempio, ha due componenti.

Parte 3 Grado di un grafo. Dato un grafo G=(V,E), il grado di un vertice v di G il numero di archi che dipartono da v, indicato con la notazione (v) = |Dv|. Per esempio, dato questo grafo:

Abbiamo che (a) = 2, (b) = 3, (c)= 2, (d)=3. Teorema: la somma dei gradi di un grafo uguale al doppio del numero degli archi: (v) Effettivamente, il grafo precedente ha 5 archi e 10 gradi complessivi. Proposizione. Proviamo ora a suddividere linsieme dei vertici V di un grafo G in due sottoinsiemi, Vp e Vd, dove Vp linsieme dei vertici di grado pari, Vd linsieme dei vertici di grado dispari. Otteniamo che: (v) (Vd) (Vp)

Dato che gli addendi di (Vd) sono tutti dispari, numericamente il numero di addendi devessere pari. Si pu quindi concludere che ogni grafo ha un numero pari di vertici di grado dispari. Grafo regolare. un grafo i cui vertici hanno tutti lo stesso grado. Per esempio, il seguente grafo ha vertici tutti di grado 2:

Parte 4 - Isomorfismo di grafi (o isografismo). Chiaramente luguaglianza di grafi non dipende dal nome dei vertici o dalla loro disposizione: luguaglianza un isomorfismo (detto anche isografismo). Due grafi G e G sono isomorfi se esiste unapplicazione biettiva tra i vertici dei due grafi, tale per cui se (x,y) un arco di G, allora (x, y) un arco di G. G = (V, E) G = (V, E), : V V (x, y) = (x, y) Per esempio, i due grafi a lato sono isomorfi: infatti facile notare che il secondo grafo un quadrato deformato e piegato su se stesso, quindi possibile individuare una applicazione biettiva che colleghi i vertici dei due grafi: (a) = t (b) = u (c) = w (d) = v Ogni arco di G1 corrisponde ad un arco di G2: i due grafi sono isomorfi, cio uguali. Per dimostrare, invece, che i due grafi non sono isomorfi, bisogna dimostrare che non esiste tra di essi una applicazione univoca tra essi. Perci:

Due grafi non sono isomorfi se hanno un numero diverso di vertici. Due grafi non sono isomorfi se hanno un numero uguale di vertici ma un numero diverso di archi.

Si noti che, se due grafi sono isomorfi, allora vertici corrispondenti hanno lo stesso grado. Un metodo veloce per capire se c isomorfismo, ad esempio, quello di calcolare il grado di un vertice: se tale grado non si trova in nessun altro vertice del secondo grafo allora non c isomorfismo. Esempi di isomorfismi e non isomorfismi. Questi due grafi non sono isomorfi: il primo formato da due 3-cicli, il secondo da 6. Questi due grafi, invece, sono isomorfi: hanno entrambi 5 vertici e 5 archi, ogni vertice ha grado 2 e inoltre possibile trovare una corrispondenza tra gli archi: v1v3 a-b; v3-v5 bc; v5v2 cd; v2v4 de; v4v1 ea Se due grafi sono isomorfi e v, v sono i vertici legati dalla possibile applicazione biettiva, (v) non sono isomorfi. Parte 5 Cicli. Cicli. Un cammino v1, v2, , vr+1 i cui vertici sono tutti distinti tranne per v1 = vr+1 detto ciclo. Il numero dei vertici di un ciclo equivale al numero degli archi. In sostanza un ciclo un cammino chiuso. Esistono due tipi di ciclo: ciclo di Hamilton e Ciclo di Eulero: Ciclo di Hamilton: un ciclo ottenuto passando per ogni vertice una sola volta. Nellesempio vediamo un grafo non hamiltoniano: per toccare tutti i vertici necessario passare due volte per il vertice a. (v), cio i due vertici hanno uguale grado. Allo stesso modo, se (v) x e laltro grafo non ha alcun vertice di grado x, i due grafi

Ciclo di Eulero: un ciclo ottenuto attraversando ogni arco una sola volta. Dei due, quello pi problematico: detti x e y il vertice di partenza e quello darrivo dellintero percorso, se x diverso da y, lunico modo per avere un percorso che x e y siano gli unici vertici di grado dispari (cio tutti gli altri devono avere grado pari).

Grafi R-partiti. I grafi R-partiti sono grafi che ha R cicli. Un triangolo un grafo 3-partito, mentre un

Esempio. Due viaggiatori vogliono visitare unisola: il grafo qui sotto rappresenta le mete pi interessanti e i percorsi che le collegano.

Il primo viaggiatore vuole visitare ogni posto una sola volta (anche percorrendo una stessa strada pi volte e tornando al punto di partenza), il secondo vuole percorrere ogni strada una volta, qualsiasi sia la direzione, anche partendo e arrivando in posti diversi. Mentre si riesce a trovare un percorso idoneo al primo (per esempio,

il ciclo p, q, t, s, u, r, p), per il secondo impossibile: anche posto che il punto darrivo e il punto di partenza siano diversi, il grafo non ha al massimo due vertici dispari (ne ha tre!), quindi non esiste percorso adatto. Parte 6 - Alberi Un grafo T un albero se: 1) T connesso (cio c solo una classe dequivalenza: ci significa che c un solo cammino formato da tutti i vertici di T). 2) Non ci sono cicli in T. Esempi di grafi ad albero sono:

Se T=(V, E) un albero con almeno due vertici, allora le seguenti affermazioni sono equivalenti: 1) T=(V,E) un albero. 2) per ogni coppia di vertici (x,y) di T, esiste un unico cammino da x a y. 3) T un grafo privo di cicli e ha n-1 lati (con n=|V|). 4) T un grafo connesso con n-1 lati, con n=|V|. Osservazione: se T un albero con almeno due vertici, allora T ha almeno un vertice di grado 1. La dimostrazione di ci per assurdo. Supponiamo che non si abbiano vertici di grado 1: ci significa che esiste una sequenza di lati li di grado 2, di questo tipo:

Dato che il numero di archi finito, per, ad un certo punto dovr congiungere il primo arco con lultimo per poter avere entrambi di grado 2. In questo modo otterr un ciclo. Gli alberi, per, non presentano cicli: perci un albero deve avere un vertice di grado 1. Esercizio 1. Un albero con almeno 2 vertici ha almeno 2 vertici di grado 1? Sia n il numero dei lati dellalbero, sappiamo che: V 2|E|= (v) Perci: 2n-2 = (v) Il numero degli addendi n, e quindi ne devono esistere almeno due che valgano 1; altrimenti (v) > 2n 2. Esercizio 2. Se un albero ha 2 vertici di grado 2, tre di grado 3, quattro di grado 4 e nessun vertice di grado maggiore, quanti vertici di grado 1 sono possibili? Sappiamo che: V 2|E|= (v) Sia x il numero dei vertici di grado 1: |V| = numero di vertici = x + 2 + 3 + 4 = x + 9 |E| = |V-1| = x + 9 1 = x + 8 . .

(v)

Esercizio 3, generalizzazione dei precedenti. Siano n2, n3, , nk numeri naturali non tutti nulli. Se un albero T ha n2 vertici di grado 2, n3 vertici di grado 3, , nk vertici di grado k e nessun vertice di grado superiore a k, quanti vertici di grado 1 si possono avere? Sia x il numero dei vertici di grado 1. Ricordiamo che: V 2|E|= (v) Perci: (v) .

Sostituisco e ottengo: 2( Quindi ) Approfondimento: gli alberi di supporto. Ogni grafo connesso contiene almeno un albero di supporto, cio un grafo totalmente identico al primo privo per di cicli. Per ottenere tale albero basta partire da un vertice e, da esso, aggiungere un altro vertice fino ad ottenere un grafo connesso ma privo di cicli, cio un albero.

Un problema di grande rilevanza costituito dalla ricerca di un albero che connetta tutti i nodi di un grafo e abbia la somma dei costi dei suoi archi minima (problema del minimo albero di supporto). Per individuare tale albero minimo si fa cos: si ordinano gli archi per costi crescenti si costruisce lalbero inserendo un arco alla volta (secondo lordine) eliminando gli archi il cui inserimento creerebbe un ciclo. Per scegliere larco corretto, si fa un calcolo: si vede cio quale percorso meno costoso tra i presenti. Esempio 1. Immaginiamo davere un grafo connesso G (V, ); ad ogni lato assegno un numero considerabile come un peso:

Parto da qualsiasi vertice t e considero un lato che ha come vertice t e peso minimo tra quelli che hanno come vertice t. Per questo esempio, abbiamo: Parto da u e voglio congiungerlo a v. Il percorso meno costoso quello che collega direttamente u-v, 2. Parto da u e voglio congiungerlo a x: posso scegliere u-x=4 oppure u-v-x = 2+5. Scelgo il primo. Parto da u e voglio congiungerlo a y: il percorso meno costoso u-y=5 Parto da u e voglio congiungerlo a z: il percorso meno costoso y-z = 3

Notare che se lalbero di supporto minimo costruito correttamente, allora dato un altro albero di supporto per lo stesso grafo, il peso complessivo del primo albero di supporto minore o uguale al peso del secondo albero di supporto. Parte 7 - Colorare i vertici di un grafo. Un problema frequente quello di determinare una tabella di marcia per evitare che nascano conflitti tra eventi. Proviamo a vedere come impiegare i grafi in questo caso. Immaginiamo di avere sei lezioni, indicate con v1, v2, v3, v4, v5, v6, e un gruppo di persone che le vogliono frequentare. Alcune persone vogliono andare sia a v1 che a v2, v1 e v4, v3 e v5, v2 e v6, v1 e v6. Quante ore sono necessarie per evitare conflitti? Possiamo rappresentare la situazione tramite un grafo:

dove i vertici rappresentano le lezioni, gli archi i possibili conflitti. Una tabella di marcia che esclude conflitti : Prima ora: v1 e v3 Seconda ora: v2 e v4 Terza ora: v5 Quarta ora: v6 Otteniamo cos una partizione dellinsieme V dei vertici in parti, in modo tale che nessuna parte contenga un paio di vertici adiacenti. Ma siamo sicuri che sia il numero minimo di ore necessarie? Per scoprirlo, proviamo ad usare la tecnica dei colori: diamo ad ogni vertice un colore stando attenti che due vertici collegati non abbiano lo stesso colore. Il numero di colori (detto numero cromatico) il numero minimo di ore necessarie per non avere conflitti. Otteniamo cos che il numero minimo di ore 3. In realt trovare il numero cromatico non cos automatico: esiste per una metodologia ( greedy algorithm) che ci aiuta. Si tratta di dare un colore ad ogni vertice senza guardar oltre, basandosi solo sulla condizione in cui si : il numero di colori che si usa sar

normalmente maggiore del minimo possibile; per esempio, questalgoritmo applicato al precedente esempio restituisce il numero cromatico 4, e non 3. Altri esercizi svolti. La stretta di mano. Un professore universitario e sua moglie organizzano una festa alla quale sono invitate altre quattro coppie. Alcune coppie si stringono la mano (naturalmente i mariti non stringono le mano alle rispettive mogli). Alla fine della festa il professore chiede il numero di persone a cui si stretta la mano, e riceve 9 risposte diverse. In quanti hanno stretto la mano con la moglie del professore? Costruiamo un grafo che ha: Per vertici il numero di persone invitate alla festa: 4 coppie + il professore e sua moglie, per un totale 10 persone. Per archi le strette di mano: se c stretta di mano tra due persone, le si collega con un arco. Il massimo numero di strette di mano 8: per esempio, il professore stringe la mano a tutti tranne che alla moglie (e a se stesso), quindi a (10 -1- 1 = 8) persone. Le altre persone, quindi, avranno stretto le mani a 7, 6, 5, 4, 3, 2, 1, 0 persone (non c una stretta dandata e una di ritorno, ovviamente). Otteniamo quindi questo grafo:

dove Ma rappresenta il marito. Dobbiamo quindi cercare la moglie del professore e capire a quante persone ha stretto la mano. Il marito M stringe la mano a 8 persone, tranne la moglie che ancora per non ha un numero preciso. Prendiamo poi la persona 8, che ha gi stretto le mani ad M: stringe le mani alle restanti 8 persone, escluso M e lo 0, che rappresenter la moglie. Lo stesso si pu dire per 7, che stringer le mani a 7 persone e avr per moglie 1. Proseguendo cos, scopriamo che 6 e 2 sono sposati, che 5 e 3 sono sposati e che, alla fin fine, M sposato con 4 che stringe le mani di 4 persone.