Teoria dei grafi: esercizi con soluzioni passo passo

Esercizi gratuiti su Teoria dei grafi con schemi, suggerimenti e soluzioni svolte complete. Valori nuovi ogni volta, su tre livelli: gradi e lati, cammini euleriani e alberi, cammini minimi e alberi di copertura.

Esercizio gratuitoFacile

Un albero ha 12 vertici. Quanti lati |E| ha?

|V| = 12

Risposta esatta: un numero intero, senza arrotondamenti.

Esercizio successivo →
Esercitati su Teoria dei grafi gratisEsercitati su Teoria dei grafi ora5 esercizi gratuiti ogni giorno. Nessuna carta richiesta.

Su cosa ti eserciti

  1. Facilegradi e lati
  2. Mediacammini euleriani e alberi
  3. Difficilecammini minimi e alberi di copertura

Come risolvere gli esercizi di Teoria dei grafi

  1. Scrivi il grado di ogni vertice; la somma dei gradi è il doppio del numero di lati.
  2. Nelle domande su Eulero, verifica che il grafo sia connesso e conta i vertici di grado dispari.
  3. Per gli alberi, usa n − 1 lati e il lemma delle strette di mano.
  4. Per Dijkstra, tieni una tabella delle distanze provvisorie e a ogni passo fissa il vertice non ancora fissato con la distanza minima.
  5. Per un albero di copertura minimo, ordina i lati per peso e salta ogni lato che chiude un ciclo (Kruskal), oppure fai crescere un solo albero a partire da un vertice iniziale (Prim).

Errori comuni

  • Dimenticare di dividere per 2 la somma dei gradi.
  • Definire euleriano un grafo senza verificarne la connessione.
  • Fissare un vertice in Dijkstra prima che la sua distanza sia la minima.
  • Prendere i lati più leggeri senza controllare l’assenza di cicli.
  • Contare i cicli hamiltoniani di Kn come n! invece che (n − 1)!/2.

Formule chiave

Lemma delle strette di mano
Σ deg(v) = 2|E|
Grafi completi
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Grafo regolare
|E| = n·k/2
Albero e foresta
|E| = n − 1, |E| = n − c
Foglie di un albero
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Eulero
circuito: tutti i gradi pari; cammino: esattamente 2 gradi dispari
Cicli hamiltoniani in Kn
(n − 1)!/2
Aggiornamento di Dijkstra
d(v) = min(d(v), d(u) + w(u, v))
Cammini di lunghezza L
(Mᴸ)ij

Impara Teoria dei grafi da zero

Prima di questo: Insiemi, relazioni e funzioni

1Vertici, lati e gradi

Un grafo è formato da vertici (punti) e lati (linee tra due vertici). In un grafo semplice non ci sono cappi né lati doppi.

Il grado di un vertice è il numero di lati che vi arrivano. Ogni lato ha due estremi, quindi aggiunge 1 al grado di ciascuno. Ne risulta il lemma delle strette di mano:

Σ deg(v) = 2·|E|

Due conseguenze: la somma dei gradi è sempre pari, e anche il numero di vertici di grado dispari è pari.

  • Il grafo completo Kn unisce ogni coppia: n(n − 1)/2 lati.
  • Il grafo bipartito completo Km,n unisce ogni vertice di una parte a ogni vertice dell’altra: m·n lati.
  • Un grafo k-regolare con n vertici ha n·k/2 lati.

La matrice di adiacenza ha un 1 in (i, j) quando i e j sono uniti. Per un grafo non orientato è simmetrica, la somma di una riga è un grado, e l’elemento (i, j) di Mᴸ conta i cammini di lunghezza L da i a j.

Autoverifica Un grafo ha gradi 3, 3, 2, 2, 2. Quanti lati ha?
  1. 10
  2. 12
  3. 5
  4. 6

Risposta: 6. I gradi sommano a 12 e ogni lato è contato due volte, quindi i lati sono 12/2 = 6. 5 è il numero di vertici.

2Eulero e Hamilton

