資源簡介
ExOR算法 的 matlab 實現 自己寫的 能運行 沒問題
代碼片段和文件信息
function?ExOR(sourcetargetETXprrPacketreceive)
%%%本文設計的路由算法
%N=30;
N=length(prr);
%仿真網絡
%%?載入?拓撲位置
%?%?%?%?%?%?%?X?=load(‘x001.txt‘);
%?%?%?%?%?%?%?
%?%?%?%?%?%?%?YY?=load(‘y001.txt‘);
tic;
%%?計算所有節點到目的節點的ETX值,存入ETX_path(N)
?????for?exor_i=1:N???
?????????[?ETX_path(exor_i)?arry]?=?Eindex(exor_itargetETX);
?????end
??????[oopp]=sort(??ETX_path(1:N)?);?%%升序
???????qq=find(oo ???????FF?=pp(qq);?%%候選節點集?下標越小?優先級越高
????
%%?初始化?
?num00=1;%第num00跳的候選轉發節點列表集合為F(num00,:)總跳數一定不會超過N
?
%??thresholdvalue=1/0.16;
?%tic;
?F(NN)=0;
?F(::)=0;
?F(num001)=source;%令source為第一跳(方便表示)
?
%??F_appoint(1:)=0;%存放已經被安排的節點
%??F_appoint(11)=source;
%??appointnum=1;%已分配節點數
%%?
????
???%?ttt=randperm(100);
??%$%???for?exor_i=1:100??%仿真出100個包
????????%%?
????????pdr=1;?%包投遞率初值
????????delay=0;%延遲初值
????????transmissioncount=0;%傳輸次數初值
????????hop=0;
????????
????????x=F(num001);
????????????????????CHONGCHUAN(N)=0;CHONGCHUAN(:)=0;
????????while?x~=target
????????????num00=num00+1;
????????????exor_index=1;
????????????f0=0;
??????????????????while??(length(?find(F(num00:)~=0)?)==0??)?&&(f0<=inf)??%f0為允許的重傳次數
??????????????????????
??????????????????????exor_rand=0;
????????????????????????while?exor_rand==0
????????????????????????exor_rand=?round(rand(11)*100);?%%包序號?[1100]整數
????????????????????????end
????????????????????????
????????????????????for?exor_j=1:length(FF)??%%接收到包的臨近節點?存入F(num00:)很明顯F(num00:)中節點ID按?ETX_path大小從小到大排列因而F(num001)即為轉發節點
????????????????????????
????????????????????????
???????????????????????if?(??Packetreceive(xFF(exor_j)exor_rand)==1??)&&(??x~=?FF(exor_j)?)???%%?&&exor_index==1
???????????????????????F(num00exor_index)=FF(exor_j);?exor_index=exor_index+1?;
???????????????????????
%?%?%?%?%?%?%????????????????????????plot(X(?FF(exor_j)?)YY(?FF(exor_j)?)‘C:*‘)%%%
%?%?%?%?%?%?%????????????????????????plot([X(?x?);X(?FF(exor_j)?)][YY(?x?);YY(?FF(exor_j)?)]‘r‘)%%%
%?%?%?%?%?%?%???????????????????????
%?%?%?%?%?%?%?????????????????????????%annotation(‘arrow‘[X(?x?)?X(?FF(exor_j)?)][YY(?x)?YY(?FF(exor_j)?)])?畫箭頭
%?%?%?%?%?%?%????????????????????????hold?on
???????????????????????end
????????????????????end
????????????????????CHONGCHUAN(num00-1)=CHONGCHUAN(num00-1)+1;
?????????????????????transmissioncount=?transmissioncount+1;
?????????????????????delay=delay+1;
??????????????????end
????????????
?????????????exor_target=fi
- 上一篇:SUSAN 角點檢測 matlab代碼
- 下一篇:Matlab信源編碼huffman
評論
共有 條評論