目录
一、优化算法
智能优化算法及其Matlab实例(第三版)—包子阳等编著
1.1进化算法-遗传算法:GA
关键参数说明
1.群体规模Np,Np太小一般遗传优化性能不会太好,采用较大的群体规模可以减少遗传算法陷入局部最优解的机会,但较大的群体规模意味着计算复杂度较高,一般取10-200
2.交叉概率Pc,控制着交叉操作被使用的频度,较大的交叉概率可以增强遗传算法开辟新的搜索区域的能力,但高性能模式遭到破坏的可能性增大,若交叉概率太低遗传算法搜索可能陷入迟钝状态,一般取0.25-1.00
3.变异概率Pm,变异在遗传算法中属于辅助性的搜索操作,主要目的是保持群体的多样性。一般低频度的变异可防止群体中重要基因的可能丢失,高频度的变异将使遗传算法趋于纯粹的随机搜索,通常取0.001-0.1
4.遗传运算的终止进化代数G,是表示遗传算法运行结束条件的一个参数,它表示遗传算法运行到指定的进化代数之后就停止运行,并将当前群体中的最佳个体作为所求问题的最优解输出,一般取100-1000
1.2进化算法-差分进化算法:DE
1.3改进的差分优化算法:ADE
1.4进化算法-免疫算法:IA
2.1群智能算法-粒子群优化算法:PSO
在粒子群优化算法中,我们利用基本的框架进行搭建,只需修改如下部分相关的参数即可。
输入参数
1.种群数量,例如pop = 80;
2.变量维度,即我们需要优化参数的个数,例如dim = 4;
3.粒子上边界信息,维度为ub=[1,dim],例如ub=[30 15 5 -5];
4.粒子下边界信息,维度为lb=[1,dim],例如lb=[20 5 -5 -20];
5.适应度函数接口fobj,例如fobj = @(x) fun(x);
6.速度的上边界信息,维度为vmax=[1,dim],例如vmax=[2,2,2,2];
7.速度的下边界信息,维度为vmin=[1,dim],例如vmin=[-2,-2,-1,-2];
8.算法的最大迭代次数maxIter,用于控制算法的停止,例如maxIter=400;
输出参数
1.粒子群找到的最优位置Best_Pos
2.最优位置对应的适应度值Best_fitness
3.用于记录每次迭代的最佳适应度,即后续用来绘制迭代曲线IterCure
适应度函数
根据问题的需求编写适应度函数fitness=fun(x),例如
T=out.tol;
Y=out.Y;
T1=YX;
x=T-T1;
fitness = sum(0.5(x’*x));
学习链接: 粒子群优化算法原理