Top Banner
Connettività
35

Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Feb 20, 2019

Download

Documents

doque
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Connettività

Page 2: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

WALK, TRAIL, PATH

2

Page 3: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Walk (passeggiata)

Walk (passeggiata): Una passeggiata è una sequenza di nodi e link che inizia e finisce con un nodo, in cui ogni nodo è incidente allo spigolo che lo precede e allo spigolo che lo segue nella sequenza.

– Open walk: Nodo di partenza diverso da quello di arrivo

– Close walk: Nodo di partenza coincidente con quello di arrivo

• Nei grafi semplici è sufficiente la lista dei nodi • Lunghezza della passeggiata: numero degli spigoli

Length of walk= 8

Page 4: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Trail

• Un trail (percorso) è una passeggiata in cui tutti gli spigoli sono distinti (uno spigolo non può essere attraversato più di una volta)

• Un trail chiuso è detto tour o circuit

Page 5: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Path

• Un path (cammino) è una passeggiata dove sia i nodi sia gli spigoli sono distinti (spigoli e nodi non possono essere attraversati più di una volta)

• Un path chiuso è detto cycle (ciclo)

• La lughezza del path è il numero di spigoli che attraversa

Length of path= 4

Page 6: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Examples

Eulerian Tour

• Un tour che attraversa tutti gli spigoli (una sola volta)

• Konigsberg bridges

Hamiltonian Cycle

• Un ciclo che visita tutti I nodi (una sola volta)

Page 7: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Königsberg

A Königsberg in Prussia c’è un'isola A, chiamata der Kneiphof, e il fiume che la circonda si divide in due rami, come si può vedere in figura; i rami di questo fiume sono muniti di sette ponti a, b, c, d, e, f, g. Circa questi ponti veniva posta questa domanda, si chiedeva se fosse possibile costruire un percorso in modo da transitare attraverso ciascun ponte una e una sola volta. E mi fu detto che alcuni negavano ed altri dubitavano che ciò si potesse fare, ma nessuno lo dava per certo. Da ciò io ho tratto questo problema generale: qualunque sia la configurazione e la distribuzione in rami del fiume e qualunque sia il numero dei ponti, si può scoprire se è possibile passare per ogni ponte una ed una sola volta?

Page 8: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Königsberg

Page 9: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Königsberg

Page 10: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Königsberg

10

Eulero stabilì che un grafo composto soltanto da nodi pari, cioè ciascuno collegato a un numero pari di archi, è sempre percorribile e che si può ritornare al punto di partenza senza sovrapposizioni di percorso (circuito euleriano). Se un grafo contiene nodi pari e soltanto due nodi dispari è ancora percorribile, partendo da uno dei noti dispari per arrivare all'altro, ma non si può più ritornare al punto di partenza. Se contiene invece più di due nodi dispari, non è percorribile senza sovrapposizioni di percorso.

Page 11: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Distanza tra due nodi

11

La distanza (distance) tra due nodi è il numero di spigoli di un

cammino a lunghezza minima che li connette

*Se due nodi sono disconnessi, la distanza è +∞.

Nei grafi orientati il cammino deve seguire la direzione dei

link.

Quindi la distanza tra due nodi A e B può essere diversa da

quella tra B e A.

Un nodo i si dice raggiungibile (reachable) da un nodo j se

esiste un cammino da j a i.

Diametro (diameter) di un grafo: distanza massima tra tutte le

coppie di un grafo D

C

A

B

D C

A

B

Page 12: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Random walk

• Una passeggiata in cui il nodo successivo viene scelto in modo casuale tra i vicini.

– Se il grafo è pesato si possono definire le probabilità in funzione del peso.

Page 13: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Connettività della network

13

Page 14: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Connettività

• Un nodo vi è connesso a un nodo vj (raggiungibile da vj) se esiste un path tra vi e vj.

• Un grafo è connesso se esiste un path tra ogni sua coppia di nodi

• Un grafo è disconnected se non è connesso.

Page 15: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Connettività nei grafi orientati

– Un grafo orientato è strongly connected (fortemente connesso) se esiste un cammino orientato tra ogni coppia ordinate di vertici

Esiste il cammino AB e il cammino BA

– Un grafo orientato è weakly connected (debolmente connesso) se esiste un cammino tra ogni coppia di vertici senza considerare l’orientamento degli archi

15

Page 16: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Connettività: esempi

Page 17: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Componenti connesse

• Componente: sottografo tale che esista almeno un path tra ogni coppia di vertici e non esista alcun altro vertice del grafo connesso ad alcun vertice della componente. – massimale

• Singoletto:componente connessa con un solo vertice

• Ogni vertice appartiene a una e una sola componente

17

Page 18: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Component

• In directed graphs, we have a strongly connected components when there is a path from u to v and one from v to u for every pair (u,v).

• The component is weakly connected if replacing directed edges with undirected edges results in a connected component.

Page 19: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Component Examples:

3 components 3 Strongly-connected components

Page 20: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Esercizio

A

B

C

D

E

F

G

H

20

Quante e quali componenti fortemente connesse? Quante e quali componenti debolmente connesse?

Page 21: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Esercizio: soluzione

A

B

C

D E

F G

H

Weakly connected components

A B C D E

G H F

21

Strongly connected components

Each node within the component can be reached from every

other node in the component by following directed links

Strongly connected components

B C D E

A

G H

F

Weakly connected components: every node can be reached from

