布局优化基于差分进化算法的无线传感器网(WSN)覆盖优化
Posted 博主QQ2449341593
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了布局优化基于差分进化算法的无线传感器网(WSN)覆盖优化相关的知识,希望对你有一定的参考价值。
一、WSN模型
二、差分进化算法
Differential Evolution(DE)是由Storn等人于1995年提出的,和其它演化算法一样,DE是一种模拟生物进化的随机模型,通过反复迭代,使得那些适应环境的个体被保存了下来。但相比于进化算法,DE保留了基于种群的全局搜索策略,采用实数编码、基于差分的简单变异操作和一对一的竞争生存策略,降低了遗传操作的复杂性。同时,DE特有的记忆能力使其可以动态跟踪当前的搜索情况,以调整其搜索策略,具有较强的全局收敛能力和鲁棒性,且不需要借助问题的特征信息,适于求解一些利用常规的数学规划方法所无法求解的复杂环境中的优化问题。目前,DE已经在许多领域得到了应用,譬如人工神经元网络、化工、电力、机械设计、机器人、信号处理、生物信息、经济学、现代农业、食品安全、环境保护和运筹学等。
DE 算法主要用于求解连续变量的全局优化问题,其主要工作步骤与其他进化算法基本一致,主要包括变异(Mutation)、交叉(Crossover)、选择(Selection)三种操作。算法的基本思想是从某一随机产生的初始群体开始,利用从种群中随机选取的两个个体的差向量作为第三个个体的随机变化源,将差向量加权后按照一定的规则与第三个个体求和而产生变异个体,该操作称为变异。然后,变异个体与某个预先决定的目标个体进行参数混合,生成试验个体,这一过程称之为交叉。如果试验个体的适应度值优于目标个体的适应度值,则在下一代中试验个体取代目标个体,否则目标个体仍保存下来,该操作称为选择。在每一代的进化过程中,每一个体矢量作为目标个体一次,算法通过不断地迭代计算,保留优良个体,淘汰劣质个体,引导搜索过程向全局最优解逼近。
算法图解:
算法伪代码:
三、代码
function demo2
%DEMO2 Demo for usage of DIFFERENTIALEVOLUTION.
\\
%
% See also DIFFERENTIALEVOLUTION, FOXHOLES.
% Set title
optimInfo.title = 'Demo 2 (Shekel''s Foxholes)';
% Specify objective function
objFctHandle = @foxholes;
% Define parameter names, ranges, quantizations and initial values:
% Here: single vector-valued parameter with no name, as function foxholes is
% called with a parameter vector as only input
paramDefCell1 = {'', [-25 65; -65 65], [0; 0], [0; 0]};
paramDefCell2 = {'', [-65 65; -65 65], [0; 0], [0; 0]};
% Note: paramDefCell1 is used in first optimization run, paramDefCell2
% in continuation using a saved result file. Paraemter range paramDefCell1
% does not contain the optimum parameter set!
% No additional function parameters needed
objFctSettings = {};
% No parameter vector needed
objFctParams = [];
% Get default DE parameters
DEParams = getdefaultparams;
% Set number of population members (often 10*D is suggested; here we use
% more as we know that the Foxholes functions has many local minima).
DEParams.NP = 50;
% Do not use slave processes here. If you want to, set feedSlaveProc to 1 and
% run startmulticoreslave.m in at least one additional Matlab session.
DEParams.feedSlaveProc = 0;
% Set times
DEParams.maxiter = 20;
DEParams.maxtime = 30; % in seconds
DEParams.maxclock = [];
% Set display options
DEParams.infoIterations = 1;
DEParams.infoPeriod = 10; % in seconds
% Do not send E-mails
emailParams = [];
% Set random state in order to always use the same population members here
setrandomseed(1);
% Start differential evolution
[bestmem, bestval, bestFctParams, nrOfIterations, resultFileName] = differentialevolution(...
DEParams, paramDefCell1, objFctHandle, objFctSettings, objFctParams, emailParams, optimInfo); %#ok
disp(' ');
disp('Best parameter set returned by function differentialevolution:');
disp(bestmem);
% Continue optimization by loading result file
if DEParams.saveHistory
disp(' ');
disp(textwrap2(sprintf(...
'Now continuing optimization by loading result file %s.', resultFileName)));
disp(' ');
DEParams.maxiter = 200;
DEParams.maxtime = 90; % in seconds
[bestmem, bestval, bestFctParams] = differentialevolution(...
DEParams, paramDefCell2, objFctHandle, objFctSettings, objFctParams, emailParams, optimInfo, ...
resultFileName); %#ok
disp(' ');
disp('Best parameter set returned by function differentialevolution:');
disp(bestFctParams);
end
四、参考文献
以上是关于布局优化基于差分进化算法的无线传感器网(WSN)覆盖优化的主要内容,如果未能解决你的问题,请参考以下文章
布局优化基于遗传算法的的无线传感器网(WSN)覆盖优化Matlab源码
布局优化基于遗传算法的的无线传感器网(WSN)覆盖优化Matlab源码
布局优化基于人工蜂群算法的无线传感器网(WSN)覆盖优化matlab源码
布局优化基于人工蜂群算法的无线传感器网(WSN)覆盖优化matlab源码