Un circuito euleriano usa ogni lato esattamente una volta e torna al punto di partenza. Un cammino euleriano usa ogni lato una volta ma può finire altrove. Per un grafo connesso:

  • tutti i gradi pari: esiste un circuito euleriano;
  • esattamente due gradi dispari: esiste un cammino euleriano, da un vertice dispari all’altro;
  • più di due gradi dispari: nessuno dei due.

Un ciclo hamiltoniano visita ogni vertice esattamente una volta. Non esiste un semplice test sui gradi. In Kn ci sono (n − 1)!/2 cicli hamiltoniani distinti: si fissa la partenza, si ordinano gli altri n − 1 vertici e si divide per 2 per i due versi.

Autoverifica Un grafo connesso ha gradi 2, 3, 4, 3, 2. Che cosa ha?
  1. Nessuno dei due
  2. Sia un circuito euleriano sia un cammino euleriano che non è un circuito
  3. Un cammino euleriano, ma nessun circuito euleriano
  4. Un circuito euleriano

Risposta: Un cammino euleriano, ma nessun circuito euleriano. Esattamente due vertici hanno grado dispari (i due 3), quindi esiste un cammino euleriano tra loro, ma non un circuito.

3Alberi

Un albero è un grafo connesso senza cicli. Ogni albero con n vertici ha esattamente n − 1 lati. Aggiungere un lato qualsiasi crea un ciclo; toglierne uno qualsiasi lo sconnette.

Una foresta di c alberi su n vertici ha n − c lati. Un grafo connesso con m lati mantiene un albero di copertura dopo aver tolto m − n + 1 lati.

Il lemma delle strette di mano permette di contare le foglie: Σ deg = 2(n − 1). Una forma breve è L = 2 + Σ (d − 2) sui vertici di grado d ≥ 3. Un albero con due vertici di grado 3 e il resto foglie ha 2 + 1 + 1 = 4 foglie.

4Dijkstra e alberi di copertura minimi

L’algoritmo di Dijkstra trova le distanze minime da un vertice iniziale in un grafo con pesi non negativi.

  1. Assegna distanza 0 al vertice iniziale e ∞ a tutti gli altri.
  2. Fissa il vertice non ancora fissato con la distanza minima; la sua distanza è ora definitiva.
  3. Per ogni vertice adiacente v, aggiorna d(v) = min(d(v), d(u) + w(u, v)).
  4. Ripeti finché il vertice di arrivo non è fissato.

Un albero di copertura minimo collega tutti i vertici con il peso totale più piccolo. Kruskal ordina i lati dal più leggero al più pesante e prende ciascuno a meno che chiuda un ciclo. Prim fa crescere un solo albero a partire da un vertice iniziale, aggiungendo sempre il lato più leggero che ne esce. Entrambi si fermano dopo n − 1 lati.

Esempio svolto

Trova la distanza minima da A a E nel grafo qui sotto.

1

Inizio

412581ABCDE

d(A) = 0. I suoi vertici adiacenti ricevono d(B) = 4 e d(C) = 1.

2

Fissa C (1)

Passando per C: d(B) = min(4, 1 + 2) = 3 e d(E) = 1 + 8 = 9.

3

Fissa B (3)

Passando per B: d(D) = 3 + 5 = 8.

4

Fissa D (8)

Passando per D: d(E) = min(9, 8 + 1) = 9. Nessun miglioramento, è un pareggio.

5

Fissa E (9)

E è fissato: la sua distanza è definitiva.

Risposta

La distanza minima è d(E) = 9, lungo A → C → E. Anche il percorso A → C → B → D → E ha la stessa lunghezza, 1 + 2 + 5 + 1 = 9.

Autoverifica L’algoritmo di Kruskal ha preso i lati di peso 1, 2 e 3. Il lato più leggero successivo, di peso 4, unisce due vertici già connessi. Che cosa succede?
  1. L’algoritmo si ferma
  2. Viene invece rimosso il lato di peso 3
  3. Viene preso perché è il più leggero rimasto
  4. Viene saltato perché chiuderebbe un ciclo

Risposta: Viene saltato perché chiuderebbe un ciclo. Kruskal non chiude mai un ciclo: un lato tra due vertici della stessa componente viene saltato e l’algoritmo passa al lato successivo.

