《MATLAB 仿真与科学计算》作业
等
[1]
的
提出了一种新的、基于集合的求解离散优化问题的粒子群算法。文中
以两种著名的组合优化问题——旅行商问题与背包问题
为例,证明了所提出的粒子群算法的优势。
按照文中所介绍的步骤,使用编写了粒子群算法用于求解,并利用所提出
的粒子群算法计算了一个算例进行验证。
、基于集合的粒子群算法介绍
粒子群算法是针对在连续空间上的优化问题所提出的,而本文提出的基于集合的粒子群
算法是用于处理离散的优化问题的。对于
的表示如图所示。图表示的是一个由 个点组成的 , 指的是全集,在 中指
的是所有可能被连起来的边。有四个维度,以
来表示,分别代表从 四
个点出发的边。 指的是一个满足约束的可行解, 也是一个集合,包含四个维度
,
与 相同。
图的表示
中粒子的速度更新公式如下:
指的是第 个粒子在第 个维度上的速度,
是第 个粒子在第 个维度上的位置,
是第 个粒子在第 个维度上找到过的最优的解,
是整个粒子群在第 个维度上找到
过的最优的解也可以不在整个粒子群中搜索,只在某个特定邻域内搜索。显然,速度更新
公式与连续空间的 中粒子的速度更新公式形式一样,但是速度、位置和算术运算的
公式被重新定义了。
位置:粒子的位置指的是一个问题的可行解,是一个集合
,表示第 个粒子,
,
。同理,
。
速度:粒子的速度被定义为一个带有概率值的集合
,表示第 个粒子,
。
系数速度:即系数与速度的概率值相乘,当乘积大于 时就取 。
如
其他
位置位置:即属于前一个位置但不属于后一个位置的元素。
且
系数位置位置:目的是将一个集合变为带有概率的集合,即变为粒子的速度的形
式。
指位置位置后形成的集合。