Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and...
Transcript of Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and...
![Page 1: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/1.jpg)
JT Version 2.2 25/02/19
Floyd’s
algorithm
![Page 2: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/2.jpg)
JT Version 2.2 25/02/19
Shortest Paths – beyond Dijkstra Single Source to all other vertices
Dijkstra’s algorithm
Bellman Ford Algorithm and Dynamic
Programming (to handle negative weights)
What happens if you want to find all the
shortest paths in a network?
Floyd-Warshall algorithm
![Page 3: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/3.jpg)
JT Version 2.2 25/02/19
Floyd-Warshall algorithm The Floyd–Warshall algorithm is an example
of dynamic programming.
It was published in its current form by Robert
Floyd in 1962.
It is essentially the same as algorithms
previously published by Bernard Roy in
1959 and by Stephen Warshall in 1962.
Professor Robert Floyd (1936 – 2001)
Stanford University, computer science
![Page 4: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/4.jpg)
JT Version 2.2 25/02/19
Floyd’s algorithmFloyd’s Algorithm finds the shortest path between
every pair of vertices in the Network.
Example:
Find the shortest paths between each pair of
vertices in the following network:2
1
3
480
7030
40
10
![Page 5: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/5.jpg)
JT Version 2.2 25/02/19
Floyd’s algorithm – two versions!Floyd’s Algorithm was on the MEI specification
before the new 2017 specifications.
INTEGRAL resources also included it in the same
standard form.
The Pearson Edexcel text book contains a new
variant of Floyd’s Algorithm which uses a different
process for updating the route matrix and reading
off the final route.
![Page 6: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/6.jpg)
JT Version 2.2 25/02/19
Floyd’s algorithm – two versions!Floyd’s Algorithm: Edexcel variant
Floyd’s Algorithm: standard version
Edexcel
SAMs
Integral
Maths
online
resources
Edexcel
SAMs
? ? ?
![Page 7: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/7.jpg)
JT Version 2.2 25/02/19
Distance matrix
Both versions treat the
distance matrix the
same way, but Edexcel
has dashes on the
leading diagonal.
1 2 3 4
1 80 30
2 80 40 10
3 30 40 70
4 10 70
2
1
3
480
7030
40
10
![Page 8: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/8.jpg)
JT Version 2.2 25/02/19
Distance and Route matrices
Initial distance matrix Initial route matrix
The main difference occurs in the route matrix.
1 2 3 4
1 80 30
2 80 40 10
3 30 40 70
4 10 70
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
![Page 9: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/9.jpg)
JT Version 2.2 25/02/19
Floyd’s Algorithm: standard method
![Page 10: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/10.jpg)
JT Version 2.2 25/02/19
Floyd’s Algorithm: standard method
EDEXCEL FURTHER MATHS: Decision Maths for AS and A Level
Oxford University Press
![Page 11: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/11.jpg)
JT Version 2.2 25/02/19
Distance and Route matrices
D(0) R(0)
1 2 3 4
1 80 30
2 80 40 10
3 30 40 70
4 10 70
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
![Page 12: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/12.jpg)
JT Version 2.2 25/02/19
First iteration:Highlight the 1st row and column.
D(0) R(0)
1 2 3 4
1 80 30
2 80 40 10
3 30 40 70
4 10 70
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
2
1
3
480
7030
40
10
![Page 13: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/13.jpg)
JT Version 2.2 25/02/19
First iteration:
1 2 3 4
1 80 30
2 80 40 10
3 30 40 70
4 10 70
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
2
1
3
480
7030
40
10
160 1
60 1
80+80 <
replace with 160
80+30 > 40
don’t replace
replace with the row
entry in the highlighted
column
![Page 14: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/14.jpg)
JT Version 2.2 25/02/19
After first iteration:
D(1) R(1)
1 2 3 4
1 80 30
2 80 160 40 10
3 30 40 60 70
4 10 70
1 2 3 4
1 1 2 3 4
2 1 1 3 4
3 1 2 1 4
4 1 2 3 4
2
1
3
480
7030
40
10
![Page 15: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/15.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Second iteration:Highlight the second row and column.
D(1) R(1)
1 2 3 4
1 80 30
2 80 160 40 10
3 30 40 60 70
4 10 70
1 2 3 4
1 1 2 3 4
2 1 1 3 4
3 1 2 1 4
4 1 2 3 4
![Page 16: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/16.jpg)
JT Version 2.2 25/02/19
Second iteration:
2
1
3
480
7030
40
10
1 2 3 4
1 80 30
2 80 160 40 10
3 30 40 60 70
4 10 70
1 2 3 4
1 1 2 3 4
2 1 1 3 4
3 1 2 1 4
4 1 2 3 4
160 290 2
50 2
90 250 220 2
![Page 17: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/17.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
After second iteration:
D(2) R(2)
1 2 3 4
1 160 80 30 90
2 80 160 40 10
3 30 40 60 50
4 90 10 50 20
1 2 3 4
1 2 2 3 2
2 1 1 3 4
3 1 2 1 2
4 2 2 2 2
![Page 18: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/18.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Third iteration:Highlight the third row and column.
D(2) R(2)
1 2 3 4
1 160 80 30 90
2 80 160 40 10
3 30 40 60 50
4 90 10 50 20
1 2 3 4
1 2 2 3 2
2 1 1 3 4
3 1 2 1 2
4 2 2 2 2
![Page 19: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/19.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Third iteration:
1 2 3 4
1 160 80 30 90
2 80 160 40 10
3 30 40 60 50
4 90 10 50 20
1 2 3 4
1 2 2 3 2
2 1 1 3 4
3 1 2 1 2
4 2 2 2 2
60 70 80
70 80
80
3 3 3
3 3
2
Note: the variant
method does this
step differently
![Page 20: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/20.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
After third iteration:
D(3) R(3)
1 2 3 4
1 60 70 30 80
2 70 80 40 10
3 30 40 60 50
4 80 10 50 20
1 2 3 4
1 3 3 3 3
2 3 3 3 4
3 1 2 1 2
4 2 2 2 2
![Page 21: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/21.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Fourth iteration:Highlight the fourth row and column.
D(3) R(3)
1 2 3 4
1 60 70 30 80
2 70 80 40 10
3 30 40 60 50
4 80 10 50 20
1 2 3 4
1 3 3 3 3
2 3 3 3 4
3 1 2 1 2
4 2 2 2 2
![Page 22: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/22.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Fourth iteration:
1 2 3 4
1 60 70 30 80
2 70 80 40 10
3 30 40 60 50
4 80 10 50 20
1 2 3 4
1 3 3 3 3
2 3 3 3 4
3 1 2 1 2
4 2 2 2 2
20 4
![Page 23: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/23.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
After fourth iteration:
D(4) R(4)
1 2 3 4
1 60 70 30 80
2 70 20 40 10
3 30 40 60 50
4 80 10 50 20
1 2 3 4
1 3 3 3 3
2 3 4 3 4
3 1 2 1 2
4 2 2 2 2
![Page 24: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/24.jpg)
JT Version 2.2 25/02/19
Using the matrices: standard versionFind the shortest route from 1 to 4.
D(4) R(4)
Row 1 to col 4 gives 3, so route directly from 1 to 3;
so 1-3 …
1 2 3 4
1 60 70 30 80
2 70 20 40 10
3 30 40 60 50
4 80 10 50 20
1 2 3 4
1 3 3 3 3
2 3 4 3 4
3 1 2 1 2
4 2 2 2 2
![Page 25: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/25.jpg)
JT Version 2.2 25/02/19
Using the matrices: standard versionFind the shortest route from 1 to 4.
D(4) R(4)
Check row 3 to column 4, 3 goes directly to 2;
so 1-3-2 …
1 2 3 4
1 60 70 30 80
2 70 20 40 10
3 30 40 60 50
4 80 10 50 20
1 2 3 4
1 3 3 3 3
2 3 4 3 4
3 1 2 1 2
4 2 2 2 2
![Page 26: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/26.jpg)
JT Version 2.2 25/02/19
Using the matrices: standard versionFind the shortest route from 1 to 4.
D(4) R(4)
Check row 2 to column 4, 2 goes directly to 4;
so 1-3-2-4
1 2 3 4
1 60 70 30 80
2 70 20 40 10
3 30 40 60 50
4 80 10 50 20
1 2 3 4
1 3 3 3 3
2 3 4 3 4
3 1 2 1 2
4 2 2 2 2
![Page 27: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/27.jpg)
JT Version 2.2 25/02/19
Using the matrices: standard versionFind the shortest route from 1 to 4.
D(4) R(4)
The shortest route from 1 to 4 is 80 by going: 1-3-2-4
1 2 3 4
1 60 70 30 80
2 70 20 40 10
3 30 40 60 50
4 80 10 50 20
1 2 3 4
1 3 3 3 3
2 3 4 3 4
3 1 2 1 2
4 2 2 2 2
![Page 28: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/28.jpg)
JT Version 2.2 25/02/19
Using the matrices: standard version
The shortest route from 1 to 4 is 80 by going: 1-3-2-4
1 2 3 4
1 60 70 30 80
2 70 20 40 10
3 30 40 60 50
4 80 10 50 20
1 2 3 4
1 3 3 3 3
2 3 4 3 4
3 1 2 1 2
4 2 2 2 22
1
3
480
7030
40
10
![Page 29: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/29.jpg)
JT Version 2.2 25/02/19
Floyd’s Algorithm: Edexcel variant
![Page 30: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/30.jpg)
JT Version 2.2 25/02/19
Floyd’s Algorithm: Edexcel variant
![Page 31: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/31.jpg)
JT Version 2.2 25/02/19
Floyd’s Algorithm: Edexcel variant
EDEXCEL FURTHER MATHS: Decision Maths for AS and A Level
Pearson
![Page 32: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/32.jpg)
JT Version 2.2 25/02/19
Distance and Route matrices
D(0) R(0)
1 2 3 4
1 - 80 30
2 80 - 40 10
3 30 40 - 70
4 10 70 -
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
![Page 33: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/33.jpg)
JT Version 2.2 25/02/19
First iteration:Highlight the 1st row and column.
D(0) R(0)
1 2 3 4
1 - 80 30
2 80 - 40 10
3 30 40 - 70
4 10 70 -
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
2
1
3
480
7030
40
10
![Page 34: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/34.jpg)
JT Version 2.2 25/02/19
First iteration:
1 2 3 4
1 - 80 30
2 80 - 40 10
3 30 40 - 70
4 10 70 -
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
2
1
3
480
7030
40
10
80+80 > “-”
don’t replace
80+30 > 40
don’t replace
No changes needed
to route matrix
![Page 35: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/35.jpg)
JT Version 2.2 25/02/19
After first iteration:
D(1) R(1)
1 2 3 4
1 - 80 30
2 80 - 40 10
3 30 40 - 70
4 10 70 -
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
2
1
3
480
7030
40
10
![Page 36: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/36.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Second iteration:Highlight the second row and column.
D(1) R(1)
1 2 3 4
1 - 80 30
2 80 - 40 10
3 30 40 - 70
4 10 70 -
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
![Page 37: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/37.jpg)
JT Version 2.2 25/02/19
Second iteration:
2
1
3
480
7030
40
10
1 2 3 4
1 - 80 30
2 80 - 40 10
3 30 40 - 70
4 10 70 -
1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4 1 2 3 4
90 2
50 2
90 250 2
![Page 38: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/38.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
After second iteration:
D(2) R(2)
1 2 3 4
1 - 80 30 90
2 80 - 40 10
3 30 40 - 50
4 90 10 50 -
1 2 3 4
1 1 2 3 2
2 1 2 3 4
3 1 2 3 2
4 2 2 2 4
![Page 39: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/39.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Third iteration:Highlight the third row and column.
D(2) R(2)
1 2 3 4
1 - 80 30 90
2 80 - 40 10
3 30 40 - 50
4 90 10 50 -
1 2 3 4
1 1 2 3 2
2 1 2 3 4
3 1 2 3 2
4 2 2 2 4
![Page 40: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/40.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Third iteration:
1 2 3 4
1 - 80 30 90
2 80 - 40 10
3 30 40 - 50
4 90 10 50 -
1 2 3 4
1 1 2 3 2
2 1 2 3 4
3 1 2 3 2
4 2 2 2 4
70 80
70
80
3 3
3
3
Note: the standard
method would do
this step differently
![Page 41: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/41.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
After third iteration:
D(3) R(3)
1 2 3 4
1 - 70 30 80
2 70 - 40 10
3 30 40 - 50
4 80 10 50 -
1 2 3 4
1 1 3 3 3
2 3 2 3 4
3 1 2 3 2
4 3 2 2 4
![Page 42: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/42.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Fourth iteration:Highlight the fourth row and column.
D(3) R(3)
1 2 3 4
1 - 70 30 80
2 70 - 40 10
3 30 40 - 50
4 80 10 50 -
1 2 3 4
1 1 3 3 3
2 3 2 3 4
3 1 2 3 2
4 3 2 2 4
![Page 43: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/43.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
Fourth iteration:Check all unhighlighted cells.
(There are no further changes.)
1 2 3 4
1 - 70 30 80
2 70 - 40 10
3 30 40 - 50
4 80 10 50 -
1 2 3 4
1 1 3 3 3
2 3 2 3 4
3 1 2 3 2
4 3 2 2 4
![Page 44: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/44.jpg)
JT Version 2.2 25/02/19
2
1
3
480
7030
40
10
After fourth iteration:
D(4) R(4)
1 2 3 4
1 - 70 30 80
2 70 - 40 10
3 30 40 - 50
4 80 10 50 -
1 2 3 4
1 1 3 3 3
2 3 2 3 4
3 1 2 3 2
4 3 2 2 4
![Page 45: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/45.jpg)
JT Version 2.2 25/02/19
Using the matrices: Edexcel versionFind the shortest route from 1 to 4.
D(4) R(4)
Row 1 to col 4 gives 3, so route from 1 to 4 goes via 3;
so 1…3…4
1 2 3 4
1 - 70 30 80
2 70 - 40 10
3 30 40 - 50
4 80 10 50 -
1 2 3 4
1 1 3 3 3
2 3 2 3 4
3 1 2 3 2
4 3 2 2 4
![Page 46: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/46.jpg)
JT Version 2.2 25/02/19
Using the matrices: Edexcel versionFind the shortest route from 1 to 4.
D(4) R(4)
Check row 3 to column 4, 3 to 4 goes via 2;
so 1…3…2…4
1 2 3 4
1 - 70 30 80
2 70 - 40 10
3 30 40 - 50
4 80 10 50 -
1 2 3 4
1 1 3 3 3
2 3 2 3 4
3 1 2 3 2
4 3 2 2 4
![Page 47: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/47.jpg)
JT Version 2.2 25/02/19
Using the matrices: Edexcel versionFind the shortest route from 1 to 4.
D(4) R(4)
Check row 2 to column 4, 2 to 4 goes via 4 (i.e. direct).
The shortest route: 1…3…2…4
1 2 3 4
1 - 70 30 80
2 70 - 40 10
3 30 40 - 50
4 80 10 50 -
1 2 3 4
1 1 3 3 3
2 3 2 3 4
3 1 2 3 2
4 3 2 2 4
![Page 48: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/48.jpg)
JT Version 2.2 25/02/19
Using the matrices: Edexcel versionFind the shortest route from 1 to 4.
D(4) R(4)
The shortest route from 1 to 4 is 80 by going: 1-3-2-4
1 2 3 4
1 - 70 30 80
2 70 - 40 10
3 30 40 - 50
4 80 10 50 -
1 2 3 4
1 1 3 3 3
2 3 2 3 4
3 1 2 3 2
4 3 2 2 4
![Page 49: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/49.jpg)
JT Version 2.2 25/02/19
Using the matrices: standard version
The shortest route from 1 to 4 is 80 by going: 1-3-2-4
1 2 3 4
1 - 70 30 80
2 70 - 40 10
3 30 40 - 50
4 80 10 50 -
1 2 3 4
1 1 3 3 3
2 3 2 3 4
3 1 2 3 2
4 3 2 2 42
1
3
480
7030
40
10
![Page 50: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/50.jpg)
JT Version 2.2 25/02/19
Activity: Floyd’s Algorithm card sortEach set is a fully worked solution to Floyd’s
algorithm.
Draw the network that goes with the initial
problem
Put the cards in order to show the solution to
the problem
Give the shortest distance and route from
vertex 1 to vertex 5
Check your solution against your network
![Page 51: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/51.jpg)
JT Version 2.2 25/02/19
Solution
1 3
2
4
5
7
3
3
1
3
6
5
Shortest distance from 1 to 5 is 7
Route: 1 – 3 – 2 – 5
![Page 52: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/52.jpg)
JT Version 2.2 25/02/19
SAMs
![Page 53: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/53.jpg)
JT Version 2.2 25/02/19
SAMs
A B C D
A A B B B
B A B C D
C B B C D
D A C C D
“Explain how the
final route table
can be used to find
the shortest route
from D to B.”
![Page 54: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/54.jpg)
JT Version 2.2 25/02/19
SAMs
![Page 55: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/55.jpg)
JT Version 2.2 25/02/19
Edexcel’s Latest Announcement“I can confirm that we will accept either variant of
the method for Floyd's algorithm and that it will be
possible to answer all exam questions using either
variant, i.e. if we give a partially completed version
of the algorithm, we will ensure that the part we
have completed would be the same using either
variant.”
Rob Cackett, Pearson, 6th February 2019
![Page 56: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/56.jpg)
Teaching Discrete © MEI 2018
Teaching Discrete Mathematics
Activity: Floyd’s Algorithm card sort (Edexcel text book method)
Cut out the cards and place them in the correct order to give the solution for this problem.
Initial Distance Matrix: D(0) Initial Route Matrix: R(0)
1 2 3 4 5 1 2 3 4 5
1 0 7 3 5 1 1 2 3 4 5
2 7 0 3 1 2 1 2 3 4 5
3 3 3 0 6 3 1 2 3 4 5
4 5 0 3 4 1 2 3 4 5
5 1 6 3 0 5 1 2 3 4 5
1 3 3 4 3 0 6 3 5 7
3 2 3 3 5 6 0 3 4 1
1 2 3 1 2 3 3 0 7 4
1 3 1 4 5 5 4 7 0 3
3 2 2 4 5 7 1 4 3 0
0 7 3 5 8 1 2 3 4 5
7 0 3 12 1 1 2 3 1 5
3 3 0 8 4 1 2 3 1 5
5 12 8 0 3 1 1 1 4 5
8 1 4 3 0 1 2 3 4 5
0 7 3 5 1 3 3 4 3
7 0 3 12 1 3 2 3 3 5
3 3 0 8 6 1 2 3 1 2
5 12 8 0 3 1 3 1 4 5
1 6 3 0 3 2 2 4 5
1 3 3 4 3 0 6 3 5 7
3 2 3 5 5 6 0 3 11 1
1 2 3 5 2 3 3 0 8 4
1 5 5 4 5 5 11 8 0 3
3 2 2 4 5 7 1 4 3 0
1 2 3 4 2 0 6 3 5 7
1 2 3 1 5 6 0 3 11 1
1 2 3 1 2 3 3 0 8 4
1 1 1 4 5 5 11 8 0 3
2 2 2 4 5 7 1 4 3 0
![Page 57: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/57.jpg)
Teaching Discrete © MEI 2018
Teaching Discrete Mathematics
Activity: Floyd’s Algorithm card sort solution (Edexcel text book method)
Initial Distance Matrix: D0 Initial Route Matrix: R0
1 2 3 4 5 1 2 3 4 5
1 0 7 3 5 1 1 2 3 4 5
2 7 0 3 1 2 1 2 3 4 5
3 3 3 0 6 3 1 2 3 4 5
4 5 0 3 4 1 2 3 4 5
5 1 6 3 0 5 1 2 3 4 5
D1 R1
0 7 3 5 1 2 3 4 5
7 0 3 12 1 1 2 3 1 5
3 3 0 8 6 1 2 3 1 5
5 12 8 0 3 1 1 1 4 5
1 6 3 0 1 2 3 4 5
D2 R2
0 7 3 5 8 1 2 3 4 2
7 0 3 12 1 1 2 3 1 5
3 3 0 8 4 1 2 3 1 2
5 12 8 0 3 1 1 1 4 5
8 1 4 3 0 2 2 2 4 5
D3 R3
0 6 3 5 7 1 3 3 4 3
6 0 3 11 1 3 2 3 3 5
3 3 0 8 4 1 2 3 1 2
5 11 8 0 3 1 3 1 4 5
7 1 4 3 0 3 2 2 4 5
D4 R4
0 6 3 5 7 1 3 3 4 3
6 0 3 11 1 3 2 3 3 5
3 3 0 8 4 1 2 3 1 2
5 11 8 0 3 1 3 1 4 5
7 1 4 3 0 3 2 2 4 5
D5 R5
0 6 3 5 7 1 3 3 4 3
6 0 3 4 1 3 2 3 5 5
3 3 0 7 4 1 2 3 5 2
5 4 7 0 3 1 5 5 4 5
7 1 4 3 0 3 2 2 4 5
![Page 58: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/58.jpg)
Teaching Discrete © MEI 2018
Teaching Discrete Mathematics
Activity: Floyd’s Algorithm card sort (standard method)
Cut out the cards and place them in the correct order to give the solution for this problem.
Initial Distance Matrix: D(0) Initial Route Matrix: R(0)
1 2 3 4 5 1 2 3 4 5
1 0 7 3 5 1 1 2 3 4 5
2 7 0 3 1 2 1 2 3 4 5
3 3 3 0 6 3 1 2 3 4 5
4 5 0 3 4 1 2 3 4 5
5 1 6 3 0 5 1 2 3 4 5
1 3 3 4 3 0 6 3 5 7
3 2 3 3 5 6 0 3 4 1
1 2 3 1 2 3 3 0 7 4
1 1 1 4 5 5 4 7 0 3
2 2 2 4 5 7 1 4 3 0
0 7 3 5 8 1 2 3 4 5
7 0 3 12 1 1 2 3 1 5
3 3 0 8 4 1 2 3 1 5
5 12 8 0 3 1 1 1 4 5
8 1 4 3 0 1 2 3 4 5
0 7 3 5 1 3 3 4 3
7 0 3 12 1 3 2 3 3 5
3 3 0 8 6 1 2 3 1 2
5 12 8 0 3 1 1 1 4 5
1 6 3 0 2 2 2 4 5
1 3 3 4 3 0 6 3 5 7
3 2 3 5 5 6 0 3 11 1
1 2 3 2 2 3 3 0 8 4
1 5 5 4 5 5 11 8 0 3
2 2 2 4 5 7 1 4 3 0
1 2 3 4 2 0 6 3 5 7
1 2 3 1 5 6 0 3 11 1
1 2 3 1 2 3 3 0 8 4
1 1 1 4 5 5 11 8 0 3
2 2 2 4 5 7 1 4 3 0
![Page 59: Floyd’s algorithm - AMSP · 2020-07-09 · Dijkstra’s algorithm Bellman Ford Algorithm and Dynamic Programming (to handle negative weights) What happens if you want to find all](https://reader033.fdocuments.us/reader033/viewer/2022050418/5f8e3162151eba10d90908ca/html5/thumbnails/59.jpg)
Teaching Discrete © MEI 2018
Teaching Discrete Mathematics
Activity: Floyd’s Algorithm card sort solution (standard method)
Initial Distance Matrix: D(0) Initial Route Matrix: R(0)
1 2 3 4 5 1 2 3 4 5
1 0 7 3 5 1 1 2 3 4 5
2 7 0 3 1 2 1 2 3 4 5
3 3 3 0 6 3 1 2 3 4 5
4 5 0 3 4 1 2 3 4 5
5 1 6 3 0 5 1 2 3 4 5
D(1) R(1)
0 7 3 5 1 2 3 4 5
7 0 3 12 1 1 2 3 1 5
3 3 0 8 6 1 2 3 1 5
5 12 8 0 3 1 1 1 4 5
1 6 3 0 1 2 3 4 5
D(2) R(2)
0 7 3 5 8 1 2 3 4 2
7 0 3 12 1 1 2 3 1 5
3 3 0 8 4 1 2 3 1 2
5 12 8 0 3 1 1 1 4 5
8 1 4 3 0 2 2 2 4 5
D(3) R(3)
0 6 3 5 7 1 3 3 4 3
6 0 3 11 1 3 2 3 3 5
3 3 0 8 4 1 2 3 1 2
5 11 8 0 3 1 1 1 4 5
7 1 4 3 0 2 2 2 4 5
D(4) R(4)
0 6 3 5 7 1 3 3 4 3
6 0 3 11 1 3 2 3 3 5
3 3 0 8 4 1 2 3 1 2
5 11 8 0 3 1 1 1 4 5
7 1 4 3 0 2 2 2 4 5
D(5) R(5)
0 6 3 5 7 1 3 3 4 3
6 0 3 4 1 3 2 3 5 5
3 3 0 7 4 1 2 3 2 2
5 4 7 0 3 1 5 5 4 5
7 1 4 3 0 2 2 2 4 5