发现了一个做字素的网站无锡百度竞价推广
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
👨💻4 Matlab代码
💥1 概述
无线传感器网络是不断发展的传感技术之一,也用于执行不同的任务。这些类型的网络在许多领域都是有益的,例如紧急情况,健康监测,环境控制,军事,工业,并且由于无线电范围,这些网络容易受到恶意用户和物理攻击。
📚2 运行结果
主函数部分代码:
% Clean memory and command window clear,clc,close all %% Parameters N = 100; % Number of nodes W = 200; % length of the network L = 200; % width of the network Ei = 2; % Initial energy of each node (joules) CHpl = 3000; % Packet size for cluster head per round (bits) p = 5/100; % desired percentage of cluster heads R = 50; % Range for cluster pMin = 10^-4; % Lowest possible CH_prop num_rounds = 2000; % Max Number of simulated rounds NonCHpl = 200; % Packet size for normal node per round (bits) Tsetup = 4; % average Time in seconds taken in setup phase Tss = 10; % average Time in seconds taken in steady state phase Etrans = 1.0000e-05; % Energy for transmitting one bit Erec = 1.0000e-05; % Energy for receiving one bit Eagg = 1.0000e-07; % Data aggregation energy Efs = 0.3400e-9; % Energy of free space model amplifier % Position of sink SX = W/2; SY = L/2; %% First Leach algorithm %%%%%%%%%%%%%%%%%%%%%%%%%% % 1st row: states of being a CH, 1:never been CH, 0:has been CH % 2nd: x-position, 3rd: y-position net = [ones(1,N);rand([1,N])*W;rand([1,N])*L]; % Preallocation for energy calculations E = Ei*ones(1,N); % Energy left in each node EH = zeros(1,num_rounds); % Preallocation for dead nodes calculations Ecrit = 0; % Critical energy left in node to call it alive Ncrit = fix((95/100)*N); % Critical number for dead nodes to stop simulation Dead = false(1,N); % Status of all nodes 0:Alive 1:Dead DeadH = zeros(1,num_rounds); % Preallocation for Bits sent calculations BitsH = zeros(1,num_rounds); figure('Position',[34 30 792 613]); % Simulating for each round for r=1:num_rounds % iterating on each round%%%% Choosing Clusters heads %%%%[net(1,:),CH] = Leach_algo(net(1,:),Dead,p,r);tmp = find(CH);for i=1:Nif isempty(net(2,CH))else[~,aa]=min(sqrt((net(2,CH) - net(2,i)).^2 + (net(3,CH) - net(3,i)).^2));net(1,i) = tmp(aa);endend%%%% Energy calculations %%%%EH(r) = sum(E); %get all energy left in all nodes% first CHnumClust = length(find(CH));D = sqrt((net(2,CH) - SX).^2 + (net(3,CH) - SY).^2);E(CH) = E(CH) - (((Etrans+Eagg)*CHpl)+(Efs*CHpl*(D.^ 2))+(NonCHpl*Erec*round(N/numClust)));% second rest of nodesrest = N-numClust-sum(double(Dead));mD = zeros(1,rest); tmp = net(2:3,~CH&~Dead);for i=1:rest, mD(i) = fun(tmp(1,i),tmp(2,i),net,CH,SX,SY); endE(~CH&~Dead) = E(~CH&~Dead) - ((NonCHpl*Etrans) + (Efs*CHpl*(mD.^2)) + ((Erec+Eagg)*CHpl));%finally updating alive status to all nodesE(Dead) = 0;Dead(E<=Ecrit) = true ; DeadH(r)=sum(double(Dead));%%%% sent bits %%%%BitsH(r+1) = BitsH(r) + numClust*CHpl + rest*NonCHpl;%%%% Showing updated net %%%%net = DrawNet(net,N,CH,Dead,SX,SY,1);title(['Normal nodes:Black ---- CH:Red ---- Dead:Empty circle --- round (',num2str(r),')']);drawnowif DeadH(r)>=Ncrit,break;end % Stop simulation when 5% or less is alive end close all T_L = (Tsetup+Tss)*(0:r-1); EH = EH(1:r); EHdis_L = (N*Ei)-EH; DeadH = DeadH(1:r); AliveH_L = N-DeadH; BitsH_L = BitsH(2:r+1); %% Second HEED algorithm %%%%%%%%%%%%%%%%%%%%%%% % 1st row: Clustering indexing % 2nd: x-position, 3rd: y-position net = [zeros(1,N);net(2:3,:)]; % calculating costs cost = zeros(1,N); for i=1:NDist = sqrt(((net(2,:)-net(2,i)).^2) + ((net(3,:)-net(3,i)).^2));Snbr = Dist <= R;cost(i) = sum(Dist(Snbr))/(sum(Snbr)-1); end
🎉3 参考文献
[1]陆政. 基于改进蚁群算法的WSN路由研究[D].安徽理工大学,2018.
部分理论引用网络文献,若有侵权联系博主删除。