Università degli Studi di Pisa

11
Università degli Studi di Pisa Valerio Cutini insegnamento di Tecnica Urbanistica Corso di laurea triennale in Ing. Edile Ingegneria del Territorio Corso di laurea magistrale in Ing. Idraulica,Trasporti e Territorio Lezione n° 3. Lezione n° 3. Gli algoritmi del minimo Gli algoritmi del minimo percorso percorso a.a. 2013 / 201

description

Valerio Cutini. a.a. 2013 / 2014. Università degli Studi di Pisa. insegnamento di Tecnica Urbanistica Corso di laurea triennale in Ing. Edile Ingegneria del Territorio Corso di laurea magistrale in Ing. Idraulica,Trasporti e Territorio. Lezione n° 3. - PowerPoint PPT Presentation

Transcript of Università degli Studi di Pisa

Page 1: Università degli Studi di Pisa

Università degli Studi di Pisa

Valerio Cutini

insegnamento di

Tecnica Urbanistica• Corso di laurea triennale in Ing. Edile

Ingegneria del Territorio• Corso di laurea magistrale

in Ing. Idraulica,Trasporti e Territorio

Lezione n° 3. Lezione n° 3. Gli algoritmi del minimo Gli algoritmi del minimo

percorsopercorso

a.a. 2013 / 2014

Page 2: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

Il problema della determinazione del più breve percorso fra due punti di un sistema insediativo è fondamentale nella modellistica territoriale

Il problema del minimo percorso

Al fine di evitare che si operi per tentativi, sono stati introdotti metodi rigorosi per risolvere la questioneTali metodi hanno una logica iterativa, ed hanno in comune alcune caratteristiche:

sono oggettivi e ripetibiliforniscono i risultati nel minor numero possibile di passaggiogni singolo passaggio è determinato univocamente dal precedente e determina univocamente il successivoogni singolo passaggio determina un avvicinamento alla soluzione del problema

Page 3: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

I metodi per la determinazione del più breve percorso fra due punti di un sistema insediativo sono detti algoritmi del minimo percorso (shortest path algorithms)

Il problema del minimo percorso

Le loro caratteristiche di iteratività li rendono agevolmente applicabili mediante software specificiPer la comprensione del loro funzionamento, è utile schematizzare un sistema insediativo mediante l’uso di grafi

Page 4: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

I grafi sono un metodo di rappresentazione di un sistema, particolarmente utile ad evidenziare le relazioni fra i suoi singoli elementi

I grafi

Un grafo è composto da nodi e da archiun nodo (node, vertex) rappresenta un punto dello spazioun arco (edge, line) rappresenta la relazione di collegamento diretto (se esitente) fra due nodi

Page 5: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

I grafi

1 2 3

4 5

67

8

9

10

11

12

13

14

i/j 1 2 3 4 5 6 7 8 910

11

12

13

14

1 0 - - 3 - - - - - - - - - -

2 - 0 3 2 - - - - - - - - - -

3 - 3 0 - 2 - - - - - - - - -

4 3 2 - 0 2 - - - - - - - - -

5 - - 2 2 0 4 - - - - - - - -

6 - - - - 4 0 1 - - 1 5 3 - -

7 - - - - - 1 0 - - - - - - -

8 - - - - - - - 0 2 1 - - - -

9 - - - - - - - 2 0 - - - - -

10

- - - - - 1 - 1 - 0 - - - -

11

- - - - - 5 - - - - 0 - - -

12

- - - - - 3 - - - - - 0 2 2

13

- - - - - - - - - - - 2 0 -

14

- - - - - - - - - - - 2 - 0

3 m

2 m 2 m 3 m

4 m

2 m

2 m

5 m

2 m

1 m

1 m

1 m

2 m

3 m

Page 6: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

Un grafo si dice connesso se per ogni coppia di nodi (v, w) c’è un percorso che li unisce

I grafi

Un grafo si dice orientato se la relazione di connessione non è simmetrica, ovvero se esiste almeno una coppia di nodi (v,w) tali che il percorso che li unisce P (v, w) ≠ P (w, v) In un grafo, i singoli nodi possono essere nodi di origine (source vertices) o di destinazione (sink vertices) di percorsiNegli algoritmi del minimo percorso, utilizzeremo grafi connessi e non orientati

Page 7: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

Due qualità sono richieste ad un algoritmo del minimo percorso

Gli algoritmi del minimo percorso

Queste due qualità raramente coesistono

fornire risultati completi ed esaustivi fornire risultati con il minor numero di passaggi

esistono metodi speditivi, ma chhe forniscono risultati parziali ed incompletiesistono metodi che forniscono risultati esaustivi, a prezzo di un elevato numero di passaggi

In particolare, gli SPA si dividono in due famigliequelli che determinano il percorso più breve da

un nodo a tutti gli altri (single-source)quelli che determinano il percorso più breve fra tutte le possibili coppie di nodi (all pairs)

Page 8: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

L’algoritmo di Dijkstra è il più noto e usato degli algoritmi che determinano il minimo percorso da un unico nodo i, assunto come origine

Gli algoritmi single-source:l’algoritmo di Dijkstra

E.W. Dijkstra

Page 9: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

Gli algoritmi single-source:l’algoritmo di Dijkstra

La logica dei passaggi dell’algoritmo è la seguente: Si assegna per ogni dij un valore di tentativo,

ponendo:

Fra tutti i collegamenti dij, si individua il minimo valore dik, e lo si trasforma in valore definitivo

per i=j, dij = 0per i≠j, se esiste un collegamento diretto l0, dij = l0per i≠j, se non esiste un collegamento diretto, dij = ∞

se dik+dkj < dijk-1

, dijk =

dik+dkj se dik+dkj ≥ dijk-1

, dijk =

dijk-1

Si assume il nodo k come nodo perno (pivot) e lo si interpone in tutti i collegamenti dij, sostituendo il valore della misura risultante, nel caso sia minore della precedente. Ovvero:

Si procede, fino a che tutti i valori dei collegamenti non sono diventati definitivi

Page 10: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

L’algoritmo di Floyd è il più noto e usato degli algoritmi che determinano il minimo percorso di connessione fra tutte le possibili coppie i, j di nodi di un grafo

Gli algoritmi all-pairs:l’algoritmo di Floyd

Robert W. Floyd

Page 11: Università degli Studi di Pisa

valerio cutini

a.a. 2013-2014a.a. 2013-2014

Gli algoritmi all-pairs:l’algoritmo di Floyd

La logica dei passaggi dell’algoritmo è la seguente: Si costruisce la matrice dei collegamenti dij,

ponendo:

Alla k-esima iterazione, si interpone il nodo k fra i e j, sostituendo il valore della misura risultante, nel caso sia più breve della precedente. Ovvero:

per i=j, dij = 0per i≠j, se esiste un collegamento diretto l0, dij = l0per i≠j, se non esiste un collegamento diretto, dij = ∞

se dik+dkj < dijk-1

, dijk =

dik+dkj se dik+dkj ≥ dijk-1

, dijk =

dijk-1Si procede per n iterazioni (n matrici), fino a che

tutti i nodi k non sono stati interposti