SLIDE 3 Review
Dijkstra’s algorithm
CSE 373 AU 18 3
Vertex Distance Predecessor Processed S
B 1 S Yes C 6 S Yes E 2 B Yes T 3 E Yes
1: function Dijkstra(Graph G, Vertex source)
. with MPQ
2:
initialize distances to ∞, source.dist = 0
3:
mark all vertices unprocessed
4:
initialize MPQ as a min priority queue; add source with priority 0
5:
while MPQ is not empty do
6:
u = MPQ.getMin()
7:
for each edge (u,v) leaving u do
8:
if u.dist + w(u,v) < v.dist then
9:
if v.dist == ∞ then
10:
MPQ.insert(v, u.dist + w(u, v))
11:
else
12:
MPQ.decreasePriority(v, u.dist + w(u,v))
13:
end if
14:
v.dist = u.dist + w(u,v)
15:
v.predecessor = u
16:
end if
17:
end for
18:
mark u as processed
19:
end while
20: end function
<latexit sha1_base64="YVFLN63fwlLlrJ6AzC10IuRh9Y=">AEznicbVPBbtNAEHWbACVQaEGCA5cRTaVURFSCVEJKlUqUHqolArSVoqjarOeJEvWa+PdQmWBUd+kS/gNxjHTmjS7sXjmXkz+97O9EMptGk2/6yslsp37t5bu1958HD90eONzSdnOrARxw4PZBd9JlGKR2jDASL8Imd+XeN4fH2bx8xgjLQL1xUxC7PlsqMRAcGbIdbm5+svt41CohMlhEAkz8gVPu61exf1oFc9ykvfi61ibiKXJUcTCERzV4Qwjg98hv0UK7mHg+6hMckUF4KR9mlbcz4YZBKGEUyKHwgekWGKowYTQNUVamAm1XpRo5FYR+aM6DPojEwKYEub0SGsiqMAjI0erdUp6bANDwhYIwEhmXCXyzaPEtM8r+sD0hvM4tTsfCYmQZHihQUG0A/NZM7A0q0o2BiORGqtkPCBEkyPgI0Bsi1Gw93gGJLBZqCJaAxwNIbM7oFVzl8eq7KsRTX5EQF5T351rMW2bthNJEvBbXYaESxDt0gw9S4/VkDzm9ucZ2wesGLEcp73gwg83aL+f9j9MYUV3Sm+hS2hxPH1Jg4Z1sJv216GUXNbpySHFNFVcVN7CsF1ubDUbzemBm0arMLac4rQvN1deu17AbTZxXDKtu61maHoJywZFIsloNYaMj9kQu2Qq5qPuJdNdSWGbPB4MiNQgUAam3uIhPlaT/w+ZfrMjPRyLHPeFutaM9jrJUKF1qDieaOBldm0Z4tH8x8hN3JCBuNEXnDgIxYxbmg9F7vM1EmX3aFGS9QDL2NJ/xEqvOK0fEx5Lm2kyR4hSbehk5Gkzn2EqV/zSoWEbi3LetM420yD7d3TrYKyRfc14L52a03LeOAfOJ6ftdBy+re0XnpWel5ul+NyWv6Zp6uFJinzsIp/4HDlCNTQ=</latexit><latexit sha1_base64="YVFLN63fwlLlrJ6AzC10IuRh9Y=">AEznicbVPBbtNAEHWbACVQaEGCA5cRTaVURFSCVEJKlUqUHqolArSVoqjarOeJEvWa+PdQmWBUd+kS/gNxjHTmjS7sXjmXkz+97O9EMptGk2/6yslsp37t5bu1958HD90eONzSdnOrARxw4PZBd9JlGKR2jDASL8Imd+XeN4fH2bx8xgjLQL1xUxC7PlsqMRAcGbIdbm5+svt41CohMlhEAkz8gVPu61exf1oFc9ykvfi61ibiKXJUcTCERzV4Qwjg98hv0UK7mHg+6hMckUF4KR9mlbcz4YZBKGEUyKHwgekWGKowYTQNUVamAm1XpRo5FYR+aM6DPojEwKYEub0SGsiqMAjI0erdUp6bANDwhYIwEhmXCXyzaPEtM8r+sD0hvM4tTsfCYmQZHihQUG0A/NZM7A0q0o2BiORGqtkPCBEkyPgI0Bsi1Gw93gGJLBZqCJaAxwNIbM7oFVzl8eq7KsRTX5EQF5T351rMW2bthNJEvBbXYaESxDt0gw9S4/VkDzm9ucZ2wesGLEcp73gwg83aL+f9j9MYUV3Sm+hS2hxPH1Jg4Z1sJv216GUXNbpySHFNFVcVN7CsF1ubDUbzemBm0arMLac4rQvN1deu17AbTZxXDKtu61maHoJywZFIsloNYaMj9kQu2Qq5qPuJdNdSWGbPB4MiNQgUAam3uIhPlaT/w+ZfrMjPRyLHPeFutaM9jrJUKF1qDieaOBldm0Z4tH8x8hN3JCBuNEXnDgIxYxbmg9F7vM1EmX3aFGS9QDL2NJ/xEqvOK0fEx5Lm2kyR4hSbehk5Gkzn2EqV/zSoWEbi3LetM420yD7d3TrYKyRfc14L52a03LeOAfOJ6ftdBy+re0XnpWel5ul+NyWv6Zp6uFJinzsIp/4HDlCNTQ=</latexit><latexit sha1_base64="YVFLN63fwlLlrJ6AzC10IuRh9Y=">AEznicbVPBbtNAEHWbACVQaEGCA5cRTaVURFSCVEJKlUqUHqolArSVoqjarOeJEvWa+PdQmWBUd+kS/gNxjHTmjS7sXjmXkz+97O9EMptGk2/6yslsp37t5bu1958HD90eONzSdnOrARxw4PZBd9JlGKR2jDASL8Imd+XeN4fH2bx8xgjLQL1xUxC7PlsqMRAcGbIdbm5+svt41CohMlhEAkz8gVPu61exf1oFc9ykvfi61ibiKXJUcTCERzV4Qwjg98hv0UK7mHg+6hMckUF4KR9mlbcz4YZBKGEUyKHwgekWGKowYTQNUVamAm1XpRo5FYR+aM6DPojEwKYEub0SGsiqMAjI0erdUp6bANDwhYIwEhmXCXyzaPEtM8r+sD0hvM4tTsfCYmQZHihQUG0A/NZM7A0q0o2BiORGqtkPCBEkyPgI0Bsi1Gw93gGJLBZqCJaAxwNIbM7oFVzl8eq7KsRTX5EQF5T351rMW2bthNJEvBbXYaESxDt0gw9S4/VkDzm9ucZ2wesGLEcp73gwg83aL+f9j9MYUV3Sm+hS2hxPH1Jg4Z1sJv216GUXNbpySHFNFVcVN7CsF1ubDUbzemBm0arMLac4rQvN1deu17AbTZxXDKtu61maHoJywZFIsloNYaMj9kQu2Qq5qPuJdNdSWGbPB4MiNQgUAam3uIhPlaT/w+ZfrMjPRyLHPeFutaM9jrJUKF1qDieaOBldm0Z4tH8x8hN3JCBuNEXnDgIxYxbmg9F7vM1EmX3aFGS9QDL2NJ/xEqvOK0fEx5Lm2kyR4hSbehk5Gkzn2EqV/zSoWEbi3LetM420yD7d3TrYKyRfc14L52a03LeOAfOJ6ftdBy+re0XnpWel5ul+NyWv6Zp6uFJinzsIp/4HDlCNTQ=</latexit>
S B C T E 1 5 1 6 1 1