SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Bellman-Ford-Moore Algorithm
Single-source shortest path algorithm
Bellman-Ford-Moore Algorithm
A.A. 2012/2013Tecniche di programmazione2
 Solution to the single-source shortest path (SSSP)
problem in graph theory
 Based on relaxation (for every vertex, relax all possible
edges)
 Does not work in presence of negative cycles
 but it is able to detect the problem
 O(V∙E)
Bellman-Ford-Moore Algorithm
A.A. 2012/2013Tecniche di programmazione3
dist[s] ← 0 (distance to source vertex is zero)
for all v ∈ V–{s}
do dist[v] ←∞ (set all other distances to infinity)
for i← 0 to |V|
for all (u, v) ∈ E
do if dist[v] > dist[u] + w(u, v) (if new shortest path found)
then d[v] ←d[u] + w(u, v) (set new value of shortest path)
(if desired, add traceback code)
for all (u, v) ∈ E (sanity check)
do if dist[v] > dist[u] + w(u, v)
then PANIC!
Dijkstra’s Algorithm
Yet another SSSP algorithm
Dijkstra’s algorithm
A.A. 2012/2013Tecniche di programmazione5
 Solution to the single-source shortest path (SSSP)
problem in graph theory
 Works on both directed and undirected graphs
 All edges must have nonnegative weights
 the algorithm would miserably fail
 Greedy
… but guarantees the optimum!
Dijkstra’s algorithm
A.A. 2012/2013Tecniche di programmazione6
dist[s] ←0 (distance to source vertex is zero)
for all v ∈ V–{s}
do dist[v] ←∞ (set all other distances to infinity)
S←∅ (S, the set of visited vertices is initially empty)
Q←V (Q, the queue initially contains all vertices)
while Q ≠∅ (while the queue is not empty)
do u ← mindistance(Q,dist) (select e  Q with the min. distance)
S←S∪{u} (add u to list of visited vertices)
for all v ∈ neighbors[u]
do if dist[v] > dist[u] + w(u, v) (if new shortest path found)
then d[v] ←d[u] + w(u, v) (set new value of shortest path)
(if desired, add traceback code)
Dijkstra Animated Example
Dijkstra Animated Example
Dijkstra Animated Example
Dijkstra Animated Example
Dijkstra Animated Example
Dijkstra Animated Example
Dijkstra Animated Example
Dijkstra Animated Example
Dijkstra Animated Example
Dijkstra Animated Example
Why it works
A.A. 2012/2013Tecniche di programmazione17
 A formal proof would take longer than this presentation,
but we can understand how the argument works
intuitively
 Think of Djikstra’s algorithm as a water-filling algorithm
 Remember that all edge’s weights are positive
Dijkstra efficiency
A.A. 2012/2013Tecniche di programmazione18
 The simplest implementation is:
O(𝐸 + 𝑉2)
 But it can be implemented more efficently:
O(𝐸 + 𝑉 ∙ log 𝑉)
Floyd–Warshall: O(V3)
Bellman-Ford-Moore : O(V∙E)
Applications
A.A. 2012/2013Tecniche di programmazione19
 Dijkstra’s algorithm calculates the shortest path to every
vertex from vertex s (SSSP)
 It is about as computationally expensive to calculate the
shortest path from vertex u to every vertex using
Dijkstra’s as it is to calculate the shortest path to some
particular vertex t
 Therefore, anytime we want to know the optimal path to
some other vertex t from a determined origin s, we can
use Dijkstra’s algorithm (and stop as soon t exit from Q)
Applications
A.A. 2012/2013Tecniche di programmazione20
 Traffic Information Systems are most prominent use
 Mapping (Map Quest, Google Maps)
 Routing Systems
21
Dijkstra's Shortest Path Algorithm
 Find shortest path from s to t
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
s
3
t
2
6
7
4
5
22
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6







0
distance label
S = { }
Q = { s, 2, 3, 4, 5, 6, 7, t }
s
3
t
2
6
7
4
5
23
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6







0
distance label
S = { }
Q = { s, 2, 3, 4, 5, 6, 7, t }
delmin
24
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9



14

0
distance label
S = { s }
Q = { 2, 3, 4, 5, 6, 7, t }
decrease key
X

X
X
s
3
t
2
6
7
4
5
25
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9



14

