⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 routing_distance.m

📁 best routing protocol
💻 M
字号:
function [pair_dist, pair_hops]=routing_distance(neighbor_dist, ...		 routing_nexthop, test_pairs)%neighbor_dist(i,j): distance between i & j if they are neighbor,%or infinity%routing_nexthop(i,j): the next hop from i when routing from i to j%pair_dist(i,j): distance using the routing_nexthop%pair_hops(i,j): how many hops it takes to route from i to jN = length(neighbor_dist);if nargin<3  p = 0; % test all pairs  pair_hops = zeros(N,N);  pair_dist = zeros(N,N);  fromloop = 1:N;else  [p, tmp] = size(test_pairs);  pair_hops = zeros(p,1);  pair_dist = zeros(p,1);  fromloop = test_pairs(:,1)';endcount = 0;for from=fromloop  if p==0    toloop = 1:N;  else    toloop = test_pairs(count+1,2);  end    for to=toloop    %current_nodes = [];    count = count +1;    n_hops = 0;    next = from;    tmp = 0;    seen_nodes = zeros(N,1);    while next~=to       previous = next;      next = routing_nexthop(next, to);      %if sum(ismember(current_nodes, next))>0      if next<0	%fprintf('DEAD loop\n');	%print_route(routing_nexthop, from, to);	tmp = Inf;	n_hops=Inf;	break      end      if seen_nodes(next)	%fprintf('DEAD loop\n');	%print_route(routing_nexthop, from, to);	tmp = Inf;	n_hops=Inf;	break      end      n_hops = n_hops + 1;      %current_nodes(n_hops) = next;      seen_nodes(next) = 1;      tmp = tmp + neighbor_dist(previous, next);    end        pair_dist(count)=tmp;    pair_hops(count)=n_hops;      endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -