Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. import random
  4.  
  5.  
  6. # adj = [
  7. # #список смежности
  8. # [1,3], # 0
  9. # [0,3,4,5], # 1
  10. # [4,5], # 2
  11. # [0,1,5], # 3
  12. # [1,2], # 4
  13. # [1,2,3] # 5
  14. # ]
  15.  
  16.  
  17. # level = [-1] * len(adj)
  18. # #список уровней вершин
  19.  
  20. # def bfs(s):
  21. # global level
  22. # level[s] = 0
  23. # # уровень начальной вершины
  24. # queue = [s]
  25. # # добавляем начальную вершину в очередь
  26. # while queue:
  27. # # пока там что-то есть
  28. # # print("Before pop %s",queue)
  29. # v = queue.pop(0)
  30. # # извлекаем вершину
  31. # # print("After pop %s",queue)
  32. # for w in adj[v]:
  33. # # запускаем обход из вершины v
  34. # # print("Mi poseshali %s", level[w])
  35. # if level[w] is -1:
  36. # # проверка на посещенность
  37. # queue.append(w)
  38. # # добавление вершины в очередь
  39. # level[w] = level[v] + 1
  40. # # подсчитываем уровень вершины
  41.  
  42. # for i in range(len(adj)):
  43. # if level[i] is -1:
  44. # bfs(i)
  45. # # на случай, если имеется несколько компонент связности
  46.  
  47.  
  48. # print(level[2])
  49. # # уровень вершины 2
  50.  
  51. matrix = []
  52.  
  53. my_list = []
  54.  
  55. for y in range(4):
  56. v = random.randint(0,1)
  57. print(v)
  58. my_list.append(v)
  59. matrix.append(my_list)
  60.  
  61.  
  62. print(my_list)
  63. print(matrix)
  64.  
  65. def Dijkstra(N, S, matrix):
  66. valid = [True]*N
  67. weight = [1000000]*N
  68. weight[S] = 0
  69. for i in range(N):
  70. min_weight = 1000001
  71. ID_min_weight = -1
  72. for i in range(N):
  73. if valid[i] and weight[i] < min_weight:
  74. min_weight = weight[i]
  75. ID_min_weight = i
  76. for i in range(N):
  77. if weight[ID_min_weight] + matrix[ID_min_weight][i] < weight[i]:
  78. weight[i] = weight[ID_min_weight] + matrix[ID_min_weight][i]
  79. valid[ID_min_weight] = False
  80. return weight
  81.  
  82. # print(Dijkstra(4,1,matrix))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement