基于MATLAB的OSPF协议网络仿真

step1. 当有连接请求时,算法开始,考察源节点S是否为域的边界节点,不是的话在域内使用最短跳算法路由至此域的边界节点

域的边界节点用U表示(图中A, B),下一跳接口为[D, N, r(U, N)],D为宿节点,N为下一跳结点,r(U, N) = {wU, wN, hU-N},wU, wNUN结点间波长,hU-N 是U,N间的代价,再到下一跳r(N, E)E为下一个域的边界节点。

step2. 根据OSPF 协议规范,在请求连接的两点之间,用Dijkstra 算法计算出所有路径,尽量消除冗余存储和冗余计算,挑选出代价最少的路径,hU-D = hU-N+ hN-E + …+h*-D, 总代价为各跳路径相加,

step3. 考察波长连续性,: r(U, N) = {wU, wN1, hU-N}, r(N, E) = {wN2, wE1, hN-E}…r(*, D) = {w*2, wD, h*-D}.

If wN1 = wN2, && wE1= wE2 &&…. w*1= w*2, return null,

否则,加入波长变换器, 此路径代价变为C。

step4. 考察次短路径,是否存在符合波长连续性的波长,若有,则转到步骤7,否则执行步骤6;

step5. 设最短路径增加波长变换器代价为C,采用次短路径的代价为H2,比较C、H2,若C<H2,则采用增加波长变换器方法,选择最短路径,否则采用次短路径;跳至步骤4;

step6. 循环执行步骤4,5,直至计算出合适的路径;

Step7. 显示所选路径,算法结束,S结点开始发包至宿节点D

clc;
clear;
close all;
 
webpoint=30;        %节点数目
 
[D,M]=tsp(webpoint);
popsize=20;
N=199;                  %N为迭代次数
pcro=0.85;
pmut=0.5;
gen=1;
minval=inf;
pop=initialize(popsize,webpoint);
while gen<=N     
  val=adapt(pop,popsize,webpoint,D);  

  fitval=(1000./val).^15;
  [valmin,minind]=min(val);
  
%保存最优
  if valmin<minval
      minval=valmin;
      minpath=pop(minind,:);
   end   
   minf(gen)=minval;                 %最短路径长度      
pop=select(pop,fitval,popsize,webpoint,minpath);  %比例选择
pop=crossover(pop,pcro,popsize,webpoint);  %OX交叉
pop=mutation(pop,pmut,popsize,webpoint);   %变异      
drawTSP(M,minpath,minval,gen,0);
gen=gen+1;
end
drawTSP(M,minpath,minval,gen,1);
hold on

r=0.022;
t=0:pi/180:2*pi;
x=r*cos(t)+0.03;
y=r*sin(t)+0.03;
plot(x,y,'b--');hold on;
plot([0.03,0.01],[0.03,0.03],'b--');hold on;
plot([0.03,0.04],[0.03,0.01],'b--');hold on;
plot([0.03,0.02],[0.03,0.01],'b--');hold on;
plot([0.03,0.05],[0.03,0.03],'b--');hold on;
plot([0.03,0.03],[0.03,0.05],'b--');hold on;

plot([0.02,0.04],[0.01,0.01],'b--');hold on;
plot([0.04,0.05],[0.01,0.03],'b--');hold on;
plot([0.05,0.03],[0.03,0.05],'b--');hold on;
plot([0.03,0.01],[0.05,0.03],'b--');hold on;
plot([0.01,0.02],[0.03,0.01],'b--');hold on;
%================================================
%================================================
hold on
t=0:pi/180:2*pi;
x=r*cos(t)+0.13;
y=r*sin(t)+0.03;
plot(x,y,'b--');hold on

plot([0.13,0.11],[0.03,0.03],'b--');hold on;
plot([0.13,0.14],[0.03,0.01],'b--');hold on;
plot([0.13,0.12],[0.03,0.01],'b--');hold on;
plot([0.13,0.15],[0.03,0.03],'b--');hold on;
plot([0.13,0.13],[0.03,0.05],'b--');hold on;

plot([0.12,0.14],[0.01,0.01],'b--');hold on;
plot([0.14,0.15],[0.01,0.03],'b--');hold on;
plot([0.15,0.13],[0.03,0.05],'b--');hold on;
plot([0.13,0.11],[0.05,0.03],'b--');hold on;
plot([0.11,0.12],[0.03,0.01],'b--');hold on;
%================================================
%================================================


t=0:pi/180:2*pi;
x=r*cos(t)+0.23;
y=r*sin(t)+0.03;
plot(x,y,'b--');hold on

%             0.22 0.01;
%             0.24 0.01;
%             0.21 0.03;
%               0.23 0.03;
%             0.25 0.03;
%             0.23 0.05;
plot([0.23,0.21],[0.03,0.03],'b--');hold on;
plot([0.23,0.24],[0.03,0.01],'b--');hold on;
plot([0.23,0.22],[0.03,0.01],'b--');hold on;
plot([0.23,0.25],[0.03,0.03],'b--');hold on;
plot([0.23,0.23],[0.03,0.05],'b--');hold on;

plot([0.22,0.24],[0.01,0.01],'b--');hold on;
plot([0.24,0.25],[0.01,0.03],'b--');hold on;
plot([0.25,0.23],[0.03,0.05],'b--');hold on;
plot([0.23,0.21],[0.05,0.03],'b--');hold on;
plot([0.21,0.22],[0.03,0.01],'b--');hold on;
%================================================
%================================================

t=0:pi/180:2*pi;
x=r*cos(t)+0.08;
y=r*sin(t)+0.08;
plot(x,y,'b--');hold on
 
