Assaggi di teoria dei grafii Samuele Mongodi - [email protected] Quest’opera è soggetta alla licenza Creative Commons Attribuzione - Non commerciale - No opere derivate 3.0 Italia http://creativecommons.org/licenses/by-nc-nd/3.0/it/legalcode 1 I problemi di un museo In città hanno aperto un nuovo museo della Matematica; il direttore, preparando le visite guidate, si trova di fronte al seguente problema. Problema 1 Il museo ha 20 stanze, ognuna collegata ad altre 3. E’ possibile organizzare una visita guidata che parta da una stanza e le visiti tutte passando in ognuna una sola volta, fino a ritornare in quella di partenza? Certo, ci sono alcune domande che dovrebbero venire spontanee nel leggere il quesito: • quanti modi diversi ci sono di disporre le stanze del museo come descritto? • importa da quale stanza si parte? • può essere che si riesca (in questo museo o in un altro) ad organizzare una visita che tocchi tutte le stanze una volta sola, ma che non sia possibile farla terminare nella stanza di partenza? e leggendo queste domande, soprattutto la prima, dovrebbe venire in mente un’altra questione: cosa vuol dire diversi ? Il museo, essendo appena aperto, ha bisogno di personale; il direttore ha bisogno di un guardiano, di una guida, di qualcuno che venda i biglietti, di qualcuno che faccia le pulizie e di qualcuno che si occupi della pubblicità. Problema 2 Si presentano 5 persone per questi 5 lavori; ognuna è qualificata per alcuni di questi lavori e non per altri. In quali dei seguenti casi è possibile assegnare ogni candidato ad una occupazione? 1. la prima persona è qualificata solo per uno di questi, la seconda per due e cosı̀ via; 2. la prima e la seconda persona sono qualificate per due lavori, la terza e la quarta per tre, con la condizione che le qualifiche di uno non includano mai completamente le qualifiche di un altro, mentre la quinta per un lavoro solo. Ovviamente, una domanda più interessante può essere di determinare in quali casi è possibile assegnare i lavori secondo le qualifiche. Il museo raccoglie 10 argomenti matematici e l’organizzatore dell’esposizione propone al direttore di commissionare ad un artista una scultura, in cui ogni argomento è rappresentato con un suo simbolo e tra argomenti collegati vi è una striscia di metallo. Il direttore, però, preferisce i dipinti... Problema 3 Ogni argomento è collegato ad altri 3; è possibile dipingere i 10 simboli degli argomenti e tracciare tra ogni due argomenti collegati una linea (anche curva), di modo che due linee di collegamento non si intersechino tra di loro? Certo, se ci fossero stati solo due collegamenti da ogni argomento, sarebbe stato più facile... Il guardiano del museo deve controllare gli allarmi, dopo aver chiuso e fatto uscire gli ultimi visitatori; c’è un allarme in corrispondenza di ogni porta e lui deve passare a controllarli tutti. Problema 4 Esiste un percorso che parta da una stanza e passi una e una sola volta per ogni porta, ritornando nella stanza di partenza? Ovviamente, si può passare da una stessa stanza più volte. Incredibilmente, se ogni stanza fosse stata collegata ad altre 4, la risposta sarebbe stata (forse) più facile. Al direttore vengono dati nuovi fondi, per ampliare leggermente il museo, ma sotto alcuni vincoli architettonici; lui però non sa se accettare i soldi, in quanto non sa se la modifica richiesta è possibile. 1 Problema 5 E’ possibile aggiungere una stanza al museo di modo che, comunque, ogni stanza sia collegata ad altre 3? Si potrebbe invece toglierne una, chiedendo che ogni stanza sia poi collegata ad altre 5? Oppure, lasciando sempre 20 stanze, si potrebbe ristrutturare il museo per avere una stanza collegata ad altre 5 e ogni altra collegata ad altre 4? D’accordo, il benefattore ha delle richieste strane, ma son pur sempre soldi. Il direttore e i 5 dipendenti vivono tutti vicini al museo e alcuni di loro si conoscevano già prima di cominciare a lavorare lı̀. Problema 6 Il direttore sostiene che, tra di loro, vi sono 3 persone di cui ognuna conosce gli altri due, oppure vi sono 3 persone di cui nessuna conosce gli altri. Ha ragione? Furbo, questo direttore... 2 Pensiamoci un po’ Consideriamo, uno per volta, i problemi esposti nella sezione precedente e cerchiamo di isolare le caratteristiche essenziali alla loro risoluzione. Ad alcuni daremo risposta, ad altri no. 2.1 La visita guidata Senza informazioni sulla forma delle stanze e sulla loro disposizione, tracciare una cartina del museo può diventare abbastanza complicato; del resto, è anche inutile, al fine di fornire una risposta al quesito. Indichiamo le stanze con i numeri da 1 a 20 e proviamo a descrivere i collegamenti: i. 1 con 5, 2, 6 ii. 2 con 1, 3, 7 iii. 3 con 2, 4, 8 iv. 4 con 3, 5, 9 v. 5 con 4, 1, 10 vi. 6 con 1, 11, 12 vii. 7 con 2, 12, 13 viii. 8 con 3, 13, 14 ix. 9 con 4, 14, 15 x. 10 con 5, 15, 11 xi. 11 con 10, 6, 16 xii. 12 con 6, 7, 17 xiii. 13 con 7, 8, 18 xiv. 14 con 8, 9, 19 xv. 15 con 9, 10, 20 xvi. 16 con 11, 20, 17 xvii. 17 con 12, 16, 18 xviii. 18 con 13, 17, 19 xix. 19 con 14, 18, 20 2 xx. 20 con 15, 19, 16 Questa descrizione è evidentemente troppo dettagliata; infatti ogni collegamento compare due volte. Quindi, ci sono 3 ⋅ 20/2 = 30 collegamenti. Proviamo a dare una rappresentazione grafica, disegnando dei cerchi numerati e collegandone due se le corrispondenti stanze sono adiacenti. 6 7 5 8 4 9 3 10 2 11 1 12 20 13 19 14 18 15 17 16 Certo, questa figura è abbastanza confusa da impedire quasi ogni ragionamento; proviamo a disporre in modo diverso i cerchi, in modo da evitare troppe sovrapposizioni tra le linee che li collegano. 2 7 13 3 8 12 18 17 14 19 6 1 16 9 4 20 11 15 10 5 Ecco, qui si può anche provare a ragionare. Il nostro problema è visitare tutte le stanze una e una sola volta, partendo e tornando nella stessa stanza, ovvero mettere in sequenza i numeri da 1 a 20 di modo che due numeri vicini corrispondano a due stanze collegate. Proviamo a guardare la seconda figura; le stanze sono disposte su tre cerchi concentrici. Se ci facciamo guidare da questa felice disposizione, possiamo pensare di percorrere un cerchio alla volta e sperare che alla fine si chiuda tutto. 3 Cominciamo! Ovviamente partiamo da 1; dopo di che 2, 3, 4, 5. Ora non possiamo tornare in 1, quindi scendiamo al prossimo cerchio, andando a 10; se poi vorremo risalire alla stanza 1, dovremo passare per la stanza 6 alla fine, quindi non ci passiamo adesso e dunque prendiamo la direzione opposta: 15, 9, 14, 8, 13, 7, 12. Attenzione! C’è ancora un cerchio e dunque non possiamo ancora passare dalla 6. Piuttosto, scendiamo all’ultimo cerchio, andando alla 17. Da qui, per forza, 18, 19, 20, 16 e, risalendo, 11, 6, 1. Ce l’abbiamo fatta: il nostro percorso è 1, 2, 3, 4, 5, 10, 15, 9, 14, 8, 13, 7, 12, 17, 18, 19, 20, 16, 11, 6, 1 Ovvero, in figura 2 7 13 3 8 12 18 17 14 19 6 1 16 9 4 20 11 15 10 5 Ora, riflettiamo un poco: se anche avessimo numerato diversamente le stanze non sarebbe cambiato nulla. O anche, addirittura, se non avessimo numerato per nulla le stanze; nel disegno il problema sarebbe sempre stato quello di seguire le linee passando per ogni cerchio una volta sola, partendo e tornando nello stesso. Inoltre, sebbene la diversa disposizione grafica ci abbia aiutato, i due disegni di prima erano equivalenti per il problema, infatti nel primo avremmo comunque trovato quest’altro percorso: 4 7 6 5 8 4 9 3 10 2 11 1 12 20 13 19 14 18 15 16 17 Infine, se avessimo rappresentato la situazione cosı̀ la soluzione sarebbe stata ancora più ovvia (il cerchio esterno); certo, non era ovvio, all’inizio, che fosse possibile rappresentare in questo modo i collegamenti tra le stanze. Un piccolo esercizio: provate a mettere i numeri delle stanze nell’ultima figura, di modo che corrisponda alle precedenti. 2.2 I 5 lavori Abbiamo i nostri 5 futuri dipendenti (che chiamiamo A, B, C, D, E) e i 5 possibili lavori (che indichiamo con 1, 2, 3, 4, 5); ad ogni lettera associamo dunque un po’ di numeri, che indicano i lavori per cui una persona è qualificata. Ad esempio, nel primo caso proposto, a meno di cambiare i numeri che corrispondono ai lavori1 , ci troveremo in questa situazione: A Ð→ 1 1 Questo passaggio è importante; se non vi convince, fate un po’ di prove!! 5 B Ð→ 1, 2 C Ð→ 1, 2, 3 D Ð→ 1, 2, 3, 4 E Ð→ 1, 2, 3, 4, 5 che può anche essere rappresentata con la seguente figura: A 1 B 2 C 3 D 4 E 5 La richiesta ora può essere riformulata chiedendo di trovare, per ogni lettera, un numero a cui è collegata, di modo che lo stesso numero non capiti con due lettere diverse. In questo caso, ovviamente possiamo farlo, assegnando A→1 B→2 C→3 D→4 E→5 Ovvero, scegliendo nella figura alcune linee, di modo che non ve ne siano mai due concorrenti in un cerchio: A 1 B 2 C 3 D 4 E 5 6 Tra li resto, un facile ragionamento mostra che questo è l’unico modo di fare l’assegnazione dei lavori. La seconda situazione descritta è, invece più complicata; alcune sue possibili rappresentazioni sono le seguenti: A 1 A 1 A 1 B 2 B 2 B 2 C 3 C 3 C 3 D 4 D 4 D 4 E 5 E 5 E 5 Come si può verificare con un po’ di lavoro, non si può passare da una situazione all’altra semplicemente permutando lettere e numeri; ad esempio, nel secondo e nel terzo caso, dal numero 1 partono 4 linee, cosa che non succede per nessun numero del primo caso, del resto, nel secondo caso dal numero 2 parte una sola linea, mentre negli altri due casi da ogni numero ne partono sempre almeno 2. Eppure, in tutti questi casi, l’assegnazione A→2 B→3 C→4 D→5 E→1 risolve il problema. Vi sono altre situazioni possibili, che, come quelle sopra, non si ottengono tra loro scambiando le persone o i lavori; in ciascuna di queste è possibile assegnare ad ogni persona un lavoro diverso. Può essere un esercizio interessante trovare quali sono queste altre configurazioni. 2.3 Scultura vs Pittura Non avendo noi troppe velleità artistiche, indichiamo gli argomenti con i numeri da 1 a 10 e, per ora, indichiamo semplicemente i collegamenti tra loro, senza preoccuparci di dove si intersecano le linee. Otteniamo, ad esempio, una delle seguenti figure. 4 3 5 2 2 3 7 8 6 1 6 9 7 10 8 4 9 10 5 7 1 Evidentemente, nessuna di queste due figure può andar bene come dipinto, per il direttore del museo; meno evidente è mostrare che non è possibile ottenere una figura che rappresenti la situazione descritta e in cui le linee non si intersechino. 2.4 Controllando gli allarmi Ormai non provocherà grande stupore rappresentare le stanze con un po’ di cerchietti e le porte con collegamenti tra questi; la richiesta che facciamo questa volta è un percorso che utilizzi tutte le linee della figura e parta e finisca nella stessa stanza. Riportiamo il disegno fatto nel primo problema: 2 7 13 3 8 12 18 17 14 19 6 1 16 9 4 20 11 15 10 5 Supponiamo di partire dalla stanza 1 e di andare nella stanza 2; in questo modo avremo utilizzato la linea tra queste, che quindi andrà eliminata. Ora, sia che andiamo in 3 o in 7 da 2, avremo utilizzato anche un’altra linea uscente da 2 e quindi ne rimarrà solo una. Questo vuol dire che, per usare quest’ultima linea, dovremo andare da un’altra stanza alla numero 2 e a questo punto non potremo più muoverci. Quindi non riusciremo mai a tornare alla 1. Se anche dalla 1 fossimo andati alla 5 o alla 6, avremmo potuto fare lo stesso ragionamento, quindi il cammino richiesto non si può realizzare. Come accennato, nel caso di 20 stanze in cui ognuna è collegata ad altre 4, la risposta è forse più facile, in quanto il cammino è possibile. Lasciamo come esercizio di trovarlo. 8 7 13 8 12 2 3 17 18 14 16 1 6 19 20 4 5 9 10 15 2.5 11 Ristrutturazioni Cerchiamo di capire come potrebbe essere fatto il nuovo museo. Con 21 stanze, in cui ognuna è collegata ad altre 3; questo vuol dire che in ogni stanza ci devono essere 3 porte verso altre stanze. Quindi, in una eventuale rappresentazione del museo con cerchi e linee, avremo 21 cerchi e da ognuno di essi 3 linee; quindi ci saranno 3 ⋅ 21 linee? Beh, quasi, in quanto ogni linea unisce due cerchi e quindi in questo modo viene contata due volte; quindi dovremmo avere 3 ⋅ 21/2 linee (ovvero, porte), ma questo numero non è intero. Quindi la ristrutturazione non è possibile. Del resto, non possiamo nemmeno avere 19 stanze ognuna collegata ad altre 5 perchÈ dovremmo avere 5 ⋅ 19/2 porte, che non è possibile. Ora, veniamo all’ultimo progetto. Sappiamo che si può costruire un museo di 20 stanze, in cui ognuna è collegata ad altre 4, visto che lo abbiamo disegnato nel paragrafo precedente; il problema è inserire un altro collegamento. Questo aumenterebbe il numero di porte di due stanze e quindi non va bene; dunque questa costruzione non funziona. Ora, proviamo a contare quante porte ci dovrebbero essere: in 19 stanze avremo 4 porte e in una sola ne avremo 5, quindi 19⋅4+5 = 76+5 = 81 è il doppio del numero delle porte (per lo stesso ragionamento di prima), ma è un numero dispari e quindi ci vorrebbero 81/2 porte, che non è possibile. Insomma, queste ristrutturazioni non si possono proprio fare. 2.6 Vicini di casa Rappresentiamo il direttore e i suoi dipendenti con i numeri da 1 a 6 (non ve lo sareste mai aspettato, vero?) e disegnamo un tratto rosso tra quelli che si conoscono, un tratto blu tra quelli che non si conoscono. Quello che sostiene il direttore è che possiamo sempre trovare un triangolo blu o un triangolo rosso. Ad esempio, potremmo ottenere una situazione del genere: 9 3 2 4 1 5 6 In questo caso, vi sono 3, 5, 6 che si conoscono l’un l’altro, mentre tra 2, 4, 5 nessuno conosce gli altri due. Purtroppo, ci sono molti modi di colorare le 15 linee che collegano 6 punti e non sarebbe molto conveniente esaminarli tutti per verificare che in ognuno ci sono dei triangoli di un solo colore. Cerchiamo di ragionare: prendiamo il cerchio 1; da lui escono 5 linee. Dovendo queste essere blu o rosse, ce ne saranno tre dello stesso colore; poniamo ce ne siano tre blu (se ce ne sono tre rossi, basta scambiare in quel che segue le parole blu e rosso) che collegano i cerchi i, j, k con 1 (nel nostro esempio, 3, 5, 6). Allora, se una delle linee tra i e j, tra j e k o tra k e i è blu, abbiamo il nostro triangolo blu; altrimenti tutte queste linee sono rosse (come accade nell’esempio), ma allora i, j, k sono i vertici di un triangolo rosso. Quindi, in ogni caso, abbiamo un triangolo monocromatico. E’ interessante notare che con 5 persone non è più vero nulla: nella figura seguente non c’è nessun triangolo tutto rosso o tutto blu. 2 3 1 4 5 3 Un po’ di teoria In tutti i problemi che abbiamo esaminato ci siamo serviti (in maniera più o meno naturale) di figure con pallini e linee; le informazioni che volevamo trasmettere erano legate a come erano fatti i collegamenti tra questi pallini. Ecco dunque il concetto di grafo: un grafo è un insieme di vertici (i pallini) collegati da archi (o lati ); un arco sarà, formalmente, la coppia di vertici che congiunge. Per ora, i collegamenti tra i vertici non avranno una direzione, quindi l’arco (1, 2) e l’arco (2, 1) saranno la stessa cosa. Inoltre, per semplicità, escluderemo che possa esistere più di un arco tra due vertici o un arco da un vertice in sÈ; graficamente, escluderemo i due seguenti casi 10 A 1 B Un grafo che rispetta queste condizioni si dirà semplice; se ammetteremo che si presentino configurazioni come la prima, parleremo di grafi con archi multipli, mentre se ammetteremo configurazioni come la seconda, parleremo di grafi con loops (dall’inglese, tradotto a volte con cappi ). Nel caso si vogliano distinguere l’arco (1, 2) e l’arco (2, 1), potremo mettere delle freccie lungo gli archi e parleremo di grafi diretti (o orientati); simili strutture possono essere utili, ad esempio, per descrivere i collegamenti tra diversi luoghi, nel caso che alcune vie di comunicazione possano essere percorse solo in un senso. D C E A F G B Ribadiamo che, se non diversamente specificato, considereremo solo grafi senza archi multipli, senza cappi, non diretti, ovvero semplici. In maniera formale, un grafo semplice G è una coppia (V, E), dove V è un insieme qualsiasi (l’insieme dei vertici) e E è un insieme di sottoinsiemi di 2 elementi di V . Ad esempio, V = {1, 2, 3, 4, 5} E = {{1, 2}, {1, 3}, {2, 3}, {1, 4}, {2, 5}, {1, 5}} rappresenta il grafo 2 3 1 4 5 3.1 Qualche grafo speciale Il primo grafo che viene in mente alla fantasia malata del matematico è, ovviamente, un caso degenere, ovvero il grafo nullo su n vertici, che è fatto da n vertici e nessun arco (alcuni esempi nella Figura 1). Non molto interessante, vero? Il suo opposto è il grafo completo su n vertici che è un grafo formato da n vertici e da tutti gli archi possibili. Di solito si indica con Kn . PoichÈ deve esistere un arco per ogni coppia di vertici, il numero di archi sarà proprio il numero di coppie possibili tra n vertici, ovvero n(n − 1)/2; la Figura 2 riporta i grafi completi per i primi 5 valori di n. Come si può notare, K1 è anche il grafo nullo con un vertice. 11 (a) n = 1 (b) n = 2 (c) n = 3 Figura 1: Grafi nulli (a) K1 (b) K2 (c) K3 (d) K4 (e) K5 Figura 2: Grafi completi Un’altra classe di grafi interessante è quella formata dai grafi ciclici ; il grafo ciclico su n vertici, indicato di solito con Cn , è un grafo in cui ogni vertice è estremo esattamente di due archi. Tali grafi sono, in pratica, i poligoni di n lati, come si può vedere nella Figura 3. (a) C3 (b) C4 (c) C5 (d) C6 Figura 3: Grafi ciclici Un grafo lineare 2 su n vertici, indicato con Ln , è descritto dai seguenti insiemi di vertici e archi: V = {1, 2, . . . , n} E = {{1, 2}, {2, 3}, . . . , {n − 1, n}} Alcuni esempi nella Figura 4. (a) L1 (b) L2 (c) L3 (d) L4 Figura 4: Grafi lineari Citiamo poi, per completezza, il grafo bipartito completo su (m, n) vertici; tale grafo si indica con Km,n ed è composto da due insiemi di vertici V1 e V2 contenenti m ed n vertici. Ogni vertice di V1 è collegato a tutti i vertici di V2 e viceversa, mentre non vi sono archi tra due vertici di V1 o di V2 . In Figura 5 possiamo vedere alcuni esempi. Inoltre, vi sono 5 grafi associati ai 5 solidi platonici (tetraedro, ottaedro, cubo, dodecaedro, icosaedro), i cui vertici corrispondono ai vertici dei solidi e i cui archi rappresentano gli spigoli; li riportiamo nella Figura 6. 2 Questo nome non è standard: in inglese, questo tipo di grafo viene chiamato path graph (grafo cammino) e indicato con Pn 12 (a) K3,1 (b) K3,2 (c) K3,3 Figura 5: Grafi bipartiti completi (a) Tetraedro (b) Ottaedro (c) Cubo (d) Dodecaedro (e) Icosaedro Figura 6: Grafi dei solidi platonici 3.2 Grafi isomorfi, sottografi, cicli e cammini Negli esempi con cui abbiamo cominciato queste note, abbiamo più volte notato che grafi che si corrispondevano a meno di permutare i nomi dei vertici erano, ai fini dei nostri problemi, equivalenti. Diciamo quindi che due grafi sono isomorfi se c’è un modo di far corrispondere i vertici dell’uno con i vertici dell’altro, in modo da portare vertici collegati da un arco in vertici collegati da un arco. Consideriamo i due grafi riportati nella Figura 7. Se facciamo corrispondere i due insiemi di vertici nel modo seguente 1→1 2→4 3→7 4→3 5→6 6→2 7→5 otteniamo che i lati dell’ettagono nella Figura 7a diventano le diagonali (che sottendono 3 lati) dell’ettagono nella Figura 7b, mentre le diagonali (che sottendono 2 lati) dell’ettagono nella Figura 7a diventano i lati dell’ettagono nella Figura 7b. Anche i tre grafi della Figura 8 sono isomorfi. Formalmente, dati due grafi G = (V, E) e G′ = (V ′ , E ′ ), questi si dicono isomorfi se esiste una funzione bigettiva f ∶V →V′ tale che {v1 , v2 } ∈ E se e solo se {f (v1 ), f (v2 )} ∈ E ′ . 13 3 3 2 2 4 4 1 1 5 5 7 7 6 6 (a) (b) Figura 7 (a) (b) (c) Figura 8 Un sottografo di un grafo G è un grafo formato da alcuni dei vertici di G e da alcuni degli archi di G, ovvero H ⊆ G se H = (W, F ) e W ⊆ V , F ⊆ E. Ad esempio, K3,3 è un sottografo di K7 , come si vede nella Figura 9, dove K3,3 è evidenziato in rosso all’interno di K7 . Figura 9 Ora abbiamo tutti gli strumenti per definire cosa sono un ciclo e un cammino, all’interno di un grafo; un ciclo in G è un sottografo di G isomorfo a Cn per qualche n (che si dirà lunghezza del ciclo), mentre un cammino in G è un sottografo di G isomorfo a Ln per qualche n (che si dirà lunghezza in vertici del cammino, mentre la sua lunghezza in archi sarà n − 1). Ad esempio, nel grafo riportato nella Figura 10, si trovano 7 cicli, mostrati singolarmente nelle Figure 11a-11g. Per quanto riguarda invece il concetto di cammino, esso può essere inteso come una successione di vertici, senza ripetizioni, di modo che due vertici consecutivi in tale successione siano collegati da un arco nel grafo; possiamo inoltre dire che un ciclo è un cammino chiuso, ovvero che parte e arriva nello stesso vertice. Gli estremi di un cammino sono i vertici che, nel sottografo isomorfo a Ln , appartengono ad un solo arco; due vertici di un grafo si dicono connessi tra loro se esiste un cammino che li ha come estremi, un grafo è connesso se ogni coppia di vertici è connessa. 14 H E F A G B C D Figura 10 E E A E B A B (a) A C B (b) E C C (c) F B F E E C D (d) H F B (e) D C (f) D F G (g) Figura 11 Una generalizzazione di cammino è il concetto di percorso: un percorso è, formalmente, una successione di vertici, non tutti distinti, di modo che due vertici consecutivi nella successione siano collegati da un arco nel grafo. Ad esempio, nel grafo della Figura 12 possiamo trovare un cammino che contiene tutti i vertici e un percorso che passa per tutti gli archi. Esplicitamente, il cammino ABCDEF G contiene tutti i vertici ed è un cammino in quanto è una successione di vertici tutti distinti, in cui due successivi sono collegati da un arco (ad esempio ABAF non è un cammino, perché ripete il vertice A, mentre AEB non lo è perché non esiste l’arco tra A e E; invece, il percorso EF DEGDCF GCBF ABG passa per tutti gli archi una e una volta sola ed è un percorso in quanto tra due vertici consecutivi nell’elenco appena fornito c’è sempre un arco del grafo. F A B C D E G Figura 12: Cammini e percorsi 3.3 I numeri di un grafo Vi sono alcune quantità numeriche associate ad un grafo che possono permettere di determinare quando due grafi sono o meno isomorfi. Ad esempio, il numero di vertici e il numero di archi di un grafo; infatti, se G e G′ sono isomorfi, hanno lo stesso numero di vertici e di archi. Questi due numeri si indicano, solitamente, con v(G) e e(G) (questo secondo viene dall’inglese edge) o con v e e se non ci sono ambiguità su quale grafo stiamo considerando. 15 Un altra caratteristica sicuramente comune a due grafi isomorfi è il numero di archi che hanno un certo vertice come estremo; si dice valenza del vertice v nel grafo G = (V, E) (oppure grado di v in G), e si indica con dG (v) (o semplicemente d(v)), il numero di archi che escono dal vertice v, ovvero il numero di elementi di E che contengono v. Se G = (V, E) e G′ = (V ′ , E ′ ) sono isomorfi, tramite una funzione bigettiva f ∶ V → V ′ , allora per ogni v ∈ V deve valere dG (v) = dG′ (f (v)). Un grafo in cui tutti i vertici hanno la stessa valenza (poniamo sia k), si dice regolare (o k−regolare); il grafo completo Kn è (n − 1)−regolare, il grafo nullo è 0−regolare, il grafo ciclico Cn è 2−regolare, il grafo bipartito completo Kn,n è n−regolare, i grafi associati ai poliedri regolari sono regolari. In questi termini, gli estremi di un cammino sono gli unici due vertici che hanno valenza 1 al suo interno. La valenza può anche essere interpretata come il numero di vertici collegati ad uno dato tramite un arco; in quest’ottica è ovvio che dG (v) ≤ v(G) e dunque un grafo k−regolare ha almeno k + 1 vertici. Diciamo circonferenza di G la massima lunghezza di un ciclo in G (indicata con circ(G)); definiamo inoltre girth di G (o giro o buco) la minima lunghezza di un ciclo in G (e la indichiamo con g(G)). Nel caso non vi siano cicli in G, si pone convenzionalmente g(G) = −∞ e circ(G) = 0. Tra i vertici di un grafo connesso possiamo definire una distanza: dG (v, w) è la minima lunghezza (in archi) di un cammino tra v e w. Ovviamente, dG (v, w) = 0 se e solo se v = w; inoltre, altrettanto ovviamente dG (v, w) = dG (w, v). Infine, se ho tre vertici v, w, u, sicuramente, un cammino di minima lunghezza da v a u unito ad un cammino di minima lunghezza da u a w produce un cammino tra v e w (forse non di minima lunghezza) quindi ho dG (v, w) ≤ dG (v, u) + dG (u.w) E queste tre proprietà ci dicono che abbiamo ragione a chiamare dG distanza. 15 10 5 9 4 14 3 8 2 13 1 7 6 12 11 17 16 18 19 20 Figura 13: Il solito grafo Facciamo alcuni esempi: consideriamo il grafo del museo riportato nella Figura 13 e calcoliamo le distanze tra alcuni vertici. Cominciamo col vedere le distanze dal vertice 1: i vertici 2, 5, 6 sono collegati direttamente a lui, quindi dG (1, 2) = dG (1, 6) = dG (1, 5) = 1 16 Ora, al vertice 2 sono collegati 3, 7, al vertice 6 sono collegati 12, 11, al vertice 5 sono collegati 4, 10, quindi dG (1, 3) = dG (1, 7) = dG (1, 12) = dG (1, 11) = dG (1, 10) = dG (1, 4) = 2 Proseguendo in questo modo si ottiene che dG (1, 8) = dG (1, 13) = dG (1, 17) = dG (1, 16) = dG (1, 15) = dG (1, 9) = 3 e infine che dG (1, 14) = dG (1, 18) = dG (1, 20) = 4 dG (1, 19) = 5 La massima distanza possibile tra due vertici si chiama diametro di G; quindi in questo caso diam(G) = 5. 3.4 Esercizi Esercizio 1 Trovare quali dei grafi in figura 14 sono isomorfi, costruendo l’isomorfismo se esiste o dimostrando che non può esistere. 3 2 4 3 2 1 4 5 6 5 6 4 6 (d) 5 6 (c) 3 2 1 4 5 1 (b) 2 2 1 4 (a) 3 3 3 2 1 4 5 6 (e) 1 5 6 (f) Figura 14: Esercizio 1 Esercizio 2 Scrivere gli insiemi di archi e vertici per i grafi della figura 14. Esercizio 3 Elencare tutti i grafi con 4 vertici, a meno di isomorfismo. Esercizio 4 Dimostrare che non ci può essere un grafo con 5 vertici di cui uno di valenza 5, uno di valenza 1, uno di valenza 4 e due di valenza 2. Esercizio 5 Disegnare i 7 sottografi non isomorfi di K3 . Esercizio 6 Trovare 6 grafi con 5 vertici e 5 archi tutti tra loro non isomorfi. Esercizio 7 Dimostrare che ogni percorso W tra due vertici x, y ∈ V (G) contiene un cammino tra x, y come sottografo. Ovvero che togliendo vertici e archi a W si ottiene un cammino tra x e y. 17 Il complementare di G = (V, E) è il grafo Gc = (V c , E c ) che ha come vertici gli stessi di G (e quindi V c = V ) e come archi tutti e soli gli archi che non stanno in E. Ovvero, (x, y) ∈ E c se e solo se (x, y) ∈/ E. Esercizio 8 Trovare un grafo G di 5 vertici isomorfo al suo complementare. Esercizio 9 Dimostrare che il complementare di un grafo disconnesso è connesso. Esercizio 10 Dimostrare che non esiste un grafo di 6 vertici isomorfo al proprio complementare. 4 Alcune proprietà elementari Per mostrare quali siano le tecniche e le problematiche della teoria dei grafi, raccogliamo in questa sezione alcuni risultati che legano le quantità e le proprietà definire nelle pagine precedenti. Supporremo, nel seguito, che ogni grafo abbia un numero finito di vertici. Cominciamo col dire che, se da ogni vertice escono abbastanza archi, il grafo è connesso. Proposizione 1 Un grafo di n vertici in cui ogni vertice ha valenza almeno n/2 è connesso. Dim : Prendiamo due vertici v e w e cerchiamo di mostrare che c’è un cammino tra loro. Consideriamo l’insieme dei vertici che si possono raggiungere da v, ovvero quelli per cui esiste un cammino tra essi e v: R(v) = {u ∶ esiste un cammino da v a u} e allo stesso modo consideriamo i vertici che si possono raggiungere da w R(w) = {u ∶ esiste un cammino da w a u} Sappiamo che da v escono almeno n/2 archi e cosı̀ pure da w; inoltre, R(v) contiene v e R(w) contiene w. Quindi R(v) e R(w) hanno almeno n/2 + 1 elementi a testa. Del resto, l’unione di R(v) e R(w) è contenuta nell’insieme dei vertici di G, quindi ha al massimo n elementi. Dalla teoria degli insiemi sappiamo che ∣R(v) ∪ R(w)∣ = ∣R(v)∣ + ∣R(w)∣ − ∣R(v) ∩ R(w)∣ e quindi l’intersezione deve avere almeno due elementi, perchè si deve avere n ≥ ∣R(v)∣ + ∣R(w)∣ − ∣R(v) ∩ R(w)∣ ≥ n/2 + 1 + n/2 + 1 − ∣R(v) ∩ R(w)∣ Se questi due elementi sono v e w, vuol dire che c’è un arco da v a w e quindi abbiamo trovato il nostro cammino; se invece c’è un elemento u nell’intersezione, questo vuol dire che u ∈ R(v), quindi c’è un cammino da v a u e contemporaneamente u ∈ R(w), quindi c’è un cammino da u a w. Mettendo assieme questi due cammini, otteniamo un cammino da v a w, come volevamo. ◻ Osserviamo che non è detto il viceversa: non tutti i grafi connessi hanno ogni vertice di valenza maggiore o uguale a n/2. Si consideri ad esempio il grafo ciclico Cn o il grafo lineare Ln ; essi hanno vertici di valenza 1 o 2, sono connessi e possono avere quanti vertici vogliamo. Osserviamo anche che il risultato non è più vero se mettiamo qualcosa meno di n/2: il grafo nella Figura 15 ha 6 vertici, ognuno di valenza 2, ed è sconnesso; infatti non si può andare da uno dei vertici 1, 2, 3 a uno dei vertici 4, 5, 6 con un cammino. 2 5 1 4 6 3 Figura 15: Grafo sconnesso con 6 vertici di valenza 2 18 Proposizione 2 In un grafo il numero di vertici di valenza dispari è pari. Dim : Per dimostrare questa proposizione, contiamo in un modo un poco complicato il numero di archi di un grafo. Iniziamo con l’indicare con ni il numero di vertici di valenza i; da uno qualunque di questi vertici usciranno dunque i archi, per un totale di ini archi. Quindi, potremmo credere che il numero di archi del grafo sia s = 0n0 + 1n1 + 2n2 + . . . + mnm dove m è la massima valenza di un vertice del grafo. Però, in realtà, il numero scritto è il doppio del numero di archi: infatti ogni arco compare nella conta due volte, una per ogni suo estremo. Quindi il numero di archi è s 2 Questo ci dice che s è un numero pari; osserviamo che s = (0n0 + 2n2 + 4n4 + . . .) + (1n1 + 3n3 + 5n5 + . . .) la prima parentesi è somma di numeri pari e dunque è pari, perciò deve esserlo anche la seconda. Ora osserviamo che 1n1 + 3n3 + . . . = (n1 + n3 + . . .) + (2n3 + 4n5 + . . .) il primo membro è pari, la seconda parentesi è pari, quindi anche n1 + n3 + . . . è pari, ma questo è esattamente il numero di vertici di valenza dispari, che quindi è pari. ◻ Dalla dimostrazione otteniamo anche la formula ∑ ini = 2e i∈N ma è anche facile vedere che ∑ ini = ∑ d(v) i∈N v∈G ovvero che la somma a sinistra non è altro che la somma di tutte le valenze dei vertici del grafo. Anche questa è quindi uguale al doppio del numero degli archi. Proposizione 3 Se ogni vertice di G ha valenza almeno k ≥ 2, allora esistono un cammino di lunghezza k e un ciclo di lunghezza k + 1. Dim : Sia P = {x1 , x2 , . . . , xm } un cammino in G, rappresentato tramite la successione dei suoi vertici, di modo che tra xi e xi+1 vi sia un arco e che xi ≠ xj se i ≠ j. Supponiamo che m < k e consideriamo l’insieme N (xm ) = {y ∈ V ∣ dG (xm , y) = 1} detto intorno di xm e fatto da tutti i vertici che sono connessi a xm con un arco. Allora, poiché per ipotesi ∣N (xm )∣ ≥ k, c’è almeno un vertice z ∈ N (xm ) che non è in P ; dunque possiamo porre xm+1 = z e costruire il cammino più lungo P ′ = {x1 , . . . , xm , xm+1 } Questa costruzione funziona finché ho un cammino di lunghezza minore di k e dunque ci garantisce che il più lungo cammino in G ha lunghezza almeno k. Per la seconda parte, supponiamo che P = {x1 , . . . , xm } sia un cammino massimale, ovvero non estendibile (quindi con m > k); il fatto che non si possa estendere vuol dire che N (xm ) contiene solo vertici di P . Sempre per l’ipotesi sulla minima valenza di ogni vertice, N (xm ) avrà almeno k elementi, quindi il più piccolo indice i per cui xi appartiene a N (xm ) sarà al più n − k. Consideriamo quindi il ciclo C = {xi , xi+1 , . . . , xm , xi } dove i è l’indice descritto sopra; per quanto detto i ≤ n − k e dunque la lunghezza di C sarà almeno k + 1. ◻ Nel dimostrare la presenza di un ciclo di lunghezza almeno k + 1, abbiamo sfruttato l’esistenza di un cammino che non può essere prolungato, che è garantita dall’assunzione che il grafo abbia un numero finito di vertici. Il risultato precedente ci dice che la circonferenza di G è sicuramente maggiore della minima valenza di un suo vertice; vediamo ora il legame tra girth e diametro. 19 ⋯ 1 ⋯ 2 i m-2 m-1 m Figura 16: Cammino e ciclo di lunghezza almeno k e k + 1. Proposizione 4 In un grafo G con almeno un ciclo si ha g(G) ≤ 2diamG + 1. Dim : Se g(G) ≥ 2diamG + 2, allora esiste un ciclo C di lunghezza 2diamG + 2; presi due vertici x, y di C, si ha dG (x, y) < diamG + 1, per definizione di diametro. Quindi esiste un cammino {x, x1 , . . . , xk , y} di lunghezza minore di diamG + 1. Se ora scegliamo x, y che distano esattamente diam G + 1 in C, otteniamo che il cammino minimo che li congiunge non sta in C, quindi unendo il cammino minimo che li congiunge in G al cammino minimo che li congiunge in C otteniamo un ciclo di lunghezza al più 2diam G + 1. ◻ Per comprendere meglio il legame tra i vari numeri che abbiamo associato, vediamo ora un risultato che lega girth, valenza e numero dei vertici. Lo riportiamo anche per il metodo di dimostrazione, che contiene alcune idee molto interessanti. Proposizione 5 Un grafo G k−regolare con g(G) = 2m + 1 dispari ha almeno 1 + k + k(k − 1) + . . . + k(k − 1)m−1 vertici Dim : Sia x un vertice di G; definiamo gli insiemi Ni (x) = {y ∈ V (G) ∣ dG (x, y) = i} per i = 0, . . . , m. Notiamo che ∣N0 (x)∣ = 1 e ∣N1 (x)∣ = k (in quanto G è k−regolare); inoltre, Ni (x) e Nj (x) sono disgiunti se i ≠ j. Da ogni y ∈ Ni (x) (con i ≥ 1) parte uno e un solo arco che ha l’altro estremo in Ni−1 (x); se infatti vi fossero due archi, da y a z1 e da y a z2 con z1 , z2 ∈ Ni−1 (x), allora potremmo andare da x a z1 con i − 1 archi, da z1 a y, da y a z2 e poi da z2 a x con i − 1 archi, ottenendo un ciclo di lunghezza 2i ≤ 2m < g(G), il che è assurdo. D’altra parte, deve esistere almeno un arco da y a un punto di Ni−1 (x), per la definizione degli insiemi Ni (x). Ora, questo significa che ad ogni vertice di Ni (x) corrispondono k − 1 vertici di Ni+1 (x) e a vertici diversi di Ni (x) corrispondono insiemi disgiunti di vertici di Ni+1 (x). Dunque ∣Ni+1 (x)∣ = (k − 1)∣Ni (x)∣, se i ≥ 1, e quindi ∣Ni (x)∣ = k(k − 1)i−1 se i ≥ 1; ora, poiché gli Ni sono tutti disgiunti, di certo V (G) ⊇ N0 (x) ∪ N1 (x) ∪ . . . ∪ Nm (x) quindi ∣V (G)∣ ≥ 1 + k + k(k − 1) + . . . + k(k − 1)m−1 come volevamo dimostrare. ◻ E’ abbastanza notevole che la stessa espressione intervenga come massimo possibile per il numero di vertici di un grafo k−regolare di cui sia fissato il diametro m = diamG. Proposizione 6 Un grafo G k−regolare con diamG = m ha al più 1 + k + k(k − 1) + . . . + k(k − 1)m−1 vertici. Dim : Sia x ∈ V (G), allora N0 (x) ∪ N1 (x) ∪ . . . ∪ Nm (x) = V (G) Inoltre, essendo il grafo k−regolare, al più si avrà ∣Ni+1 (x)∣ ≤ (k − 1)∣Ni (x)∣ per i ≥ 1. Quindi ∣V (G)∣ ≤ 1 + k + k(k − 1) + . . . + k(k − 1)m−1 come volevamo dimostrare. ◻ 20 4.1 Alberi Un albero è un grafo connesso che non contiene cicli; una foresta è un grafo che non contiene cicli. In particolare, una foresta è un grafo le cui componenti connesse sono alberi. Diremo nel seguito che il grafo G′ = (V ′ , E ′ ) è ottenuto dal grafo G = (V, E) eliminando il vertice v se V ′ = V ∖ {v} e E ′ è formato da tutte le coppie di E che non contengono v. Ad esempio, eliminando il vertice 1 dal grafo della figura 17a otteniamo il grafo della figura 17b. 4 3 4 3 1 5 2 5 6 7 2 6 (a) 7 (b) Figura 17: Eliminazione del vertice 1. Allo stesso modo, aggiungendo un vertice ad un sottografo, si aggiungono anche tutti gli archi dal sottografo al nuovo vertice. Togliere un arco è invece una operazione molto più semplice: dal grafo G = (V, E), dato un arco e ∈ E, otteniamo togliendo e il grafo G′ = (V, E ′ ) con E ′ = E ∖ {e}; ovviamente G′ è un sottografo di G Proposizione 7 Sia G un grafo connesso di n vertici, allora esiste un sottografo T con n vertici che è un albero. Dim : Se G è un albero, allora poniamo T = G; se G non è un albero, conterrà un ciclo. Eliminando un arco di questo ciclo otteniamo un sottografo G′ che è ancora connesso. Se G′ è un albero, poniamo G′ = T , altrimenti contiene un ciclo e possiamo proseguire. In questo modo, in un numero finito di passi (poiché G ha al più n(n − 1)/2 archi), arriviamo ad ottenere un albero T come sottografo di G. ◻ Quindi possiamo affermare che G = G[T ]; diciamo allora che T è un albero generatore per G. Studiamo alcune proprietà degli alberi. Proposizione 8 Per un grafo G, le seguenti affermazioni sono equivalenti. (i) G è un albero. (ii) Ogni due vertici di G sono collegati da un unico cammino in G. (iii) G è minimalmente connesso, ovvero togliendo un qualunque arco si sconnette G. (iv) G è massimalmente aciclico, ovvero G non contiene cicli, ma se si aggiunge un arco tra due vertici non ancora adiacenti, il grafo ottenuto ha almeno un ciclo. Dim : Dimostriamo che il fatto che G sia un albero è equivalente alle altre tre affermazioni (i) ⇔ (ii) Se G è un albero, è connesso, quindi tra due vertici x, y ∈ V (G) c’è almeno un cammino; se ci fossero due cammini P = {x, x1 , . . . , xk , y} e P ′ = {x, y1 , . . . , yh , y}, potremmo considerare il più piccolo i tale che xi ≠ yi e poi li più piccolo j > i tale che yj ∈ V (P ), allora prendendo il cammino in P ′ da yi−1 = xi−1 a yj e poi seguendo P da yj a xi−1 = yi−1 si otterrà un ciclo, il che non è possibile se G è un albero. Del resto, se in G tra due vertici c’è sempre uno o un solo cammino, G è connesso e G non può contenere cicli, altrimenti tra due vertici del ciclo ci saranno almeno due cammini, le due parti in cui da essi viene diviso il ciclo. 21 (i) ⇔ (iii) Come già detto, G è connesso in quanto è un albero. Sia e = (x, y) un arco di G; supponiamo che, pur togliendo e da G, questo rimanga connesso. Allora esiste un cammino P da x a y che non contiene e, ma dunque P unito all’arco e (percorso nella direzione opportuna) è un ciclo di G, che non può contenere cicli in quanto albero e dunque togliendo l’arco e, G diventa sconnesso. Se d’altra parte G è minimalmente connesso, è connesso e non può contenere cicli, infatti togliendo un arco da un ciclo questo rimane connesso. (i) ⇔ (iv) Essendo un albero, G non contiene cicli. Supponiamo che aggiungendo un arco (x, y) tra due vertici inizialmente non adiacenti non ci siano comunque cicli; questo vuol dire che il grafo cosı̀ ottenuto è ancora un albero, ma per quanto dimostrato un albero è minimalmente connesso e dunque togliendo un arco si disconnette. Se ora togliamo l’arco (x, y), riotteniamo G, che deve quindi essere sconnesso, ma questo è assurdo. Del resto, se G è massimalmente aciclico, G è connesso, altrimenti aggiungendo un arco tra vertici di due componenti connesse diverse non si otterrebbe nessun ciclo ed inoltre è aciclico. Dunque è un albero. ◻ Osserviamo che un sottografo connesso di un albero è un albero, in quanto, ad esempio, è ancora minimalmente connesso. Figura 18: Esempio di albero Dimostriamo ora una proposizione su come enumerare i vertici di un grafo connesso. Proposizione 9 I vertici di un grafo G connesso possono essere sempre enumerati come v1 , . . . , vn di modo che, per ogni i = 0, . . . , n − 1, il grafo ottenuto da G eliminando vn , . . . , vn−i è ancora connesso. Dim : Scegliamo un vertice v1 in G e sia v2 un vertice in N1 (v1 ); chiamiamo G1 il sottografo composto dal solo vertice v1 e G2 il sottografo composto da v1 , v2 e dall’arco che li congiunge. Notiamo che G1 è ottenuto da G eliminando tutti i vertici che non sono v1 e G2 è ottenuto da G eliminando tutti i vertici diversi da v1 , v2 . vk C ⋯ ⋯ ⋱ v1 ⋮ ⋯ H vj F ⋯ ⋮ ⋯⋰ vi Figura 19: In rosso il sottografo Gi , in blu il cammino P che termina con i vertici C, vk , H, vj , F, vi , dunque il vertice vi+1 sarà F , l’ultimo vertice di P non in Gi . Ora, supponiamo di aver trovato i vertici v1 , . . . , vi e sia Gi il sottografo che si ottiene da G eliminando gli altri vertici; supponiamo che i grafi G1 , . . . , Gi siano connessi. Vogliamo trovare il prossimo vertice vi+1 . Consideriamo v ∈ V (G) ∖ {v1 , . . . , vi } e sia P un cammino da v a vi (esiste 22 per ipotesi, poiché G è connesso); scegliamo come vi+1 l’ultimo vertice di P , percorrendolo da v a vi , che non sta in Gi (si veda anche la figura 19). In questo modo N1 (vi+1 ) contiene almeno un vertice di Gi e dunque Gi+1 (ottenuto da G eliminando i vertici diversi da v1 , . . . , vi+1 ) sarà connesso. In questo modo otteniamo una successione di vertici v1 , . . . , vn come richiesto. ◻ Il grafo ottenuto da G eliminando i vertici che non stanno in un certo sottoinsieme U ⊆ V (G) si dice sottografo di G generato da U e si indica con G[U ]; nella dimostrazione precedente, il sottografo Gi poteva essere indicato come G[v1 , . . . , vi ]. Ovviamente si ha G[v1 , . . . , vn ] = G. Se applichiamo tale enumerazione ad un albero, otterremo che ogni Gi sarà un albero e dunque il vertice vi avrà un solo vertice adiacente in Gi−1 (se ne avesse due, poiché ogni albero è connesso, si otterrebbe un ciclo in Gi ). Proposizione 10 Un grafo connesso di n vertici è un albero se e solo se ha n − 1 archi. Dim : Se G è un albero composto da 1 solo vertice, ovviamente ha 0 archi; se poi abbiamo dimostrato che ogni albero con i < n vertici ha i − 1 archi, dato G albero di n archi, da quanto detto sappiamo che Gn−1 è un albero di n − 1 vertici con n − 2 archi ed aggiungendo l’ultimo vertice vn (che, come detto, ha un solo vertice adiacente in Gn−1 ), aggiungeremo un solo arco, ottenendo che G ha n − 1 archi. D’altra parte, se G è un grafo connesso di n vertici con n − 1 archi, posso togliere archi fino ad ottenere un grafo G′ connesso e senza cicli, quindi un albero; ora G′ ha n vertici, dunque ha n − 1 archi, per quanto appena detto. Ma quindi G′ = G e G è un albero. ◻ 4.2 Grafi bipartiti Un grafo si dice bipartito (o in generale r−partito) se esistono due (o r) sottoinsiemi V1 , V2 di V (G) (o V1 , . . . , Vr ) disgiunti, la cui unione sia V (G) e tali che non esista un arco di E(G) tra due vertici dello stesso sottoinsieme Vi . Esempi di grafo bipartito sono quelli nella figura 5; un esempio di grafo tripartito è presentato nella figura 20. 3 4 2 5 1 6 8 7 Figura 20: Grafo tripartito con V1 = {1, 2}, V2 = {3, 4, 5}, V3 = {6, 7, 8}. C’è una comoda descrizione dei grafi bipartiti, che nasce dall’osservazione che un grafo bipartito non può contenere cicli di lunghezza dispari. Proposizione 11 Un grafo è bipartito se e solo se non contiene cicli di lunghezza dispari. Dim : Innanzitutto, dimostriamo che un grafo bipartito non contiene cicli di lunghezza dispari. Osserviamo che un cammino di lunghezza 1 è un arco e dunque collega un vertice di V1 a un vertice di V2 ; dunque un cammino di lunghezza 2 ha gli estremi nello stesso sottoinsieme Vi . In generale, dato un cammino P = {x1 , . . . , xn }, se x1 sta (ad esempio) in V1 , x2 starà in V2 , poi forzatamente x3 sarà in V1 e cosı̀ via; dunque, a seconda che n sia pari o dispari, xn sarà in V1 o in V2 . Se dunque C è un ciclo {x1 , x2 , . . . , xn , x1 } di lunghezza n dispari, il cammino P = {x1 , . . . , xn }, supponendo che x1 sia in V1 , avrà l’estremo xn in V1 , per quando detto prima, e dunque x1 si dovrà trovare in V2 , ma questo è assurdo. Dunque la lunghezza del ciclo deve essere pari. 23 Il viceversa è ben più complicato; procediamo per passi. In un grafo senza cicli di lunghezza dispari, due cammini disgiunti tra i medesimi vertici hanno entrambi lunghezza pari o lunghezza dispari. Due cammini sono disgiunti se hanno in comune solo gli estremi; se vi fossero, tra gli stessi vertici, due cammini uno di lunghezza pari e uno di lunghezza dispari disgiunti, percorrendo prima uno e poi l’altro a ritroso si otterrebbe un ciclo di lunghezza dispari, il che è assurdo. In un tale grafo, due cammini tra i medesimi estremi hanno entrambi lunghezza pari o dispari. Quello che vogliamo dimostrare è equivalente a dire che la differenza tra le lunghezze è pari; siano P = {x, v1 , . . . , vn , y} e P ′ = {x, w1 , . . . , wm , y} due cammini, allora esisterà il minimo i tale che vi ≠ wi . Se i > 1, si possono modificare i due cammini in P = {vi−1 , vi , . . . , vn , y} e P ′ = {wi−1 , wi , . . . , wm , y}, in quanto cosı̀ abbiamo diminuità le lunghezze della stessa quantità, dunque la differenza è rimasta la stessa; se i = 1, ovviamente questa operazione lascia i cammini invariati3 . Ora, supponiamo che v1 ≠ w1 ; esisterà un minimo j tale che wj ∈ V (P ), ovvero sia, esiste un k per cui vk = wj . I due cammini {x, v1 , . . . , vk } e {x, w1 , . . . , wj } sono cammini tra i medesimi estremi e disgiunti, quindi, secondo il risultato precedente, hanno entrambi un numero pari o dispari di archi; possiamo allora modificare i due cammini eliminando {x, v1 , . . . , vk−1 } da P e {x, w1 , . . . , wj−1 } da P ′ , in quanto le due parti eliminate hanno entrambe un numero pari o dispari di archi e dunque la differenza tra le lunghezze dei due nuovi cammini ha la stessa parità della differenza tra le lunghezze dei due cammini originali. Ripetendo queste due operazioni si arriva a ridurre P e P ′ a un solo punto, dunque la differenza tra le lunghezze è 0, che è pari. A questo punto, supponiamo che G sia connesso; se non lo fosse, potremmo considerare le singole componenti connesse, ovvero sottografi del tipo G[U ] che siano connessi ma che non siano contenuti in altri sottografi dello stesso tipo e connessi. Se queste sono bipartite, anche il grafo è bipartito. Scegliamo quindi un vertice x; ad ogni altro vertice y associamo 1 se un qualsiasi cammino da x a y ha lunghezza dispari e 2 se ha lunghezza pari. Per quanto detto sopra, tale definizione è ben posta; definiamo V1 come l’insieme dei vertici a cui abbiamo associato 1 e V2 l’insieme dei vertici a cui abbiamo associato 2. Due vertici a cui abbiamo associato, ad esempio, 1 non possono essere connessi da un arco, altrimenti esisterebbe un arco da x a uno dei due che ha lunghezza dispari e un arco da x all’altro che ha lunghezza pari. Dunque G è bipartito. ◻ Dalla dimostrazione della proposizione precedente si può ricavare anche la prossima proposizione, la cui dimostrazione è lasciata come esercizio. Chiamiamo ciclo indotto in G un sottografo del tipo G[U ] che sia un ciclo, ovvero isomorfo a Ck ; in altre parole, un ciclo indotto è un ciclo in cui due vertici sono adiacenti in G se e solo se lo sono nel ciclo. Proposizione 12 Un grafo è bipartito se e solo se ogni ciclo indotto ha lunghezza pari. 4.3 Esercizi Esercizio 1 Sia Vn l’insieme delle n−uple ordinate formate da 1 o 0. Ad esempio, per n = 3 si ha V3 = {(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1), (1, 1, 1)} Sia En l’insieme delle coppie (x, y) con x, y ∈ Vn in cui x e y differiscono per un solo elemento. Ad esempio, ((1, 0, 0), (1, 1, 0)) sta in E3 , ma ((1, 0, 0), (0, 1, 0)) no. Il grafo cubico n−dimensionale è Qn = (Vn , En ). Determinare numero di vertici e archi, valenza di ogni vertice, circonferenza, girth, diametro di G. Esercizio 2 Dimostrare che per ogni n ≥ 4 pari esiste un grafo trivalente con n vertici. Esercizio 3 Un grafo con 2n vertici e n2 + 1 archi contiene un sottografo isomorfo a K3 , ovvero un triangolo. Esercizio 4 Dimostrare che in un grafo con almeno due vertici ci sono sempre due vertici con la stessa valenza. 3 Si ponga v0 = x e w0 = x. 24 Una foglia in un albero è un vertice di valenza 1. Esercizio 5 Se d è la massima valenza di un vertice in un albero T , allora vi sono almeno d foglie in T . Esercizio 6 Se un albero T non ha vertici di valenza 2, allora le foglie sono più degli altri vertici. Esercizio 7 Se in G ogni vertice ha valenza almeno k e T è un albero con al più k + 1 vertici, esiste un sottografo di G isomorfo a T . Esercizio 8 Dimostrare che Qn è un grafo bipartito. Esercizio 9 Dimostrare che ogni grafo bipartito è isomorfo a un sottografo di qualche Km,n . Esercizio 10 Dimostrare che ogni grafo G ha un sottografo H bipartito tale che v(H) ≥ v(G)/2. 5 Connessione e cammini Come abbiamo già detto, un grafo è connesso se, comunque fissati due suoi vertici, esiste almeno un cammino che li congiunge. Una componente connessa di G è un sottografo connesso massimale di G, ovvero un sottografo a cui non è possibile aggiungere nulla senza farlo diventare sconnesso; ovviamente un grafo connesso ha come unica componente connessa se stesso. Dati due vertici x, y ∈ V (G), diciamo che un altro vertice z ∈ V (G) li separa se ogni cammino tra x e y passa per z; dati due vertici x, y ∈ V (G) adiacenti, diciamo che l’arco (x, y) è un ponte se è l’unico cammino tra x e y. Un grafo G si dice k−connesso con k ∈ N se, comunque si eliminino meno di k vertici, il grafo ottenuto è ancora connesso; la connettività di G è il massimo k per cui G è k−connesso e si indica con κ(G). Ogni grafo non vuoto è 0−connesso; ogni grafo connesso è 1−connesso. Se κ(G) = 0, G è sconnesso oppure è K1 , mentre in generale κ(Kn ) = n − 1. Analogamente, un grafo G si dice l−connesso per archi se, comunque si eliminino meno di l archi, il grafo rimane connesso; la connettività per archi di G è il massimo l per cui G è l−connesso e si indica con λ(G). Proposizione 13 Se G non è banale, si ha κ(G) ≤ λ(G). Dim : Se λ(G) = l, allora esiste almeno un insieme F di l archi che, tolto, sconnette G. Chiamiamo G1 una componente connessa del grafo risultante dall’aver eliminato F e chiamiamo U i vertici in V (G1 ) che sono estremo di un arco in F . Innanzitutto notiamo che non esiste un arco in F che abbia entrambi gli estremi in G1 , altrimenti eliminando gli altri archi di F e non questo si otterrebbe comunque un grafo sconnesso, ma allora λ(G) < l. Quindi ∣U ∣ ≤ ∣F ∣. Se poi c’è qualche vertice di G1 che non sta in U , allora il grafo ottenuto eliminando i vertici in U da G è sconnesso e dunque κ(G) ≤ ∣U ∣ ≤ ∣F ∣ = λ(G). Se invece U = V (G1 ), scegliamo v ∈ V (G1 ) e consideriamo NG (v) (i vertici adiacenti a v in G); alcuni di questi vertici sono collegati a v tramite archi di F , mentre gli altri (che quindi sono adiacenti a v anche in G1 ) tra loro non possono essere collegati da archi di F . Quindi dG (v) ≤ ∣F ∣. Ora, se esiste un vertice di G non adiacente a v, eliminando i vertici di N (v) si sconnette il grafo e dunque κ(G) ≤ dG (v) ≤ ∣F ∣ = λ(G). Se, comunque scelto v si ha che N (v) ∪ {v} = V (G), allora G è un grafo completo, ma allora κ(G) = λ(G) = ∣V (G)∣ − 1. ◻ La connettività, come è stata definita più sopra, sembra aver poco a che fare con il concetto di cammino, su cui si basa la connessione; in realtà vedremo che le due nozioni sono strettamente legate. Prima di arrivare a questo risultato, ci servono alcune definizioni. Diciamo che un insieme di vertici S separa due vertici x, y ∈ V (G) se x, y ∈/ S e il grafo ottenuto da G eliminando S non contiene cammini tra x e y; κ(x, y) è il minimo numero di vertici che deve contenere un insieme di vertici che separa x e y. Ovviamente κ(x, y) ≥ κ(G) per ogni x, y ∈ V (G); ricordiamo inoltre che due cammini tra x e y si dicono distinti se hanno in comune solo gli estremi. Denotiamo con γ(x, y) il massimo numero di cammini distinti tra x e y; ovviamente si ha la seguente disuguaglianza. 25 Proposizione 14 Per due vertici distinti e non adiacenti si ha γ(x, y) ≤ min{dG (x), dG (y)} Dim : Ovviamente, se si eliminano tutti i vertici adiacenti ad x, oppure ad y, non c’è modo di congiungere x e y con un cammino; questo è possibile in quanto x e y non sono adiacenti. ◻ Inoltre, abbiamo anche una disuguaglianza tra connettività tra due vertici e numero di cammini disgiunti. Proposizione 15 Per due vertici distinti e non adiacenti si ha γ(x, y, ) ≤ κ(x, y). Dim : Per disconnettere x e y dobbiamo quanto meno togliere un punto da ogni cammino tra questi, quindi almeno γ(x, y) punti, da cui la tesi. ◻ In realtà, un importante risultato della teoria dei grafi è il seguente, che afferma che il minimo numero di vertici da eliminare per separare due vertici è il massimo numero di cammini disgiunti possibili tra questi. Proposizione 16 (Teorema di Menger) Per due vertici distinti e non adiacenti si ha γ(x, y) = κ(x, y). Dim : Dimostreremo la tesi per induzione sul numero di vertici e su κ(x, y), ovvero, dato un grafo G e due vertici con κ(x, y) = m, supporremo che la tesi valga per ogni grafo con meno vertici di G e qualunque coppia di vertici, oppure per ogni coppia di vertici con κ(x, y) < m in un qualsiasi grafo G. Inoltre, in vista della precedente proposizione, ci basta dimostrare che γ(x, y) ≥ κ(x, y). Passo base: In un grafo con un solo vertice, la tesi è ovvia. Inoltre, se κ(x, y) = 0 non esistono cammini tra x e y, quindi γ(x, y) = 0; se poi κ(x, y) = 1, bisogna rimuovere almeno un vertice per sconnettere x e y, quindi esiste almeno un cammino tra di essi, quindi γ(x, y) ≥ 1. Passo induttivo: Sia dunque κ(x, y) = m ≥ 2 con x, y vertici di G. Vogliamo dimostrare che γ(x, y) ≥ m. Come detto sopra, supporremo che la tesi sia vera per tutti i grafi G con meno vertici o per tutte le coppie di vertici x, y con κ(x, y) < m in un qualsiasi grafo. Sia S un insieme di m vertici che separa x da y; allora ogni cammino da x a y deve contenere un elemento di S. Siano P1 , . . . , Pk tutti i cammini da x a y; per ognuno di loro consideriamo i vertici tra tra x e S (ovvero il primo incontro di Pi con S) e consideriamo il sottografo generato in G da tutti questi vertici, aggiungiamo poi un nuovo vertice y ′ e colleghiamolo a tutti i vertici di S. Chiamiamo Gx il nuovo grafo. Similmente, consideriamo per ogni cammino i vertici tra l’ultima intersezione con S e y, aggiungiamo il vertice x′ e colleghiamolo a tutti i vertici di S. Chiamiamo Gy il grafo cosı̀ ottenuto. Ovviamente dGx (y ′ ) = dGy (x′ ) = m e S separa x da y ′ in Gx e y da x′ in Gy ed è il minimo separatore possibile, ovvero κ(x, y ′ ) = κ(x′ , y) = m. Ora abbiamo due casi. Caso I: Esiste S di modo che sia Gx che Gy hanno meno vertici di G. Allora possiamo applicare l’ipotesi induttiva e dunque otteniamo che ci sono m cammini disgiunti tra x e y ′ e altrettanti tra x′ e y. E’ ovvio che ciascuno di questi cammini passa per un punto diverso di S e dunque, eliminando i vertici x′ e y ′ da ogni cammino in Gy e Gx rispettivamente e incollando opportunamente i cammini si ottengono m cammini disgiunti tra x e y in G e dunque γ(x, y) ≥ m. Caso II: Per ogni possibile separatore S, Gx o Gy (o entrambi) ha lo stesso numero di vertici di G. Allora Gx e G sono grafi isomorfi, oppure Gy e G sono isomorfi. E questo significa che y è adiacente a tutti i vertici di S oppure lo è x. Supponiamo ora di togliere ogni arco di G la cui eliminazione non alteri κ(x, y). In tale situazione, vogliamo dimostrare che il cammino minimo tra x e y ha lunghezza 2. Supponiamo che questo sia falso e consideriamo il cammino minimo x, u, v, . . . , y; se è minimo, dobbiamo supporre che u non sia connesso a y da un arco e v non lo sia ad x. Inoltre, avendo eliminato precedentemente tutti gli archi superflui, eliminando l’arco (u, v) otterremo un grafo G′ in cui κG′ (x, y) = m − 1 e dunque ci sarà un insieme di m − 1 punti, chiamiamolo T , che separa x e y. Osserviamo che T non può contenere u e v, altrimenti sarebbe un separatore anche in G, ma ha troppo pochi vertici. Del resto, se togliamo i vertici di T e l’arco (u, v), disconnettiamo G, quindi 26 gli insiemi T ∪ {u} e T ∪ {v} sono separatori per x e y e hanno entrambi m elementi. Poiché siamo nel caso II, T ∪ {u} è adiacente a x oppure a y, ma u e y non possono essere adiacenti, dunque x è collegato ad ogni vertice di T ∪ {u}; similmente, y è collegato ad ogni vertice di T ∪ {v}. Ora, m ≥ 2, quindi m − 1 ≥ 1, quindi c’è almeno un elemento t ∈ T , che dunque è un vertice adiacente sia ad x che ad y. Ne segue che il cammino x, t, y è il più breve possibile ed ha lunghezza 2. Ora consideriamo il grafo H ottenuto da G levando t; H ha meno vertici, quindi l’ipotesi induttiva si applica. Allora per H vale κH (x, y) = γH (x, y); inoltre, poiché sicuramente t sta in ogni insieme che separi x e y in G, in H si ha γH (x, y) = κH (x, y) = m − 1 = κG (x, y) − 1 Dunque ci sono m − 1 cammini disgiunti da x a y in H e se ad essi aggiungiamo x, t, y (che non è tra questi ed è disgiunto da tutti loro) otteniamo m cammini in G, dunque γG (x, y) ≥ m, come volevamo dimostrare. ◻ Il teorema di Menger appena dimostrato fornisce informazioni sulle singole coppie di punti; però ci vuole poco per passare da questo risultato ad una caratterizzazione dei grafi con connettività n. Proposizione 17 (Teorema di Whitney) Un grafo G è n−connesso se e solo se per ogni due vertici distinti esistono (almeno) n cammini disgiunti che li connettono. Dim : Se per ogni due vertici vi sono almeno n cammini, in particolare per ogni due vertici non adiacenti si ha γ(x, y) ≥ n, quindi κ(x, y) ≥ n, quindi κ(G) ≥ n (in quanto per disconnettere due qualunque vertici non adiacenti si devono togliere almeno n vertici, dunque non si può disconnettere G togliendone meno). D’altra parte, supponiamo che G sia n−connesso, allora sappiamo che κ(G) ≥ n, quindi κ(x, y) ≥ n, quindi γ(x, y) ≥ n se i due vertici non sono adiacenti. Nel caso di due vertici adiacenti, basta considerare il grafo G′ ottenuto da G togliendo il vertice (x, y); si avrà κG′ (x, y) ≥ κG (x, y) − 1 ≥ n − 1 e poiché in G′ i due vertici non sono più adiacenti, abbiamo che per il teorema di Menger vi saranno almeno n − 1 cammini tra x e y e se aggiungiamo l’arco (x, y) ne avremo n in G, che è la nostra tesi. ◻ 5.1 Percorsi euleriani Una delle prime avvisaglie (o forse la prima) della teoria dei grafi è il problema di ponti di Königsberg, affrontato da Leonhard Euler nel 1736. La città di Königsberg comprende 3 isole e tra quella centrale e ognuna delle altre due vi sono due ponti, inoltre da ogni isola alla terraferma vi è un ponte; il problema che si pose (e a cui rispose) Eulero fu se fosse possibile partire e tornare a casa propria girando tutte le isole e la terraferma e usando una sola volta ogni ponte, ma usandoli tutti. C B D A Figura 21: I ponti di Königsberg Per questo, un percorso chiuso (ovvero in cui il primo e l’ultimo vertice coincidono) che utilizzi una ed una sola volta ogni arco di un grafo si dice percorso euleriano in G; un grafo che ammetta un percorso euleriano chiuso si dice grafo euleriano. 27 La risposta che si diede Eulero alla questione dei ponti di Königsberg fu negativa ed anzi andò oltre e produsse il seguente risultato. Proposizione 18 (Eulero) Un grafo è euleriano se e solo se ogni vertice ha valenza pari. Dim : Supponiamo di avere un grafo euleriano G; allora avremo un percorso che copre tutti i lati di G una e una sola volta ciascuno. Utilizziamo per un attimo il linguaggio delle isole e dei ponti (al posto di vertici e archi); se siamo su un’isola (a parte quella di partenza), avremo utilizzato un qualche ponte per raggiungerla e dovremo quindi utilizzare un altro ponte per abbandonarla (a meno che non sia l’ultima). Quindi ogni volta che passeremo per un’isola intermedia del nostro percorso euleriano, utilizzeremo 2 ponti; rimangono escluse la prima e l’ultima isola del percorso, che, se distinte, porteranno ad utilizzare un numero dispari di ponti, ma visto che coincidono (il percorso è chiuso), anche questa isola dovrà avere un numero pari di ponti. Riscrivendo questo in termini di vertici e archi, troviamo che ogni vertice deve stare all’estremità di un numero pari di archi, ovvero che ogni vertice ha valenza pari. Supponiamo invece che un grafo abbia tutti i vertici di valenza pari e cerchiamo di costruire un percorso euleriano. Utilizziamo il seguente algoritmo: scegliamo un vertice a caso v0 e consideriamo il percorso banale W fatto dal solo v0 ; scegliamo v1 tale che sia adiacente a v0 e di modo che (v0 , v1 ) non sia un ponte in G, a meno che non vi sia altra scelta. Poniamo cosı̀ W = {v0 , v1 }. Sia ora W = {v0 , v1 , . . . , vi }; scegliamo vi+1 adiacente a vi di modo che (vi , vi+1 ) non sia un ponte in Gi ottenuto da G togliendo gli archi già toccati da W , a meno che non vi sia altra alternativa. Questo algoritmo ovviamente termina, se G è un grafo finito. Dimostriamo ora che il risultato è un percorso euleriano. Innanzitutto, vediamo che è un percorso chiuso: se non termina nel vertice v0 , terminerà in un qualche vertice w; questo vuol dire che il percorso è passato per ognuno degli archi che escono da w (altrimenti si potrebbe proseguire oltre w), ovvero 1 arco è stato usato alla fine del percorso per arrivare a w, poi ne sono stati usati 2 ogni volta che w compariva come vertice interno del percorso. Questo vuol dire che è stato usato un numero dispari di archi uscenti da w, ma poiché ogni vertice ha valenza pari, non possono essere tutti. Quindi l’unica possibilità è che w sia v0 . Chiamiamo G′ il grafo ottenuto eliminando da G gli archi di W ; per ipotesi, ogni vertice di G′ ha valenza pari; supponiamo che G′ abbia qualche arco (ovvero che W non sia euleriano e quindi non copra tutti gli archi di G). Ora, consideriamo un arco di G′ che ha come estremo un vertice w di W e che sia l’ultimo tale arco, percorrendo W da v0 , v1 , . . . fino di nuovo a v0 . Per ipotesi, ogni cammino che parta con w e con questo arco in G′ incrocerà W in vertici precedenti a w, quindi, nel grafo Gw ottenuto da G eliminando gli archi di W precedenti a quel punto, l’unico cammino da w al suo successore in W è l’arco tra loro, quindi questo arco è un ponte. Questo è assurdo, perché da w parte un altro arco che non è un ponte (quello che non fa parte di W ) e quindi questo avrebbe dovuto essere scelto prima dell’altro. Dunque ogni vertice di G′ ha valenza 0, ovvero W utilizza tutti gli archi di G. ◻ L’algoritmo descritto nella dimostrazione precedente per trovare un percorso euleriano è stato elaborato da Fleury nel 1921. 5.2 Grafi 2−connessi In questa parte esamineremo in maggior dettaglio la struttura dei grafi 2−connessi; per far questo, introduciamo il concetto di H−cammino. Se G è un grafo e H è un suo sottografo, un H−cammino in G è un cammino in cui il primo e l’ultimo vertice stanno in H, mentre ogni altro vertice sta in G ∖ H. Inoltre diciamo blocco un sottografo massimale che non contenga vertici separatori (ovvero che, tolti, disconnettono il sottografo. Un blocco può essere un sottografo massimale 2−connesso, un vertice isolato oppure un K2 . Cercheremo di studiare come sono tra loro organizzati questi blocchi. Proposizione 19 Un grafo è 2−connesso se e solo se è possibile costruirlo a partire da un ciclo e aggiungendo di volta in volta un H−cammino al grafo H ottenuto fino a quel punto. Dim : Innanzitutto dimostriamo che ogni grafo ottenuto con questa costruzione è 2−connesso; un ciclo certamente lo è, infatti comunque togliamo 1 solo vertice rimane connesso, quindi è sicuramente 2−connesso. Ora, se abbiamo un grafo H che è 2−connesso e un altro grafo H ′ formato 28 da H e da un H−cammino, troviamo che H ′ è anch’esso 2−connesso: infatti, se togliamo da H ′ un vertice di H, H rimarrà connesso e quindi a maggior ragione H ′ ; se invece togliamo un vertice dall’H−cammino, i vertici di H rimarranno tra loro connessi e i vertici del cammino rimarranno connessi passando per H. Figura 22: Costruzione di un grafo 2−connesso. Ora veniamo alla parte più complicata: dimostriamo che ogni grafo 2−connesso si ottiene in questo modo. In un grafo G 2−connesso c’è almeno un ciclo: basta considerare 3 vertici x, y, z di modo che x sia adiacente a y e y a z; ora, eliminando y il grafo rimane connesso, quindi esiste un cammino da x a z che non passa per y e raccordando questo cammino con il cammino xyz otteniamo un ciclo. Ora, prendiamo questo ciclo e consideriamo il più grande sottografo H di G ottenibile a partire da questo ciclo con il procedimento descritto prima. Supponiamo che H non sia tutto G; se l’arco (x, y) non appartiene ad H, ma i vertici x, y appartengono ad H, allora l’arco (x, y) è un H−cammino, che quindi può essere aggiunto ad H nel rispetto della costruzione predente e dunque H non è massimale, ma questo è assurdo. Rimane il caso in cui ci sia un arco (x, y) di cui x sta in H e y no (infatti G è connesso, quindi se c’è un arco non in H, ce n’è uno non in H ma con un estremo in H). Poiché G è 2−connesso, eliminando x, possiamo ancora trovare un cammino da H a y, ma allora raccordando questo con l’arco yx otteniamo un H−cammino da aggiungere ad H e questo è assurdo, visto che H è massimale. Quindi H = G. ◻ Ora, dato un grafo generico G, consideriamo l’insieme B dei suoi blocchi e l’insieme A dei suoi vertici separatori. Notiamo che, per massimalità, due blocchi si sovrappongono solo in un vertice separatore. Definiamo un grafo che ha come vertici A ∪ B e come archi le coppie (a, B) con a ∈ A, B ∈ B tali che a ∈ B (ovvero il vertice a stia nel blocco B. Chiamiamo il grafo B cosı̀ ottenuto grafo dei blocchi di G. Notiamo che due vertici di B sono adiacenti solo nel caso siano di tipo diverso, ovvero un blocco e un vertice separatore; questo fa di B un grafo bipartito. Inoltre è chiaro che, se G è connesso, anche B lo è e viceversa. Proposizione 20 Il grafo dei blocchi B di un grafo connesso G è un albero Dim : Supponiamo che il grafo B non sia un albero, allora esiste un ciclo e quindi eliminando un vertice di tale ciclo il grafo non risulterà sconnesso; poiché il grafo è bipartito, il ciclo conterrà almeno un vertice a dell’insieme A. Eliminando tale vertice da B, non si sconnetterà il grafo, mentre invece G verrà sconnesso dall’eliminazione del corrispondente vertice separatore. Vediamo bene che questo è assurdo: ogni cammino in G diventa un cammino in B e ogni cammino in B corrisponde a qualche cammino in G (poiché i blocchi sono connessi), dunque B è un albero. ◻ 29 5.3 Esercizi Esercizio 1 Determinare la connettività e la connettività per archi di K3,3 , C4 , L9 , i grafi associati ai solidi platonici e il grafo Qn del cubo n−dimensionale per ogni n. Esercizio 2 Determinare γ(x, y) per due qualsiasi vertici di Kn,m . Esercizio 3 Dire quali tra i grafi Kn , Km,n , Cn , Qn e i grafi associati ai solidi platonici sono euleriani e per questi ultimi determinare un percorso euleriano. Esercizio 4 Dimostrare che in un grafo n−connesso ogni n vertici stanno su un ciclo. Esercizio 5 Dimostrare che un grafo k−connesso con almeno 2k vertici contiene un ciclo di lunghezza almeno 2k. Esercizio 6 Sia G un grafo in cui tutti i vertici a parte due (siano x, y) hanno valenza pari; dimostrare che esiste un percorso semieuleriano, ovvero un percorso che utilizza tutti gli archi di G, ma non è chiuso (in particolare, parte da x e arriva ad y o viceversa). Esercizio 7 Un ciclo di G è un ciclo di un blocco di G. Esercizio 8 Determinare almeno due grafi il cui grafo dei blocchi associato sia l’albero di Figura 18. Esercizio 9 Diciamo che e ∼ e′ per e, e′ ∈ E(G) se e = e′ oppure se c’è un ciclo di G a cui appartengono entrambi gli archi. Dimostrare che, fissato e ∈ E(G), l’insieme [e] = {e′ ∈ E(G) ∶ e ∼ e′ } è il blocco che contiene l’arco e. 6 Grafi hamiltoniani Nel 1875 W.R. Hamilton produsse un buffo gioco in legno, a forma di dodecaedro, in cui da ogni vertice sporgevano degli spilli e ad uno di essi era legato un filo; lo scopo del gioco è far passare il filo attorno ad ogni spillo una ed una volta sola, seguendo gli spigoli del solido. Insomma, questo gioco è proprio il primo problema di queste note. La trovata di Hamilton non ebbe un gran successo commerciale (anzi, non ne ebbe proprio), ma sollevò l’interessante questione dei cicli hamiltoniani, ovvero un ciclo che passi per ogni vertice. Un grafo in cui esiste un tale ciclo si dice, ovviamente, hamiltoniano. Il problema può sembrare molto simile a quello dei grafi euleriani, descritto e risolto nella sezione 5.1, ma purtroppo (o per fortuna) non è stata trovata una risposta altrettanto semplice, per caratterizzare quali grafi sono hamiltoniani e quali no. Non è nemmeno facile capire quale tipo di condizioni cercare. Cominciamo con un risultato semplice, ma interessante, ottenuto da Dirac nel 1952. Proposizione 21 (Dirac) Ogni grafo con n ≥ 3 vertici e con ogni vertice di valenza almeno n/2 ha un ciclo hamiltoniano. Dim : Innanzitutto, G è connesso, come risulta dalla Proposizione 1. Consideriamo un cammino P = {x0 , . . . , xk } che sia il più lungo possibile in G; questo vuol dire che N (x0 ) contiene solo vertici di P , come anche N (xk ). Definiamo gli insiemi M0 = {i ∈ N ∶ 0 ≤ i ≤ k − 1, (xi , xk ) ∈ E(G)} Mk = {i ∈ N ∶ 0 ≤ i ≤ k − 1, (xi+1 , x0 ) ∈ E(G)} che sono gli insiemi degli indici per cui xi è collegato a xk e xi+1 è collegato a x0 , rispettivamente. Per ipotesi e per quanto detto, ∣M0 ∣ = ∣N (x0 )∣ ≥ n/2 e ∣Mk ∣ = ∣N (xk )∣ ≥ n/2; ma poiché k ≤ n, si ha che i valori possibili per i tra 0 e k − 1 sono al più n e dunque esiste i ∈ M0 ∩ Mk . Dunque (xi , xk ) ∈ E(G) e (xi+1 , x0 ) ∈ E(G). Consideriamo dunque il ciclo C = {x0 , xi+1 , xi+2 , . . . , xk , xi , xi−1 , . . . , x0 } Vogliamo dimostrare che questo è hamiltoniano. Supponiamo che vi sia un vertice non in C, allora c’è un vertice v non in C che è adiacente ad un vertice di C, diciamo xj . Ma allora possiamo 30 xi+1 ⋯ x0 ⋯ xi xk Figura 23: Ciclo hamiltoniano costruire un cammino che parte da v, poi segue il ciclo C da xj in poi; cosı̀ otteniamo un cammino più lungo di P , ma questo è assurdo, poiché P era il più lungo possibile. ◻ Un corollario immediato di questo risultato è che Kn è hamiltoniano per n ≥ 3, poiché n − 1 ≥ n/2. Inoltre si nota subito che la condizione imposta non è necessaria, in generale, in quanto Cn è hamiltoniano (è lui stesso un ciclo!) ma ogni suo vertice ha valenza 2, indipendentemente dal suo numero totale di vertici. In un qualche senso, però, tale risultato è ottimale; consideriamo infatti il grafo formato da due copie di Kn attaccate per un vertice (nella Figura 24 si ha un esempio di tale costruzione per n = 4). Figura 24: Grafo non hamiltoniano con 7 vertici di valenza almeno 3. Questo grafo ha 2n − 1 vertici, di cui 2n − 2 di valenza n − 1 < (2n − 1)/2 e non è hamiltoniano, infatti togliendo il vertice centrale si sconnette e dunque κ(G) = 1; se esistesse un ciclo che passa per tutti i vertici, ci sarebbero almeno due cammini tra un vertice e l’altro (le due parti in cui da essi è diviso il ciclo) e quindi κ(G) ≥ 2 per ogni grafo hamiltoniano. Da questo controesempio emerge anche la seguente proposizione, che abbiamo appena dimostrato. Proposizione 22 Affinché G sia hamiltoniano è necessario che κ(G) ≥ 2. Sembrerebbe dunque che anche la connettività giochi un ruolo nello stabilire quando un grafo è hamiltoniano, ma non è sufficiente chiedere una alta connettività: il grafo bipartito Kk,n con k < n è k − connesso, ma se k ≠ n non è hamiltoniano. Infatti, un ciclo in un grafo bipartito ha lunghezza pari, perché visita, alternatamente, i due insiemi di vertici e dunque ne comprende tanti dell’uno quanti dell’altro. Per cui in Kk,n un ciclo avrà al massimo lunghezza 2k e se n ≠ k questo non è abbastanza per essere un ciclo hamiltoniano, che dovrebbe avere lunghezza n + k. Certo però vale la seguente proposizione. Proposizione 23 Se G ha n vertici e κ(G) ≥ n/2, allora G è hamiltoniano. Dim : Sappiamo che κ(G) ≤ d(v) per ogni v ∈ V (G), quindi n/2 ≤ κ(G) ≤ δ(G) e dunque possiamo applicare la proposizione precedente. ◻ La connettività è comunque legata all’hamiltonianità: infatti supponiamo che κ(G) = k, allora vuol dire che esiste un insieme S di k vertici la cui eliminazione sconnette G; se poi G è anche hamiltoniano, allora esiste un ciclo C che contiene tutti i vertici di G. Consideriamo solo C e togliamo da questo i vertici di S; avendo tolto k vertici da un ciclo, otterremo al massimo k componenti connesse e dunque anche da G, eliminando S, si devono ottenere al più k componenti connesse. Abbiamo cosı̀ dimostrato la seguente proposizione. Proposizione 24 Se G è hamiltoniano, allora per ogni insieme di vertici S non vuoto si deve avere che c(G ∖ S) ≤ ∣S∣ 31 dove c(G ∖ S) è il numero delle componenti connesse del grafo ottenuto da G eliminando i vertici di S. Ovviamente, la condizione sul numero di componenti connesse è necessaria, ma non sufficiente; ad esempio, basta considerare il grafo di Petersen in Figura 25. In questo grafo, comunque si tolga un insieme di vertici S si avrà c(G ∖ S) ≤ ∣S∣ (provare per credere!) ma non è hamiltoniano. Figura 25: Grafo di Petersen 6.1 Esercizi Esercizio 1 Trovare un grafo hamiltoniano, ma non euleriano. Esercizio 2 Trovare un grafo euleriano, ma non hamiltoniano. Esercizio 3 Trovare un grafo euleriano e hamiltoniano che non sia un ciclo. Esercizio 4 Trovare un ciclo hamiltoniano in K7 . Dato un grafo G, definiamo il grafo G2 come segue: V (G) = V (G2 ) e due vertici x, y sono connessi da un arco in G2 se e solo se lo sono anche in G oppure se esiste un cammino tra loro in G composto da 2 archi. Esercizio 5 Sia G = K2,5 ; dimostrare che G2 è hamiltoniano. 7 Il teorema dei matrimoni Un matching 4 per un grafo G è un sottografo M composto solo di archi indipendenti, ovvero senza estremi in comune. Se V (M ) = V (G), M si dice perfect matching o 1−fattore. In generale un k−fattore è un sottografo di G che sia k−regolare e contenga tutti i vertici di G. Ad esempio, un 2−fattore connesso è un ciclo che contiene tutti i vertici, ovvero un ciclo hamiltoniano. 3 2 4 3 1 5 6 2 4 3 1 5 6 2 4 1 5 6 Figura 26: In rosso, un 1−fattore, un 2−fattore e un 3−fattore in K6 Il caso più naturale in cui cercare di ottenere un perfect matching è quello di un grafo bipartito; ad esempio, una simile questione sta alla base del problema 2. Altro problema in qualche senso 4 Dall’inglese to match, ovvero accoppiare. 32 storico è il problema dei matrimoni, in cui i vertici del grafo rappresentano uomini e donne e gli archi sono preferenze. In astratto, si tratta, dati due insiemi, di stabilire tra essi una bigezione, con vincoli su quali elementi di un insieme possono corrispondere ad un certo elemento dell’altro insieme. Supponiamo dunque di avere un grafo bipartito G e sia {A, B} la partizione dei vertici; se ∣A∣ = ∣B∣, possiamo cercare di trovare un perfect matching, altrimenti, supponendo che ∣A∣ < ∣B∣, potremo al più ottenere un matching che contenga tutti i vertici di A, che sarà detto matching per A. Supponiamo che ci sia un matching M per A nel grafo bipartito G; allora, sicuramente, ogni sottoinsieme S di A ha abbastanza adiacenze in B, ovvero ∣NG (S)∣ ≥ ∣S∣ dove NG (S) è l’insieme dei vertici adiacenti a S in G (che quindi si trovano tutti in B). Il teorema dei matrimoni, dimostrato da Hall nel 1935, afferma che una simile condizione (che chiamiamo condizione del matrimonio) è anche sufficiente a garantire l’esistenza di un matching per A. Proposizione 25 (Hall) G contiene un matching per A se e solo se ∣NG (S)∣ ≥ ∣S∣ per ogni S ⊆ A. Dim : Abbiamo già detto come, in presenza di un matching per A, debba valere la condizione del matrimonio; proviamo a dimostrare il viceversa. Consideriamo la seguente famiglia di sottografi M = {H ∶ V (H) = V (G), H rispetta la condizione del matrimonio} ovvero dei sottografi che contengono tutti i vertici di G e ancora rispettano la condizione del matrimonio, ovvero tali che ∣NH (S)∣ ≥ ∣S∣ ∀ A ⊆ S Scegliamo da M un sottografo H con meno archi possibile; per la condizione di matrimonio dH (a) = NH ({a}) ≥ 1 per ogni a ∈ A; vogliamo dimostrare che dH (a) = 1. Supponiamo per assurdo che a abbia due distinti vertici adiacenti in H, siano b1 , b2 ; allora, poiché H ha il minimo numero possibile di archi, cancellando uno tra (a, b1 ) e (a, b2 ) si ottiene un grafo che non rispetta la condizione del matrimonio e dunque esiste un insieme Ai , i = 1, 2 (a seconda che si tolga uno o l’altro arco) tale che ∣Ai ∣ > ∣Bi ∣ dove Bi è l’insieme dei vertici adiacenti ad Ai nel sottografo ottenuto da H eliminando (a, bi ). Ovviamente a ∈ Ai (perché gli intorni degli altri vertici rimangono uguali). Ora, poiché b1 ∈ B2 e b2 ∈ B1 , si ha che NH (A1 ∩ A2 ) ⊆ B1 ∩ B2 e NH (A1 ∪ A2 ) = B1 ∪ B2 e dunque ∣NH (A1 ∩ A2 ∖ {a})∣ ≤ ∣B1 ∩ B2 ∣ = ∣B1 ∣ + ∣B2 ∣ − ∣B1 ∪ B2 ∣ = = ∣B1 ∣ + ∣B2 ∣ − ∣NH (A1 ∪ A2 )∣ ≤ ∣A1 ∣ − 1 + ∣A2 ∣ − 1 − ∣A1 ∪ A2 ∣ = ∣A1 ∩ A2 ∖ {a}∣ − 1 ma questo viola la condizione del matrimonio e questo è assurdo. Dunque dH (a) = 1 per ogni a ∈ A; inoltre non ci possono essere due diversi archi che giungono allo stesso vertice in B, altrimenti verrebbe ancora violata la condizione del matrimonio. Questo significa che H è un matching per A. ◻. Dunque, Kn,n ammette un perfect matching e Kk,n ammette un matching per l’insieme di vertici più piccolo. Proposizione 26 Un grafo k−regolare e bipartito ha un pefect matching. Dim : ∣A∣ = ∣B∣, in quanto k−regolare. Inoltre, consideriamo S sottoinsieme di A, allora da esso partiranno k∣S∣ archi distinti, tutti con un estremo in NG (S), ma in NG (S) arriveranno k∣NG (S)∣ archi (provenienti o meno da S), per cui k∣S∣ ≤ k∣NG (S)∣, da cui la condizione del matrimonio e dunque la tesi. ◻ Questo teorema, molto versatile, non schematizza però perfettamente il problema da cui è nato: è naturale pensare che, ad esempio, un uomo non solo abbia un insieme di donne che vorrebbe sposare, ma anche che tra di esse abbia delle preferenze; per illustrare anche questa variabile, 33 supponiamo che, oltre al grafo bipartito, venga anche assegnata, per ogni vertice v, una sorta di classifica degli archi uscenti da v. Se e, f sono archi uscenti da v, diremo che e è preferibile a f rispetto a v e scriveremo che e ≥v f se e viene prima di f in questa classifica. L’insieme di tutte queste classifiche, su ogni insieme di archi uscenti da un vertice, si dice insieme di preferenze su G. Diciamo che un matching M è stabile per un certo insieme di preferenze se per ogni arco e non in M esiste un arco f in M tale che e ed f hanno un vertice v in comune e f ≥v e. Nel 1962, Gale e Shapley hanno dimostrato il seguente risultato, a volte detto teorema stabile dei matrimoni5 . Proposizione 27 (Gale, Shapley) Per ogni insieme di preferenze, G ammette un matching stabile. Noi non daremo la dimostrazione di questo risultato, poiché l’idea di base è semplice (costruire un passo per volta il matching, ogni volta migliorando il più possibile la situazione in ogni vertice), ma vi sono molti dettagli da sistemare con cura. Notiamo che il matching ottenuto può non essere un perfect matching, anche se nel grafo questo è a priori possibile. Vediamo ora un corollario del teorema dei matrimoni, dimostrato per la prima volta in altro modo da Petersen nel 1891. Proposizione 28 (Petersen) Ogni grafo 2k−regolare ha un 2−fattore. Dim : Supponiamo che G sia 2k−regolare, senza perdere di generalità, che sia connesso. Allora sappiamo che (visto che ogni vertice ha valenza 2k) G ammette un percorso euleriano v0 . . . , vl = v0 ; costruiamo un nuovo grafo G′ in cui per ogni vertice vi di G ci sono due vertici, vi+ e vi− . Inoltre, se nel percorso euleriano l’arco (vi , vj ) compare come vi vj (seguendo il percorso da v0 a vl ), allora in G′ aggiungiamo l’arco (vi+ , vj− ), altrimenti se compare come vj vi aggiungiamo l’arco (vj+ , vi− ). vi vi− vi+ Figura 27: Costruzione del grafo G′ . In questo modo il grafo G′ è k−regolare e bipartito e dunque ammette un perfect matching M ′ ; cancellando i + e i − in M ′ (ovvero collassando vi+ e vi− ad un solo vertice vi per ogni i) si ottiene un 2−fattore di G. ◻ 7.1 Applicazioni del teorema di Hall Vediamo in questa sezione alcuni utilizzi del teorema dei matrimoni al di fuori della vera e propria teoria dei grafi, nel più ampio contesto della combinatoria, ovvero la teoria dei conteggi. Dato un insieme S e una sua famiglia di sottoinsiemi {S1 , S2 , . . . , Sk } (non necessariamente distinti), diciamo trasversale un sottoinsieme T di k elementi che ha uno e un solo elemento in comune con ogni Si . Ad esempio, se S = {1, . . . , 6}, dati S1 = S2 = {1, 2}, S3 = {3, 4}, 4 = {1, 2, 4, 5}, possiamo porre T = {1, 2, 3, 4}; se però aggiungiamo S5 = {2, 4}, non potremo più trovare nessun trasversale. Dal teorema di Hall otteniamo il seguente risultato. 5 O forse, poiché in ogni coppia almeno uno degli elementi ha ottenuto la sua prima preferenza, teorema dei matrimoni stabili 34 Proposizione 29 Dato un insieme S e una collezione di n sottoinsiemi finiti e non vuoti, questi ammettono un trasversale se e solo se l’unione di qualsiasi k di questi sottoinsiemi ha almeno k elementi. Dim : Costruiamo un grafo bipartito il cui insieme di vertici è dato da S ∪ {1, . . . , n} e gli archi sono del tipo (s, m) dove s ∈ Sm ; un matching per {1, . . . , n} è un modo per abbinare ad ogni intero tra 1 e n un elemento di S, di modo che l’elemento abbinato ad i stia in Si , quindi si crea un trasversale. E viceversa, dato un trasversale, abbiamo un matching. Dunque, esiste un trasversale se e solo se esiste un matching, quindi se e solo se per ogni insieme Y ⊆ {1, . . . , n} si ha ∣N (Y )∣ ≥ ∣Y ∣, ovvero se e solo se comunque scelti k sottoinsiemi (associati agli interi in Y ) la loro unione (che è N (Y )) ha almeno k elementi. ◻ Il precedente risultato può sembrare abbastanza inutile, visto cosı̀; vediamone un’applicazione. Un rettangolo latino è una tabella m × n in cui compaiono i numeri da 1 a n (supponendo m ≤ n) di modo che i numeri su ogni riga e su ogni colonna siano tutti diversi. Se poi m = n, questa tabella si dice quadrato latino. Proposizione 30 Se M è un rettangolo latino m × n (con m < n), allora posso estendere M ad un quadrato latino aggiungendo n − m righe. Dim : Ci basterà dimostrare che possiamo estendere M di una riga e poi ripetere il ragionamento. Chiamiamo Ai l’insieme dei numeri tra 1 e n che non compaiono nella i−esima colonna di M ; poiché i numeri su una colonna sono tutti diversi, Ai avrà n − m elementi per ogni i. Ora prendiamo un insieme di colonne Ai1 , . . . , Aik ; vogliamo verificare che la loro unione contenga almeno k elementi. Ognuna delle k colonne contiene n − m numeri e del resto un numero non può trovarsi in due diverse colonne e sulla stessa riga, quindi al più un numero può ripetersi n − m volte, dunque ci sono almeno k numeri distinti tra le k colonne. Questo vuol dire che possiamo applicare la proposizione precedente e trovare un trasversale T alla famiglia di insiemi A1 , . . . , An ; questo trasversale è la riga da aggiungere. Possiamo portare avanti questo procedimento fintantoché m < n e dunque possiamo ottenere un quadrato. ◻ 8 Teoria di Ramsey Una 2−colorazione di un grafo è l’aver assegnato ad ognuno dei suoi archi un colore scelto tra due assegnati o, se vogliamo essere più prosaici, è l’aver scelto un sottoinsieme di archi (che saranno quelli, ad esempio, rossi, mentre il complementare sarà blu). Ad esempio, le seguenti sono due possibili colorazione di K6 . Abbiamo visto nel problema 6 che, qualunque sia la colorazione di K6 , possiamo sempre trovare un triangolo rosso oppure uno blu. Il problema può essere posto in generale: dati due numeri naturali s, t, qual è il minimo n tale che Kn , comunque colorato con 2 colori, contienga sicuramente o un Ks rosso o un Kt blu? Tale minimo valore di n si indica con R(s, t) e si dice numero di Ramsey; la conclusione del problema 6 si può riassumere dicendo che R(3, 3) = 6. Avevamo infatti non solo mostrato che ogni 2-colorazione di un K6 contiene un triangolo monocromatico, ma anche che esiste almeno una 2-colorazione di un K5 per cui non vi sono triangoli monocromatici. Notiamo che R(s, t) = R(t, s) e che R(s, 1) = R(1, s) = 1, R(2, s) = R(s, 2) = s: ogni K1 è monocromatico, non avendo archi, mentre ogni Kn con n ≥ 2 contiene un K2 (ovvero un arco) rosso (o blu), oppure è monocromatico blu (o rosso); ora mostriamo che questi numeri di Ramsey esistono, ovvero che ogni R(s, t) è finito. 35 Proposizione 31 Per ogni valore intero ≥ 2 di s, t si ha R(s, t) ≤ R(s − 1, t) + R(s, t − 1) . Dim: Vogliamo dimostrare che, se poniamo n = R(s−1, t)+R(s, t−1) e consideriamo una qualsiasi 2-colorazione di Kn , allora possiamo trovare un Ks di un colore oppure un Kt dell’altro colore. Fissiamo dunque una 2-colorazione su Kn . Sia v un vertice di Kn ; definiamo Rv = {w ∈ V (G) ∶ l’arco {v, w} è rosso} Bv = {w ∈ V (G) ∶ l’arco {v, w} è blu} . Ora, ovviamente Rv ∪ Bv = NG (v) e dunque ∣Rv ∣ + ∣Bv ∣ = n − 1 (sono insiemi disgiunti); poiché n = R(s−1, t)+R(s, t−1), si deve avere che ∣Rv ∣ ≥ R(s−1, t) o ∣Bv ∣ ≥ R(s, t−1). Supponiamo di essere nel primo caso; allora ∣Rv ∣ ≥ R(s, t−1). Consideriamo il sottografo GR di G formato considerando i vertici in Rv e, su di esso, la 2-colorazione indotta da quella di G; poiché ∣GR ∣ = ∣Rv ∣ ≥ R(s − 1, t), si danno due casi: o GR contiene un Kt blu, oppure contiene un Ks−1 rosso. Nel primo caso, abbiamo finito, poiché tale Kt blu è contenuto anche in G, mentre nel secondo caso ci basta considerare il grafo Ks ottenuto aggiungendo a quel Ks−1 il vertice v: poiché tutti gli archi dai vertici in Rv a v sono rossi, tale grafo sarà un Ks monocromatico in G. Il caso in cui invece si abbia ∣Bv ∣ ≥ R(s, t − 1) è completamente simmetrico. ◻ Osserviamo che la precedente proposizione, unita al fatto che R(s, 1) = R(1, s) = 1 e R(s, 2) = R(2, s) = s, ci permette di concludere che s+t−2 R(s, t) ≤ ( ). s−1 E’ infatti immediato constatare che il binomiale soddisfa esattamente le stesse condizioni iniziali e s+t−2 (s − 1) + t − 2 s + (t − 1) − 2 ( )=( )+( ) s−1 s−2 s−1 per la nota proprietà del triangolo di Tartaglia. Dunque, ad esempio, R(k, k) ≤ ( 1 ⋅ 3 ⋅ 5 ⋅ . . . ⋅ 2k − 3 2 ⋅ 4 ⋅ . . . ⋅ 2k − 2 2k − 2 (2k − 2)! )= = ≤ 2k−1 2k−1 = 4k−1 . (k − 1)!(k − 1)! 1 ⋅ 2 ⋅ 3 ⋅ ... ⋅ k − 1 1 ⋅ 2 ⋅ ... ⋅ k − 1 k−1 Esponiamo ora un risultato che afferma che R(s, s) non può essere troppo piccolo, in particolare non può essere una funzione polinomiale di s. Proposizione 32 Se s ≥ 4, R(s, s) > 2s/2 . Dim: Dimostriamo che, colorando a caso gli archi di un Kn con n ≤ 2s/2 , allora c’è una probabilità non nulla che non vi sia né un Ks blu, né un Ks rosso. Ogni arco ha probabilità 1/2 di essere colorato di blu e 1/2 di essere colorato di rosso; siano G1 , . . . , GN tutti i Ks contenuti in Kn , dove n N =( ). s Ora, la probabilità che Gj sia monocromatico rosso è 1 (2) p=( ) 2 s e dunque la probabilità che uno dei Gj sia monocromatico rosso è minore o uguale a N p (infatti non sono eventi indipendenti e dunque sommando le probabilità otteniamo una stima dall’alto della probabilità che accada almeno uno di loro). Allo stesso modo, la probabilità che uno dei Gj sia blu è minore o uguale a N p, essendo una situazione perfettamente simmetrica. A questo punto, è ovvio che la probabilità che uno dei Gj sia o monocromatico rosso o monocromatico blu è minore o uguale a n 1 (2) n! 1 ns 1 ≤ 2 , 2N p = 2( ) ( ) = 2 s!(n − s)! 2s(s−1)/2 s! 2s(s−1)/2 s 2 s 36 poiché n ≤ 2s/2 , si ha che ns ≤ 2s 2 /2 e dunque 1 2s /2 21+s/2 = s(s−1)/2 s! 2 s! 2 2N p ≤ e se s ≥ 4 si osserva facilmente che 1 + s/2 < s e dunque 21+s/2 < 2s < s!. Se ora ricordiamo la definizione “ingenua” di probabilità come casi favorevoli casi possibili vediamo che i casi favorevoli, ovvero le 2-colorazioni di Kn in cui esiste un Ks monocromatico, sono meno delle totali possibili 2-colorazioni. Dunque esiste almeno una colorazione in cui non si trova un Ks monocromatico, ovvero R(s, s) > n. ◻ Sui numeri di Ramsey si conosce ben poco, soprattutto in ambito elementare. Alcuni valori sono noti: R(3, 3) = 6, R(3, 4) = 9, R(4, 4) = 18, R(4, 5) = 25 mentre per altri casi sono note solo limitazioni sul valore, come ad esempio 43 ≤ R(5, 5) ≤ 49 . Varianti dei numeri di Ramsey si ottengono considerando r-colorazioni e si indicano con R(s1 , . . . , sr ); inoltre vi sono risultati simili a quelli della teoria di Ramsey nel caso di grafi completi con un numero infinito di vertici. Infine, presentiamo uno dei vari risultati che si ispirano ai numeri di Ramsey, in questo caso non solo come tipo di problema, ma anche come tecnica di dimostrazione. Proposizione 33 (Schur) Fissato r ≥ 2, esiste n > 3 tale che, comunque colorando di r colori ogni numero in {1, . . . , n}, esistono sempre tre interi 1 ≤ x, y, z ≤ n dello stesso colore e tali che x + y = z. Dim: Sia n = R(3, . . . , 3) (numero di Ramsey con r colori); sia c ∶ {1, . . . , n} → {1, . . . , r} la funzione che associa ad ogni intero il suo colore e definiamo una r-colorazione di Kn come segue. Numerando i vertici di Kn , l’arco che connette i vertici i e j verrà colorato col colore c(∣i − j∣). Allora, poiché n = R(3, . . . , 3), esiste almeno un triangolo monocromatico in Kn ; siano a, b, c i tre vertici e possiamo assumere che a < b < c. Se poniamo x = b − a, y = c − b, z = c − a, otteniamo che x + y = z e che c(x) = c(b − a), c(y) = c(c − b) c(z) = c(c − a) sono i colori dei lati del triangolo e quindi sono tutti uguali. ◻ 8.1 Esercizi Esercizio 1 Si cerchi un esempio di 2-colorazione di K8 che non contenga né un K3 rosso né un K4 blu. Esercizio 2 Data una qualsiasi 2-colorazione di Kn , si dimostri che c’è un ciclo Hamiltoniano che è monocromatico oppure è fatto di due cammini monocromatici. Esercizio 3 Sia T un albero con m vertici e sia N = (m − 1)(n − 1) + 1; si dimostri che per ogni 2-colorazione di KN possiamo trovare una copia di T monocromatica rossa oppure una copia di Kn monocromatica blu. Esercizio 4 Dimostrare che per ogni k ∈ N esiste n ∈ N tale che, considerando l’insieme X = {A ⊂ {1, . . . , n} ∶ ∣A∣ = 3} e colorando ogni suo elemento di rosso o blu, esiste sempre un sottoinsieme B ⊆ X tale che ∣B∣ = k e ogni A ∈ X con A ⊂ B è dello stesso colore. 37 9 Planarità Diciamo che un grafo è planare se “possiamo disegnarlo sul piano senza far incrociare gli archi, se non nei vertici”; tale disegno è detto rappresentazione piana. Ad esempio, consideriamo il grafo K4 : sebbene questo disegno non sia una rappresentazione piana, il grafo K4 è planare, infatti possiamo rappresentarlo in una delle seguenti forme Allo stesso modo, i grafi ciclici, gli alberi e quelli che rappresentano i solidi platonici sono planari, come si può verificare controllando le rappresentazioni fornite nelle pagine precedenti. D’altra parte, abbiamo anche esempi di grafi che sembrano non essere proprio planari, ad esempio Kn con n ≥ 5, il grafo di Petersen, K3,3 e più complicati grafi bipartiti. Il fatto però che non riusciamo ad immaginarci una rappresentazione planare di questi grafi non è una dimostrazione del fatto che non ne abbiano una. Cercheremo, nel seguito, di capire un poco quali strumenti si possano usare per determinare la planarità di un grafo. Consideriamo il grafo planare G; una sua rappresentazione piana divide il piano in un numero finito di parti, dette faccie, di cui una illimitata. Ad esempio, K4 divide il piano in 4 faccie, un grafo ciclico in 2. Quanto segue è un enunciato classico, attribuito ad Eulero. Proposizione 34 (Eulero) Se G è un grafo planare connesso e indichiamo con V il numero di vertici, E il numero di archi e F il numero di faccie di una sua rappresentazione piana, si ha V + F = E + 2. Dim: Se E = 0 allora V = F = 1 e la formula è vera; se G è un albero, allora F = 1, V = n e E = n − 1, quindi ancora la formula è verificata. Ora supponiamo di averlo mostrato per tutti i grafi con meno di E archi e supponiamo che G sia un grafo con E archi che contenga almeno un ciclo (ovvero che non sia un albero); sia e un arco di G che appartiene ad un ciclo e consideriamo G ∖ e. Tale grafo è planare, ha V vertici, E − 1 archi e F − 1 faccie, quindi sappiamo che per esso (che ha meno archi) deve valere V + (F − 1) = (E − 1) + 2, ovvero V + F = E + 2, che è quello che volevamo dimostrare. ◻ Questa formula, che ha una ovvia interpretazione anche in termini di poliedri convessi (ad ogni poliedro convesso corrisponde “naturalmente” un grafo planare), permette di ricavare alcune limitazioni che i grafi planari devono rispettare. Proposizione 35 Se G è un grafo planare connesso con almeno 3 vertici, allora E ≤ 3V − 6. 38 Dim: Ogni arco sta sul bordo di 2 faccie e, del resto, ogni faccia ha almeno 3 archi sul proprio bordo, quindi 2E ≥ 3F , da cui 2 2 + E = V + F ≤ V + E ⇒ E ≤ 3V − 6 , 3 che è la tesi. ◻ Proposizione 36 Se G è un grafo planare connesso senza triangoli, allora E ≤ 2V − 4. Dim: Per lo stesso ragionamento della proposizione precedente, poiché ogni faccia ha almeno 4 lati, si ha F ≤ E/2. Con lo stesso conto di prima, si ottiene la tesi. ◻ Notiamo che dalla Proposizione 35 segue il fatto che K5 non può essere planare: il grafo completo su 5 vertici ha V = 5, E = 10 e dunque, se fosse planare, si dovrebbe avere che 10 è minore di 3V − 6 = 15 − 6 = 9, il che è assurdo. D’altra parte, K3,3 rispetta questa condizione, in quanto per esso V = 6 e E = 9, che è minore di 3V − 6 = 18 − 6 = 12. La non planarità di K3,3 segue dalla Proposizione 36: infatti K3,3 , essendo bipartito, non può contenere cicli di lunghezza dispari e dunque in particolare triangoli, per cui si deve anche avere che E = 9 sia minore di 2V − 4 = 12 − 4 = 8, il che è assurdo. Proposizione 37 Sia G un grafo planare connesso. Allora G contiene almeno un vertice di grado 5 o meno. Dim: Sappiamo che E ≤ 3V − 6. Supponiamo che ogni vertice abbia grado maggiore o uguale a 6, allora 2E ≥ 6V (perché in ogni vertice arrivano almeno 6 archi, ma ogni arco ha per estremi esattamente due vertici) e dunque E ≥ 3V . Ma questo è assurdo, dunque c’è almeno un vertice di grado 5. ◻ Purtroppo tutti questi risultati, seppur utili in casi particolari, non danno una completa caratterizzazione dei grafi planari; allo scopo di enunciare un criterio di planarità, dobbiamo introdurre il concetto di minore. Il grafo H si dice minore di G se può essere ottenuto da G tramite le seguenti mosse (ripetute e combinate tra loro un numero finito di volte): i. eliminare un arco ii. eliminare un vertice (e quindi tutti gli archi che vi incidono) iii. contrarre un arco. L’ultima operazione ha forse bisogno di qualche spiegazione. Prendiamo ad esempio il seguente grafo Per contrarre l’arco rosso, innanzitutto identifichiamo i suoi due estremi, ottenendo 39 ed ora cancelliamo i cappi e identifichiamo gli archi doppi; il grafo risultante è Ad esempio, K5 è un minore del grafo di Petersen, ottenuto contraendo gli archi rossi. Si può dimostrare (e non è difficile, solo noioso) che, se G è planare, anche ogni minore di G è planare. Dunque, il grafo di Petersen di sicuro non è planare, poiché K5 non lo è. Vediamo inoltre che, contraendo gli archi rossi ed eliminando gli archi blu, possiamo realizzare K3,3 come minore del grafo di Petersen: 40 In generale, la presenza di K5 o K3,3 (o di entrambi!) è esattamente l’ostruzione alla planarità. Proposizione 38 (Kuratowski, Wagner) Un grafo è planare se e solo se K5 e K3,3 non sono minori di G. La dimostrazione di questo risultato, data da Kuratowski in una formulazione leggeremente diversa e raffinata in questa versione da Wagner nella propria tesi di dottorato, è oltre lo scopo di queste note. 9.1 Colorabilità Definiamo il numero cromatico di un grafo G (planare o meno) come il minimo numero di colori che dobbiamo usare per colorare i vertici di G se vogliamo che gli estremi di un arco siano sempre di colori diversi. Indichiamo tale numero con χ(G). Ad esempio, χ(C4 ) = 2, infatti deve essere almeno 2 poiché esiste almeno un arco, inoltre è un esempio di colorazione che rispetta le condizioni. Ovviamente si ha che, se G contiene Kn come sottografo, allora χ(G) ≥ n; d’altra parte, se G ha N vertici, allora χ(G) ≤ N , ma questa limitazione è assai grossolana. Proposizione 39 Sia G un grafo connesso in cui ogni vertice ha valenza al massimo k, allora χ(G) ≤ k + 1. Dim: Procediamo per induzione sul numero di vertici; sicuramente, k + 1 colori bastano per colorare un grafo con al massimo k + 1 vertici. Supponiamo dunque che G abbia n > k + 1 vertici e che noi sappiamo colorare con k + 1 colori ogni grafo con meno di n vertici in cui ogni vertice abbia valenza al più k. Prendiamo un vertice x di G e togliamolo. Per ipotesi induttiva sappiamo colorare quel che resta con k + 1 colori; ma x in G ha al più valenza k e dunque ha al più k vertici collegati con lui, dunque c’è almeno un colore che non abbiamo usato tra i vicini di x. Assegnamo tale colore ad x e abbiamo finito. ◻ In realtà, si può dimostrare che, se G non è né un grafo ciclico con un numero dispari di vertici, né un grafo completo, allora χ(G) ≤ k, se k è la massima valenza. Il problema di colorare un grafo è, in generale, molto complicato e vi sono esempi di numero cromatico che vanno da un estremo (2) all’altro (il numero di vertici). Per i grafi planari, però, si può dire qualcosa in più. Proposizione 40 Se G è un grafo planare, allora χ(G) ≤ 5. Dim: Procediamo per induzione sul numero di vertici; per il grafo con un solo vertice, il risultato è ovvio. Per la Proposizione 37, esiste almeno un vertice in G con grado minore o uguale a 5. Chiamiamolo x. Allora G′ = G ∖ {x} ha un vertice in meno e dunque, per ipotesi, può essere colorato con 5 colori. Se i vicini di x in G sono colorati con al più 4 colori, abbiamo finito, poiché possiamo attribuire ad x il quinto colore; altrimenti, chiamiamo ordinatamente in senso orario y1 , y2 , y3 , y4 , y5 i vicini di x e supponiamo che siano colorati con i colori 1, 2, 3, 4, 5 rispettivamente. Consideriamo il sottografo G1,3 formato da tutti e soli i vertici di G′ colorati coi colori 1 e 3 e gli archi che li collegano; se y1 e y3 non sono connessi da un cammino in G1,3 , basta scambiare i colori 1 e 3 nella componente di G1,3 che contiene y1 . In questo modo, y1 e y3 saranno entrambi colorati col colore 3 e potremo colorare x col colore 1. Se invece y1 e y3 sono collegati in G1,3 , allora esiste un ciclo che del tipo xy1 . . . y3 x che passa solo in G1,3 , escluso il punto x; per planarità, y2 e y4 non possono essere collegati in G2,4 , che è sconnesso 41 ⋱ ⋯ ⋯ ⋮ ⋯ y2 y3 x y1 y4 y5 Figura 28: Se esiste un cammino in G1,3 (qui in rosso e verde) tra y1 e y3 , allora y2 e y4 sono sconnessi in G2,4 (in rosa e blu), per planarità da G1,3 . Infatti il ciclo ottenuto sopra delimita una regione di piano che contiene solo y2 e non y4 e G2,4 non può avere archi o vertici in comune con G1,3 ; dunque esistono almeno due componenti connesse di G2,4 , una contenente y2 e delimitata dal ciclo trovato sopra ed una contenente y4 . Dunque possiamo scambiare i colori 2 e 4 nella componente di G2,4 che contiene y2 ; potremo allora attribuire ad x il colore 2. Questo esaurisce i casi possibili e produce una colorazione di G con 5 colori. ◻ Quindi, bastano 5 colori per colorare qualunque grafo planare. In realtà vale un risultato più forte. Proposizione 41 (Appel and Haken) Per ogni grafo planare G si ha χ(G) ≤ 4. Questo lieve miglioramento rispetto al risultato precedente è in realtà assai difficile da ottenere e nella dimostrazione originale fu impiegato un computer per verificare i quasi 2000 casi a cui era stato ridotto il teorema. 9.2 Esercizi Esercizio 1 Trovare un grafo G con χ(G) = 2 che abbia un vertice di valenza 1000. Esercizio 2 Dimostrare che ogni poliedro convesso può essere associato ad un grafo che abbia vertici, archi e faccie nello stesso numero in cui il poliedro ha vertici, spigoli e faccie. Esercizio 3 Sia G un grafo planare e siano {f1 , . . . , fn } le sue faccie. Il grafo duale G∗ ha come vertici l’insieme {f1 , . . . , fn } e {fi , fj } è un arco di G∗ se e solo se esiste un arco di G che sta nel bordo di fi e fj contemporaneamente. Dimostrare che G∗ è planare. Esercizio 4 Dimostrare che esistono solo 5 grafi di poliedri regolari, ovvero grafi planari regolari in cui ogni faccia abbia lo stesso numero di archi sul bordo. Esercizio 5 Trovare un grafo G che non contenga triangoli e tale che χ(G) = 4. Esercizio 6 Dimostrare che, se χ(G) = k, allora esistono almeno k vertici di valenza almeno k − 1. 42 Indice 1 I problemi di un museo 2 Pensiamoci un po’ 2.1 La visita guidata . . . . 2.2 I 5 lavori . . . . . . . . . 2.3 Scultura vs Pittura . . . 2.4 Controllando gli allarmi 2.5 Ristrutturazioni . . . . . 2.6 Vicini di casa . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 5 7 8 9 9 po’ di teoria Qualche grafo speciale . . . . . . . . . . . . Grafi isomorfi, sottografi, cicli e cammini I numeri di un grafo . . . . . . . . . . . . . Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 11 13 15 17 4 Alcune proprietà elementari 4.1 Alberi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Grafi bipartiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 21 23 24 5 Connessione e cammini 5.1 Percorsi euleriani . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Grafi 2−connessi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 27 28 30 6 Grafi hamiltoniani 6.1 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 32 7 Il teorema dei matrimoni 7.1 Applicazioni del teorema di Hall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 34 8 Teoria di Ramsey 8.1 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 37 9 Planarità 9.1 Colorabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 41 42 3 Un 3.1 3.2 3.3 3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43