copyright® sego license - the

Transcript

copyright® sego license - the
COPYRIGHT® SEGO LICENSE
Questo documento viene fornito così come è: se pensate che faccia schifo
problemi vostri, nessuno vi obbliga a leggerlo. Se pensate che sia qualcosa di
positivo e/o avete suggerimenti su come migliorarlo o altro materiale da
aggiungere mandatemi pure una mail all’indirizzo di posta che trovate sulla mia
home page. Sarò felice di rispondervi e di collaborare con voi al miglioramento
del documento stesso. In caso vogliate darmi una mano nella realizzazione di
altri appunti mandatemi pure una mail. Se volete aiutarmi nella correzione di
questo documento (nessuno è perfetto ☺) scrivetemi pure. Si prega di lasciare
questo documento integro o almeno se lo modificate, lasciate un riferimento
all’autore originale del testo, magari indicando la sua pagina web.
SEGO owner/webmaster of the-skulls.com
e-mail: [email protected]
VISITA IL SITO
http://www.the-skulls.com
PER ALTRO MATERIALE E GUIDE
1
GRAFI
CENNI GENERALI SUI GRAFI
Def. Un grafo orientato (diretto o di-grafo) G è una coppia (V,E), dove V è un insieme di vertici ed
E è un insieme di archi. Un arco definisce una relazione binaria su V: un arco viene rappresentato
come una freccia orientata che collega due vertici.
Def. Si definiscono cappi degli archi che da un vertice in sé stesso.
Def. Un grafo non orientato G=(V,E) ha l’insieme di archi E che non è costituito coppie ordinate di
vertici (come accadeva per i di-grafi). Gli archi dei grafi non orientati possono venir rappresentati
come segue: {u,v}, dove u e v ∈ V e u ≠ v. Come si può vedere per i grafi non orientati si preferisce
usare una notazione insiemistica per denotare gli archi. In ogni caso gli archi (u,v) e (v,u)
rappresentano lo stesso arco. Risulta immediato che i grafi non orientati non ammettono i cappi, per
il fatto che7 in un arco i vertici devono essere distinti.
Figura 1
v
w
Un grafo orientato G=(V,E)
V={u,v,w,t,z}
E={(u,t),(v,w),(t,v),(z,v),(z,w)}
u
t
z
Figura 2
v
w
Un grafo non orientato G=(V,E)
V={u,v,w,t,z}
E={{u,t},{v,w},{t,v},{z,v},{z,w}}
u
t
z
Def. Dato (u,v) arco di un grafo orientato G=(V,E), si dice che (u,v) è incidente o esce dal vertice u
ed è incidente o entra nel vertice v.
Def. Dato (u,v) arco di un grafo non orientato G=(V,E), si dice che (u,v) è incidente sui vertici u e
v. Sarebbe stato lo stesso considerare l’arco (v,u).
Def. Dato (u,v) arco di un grafo G=(V,E) si dice che il vertice v è adiacente al vertice u. Quando il
grafo è non orientato la relazione di adiacenza è simmetrica, ossia allo stesso tempo u è adiacente a
v, e v è adiacente a u.
Def. Il grado di un vertice in un grafo non orientato è il numero di archi incidenti su di esso.
Def. Il grado di un vertice in un grafo orientato è la somma del grado uscente più quello entrante.
Il grado entrante di un vertice è il numero di archi che entrano in esso, mentre il grado uscente è il
numero di archi che escono da esso.
Def. Un vertice che ha grado 0 viene detto vertice isolato.
Figura 3
u
In questo grafo il vertice t è un
vertice isolato
t
w
2
Def. Un cammino di lunghezza k da un vertice u ad un vertice v in un grafo G=(V,E) è una
sequenza < v0 , v1 ,… …, vk > di vertici tale che u = v0 e v = vk e ( vi −1 , vi ) ∈ E per i=1,2,…,k.
La lunghezza di un cammino è uguale al numero di archi che compongono il cammino.
Def. Se esiste un cammino p da u a v si dice che v è raggiungibile da u tramite p.
Talvolta questa situazione si indica anche così:
u
p
v
Def. Un cammino è semplice se tutti i vertici che lo compongono sono distinti.
Def. Un sottocammino di un cammino p è una sottosequenza contigua dei suoi vertici.
Cioè per qualunque 0 ≤ i ≤ j ≤ k, la sottosequenza di vertici < vi , vi +1 ,……, v j > è un sottocammino di
p.
Def. Un cammino < v0 , v1 ,……, vk > forma un ciclo se v0 = vk e il cammino contiene almeno un arco.
Il ciclo è semplice se v1 , v2 ,…, vk sono distinti. Un cappio è un ciclo di lunghezza 1.
Def. In un grafo non orientato, un cammino < v0 , v1 ,……, vk > forma un ciclo semplice se k ≥ 3 e
v0 = vk e v1 , v2 ,…, vk sono distinti.
Def. Un grafo senza cicli è detto aciclico.
Def. Si definisce sottografo G’=(V’,E’) di G=(V,E) un grafo tale che V’ ⊆ V e E’ ⊆ E.
Def. Dato ancora una volta V’ ⊆ V, il sottografo di G indotto da V’ è il grafo G’=(V,E), dove
E’={(u,v) ∈ E : u,v ∈ V’} ossia tradotto significa che una volta che ho determinato un certo insieme
di vertici V’, E’ deve essere l’insieme di tutti gli archi che i vertici di V’ formano anche nel grafo di
partenza G.
Def. Un grafo non orientato è connesso se ogni coppia di vertici è collegata con un cammino.
Def. Le componenti connesse di un grafo sono le classi di equivalenza dei vertici sotto la relazione
“raggiungibile da”. Un grafo non orientato è connesso se ha esattamente una componente connessa,
ossia se ogni vertice è raggiungibile da ogni altro vertice.
Volendo dare un’altra definizione possiamo dire che:
una componente connessa di un grafo G è un sottoinsieme di vertici tali che V’ ⊆ V e sono
rispettate due proprietà:
(1) il sottografo indotto da V’ è connesso
(2) V’ non è contenuto in nessun altro sottoinsieme che induca un grafo connesso (proprietà di
massimalità).
Figura 4
PROPRIETA’ BANALE:
connessa: valgono sia la
proprietà 1 che 2
vale la proprietà numero 1 ma non la
numero 2, perché esiste un altro
insieme di vertici connessi che lo
contiene
Ogni vertice isolato è una componente
connessa.
OSSERVAZIONE
V1 , V2 ,……, Vk
Vi ∩ V j ∀ i,j
V1 ∪ V2 ...... ∪ Vk = V
componenti connesse
di un grafo
3
Def. Un grafo orientato si dice fortemente connesso se ogni vertice è raggiungibile da ogni altro.
Def. Le componenti fortemente connesse di un grafo sono le classi di equivalenza dei vertici sotto
la relazione “mutuamente raggiungibile”. Un grafo orientato è fortemente connesso se ha soltatnto
una componente fortemente connessa.
NOTA: Come si vede dalle definizioni la connettività in grafi orientati e non orientati ha
caratteristiche quasi identiche.
Def. Definiamo l’isomorfismo tra grafi:
Dati due grafi G=(V,E) e G’=(V’,E’) si dice che sono isomorfi se esiste una funzione biunivoca
f : V → V ' tale che (u,v) ∈E se e solo se (f(u), f(v)) ∈E’. Detto altrimenti possiamo ridefinire i
vertici di G in maniera che diventino vertici di G’, conservando i corrispettivi archi in G e G’.
Figura 5.
1
2
6
3
5
u
v
w
x
y
z
4
Osservando attentamente si nota come questi due grafi siano isomorfi. La corrispondenza tra i vertici del grafo a
sinistra con i vertici del grafo a destra è data da quanto segue:
f(1) = u, f(2) = v, f(3) = w, f(4) = x, f(5) = y, f(6) = z.
Figura 6.
1
5
2
4
u
v
w
x
y
3
In questo esempio invece non si trova una funzione f che permetta di effettuare la corrispondenza tra i vertici del
grafo a sinistra con quelli del grafo a destra. Il motivo è che il grafo a sinistra ha il vertice 1 che ha grado 4
mentre a destra non c’è nessun vertice che abbia grado 4.
Def. Dato un grafo non orientato G=(V,E), la versione orientata di G è il grafo orientato G’=(V,E’),
dove (u,v) ∈E’ se e solo se (u,v) ∈E. Ogni arco non orientato (u,v) in G viene sostituito nella
versione orientata da due archi orientati (u,v) e (v,u).
Def. Dato un grafo orientato G=(V,E), la versione non orientata di G è il grafo non orientato
G’=(V,E’) dove (u,v) ∈ E’ se e solo se u ≠ v e (u,v) ∈ E. Ossia, la versione non orientata contiene
gli archi di G “con le frecce rimosse” e senza cappi.
4
Def. Un grafo completo con n vertici (si indica anche così k n ) è un grafo G=(V,E) tale che
∀i, j ∈ V i ≠ j e (i,j) ∈E.
Figura 7.
Esempio di grafo completo con 4 vertici.
Osservando questo esempio possiamo fare una importante considerazione:
 n