every other node by following links in either direction

A

B

C

D E

F G

H

Page 22: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

La matrice di adiacenza di una rete con più componenti è diagonale a blocchi

Network Science: Graph Theory

Page 23: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Bridges

• I ponti (bridges) sono archi la cui rimozione aumenta il numero di componenti connesse

Page 24: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Breadth-First Search (BFS)

La visita in ampiezza breadth-first-search (BFS) di un grafo dato un vertice sorgente s consiste nella esplorazione sistematica di tutti i vertici raggiungibili da s in modo tale da esplorare tutti i vertici che hanno distanza k prima di iniziare a visitare quelli che hanno distanza k+1

Page 25: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Breadth-First Search (BFS)

BFS parte da un nodo, ne visita tutti i primi vicini e quindi i vicini dei vicini …

Page 26: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Breadth-First Search (BFS)

1. Nodo sorgente: etichetta 0

2. Assegnare a tutti suoi vicini etichetta 1 ed inserirli in una coda

3. Togliere dalla coda il primo nodo (etichetta n in generale, 1 al primo passo). Cercare tutti i suoi vicini che non abbiano etichetta, assegnare etichetta n+1 ed inserirli nella coda

4. Ripetere il passo 3 finché non si visiti il nodo di destinazione o la coda sia vuota.

5. La distanza tra il nodo sorgente e quello di destinazione è l’etichetta di questo ultimo

Page 27: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

1.Nodo iniziale: 0

Network Science: Graph Theory Network Science: Graph Theory

1 1 1

1

2

2

2 2

2

3

3

3

3

3

3

3

3

4 4

4

4

4

4

4

4

Network Science: Graph Theory

0

Calcolo delle distanze

Page 28: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Network Science: Graph Theory

1 1 1

1

2

2

2 2

2

3

3

3

3

3

3

3

3

4 4

4

4

4

4

4

4

Distanza tra nodo 0 e nodo 4:

1.Parti dal nodo 0.

2.Trova tutti I nodi adiacenti al nodo 0, assegna distanza 1 e poni in una coda

Network Science: Graph Theory

0 1 1

1

Calcolo delle distanze

Page 29: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Network Science: Graph Theory

1 1 1

1

2

2

2 2

2

3

3

3

3

3

3

3

3

4 4

4

4

4

4

4

4

Network Science: Graph Theory

0 1 1

1

2

2

2 2

2

Network Science: Graph Theory

1

1

Calcolo delle distanze

Page 30: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Distance between node 0 and node 4:

1.Repeat until you find node 4 or there are no more nodes in the queue.

2.The distance between 0 and 4 is the label of 4 or, if 4 does not have a label, infinity.

FINDING DISTANCES: BREADTH FIRST SEARCH

Network Science: Graph Theory

0 1 1

1

2

2

2 2

2

3

3

3

3

3

3

3

3

4 4

4

4

4

4

4

4

Page 31: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

BFS per la ricerca delle componenti connesse

1. Si effettui una BFS con nodo iniziale random e si etichetti tutti i nodi visitati con n=1

2. Se il numero di nodi con etichetta 1 è uguale al numero di nodi N del grafo, il grafo è connesso, altrimenti passo 3

3. nn+1. Si effettui una estrazione casuale tra i nodi non etichettati di un nodo j e lo si etichetti con n. Si effettui una BFS con nodo iniziale j e si etichetti tutti i nodi visitati con n. Si torni al passo 2.

Page 32: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Algoritmo di Dijkstra

Ricerca del cammino a lunghezza minima e della distanza tra due nodi in grafi pesati

• Dijkstra’s Algorithm

– Grafi pesati con pesi non negativi

– Trova il cammino minimo da un nodo fissato s a tutti gli altri nodi del grafo

– Restituisce I cammini minimi e la loro lunghezza

Page 33: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

4-33

Algoritmo di Dijsktra

1 Inizializzazione:

2 N' = {u}

3 per tutti i nodi v

4 se v è adiacente a u

5 allora D(v) = c(u,v)

6 altrimenti D(v) = +∞

7

8 Ciclo

9 determina un w non in N' tale che D(w) sia minimo

10 aggiungi w a N'

11 aggiorna D(v) per ciascun nodo v adiacente a w e non in N' :

12 D(v) = min( D(v), D(w) + c(w,v) )

13 /* il nuovo costo verso v è il vecchio costo verso v oppure

14 il costo del cammino minimo noto verso w più il costo da w a v */

15 Finché N’ = N

Page 34: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

Esercizio

34

u

y x

w v

z

2

2

1

3

1

1

2

5

3

5

Page 35: Presentazione standard di PowerPointsomeni.di.unimi.it/slide/AA2017_connettivita_syllabus.pdf · –Restituisce I cammini minimi e la loro lunghezza . 4-33 Algoritmo di Dijsktra 1

4-35

Algoritmo di Dijkstra: esempio

passo

0

1

2

3

4

5

N'

u

ux

uxy

uxyv

uxyvw

uxyvwz

D(v),p(v)

2,u

2,u

2,u

D(w),p(w)

5,u

4,x

3,y

3,y

D(x),p(x)

1,u

D(y),p(y) +∞ 2,x

D(z),p(z) +∞ +∞

4,y

4,y

4,y

u

y x

w v

z 2

2

1 3

1

1

2

5 3

5 Shortest paths: uv uw ux uxy uxyz