Sei sulla pagina 1di 25

Universit` a degli Studi di Roma Tor Vergata

Dispense per il corso di

GRAFI E RETI DI FLUSSO Antonio Iovanella

Settembre 2008

Indirizzo dellautore:
Antonio Iovanella Dipartimento di Ingegneria dellImpresa, Universit` a di Roma Tor Vergata Via del Politecnico 1, 00133 Roma - Italia Email: iovanella@disp.uniroma2.it Web Page: http://www.disp.uniroma2.it/Users/iovanella/

Home page della didattica: http://www.uniroma2.it/didattica/ro1

II

Indice
1 Introduzione 1.1 Denizioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 1.1.2 1.1.3 1.2 Sottogra, ordine, dimensione e densit` a di un grafo . . . . . . . . . Vicinati, gradi e regolarit` a . . . . . . . . . . . . . . . . . . . . . . . k -Fattorizzazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 4 7 8 9 9 10 12 13 16 17 . . . . . . . . . . . . . . . . . . 17 18 20 22 23 24 26 30

Gra e modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 1.2.2 1.2.3 1.2.4 Relazioni e sottogra . . . . . . . . . . . . . . . . . . . . . . . . . . Assegnamento di lavori . . . . . . . . . . . . . . . . . . . . . . . . . Scheduling di team in una azienda . . . . . . . . . . . . . . . . . .

Percorsi su rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Algoritmi 2.1 2.2 Breve tassonomia dei problemi decisionali

Algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Algoritmi di ricerca . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3

Crescita di funzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 2.3.2 Notazione Big-O . . . . . . . . . . . . . . . . . . . . . . . . . . . . Crescita di combinazioni di funzioni . . . . . . . . . . . . . . . . . .

2.4 2.5

Complessit` a degli algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . . . Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III

IV 3 Propriet` a e strutture dei gra 3.1 3.2 3.3 3.4 3.5 3.6 3.7

INDICE 33 33 37 40 45 46 48 48 51 52 54 55 59 59 61 61 67 70 74 76 79 81 82 85 91 95

Strutture dati per la rappresentazione di gra . . . . . . . . . . . . . . . . Isomorsmo tra gra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connessione, cicli e gra bipartiti . . . . . . . . . . . . . . . . . . . . . . . Alberi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cammini Euleriani . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cammini Hamiltoniani . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Gra Planari 4.1 4.2 Gra sul piano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gra duali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 4.2.2 4.3 Propriet` a dei gra planari e Formula di Eulero . . . . . . . . . . . . Caratterizzazione dei gra planari . . . . . . . . . . . . . . . . . . .

Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Algoritmi di ricerca su grafo 5.1 5.2 5.3 Algoritmi di ricerca su grafo . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo di ordinamento topologico . . . . . . . . . . . . . . . . . . . . . Algoritmi di ricerca di alberi ricoprenti minimi . . . . . . . . . . . . . . . . 5.3.1 5.3.2 5.4 Algoritmo di Kruskal . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo di Prim . . . . . . . . . . . . . . . . . . . . . . . . . . .

Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 Problemi di usso su grafo 6.1 Algoritmi di ricerca del cammino minimo su di un grafo . . . . . . . . . . . 6.1.1 6.2 Lalgoritmo di Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . .

Problemi di massimo usso su grafo . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Lalgoritmo di Ford e Fulkerson . . . . . . . . . . . . . . . . . . . .

Elenco delle gure


1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Lattuale mappa dellarea dei ponti del problema di K onisberg [1]. . . . . . Grafo corrispondente al Problema di K onisberg. . . . . . . . . . . . . . . . Grafo dellEsempio 1.1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un sottografo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un sottografo indotto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un sottografo ricoprente . . . . . . . . . . . . . . . . . . . . . . . . . . . . Esempi di gra 3-regolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fattorizzazione di K4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 5 5 5 5 8 9

Grafo rappresentante le relazioni di conoscenza tra i cinque membri del gruppo 10

1.10 Grafo rappresentante le relazioni di non conoscenza tra i cinque membri del gruppo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11 Grafo bipartito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.12 Esempio di matching sul grafo della Figura 1.11 . . . . . . . . . . . . . . . 1.13 Una istanza del problema dei team . . . . . . . . . . . . . . . . . . . . . . 1.14 Un cammino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.15 Un ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.16 Alcuni esempi di path e cicli . . . . . . . . . . . . . . . . . . . . . . . . . . 1.17 Grafo per lEsempio 1.2.1 2.1 3.1 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 11 12 12 14 14 15 16 26 34 34

Graco delle funzioni pi` u comunemente usate nella stima Big-O . . . . . . Grafo non orientato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grafo orientato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V

VI 3.3 3.4 3.5 3.6 3.7 3.8 3.9

