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

📄 sim_parallel.m

📁 best routing protocol
💻 M
📖 第 1 页 / 共 2 页
字号:
ylim([1 3.5]);xlabel('number of beacons K');ylabel('average transmission stretch');legend('S4','BVR w/ flooding','BVR 2-hop w/ flooding');saveas(gcf, 'avg_transmission_stretch.eps', 'psc2');%%%%%%%%%%%%%%%2 hop transmission stretch NEWfigure(12)set(gca, 'FontSize',fontsize);hold oncolors_bvr=['k--';'   ';'k--';'k-.'];colors_bvr_rate=['g  ';'   ';'   ';'g--'];colors_cr=['b ';'  ';'  ';'b:'];for b = [1,4]  for i=1:repeat    transmission_dist_bvr_2h(:,i)=res(b,i).transmission_dist_bvr_2h;    transmission_dist_bvr_sf(:,i)=res(b,i).transmission_dist_bvr_sf;    transmission_dist_cr(:,i)=res(b,i).routing_dist_cr;  end  worst_bvr(b) = plot_routing_stretch(transmission_dist_bvr_2h, optimal_dist, colors_bvr(b,:),[100],1);  worst_cr(b) = plot_routing_stretch(transmission_dist_cr, optimal_dist, ...				 colors_cr(b,:),[100],1);  %plot_routing_stretch(transmission_dist_bvr_2h, optimal_dist, 'r',[],1);  tmp = mean(failure_bvr_2h,2);  plot([1 6],[1-tmp(b), 1-tmp(b)],colors_bvr_rate(b,:));endbvr_str1 = sprintf('BVR 2hop w/ flooding. K=10, worst stretch=%.1f',worst_bvr(1));bvr_str2 = sprintf('BVR 2hop w/ flooding. K=56, worst stretch=%.1f',worst_bvr(4));cr_str1 = sprintf('S4. K=10, worst stretch=%.1f',worst_cr(1));cr_str2 = sprintf('S4. K=56, worst stretch=%.1f',round(worst_cr(4)));legend(bvr_str1, cr_str1, 'BVR 2hop success rate K=10', ...       bvr_str2, ...       cr_str2, 'BVR 2hop success rate K=56',0);xlabel('transmission stretch');ylabel('CDF');xlim([1 6])saveas(gcf, '2hop_stretch_normal.eps','psc2')%%%%%%%%figure 1.c,non-beacon node loadfor i=1:repeat  for b=1:length(n_beacons)    non_beacons = setdiff(1:S.n_nodes, res(b,i).beacons);    load_bvr_10(b,i) = percentile(res(b,i).load_bvr_sf(non_beacons), 10);    load_bvr_50(b,i) = percentile(res(b,i).load_bvr_sf(non_beacons), 50);    load_bvr_90(b,i) = percentile(res(b,i).load_bvr_sf(non_beacons), 90);    load_bvr_2h_10(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 10);    load_bvr_2h_50(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 50);    load_bvr_2h_90(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 90);    load_cr_10(b,i) = percentile(res(b,i).load_cr(non_beacons), 10);    load_cr_50(b,i) = percentile(res(b,i).load_cr(non_beacons), 50);    load_cr_90(b,i) = percentile(res(b,i).load_cr(non_beacons), 90);  endendfigure(3)set(gca, 'FontSize',fontsize);hold ony = mean(load_bvr_50, 2);l = y- mean(load_bvr_10, 2);u = mean(load_bvr_90,2) - y;if 1  errorbar(n_beacons-INTERVAL, y, l, u, 'x-r','MarkerSize', msz);else  plot(n_beacons, y, 'x-r','MarkerSize', msz);endy = mean(load_bvr_2h_50, 2);l = y- mean(load_bvr_2h_10, 2);u = mean(load_bvr_2h_90,2) - y;if 1  errorbar(n_beacons+INTERVAL, y, l, u, 'v-k','MarkerSize', msz);else  plot(n_beacons, y, 'v-k','MarkerSize', msz);endy = mean(load_cr_50, 2);l = y- mean(load_cr_10, 2);u = mean(load_cr_90,2) - y;if 1  errorbar(n_beacons, y, l, u, 'o-b','MarkerSize', msz);else  plot(n_beacons, y, 'o-b','MarkerSize', msz);endxlim([0 105]);ylim([0 1400]);xlabel('number of beacons K');ylabel('non-beacon node load');legend('BVR', 'BVR 2-hop', 'S4');saveas(gcf, 'nonbeacon_load.eps','psc2')%%%%%%%%figure 1.c,non-beacon node load 2 hop NEWif 0  for i=1:repeat    for b=1:length(n_beacons)      non_beacons = setdiff(1:S.n_nodes, res(b,i).beacons);      load_bvr_10(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 10);      load_bvr_50(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 50);      load_bvr_90(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 90);      load_cr_10(b,i) = percentile(res(b,i).load_cr(non_beacons), 10);      load_cr_50(b,i) = percentile(res(b,i).load_cr(non_beacons), 50);      load_cr_90(b,i) = percentile(res(b,i).load_cr(non_beacons), 90);    end  end  figure(13)  set(gca, 'FontSize',fontsize);  y = mean(load_bvr_50, 2);  l = y- mean(load_bvr_10, 2);  u = mean(load_bvr_90,2) - y;  errorbar(n_beacons-INTERVAL, y, l, u,'x-r','MarkerSize', msz);  hold on  y = mean(load_cr_50, 2);  l = y- mean(load_cr_10, 2);  u = mean(load_cr_90,2) - y;  errorbar(n_beacons+INTERVAL, y, l, u, 'o-b','MarkerSize', msz);  xlabel('number of beacons K');  ylabel('non-beacon node load');  ylim([0 1400])  legend('BVR 2hop', 'S4');  saveas(gcf, '2hop_nonbeacon_load.eps','psc2')end%%%%%%%%figure 1.d beacon node loadfor i=1:repeat  for b=1:length(n_beacons)    non_beacons = res(b,i).beacons; %we want beacons.. lazy to rename    load_bvr_10(b,i) = percentile(res(b,i).load_bvr_sf(non_beacons), 10);    load_bvr_50(b,i) = percentile(res(b,i).load_bvr_sf(non_beacons), 50);    load_bvr_90(b,i) = percentile(res(b,i).load_bvr_sf(non_beacons), 90);    load_bvr_2h_10(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 10);    load_bvr_2h_50(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 50);    load_bvr_2h_90(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 90);    load_cr_10(b,i) = percentile(res(b,i).load_cr(non_beacons), 10);    load_cr_50(b,i) = percentile(res(b,i).load_cr(non_beacons), 50);    load_cr_90(b,i) = percentile(res(b,i).load_cr(non_beacons), 90);  endendfigure(4)hold onset(gca, 'FontSize',fontsize);y = mean(load_bvr_50, 2);l = y- mean(load_bvr_10, 2);u = mean(load_bvr_90,2) - y;errorbar(n_beacons-INTERVAL, y, l, u,'x-r','MarkerSize', msz);y = mean(load_bvr_2h_50, 2);l = y- mean(load_bvr_2h_10, 2);u = mean(load_bvr_2h_90,2) - y;errorbar(n_beacons+INTERVAL, y, l, u,'v-k','MarkerSize', msz);y = mean(load_cr_50, 2);l = y- mean(load_cr_10, 2);u = mean(load_cr_90,2) - y;errorbar(n_beacons, y, l, u, 'o-b','MarkerSize', msz);xlabel('number of beacons K');ylabel('beacon node load');xlim([0 105]);ylim([0 2000]);legend('BVR', 'BVR 2-hop', 'S4');saveas(gcf, 'beacon_load.eps','psc2')%%%%%%%%figure 1.d beacon node load 2hop NEWfor i=1:repeat  for b=1:length(n_beacons)    non_beacons = res(b,i).beacons; %we want beacons.. lazy to rename    load_bvr_10(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 10);    load_bvr_50(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 50);    load_bvr_90(b,i) = percentile(res(b,i).load_bvr_2h(non_beacons), 90);    load_cr_10(b,i) = percentile(res(b,i).load_cr(non_beacons), 10);    load_cr_50(b,i) = percentile(res(b,i).load_cr(non_beacons), 50);    load_cr_90(b,i) = percentile(res(b,i).load_cr(non_beacons), 90);  endendfigure(14)set(gca, 'FontSize',fontsize);y = mean(load_bvr_50, 2);l = y- mean(load_bvr_10, 2);u = mean(load_bvr_90,2) - y;errorbar(n_beacons-INTERVAL, y, l, u,'x-r','MarkerSize', msz);hold ony = mean(load_cr_50, 2);l = y- mean(load_cr_10, 2);u = mean(load_cr_90,2) - y;errorbar(n_beacons+INTERVAL, y, l, u, 'o-b','MarkerSize', msz);xlabel('number of beacons K');ylabel('beacon node load');legend('2hop BVR', 'S4');saveas(gcf, '2hop_beacon_load.eps','psc2')%%%%%%%%%figure 1.e all node routing stateNEXT_HOP_COST = 2; % 2 bytes to store a nexthop entryBYTE_PER_S4 = 2+1+NEXT_HOP_COST; %byte per each pcr routing entry%%bvr routing state calculationneighbor_count = sum(S.D,2);%only the n_beacon matters. which nodes are beacons does not matter.%for b=1:length(n_beacons)  %bvr_routing_bytes(:,b) = (neighbor_count+1).*n_beacons(b)+ ...  %    repmat(n_beacons(b)*(NEXT_HOP_COST+2), S.n_nodes, 1);  %!!!!!!!!change this after v3 is done%end%size(bvr_routing_bytes)%%for i=1:repeat  for b=1:length(n_beacons)    %non_beacons = setdiff(1:S.n_nodes, res(b,i).beacons);    %non_beacons = 1:S.n_nodes;%    state_cr_10(b,i) = ...%	percentile(res(b,i).cluster_cr(non_beacons), 10)*BYTE_PER_S4...%	+ n_beacons(b)*(NEXT_HOP_COST+2);    state_cr_10(b,i) = ...	percentile(routing_state_cr(res(b,i)),0);%    state_cr_50(b,i) = ...%	percentile(res(b,i).cluster_cr(non_beacons), 50)*BYTE_PER_S4...%	+ n_beacons(b)*(NEXT_HOP_COST+2);    state_cr_50(b,i) = ...	percentile(routing_state_cr(res(b,i)),50);%    state_cr_90(b,i) = ...%	percentile(res(b,i).cluster_cr(non_beacons), 90)*BYTE_PER_S4...%	+ n_beacons(b)*(NEXT_HOP_COST+2);    state_cr_90(b,i) = ...	percentile(routing_state_cr(res(b,i)),100);    %    state_bvr_sf_10(b,i) = ...%	percentile(res(b,i).state_per_node_bvr_sf(non_beacons), ...%		   10)*n_beacons(b)+n_beacons(b)*(NEXT_HOP_COST+2);    state_bvr_sf_10(b,i) = ...	percentile(routing_state_bvr(res(b,i)),0);%    state_bvr_sf_50(b,i) = ...%	percentile(res(b,i).state_per_node_bvr_sf(non_beacons), ...%		   50)*n_beacons(b)+n_beacons(b)*(NEXT_HOP_COST+2);    state_bvr_sf_50(b,i) = ...	percentile(routing_state_bvr(res(b,i)),50);%    state_bvr_sf_90(b,i) = ...%	percentile(res(b,i).state_per_node_bvr_sf(non_beacons), ...%		   90)*n_beacons(b)+n_beacons(b)*(NEXT_HOP_COST+2);    state_bvr_sf_90(b,i) = ...	percentile(routing_state_bvr(res(b,i)),100);    %    state_bvr_2h_10(b,i) = ...%	percentile(res(b,i).state_per_node_bvr_2h(non_beacons), ...%		   10)*n_beacons(b)+n_beacons(b)*(NEXT_HOP_COST+2);    state_bvr_2h_10(b,i) = ...	percentile(routing_state_bvr(res(b,i),2),0);%    state_bvr_2h_50(b,i) = ...%	percentile(res(b,i).state_per_node_bvr_2h(non_beacons), ...%		   50)*n_beacons(b)+n_beacons(b)*(NEXT_HOP_COST+2);    state_bvr_2h_50(b,i) = ...	percentile(routing_state_bvr(res(b,i),2),50);%    state_bvr_2h_90(b,i) = ...%	percentile(res(b,i).state_per_node_bvr_2h(non_beacons), ...%		   90)*n_beacons(b)+n_beacons(b)*(NEXT_HOP_COST+2);    state_bvr_2h_90(b,i) = ...	percentile(routing_state_bvr(res(b,i),2),100);      endendfigure(5)set(gca, 'FontSize',fontsize);y = mean(state_cr_50, 2);l = y - mean(state_cr_10, 2);u = mean(state_cr_90,2) -y;errorbar(n_beacons, y, l, u,'o-b','MarkerSize', msz);hold on%y = percentile(bvr_routing_bytes(non_beacons, :), 50);%l = percentile(bvr_routing_bytes(non_beacons, :), 10);%u = percentile(bvr_routing_bytes(non_beacons, :), 90);y = mean(state_bvr_sf_50, 2);l = y - mean(state_bvr_sf_10, 2);u = mean(state_bvr_sf_90,2) -y;errorbar(n_beacons-INTERVAL, y, l, u,'x-r','MarkerSize', msz);y = mean(state_bvr_2h_50, 2);l = y - mean(state_bvr_2h_10, 2);u = mean(state_bvr_2h_90,2) -y;errorbar(n_beacons+INTERVAL, y, l, u,'v-k','MarkerSize', msz);xlabel('number of beacons K');xlim([0 105]);ylabel('routing state per node (Byte)');legend('S4', 'BVR', 'BVR 2hop',2);saveas(gcf, 'state.eps','psc2')%%%%%%%%%figure 1.g compare communication cost%BROADCAST_PACKET_SIZE=2+1;%beacon_bd = S.n_nodes*n_beacons*BROADCAST_PACKET_SIZE;%beacon_bd = beacon_bd';%DV_ENTRY_SIZE=2+1+1;for i=1:repeat  for b=1:length(n_beacons)    %cr_local_dv_size(b,i) = res(b,i).dv_entries_cr*DV_ENTRY_SIZE;    [cr_t(b,i), bvr_t(b,i),bvr_2h_t(b,i)] = setup_traffic(res(b,i));  endendfigure(7)set(gca, 'FontSize',fontsize);%size(mean(cr_local_dv_size, 2))%size(beacon_bd)% $$$ y = mean(cr_local_dv_size, 2);% $$$ l = y - min(cr_local_dv_size,[], 2);% $$$ u = max(cr_local_dv_size, [], 2) -y;% $$$ errorbar(n_beacons, y, l, u,'o-b','MarkerSize', msz);plot_errorbar( cr_t, n_beacons, 'o-b', msz, 1);tmp = mean(cr_t,2);fprintf('control overhead of S4, K=56:%.1f\n',tmp(find(n_beacons==56)));tmp = mean(bvr_t,2);fprintf('control overhead of BVR 1hop, K=56:%.1f\n',tmp(find(n_beacons==56)));hold on%plot(n_beacons, beacon_bd, 'x-r','MarkerSize', msz);plot_errorbar(bvr_t, n_beacons-INTERVAL, 'x-r',msz,1);plot_errorbar(bvr_2h_t, n_beacons+INTERVAL, 'v-k',msz,1);legend('S4', 'BVR', 'BVR 2 hop',2);xlabel('number of beacons K');ylabel('control traffic per node (Byte)');saveas(gcf, 'traffic.eps','psc2')%%%%%%%%%%%data traffic overhead (main packet header)if 0  routing_beacon = 10;  for b=1:length(n_beacons)    cr_packet_overhead(b) = 2+1; %beacon ID+distance to beacon    bvr_packet_overhead(b) = routing_beacon*2;    %to specify which beacons are routing beacons also incur overhead    o = factorial(n_beacons(b))/factorial(n_beacons(b)- ...					  routing_beacon)/factorial(routing_beacon);    bvr_packet_overhead(b) = bvr_packet_overhead(b) +log(o)/log(2)/8;  end  figure(8)  set(gca, 'FontSize',fontsize);  hold on  plot(n_beacons, cr_packet_overhead,'o-b','MarkerSize', msz);  plot(n_beacons, bvr_packet_overhead,'x-r','MarkerSize', msz);  plot([0 100],[29 29],'k-');  legend('S4', 'BVR','default mica2 packet payload size',0);  xlabel('number of beacons K');  ylabel('per data packet header overhead (Byte)');  saveas(gcf, 'header_overhead.eps','psc2')end

⌨️ 快捷键说明

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