粒子群算法
python
实现
1
、
概述
粒子群算法作为一种优化算法,在很多领域都有应用。所谓
优化,我的理解是对一个问题求出它足够好的解,目前的优
化算法有很多,如蚁群算法、遗传算法等。粒子群算法相对
于这些算法来说,它更简单,而且有很快的收敛速度。
2
、
算法描述
举一个优化问题的例子,若求的最小值,当然可以通过数学
手段求出当向量时的最小值为
0
,
但是对于更复杂的函数表
达式来说,
运用数学手段求解是复杂的,
而且在实际应用中,
并不一定要求出它的精确解,只要是满足足够精度的精确解
就够了,这时通过一定的优化算法求解就很方便。
粒子群算法思想来源于实际生活中鸟捕食的过程。假设在一
个
n
维的空间中,有一群鸟(
m
只)在捕食,食物位于
n
维
空间的某个点上,对于第
i
只鸟某一时刻来说,有两个向量
描述,
一个是鸟的位置向量,
第二个是鸟的速度
(
i=1,2...m
)
。
假设鸟能够判断一个位置的好坏,所谓“好坏”
,就是离食
物更近了还是更远了。鸟在捕食的过程中会根据自己的经验
以及鸟群中的其他鸟的位置决定自己的速度,根据当前的位
置和速度,可以得到下一刻的位置,这样每只鸟通过向自己
和鸟群学习不断的更新自己的速度位置,最终找到食物,或