粒子群算法
作者:互联网
启发式算法
定义:在可接受的花费下,给出待解决的优化问题的一个可行解。
可接受花费:如规定时间内。
优化问题:约束条件下中,函数的最值!
可行解:不一定是最优解,可接受即可。
常见启发式算法:粒子群、模拟退火、遗传算法等
一个简单的优化问题:找函数的最值点
基本思想①盲目搜索②启发式搜索
盲目搜索
① 枚举法
尽可能划分更小的解空间x值,离散化,对比
②蒙特卡洛模拟
随机取N个点,选择最大值。只要时间够多,一定可以无限趋近最优解
无论哪一种,当变量增多,时间复杂度指数增长。
启发式搜索
①爬山法
随机选择一个点,判断左一步步长和右一步步长函数值,最终可以找到一个局部最优解
反复迭代,最终可得最值点
启发式搜索中,其中每一次迭代都需要根据上一步的结果,类似动态规划。
粒子群算法
背景
根据鸟群个体信息共享,从无序到有序,获得问题可行解
思想
假设:①所有鸟都不知道食物位置(不清楚问题最优解)②它们知道自己离食物有多远③鸟群知道距离食物最近的鸟是谁
每个鸟在知道自己最佳位置的同时,受到绿色小鸟的信息共享,惯性,最终会把合力作为运动的矢量。
可得x(d)和v(d)的递推式。
术语解释
粒子就是不断飞行的鸟,x1到x10就是说有10只鸟,每个xi代表一个个体
其中pbest和gbest就是自己最好和群体最好,鸟群图中的参数位置
w惯性指数的改进
线性
自适应
与迭代次数以及例子适应度有关
随机惯性权重
线性递减改进,在前期缺少局部,后期缺少全局,因此改进之后产生了随机惯性权重
思想就是把w变成随机数
压缩因子法
仅乘了压缩因子,控制了c1,c2 的差异
非对称学习因子
思想是让个体学习因子c1和群体学习因子c2变动
就是线性递减&线性递增的关系
拓展
那么粒子群可不可以解决非线性约束?如 x1+x2=1
可以。我们只需保证初始例子,以及更新例子满足约束即可,不满足的直接丢弃
标签:粒子,因子,算法,搜索,启发式,最值 来源: https://blog.csdn.net/qq_44698709/article/details/123614253