Sei sulla pagina 1di 48

CONCETTI FONDAMENTALI Un grafo formato da un insieme (finito) V, i cui elementi sono detti vertici, e da una collezione E di coppie non

n ordinate di elementi di V, che sono dette lati o spigoli. Un grafo si denota con G=(V,E). Il lato {x,y} viene indicato con [x,y] o pi semplicemente con xy. In questo caso i vertici x, y sono detti adiacenti tra di loro e incidenti al lato {x,y}. Nel caso che x=y, cio il lato {x,x} viene detto cappio. Se gli elementi di E sono tutti distinti e non ci sono cappi, il grafo viene detto semplice, in caso contrario si parla di multigrafo.

ESEMPIO 1

V = {a,b,c} E1 = {{a,b}{a,c}} E2 = {{a,a}{a,b}{b,c}{b,a}}


G = (V,E1) un grafo semplice, G = (V,E2) un multigrafo. Una rappresentazione suggestiva di un grafo quella geometrica, in cui i vertici sono rappresentati da punti (di un piano) ed i lati da archi (o segmenti) che congiungono i vertici adiacenti. I grafi precedenti sono rappresentati:

G:

V = {a,b,c} E1 = {{a,b}{a,c}}
b

a c

oppure

b a

G: V = {a,b,c} E2 = {{a,a}{a,b}{b,c}{b,a}}
b a c b a c oppure

I grafi sono utili per modellizzare problemi che si presentano nelle aree pi svariate: informatica, chimica, fisica, ecc

ESEMPIO 2 Torneo di calcio tra 5 squadre V = {A, B, C, D, E} ed alla fine della seconda giornata la situazione la seguente: -A ha vinto con C e perso con D -B ha perso con E e pareggiato con C -C ha perso con A e pareggiato con B -D ha vinto con A -E ha vinto con B.

La situazione pu essere rappresentata o tramite il seguente grafo, che indica quali squadre si sono incontrate
A E

:-A ha vinto con C e perso con D -B ha perso con E e pareggiato con C


B

G1

-C ha perso con A e pareggiato con B


-D ha vinto con A -E ha vinto con B.

D C

O tramite il seguente grafo orientato, cio gli spigoli sono degli archi orientati, e il verso indica quale squadra ha vinto:
A

E B

Alla fine del torneo ogni squadra ha giocato con tutte le altre, quindi la situazione rappresentata da

Grafo completo con 5 vertici che viene indicato con K5.

In generale un grafo completo viene indicato con Kn.

Un grafo G=(V,E) si dice sottografo di G=(V,E) se V E E. Nellesempio precedente G1 un sottografo di K5.

Ve

Un sottografo G=(V,E) si chiama sottografo indotto su V se E contiene tutti gli spigoli di E incidenti a due vertici di V. Nellesempio precedente G1 non un sottografo indotto di K5, mentre il grafo G1 = (V1,E1) con V1={A,B,C} e E1={AB,AC,BC} un sottografo indotto di K5.
A

Un altro modo di rappresentare i grafi quella matriciale, anzi possiamo associare ad ogni grafo due diverse matrici.

Diamo le definizioni nel caso di un grafo semplice G = (V,E), con V = {v1,v2,...,vn} e E = {e1,e2,,em}
Matrice di incidenza

una matrice di tipo [n,m] il cui generico elemento aij = 1 se il vertice vi incidente lo spigolo ej , aij = 0 in caso contrario.

Ad esempio, disegnare il grafo G la cui matrice di incidenza :


e1 1 2 3 4 e2 e3 e4 e5 e6

1 1 0 0 0

0 1 0 0 1

1 0 0 0 1

0 1 1 0 0

0 0 1 1 0

0 0 0 1 1

10

Matrice di adiacenza o tabella di connessione

E una matrice quadrata di ordine n il cui generico elemento bij = 1 se il vertice vi adiacente al vertice vj, bij = 0 in caso contrario. Ad esempio la matrice associata al grafo precedente :

11

1
2 3 4 5

0 1

1 0

0 1

0 0

1 1
5
2

0 0
1

1 0
1

0 1
0

1 0
1

0 1
0
4 3

Chiaramente tale matrice simmetrica ed ha tutti 0 sulla diagonale principale.

12

Chiamiamo grado o valenza di un vertice v il numero degli spigoli incidenti v (= numero dei vertici adiacenti a v, nel caso dei grafi semplici). Tale numero viene indicato con d(v). Il minimo grado, al variare di v in V(G), viene indicato con (G).

Proposizione 1 -

v Vd(v)

= 2 |E(G)|

