2020年认证杯SPSSPRO杯数学建模
B题 分布式无线广播
原题再现:
以广播的方式来进行无线网通信,必须解决发送互相冲突的问题。无线网的许多基础通信协议都使用了令牌的方法来解决这个问题,在同一个时间段内,只有唯一一个拿到令牌的通信节点才能发送信息,发送完毕后则会将令牌传递给其他节点。但我们考虑这样的一个无线网:每个通信节点都是低功率的发射器,并且在进行着空间上的低速连续运动 (无法预知运动方向及其改变的规律),所以对一个节点而言,只有和它距离在一定范围之内的节点才能收到它的信号,而且节点会 (在未声明的情况下) 相互接近或远离。每个节点需要不定期地、断续地发送信息,但会时刻保持收听信息。发送和收听工作可以同时进行。在这个通信网络中,完全没有网络的基础设施,而且每个节点只需要把自己的信息广播出去,需要此条信息的节点只需要被动收听即可,并不需要点对点地持续交换信息。所有信息只能使用同一个频率发送,一旦有两个或多个节点的广播发生冲突,能同时收听到它们的节点就都能监听到冲突。
第一阶段问题: 我们假设发送每条信息所占用的时间都是等长的。所有的节点都拥有同样的内置算法,并拥有一个校准过的高精度时钟。请建立合理的数学模型并解决如下问题。
1. 请构造一个合理的指标来描述网络的整体通信效率。
2. 在每个节点需要发送信息时,请设计一个方案来选择发送的时间段。如果发送信息时发现存在冲突,如何自动调整重发的时间段,才能使网络的整体通信效率尽可能高? 可能需要分情况 (例如分轻载/重载等不同情形,或其他分法) 来考虑问题。
整体求解过程概述(摘要)
目前,网络技术得到迅速发展,但在无线网络通信系统的分布式环境下节点之间信息的传输行为较为复杂。因此,对无线网通信效率的研究具有一定的意义。本文针对在给定的无线网环境,提取能够反映网络的整体通信效率的指标,对指标进行定量分析后建立回归模型来描述网络的整体通信效率。
针对问题一:分析无线网中的环境,由通信节点是低速连续运动,其运动可以看作布朗运动的形式;节点是否接收到信息与通信距离有关;对某节点发送、接收、产生冲突信息的计数采用叠加原理。把无线网通信的节点放在三维空间里面研究,根据动态节点间的距离,对某时段各节点发送信息、接收信息、发生通信冲突进行研究,得到冲突率、时延率、吞吐率和承载率四个指标。分别将四个指标与通信效率进行相关性分析,再通过回归分析,建立通信效率的回归模型。即得到由四个指标生成的线性组合来表示网络的整体通信效率。
通过仿真模拟,得到多组关于通信效率与冲突率、时延率、吞吐率和承载率的数据,运用线性回归模型的程序求解出回归模型的回归系数,即得到网络的整体通信效率模型。在对模型进行实例验证,进一步说明模型的可行性和准确性。
针对问题二:当发送信息时发现存在冲突,在相同条件下去研究如何调整重发时间段来使网络通信效率尽可能高。由于网络的承载能力和冲突之间有着显著性的特征,在研究问题二的模型时分轻载和重载进行讨论。以轻载为例,通过建立有通信冲突的最小连通支配集来确定节点通信冲突的点集,通过分离冲突域、建立独立子集来尽可能和减小通信冲突。结合问题一中的通信效率模型,对指标进一步刻画,找到通信效率的最大值,从而解出对应的的时间段,由完成这一过程所需要的的时间与时间段做处理,可得到重发的时间段。即通过相应算法,结合问题一的模型,网络系统可自动调整重发时间段。
采用 MATLAB软件, 对节点数为 10 的通信网络进行仿真动态模拟,可得到存在冲突时,高通信效率下所对应重发的时间段。
本文最后,对问题一和问题二建立的模型及求解进行了优缺点分析,以及对模型的展望进行了说明。
问题分析:
本题主要的工作就是建立一些合理的指标并且找到指标之间的关系建立一个能够描述网络的整体通信效率的模型,为了尽量避免冲突,需设计一个方案来提高网络的整体通信效率。
问题一的分析
需要构造一个合理的指标来描述网络的整体通信效率。首先,把网络上的节点放到空间直角坐标系上考虑,节点的运动遵循布朗运动的形式,由此我们根据节点的动态坐标得到节点间的距离 d 并给定一个通信距离 D,当 d ≤ D 时,则两个节点之间可以互相通信,反之则不能进行互相通信;其次,我们再找出描述网络的整体通信效率的相关指标,有冲突率、时延率、吞吐率和承载率;然后,我们根据建立的四个指标与通信效率之间建立多元线性回归分析模型来描述网络的整体通信效率;最后,为了验证模型的准确性,我们把模型带到具体通信网络的实例中进行计算和分析。
问题二的分析
节点发送信息时可能发现存在冲突,这种冲突尽可能少就更有利于通信效能的提高。通过建立有通信冲突的最小连通支配集来确定节点冲突的点集;通过分离冲突域,建立独立子集来尽可能减小通信冲突,均通过相应的算法来实现。网络在运作的过程中,所承载的能力对通信冲突存在不一样的影响,此时,对网络的承载能力分为轻载和重载进行分类讨论。结合第一问建立的模型,在指标明确的情况下,找出尽可能高的通信效率,从而找到对应的时间,与初始时间一处理即可得到调整后的时间段。相应的可以做动态仿真模拟,在轻载或是重载下,冲突域的改变,可以调整出不同的时间段,使通信效率尽可能高。
模型假设:
(1) 假设每个节点都有相同的内置算法;
(2) 假设每个节点的通信距离始终相等,即为常数;
(3) 假设在没有广播冲突的前提下,节点一旦接收到消息就一定是接收到完整的信息;
(4) 假设不考虑某节点未完成接收已知的所需信息时不会发送其他信息;
(5) 假设发送每条信息这一操作所占用的时间是等长的且忽略不计;
(6) 假设计算网络中信息传播的最大时间与实际网络中信息传播的最大时间之间存在的误
差几乎为 0。
论文缩略图:
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:(代码和文档not free)
clc,clear all
hang=1;
ss=zeros(7*5,4);
%length(number)
rrate=zeros(7*5,6);
for number=[10:50:300,300]
x=2*rand(number,1)-1;
y=2*rand(number,1)-1;
z=2*rand(number,1)-1;
for rate=[0.1:0.2:1.0,1.0]
[m,sumc,d,ssum] =jdfz(number,rate,x,y,z);
ss(hang,:)=[number,rate,m,sumc];
%±£´
rrate(hang,:)=[number,rate,m/sumc,d,ssum/sumc,ssum/(9*number*1000)];
hang=hang+1;
end
end
clc,clear all
n=10;
s=0.002;
D=0.1;
x=2*rand(n,1)-1;
y=2*rand(n,1)-1;
z=2*rand(n,1)-1;
h=plot3(x,y,z,'.'); xmin=-1;xmax=1;ymin=-1;ymax=1;zmin=-1;zmax=1; axis([xmin xmax ymin ymax zmin zmax]); axis square
grid on
set(h, 'MarkerSize',5)% òs ģ
e={};
l=1;
for i=linspace(1,10,5000)
%addres=randperm(n,1);
alphabet = [0 1]; prob = [0.8 0.2]; zhuangtai=randsrc(n,1,[alphabet; prob]);
for j=1:n
if zhuangtai([j])==1
alphabet1 = [1 2 3 4 5 6 7 8 9]; prob1 = [0.3 0.2 0.1 0.1 0.1 0.05 0.05 0.05 0.05];
shuliang=randsrc(1,1,[alphabet1; prob1]);
addres=randperm(n,shuliang);
for k=1:shuliang
addres1=addres([k]);
d=sqrt((x([j])-x([addres1]))^2+(y([j])-y([addres1]))^2+(y([j])-y([addres1]))^2);
if d<=D
e{l}=d;
l=l+1;
end
ee=cell2mat(e);
uniq=length(ee)-length(unique(ee));
if uniq>0
end
l=1;
e={};
end
end
end
x=x+s*randn(n,1);
y=y+s*randn(n,1);
z=z+s*randn(n,1);
set(h,'XData',x,'YData',y,'ZData',z);
end