Professional Documents
Culture Documents
Djikstra-Jak To Działa
Djikstra-Jak To Działa
graf = [[0,3,6,0],[3,0,0,3],[6,0,0,6],[0,3,6,0]]
B
/3 \3
A D
\6 /6
C
tworzymy
A B C D
droga [None,None,None,None]
A B C D
odl [infi,infi,infi,infi] #odległość
A B C D
czy [False,False,False,False] #odwiedzone?
1)ustawiamy odl A na 0
A B C D
odl [0,infi,infi,infi]
odp - A=0
A B C D
czy [True,False,False,False]
3)bierzemy graf od A
[0,3,6,0]
przedzimy po wszystkim i sprawdzmy czy:
jest >0: [F,3,6,F]
czy[i]==False: [f,3,6,f]
odl[i]>graf[x(A)][i]+odl[A](0) [f,3,6,f]
A B C D
odl [0,3,6,infi]
A B C D
droga [None,A,A,None]
A B C D
odl [T,3,6,infi]
B=3
A B C D
czy [True,True,False,False]
[3,0,0,3]
[f,f,f,3]
A B C D
odl [0,3,6,6]
A B C D
droga [None,A,A,B]
A B C D
odl [T,T,6,6]
D=6
A B C D
czy [True,True,False,True]
[0,3,6,0]
[f,f,f,f]
A B C D
odl [T,T,6,T]
C=6
[6,0,0,6]
[f,f,f,f]
czy = [t,t,t,t]
kończymy
odległość od A
A B C D
odl [0,3,6,6]
droga
A B C D
droga [None,A,A,B]
D->B->A->None
odwracamy
A B D