0
distance label
S = { s }
Q = { 2, 3, 4, 5, 6, 7, t }
X

X
X
delmin
s
3
t
2
6
7
4
5
26
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9



14

0
S = { s, 2 }
Q = { 3, 4, 5, 6, 7, t }
X

X
X
s
3
t
2
6
7
4
5
27
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9



14

0
S = { s, 2 }
Q = { 3, 4, 5, 6, 7, t }
X

X
X
decrease key
X 33
s
3
t
2
6
7
4
5
28
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9



14

0
S = { s, 2 }
Q = { 3, 4, 5, 6, 7, t }
X

X
X
X 33
delmin
s
3
t
2
6
7
4
5
29
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9



14

0
S = { s, 2, 6 }
Q = { 3, 4, 5, 7, t }
X

X
X
X 33
44
X
X
32
s
3
t
2
6
7
4
5
30
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 6 }
Q = { 3, 4, 5, 7, t }
X

X
X
44
X
delmin
X 33X
32
s
3
t
2
6
7
4
5
31
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 6, 7 }
Q = { 3, 4, 5, t }
X

X
X
44
X
35X
59 X
24
X 33X
32
s
3
t
2
6
7
4
5
32
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 6, 7 }
Q = { 3, 4, 5, t }
X

X
X
44
X
35X
59 X
delmin
X 33X
32
s
3
t
2
6
7
4
5
33
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 3, 6, 7 }
Q = { 4, 5, t }
X

X
X
44
X
35X
59 XX51
X 34
X 33X
32
s
3
t
2
6
7
4
5
34
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 3, 6, 7 }
Q = { 4, 5, t }
X

X
X
44
X
35X
59 XX51
X 34
delmin
X 33X
32
24
s
3
t
2
6
7
4
5
35
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 3, 5, 6, 7 }
Q = { 4, t }
X

X
X
44
X
35X
59 XX51
X 34
24
X50
X45
X 33X
32
s
3
t
2
6
7
4
5
36
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 3, 5, 6, 7 }
Q = { 4, t }
X

X
X
44
X
35X
59 XX51
X 34
24
X50
X45
delmin
X 33X
32
s
3
t
2
6
7
4
5
37
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 3, 4, 5, 6, 7 }
Q = { t }
X

X
X
44
X
35X
59 XX51
X 34
24
X50
X45
X 33X
32
s
3
t
2
6
7
4
5
38
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 3, 4, 5, 6, 7 }
Q = { t }
X

X
X
44
X
35X
59 XX51
X 34
X50
X45
delmin
X 33X
32
24
s
3
t
2
6
7
4
5
39
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 3, 4, 5, 6, 7, t }
Q = { }
X

X
X
44
X
35X
59 XX51
X 34
X50
X45
X 33X
32
s
3
t
2
6
7
4
5
40
Dijkstra's Shortest Path Algorithm
s
3
t
2
6
7
4
5
24
18
2
9
14
15
5
30
20
44
16
11
6
19
6
15
9


14

0
S = { s, 2, 3, 4, 5, 6, 7, t }
Q = { }
X

X
X
44
X
35X
59 XX51
X 34
X50
X45
X 33X
32
s
3
t
2
6
7
4
5
Shortest Paths wrap-up
A.A. 2012/2013Tecniche di programmazione41
Algorithm Problem Efficiency Limitation
Floyd-Warshall AP O(𝑉3
) No negative cycles
Bellman–Ford SS O(𝑉 ∙ 𝐸) No negative cycles
Repeated- Bellman-Ford AP O(𝑉2
∙ 𝐸) No negative cycles
Dijkstra SS O(𝐸 + 𝑉 ∙ log 𝑉) No negative edges
Repeated Dijkstra AP O(𝑉 ∙ 𝐸 + 𝑉2 ∙ log 𝑉) No negative edges
JGraphT
A.A. 2012/2013Tecniche di programmazione42
public class FloydWarshallShortestPaths<V,E>
public class BellmanFordShortestPath<V,E>
public class DijkstraShortestPath<V,E>
// APSP
List<GraphPath<V,E>> getShortestPaths(V v)
GraphPath<V,E> getShortestPath(V a, V b)
// SSSPs
GraphPath<V,E> getPath()
Licenza d’uso
A.A. 2012/2013Tecniche di programmazione43
 Queste diapositive sono distribuite con licenza Creative Commons
