1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJeYkpxq
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
移动自组织(Ad Hoc)网络是一种多跳的临时性自治系统,它的原型是美国早在1968年建立的ALOHA网络和之后于1973提出的PR(Packet Radio)网络。ALOHA网络需要固定的基站,网络中的每一个节点都必须和其它所有节点直接连接才能互相通信,是一种单跳网络。直到PR网络,才出现了真正意义上的多跳网络,网络中的各个节点不需要直接连接,而是能够通过中继的方式,在两个距离很远而无法直接通信的节点之间传送信息。PR网络被广泛应用于军事领域。IEEE在开发802.11标准时,提出将PR网络改名为Ad Hoc网络,也即今天我们常说的移动自组织网络。
4.部分源码
............................................
%%
%局域网偏好的网络拓扑
L = 50;
X = rand(1,m0)*SCALE;
Y = rand(1,m0)*SCALE;
fed= [];
for i = 1:m0
for j = 1:m0
dist(i,j)=sqrt((X(i)-X(j))^2+(Y(i)-Y(j))^2);
end
end
indx = 0;
NN = 0;
while NN < N
indx = indx + 1;rng(indx);
%计算度
if indx == 1
X2 = X;
Y2 = Y;
end
degree1 = [];
for i = 1:length(X2)
xx= 0;
for j = 1:length(Y2)
dist=sqrt((X2(i)-X2(j))^2+(Y2(i)-Y2(j))^2);
if dist <= Radius & dist > 0
xx= xx + 1;
end
end
degree1(i) = xx;
end
degree2 = [];
di = [];
for i = 1:length(X2)
xx= 0;
for j = 1:length(Y2)
dist=sqrt((X2(i)-X2(j))^2+(Y2(i)-Y2(j))^2);
if dist <= Radius & dist > 0 & dist<= L
xx= xx + 1;
end
di(i,j) = dist;
end
degree2(i) = xx;
end
%计算节点剩余能源
if indx == 1
E(1:m0) = E0 - Ec;
tmps = E;
else
E = tmps - Ec;
E = [E,E0 - Ec];
tmps = E;
end
for i = 1:length(X2)
d = di(i,:);
fed(i) = E(i)^alpha*(1-d(i)/sum(d))^(1-alpha);
end
for i = 1:length(X2)
Para2(i) = fed(i)*degree1(i)/(sum(fed.*degree1));%公式3.3连接8个概率
end
%选择概率最大的m个进行连接
[Vp,Ip] = sort(Para2);
Mindx = Ip(end-m+1:end);
%新节点加入网络时遵循的概率表达式
Parea = (degree2)/sum(degree1);
[V,I] = max(Parea);
indx2 = find(Parea>=0.5*V);
%Nr = randperm(length(indx2));
Nr = floor(length(indx2)*rand)+1;
if rand > max([0.5,sum(Parea(1:m))])%加入网络时遵循的概率表达式
if rand > Vp(end-m+1)
Xnew = X2(indx2(Nr))+L*cos(2*pi*rand);
Ynew = Y2(indx2(Nr))+L*sin(2*pi*rand);
else
Xnew = rand(1,1)*SCALE;
Ynew = rand(1,1)*SCALE;
end
else
Xnew = rand(1,1)*SCALE;
Ynew = rand(1,1)*SCALE;
end
X2 = [X2,Xnew];
Y2 = [Y2,Ynew];
NN = length(X2);
end
subplot(133);
plot(X2,Y2,'b.');
title('局域网偏好的网络拓扑,L=50');
axis([0,500,0,500]);
12_042_m