- il numero dei vertici di grado dispari un numero pari.


Dim. Ogni vertice incidente con d(v) lati; daltra parte ogni lato incidente con 2 vertici, da cui la tesi. -Partizionando l insieme V(G) nei due sottoinsiemi: V1 = {vertici di grado pari} e V2 ={vertici di grado dispari} si ha la tesi.

13

CAMMINI E CONNESSIONI

Si definisce cammino (walk) di un grafo una sequenza alternata di vertici e lati v0 e1 v1 e2 eh vh in cui ogni lato incidente con il vertice che lo precede e con il vertice che lo segue, inoltre inizia e finisce con un vertice.
Questo cammino pu anche essere indicato con

v0, v1, , vh
essendo gli spigoli evidenti dal contesto; h detto lunghezza del cammino.

14

Se tutti gli spigoli sono distinti si parler di cammino semplice (trail), se tutti i vertici (e quindi tutti i lati) sono distinti si parler di cammino elementare (path) o catena. Un cammino chiuso (cio v0=vh) viene detto circuito, un cammino elementare di lunghezza h > 3 viene detto ciclo. Un grafo formato da un solo ciclo pu essere rappresentato geometricamente come un poligono e viene indicato con Ch:

C3
C4 C6
15

Due vertici vi e vj si dicono congiungibili o raggiungibili se esiste un cammino che inizia da vi e finisce con vj .

Un grafo si dice connesso se due vertici qualsiasi sono sempre congiungibili. Da un punto di vista intuitivo un grafo connesso se nella sua rappresentazione geometrica non compaiono parti separate. Ad esempio il grafo G precedente l unione di tre parti, dette componenti connesse :
C3 C4 C6

16

Osservazione Sia G un grafo connesso. Il grafo G-v ottenuto da G cancellando un vertice v e gli h spigoli ad esso incidenti avr m componenti connesse, con 1mh.

Non esistono condizioni necessarie e sufficienti per stabilire se un grafo connesso. Ma esistono alcune condizioni sufficienti.

17

TEOREMA Un grafo (semplice) connesso con n vertici ha almeno n-1 lati


DIM. Procediamo per induzione su n. Se n=2, il grafo per essere connesso deve possedere almeno uno spigolo.

Supponiamo il teorema vero per kn-1 e dimostriamolo per k=n. Sia v V(G) un vertice di grado m. Il grafo G-v sar un grafo formato da h componenti connesse, G1 G2 Gh , ognuna delle quali ha ni n-1 vertici. Per ipotesi induttiva si ha |E(Gi)|ni-1.

18

|E(G-v)|= = (n-1)-h

Da cui
|E(G)| (n-1)-h+m =(n-1)+(m-h) (n-1).

c.v.d.

19

TEOREMA Un grafo (semplice) con n vertici e grado minimo un grafo connesso.


.

DIM. Procediamo per assurdo. Se un grafo non connesso, esso formato da almeno due componenti G1 ,G2 . Per un qualsiasi v V(G1) si ha d(v) e quindi | V(G1)| d(v)+1 Analogamente si ha: | V(G2)| Da | V(G)| = | V(G1)|+ | V(G2)| n+1, assurdo. +1 =

20

PROBLEMI RELATIVI A CAMMINI

Poche discipline possono datare la loro nascita con la precisione della teoria dei grafi,che nata nel 1736 per opera del famoso matematico svizzero, noto in Italia con il nome di Eulero. La citt di Konisberg attraversata dal fiume Pregel, che la divide in quattro parti; queste sono collegate tra di loro da sette ponti. E possibile fare una passeggiata per la citt partendo da un punto qualsiasi, percorrendo ogni parte una sola volta e tornando al punto di partenza?
21

Eulero modellizz il problema con il seguente multigrafo

e dimostr che il problema non aveva soluzioni.

22

DEFINIZIONE Un cammino euleriano un cammino che contiene ciascun lato una ed una sola volta. Se il cammino chiuso si chiama ciclo di Eulero. TEOREMA Un grafo connesso contiene un ciclo di Eulero se e solo se ogni vertice ha grado pari.

23

COROLLARIO Un grafo connesso contiene un cammino di Eulero se e solo se ha esattamente due vertici di grado dispari.

Ad esempio per disegnare la figura precedente senza alzare la penna dal foglio basta partire da uno dei vertici di grado dispari!!!

24

