Pythonは、ディ杰ステラアルゴリズムを実装し、最短パスのコード例を生成します。



def Dijkstra(network,s,d):#        s-d     ,         
  print("Start Dijstra Path……")
  path=[]#s-d     
  n=len(network)#      ,     
  fmax=999
  w=[[0 for i in range(n)]for j in range(n)]#           , 0→max
  book=[0 for i in range(n)]#            
  dis=[fmax for i in range(n)]#s          
  book[s-1]=1#     1  ,     0  
  midpath=[-1 for i in range(n)]#     
  for i in range(n):
    for j in range(n):
      if network[i][j]!=0:
        w[i][j]=network[i][j]#0→max
      else:
        w[i][j]=fmax
      if i==s-1 and network[i][j]!=0:#           network[i][j]
        dis[j]=network[i][j]
  for i in range(n-1):#n-1   ,  s  
    min=fmax
    for j in range(n):
      if book[j]==0 and dis[j]<min:#          
        min=dis[j]
        u=j
    book[u]=1
    for v in range(n):#u         
      if dis[v]>dis[u]+w[u][v]:
        dis[v]=dis[u]+w[u][v]
        midpath[v]=u+1#     
  j=d-1#j   
  path.append(d)#         ,         d,    
  while(midpath[j]!=-1):
    path.append(midpath[j])
    j=midpath[j]-1
  path.append(s)
  path.reverse()#    
  print(path)
  #print(midpath)
  print(dis)
  #return path

network=[[0,1,0,2,0,0],
     [1,0,2,4,3,0],
     [0,2,0,0,1,4],
     [2,4,0,0,6,0],
     [0,3,1,6,0,2],
     [0,0,4,0,2,0]]
Dijkstra(network,1,6)
以上はPythonがディ杰ステラアルゴリズムを実現し、最短パスを生成する例示的なコードの詳細です。Pythonがディステラアルゴリズムを実現するための詳細については、他の関連記事に注目してください。