ELENCO DELLE FIGURE Lista di adiacenza per il grafo di Figura 3.2. . . . . . . . . . . . . . . . . . Esempio di due gra isomor . . . . . . . . . . . . . . . . . . . . . . . . . Due gra isomor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I gra bipartiti completi K2,3 e K3,3 . . . . . . . . . . . . . . . . . . . . . . Un grafo con quattro componenti connesse. . . . . . . . . . . . . . . . . . . Componente connessa di x . . . . . . . . . . . . . . . . . . . . . . . . . . . Un circuito con un nodo ripetuto. . . . . . . . . . . . . . . . . . . . . . . . 37 38 39 40 41 42 42 45 45 48 51 52 53 54 55 55 56 58 58 63 64 65 67 68 69 70 71 75

3.10 Una foresta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11 Un albero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.12 Come spostare i quattro cavalli. . . . . . . . . . . . . . . . . . . . . . . . . 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Il problema dei tre nemici. . . . . . . . . . . . . . . . . . . . . . . . . . . . Connessioni per il problema dei tre nemici. . . . . . . . . . . . . . . . . . . K5 e K3,3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La facce di un grafo planare. . . . . . . . . . . . . . . . . . . . . . . . . . . Costruzione del duale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un esempio di grafo G e del suo duale G . . . . . . . . . . . . . . . . . . . Esempio di due embedding planari con duali non isomor. . . . . . . . . . Il ciclo C evidenziato per la dimostrazione del teorema. . . . . . . . . . . . Contrazione dellarco e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lalgoritmo di ricerca su grafo. . . . . . . . . . . . . . . . . . . . . . . . .

Grafo per gli Esempi 5.1.1 e 5.1.2. . . . . . . . . . . . . . . . . . . . . . . Albero dei cammini e valori dei vettori pred(i) e ordine(i) nel caso FIFO. . Albero dei cammini e valori dei vettori pred(i) e ordine(i) nel caso LIFO. . Lalgoritmo di ordinamento topologico. . . . . . . . . . . . . . . . . . . . . Grafo per lEsempio 5.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . .

Contenuto del vettore ordine(i) dopo lordinamento topologico. . . . . . . Tagli e path per le condizioni di ottimalit` a. . . . . . . . . . . . . . . . . . . Grafo per lEsempio 5.3.1. . . . . . . . . . . . . . . . . . . . . . . . . . . .

ELENCO DELLE FIGURE 5.10 Evoluzione dellalgoritmo di Kruskal sul grafo di Figura 5.9. . . . . . . . . 5.11 Evoluzione dellalgoritmo di Prim sul grafo di Figura 5.9. . . . . . . . . . . 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 Cammini da s a k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lalgoritmo di Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grafo per lEsempio 6.1.1 e corrispondente tabella degli archi. . . . . . . .

VII 76 78 84 86 87

Evoluzione delle etichette dei nodi e lista di adiacenza per il grafo di Figura 6.3. 89 Disegno per la correttezza di Dijkstra . . . . . . . . . . . . . . . . . . . . . Costruzione del grafo residuo. . . . . . . . . . . . . . . . . . . . . . . . . . 90 92

Un grafo G con un usso assegnato x ed il corrispondente grafo residuo G(x). 93 Un taglio s-t per il grafo di Figura 6.7. . . . . . . . . . . . . . . . . . . . . Lalgoritmo di Ford e Fulkerson . . . . . . . . . . . . . . . . . . . . . . . . 93 96 98 98 99 99

6.10 Grafo per lEsempio 6.2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.11 Il grafo residuo dopo la prima iterazione. . . . . . . . . . . . . . . . . . . . 6.12 Il grafo residuo dopo la seconda iterazione. . . . . . . . . . . . . . . . . . . 6.13 Il grafo residuo dopo la terza iterazione. . . . . . . . . . . . . . . . . . . .

6.14 Il grafo residuo dopo la quarta iterazione. . . . . . . . . . . . . . . . . . . . 100 6.15 Il taglio minimo del grafo di Figura 6.10. . . . . . . . . . . . . . . . . . . . 100 6.16 Istanza patologica per lalgoritmo di Ford e Fulkerson. . . . . . . . . . . . 101

VIII

ELENCO DELLE FIGURE

Prefazione
Queste dispense nascono per essere aancate ai testi adottati per il corso di Ricerca Operativa, prima parte, previsti per gli studenti di Ingegneria Gestionale e per quelli di Ingegneria Online della Facolt` a di Ingegneria dellUniversit` a di Roma Tor Vergata. Esse costituiscono inoltre un utile strumento di approfondimento per gli studenti del corso di Teoria dei Gra e Reti di Flusso del Master di II livello in Ingegneria dei Sistemi a Rete della Facolt` a di Ingegneria dellUniversit` a di Roma Tor Vergata. Essendo questa la primissima versione delle dispense, conterr` a sicuramente degli errori. Inoltre i miei sforzi non saranno stati di certo sucienti a creare uno strumento chiaro e completo. Per questo condo nella collaborazione dei lettori nel segnalarmi ogni imprecisione che rileveranno e le parti poco chiare o incomplete. In queste pagine sono presenti tutti gli argomenti che saranno trattati nei moduli didattici. I testi originali dai quali ho tratto ispirazione per la redazione di queste note sono raccolti nella bibliograa, e pertanto invito tutti gli studenti a tenerli in considerazione come riferimento uciale in caso di dubbi o imprecisioni. Gli argomenti trattati in queste dispense seguono fedelmente quelli svolti in aula. In dettaglio, nel Capitolo 1 verranno introdotti i concetti e le denizioni di base della teoria dei gra che possono essere approfonditi su [9], [2], [4], [7] e [14]; nel Capitolo 2 verr` a introdotto il concetto di algoritmo e vedremo i metodi di misura della loro ecienza, argomenti che possono essere studiati su [8], [11] e [12]. I testi [10], [2], [7] e [14] possono essere usati come riferimento per il Capitolo 3 nel quale verranno illustrate alcune importanti caratteristiche dei gra come lisomorsmo e leulerianit` a, mentre [14], [7], [11] sono stati usati per il Capitolo 4 dove tratteremo i gra planari. I testi [10], [7] e [3] sono invece alla base dei Capitoli 5 e 6 dove verranno illustrati rispettivamente gli algoritmi di ricerca su grafo e gli algoritmi di usso.

