粒子群算法求解路径规划
1.1 路径规划问题描述
给定环境信息,如果该环境内有障碍物,寻求起始点到目标点的最短路径, 并且路径不能与障碍物相交,如图 1.1.1 所示。
1.2 粒子群算法求解
1.2.1 求解思路
粒子群优化算法(PSO),粒子群中的每一个粒子都代表一个问题的可能解, 通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。
在路径规划中,我们将每一条路径规划为一个粒子,每个粒子群群有 n 个粒 子,即有 n 条路径,同时,每个粒子又有 m 个染色体,即中间过渡点的个数,每 个点(染色体)又有两个维度(x,y),在代码中用 posx 和 posy 表示一个种群。 通过每一代的演化,对粒子群进行演化操作,选择合适个体(最优路径)。
(1)编码:浮点数编码,实际位置和速度值。
(2)适应度:为了能够让适应度高的个体保存下来,定义适应度为:
其中 distance 为每个个体(路径)的距离,collision 为碰撞系数,如果 路径与障碍物碰撞则取 0,如果未碰撞则取 0.1。
(3)碰撞检测:为了检测路径是否与障碍物碰撞,首先定义一个函数 iscoll(),用于检测每一段路径是否与障碍物相交,原理如下:传入障碍物边界 的匿名函数和线段的两个端点,在线段上等分取 n 个点,对每个点判断是否落在 障碍物内,至少有一点落在障碍物内则说明路径与障碍物碰撞。再定义一个 iscollison():用于判断每条路径是否与障碍物碰撞,调用 iscoll 函数。
(4)速度更新:
为速度,、为学习因子,、为个体最优位置和全局最优位置, 为当前位置,、为随机数。
(5)位置更新: ,其中为速度, 为位置。
1.2.2 流程图
1.3 实验结果
1.4 结果分析
从粒子群算法得出的规划路径可以看出,最优路径都在 11 点多(这里直接 用绘图单位长度),跟之前的遗传算法比较,最优路径都差不多。但是,比起运 行效率,粒子群算法优于遗传算法。