UN GRAFO COMPLETO CON n VERTICI HA   ARCHI
2
 
Def. Un grafo vuoto è un grafo G=(V,E) nel quale E = Ø, ossia un grafo in cui tutti i vertici sono
isolati.
Def. Un grafo bipartito è un grafo non orientato G=(V,E) in cui V può essere partizionato in due
insiemi V1 e V2 tali che (u,v) ∈ E implica che o u ∈ V1 e v ∈ V2 oppure u ∈ V2 e v ∈ V1 . Cioè tutti gli
archi vanno da V1 a V2 o viceversa.
In sintesi:
u ∈ V1 ∧ v ∈ V2
Dato G=(V,E) ∃ V1 e V2 ⊆ V ∋' V1 ∩ V2 = Ø ∋' ∀ (u,v) ∈ E
V1 ∪ V2 = V
v ∈ V1 ∧ u ∈ V2
Figura 8.
ESEMPIO DI GRAFO BIPARTITO
No! Perché altrimenti non sarebbe
più un grafo bipartito.
Osservazioni sulle condizioni di CONNETTIVITA’ e ACICLICITA’
Connettività
Richiede in un certo senso un “eccesso” di archi
Devo avere almeno 4 archi
5
Aciclicità
formare un ciclo).
Richiede in un certo senso un “deficit” di archi(se ne ho troppi rischio di
Devo avere dai 4 archi in giù
PROPOSIZIONE: Sia G=(V,E) un grafo non orientato
(a) se G è connesso, allora |E| ≥ |V|-1
(b) se G è aciclico, allora |E| ≤ |V|-1
INTUIZIONE
connesso
0
aciclico
n-1
 n
 
 2
Dimostrazione a)
Usiamo l’induzione su n=|V|
Caso base n=1
|E|=n-1=1-1=0 e n=2
|E|=n-1=2-1=1
Passo induttivo
n ≥ 3 e supponiamo che la proprietà valga per tutti i grafi tali che |V| ≤ n
Dato G=(V,E)
?
G connesso ⇒
|V|=n+1
|E|=|V|-1 Questa è la domanda che mi pongo ossia: “il fatto che G sia connesso
implica che |E|=|V|-1 ?”.
Prendiamo z ∈ V (ossia z vertice) e poniamo V’=V-{z}.
E’ logica conseguenza che |V’|=n.
Poniamo ora G’=(V’,E’) il sottografo indotto da V’
L’insieme E’ sarà quindi E’={(u,v) ∈ E | u,v ∈ V’}
V1' ,V2' ,......,Vk' (con k ≥ 1) siano le componenti connesse di G’
G1' = (V1' , E1' ),......., Gk' = (Vk' , Ek' ) saranno i sottografi indotti dalle componenti connesse
∀ i = 1, 2, … …, k sappiamo che vale E1' ≥ V1' − 1
eseguendo una sommatoria di questo tipo:
k
∑
i =1
k
Ei' ≥ ∑ Vi ' − k e lo si capisce anche guardando sotto
i =1
6
Figura 9.
Devo avere almeno un arco che collega il
vertice z a ciascuna componente connessa
z
k
|V| = ∑ | Vi ' | +1
i =1
k
|E| ≥
|E| = ∑ | E | +1
i =1
'
i
k
k
∑ | E | +k ≥ ∑ | V
'
i
i =1
i =1
i
'
| =|V|-1
Dimostrazione b)
Usiamo l’induzione su n=|V|
Caso base n=1
|E| ≤ 1=2-1=n-1
|E|=n-1=1-1=0 e n=2
Passo induttivo
n ≥ 3 supponiamo che la proprietà b) sia valida per ogni grafo con |V| ≤ n
Dato G=(V,E)
|V|=n+1
?
G aciclico ⇒ |E|=|V|-1 Questa è la domanda che mi pongo ossia: “il fatto che G sia aciclico
implica che |E|=|V|-1 ?”.
Prendiamo z ∈ V (ossia z vertice) e poniamo V’=V-{z}.
E’ logica conseguenza che |V’|=n.
Poniamo ora G’=(V’,E’) il sottografo indotto da V’
L’insieme E’ sarà quindi E’={(u,v) ∈ E | u,v ∈ V’}
V1' ,V2' ,......,Vk' (con k ≥ 1) siano le componenti connesse di G’
NOTA: In generale l’aciclicità è una proprietà ereditaria.
∀ i=1, 2, ……., k Gi' è aciclico
k
k
∀ i=1, 2, ……., k | E | ≤ | Vi | -1 ⇒ ∑ | E | ≤ ∑ | Vi ' | -k
'
i
'
i =1
'
i
i =1
∀ i=1, 2, ……., k ∃ al più un arco del tipo (u,z) con u ∈ Vi '
Questo ultimo fatto lo si può notare anche dalla figura sottostante:
7
Figura 10.
z
|E| ≤
k
k
∑ | E | +k ≤ ∑ | V
i =1
'
i
i =1
i
'
Deve esserci al più un arco che collega il
vertice z ad una sola delle componenti connesse
| =|V|-1
Da una parte si sfrutta l’aciclicità per introdurre il concetto di ≤ e dall’altra si sfrutta il concetto di
connettività per introdurre l’idea di ≥ .
ALBERI LIBERI
Def. Un albero libero è un grafo non orientato che è allo stesso tempo aciclico e connesso. Questo
fatto comporta che |E| = |V|-1, perché in quanto aciclico ha |E| ≤ |V|-1 e in quanto connesso ha
|E| ≥ |V|-1.
Dato un grafo G=(V,E) non orientato consideriamo le seguenti proprietà:
(a) grafo connesso
(b) grafo aciclico
Se G è connesso ⇒ |E| ≥ |V|-1
Se G è aciclico ⇒ |E| ≤ |V|-1
NOTA: Queste due condizioni sono necessarie ma non
sufficienti, ossia la parte dx non implica la parte sx.
Per capire la nota sopra basta osservare il controesempio sottostante.
FIGURA 11.
|V| = 5
|E| = 6
In questo grafo nonostante |E| ≥ |V|-1, non è un grafo
connesso. Questo ci fa capire come sia una condizione
necessaria ma non sufficiente.
Prop. G albero ⇒ |E| = |V|-1
NOTE
(1) Le componenti di una foresta sono alberi liberi
(2) Def. Una foresta è l’unione di alberi liberi
(3) Def. Un albero è una foresta con un numero di componenti connesse pari a 1
8
TEOREMA
Proprietà degli alberi liberi
Sia G un grafo non orientato allora le seguenti affermazioni sono equivalenti:
a) G è un albero libero
b) Comunque prenda due vertici u, v ∈ V ∃ un solo cammino semplice da u a v
c) G è connesso e se un arco qualsiasi viene rimosso da G allora si ottiene un grafo con due
componenti connesse (perdita di connettività dovuta all’aciclità)
Nota: Gli alberi sono grafi connessi minimali.
d) G è connesso e |E| = |V|-1
e) G è aciclico e |E| = |V|-1
f) G è aciclico e se aggiungo un arco qualsiasi a E allora ottengo un grafo ciclico.
Nota: Gli alberi sono grafi aciclici massimali
Dimostrazione
(a) ⇒ (b)
Ip. G è un albero
Th. ∃ un solo cammino semplice tra due vertici
Sicuramente ne esisterà almeno uno perché è un albero, si tratta di dimostrarne l’unicità.
Dimostriamo per assurdo:
presi u, v ∈ V ∃ p ' =< x0 , x1 ,......., xk1 > e p '' =< y0 , y1 ,......., yk 2 > con k1 ≠ k2 e p ' ≠ p ''
questo implica che x0 = y0 = u e xk1 = yk 2 = v , inoltre è chiaro che ( xi , xi +1 ) ∈ E e ( yi , yi +1 ) ∈ E .
Questo significa che deve esistere almeno un i (0 ≤ i ≤ min {k1,k2}) tale che xi ≠ y , se così non
fosse avrei due cammini uguali.
Sia i il primo di questi indici (sicuramente non potrà essere 0) quindi xl = yl ∀l ∋' 0 ≤ l < i .
Sia j il primo indice tale che x j = y j
FIGURA 12.
u
v
i-1
j
i
j-1
ma così avrei un ciclo siffatto:
xi −1 , xi , xi +1 ,...., x j , y j −1 , y j − 2 ,......, yi , yi −1
⇒ ASSURDO perché contraddirei il fatto che G è albero.
9
(b) ⇒ (c)
Ip. ∃ un solo cammino semplice tra ogni coppia di vertici
Th. G è connesso ma se rimuovo un qualsiasi arco ⇒ G sconnesso
(u,v) ∈ E è l’unico cammino tra u e v
Nel momento in cui lo cancello creo un grafo sconnesso, quindi due componenti sconnesse.
(c) ⇒ (d)
Ip. G è connesso ma se rimuovo un qualsiasi arco ⇒ G sconnesso
Th. G è connesso e |E| = |V|-1
Procediamo per induzione su n=|V|
Caso base n=1
|E|=n-1=1-1=0 e n=2
|E|=1=2-1=n-1
Passo induttivo
n ≥ 3 supponiamo che la proprietà (c) ⇒ (d) sia valida per ogni grafo con al più n vertici.
G=(V,E)
(u,v) ∈ E
|V|=n+1
Consideriamo G’ e G’’ componenti connesse come da ipotesi (c)
FIGURA 13.
|E’|=|V’|-1
|E’’|=|V’’|-1
|E’|+|E’’|=|V’|+|V’’|-2 ⇒
arco che ho tolto
|E’|+|E’’|+1=|V’|+|V’’|-1
u
|E|
= |V’|+|V’’|-1
|E|
=
v
|V| - 1
(d) ⇒ (e)
Ip. G è connesso e |E| = |V|-1
Th.G è aciclico e |E| = |V|-1
Per assurdo supponiamo che esista almeno un ciclo
< x1 , x2 ,......., xk >
Considero il seguente sottografo (non indotto)
Gk = (Vk , Ek )
Vk = { x1 , x2 ,......., xk }
Ek ={ ( x1 , x2 ), ( x2 , x3 ),..., ( xk −1 , xk ), ( xk , x1 ) } arco in + che mi da’ il ciclo
Vk = Ek = k
k<n=V
∃ xk +1 ∈ V \ Vk (appartiene a V ma non a Vk )
10
Gk +1 = (Vk +1 , Ek +1 )
Vk +1 = Vk ∪ {xk +1}
Ek +1 = Ek ∪ {( xi , xk +1 )}
( ∃ xi ∈ Vk tale che ( xi , xk +1 ) ∈ E)
Vk +1 = Ek +1 = k + 1
aggiungendo come prima arriverò ad avere
Gn = (Vn , En ) con k=n
Vn = V
En = n
ossia n= En ≤ E cioè E > n − 1
⇒ ASSURDO rispetto alla nostra ipotesi di base secondo cui “G è connesso e E = V − 1 ”.
(e) ⇒ (f)
Ip. G è aciclico e |E| = |V|-1
Th.G è aciclico e aggiungendo un altro arco qualsiasi diventa ciclico
Per provare questo dobbiamo dimostrare che la foresta G è un albero. La domanda quindi che ci
poniamo è: dato k=numero di componenti connesse di G, abbiamo che k=1?
V1 ,V2 ,.......,Vk componenti connesse
G1 , G2 ,......., Gk sottografi indotti, aciclici e connessi, ossia alberi
Da (a) ⇒ (d) abbiamo che
k
k
i =1
i =1
E = ∑ Ei = ∑ Vi − k
E = V − k segue che k=1
Adesso sapendo che G è albero, qualunque arco (u,v) io aggiunga non posso far altro che creare un
ciclo.
FIGURA 14.
Questo era il cammino unico
u
v
Questo l’arco che ho aggiunto
(f) ⇒ (a)
Ip. G è aciclico e aggiungendo un altro arco qualsiasi diventa ciclico
Th.G sia un albero
FIGURA 15.
NOTA: o u e v sono adiacenti oppure
non lo sono
u
v
11
Supponiamo che non siano adiacenti, ossia che (u,v) ∈ E.
Aggiungiamo questo arco. Così facendo notiamo che creiamo un ciclo in cui tutti gli archi tranne
(u,v) appartengono a G. Quindi vi è un cammino da u a v, e poiché u e v sono stati scelti
arbitrariamente, G è connesso. Per capire un po’ meglio quanto detto poco sopra, basta dare
un’occhiata alla figura 15: infatti vediamo che se aggiungiamo l’arco (u,v) creiamo un ciclo a patto
che nel grafo G esistesse già uno e un solo cammino che da u portava a v.
OSSERVAZIONI
Dato G=(V,E) e u ∈ V
il grado di u si indica con deg(u)=|N(u)|
dove N(u)={v ∈ V| (u,v) ∈ E}
vertici adiacenti
Esempio in FIGURA 16.
1
N(2) = {1,4,3}
5
2
4
3
Proposizione
G=(V,E)
2|E| =
∑ deg(u)
detta anche LEMMA DELLA STRETTA DI MANO
u∈V
Per comprenderlo consideriamo il seguente esercizio:
ESERCIZIO
Un censimento ISTAT afferma che il numero di cittadini/e italiani/e che hanno un numero dispari di
parenti è 26.647.421
E’ vero o è falso?
CORREZIONE
Falso! Il numero deve essere assolutamente pari.
Possiamo costruire un grafo dove rappresentiamo la parentela con un arco non orientato.
FIGURA 17.
Comunque dia il grafo il numero di vertici che hanno
grado dispari è sempre pari.
Dove G=(V,E) e 2|E|=
∑ deg(u)
u∈V
Questo perché stiamo parlando di grafi non orientati,
quindi il vertice u va al vertice w mediante (u,w) ma
anche il vertice w va al vertice u mediante (w,u).
12
Definiamo ora
V p = {u ∈ V | deg(u ) è pari}= {u ∈ V | deg(u ) =2h(u)}
Vd = {u ∈ V | deg(u ) è dispari}={ u ∈ V | deg(u ) =2h(u)+1}
Proposizione
Dato G=(V,E) allora Vd è pari perché:
2|E|= ∑ deg(u )
u∈V
=
∑ deg(u ) + ∑ deg(u )
u∈V p
u∈Vd
= ∑ 2h(u ) + ∑ (2h(u ) + 1)
u∈V p
=
u∈Vd
∑ 2h(u ) + ∑ 2h(u) + V
u∈V p
d
u∈Vd
= ∑ 2h(u )
u∈V
2( E − ∑ h(u )) = Vd
u∈V
ISOMORFISMO TRA GRAFI (rivedere quanto detto sopra su isomorfismo)
Dati due grafi
G1 = (V1 , E1 )
G2 = (V2 , E2 )
G1 ≅ G2 ossia G1 è isomorfo a G2
se ∃ una funzione φ : V1 → V2 , biunivoca (invertivile) ∋' ∀u , v ∈ V1 , (u,v) ∈ E1 ⇔ (φ (u ), φ (v)) ∈ E2
ALCUNE PROPRIETA’ PER STABILIRE CHE DUE GRAFI NON SONO ISOMORFI
1) V1 ≠ V2 perché non è possibile trovare una relazione biunivoca.
2) E1 ≠ E2 perché non è possibile trovare una relazione biunivoca che rispetti la relazione di
adiacenza tra gli archi.
3){deg(u) | u ∈ V1 } ≠ {deg(u) | u ∈ V2 }
FIGURA 18.
φ
u
⇒ φ ( N (u )) = N (φ (u ))
w
13
Vediamo ora un caso particolare in cui nonostante le 3 uguaglianze sopra siano verificate i grafi
risultano essere ugualmente non isomorfi.
FIGURA 19.
G'
G ''
RAPPRESENTAZIONE DEI GRAFI
1)Liste di adiacenza
2)Matrici di adiacenza
(1)
n vertici
1
2
3
2
1
4
3
1
|E| << n 2 ⇔ grafo sparso (gli alberi sono grafi sparsi)
|E| ≈ n 2 ⇔ grafo denso
n
Le liste di adiacenza di adattano bene alla rappresentazione di grafi sparsi, perché ho pochi
archi.
(2)
A ∈ ℜ n×n
A=( aij )
1 se (ui , u j ) ∈ E
aij =
0 se (ui , u j ) ∉ E
Questa
rappresentazione
è
conveniente
per
rappresentare grafi densi, e per sapere in tempi rapidi se
due vertici sono adiacenti o no (ho infatti l’accesso
diretto).
Esempio di grafo rappresentato con ambedue i metodi sopra presentati.
1
3
2
4
14
Matrice di adiacenza
1
2
3
4
1
0
1
1
0
2
1
0
1
1
3
1
1
0
0
4
0
1
0
0
Lista di adiacenza
1
2
3
2
1
3
3
1
2
4
2
4
15