粒子群算法求解路径规划

1.1 路径规划问题描述

    给定环境信息,如果该环境内有障碍物,寻求起始点到目标点的最短路径, 并且路径不能与障碍物相交,如图 1.1.1 所示。

粒子群算法路径规划python 粒子群算法01规划_人工智能

1.2 粒子群算法求解
1.2.1 求解思路

    粒子群优化算法(PSO),粒子群中的每一个粒子都代表一个问题的可能解, 通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。
    在路径规划中,我们将每一条路径规划为一个粒子,每个粒子群群有 n 个粒 子,即有 n 条路径,同时,每个粒子又有 m 个染色体,即中间过渡点的个数,每 个点(染色体)又有两个维度(x,y),在代码中用 posx 和 posy 表示一个种群。 通过每一代的演化,对粒子群进行演化操作,选择合适个体(最优路径)。
(1)编码:浮点数编码,实际位置和速度值。
(2)适应度:为了能够让适应度高的个体保存下来,定义适应度为:

粒子群算法路径规划python 粒子群算法01规划_路径规划_02

    其中 distance 为每个个体(路径)的距离,collision 为碰撞系数,如果 路径与障碍物碰撞则取 0,如果未碰撞则取 0.1。
(3)碰撞检测:为了检测路径是否与障碍物碰撞,首先定义一个函数 iscoll(),用于检测每一段路径是否与障碍物相交,原理如下:传入障碍物边界 的匿名函数和线段的两个端点,在线段上等分取 n 个点,对每个点判断是否落在 障碍物内,至少有一点落在障碍物内则说明路径与障碍物碰撞。再定义一个 iscollison():用于判断每条路径是否与障碍物碰撞,调用 iscoll 函数。
(4)速度更新:

粒子群算法路径规划python 粒子群算法01规划_人工智能_03

粒子群算法路径规划python 粒子群算法01规划_粒子群_04 为速度,粒子群算法路径规划python 粒子群算法01规划_粒子群算法路径规划python_05粒子群算法路径规划python 粒子群算法01规划_粒子群算法路径规划python_06为学习因子,粒子群算法路径规划python 粒子群算法01规划_人工智能_07粒子群算法路径规划python 粒子群算法01规划_路径规划_08为个体最优位置和全局最优位置,粒子群算法路径规划python 粒子群算法01规划_粒子群算法路径规划python_09 为当前位置,粒子群算法路径规划python 粒子群算法01规划_路径规划_10粒子群算法路径规划python 粒子群算法01规划_matlab_11为随机数。
(5)位置更新: 粒子群算法路径规划python 粒子群算法01规划_人工智能_12 ,其中粒子群算法路径规划python 粒子群算法01规划_粒子群_04为速度, 粒子群算法路径规划python 粒子群算法01规划_粒子群算法路径规划python_09为位置。

1.2.2 流程图

粒子群算法路径规划python 粒子群算法01规划_粒子群算法路径规划python_15

1.3 实验结果

粒子群算法路径规划python 粒子群算法01规划_matlab_16


粒子群算法路径规划python 粒子群算法01规划_matlab_17

1.4 结果分析

从粒子群算法得出的规划路径可以看出,最优路径都在 11 点多(这里直接 用绘图单位长度),跟之前的遗传算法比较,最优路径都差不多。但是,比起运 行效率,粒子群算法优于遗传算法。