微信:HuangL1121
QQ号:1224848052
团队:MATLAB代做|MATLAB专业代做|FPGA代做|FPGA专业代做
地址:北京市-朝阳区-双柳北街18号院
当前位置:首页 > 技术资讯 > MATLAB代做|dijkstra算法的仿真

MATLAB代做|dijkstra算法的仿真

 
function [r_path, r_cost] = dijkstra(pathS, pathE, transmat) 
% The Dijkstra's algorithm, Implemented by Yi Wang, 2005 
% This version support detecting _cyclic-paths_ 

% USAGE: 
%  [path, cost]= dijkstra(pathStart, pathEnd,  transMatrix) 

% PARAMETERS: 
%   pathS : the index of start node, indexing from 1 
%   pathE : the index of end node, indexing from 1 
% transmat: the transition matrix, or adjacent matrix 

  
% Ensure the transition matrix is square 

%if ( size(transmat,1) ~= size(transmat,2) ) 
%  error( 'detect_cycles:Dijkstra_SC', ... 
%    'transmat has different width and heights' ); 
%end 
  
% Initialization: 
%  noOfNode     : nodes in the graph 
%  parent(i)    : record the parent of node i 
%  distance(i)  : the shortest distance from i to pathS 
%  queue        : for width-first traveling of the graph 
noOfNode = size(transmat, 1); 
for i = 1:noOfNode 
  parent(i) = 0; 
  distance(i) = inf; 
end 
  
queue = []; 
  
  
% Start from pathS 
  
for i=1:noOfNode 
     
  if transmat(pathS, i)~=inf  
    distance(i) = transmat(pathS, i); 
    parent(i)   = pathS; 
    queue       = [queue i]; 
    
  end 
end 
distance
% Width-first exploring the whole graph 
  
while length(queue) ~= 0 
   
  hopS  = queue(1); 
  queue = queue(2:end); 
   
  for hopE = 1:noOfNode 
      if distance(hopE) > (distance(hopS) + transmat(hopS,hopE)) 
      distance(hopE) = distance(hopS) + transmat(hopS,hopE); 
      parent(hopE)   = hopS; 
      queue          = [queue hopE]; 
      
    end 
  end 
  
end 
distance 
parent 
% Back-trace the shortest-path 
r_path = [pathE];     
i = parent(pathE); 
  
while i~=pathS && i~=0 
  r_path = [i r_path]; 
  i      = parent(i) 
end 
  
if i==pathS 
  r_path = [i r_path]; 
else 
  r_path = []; 
end 
  
% Return cost 
  
r_cost = distance(pathE); 

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:


上一篇:MATLAB代做|FPGA代做|关于机器学习中的FPGA与SoC应用浅析

版权所有: MATLAB代做|MATLAB专业代做|FPGA代做|FPGA专业代做 Copyright © 2018 All rights reserved.
微信:HuangL1121 QQ:1224848052
地址:北京市-朝阳区-双柳北街18号院

扫一扫,关注我们