MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   MANET中用于随机航路点的Matlab代码 (https://www.labfans.com/bbs/showthread.php?t=23906)

poster 2019-12-10 20:48

MANET中用于随机航路点的Matlab代码
 
刚刚开始阅读MANET的随机航路点移动性。我发现很多工作都实现了该模型。因此,我假设可以使用Matlab代码,以便更好地理解它。不幸的是,我没有找到。

任何机构都可以在随机的航路点上提供任何好的教程或代码吗?帮助表示赞赏。

[B]更新:[/B]

随机航点(RWP)模型是一种常用的移动性综合模型,例如在Ad Hoc网络中。它是一个基本模型,用简单的术语描述了独立节点的运动模式。

[B]简要地说,在RWP模型中:[/B]

每个节点均沿之字形线从一个航路点移动到下一个航路点。航路点均匀地分布在给定的凸面区域(例如单位圆盘)上。在每条腿的起点,从速度分布中得出随机速度(在基本情况下,速度为常数1)。可选地,节点在到达下一条腿之前到达每个航路点时可能会有所谓的“思考时间” ,其中持续时间是独立且均匀分布的随机变量

[B]![1。随机航点模型的常见问题] [1][/B]

之字形轨迹: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]: [URL="https://i.stack.imgur.com/VKobC.gif"]http[/URL] : [URL="https://i.stack.imgur.com/VKobC.gif"]//i.stack.imgur.com/VKobC.gif[/URL] [来源: [URL="http://www.netlab.tkk.fi/~esa/java/rwp/rwp-model.shtml]"]http[/URL] : [URL="http://www.netlab.tkk.fi/~esa/java/rwp/rwp-model.shtml]"]//www.netlab.tkk.fi/~esa/java/rwp/rwp-model.shtml][/URL]

这是我找到的一个很好的来源。如何在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]
[LIST=1][*]我在第一个代码中生成了静态的网络拓扑。在第二个代码中,我生成了RWP移动性。现在,我的问题是,我可以这样吗:

生成网络随机打印它。接下来,将移动性模型应用于网络。我将再次绘制网络图,并查看节点已移动。最后,我将spedd绘制为(图2)。
[/LIST]谢谢您的帮助。



[B]回答:[/B]

因此,在每个步骤中,您需要生成3个随机数:
[LIST=1][*]表示演员停留在当前位置的时间。
[*]表示角色下一步的x坐标。
[*]表示演员下一步的y坐标。[/LIST](您可以用速度向量替换x和y坐标,但仍然需要2个随机数。)

现在,您要做的就是找出从中提取随机数以适应模型的分布。一个非常幼稚的Matlab方法是执行:

rand(10,3)-0.5 代表一个参与者的出发点和前9个步骤。除了仔细选择发行版之外,您还需要扩展已采取的步骤。



[url=https://stackoverflow.com/questions/3715648]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 23:14

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.