plot([0.08,0.07],[0.08,0.06],'b--');hold on;
plot([0.08,0.09],[0.08,0.06],'b--');hold on;
plot([0.08,0.06],[0.08,0.08],'b--');hold on;
plot([0.08,0.10],[0.08,0.08],'b--');hold on;
plot([0.08,0.08],[0.08,0.10],'b--');hold on;

plot([0.07,0.09],[0.06,0.06],'b--');hold on;
plot([0.09,0.10],[0.06,0.08],'b--');hold on;
plot([0.10,0.08],[0.08,0.1],'b--');hold on;
plot([0.08,0.06],[0.1,0.08],'b--');hold on;
plot([0.06,0.07],[0.08,0.06],'b--');hold on;
%================================================
%================================================

t=0:pi/180:2*pi;
x=r*cos(t)+0.18;
y=r*sin(t)+0.08;
plot(x,y,'b--');hold on;
%             0.17 0.06;
%             0.18 0.06;
%             0.16 0.08;
%               0.18 0.08;
%             0.20 0.08;
%             0.18 0.10;  
plot([0.18,0.17],[0.08,0.06],'b--');hold on;
plot([0.18,0.19],[0.08,0.06],'b--');hold on;
plot([0.18,0.16],[0.08,0.08],'b--');hold on;
plot([0.18,0.20],[0.08,0.08],'b--');hold on;
plot([0.18,0.18],[0.08,0.10],'b--');hold on;

plot([0.17,0.19],[0.06,0.06],'b--');hold on;
plot([0.19,0.20],[0.06,0.08],'b--');hold on;
plot([0.20,0.18],[0.08,0.1],'b--');hold on;
plot([0.18,0.16],[0.1,0.08],'b--');hold on;
plot([0.16,0.17],[0.08,0.06],'b--');hold on;
%================================================
%================================================

figure;plot(minf,'-r');xlabel('迭代次数');ylabel('最短路径长度');
disp('最短路径为:');disp(minpath);
disp('最短路径长度为:');disp(minval);

 A12-1

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于MATLAB网络控制系统仿真-基于MATLAB网络控制系统仿真.pdf 基于MATLAB网络控制系统仿真 【英文篇名】The simulation of networked control systems based on MATLAB【作者中文名】[url=]许顺孝[/url];【作者英文名】[url=]XU Shun-xiao(Marine Engineering Institute[/url]; [url=]Jimei University[/url]; [url=]Xiamen[/url]; [url=]Fujian 361021[/url]; [url=]China)[/url];【作者单位】[url=]集美大学轮机工程学院[/url];【文献出处】福州大学学报, Journal of Fuzhou University, 编辑部邮箱 2008年 S1期   期刊荣誉:中文核心期刊要目总览  ASPT来源刊  CJFD收录刊【关键词】[url=]网络控制系统[/url]; [url=]ActiveX[/url]; [url=]MATLAB[/url]; [url=]TrueTime[/url];【英文关键词】[url=]networked control system[/url]; [url=]Active X[/url]; [url=]MATLAB[/url]; [url=]TrueTime[/url];【摘要】介绍了基于TrueTime工具包和Active X技术的仿真平台实现方法.前者是根据网络MAC协议对通信延迟机理进行建模的仿真软件包;后者是针对网络控制系统通信模型仿真困难的缺点而提出,该方法通过ActiveX技术实现了对象模型和控制器通信,为网络控制系统的理论研究提供有效的检验平台.通过对两者的比较指出两种方法的优缺点.【英文摘要】This paper introduces two methods of simulation based on TrueTime and Active X,the first is a soft package which create model according to delay principle of networked MAC protocol,the latter is a new method to deal with the difficulty on the simulation of communication model.This method realizes the communication of the plant model and controller through ActiveX technology,then provides an effective test platform for theory research on NCS.Finally this paper gives the advantage and disadvantage by comparin...
基于GA(遗传算法)优化的OSPF(开放式最短路径优先)协议网络路由是利用遗传算法来改进OSPF协议中的路由选择过程。在网络中,路由选择是非常重要的,它决定了数据包从源节点到目的节点的传输路径。 在这个仿真实验中,我们使用MATLAB来模拟网络环境,并使用遗传算法来优化OSPF协议的路由选择策略。首先,我们需要建立一个网络拓扑图,包括各个节点和它们之间的连接关系。然后,我们使用OSPF协议来计算出每个节点之间的最短路径,并将其表示为一个路由表。 接下来,我们引入遗传算法来改进路由选择策略。遗传算法是一种模拟生物进化的计算方法,通过自然选择、交叉、变异等操作来寻找最优解。在这个仿真中,我们将每个节点的路由表表示为个体,并利用遗传算法来进行进化。 遗传算法的优化过程包括以下步骤:首先,我们需要定义适应度函数,用于评估每个个体的优劣程度。在这个仿真中,适应度函数可以是路由表的总成本,包括延迟、带宽、可用性等。接着,我们随机生成一组初始个体群体,并计算它们的适应度。 然后,我们进行选择操作,选择适应度较高的个体,形成下一代个体的种群。接着,我们进行交叉操作,随机选择两个个体并进行基因交换,产生新的个体。最后,我们进行变异操作,对新个体的某些基因进行随机改变。 通过以上步骤,我们可以不断地迭代和优化个体群体,直到达到一定的停止条件。最终得到的个体就是我们要寻找的最优路由选择策略。 总之,基于GA优化的OSPF协议网络路由MATLAB仿真是一种利用遗传算法来改进OSPF协议中路由选择策略的方法。通过模拟网络环境,使用遗传算法进行优化,我们可以找到最优的路由选择策略,提高网络的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值