1 简介
为了实现WSN覆盖范围的最大化,延长网络寿命,在标准粒子群算法的基础上提出了一种无线传感器网络覆盖优化策略。通过粒子分簇并行搜索,采取碰撞理论使陷入局部最优的粒子迅速跳出,有效地避免了标准粒子群算法容易出现的早熟问题,提高了算法的稳定性。通过仿真实验分析了分簇数和碰撞阈值对覆盖性能指标的影响,仿真实验结果表明,基于碰撞理论的分簇粒子群算法覆盖策略有效地优化了网络的覆盖性能。
随着计算机网络技术的迅速发展,无线传感器网络(WSN)应运而生。无线传感器网络由多个功能相同或不同的终端传感器节点、路由器和协调器通过自建网络互连的方式组成,它们通过无线通信的方式完成目标监测和信息交互。目前,WSN 网络的节点部署方式可以分为确定性节点部署和自组织节点部署,由于在实际应用中,确定性部署方式存在局限性,自组织节点部署方式得到了广泛的应用。对一个 WSN 网络来说,如果能及时检测网络的覆盖率并做有效的调整,能够提高网络中数据的传输质量,减少资源浪费,延长网络生命周期。
2 部分代码
% 清空环境变量
clc
clear
%% 网络参数
L = 50; % 区域边长
V = 35; % 节点个数
Rs = 5; % 感知半径
Rc = 10; % 通信半径
Re = 0.1; % 感知误差
data = 1; % 离散粒度
%% 粒子群参数
maxgen = 300; % 最大迭代次数
N = 50; % 种群规模
dim = 2*V; % 维数
lb = 0; % 下限
ub = L; % 上限
Vmax = 2; % 最大速度
Vmin = -2; % 最小速度
c1 = 2.5; % 社会认知参数
c2 = 2.5; % 自我认知参数
c = 2.5; % 学习因子
w = 1; % 惯性权重
%% 随机生成群体位置、速度和对应的适应度值
X = rand(N, dim).*(ub-lb)+lb; % 初始化位置
V = rand(N, dim).*(Vmax-Vmin)+Vmin; % 初始化速度
for i = 1:N
% 初始化适应度值
fitness(i) = fun(X(i, :), L, Rs, Re, data);
end
%% 传入函数变量
[bestfitness_PSO, gbest_PSO, Curve_PSO] = PSO(X, V, fitness, N, dim, L, Rs, Re, data, maxgen, lb, ub, Vmax, Vmin, w, c1, c2);
[bestfitness_UPSO, gbest_UPSO, Curve_UPSO] = UPSO(X, V, fitness, N, dim, L, Rs, Re, data, maxgen, lb, ub, Vmax, Vmin, w, c);
[bestfitness_CPSO, gbest_CPSO, Curve_CPSO] = CPSO(X, V, fitness, N, dim, L, Rs, Re, data, maxgen, lb, ub, Vmax, Vmin);
%% 绘图比较
figure;
t = 1:maxgen;
plot(t, Curve_PSO, 'bo-', t, Curve_UPSO, 'kx-', t, Curve_CPSO, 'r^-', ...
'linewidth', 1.3, 'MarkerIndices', 1:25:maxgen);
xlabel '迭代次数';
ylabel '网络覆盖率';
legend('PSO', 'UPSO', 'CPSO');
3 仿真结果
4 参考文献
[1]冯智博, 黄宏光, and 李奕. "基于改进粒子群算法的WSN覆盖优化策略." 计算机应用研究 28.4(2011):4.
5 MATLAB代码与数据下载地址
见博客主页