Advertisement
ashwanimalviya

Untitled

Jan 26th, 2021
1,715
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 1.33 KB | None | 0 0
  1. function ShortestPath(DAG, K2Score)
  2.    
  3. for i = 1:length(K2Score)
  4.   ind = findall(K2Score .== 0.0)
  5.    #K2Score[1,ind] ~= root,
  6.       K2Score[1,ind] = 0.01
  7.    
  8. end
  9.  
  10.  
  11. #  Finding the root.
  12. G = DAG
  13. M,N = size(DAG)
  14. k = 1
  15. for i in 1:M
  16.     for j in 1:N
  17.         if G[i,j] ~= 0
  18.             a[1,k] = i
  19.             a[2,k] = j
  20.             k = k +1
  21.         end
  22.     end
  23. end
  24.  
  25.  
  26. ##
  27. n = k-1
  28. k = 1;    
  29. for j in 1:N
  30.     flag = 0
  31.     for i in 1:M
  32.         if G[i,j] ~= 0
  33.             flag = 1
  34.         end
  35.     end
  36.     if flag .== 0
  37.         root[1,k] = j; # Must store all the values
  38.         k = k+1
  39.     end
  40. end
  41.  
  42. ## Applying bellman algorithm
  43.  
  44.  
  45. for ii = 1:length(root)
  46.  
  47. k =1
  48. for i = 1:n
  49.     if a[1,i] .== root[1,ii]
  50.         b[1,k] = a[1,i]
  51.         b[2,k] = a[2,i]
  52.         k = k+1
  53.     end
  54. end
  55.  
  56.  
  57. for i = 1:n
  58.     if a[1,i] ~= root[1,ii]
  59.         b[1,k] = a[1,i]
  60.         b[2,k] = a[2,i]
  61.         k = k+1
  62.     end
  63. end
  64.  
  65.  
  66.  
  67. for i = 1:M
  68.     for ii = 1:length(root)
  69.     dist[ii,i] = 20000; # infinity Value
  70.     end
  71. end
  72.  
  73. dist[ii,root[1,ii]] = 0
  74.  for i = 1: M
  75.      for j = 1:n
  76.          k = dist[ii,b[1,j]] + 1
  77.          if k .< dist[ii,b[2,j]]
  78.              dist[ii,b[2,j]] = k
  79.          end
  80.      end
  81.  end
  82. ## Finding the minimum of distance
  83. final_dist = minimum(dist, dims = 1)
  84.  
  85. end
  86.    
  87. return final_dist
  88.    
  89. end
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement