why i am getting the recursive error can any one help me out please? the program is given below ccan any one help me out
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
function [path, totalCost, farthestPreviousHop, farthestNextHop] = dijkstra(n, netCostMatrix, s, d, farthestPreviousHop, farthestNextHop) % path: the list of nodes in the path from source to destination; % totalCost: the total cost of the path; % farthestNode: the farthest node to reach for each node after performing % the routing; % n: the number of nodes in the network; % s: source node index; % d: destination node index;
 clear;
 noOfNodes  = 50;
 rand('state', 0);
figure(1);
clf;
hold on;
L = 1000;
R = 200; % maximum range;
 netXloc = rand(1,noOfNodes)*L;
netYloc = rand(1,noOfNodes)*L;
for i = 1:noOfNodes
     plot(netXloc(i), netYloc(i), '.');
     text(netXloc(i), netYloc(i), num2str(i));
     for j = 1:noOfNodes
         distance = sqrt((netXloc(i) - netXloc(j))^2 + (netYloc(i) - netYloc(j))^2);
         if distance <= R
             matrix(i, j) = 1;   % there is a link;
             line([netXloc(i) netXloc(j)], [netYloc(i) netYloc(j)], 'LineStyle', ':');
         else
             matrix(i, j) = inf;
         end;
     end;
 end;
% 
% 
 activeNodes = [];
 for i = 1:noOfNodes,
     % initialize the farthest node to be itself;
    farthestPreviousHop(i) = i;     % used to compute the RTS/CTS range;
     farthestNextHop(i) = i;
 end;
[path, totalCost, farthestPreviousHop, farthestNextHop] = dijkstra(noOfNodes, matrix, 46, 15, farthestPreviousHop, farthestNextHop); % if length(path) ~= 0 for i = 1:(length(path)-1) line([netXloc(path(i)) netXloc(path(i+1))], [netYloc(path(i)) netYloc(path(i+1))], 'Color','r','LineWidth', 0.50, 'LineStyle', '-.'); end; end; hold off;
    return
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % all the nodes are un-visited; visited(1:n) = 0;
distance(1:n) = inf; % it stores the shortest distance between each node and the source node; parent(1:n) = 0;
distance(s) = 0; for i = 1:(n-1), temp = []; for h = 1:n, if visited(h) == 0 % in the tree; temp=[temp distance(h)]; else temp=[temp inf]; end end; [t, u] = min(temp); % it starts from node with the shortest distance to the source; visited(u) = 1; % mark it as visited; for v = 1:n, % for each neighbors of node u; if ( ( netCostMatrix(u, v) + distance(u)) < distance(v) ) distance(v) = distance(u) + netCostMatrix(u, v); % update the shortest distance when a shorter path is found parent(v) = u; % update its parent; end; end; end;
path = []; if parent(d) ~= 0 % if there is a path! t = d; path = [d]; while t ~= s p = parent(t); path = [p path];
        if netCostMatrix(t, farthestPreviousHop(t)) < netCostMatrix(t, p)
            farthestPreviousHop(t) = p;
        end;
        if netCostMatrix(p, farthestNextHop(p)) < netCostMatrix(p, t)
            farthestNextHop(p) = t;
        end;
        t = p;      
    end;
end;
totalCost = distance(d);
return;
0 comentarios
Respuestas (0)
Ver también
Categorías
				Más información sobre Startup and Shutdown en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