Settembre 2008

Capitolo 1 Introduzione
Ognuno di noi su questo pianeta ` e separato dagli altri solo da sei persone. Sei gradi di separazione fra noi e tutti gli altri su questo pianeta: il presidente degli Stati Uniti, un gondoliere veneziano... Non solo nomi importanti, chiunque: un indigeno australiano, uno della Terra del Fuoco, un eschimese. Io sono legato a chiunque sul pianeta da una catena di sei persone. E un pensiero profondo... ognuno di noi ` e una porta spalancata su altri mondi. John Guare

Per denire il concetto di grafo si fa spesso ricorso ad un episodio che viene associato alla nascita stessa della Teoria dei Gra, ovvero alla formulazione del famoso Problema dei Ponti di K onisberg da parte di Eulero in un suo lavoro del 1736. Nella citt` a di K onisberg (allepoca appartenente alla Prussia, attualmente situata in Russia con il nome di Kaliningrad) ci sono, oggi come allora, delle aree abitative insediate su alcune isole del ume Pregel ed altre che sorgono lungo le sue rive, per un totale di quattro aree. Queste zone sono unite tra di loro da sette ponti, cos` come si pu` o vedere nellattuale mappa della zona, riportata in Figura 1.1. Il problema posto da Eulero si pu` o formulare nel seguente modo: ` e possibile trovare un percorso chiuso che, a partire da una qualunque area, permetta di attraversare i ponti una ed una sola volta e ritornare al punto di partenza? La zona presa in esame pu` o essere schematizzata come in Figura 1.2 dove i punti in grassetto rappresentano le aree (le due isole, indicate con le lettere a e d e le due rive 1

CAPITOLO 1. INTRODUZIONE

Figura 1.1: Lattuale mappa dellarea dei ponti del problema di K onisberg [1].

del ume, indicate con le lettere b e c) e gli archi rappresentano i ponti tra le diverse aree. Cercando di risolvere il problema ci si convince abbastanza presto che questo non ha soluzione e che non ha soluzione anche se vogliamo passare per ogni ponte una ed una sola volta, ma accettiamo di non ritornare esattamente nella stessa area. Eulero dimostr` o che la forma delle suddette aree non ha alcuna inuenza, ma che la soluzione dipende solo dalle propriet` a di connessione. La soluzione a questo problema sar` a data nel Capitolo 3.

b a1 a4 a a2 c a3 a6

a5

d a7

Figura 1.2: Grafo corrispondente al Problema di K onisberg.

1.1. DEFINIZIONI

1.1

Denizioni

In questa sezione verranno esposte le denizioni di base della Teoria dei Gra. Il lettore deve per` o essere allertato del fatto che non esiste una notazione universalmente accettata, ma che spesso per gli stessi concetti possono trovarsi in letteratura notevoli dierenze1 . Per quanto possibile, verr` a data segnalazione lungo le pagine di queste note. Denizione 1.1.1 Un grafo G ` e una tripla costituita da un insieme di vertici V (G) (detti anche nodi), un insieme di archi E (G) e una relazione, detta relazione di incidenza, che associa con un arco una coppia di vertici, detti estremi. Un grafo pu` o essere rappresentato gracamente mediante dei punti per indicare i nodi e da linee e curve per gli archi. Esempio 1.1.1 In Figura 1.2 ` e disegnato il grafo G rappresentante il Problema di K onisberg, dove linsieme dei vertici ` e V (G) = {a, b, c, d} (le quattro regioni) e linsieme degli archi ` e E (G) = {a1 , a2 , a3 , a4 , a5 , a6 , a7 } (i ponti). Linsieme degli archi pu` o rappresentarsi anche come E (G) = {ab, ac, ad, bd, db, cd, dc} ed in questo modo risulta esplicitata maggiormente la relazione di incidenza. Notare che i nodi b e d (e anche c e d) hanno pi` u di un arco in comune. Gli esempi di problemi che possono essere descritti come un grafo sono molteplici. Per esempio ` e possibile descrivere la rete stradale come un grafo dove i nodi sono gli incroci e gli archi sono le strade che li congiungono; analogamente, un circuito elettrico pu` o essere visto come un grafo i cui nodi sono le connessioni e gli archi i componenti del circuito stesso. Denizione 1.1.2 Un loop (o laccio) ` e un arco i cui estremi coincidono. Si chiamano archi multipli gli archi i cui estremi sono gli stessi. Denizione 1.1.3 Si denisce grafo semplice un grafo privo di loop ed archi multipli.
Nel luglio del 2006, Douglas West ha proposto un sondaggio su Internet rivolto alla comunit` a di coloro che si occupano di Teoria dei Gra per cercare di uniformare almeno alcune notazioni principali. Per quanto possibile, lesito di tale sondaggio ` e stato preso in considerazione in queste note
1

CAPITOLO 1. INTRODUZIONE Individueremo un grafo semplice mediante i suoi insiemi di nodi e di archi, considerando

linsieme degli archi come un insieme di coppie non ordinate di vertici e scrivendo e = ab (o egualmente e = ba) per un arco con estremi a e b. Si possono dare ulteriori denizioni sui nodi e sugli archi: Denizione 1.1.4 Se ab E (G) allora a e b si dicono adiacenti e si indica con a b. I vertici a e b si dicono incidenti sullarco ab. Due archi si dicono adiacenti se hanno un vertice in comune. Denizione 1.1.5 Un grafo G si dice nito se gli insiemi V (G) ed E (G) sono niti. In gran parte delle applicazioni i gra sono niti e privi di loop ed archi multipli. Di conseguenza, in seguito faremo riferimento quasi esclusivamente a gra semplici e sempre a gra niti. Per evitare confusione, inoltre, non considereremo il grafo nullo, ovvero il grafo con linsieme dei vertici e degli archi vuoti. Per semplicit` a di notazione, nel seguito indicheremo con V o N linsieme dei vertici V (G) e con E linsieme degli archi E (G).

1.1.1

Sottogra, ordine, dimensione e densit` a di un grafo

Denizione 1.1.6 Dato un grafo G = (V, E ), G = (V , E ) ` e un sottografo di G se V V ed E E e posso scrivere G G. Se il sottografo G contiene tutti gli archi di G che congiungono due vertici in G , allora G ` e chiamato sottografo indotto e si indica con G[V ]. Se il sottografo G ha V V , allora G ` e chiamato sottografo ricoprente. Per indicare un sottografo scriveremo genericamente G G e diremo che G contiene G . Esempio 1.1.2 Si consideri il grafo G = ({1, 2, 3, 4, 5, 6}, {12, 14, 16, 25, 34, 36, 45, 56}), rappresentato in Figura 1.3. In Figura 1.4 ` e rappresentato un suo generico sottografo con G = ({1, 2, 3, 4, 6}, {12, 14, 16, 36}), in Figura 1.5 il sottografo indotto G = ({1, 2, 3, 4, 6}, {12, 14, 16, 34, 36}) ed inne in Figura 1.6 il sottografo ricoprente G = ({1, 2, 3, 4, 5, 6}, {12, 14, 16, 36, 56}).

1.1. DEFINIZIONI 1 2 6 2 1 6

4 Figura 1.3: Grafo dellEsempio 1.1.2 1 2 6

4 Figura 1.4: Un sottografo 1 2 6

4 Figura 1.5: Un sottografo indotto

4 Figura 1.6: Un sottografo ricoprente

Spesso ` e possibile costruire nuovi gra a partire da un grafo assegnato G cancellando oppure aggiungendo vertici ed archi. Se V V , allora G V = G[V \V ] ` e il sottografo di G ottenuto cancellando tutti i vertici V e tutti gli archi su di loro incidenti. Analogamente, se E E , allora G E = (V, E \E ). Se V = {v } oppure E = {xy }, allora la notazione si semplica in G v e G xy . Inne, se x ed y sono due vertici non adiacenti di G, allora G + xy ` e ottenuto congiungendo x ed y con un arco.

