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