日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于MATLAB的OSPF协议网络仿真

發(fā)布時間:2025/4/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于MATLAB的OSPF协议网络仿真 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

step1. 當(dāng)有連接請求時,算法開始,考察源節(jié)點(diǎn)S是否為域的邊界節(jié)點(diǎn),不是的話在域內(nèi)使用最短跳算法路由至此域的邊界節(jié)點(diǎn)

域的邊界節(jié)點(diǎn)用U表示(圖中A, B),下一跳接口為[D, N, r(U, N)],D為宿節(jié)點(diǎn),N為下一跳結(jié)點(diǎn),r(U, N) = {wU, wN, hU-N},wU, wN為U,N結(jié)點(diǎn)間波長,hU-N 是U,N間的代價,再到下一跳r(N, E),E為下一個域的邊界節(jié)點(diǎn)。

step2. 根據(jù)OSPF 協(xié)議規(guī)范,在請求連接的兩點(diǎn)之間,用Dijkstra 算法計算出所有路徑,盡量消除冗余存儲和冗余計算,挑選出代價最少的路徑,hU-D = hU-N+ hN-E + …+h*-D, 總代價為各跳路徑相加,

step3. 考察波長連續(xù)性,: 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,

否則,加入波長變換器, 此路徑代價變?yōu)镃。

step4. 考察次短路徑,是否存在符合波長連續(xù)性的波長,若有,則轉(zhuǎn)到步驟7,否則執(zhí)行步驟6;

step5. 設(shè)最短路徑增加波長變換器代價為C,采用次短路徑的代價為H2,比較C、H2,若C<H2,則采用增加波長變換器方法,選擇最短路徑,否則采用次短路徑;跳至步驟4;

step6. 循環(huán)執(zhí)行步驟4,5,直至計算出合適的路徑;

Step7. 顯示所選路徑,算法結(jié)束,S結(jié)點(diǎn)開始發(fā)包至宿節(jié)點(diǎn)D

clc;
clear;
close all;
?
webpoint=30; ? ? ? ?%節(jié)點(diǎn)數(shù)目
?
[D,M]=tsp(webpoint);
popsize=20;
N=199; ? ? ? ? ? ? ? ? ?%N為迭代次數(shù)
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);
??
%保存最優(yōu)
? 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('迭代次數(shù)');ylabel('最短路徑長度');
disp('最短路徑為:');disp(minpath);
disp('最短路徑長度為:');disp(minval);

?A12-1

總結(jié)

以上是生活随笔為你收集整理的基于MATLAB的OSPF协议网络仿真的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。