Denizione 1.1.7 Si denisce ordine di un grafo G il numero dei suoi vertici, ovvero |G| = |V (G)|; si denisce dimensione di un grafo il numero dei sui archi, ovvero e(G) = |E (G)|.

CAPITOLO 1. INTRODUZIONE Per indicare lordine di un grafo arbitrario si pu` o utilizzare inoltre la notazione Gn men-

tre attraverso la notazione G(n, m) si indica un grafo arbitrario di ordine n ed dimensione m. Nellesempio 1.1.2 il grafo ha ordine 6 e dimensione 8 e potremo indicarlo per esempio come G(6, 8). Dato un grafo semplice arbitrario di ordine n, ci chiediamo in quale campo di valori possa variare il numero di archi m. Chiaramente, tali valori possono variare tra 0 (in corrispondenza del grafo nullo) e tra il numero corrispondente al caso in cui tutti i nodi sono mutualmente adiacenti, numero pari a tutte le possibili combinazioni di n oggetti presi due a due. Quindi: n 2 n(n 1) 2

0m

(1.1)

Nel caso specico il coeciente binomiale si scrive attraverso la formula che compare nellultimo membro della Formula 1.1. Quindi un grafo dordine 6 potr` a, per esempio, avere dimensione compresa tra 0 e 15. Spesso il numero di archi di un grafo viene espresso in modo proporzionale rispetto al massimo numero di archi possibile. A tale misura viene data il nome di densit` a di un grafo e si calcola come: m n(n 1)/2

D(G) =

(1.2)

chiaramente, tale misura varia da 0 a 1. In generale, diremo sparso un grafo che abbia un numero di archi molto basso, ovvero una densit` a bassa (per esempio D(G) 0, 1 0, 3); viceversa, diremo che e denso un grafo che ha un alto numero di archi, quindi una densit` a alta (per esempio D(G) 0, 7 0, 9). I gra che hanno tutti i nodi mutualmente adiacenti rivestono una importanza particolare e sono chiamati gra completi (o clique ) e sono indicati con Kn , dove n indica la sua cardinalit` a. Dato che un grafo pu` o contenere sottogra completi, possiamo dare la denizione pi` u generale: Denizione 1.1.8 Un grafo completo (o clique) in un grafo G ` e un insieme di nodi

1.1. DEFINIZIONI

mutualmente adiacenti. Dato linsieme di tutte le clique di G, la cardinalit` a della clique massima viene chiamata numero di clique ed ` e indicato con (G).

1.1.2

Vicinati, gradi e regolarit` a

Passiamo ora a dare altre denizioni sui gra. Denizione 1.1.9 Linsieme dei vertici adiacenti ad un assegnato vertice x G ` e chiamato vicinato di x e si indica con (x). Con il simbolo (x) spesso ci si riferisce al vicinato aperto, mentre per indicare il vicinato chiuso si usa scrivere (x) {x}. Notare che se y (x) e x (y ), allora signica che x y e y x, ovvero xy ` e un arco del grafo. Denizione 1.1.10 Si denisce grado d(x) di un nodo x G la cardinalit` a del suo vicinato, ovvero, d(x) = |(x)|. Se un vertice ha d(x) = 0, allora si denisce vertice isolato. Anche in questo caso il simbolismo non ` e univocamente denito, perch` e possiamo trovare indicato il vicinato ed il grado rispettivamente con G (x) e dG (x), in modo da non sottintendere il grafo G. Dato un grafo G, si usa indicare il suo grado minimo con (G) ed il suo grado massimo con (G) Lintroduzione del concetto di grado di un vertice ci permette di introdurre un primo importante risultato generale, che viene chiamato spesso Lemma Handshaking 2 : Lemma 1.1.1 In ogni grafo, il numero di vertici di grado dispari ` e pari. Dimostrazione: Sommando i gradi di ogni vertice, ogni arco ` e contato esattamente due volte (una volta per ogni vertice). Quindi avremo che:

d(i) = 2m
iV
2

(1.3)

La ragione del nome del lemma deriva dal fatto che in un ricevimento, se tutti gli invitati si salutano tra loro allora la somma totale delle strette di mano (in inglese, handshaking) ` e sempre pari.

CAPITOLO 1. INTRODUZIONE Dato che il secondo membro ` e positivo, anche il primo deve esserlo; questultimo ` e

` composto da due contributi, la somma dei gradi pari e la somma dei gradi dispari. E quindi chiaro che il contributo dei vertici di grado dispari deve essere pari e questo accade solo se sono in numero pari.

Denizione 1.1.11 Dato un grafo G, se (G) = (g ) = k allora G si dice k-regolare. Un grafo G si dice regolare se ` e k -regolare per un certo k .

Figura 1.7: Esempi di gra 3-regolari

