G R A F I 1
GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2
cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono a rappresentare un infinità di tipi di problemi. I grafi sono strutture composte di due tipi di oggetti: vertici/nodi/siti archi/collegamenti/spigoli (edges,links) 3
Grafi Non-Orientati Un grafo non-orientato G `e una coppia (V, E) dove V e un insieme non vuoto, E e un insieme di coppie non-ordinate di elementi di V Coppia non ordinata: {u,v} = {v,u} 4
cip: cip: meglio meglio così così no? no? Esempio 5 1 2 4 3 V = {1,2,3,4,5} E = {{1,2}, {1,3},{2,3},{1,4},{4,3},{5,4}} Questo grafo ha 5 vertici e 6 archi 5
Cosa è un grafo orientato? un grafo orientato è una struttura astratta composta da un insieme di nodi (o vertici) e un insieme di archi (o rami) caratterizzati dalla seguente proprietà: a ogni arco è associata una coppia ordinata di nodi Un arco associato a una coppia di vertici A e B si dice arco incidente su A e B; viceversa si dice che i nodi A e B sono adiacenti se sono associati a uno stesso arco In soldoni ci sono le freccine!! 6
Esempio di grafo orientato A B C D G F E I nodi sono 7 (A, B, C, D, E, F, G) Gli archi sono 8 (AB, BC, CD, DE, EF, FG, GA, GC) A è adiacente a B e G G è adiacente a F (grazie all arco entrante), ad A e a C (tramite gli archi uscenti) 7
Proprietà e utilizzo dei grafi I grafi si utilizzano in molte discipline, tra cui l ingegneria, l economia, la chimica, l informatica, la ricerca operativa Servono per rappresentare relazioni tra gli elementi di insiemi discreti Es.: se i nodi rappresentano città, i rami possono rappresentare le strade tra di esse; allora la teoria dei grafi può essere applicata allo studio dei percorsi minimi, etc. Possiamo utilizzare i grafi per rappresentare legami non nello spazio ma nel tempo: ad esempio, in un semaforo, possiamo pensare di associare un nodo a ciascuno dei 7 intervalli di tempo in cui è diviso il periodo del ciclo semaforico. A ogni nodo possiamo associare un numero (da 0 a 6) e il colore (V G R) del semaforo in quell intervallo; i rami servono per indicare le transizioni, cioè i passaggi da un intervallo all altro 0,V 1,V 2,V 6,R 5,R 4,R 3,G Ogni nodo rappresenta uno stato interno della RSS La rete resta in ogni stato per un tempo T n I rami indicano per ogni stato della rete quale sarà lo stato successivo (stato futuro) in cui la rete andrà allo scadere dell intervallo di tempo T n Dunque i rami individuano le transizioni stato presente stato futuro All interno di ogni nodo si indicano: il nome dello stato e l uscita che la rete ha finchè si trova in quello stato 8
Trasformazione di un grafo degli stati in tabella di flusso Consideriamo un grafo degli stati con un solo ramo uscente per ogni nodo: e possibile condensare in una tabella tutte le informazioni contenute nel grafo e precisamente: i rami (cioè le corrispondenze stato stato presente stato futuro) il valore dell uscita in ogni nodo 0,V 1,V 2,V 6,R 5,R 4,R 3,G Stato presente 0 1 2 3 4 5 6 Stato futuro 1 2 3 4 5 6 0 uscita V V V G G G R G: S S F: S U 9
cip: cip: frecce! frecce! Grafi Orientati (o diretti) Un grafo orientato G `e una coppia (V, E) dove V e un insieme non vuoto, E e una relazione su V, ossia un insieme di coppie ordinate di elementi di V Gli elementi di V sono i vertici, gli elementi di E sono gli archi 10
5 Esempio 1 2 4 3 V = {1,2,3,4,5} E = {(1,2), (1,3),(1,4),(2,2),(2,4),(3,1),(3,2),(4,3),(5,4)} Il Grafo ha 5 nodi (vertici) e 9 archi 11
Grafi pesati Sia nel caso orientato che in quello non orientato agli archi di un grafo può essere associata un informazione, sovente un valore numerico detto costo o peso. I grafi in cui gli archi hanno un peso sono detti grafi pesati Un grafo pesato può essere indicato con G = (V,E,w) dove ad esempio w: E R funzione peso 12
Esempio 5-4 2 1 2 7 8-1 5 4 43 3 V = {1,2,3,4,5} E = {{1,2}, {1,3},{1,4},{2,3},{4,3},{5,4},{5,1}} 13
Grafi pesati: esempi Grafo della rete stradale PESO: distanza fra i nodi tempo di percorrenza 14
Terminologia (per i grafi orientati) In un grafo orientato G = (V,E): un vertice v e adiacente a u se c è un arco (u,v) E. Diciamo che l arco (u,v) esce da u ed entra in v. Un cammino di lunghezza k da u a u e una sequenza di vertici v 0 =u, v 1,,v k = u, tali che (v i-1, v i ) E per i =1,,k Il cammino è semplice se tutti i v i sono distinti 15
Terminologia (segue) Diciamo che u e raggiungibile da u se c e un cammino da u a u. Un cammino <v 0, v 1,,v k > forma un ciclo se v 0 = v k e k > 0 Il ciclo è semplice se v 1,,v k sono distinti Un grafo orientato aciclico (=senza cicli) e chiamato DAG (directed acyclic graph) 16
Cosa possono modellare i grafi? Reti e relativi problemi: rete stradale, ferroviaria, aeroportuale. Reti telefoniche, reti di computers (inclusa internet). Problemi: raggiungibilità, distanza minima, flusso o traffico. (grafi non-orientati) Navigazione in internet: documenti ipertestuali e relativi hyperlinks. (grafo orientato) 17
Cosa possono modellare i grafi? Progetti o piani articolati in fasi o sottoobiettivi: i sottobiettivi sono i vertici, le azioni per conseguirli sono gli archi (grafi orientati) Vincoli di precedenza o causali tra eventi (grafi orientati e senza cicli) Relazioni tra concetti: somiglianza, inclusione, tassonomie (sia grafi orientati che non-orientati) Automi 18
Rete stradale 19
Molecola (Benzene) 20
Albero genealogico 21
Mappa mentale (Mind map) 22
Mappa mentale (Mind map) 23
Sito Web 24
25
Sistemi fatti di stati e transizioni. Gli stati sono i vertici, gli archi sono le transizioni. Ad esempio: un gioco a scacchiera i vertici sono le configurazioni della scacchiera le transizioni sono le mosse che posso fare per passare da una configurazione ad un altra configurazione (in genere Grafo orientato) 26
Gli alberi: un tipo particolare Senza cicli di grafo 27
FINE! 28
29
30
31
32
Esempio di DAG slip calze pantaloni camicia scarpe orologio cintura cravatta giacca 33
In un grafo non-orientato si danno le stesse definizioni con le ovvie modifiche: un vertice u e adiacente a v se c è un arco {u,v} E. Un cammino <v 0, v 1,,v k > forma un ciclo se v 0 = v k e k > 1 34
Altre nozioni: un grafo non-orientato e connesso se ogni coppia di vertici e mutuamente raggiungibile. un grado orientato è fortemente connesso se ogni coppia di vertici e mutuamente raggiungibile Una componente connessa (fortemente connessa) di un grafo è un insieme massimale di vertici mutuamente raggiungibili 35
Proprietà: un grafo non-orientato connesso è aciclico se e solo se vi e esatamente un cammino tra ogni coppia di vertici ha esattamente V -1 archi dove V è il numero di vertici Un grafo non orientato connesso e aciclico è chiamato albero (libero) 36
Rappresentazione di grafi non pesati Modi principali di rappresentazione: Matrice di adiacenza: Il grafo è rappresentato da una matrice V x V i cui elementi assumono valori binari (ad esempio 0 e 1). L elemento in posizione (i, j) è uguale a 1 se e solo se il vertice j è adiacente al vertice i. Liste di adiacenza: Il grafo è rappresentato da un vettore V-indexato di liste, ognuna delle quali contenente i vertici adiacenti al vertice cui la lista è associata. Convenzione: per i grafi non orientati non esiste nessun arco da un vertice v a se stesso (cioè nessun arco (v, v) appartiene ad E) 37
1 2 4 6 3 5 7 A = Spazio richiesto: O (V 2 ) 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 Adatta per grafi densi, in cui E è dell ordine di V 2 38
1 2 4 6 3 5 7 1 2 3 4 5 6 2 1 3 4 2 4 5 2 3 5 6 7 3 4 7 4 7 4 5 Spazio richiesto: O (V + E) Adatta per grafi sparsi, in cui E è molto minore di V 2 39
Se il grafo è pesato: 1 5 2-1 2 4 3-1 1 2 3 2 5-3 6 7 A = 0 5 0 0 0 0 0 5 0 3 2 0 0 0 0 3 0-1 2 0 0 0 2-1 0 1-1 2 0 0 2 1 0 0-3 0 0 0-1 0 0 0 0 0 0 2-3 0 0 40
1 5 2-1 2 4 3-1 1 2 3 2 5-3 6 7 1 2 3 4 5 6 7 2 5 1 5 2 3 2 2 3 2 4-1 4 2 3 3 4 2 4-1 5 2 3-1 5 1 6-1 7 2 4 1 7-3 5-3 41