Un altro problema collegato a cammini quello di passare per tutti i vertici una ed una sola volta.
DEFINIZIONE Un ciclo hamiltoniano (di Hamilton) un ciclo che contiene tutti i vertici una ed una sola volta. Un grafo detto hamiltoniano se possiede un ciclo ha miltoniano.
Non esiste nessuna caratterizzazione dei grafi hamiltoniani, tranne che per alcune particolari classi di grafi (cicli, grafi completi). In generale si hanno solo delle condizioni sufficienti, di cui omettiamo la dimostrazione

25

TEOREMA (di ORE) Sia G un grafo semplice con n>2 vertici. Se comunque si scelgono due vertici, u e v, non adiacenti, si ha che d(u)+d(v) n, allora G hamiltoniano.

TEOREMA (di DIRAC) Sia G un grafo semplice con n>2 vertici. Se ogni vertice ha grado n/2 allora G hamiltoniano.

26

Queste sono condizioni sufficienti, ma non necessarie come si vede facilmente con il seguente grafo

In cui il grado minimo 2 < n/2

27

Problema del commesso viaggiatore : il commesso viaggiatore deve visitare alcune citt e vuole organizzare il giro in modo da percorrere il minor numero di strade (chilometri). Rappresentando le citt con i vertici di un grafo e le strade che le collegano con gli archi (eventualmente indicizzate dalla loro lunghezza), si tratta di determinare un ciclo hamiltoniano di tale grafo. DEFINIZIONE Un gafo bipartito un grafo tale che V(G)=V1 V2 e gli spigoli collegano solo vertici di V1 con vertici di V2. Un grafo bipartito completo (cio con tutti i possibili spigoli) viene indicato con Km,n. COROLLARIO Il grafo Km,n hamiltoniano se e solo se m = n.

28

GRAFI E RELAZIONI
.

Data una relazione binaria (simmetrica e non riflessiva) su un insieme A, questa pu essere rappresentata tramite un grafo G i cui vertici sono gli elementi di A e due vertici distinti sono adiacenti se sono in relazione tra di loro. La rappresentazione tabulare di la matrice di adiacenza del grafo. Viceversa, dato un grafo semplice G = (V,E) si pu definire una relazione nellinsieme V dicendo che due vertici sono in relazione se e solo se sono adiacenti.

DEFINIZIONE La (k+1)-esima potenza di una relazione relazione composta k (k1)


k+1= k.

su un insieme V la

Analogamente =
29

LEMMA Data una relazione


k

su un insieme V, vale lidentit = k.

Dim. Si procede per induzione su k.

COROLLARIO

Dim. Si procede per induzione su k.

TEOREMA Sia G =(V, ). Esiste un cammino di ordine k tra un vertice u e un vertice v se e solo se u k v.
Dim. Si procede per induzione: k=1, u v se e solo se u e v sono adiacenti.

Sia u = v0, v1, , vk-1, vk = v un cammino tra u e v; applicando lipotesi induttiva si ha:

k-1

vk-1 e vk-1

v
30

da cui

k-1

v=u
k

v. v vk-1 da cui applicando lipotesi induttiva esiste il cammino vk = v, da cui la tesi.

Viceversa u = v0, v1,

v=u

k-1

, vk-1 e

COROLLARIO Dato un grafo G =(V, ) la matrice descrive la relazione su V Esiste un camm ino di lunghezza k.

ci significa che la ricerca dell esistenza di un cammino tra due vertici equivale alla ricerca di un eventuale potenza k di tale che lelemento di posto i j vale 1 e che un grafo connesso se per ogni coppia di vertici, u e v esiste un k tale che u k v.
31

Verificare se i grafi G e G aventi le seguente matrici di adiacenza sono connessi o meno


1
1 2 3 4 5

0 1 0 0 1

1 0 1 0 1

0 1 0 1 0

0 0 1 0 1

1 1 0 1 0

Determinare M2
32

1 1 2 3 4 5 6 7 0 1 1 0 0 0 0

2 1 0 1 0 0 0 0

3 1 1 0 0 0 0 0

4 0 0 0 0 1 0 1

5 0 0 0 1 0 1 0

6 0 0 0 0 1 0 1

7 0 0 0 1 0 1 0

33

ALBERI
Problema del collegamento minimo: si vuole collegare un certo numero di citt tramite linee di comunicazione, in modo tale che la lunghezza (il costo) totale sia minima. Questo significa che ogni citt deve essere raggiungibile da tutte le altre e non ci devono essere ripetizioni. Rappresentando le citt con i vertici di un grafo e le linee di comunicazioni con gli

archi, il problema rappresentato da un grafo connesso privo di cicli, cio da un


albero. Definizione Un albero un grafo connesso privo di cicli. Un albero con un solo vertice e privo di spigoli detto singolare.