Per esempio, tutte le clique Kn sono (n 1)-regolari; ancora, se k = 3 si ha un grafo 3-regolare (vedi Figura 1.7), detto anche cubico.

1.1.3

k -Fattorizzazioni

Denizione 1.1.12 Un k-fattore ` e un sottografo ricoprente k -regolare. Se linsieme degli archi pu` o essere diviso in k -fattori ho una decomposizione che prende il nome di k-fattorizzazione . Se ho una decomposizione in 1-fattori allora la decomposizione prende il nome di fattorizzazione ed ha ovviamente senso solo se il grafo ha un numero pari di nodi. In Figura 1.8 sono rappresentate (con gli archi in grassetto) le tre possibili fattorizzazioni di K4 .

1.2. GRAFI E MODELLI 1 2 1 2 1 2

Figura 1.8: La fattorizzazione di K4

1.2

Gra e modelli

In questa sezione verranno mostrate alcune applicazioni pratiche che possono essere rappresentate mediante dei gra. Gli esempi illustrati ci serviranno soprattutto per introdurre nuove denizioni e termini della teoria dei gra.

1.2.1

Relazioni e sottogra

Supponiamo sia assegnato un gruppo di cinque persone; come ` e possibile rappresentare le relazioni di conoscenza tra i membri del gruppo? Se indichiamo con le prime cinque lettere dellalfabeto i cinque membri del gruppo, possiamo costruire un grafo nel quale i nodi rappresentano i membri, ed un arco esiste se due membri si conoscono. Supponiamo sia assegnata unistanza di tale problema come in Figura 1.9. Supponiamo di voler studiare ora il problema complementare: dato ancora lo stesso gruppo di persone, come rappresentare le relazioni di non conoscenza tra i membri? di un grafo semplice G ` Denizione 1.2.1 Il grafo complemento G e un grafo semplice ) V (G) ed insieme degli archi tale che un arco ab esiste in avente insieme dei nodi V (G se e solo se ab G / E (G). Denizione 1.2.2 Un insieme indipendente (o insieme stabile) W in un grafo ` e un insieme di vertici mutuamente non adiacenti, ovvero se e soltanto se il sottografo indotto G[W ] = .

10 b a c

CAPITOLO 1. INTRODUZIONE b a c

Figura 1.9: Grafo rappresentante le relazioni di conoscenza tra i cinque membri del gruppo

Figura 1.10: Grafo rappresentante le relazioni di non conoscenza tra i cinque membri del gruppo

La denizione di complementariet` a ci permette di legare tra di loro i due problemi introdotti e di ottenere il grafo rappresentante il secondo attraverso tale denizione, come si pu` o vedere in Figura 1.10. Possiamo notare inoltre che nel grafo G, il sottografo {a, b, c} ` e una clique di ordine 3 e {c, e} ` e un insieme indipendente di cardinalit` a 2. Corrispondena 3 e {c, e} temente, nel grafo G, i nodi {a, b, c} sono un insieme indipendente di cardinalit` ` e una clique di ordine 2. Quindi gli insiemi indipendenti di un grafo diventano clique nel suo grafo complementare cos` come le clique in un grafo diventano insiemi indipendenti nel suo grafo complemento. Linsieme indipendente, oltre che alla clique, ` e legato ad un altro concetto, ovvero quello del vertex covering: Denizione 1.2.3 Un vertex covering di un grafo G ` e un sottoinsieme V di V tale che ogni arco di G ` e incidente con almeno un vertice in V . Si pu` o dimostrare [14] che, se ` e il valore della cardinalit` a del massimo insieme indipendente di G e la cardinalit` a del pi` u piccolo V tale che sia un vertex covering di G, allora + = n, dove n ` e lordine di G. Infatti, ogni insieme indipendente di cardinalit` a massima ` e il complemento di un vertex cover minimo.

1.2.2

Assegnamento di lavori

Si supponga che unazienda debba eettuare n compiti diversi, da assegnare ognuno ad m dipendenti, che per` o non sono interscambiabili perch` e ognuno di essi possiede delle

1.2. GRAFI E MODELLI specializzazioni. In che modo assegnare i compiti ai dipendenti?

11

Per risolvere questo problema possiamo costruire un grafo nel quale i vertici sono gli n compiti e gli m dipendenti, mentre un arco ij esiste se il compito i pu` o essere svolto dal dipendente j . In Figura 1.11 ` e disegnato un grafo corrispondente al caso in cui n = m = 4 e si pu` o notare come in realt` a linsieme dei nodi sia partizionato in due sottoinsiemi (indipendenti) V1 (corrispondenti ai compiti) e V2 (corrispondenti ai dipendenti). V1

V2 Figura 1.11: Grafo bipartito

Per questa particolare categoria di gra possiamo dare la seguente denizione: Denizione 1.2.4 Un grafo G si dice bipartito se linsieme dei suoi nodi V (G) ` e lunione di due insiemi indipendenti disgiunti V1 e V2 chiamati insiemi partizione ed ogni suo arco va da V1 a V2 . Un grafo bipartito ` e anche chiamato 2-partito, perch` e pu` o essere visto come un particolare caso dei gra r-partiti, ovvero di quei gra nei quali linsieme dei nodi ` e costituito dallunione di r insiemi partizione e gli archi vanno da una delle partizioni verso una qualunque delle altre. Laccoppiamento tra compiti e dipendenti pu` o essere rappresentato attraverso la denizione di matching su grafo che qui diamo per il caso pi` u generale: Denizione 1.2.5 Un matching di un grafo G ` e un sottoinsieme V di V tale che nessuno degli archi in V ha un estremo in comune. Il matching di gra bipartiti ` e una particolare classe dei problemi di matching che sono ben noti nella teoria dei gra e che richiedono di trovare il sottoinsieme V tale che

12

CAPITOLO 1. INTRODUZIONE

abbia il pi` u alto numero di archi. Questo problema verr` a ampiamente ripreso nei corsi successivi, per il momento in Figura 1.12 viene mostrato un esempio di matching sul grafo della Figura 1.11 rappresentato dagli archi in grassetto. V1

V2 Figura 1.12: Esempio di matching sul grafo della Figura 1.11

1.2.3

Scheduling di team in una azienda

Una azienda ha la necessit` a di schedulare3 un certo numero di riunioni dei vari team, ma ha il vincolo che alcuni manager appartengono a team dierenti e quindi non ` e possibile indire due riunioni contemporaneamente se hanno un manager in comune. 1 a 2 b 1 e

1 c

3 d

Figura 1.13: Una istanza del problema dei team

Per rappresentare tale problema posso disegnare un grafo nel quale i nodi sono i team, ed esiste un arco se i due team hanno un membro in comune, come in Figura 1.13. Per risolverlo, invece, posso usare un algoritmo che, partendo da un nodo, assegni ad ognuno di essi una etichetta (colore ) in modo che due nodi adiacenti non abbiano stessa etichetta. Associando letichetta ad un istante temporale, e considerando che nodi che hanno
Il termine inglese scheduling indica un problema decisionale che considera lallocazione di risorse scarse ad attivit` a, con lobiettivo di ottimizzare una o pi` u misure di prestazione. Siccome tale parola ` e intraducibile in italiano, viene di solito adattata, ottenendo i termini schedulare, schedulato, ecc.
3

1.2. GRAFI E MODELLI

13

stessa etichetta non hanno membri in comune, ne consegue che per risolvere il problema ` e suciente schedulare i team nellordine dato dalle etichette. Per esempio, considerando le etichette assegnate al grafo in Figura 1.13 una possibile sequenza ` e {a, c, e}, {b} e {d} (notare come lordine delle etichette corrisponda agli istanti di attuazione). Generalizzando il problema, ci si pu` o chiedere quale sia, tra tutte le etichettature ammissibili, quella che implica il minor numero di etichette possibili. Denizione 1.2.6 Si denisce numero cromatico di un grafo G e si indica con (G), il minimo numero di colori necessari per etichettare i vertici in modo che vertici adiacenti ricevano colori diversi. Il termine colore deriva dal famoso Problema dei quattro colori, posto da Francis e Frederick Guthrie nel 1852 e da A. Cayley nel 1878, nel quale si ci si chiedeva quale fosse il minimo numero di colori necessari per colorare una mappa geograca politica. Nel 1890 P. J. Heawood congettur` o che bastassero quattro colori, ma tale congettura ` e stata dimostrata denitivamente solo nel 1976 da K. Appel e W. Haken. Per altri aspetti storici sul problema dei quattro colori rimandiamo il lettore a [9].

1.2.4

Percorsi su rete

Uno dei campi nel quale la teoria dei gra trova grande applicazione ` e quello della rappresentazione delle reti stradali. Infatti, possiamo associare un vertice del grafo ad ogni incrocio stradale ed unire tra di loro tali vertici con un arco in corrispondenza del tratto di strada che unisce i due incroci. Inoltre possiamo iniziare ad introdurre dei nuovi elementi che possiamo associare agli archi ed ai nodi, ovvero dei pesi; in questo caso, un peso associato agli archi pu` o rappresentare la lunghezza del tratto stradale, oppure la sua capacit` a in termini di auto per ora, ecc. Questa rappresentazione fa nascere alcuni quesiti, per esempio, dati due vertici qualunque a e b, ` e possibile individuare sulla rete il cammino pi` u breve tra questi due punti? Oppure, se i vertici rappresentano delle citt` a e gli archi la rete autostradale, ` e possibile individuare un percorso che partendo da una generica citt` a visiti tutte le restanti con un percorso di distanza minima?

14

CAPITOLO 1. INTRODUZIONE Vedremo nel seguito come risolvere il primo problema (vedi Capitolo 6) mentre per il

secondo rimandiamo alla bibliograa, invitando il lettore ad approfondire gli argomenti riguardanti il cosiddetto Problema del commesso viaggiatore o TSP, Travelling Salesman Problem per esempio in [7] o [14]. Denizione 1.2.7 Un cammino (o anche path) ` e un grafo semplice i cui vertici possono essere ordinati in una lista in modo che due vertici sono consecutivi nel cammino se e soltanto se sono consecutivi nella lista medesima. Quindi, P = (V (P ) = {x0 , x1 , . . . xl }, E (P ) = {x0 x1 , x1 x2 . . . xl1 xl }) ` e un cammino che indicheremo con x0 x1 . . . xl . Chiameremo i vertici x0 e xl terminali del cammino. Inoltre, se indichiamo con di la lunghezza associata ad ogni arco, allora l = ` e la lunghezza del cammino. Denizione 1.2.8 Un ciclo ` e un cammino con egual numero di vertici ed archi e con i terminali coincidenti. x2 x1 x0 x2 x1 x0
xi xj E (P )

di

x3

x4

x5

x3

x4

x5

Figura 1.14: Un cammino

Figura 1.15: Un ciclo

A titolo di esempio, in Figura 1.14 ` e rappresentato il cammino x0 x1 x3 x2 x4 x5 , mentre in Figura 1.15 ` e rappresentato il ciclo x0 x1 x3 x2 x4 x5 x0 . Per indicare path e cicli arbitrari si usa aggiungere alla nomenclatura un pedice che indica il numero di archi di cui sono composti. Quindi, per esempio, P4 indica un path di lunghezza 4, mentre C5 indica un ciclo di lunghezza 5 (alcuni esempi sono dati in Figura 1.16). Inoltre, un path con terminali x e y viene spesso indicato come {x, y }-path. Un cammino od un ciclo possono essere identicati come sottogra in un grafo arbitrario e questo ci porta a generalizzare le denizioni appena date.

1.2. GRAFI E MODELLI

15

P3

C4

P4

C5

Figura 1.16: Alcuni esempi di path e cicli

Denizione 1.2.9 Dato un grafo arbitrario G = (V, E ), allora: un walk W in un grafo ` e una sequenza alternata di vertici ed archi, x0 e1 x1 e2 . . . el xl , con ei = xi1 xi e 0 < i l; un trail T ` e un walk con tutti gli archi distinti; un path P ` e un trail con tutti i vertici distinti; un trail chiuso (o anche circuito) ` e un trail con x0 xl ; un ciclo C ` e un walk composto da pi` u di tre archi, ha x0 xl ed ogni vertice distinto. Denizione 1.2.10 Dato un grafo G, un insieme di cammini {P 1 , P 2 , . . . P k } si dice indipendente (o internamente disgiunto) se per ogni coppia di cammini, gli unici vertici in comune sono i terminali, ovvero sono dei {x, y }-path se V (P i ) V (P j ) = {x, y }, i = j . Esempio 1.2.1 Dato il grafo in Figura 1.17, un walk ` e {abcebc}, un trail ` e {abcebf }, un trail chiuso ` e {abcebf a}, un path ` e {abcdef } ed, inne, un ciclo ` e {abcdef a}. Il concetto di cammino in un grafo ci permette di introdurre unimportante propriet` a dei gra, ovvero la connessione.

16 b a

CAPITOLO 1. INTRODUZIONE

e Figura 1.17: Grafo per lEsempio 1.2.1

Denizione 1.2.11 Un grafo G ` e connesso se ogni coppia di suoi vertici appartiene ad un cammino e sconnesso altrimenti. Riprenderemo questo concetto nelle prossime sezioni.

1.3

Esercizi

Es. 1.3.1 Dire se ` e possibile disegnare un grafo in cui i gradi dei vertici siano i seguenti: d(1) = 1; d(2) = 2; d(3) = 3; d(4) = 4; d(5) = 5. Es. 1.3.2 E possibile disegnare un grafo 3-regolare con 9 vertici? Se si disegnarlo. E con 8 vertici? Se si disegnarlo. Es. 1.3.3 Dato K6 , quanti cammini ricoprenti posso fare partendo da un vertice assegnato a? Es. 1.3.4 Dato K4,4 , quanti cammini ricoprenti posso fare partendo da un dato vertice a? Es. 1.3.5 Si disegni una 2-fattorizzazione di K5 . Es. 1.3.6 Si mostri se ` e possibile disegnare una 2-fattorizzazione di K6 . Es. 1.3.7 (Dicile) Determinare il numero di 1-fattori in K2n . Es. 1.3.8 (Dicile) Determinare il numero di 2-fattori in K2n,2n .