1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJmWl55w
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
弹性网络是一种高度灵活的网络架构,可以根据网络流量和业务需求动态调整网络资源。相比传统网络,弹性网络能够更好地适应不断变化的业务需求和网络拓扑,从而提高网络的性能和可靠性。在弹性网络中,频谱利用率和业务阻塞率是两个重要的性能指标,本文将详细介绍它们的定义、计算方法以及影响因素。
4.部分源码
..................................................................
%数据传输
K_path = [];
for kr=1:K_Nslot
KL=size(Pathset{kr});
for kc=1:KL(2)
K_path(kr,kc) = Pathset{kr}(kc);
end
end
Path_cL = size(K_path);
for kr=1:Path_cL(1)
for kr2=1:Path_cL(2)-1
if K_path(kr,kr2+1)~=0
Path_cL0 = ONET_idx(K_path(kr,kr2),K_path(kr,kr2+1));
Arrreq_infor(kr,Path_cL0+8) = 1;
end
end
end
for ks=1:K_Nslot
Req_L = size(Req_infor);
for r1=1:Req_L(1)
if Arrreq_infor(ks,3) >= Req_infor(r1,5)&&Req_infor(r1,1)~=0
for r2=10:LinksN+9
if Req_infor(r1,r2)==1
for r3=Req_infor(r1,9):Req_infor(r1,9)+Req_infor(r1,8)-1
link_infor(r2-9,r3) = 0;
end
end
end
for r2=1:Req_L(2)
Req_infor(r1,r2)=0;
end
end
end
%确定到达请求的请求索引
for r1=1:Req_L(1)
Ej=0;
if Req_infor(r1,1)==0
Req_infor(r1,:)= [Req_idx,Arrreq_infor(ks,:)];
Ej = 1;
Arrreq_idxx = r1;
break
end
if r1==Req_L(1)&&Ej==0
Req_infor(r1+1,:) = [Req_idx,Arrreq_infor(ks,:)];
Arrreq_idxx = r1+1;
end
end
Path_lens2 = Req_infor(Arrreq_idxx,7);
Bws = Req_infor(Arrreq_idxx,6);
islong=0;
if Path_lens2<=Max_dist
Slots_number=Bws/12.5;
Req_infor(Arrreq_idxx,8)=ceil(Slots_number);
else
Num_bad=Num_bad+1;
for Req_infor_row=1:LinksN+9
Req_infor(Arrreq_idxx,Req_infor_row)=0;
end
islong=1;
break
end
Linkij2 = [];
%这个模块不加入重构,那么假设由于频谱杂乱导致有效频率数量为:
F = (1/Min_bw-1/Max_bw)*[1+sum(Req_infor(:,8))]/Max_Nslot;
Max_Nslot2 = Max_Nslot*(1-F);
if islong==0
Linkij=1;
for r2=10:LinksN+9
if Req_infor(Arrreq_idxx,r2)==1
Linkij2(Linkij,:) = link_infor(r2-9,:);
Linkij = Linkij + 1;
end
end
Link_cL2=size(Linkij2);
%可用的频谱时隙
SC = 0;
for ijkl=1:Max_Nslot
sum_linkr=0;
for Linkij=1:Link_cL2(1)
if ijkl+Req_infor(Arrreq_idxx,8)+2*CP_Nslot<=Max_Nslot2
SC = SC+1;
for ip=ijkl:ijkl+Req_infor(Arrreq_idxx,8)+2*CP_Nslot
sum_linkr = sum_linkr + Linkij2(Linkij,ip);
end
else
sum_linkr=1;
break
end
end
if sum_linkr==0
for Linkij=1:Link_cL2(1)
for ip=1:Req_infor(Arrreq_idxx,8)
link_infor(Linkij2(Linkij,Max_Nslot+1),ijkl+ip+CP_Nslot-1)=1;
end
Req_infor(Arrreq_idxx,9)=ijkl+CP_Nslot;
end
break
end
end
SC=SC/Link_cL2(1);
%更新成功的请求号和被阻止的请求
if sum_linkr==0
Num_good=Num_good+1;%利用的数量
break
else
for Req_infor_column=1:LinksN+9
Req_infor(Arrreq_idxx,Req_infor_column)=0;
end
if ks==K_Nslot
Num_bad=Num_bad+1;%阻塞的数量
end
end
end
end
Req_idx=Req_idx+1;
end
X1(jk,mk)= Lamda(jk,1)*Timehold;
Y1(jk,mk)= 100*Num_bad/Max_Nreq/MTKL;%业务阻塞率
Y2(jk,mk)= 100*SC/Max_Nslot;
end
end
12_074_m