34

Gli alberi sono caratterizzati dal seguente TEOREMA 1. G un albero non singolare 2. Ogni coppia di vertici collegato da una sola catena (o cammino elementare) 3. G connesso, ma leliminazione di un lato rende il grafo non connesso 4. G privo di cicli, ma con laggiunta di un lato si ottiene uno ed un solo ciclo.

Dim. 1 2 Poich G connesso, due vertici u e v sono sempre raggiungibili. Se esistessero due cammini distinti la loro unione darebbe luogo ad un ciclo. 2 3 G connesso perch esiste sempre un unico cammino che li connette; daltra parte se si elimina uno spigolo i due vertici ad esso incidente non sono pi raggiungibili, quindi il grafo e non connesso.
35

3 4 Se G contenesse un ciclo, leliminazione di uno spigolo da tale ciclo non renderebbe il grafo non connesso; pertanto esso privo di cicli. Siano u e v due vertici non adiacenti. Poich G connesso esiste un cammino che collega u e v. Aggiungendo lo spigolo vu si ha un ciclo. Se tale ciclo non fosse unico, significa che esistono due cammini distinti che collegano u e v, la cui unione d luogo ad un ciclo, assurdo. 4 1 Per ipotesi G privo di cicli, dobbiamo dimostrare che connesso. Siano u e v due vertici non adiacenti; aggiungendo lo spigolo vu si ottiene un ciclo u= v0, v1, , vk-1, vk = v, u cio esiste un cammino tra u e v.

COROLLARIO Un albero finito non singolare possiede almeno due vertici di grado 1
Dim. Sia k la lunghezza massima dei cammini di G e sia u = v0, v1, , vk-1, vk = v un cammino di lunghezza massima. Se u non avesse grado 1, esisterebbe un vertice u distinto dai precedenti e adiacente a u; e ci assurdo perch il cammino u u, v1, , vk-1, vk = v avrebbe lunghezza k+1. Analogamente il vertice v ha grado 1.

36

Un albero finito ha unulteriore caratterizzazione.

TEOREMA Sia G un grafo finito con n vertici 1. G un albero 2. G privo di cicli e |E(G)| = n-1 3. G connesso e |E(G)| = n-1.
Dim. 1 2 Essendo G un grafo connesso |E(G)| n-1. Dimostriamo che vale luguaglianza per induzione su n. Per n=2 il teorema vero. Per n qualsiasi, essendo G un albero, esso possiede almeno due vertici di grado 1. Eliminando uno di tali vertici si ha un albero con n-1 vertici e, per lipotesi induttiva, n-2 lati; da cui la tesi.

2 3 Bisogna dimostrare solo che G connesso. Indichiamo con k il numero delle componenti connesse: T1, T2, , Tk Ogni Ti un albero che ha ni vertici e ni-1 spigoli. Pertanto |E(G)| = Da cui la tesi.
37

)| =

-1) =

k = n k = n 1.

3 1 Supponiamo che G contenga almeno un ciclo. Eliminando uno spigolo da un ciclo, il grafo ancora connesso ed ha n-2 spigoli, il che assurdo.

38

DEFINIZIONE Un albero ricoprente (o supporto) di un grafo G un albero sottografo parziale di G (che contiene tutti i vertici).

TEOREMA Ogni grafo connesso finito G ammette almeno un albero ricoprente.


Dim. Sia |V(G)| = n e |E(G)| = m n-1. Procediamo per induzione su m. Se m = n-1, G un albero. Se m > n-1, G ha almeno un ciclo. Eliminando un lato da tale ciclo si ha un grafo che ha n vertici e m-1 spigoli; quindi per lipotesi induttiva, tale sottografo ammette un albero ricoprente che anche sottografo di G.

Dalla dimostrazione precedente si evince che esistono vari alberi ricoprenti di uno stesso grafo. Illustriamo alcuni algoritmi per costruire un albero ricoprente.

39

VISITA IN PROFONDITA