5Errori comuni

  • Dimenticare di dividere per 2 la somma dei gradi per ottenere il numero di lati.
  • Verificare l’esistenza di un circuito euleriano senza controllare che il grafo sia connesso.
  • Fissare un vertice in Dijkstra prima che abbia la distanza provvisoria minima.
  • Prendere gli n − 1 lati più leggeri senza controllare l’assenza di cicli.
  • Contare i cicli hamiltoniani di Kn come n! invece che (n − 1)!/2.

6Come sono fatte le domande d’esame

  • Facile: gradi e lati. Usi il lemma delle strette di mano, conti i lati di Kn, Km,n, dei grafi regolari e degli alberi, leggi una matrice di adiacenza o clicchi il vertice con un grado dato.
  • Medio: cammini euleriani e alberi. Decidi se un grafo ha un circuito o un cammino euleriano, conti le foglie di un albero, conti i lati da togliere per ottenere un albero di copertura o i cicli hamiltoniani in Kn.
  • Difficile: cammini minimi e alberi di copertura. Esegui l’algoritmo di Dijkstra, trovi il vertice fissato in un dato passo, trovi il peso di un albero di copertura minimo, clicchi il lato che Kruskal o Prim aggiunge dopo, o conti i cammini con la matrice di adiacenza.

Impara passo dopo passo nell’appImpara passo dopo passo nell’app

Esempi svolti

Esempio 1Facile
AABBCCDDEE0010000001100010000101110

È mostrata la matrice di adiacenza di un grafo semplice non orientato. Quanti lati |E| ha il grafo?

Calcola |E|

Mostra i suggerimenti
  1. L’elemento (i, j) vale 1 quando i vertici i e j sono uniti da un lato.
  2. Ogni lato {i, j} dà due 1: uno in (i, j) e uno in (j, i).
  3. La matrice contiene 8 uni.
Mostra la risposta e la soluzione passo passo

Gradi: il grado di un vertice è il numero di lati che vi arrivano. Ogni lato ha due estremi, quindi i gradi sommano al doppio del numero di lati: Σ deg(v) = 2|E| (il lemma delle strette di mano). Il numero di vertici di grado dispari è quindi pari. Kn ha n(n − 1)/2 lati, un grafo k-regolare con n vertici ne ha nk/2, e un albero con n vertici ha n − 1 lati.

Conta gli uno

somme delle righe: 1 + 1 + 2 + 1 + 3 = 8
|E| = 8/2 = 4

Risposta

|E| = 4
Esempio 2Media
ABCDEFGCircuito eulerianoCammino euleriano, nessun circuitonessuna delle due

Il grafo connesso ha un circuito euleriano, un cammino euleriano che non è un circuito, oppure nessuno dei due? Clicca la tua risposta.

|V| = 7|E| = 10
  1. 1Circuito euleriano
  2. 2Cammino euleriano, nessun circuito
  3. 3nessuna delle due
Mostra i suggerimenti
  1. Il teorema di Eulero richiede solo i gradi dei vertici (il grafo è connesso).
  2. Tutti i gradi pari: circuito euleriano. Esattamente due gradi dispari: cammino euleriano tra di essi. Di più: nessuno dei due.
  3. Conta i vertici di grado dispari.
Mostra la risposta e la spiegazione

Eulero, Hamilton e alberi: un grafo connesso ha un circuito euleriano (ogni lato una volta, di nuovo al punto di partenza) quando ogni vertice ha grado pari, e un cammino euleriano che non è un circuito quando esattamente due vertici hanno grado dispari; il cammino va allora da un vertice dispari all’altro. Un ciclo hamiltoniano visita ogni vertice una volta; Kn ne ha (n − 1)!/2. Un albero con n vertici ha n − 1 lati, e un grafo connesso con m lati mantiene un albero di copertura dopo aver tolto m − n + 1 lati.

Gradi

deg(A) = 1, deg(B) = 4, deg(C) = 2, deg(D) = 4, deg(E) = 4, deg(F) = 2, deg(G) = 3

Vertici dispari

A, G → 2
Cammino euleriano, nessun circuito

Risposta

Cammino euleriano, nessun circuito

Il cammino euleriano parte da un vertice dispari e termina nell’altro.

