问题
案例实现
- 如果需要优化其他问题,只需要调整下fit_fun即可
- 也可以去调整PSO参数。
PSO参数具体如下:
- dim:粒子的维度(变量个数)。
- size:粒子个数m(种群大小)。m很小很容易陷入局部最优,m很大,pso的优化能力很好,当种群数目增长至一定水平时,再增长将不再有显著的作用。
- x_max:变量x最大值
- iter_num:迭代次数
- max_vel:粒子最大速度。速度限制的作用为:维护算法的探索能力。较大时,探索能力强,但是粒子容易飞过最优解与开发能力的平衡;较小时,开发能力强,但是容易陷入局部最优解。一般设定为每维变量变化范围的10%~20%。
- tol:截至条件
权重因子如下三个,何调整这三个参数使算法避免早熟又可以比较快的收敛,对于解决实际问题意义较大:
- w:权重因子。 a. 惯性因子w=1表示基本的粒子群算法,w=0表示失去对粒子本身的速度记忆。
- C1 = 0,无私型粒子群算法,“只有社会,没有自我”但是易迅速丧失群体多样性,易陷于局优而无法跳出。
- C2 = 0,自我认知型粒子群算法,“只有自我,没有社会”,完全没有信息的社会共享导致算法收