“Attribuzione - Non commerciale - Condividi allo stesso modo (CC
BY-NC-SA)”
 Sei libero:
 di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico,
rappresentare, eseguire e recitare quest'opera
 di modificare quest'opera
 Alle seguenti condizioni:
 Attribuzione — Devi attribuire la paternità dell'opera agli autori
originali e in modo tale da non suggerire che essi avallino te o il modo in
cui tu usi l'opera.
 Non commerciale — Non puoi usare quest'opera per fini
commerciali.
 Condividi allo stesso modo — Se alteri o trasformi quest'opera, o se
la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una
licenza identica o equivalente a questa.
 http://creativecommons.org/licenses/by-nc-sa/3.0/

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

N Queens problem
N Queens problemN Queens problem
N Queens problem
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentationDijkstra's algorithm presentation
Dijkstra's algorithm presentation
 
Dijkstra's Algorithm
Dijkstra's Algorithm Dijkstra's Algorithm
Dijkstra's Algorithm
 
Optimal binary search tree dynamic programming
Optimal binary search tree   dynamic programmingOptimal binary search tree   dynamic programming
Optimal binary search tree dynamic programming
 
Covering (Rules-based) Algorithm
Covering (Rules-based) AlgorithmCovering (Rules-based) Algorithm
Covering (Rules-based) Algorithm
 
Dijkstra s algorithm
Dijkstra s algorithmDijkstra s algorithm
Dijkstra s algorithm
 
Longest Common Sub-sequence (LCS)
Longest Common Sub-sequence (LCS)Longest Common Sub-sequence (LCS)
Longest Common Sub-sequence (LCS)
 
Floyd Warshall Algorithm
Floyd Warshall AlgorithmFloyd Warshall Algorithm
Floyd Warshall Algorithm
 
Unit IV UNCERTAINITY AND STATISTICAL REASONING in AI K.Sundar,AP/CSE,VEC
Unit IV UNCERTAINITY AND STATISTICAL REASONING in AI K.Sundar,AP/CSE,VECUnit IV UNCERTAINITY AND STATISTICAL REASONING in AI K.Sundar,AP/CSE,VEC
Unit IV UNCERTAINITY AND STATISTICAL REASONING in AI K.Sundar,AP/CSE,VEC
 
SINGLE-SOURCE SHORTEST PATHS
SINGLE-SOURCE SHORTEST PATHS SINGLE-SOURCE SHORTEST PATHS
SINGLE-SOURCE SHORTEST PATHS
 
Prim's Algorithm on minimum spanning tree
Prim's Algorithm on minimum spanning treePrim's Algorithm on minimum spanning tree
Prim's Algorithm on minimum spanning tree
 
Unit 3 daa
Unit 3 daaUnit 3 daa
Unit 3 daa
 
Knapsack Problem
Knapsack ProblemKnapsack Problem
Knapsack Problem
 
A presentation on prim's and kruskal's algorithm
A presentation on prim's and kruskal's algorithmA presentation on prim's and kruskal's algorithm
A presentation on prim's and kruskal's algorithm
 
Webinar : P, NP, NP-Hard , NP - Complete problems
Webinar : P, NP, NP-Hard , NP - Complete problems Webinar : P, NP, NP-Hard , NP - Complete problems
Webinar : P, NP, NP-Hard , NP - Complete problems
 
Kruskal Algorithm
Kruskal AlgorithmKruskal Algorithm
Kruskal Algorithm
 
NP completeness
NP completenessNP completeness
NP completeness
 
Single source stortest path bellman ford and dijkstra
Single source stortest path bellman ford and dijkstraSingle source stortest path bellman ford and dijkstra
Single source stortest path bellman ford and dijkstra
 
Np completeness
Np completenessNp completeness
Np completeness
 
Job sequencing with Deadlines
Job sequencing with DeadlinesJob sequencing with Deadlines
Job sequencing with Deadlines
 

Similar a Bellman-Ford-Moore Algorithm and Dijkstra’s Algorithm

Dijkstra’s algorithm
Dijkstra’s algorithmDijkstra’s algorithm
Dijkstra’s algorithm
faisal2204
 
All pairs shortest path algorithm
All pairs shortest path algorithmAll pairs shortest path algorithm
All pairs shortest path algorithm
Srikrishnan Suresh
 