Esempio 3Difficile
ABCDEF

Quanti cammini chiusi di lunghezza 3 partono e terminano in E? Un cammino può ripetere vertici e lati. Chiama il numero N.

M = matrice di adiacenzaL = 3

Calcola N

Mostra i suggerimenti
  1. Con la matrice di adiacenza M, il numero di cammini di lunghezza L da i a j è l’elemento (i, j) di Mᴸ.
  2. Conta prima i cammini di lunghezza 2 da E a ogni vertice, poi fai un altro passo.
  3. Cammini di lunghezza 2 da E: A: 2, B: 1, C: 0, D: 2, E: 4, F: 1.
Mostra la risposta e la soluzione passo passo

Gradi: il grado di un vertice è il numero di lati che vi arrivano. Ogni lato ha due estremi, quindi i gradi sommano al doppio del numero di lati: Σ deg(v) = 2|E| (il lemma delle strette di mano). Il numero di vertici di grado dispari è quindi pari. Kn ha n(n − 1)/2 lati, un grafo k-regolare con n vertici ne ha nk/2, e un albero con n vertici ha n − 1 lati.

Matrice di adiacenza

A: 0 1 1 0 0 0
B: 1 0 0 1 1 0
C: 1 0 0 0 1 0
D: 0 1 0 0 1 1
E: 0 1 1 1 0 1
F: 0 0 0 1 1 0

Un altro passo

(M³)EE = 2·0 + 1·1 + 0·1 + 2·1 + 4·0 + 1·1 = 4

Risposta

N = 4

Domande e risposte

Teoria dei grafi: di cosa si tratta?

Un grafo è formato da vertici (punti) e lati (linee tra due vertici). In un grafo semplice non ci sono cappi né lati doppi.

Il grado di un vertice è il numero di lati che vi arrivano. Ogni lato ha due estremi, quindi aggiunge 1 al grado di ciascuno. Ne risulta il lemma delle strette di mano:

Teoria dei grafi: come si risolvono gli esercizi passo per passo?
  1. Scrivi il grado di ogni vertice; la somma dei gradi è il doppio del numero di lati.
  2. Nelle domande su Eulero, verifica che il grafo sia connesso e conta i vertici di grado dispari.
  3. Per gli alberi, usa n − 1 lati e il lemma delle strette di mano.
  4. Per Dijkstra, tieni una tabella delle distanze provvisorie e a ogni passo fissa il vertice non ancora fissato con la distanza minima.
  5. Per un albero di copertura minimo, ordina i lati per peso e salta ogni lato che chiude un ciclo (Kruskal), oppure fai crescere un solo albero a partire da un vertice iniziale (Prim).
Teoria dei grafi: quali sono gli errori più comuni?
  • Dimenticare di dividere per 2 la somma dei gradi.
  • Definire euleriano un grafo senza verificarne la connessione.
  • Fissare un vertice in Dijkstra prima che la sua distanza sia la minima.
  • Prendere i lati più leggeri senza controllare l’assenza di cicli.
  • Contare i cicli hamiltoniani di Kn come n! invece che (n − 1)!/2.
Teoria dei grafi: che cosa si esercita?
  • Facile: gradi e lati
  • Media: cammini euleriani e alberi
  • Difficile: cammini minimi e alberi di copertura

Ogni esercizio ha valori nuovi, così impari il metodo invece di una risposta. Bloccato? Apri prima un piccolo suggerimento e la spiegazione completa solo quando ti serve.

Come funziona l’esercitazione

  • Ogni esercizio ha valori nuovi, così impari il metodo invece di una risposta.
  • Bloccato? Apri prima un piccolo suggerimento e la spiegazione completa solo quando ti serve.
  • I tuoi progressi, i tuoi errori e gli esercizi salvati restano memorizzati, così puoi ripassare prima dell’esame.

Argomenti prima e dopo questo

Da studiare prima

Corsi con questo argomento

Altri argomenti di Matematica e statistica

Scheda di esercizi stampabile

Esercitati su Teoria dei grafi gratisEsercitati su Teoria dei grafi ora5 esercizi gratuiti ogni giorno. Nessuna carta richiesta.