Università di L’Aquila
Ricerca Operativa
www.oil.univaq.it Grafi: Concetti fondamentali
Cos’è un grafo
Un grafo è un formalismo che definisce una relazione binaria su una collezione di oggetti.
Ad esempio:
città connesse da strade
calcolatori connessi in una rete telematica
persone legate da relazioni di parentela
persone che condividono una stanza
collegamenti tra componenti elettronici
operazioni che devono essere eseguite da una certa macchina
eventi causalmente legati nello spazio e/o nel tempo (inizio/fine di un’operazione, un trasporto, una giacenza in magazzino)
Corso di Ricerca Operativa 3
Grafi non orientati
Def.Un grafo non orientato(o simmetrico) G = (N , E) è una coppia di insiemi finiti dove:
N = {v1,..., vn} è l’insieme dei nodio vertici (| N | = n)
E = {e1,.., em} ⊆ N × N è l’insieme degli archio spigoli non orienati (|E| = m)
Un arco non orientato è una coppia non ordinata di nodi distinti ek= {vi, vj}
(oppure ek= {i , j})
ekindica che il nodo viè in relazione con il nodo vj
Esempio
G = (N , E)
N = {v1, v2, v3, v4, v5} E = {e1, e2, e3, e4, e5 , e6}
e1= {v1 , v2} e2= {v1 , v3} e3= {v2 , v3} e4= {v2 , v5} e5= {v3 , v5} e6= {v3 , v4} v1
e1 v2
v3
v5
v4 e2
e3 e4
e5 e6
Corso di Ricerca Operativa 5
Definizioni di base
Un arco {v,v} è detto loop
I nodi u,v ∈ N sono detti adiacenti⇔ {u,v} ∈ E. L’arco {u,v} si dice incidentesu u e su v
Gli archi e, f∈ E sono detti adiacenti⇔ e = {w,v} ed f = {v,u}
L’insieme di nodi N(v) = {z ∈ N: z adiacente a v} è detto intornodi v in G
L’insieme di archi d(v) = {e∈ E: e incide su v} è detto stelladi v in G
|d(v)| è detto gradodel nodo v
Esempio
v1
e1 v2
v3
v5
v4 e2
e3
e4
e5
e6
v1e v2sono nodi adiacenti e e1è l’arco incidente su v1e v2. e1e e4sono archi adiacenti.
N(v2) = {v1,v3 ,v5} è l’intorno del nodo v2.
d(v2) = {e1, e3, e4} è la stella di v2. Il grado di v2è 3.
Corso di Ricerca Operativa 7
Isomorfismi
Def. Due grafi H = (W , F) e G = (N , E) sono detti isomorfise esiste una bijezione f: W ÆN tale che {u,v} ∈ F ⇔ {f(u),f(v)} ∈ E
Oss due grafi isomorfi rappresentano la stessa relazione.
v1 v2
v3
v5
v4
v1
v2
v3
v5 v4
Complemento,
Grafo completo e Grafo vuoto
Def. Sia G = (N , E) un grafo qualsiasi. Il grafo G = (N , (N × N) \ E) si dice grafo complementodi G.
Def.Il grafo K = (N , (N × N)) si dice grafo completoe il suo complemento K = (N , ∅) si dice grafo vuoto
Corso di Ricerca Operativa 9
Sottografi
Def. H = (W , F) è detto sottografodi G = (N , E) se e solo se W⊆ N e F ⊆ E
Def. H = (W , F) è detto sottografo indottoda W in G = (N , E) se e solo se W⊆ N e {u,v}∈F per ogni {u,v}∈E tale che u,v ∈W
Sottografo Sottografo indotto
Grafi orientati
Def.G = (N , E) è un grafo orientato(o diretto) se gli archi sono coppie ordinate di nodi (archi diretti).
ek= {vi, vj} ≠ eh= {vj, vi} ek, eh∈ E
v2
v1
v3
v4
v5
Corso di Ricerca Operativa 11
Definizioni di base
Un arco diretto {v, u} si dice uscenteda v e entrantein u. v è detto nodo di partenza(o coda) e unodo di arrivo(o testa)
d+(v) = {e∈ E | e uscente da v} stella uscenteda v
d–(v) = {e∈ E | e entrante in v} stella entrantein v
I(v) = {u∈ N | (u , v) ∈ E}nodi di partenzaper v
O(v) = {u∈ N | (v , u) ∈ E}nodi di arrivoda v
Cammini, percorsi, cicli
Dato un grafo non orientato G = (N , E)
Un camminoW1kin G è una sequenza finita di nodi v1, v2,…, vktali che {vi, vi+1} ∈E. La lunghezzadel cammino è il numero di archi che lo compongono
La distanzatra i nodi u e v è la lunghezza minima di un cammino tra u e v
Un percorsoPuvè un cammino Wuvche tocca ogni nodo una sola volta
Un cicloè un percorso v1, v2,…, vkin cui v1= vk
Corso di Ricerca Operativa 13
Connessione
Def. Dato un grafo G = (N , E), un nodo v ∈ N si dice connessoa un nodo u ∈ N se esiste un cammino tra v e u in G
La relazione di connessione è di equivalenza, pertanto induce una partizione di N nei sottoinsiemi:
Ci= {v∈ N | v è connesso a u, ∀u ∈Ci} Ci∩ Cj= ∅ ∀i ≠ j ∪iCi = N Il sottografo indotto da Ciè detto componente connessadi G
Def. Un grafo G = (N , E) si dice connessose è composto da una sola componente connessa
Forte Connessione
Def. Dato un grafo orientato D = (N , E), un nodo v ∈ N si dice fortemente connessoa un nodo u ∈ N se esiste un cammino orientato tra v e u e un cammino orientato tra u e v
Le definizioni di componente fortemente connessae di grafo orientato fortemente connessosono analoghe alle definizioni date in precedenza
Corso di Ricerca Operativa 15
Grafi Bipartiti
Def.G = (N , E) è un grafo bipartitose
N = N1∪ N2
∀e = {u , v} ∈ E se u ∈ N1allora v ∈ N2 oppure se v ∈ N1allora u ∈ N2
I grafi bipartiti sono spesso utilizzati nelle situazioni in cui il problema da modellare ha due classi diverse di elementi (fornitori, clienti oppure macchine, pezzi)
Alberi
Def.
Un grafo non orientato G = (N , E) è una foresta(o grafo aciclico) se non contiene cicli
Una grafo non orientato T = (N , E) è un alberose è una foresta connessa
Dato un albero T = (N , E), un nodo v∈ N è una fogliase |d(v)| = 1
Def. Dato un grafo connesso e non orientato G = (N , E), un albero ricoprenteè un albero T = (N , E1) con E1⊆ E
Corso di Ricerca Operativa 17
Proprietà degli alberi
Teorema:
a. Ogni albero con più di un nodo ha almeno una foglia.
b. Un grafo non orientato G = (N , E) è un albero se e solo se è connesso e ha | N | – 1 archi.
c. Per ogni coppia di nodi distinti u, v di un albero esiste un unico cammino da u a v.
d. Se aggiungiamo un arco ad un albero, il grafo risultante ha esattamente un ciclo.
Rappresentazioni
Matrici di adiacenza
Matrici di incidenza
Liste di adiacenza
Corso di Ricerca Operativa 19
Matrici di Adiacenza (1)
v1 e1
v2
v3
v5
v4 e2
e3 e4
e5 e6
v1 v2 v3 v4 v5
0 1 1 0 0 v1 1 0 1 0 1 v2 1 1 0 1 1 v3 0 0 1 0 0 v4 0 1 1 0 0 v5 AG=
Dato un grafo non orientato G = (N , E), la matrice di adiacenza nodi-nodi AG(n × n) è AG= [aij] con i, j = 1,…, n = |N|
e tale che aij= 1 se {vi , vj} ∈ E (vi , vjsono adiacenti) 0 altrimenti
Matrici di Adiacenza (2)
v1 e1
v2
v3
v5
v4 e2
e3 e4
e5 e6
e1 e2 e3 e4 e5 e6
1 1 1 1 0 0 e1 1 1 1 0 1 1 e2 1 1 1 1 1 1 e3 1 0 1 1 1 0 e4 0 1 1 1 1 1 e5 0 1 1 0 1 1 e6 AG=
Dato un grafo non orientato G = (N , E), la matrice di adiacenza archi-archi AG(m × m) è AG= [aij] con i, j = 1,…, m = |E|
e tale che aij= 1 se ei e ejsono adiacenti 0 altrimenti
Corso di Ricerca Operativa 21
Matrici di Incidenza (1)
v1 e1
v2
v3
v5
v4 e2
e3 e4
e5 e6
e1 e2 e3 e4 e5 e6
1 1 0 0 0 0 v1 1 0 1 1 0 0 v2 0 1 1 0 1 1 v3 0 0 0 0 0 1 v4 0 0 0 1 1 0 v5 EG=
Dato un grafo non orientato G = (N , E), la matrice di incidenza nodi-archi EG(n × m) è EG= [aij] con i = 1,…, n = |N|, j = 1,…, m = |E|
e tale che aij= 1 se ejè incidente su vi 0 altrimenti
Matrici di Incidenza (2)
v2
v1 e1
v3
v5
v4 e2
e3 e4
e5 e6
e1 e2 e3 e4 e5 e6
–1 1 0 0 0 0 v1 1 0 –1 –1 0 0 v2 0 –1 1 0 –1 –1 v3 0 0 0 0 0 1 v4 0 0 0 1 1 0 v5 EG=
Dato un grafo orientato G = (N , E), la matrice di incidenza nodi-archiè EG(n × m) è EG= [aij] con i = 1,…, n = |N|, j = 1,…, m = |E|
e tale che aij=
1 se viè la testa di ej
0 altrimenti
–1 se viè la coda di ej