Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
刚刚开始阅读MANET的随机航路点移动性。我发现很多工作都实现了该模型。因此,我假设可以使用Matlab代码,以便更好地理解它。不幸的是,我没有找到。
任何机构都可以在随机的航路点上提供任何好的教程或代码吗?帮助表示赞赏。 更新: 随机航点(RWP)模型是一种常用的移动性综合模型,例如在Ad Hoc网络中。它是一个基本模型,用简单的术语描述了独立节点的运动模式。 简要地说,在RWP模型中: 每个节点均沿之字形线从一个航路点移动到下一个航路点。航路点均匀地分布在给定的凸面区域(例如单位圆盘)上。在每条腿的起点,从速度分布中得出随机速度(在基本情况下,速度为常数1)。可选地,节点在到达下一条腿之前到达每个航路点时可能会有所谓的“思考时间” ,其中持续时间是独立且均匀分布的随机变量 ![1。随机航点模型的常见问题] [1] 之字形轨迹:RWP模型是基本模型,很容易就路径不自然而争论不休。再说一次,任何实用的协议或机制都应具有鲁棒性,并在各种移动模式(包括类似于RWP模型的移动)下提供合理的性能。速度分布:使用随机航路点模型进行仿真研究时,最常见的问题是速度分布的选择不佳[4],例如,均匀分布U(0,Vmax)。这样的速度分布(在NS-2模拟中似乎很常见!)导致了这样一种情况,即每个节点在静止状态下都停止移动。为了避免这种情况,速度分布应为1 / E [1 / V]>0。请注意,节点在单条腿上花费的平均时间与1 / E [1 / V]成比例。 2.边界上的随机航点(RWPB) 在(标准)RWP模型中,航路点在给定域上均匀分布。或者,航路点可以均匀地分布在域的边界上,此模型称为“边界上的随机航路点”(RWPB)模型。由RWPB模型产生的空间节点密度与RWP模型有很大不同,即,概率质量从区域中心转移到边界。特别是,如果边界包含直线段,则线段上存在随机支脚的可能性为正(导致边界上每个线段上为1维pdf)。 [1]: http : //i.stack.imgur.com/VKobC.gif [来源: http : //www.netlab.tkk.fi/~esa/java/rwp/rwp-model.shtml] 这是我找到的一个很好的来源。如何在MATLAB中实现此模型? 更新 随机网络拓扑: maxx=1000; maxy=1000; maxn=100; %node generation node = rand(maxn,2); node(:,1) = node(:,1)*maxx; node(:,2) = node(:,2)*maxy; maxd=2; noded = rand(maxd,2); noded(:,1) = noded(:,1)*maxx; noded(:,2) = noded(:,2)*maxy; maxs=4; nodes = rand(maxs,2); nodes(:,1) = nodes(:,1)*maxx; nodes(:,2) = nodes(:,2)*maxy; % make background white, run only once colordef none, whitebg figure(1); axis equal hold on box on; plot(node(:, 1), node(:, 2), 'k.', 'MarkerSize', 25); hold on % plot(noded(:, 1), noded(:, 2), 'r.', 'MarkerSize', 25); hold on % plot(nodes(:, 1), nodes(:, 2), 'b.', 'MarkerSize', 25); hold on title('Network topology'); xlabel('X'); ylabel('Y'); grid on Xminor grid on axis([0, maxx, 0, maxy]); set(gca, 'XTick', [0; maxx]); set(gca, 'YTick', [maxy]); 结果: 随机点移动性: clear; hold on; X = 1500; Y = 500; MINSPEED = 0; MAXSPEED = 20; PAUSETIME = 2; TIME = 900; N = 10; AMOSTRAS = 30; nodes = zeros(N,6); nodes_speed = zeros(N,TIME); nodes_speed_mean = zeros (AMOSTRAS,TIME); for a=1:AMOSTRAS for i=1:N j=1; x = rand*X; y = rand*Y; waypointX = rand*X; waypointY = rand*Y; speed = MINSPEED+(MAXSPEED - MINSPEED)*rand; time = 1; node = [xy speed waypointX waypointY time]; nodes(j,:) =node; while time TIME time_next = TIME; end times = ceil(time_ant):floor(time_next); if ~isempty(times) nodes_speed(i,times) = speed ; end end end nodes_speed_mean(a,:) = mean(nodes_speed); end plot (mean(nodes_speed_mean),'r'); grid on ![替代文字] [3]
回答: 因此,在每个步骤中,您需要生成3个随机数:
现在,您要做的就是找出从中提取随机数以适应模型的分布。一个非常幼稚的Matlab方法是执行: rand(10,3)-0.5 代表一个参与者的出发点和前9个步骤。除了仔细选择发行版之外,您还需要扩展已采取的步骤。 更多&回答... |
![]() |
![]() |