Sia G=(V,E) un grafo connesso Si sceglie un vertice x1 e si ha lalbero T1 = x1, Si sceglie un vertice x2 adiacente x1 e si considera lalbero T2 avente V(T2) = x1,x2 e E(T2)= x1x2 Se esiste un vertice x3 x1 adiacente x2, si considera lalbero T3 avente V(T3) = x1,x2 , x3 e E(T3)= x1x2, x2x3 ; in caso contrario si sceglie un vertice x3 x2 adiacente x1, si considera lalbero T3 avente V(T3) = x1,x2 , x3 e E(T3)= x1x2, x1x3 In generale, se esiste un vertice xi+1 distinto dai precedenti e adiacente xi, si considera lalbero Ti+1 avente V(Ti+1) = x1,x2 ,, xi, xi+1 e E(Ti+1)= x1x2, , xixi+1 ; in caso contrario si sceglie un vertice xi+1, distinto dai precedenti e adiacente xj con 1 j i-1, e si considera lalbero Ti+1 avente V(Ti+1) = x1,x2 , , xj, , xi, xi+1 e E(Ti+1)= x1x2, ,xi-1xi,, xjxi+1 Il procedimento ha fine quando si sono visitati tutti vertici
40

ESEMPIO
Applichiamo lalgoritmo precedente al seguente grafo
x2
x3 x1 x5 x6

x4
x7 x8

V(T1) = x1 V(T2) = {x1, x2} V(T3) ={x1, x2, x3} (la scelta obbligata) scegliamo x4 poich non ci sono vertici distinti dai precedenti adiacenti ad x4, torniamo al vertice x3 e scegliamo il vertice x5 V(T6) = {x1, x2, x3,x4, x5, x6} V(T7) = {x1, x2, x3,x4, x5, x6 , x7} poich non ci sono vertici distinti dai precedenti adiacenti ad x7, torniamo al vertice x6 e scegliamo il vertice x8

41

VISITA IN AMPIEZZA

si sceglie un vertice x1, radice dellalbero si considerano tutti vertici adiacenti a x1 e gli spigoli che li collegano a x1 si considerano i vertici adiacenti ai vertici precedenti, distinti da essi e da x1 si procede finch non sono stati toccati tutti vertici e stando attenti che non ci siano cicli.

Applicando tale algoritmo al grafo precedente otteniamo


x2 x3

x4 x7

x1
x5

x6

x8

Sappiamo che in un albero esiste un unico cammino tra due vertici; definiamo livello del vertice xi la lunghezza del cammino che unisce x1 a xi. Il vertice x1 detto radice.
42

GRAFI ORIENTATI
Un grafo orientato o digrafo formato da un insieme (finito) V, i cui elementi sono detti vertici, e da un sottoinsieme R di VxV di coppie ordinate di elementi di V, che sono dette archi. Un grafo si denota con G=(V,R). Quindi, a differenza di un grafo semplice, gli spigoli di un digrafo sono delle coppie ordinate (x,y).

Nella rappresentazione geometrica di un digrafo i vertici sono rappresentati da punti (di un piano) e i lati da archi (o segmenti) orientati che congiungono i vertici.

43

A E e1 B e2 e3 e4 C e5

44

Matrice di adiacenza o tabella di connessione E una matrice quadrata di ordine n il cui generico elemento bij = 1 se lo spigolo (vi, vj) R bij = 0 in caso contrario. Ad esempio la matrice associata al grafo precedente :

A A B C D E 0 0 0 1 0

B 0 0 1 0 1

C 1 1 0 0 0

D 0 0 0 0 0

E 0 0 0 0 0

45

Matrice di incidenza una matrice di tipo n (= | V(G) |) , m (=|R|) il cui generico elemento bij = 1 se lo spigolo (vi, vj) R , bij = -1, se lo spigolo (vj , vi) R bij = 0 in caso contrario. Ad esempio la matrice associata al grafo precedente :
e1 A B C D E 0 -1 0 0 1 e2 1 0 0 -1 0 e3 1 0 -1 0 0 e4 0 -1 1 0 0 e5 0 1 -1 0 0

46

Nel caso dei digrafi, ogni vertice pu essere il primo estremo o il secondo estremo di un arco. Diamo allora le seguenti definizioni: - grado o valenza di ingresso di un vertice v (indegree) il numero degli spigoli che hanno v come secondo estremo. Tale numero viene indicato con di(v). - grado o valenza di uscita di un vertice v (outdegree) il numero degli spigoli che hanno v come primo estremo. Tale numero viene indicato con du(v)=do(v).
Si dimostra facilmente che: Proposizione
v V di(v)

v V du(v)

= |R|.

47

Due vertici vi e vj si dicono congiungibili o raggiungibili se esiste un cammino orientato che inizia da vi e finisce con vj . Un digrafo si dice fortemente connesso se due vertici qualsiasi sono sempre congiungibili. Ad ogni digrafo G = (V,R) si pu associare un grafo semplice G*=(V,E) avente lo stesso insieme di vertici e lo spigolo (vi,vj) E se l arco (vi,vj) R e/o (vj,vi) R . Un digrafo si dice (debolmente) connesso se G* connesso.

48