01-05-2023, SOL_DU_MBAFT_6202_Dijkstra’s Algorithm Dated 1st May 23.pdf
01-05-2023, SOL_DU_MBAFT_6202_Dijkstra’s Algorithm Dated 1st May 23.pdf01-05-2023, SOL_DU_MBAFT_6202_Dijkstra’s Algorithm Dated 1st May 23.pdf
01-05-2023, SOL_DU_MBAFT_6202_Dijkstra’s Algorithm Dated 1st May 23.pdf
DKTaxation
 
Session 13 - Single Source Shortest Path Method.pptx
Session 13 - Single Source Shortest Path Method.pptxSession 13 - Single Source Shortest Path Method.pptx
Session 13 - Single Source Shortest Path Method.pptx
SATHWIKCHAKRI
 
Graphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & AlgorithumsGraphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 

Similar a Bellman-Ford-Moore Algorithm and Dijkstra’s Algorithm (20)

Dijkstra’s algorithm
Dijkstra’s algorithmDijkstra’s algorithm
Dijkstra’s algorithm
 
2.3 shortest path dijkstra’s
2.3 shortest path dijkstra’s 2.3 shortest path dijkstra’s
2.3 shortest path dijkstra’s
 
Jaimin chp-5 - network layer- 2011 batch
Jaimin   chp-5 - network layer- 2011 batchJaimin   chp-5 - network layer- 2011 batch
Jaimin chp-5 - network layer- 2011 batch
 
dijkstras example.ppt
dijkstras example.pptdijkstras example.ppt
dijkstras example.ppt
 
2.6 all pairsshortestpath
2.6 all pairsshortestpath2.6 all pairsshortestpath
2.6 all pairsshortestpath
 
Randomized algorithms all pairs shortest path
Randomized algorithms  all pairs shortest pathRandomized algorithms  all pairs shortest path
Randomized algorithms all pairs shortest path
 
All pairs shortest path algorithm
All pairs shortest path algorithmAll pairs shortest path algorithm
All pairs shortest path algorithm
 
01-05-2023, SOL_DU_MBAFT_6202_Dijkstra’s Algorithm Dated 1st May 23.pdf
01-05-2023, SOL_DU_MBAFT_6202_Dijkstra’s Algorithm Dated 1st May 23.pdf01-05-2023, SOL_DU_MBAFT_6202_Dijkstra’s Algorithm Dated 1st May 23.pdf
01-05-2023, SOL_DU_MBAFT_6202_Dijkstra’s Algorithm Dated 1st May 23.pdf
 
04 greedyalgorithmsii 2x2
04 greedyalgorithmsii 2x204 greedyalgorithmsii 2x2
04 greedyalgorithmsii 2x2
 
Single sourceshortestpath by emad
Single sourceshortestpath by emadSingle sourceshortestpath by emad
Single sourceshortestpath by emad
 
04 greedyalgorithmsii
04 greedyalgorithmsii04 greedyalgorithmsii
04 greedyalgorithmsii
 
Design and Analysis of Algorithm -Shortest paths problem
Design and Analysis of Algorithm -Shortest paths problemDesign and Analysis of Algorithm -Shortest paths problem
Design and Analysis of Algorithm -Shortest paths problem
 
Shortest Path Problem.docx
Shortest Path Problem.docxShortest Path Problem.docx
Shortest Path Problem.docx
 
module4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdfmodule4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdf
 
Lecture#9
Lecture#9Lecture#9
Lecture#9
 
12_Graph.pptx
12_Graph.pptx12_Graph.pptx
12_Graph.pptx
 
Dijksatra
DijksatraDijksatra
Dijksatra
 
Session 13 - Single Source Shortest Path Method.pptx
Session 13 - Single Source Shortest Path Method.pptxSession 13 - Single Source Shortest Path Method.pptx
Session 13 - Single Source Shortest Path Method.pptx
 
DAA_Presentation - Copy.pptx
DAA_Presentation - Copy.pptxDAA_Presentation - Copy.pptx
DAA_Presentation - Copy.pptx
 
Graphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & AlgorithumsGraphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & Algorithums
 

Último

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
MateoGardella
 

Último (20)

Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 

Bellman-Ford-Moore Algorithm and Dijkstra’s Algorithm

  • 2. Bellman-Ford-Moore Algorithm A.A. 2012/2013Tecniche di programmazione2  Solution to the single-source shortest path (SSSP) problem in graph theory  Based on relaxation (for every vertex, relax all possible edges)  Does not work in presence of negative cycles  but it is able to detect the problem  O(V∙E)
  • 3. Bellman-Ford-Moore Algorithm A.A. 2012/2013Tecniche di programmazione3 dist[s] ← 0 (distance to source vertex is zero) for all v ∈ V–{s} do dist[v] ←∞ (set all other distances to infinity) for i← 0 to |V| for all (u, v) ∈ E do if dist[v] > dist[u] + w(u, v) (if new shortest path found) then d[v] ←d[u] + w(u, v) (set new value of shortest path) (if desired, add traceback code) for all (u, v) ∈ E (sanity check) do if dist[v] > dist[u] + w(u, v) then PANIC!
  • 5. Dijkstra’s algorithm A.A. 2012/2013Tecniche di programmazione5  Solution to the single-source shortest path (SSSP) problem in graph theory  Works on both directed and undirected graphs  All edges must have nonnegative weights  the algorithm would miserably fail  Greedy … but guarantees the optimum!
  • 6. Dijkstra’s algorithm A.A. 2012/2013Tecniche di programmazione6 dist[s] ←0 (distance to source vertex is zero) for all v ∈ V–{s} do dist[v] ←∞ (set all other distances to infinity) S←∅ (S, the set of visited vertices is initially empty) Q←V (Q, the queue initially contains all vertices) while Q ≠∅ (while the queue is not empty) do u ← mindistance(Q,dist) (select e  Q with the min. distance) S←S∪{u} (add u to list of visited vertices) for all v ∈ neighbors[u] do if dist[v] > dist[u] + w(u, v) (if new shortest path found) then d[v] ←d[u] + w(u, v) (set new value of shortest path) (if desired, add traceback code)
  • 17. Why it works A.A. 2012/2013Tecniche di programmazione17  A formal proof would take longer than this presentation, but we can understand how the argument works intuitively  Think of Djikstra’s algorithm as a water-filling algorithm  Remember that all edge’s weights are positive
  • 18. Dijkstra efficiency A.A. 2012/2013Tecniche di programmazione18  The simplest implementation is: O(𝐸 + 𝑉2)  But it can be implemented more efficently: O(𝐸 + 𝑉 ∙ log 𝑉) Floyd–Warshall: O(V3) Bellman-Ford-Moore : O(V∙E)
  • 19. Applications A.A. 2012/2013Tecniche di programmazione19  Dijkstra’s algorithm calculates the shortest path to every vertex from vertex s (SSSP)  It is about as computationally expensive to calculate the shortest path from vertex u to every vertex using Dijkstra’s as it is to calculate the shortest path to some particular vertex t  Therefore, anytime we want to know the optimal path to some other vertex t from a determined origin s, we can use Dijkstra’s algorithm (and stop as soon t exit from Q)
  • 20. Applications A.A. 2012/2013Tecniche di programmazione20  Traffic Information Systems are most prominent use  Mapping (Map Quest, Google Maps)  Routing Systems
  • 21. 21 Dijkstra's Shortest Path Algorithm  Find shortest path from s to t s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 s 3 t 2 6 7 4 5
  • 22. 22 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6        0 distance label S = { } Q = { s, 2, 3, 4, 5, 6, 7, t } s 3 t 2 6 7 4 5
  • 23. 23 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6        0 distance label S = { } Q = { s, 2, 3, 4, 5, 6, 7, t } delmin
  • 24. 24 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9    14  0 distance label S = { s } Q = { 2, 3, 4, 5, 6, 7, t } decrease key X  X X s 3 t 2 6 7 4 5
  • 25. 25 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9    14  0 distance label S = { s } Q = { 2, 3, 4, 5, 6, 7, t } X  X X delmin s 3 t 2 6 7 4 5
  • 26. 26 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9    14  0 S = { s, 2 } Q = { 3, 4, 5, 6, 7, t } X  X X s 3 t 2 6 7 4 5
  • 27. 27 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9    14  0 S = { s, 2 } Q = { 3, 4, 5, 6, 7, t } X  X X decrease key X 33 s 3 t 2 6 7 4 5
  • 28. 28 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9    14  0 S = { s, 2 } Q = { 3, 4, 5, 6, 7, t } X  X X X 33 delmin s 3 t 2 6 7 4 5
  • 29. 29 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9    14  0 S = { s, 2, 6 } Q = { 3, 4, 5, 7, t } X  X X X 33 44 X X 32 s 3 t 2 6 7 4 5
  • 30. 30 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 6 } Q = { 3, 4, 5, 7, t } X  X X 44 X delmin X 33X 32 s 3 t 2 6 7 4 5
  • 31. 31 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 6, 7 } Q = { 3, 4, 5, t } X  X X 44 X 35X 59 X 24 X 33X 32 s 3 t 2 6 7 4 5
  • 32. 32 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 6, 7 } Q = { 3, 4, 5, t } X  X X 44 X 35X 59 X delmin X 33X 32 s 3 t 2 6 7 4 5
  • 33. 33 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 3, 6, 7 } Q = { 4, 5, t } X  X X 44 X 35X 59 XX51 X 34 X 33X 32 s 3 t 2 6 7 4 5
  • 34. 34 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 3, 6, 7 } Q = { 4, 5, t } X  X X 44 X 35X 59 XX51 X 34 delmin X 33X 32 24 s 3 t 2 6 7 4 5
  • 35. 35 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 3, 5, 6, 7 } Q = { 4, t } X  X X 44 X 35X 59 XX51 X 34 24 X50 X45 X 33X 32 s 3 t 2 6 7 4 5
  • 36. 36 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 3, 5, 6, 7 } Q = { 4, t } X  X X 44 X 35X 59 XX51 X 34 24 X50 X45 delmin X 33X 32 s 3 t 2 6 7 4 5
  • 37. 37 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 3, 4, 5, 6, 7 } Q = { t } X  X X 44 X 35X 59 XX51 X 34 24 X50 X45 X 33X 32 s 3 t 2 6 7 4 5
  • 38. 38 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 3, 4, 5, 6, 7 } Q = { t } X  X X 44 X 35X 59 XX51 X 34 X50 X45 delmin X 33X 32 24 s 3 t 2 6 7 4 5
  • 39. 39 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 3, 4, 5, 6, 7, t } Q = { } X  X X 44 X 35X 59 XX51 X 34 X50 X45 X 33X 32 s 3 t 2 6 7 4 5
  • 40. 40 Dijkstra's Shortest Path Algorithm s 3 t 2 6 7 4 5 24 18 2 9 14 15 5 30 20 44 16 11 6 19 6 15 9   14  0 S = { s, 2, 3, 4, 5, 6, 7, t } Q = { } X  X X 44 X 35X 59 XX51 X 34 X50 X45 X 33X 32 s 3 t 2 6 7 4 5
  • 41. Shortest Paths wrap-up A.A. 2012/2013Tecniche di programmazione41 Algorithm Problem Efficiency Limitation Floyd-Warshall AP O(𝑉3 ) No negative cycles Bellman–Ford SS O(𝑉 ∙ 𝐸) No negative cycles Repeated- Bellman-Ford AP O(𝑉2 ∙ 𝐸) No negative cycles Dijkstra SS O(𝐸 + 𝑉 ∙ log 𝑉) No negative edges Repeated Dijkstra AP O(𝑉 ∙ 𝐸 + 𝑉2 ∙ log 𝑉) No negative edges
  • 42. JGraphT A.A. 2012/2013Tecniche di programmazione42 public class FloydWarshallShortestPaths<V,E> public class BellmanFordShortestPath<V,E> public class DijkstraShortestPath<V,E> // APSP List<GraphPath<V,E>> getShortestPaths(V v) GraphPath<V,E> getShortestPath(V a, V b) // SSSPs GraphPath<V,E> getPath()
  • 43. Licenza d’uso A.A. 2012/2013Tecniche di programmazione43  Queste diapositive sono distribuite con licenza Creative Commons “Attribuzione - Non commerciale - Condividi allo stesso modo (CC BY-NC-SA)”  Sei libero:  di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera  di modificare quest'opera  Alle seguenti condizioni:  Attribuzione — Devi attribuire la paternità dell'opera agli autori originali e in modo tale da non suggerire che essi avallino te o il modo in cui tu usi l'opera.  Non commerciale — Non puoi usare quest'opera per fini commerciali.  Condividi allo stesso modo — Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica o equivalente a questa.  http://creativecommons.org/licenses/by-nc-sa/3.0/