«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (11): 314-320  DOI: 10.19678/j.issn.1000-3428.0062896
0

引用本文  

高万博, 朱俊武, 章永龙, 等. 基于选择交叉烟花算法的无人车路径规划[J]. 计算机工程, 2022, 48(11), 314-320. DOI: 10.19678/j.issn.1000-3428.0062896.
GAO Wanbo, ZHU Junwu, ZHANG Yonglong, et al. Unmanned Vehicle Path Planning Based on Selection Crossover Fireworks Algorithm[J]. Computer Engineering, 2022, 48(11), 314-320. DOI: 10.19678/j.issn.1000-3428.0062896.

基金项目

国家自然科学基金面上项目“支持消费转移的云资源分配与定价机制研究”(61872313)

作者简介

高万博(1996—), 男, 硕士研究生, 主研方向为人工智能路径规划技术、智能算法;
朱俊武, 教授、博士、博士生导师;
章永龙, 讲师、博士;
章小卫, 讲师、博士

文章历史

收稿日期:2021-10-13
修回日期:2021-12-31
基于选择交叉烟花算法的无人车路径规划
高万博 , 朱俊武 , 章永龙 , 章小卫     
扬州大学 信息工程学院, 江苏 扬州 225000
摘要:在三维地形环境下,基本烟花算法进行路径规划时易陷入局部最优解且存在收敛速度慢的问题,为此,提出选择交叉烟花算法。利用栅格法构建三维地形环境并设置威胁区域,使无人车选择合适的节点进行路径探索,结合燃耗代价、平滑代价和威胁代价构建适应度函数,以约束路径节点的生成位置,确保规划出的路径平滑且远离威胁区域。通过基本烟花算法的爆炸、变异、映射和选择操作进行路径搜索,同时加入针对路径节点的轮盘选择操作,使偏离原始路径较远的节点具有更高的爆炸概率,以约束路径的搜索方向,从而加快算法的搜索速度。在此基础上,引入选择交叉火花,通过对轮盘选择后节点间的路径片段进行交叉,以增强种群中烟花之间信息的交互性,提高搜索全局最优解的性能。仿真结果表明,相比基本烟花算法,该算法在简单和复杂地形环境下的适应度值平均提高6%,且运行时间平均缩短13.5%。在各类地形环境下,无人车通过该算法能有效规避威胁区域,并在较短时间内寻找到更加平滑且燃耗更低的路径。
关键词无人车    路径规划    三维环境    烟花算法    选择交叉火花    
Unmanned Vehicle Path Planning Based on Selection Crossover Fireworks Algorithm
GAO Wanbo , ZHU Junwu , ZHANG Yonglong , ZHANG Xiaowei     
College of Information Engineering, Yangzhou University, Yangzhou, Jiangsu 225000, China
Abstract: In the three-dimensional terrain environment, the basic fireworks algorithm is easy to fall into the optimal solution and has the problem of slow convergence when path planning.A selection crossover fireworks algorithm is proposed.The grid method is used to build a three-dimensional terrain environment and set a threat area such that an unmanned vehicle can select appropriate nodes to explore the path.The fitness function is derived in combination with the fuel costs, smooth costs, and threat costs to restrict the generation position of the path nodes and ensure that the planned road path is smooth and far from the threat area.A path search is conducted via the explosion, mutation, mapping, and selection operations of the basic fireworks algorithm.In addition, the roulette selection operation for the path nodes is added such that the nodes farther from the original path have a higher explosion probability to restrict the search direction of the path, thereby speeding up the search speed of the algorithm.Based on this, a selection crossover spark is introduced to enhance the information interaction between fireworks in the population and improve the performance of searching the global optimal solution by crossing the path segments between nodes after wheel selection.The simulation results show that compared with the basic fireworks algorithm, the fitness of the proposed algorithm in the simple and complex terrain environments improves by 6% on average, and the running time shortens by 13.5% on average.In various terrain environments, the unmanned vehicle can successfully evade the threat area using the proposed algorithm and find a smoother path with lower fuel cost within a relatively short time.
Key words: unmanned vehicle    path planning    three-dimensional environment    fireworks algorithm    selection crossover spark    

开放科学(资源服务)标志码(OSID):

0 概述

移动机器人路径规划是机器人研究领域中的重要分支,无人车是一种可以远程控制与自主导航的移动机器人。无人车路径规划问题[1]是指无人车在给定环境下,寻找一条满足一定约束条件的无碰撞路径[2]。目前,群智能算法是解决移动机器人路径规划问题的主要方法[3],通过迭代生成新的可行解,在搜索空间中不断探索与改进,最终寻找到满足约束条件的最佳可行解。群智能算法主要包括粒子群算法[4]、蚁群算法[5]、遗传算法[6]、烟花算法[7]等。

文献[8]提出一种新型启发式算法,称为烟花算法,其具有随机性、局部性、爆发性、隐式并行性、多样性、瞬时性等特点,通过烟花在空中爆炸产生火花的过程来模拟算法在搜索空间中求解问题的过程,具有较优的优化求解能力。

在路径规划问题中,因算法搜索空间较大,规划环境较复杂,导致烟花算法难以寻找到全局最优路径,甚至寻找到的路径会穿越障碍物。针对上述问题,研究人员对烟花算法进行改进。文献[9]结合烟花算法与蚁群算法提出一种混合算法,用于解决智能移动体避障的问题,通过加入先锋火花操作提高搜索效率,并使用蚁群算法来实现避障的目的。文献[10]在基本烟花算法的基础上增加量子行为作为新的爆炸策略,使得烟花算法对全局和局部最优解都具有较优的搜索能力。文献[11]通过可视图法构建士兵视觉场景,利用插入和删除节点操作解决路径不连续的问题。一些研究人员采用基于深度学习的方法来解决该类问题。文献[12]对卷积神经网络进行训练,构建图像与动作的映射关系,实现移动机器人路径规划。文献[13-15]将图像作为唯一输入,训练强化学习网络实现移动机器人在未知环境下自主完成避障和区域覆盖的任务。文献[16]通过改进的深度Q网络(DQN)训练多个机器人进行路径规划,以完成无人仓库调度任务。文献[17]通过深度强化学习模型学习改进启发式方法,从而解决旅行商问题。文献[18-20]通过改进的深度强化学习模型解决车辆路径优化及其变体问题。

基本烟花算法在三维地形环境下进行路径规划时,因部分路径节点经过爆炸操作会远离原始路径且种群的路径片段间缺乏信息交互,导致收敛速度和探索最优解的能力降低。针对上述问题,本文提出选择交叉烟花算法。通过路径节点的轮盘选择操作,根据路径节点的适应度函数进行轮盘赌,以解决部分路径节点偏离轨迹的问题。借鉴遗传算法中的交叉变异操作,引入选择交叉变异操作,将筛选出的路径片段与其他路径片段进行交换,从而提高烟花之间的信息交互性。

1 问题描述 1.1 地形环境

无人车根据全局三维地形环境[21]建立三维空间直角坐标系O-xyz,沿x轴、y轴将空间分割为m×n个栅格,将栅格地形环境的最大高度值z作为该栅格的内容值。通过该方式将地形环境表示为$ {z}_{i}=\mathrm{M}\mathrm{a}\mathrm{p}\left({x}_{i}, {y}_{i}\right) $的栅格矩阵,其中$ {x}_{i}\mathrm{、}{y}_{i} $表示栅格矩阵的行列坐标位置,$ {z}_{i} $表示栅格值,即此栅格所在区域的地形高度。在地图中的威胁区域主要是指无人车不能进入的区域,如沼泽、湖泊等,由一个矩阵G表示,如式(1)所示:

$ \boldsymbol{G}=\left[\begin{array}{ccc}{D}_{{x}_{1}}& {D}_{{y}_{1}}& {R}_{1}\\ {D}_{{x}_{2}}& {D}_{{y}_{2}}& {R}_{2}\\ ⋮& ⋮& ⋮\\ {D}_{{x}_{n}}& {D}_{{y}_{n}}& {R}_{n}\end{array}\right] $ (1)

假定威胁区域为圆形区域,其中$ {D}_{{x}_{n}} $$ {D}_{{y}_{n}} $表示第$ n $个威胁区域的圆心坐标,$ {R}_{n} $表示圆形的半径。含威胁区域的三维地形空间的栅格矩阵如图 1所示。

Download:
图 1 栅格法构建的地形矩阵 Fig. 1 Terrain matrix constructed by grid method
1.2 适应度函数

本文从燃耗代价、威胁代价和平滑代价3个角度衡量路径优劣,适应度函数如式(2)所示:

$ {f}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}={w}_{1}{C}_{f}+{w}_{2}{C}_{d}+{w}_{3}{C}_{s} $ (2)

其中:$ {w}_{1}\mathrm{、}{w}_{2}\mathrm{、}{w}_{3} $为平衡各指标的权重系数,且$ \sum \limits_{i=1}^{3}{w}_{i}=1 $$ {C}_{f} $为无人车行驶时产生的路程燃耗代价;$ {C}_{d} $为无人车经过威胁区域时产生的威胁代价;$ {C}_{s} $为无人车转弯行驶时产生的转角平滑代价。

1.2.1 燃耗代价

为对比无人车在上坡下坡时的燃耗代价,本文引入了可变系数$ \widehat{{M}_{f}} $,路径节点$ {X}_{i} $的燃耗代价如式(3)和式(4)所示:

$ \begin{array}{l}{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_f}\left({X}_{i}\right)=\\ \sqrt{{\left({{x}_{}}_{i}-{x}_{i-1}\right)}^{2}+{\left({y}_{i}-{y}_{i-1}\right)}^{2}+\widehat{{M}_{f}}{\left({z}_{i}-{z}_{i-1}\right)}^{2}}\end{array} $ (3)
$ \widehat{{M}_{f}}=\left\{\begin{array}{l}{k}_{h}({z}_{i}-{z}_{i-1}), {z}_{i-1} < {z}_{i}\\ 1, {z}_{i-1}={z}_{i}\\ {k}_{l}({z}_{i-1}-{z}_{i}), {z}_{i-1} > {z}_{i}\end{array}\right. $ (4)

其中:$ {k}_{l} < 1 < {k}_{h} $$ {X}_{i}=\left({x}_{i}, {y}_{j}, {z}_{i, j}\right) $表示$ {x}_{i} $$ {y}_{j} $行,值为$ {z}_{i, j} $的栅格块。

路径的燃耗代价为各路径节点燃耗代价之和,如式(5)所示:

$ {C}_{f}=\sum \limits_{k=2}^{n-1}{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_f}{\left({X}_{k}\right)}^{} $ (5)
1.2.2 威胁代价

无人车规划的路径需远离威胁区域,保证路径的安全性。路径点的威胁代价通过路径点与威胁区域的圆心距离来描述,距离越远则路径点越安全。路径点$ {X}_{i} $的威胁代价如式(6)所示:

$ {C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_d}\left({X}_{i}\right)={\mathrm{e}}^{R-‖{X}_{i}-{Y}_{m}‖} $ (6)

其中:$ R $为威胁区域的半径;$ {Y}_{m}=\left({D}_{{x}_{m}}, {D}_{{y}_{m}}, {D}_{{z}_{m}}\right) $为威胁区域中心点的坐标和高度值。当路径节点的距离小于最小威胁区域半径时,$ {C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_d} $大于1,则该点不符合构成路径的要求。

威胁区域信息表示如图 2所示。

Download:
图 2 威胁区域坐标图 Fig. 2 Coordinate diagram of the threat region

路径节点ABC距圆心的长度分别为$ {d}_{1}\mathrm{、}{d}_{2}\mathrm{、}{d}_{3} $,其中$ {d}_{1} < R < {d}_{2} < {d}_{3} $,因此$ {C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_d}\left(A\right) < 1 < {C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_d}\left(B\right) < {C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_d}\left(C\right) $。路径节点A不符合路径构成要求将被舍弃,节点C的威胁代价比节点B更低。

路径的威胁代价为各路径节点威胁代价之和,如式(7)所示:

$ {C}_{d}=\sum \limits_{k=2}^{n-1}{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_d}\left({X}_{k}\right) $ (7)
1.2.3 平滑代价

无人车需满足自身的动力学要求,避免转弯时角度太小。路径点平滑代价用路径点与其前后节点形成的夹角来描述。夹角越小,无人车的转角越大,路径越不平滑。路径节点$ {X}_{i} $的平滑代价如式(8)所示:

$ {C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_s}\left({X}_{i}\right)={\mathrm{e}}^{\alpha -{\theta }_{i}}\text{,}0 < {\theta }_{i}\le \pi $ (8)

其中:$ \alpha $为无人车的最小转角;$ {\theta }_{i} $为行驶过程中路径节点$ {X}_{i} $的夹角。当$ {\theta }_{i} $小于无人车的最小转角$ \alpha $时,$ {C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_s} $大于1,则该路径节点不符合路径构成要求,应当舍去。平滑代价信息表示如图 3所示,无人车沿着$ \mathrm{\angle }OAB $方向进行转角,最小转角角度为$ \mathrm{\angle }OA{A}^{\text{'}} $$ \alpha $。路径节点$ A $的夹角$ \theta $大于最小转角$ \alpha $,则保留该节点。

Download:
图 3 平滑代价坐标图 Fig. 3 Coordinate diagram of the smooth cost

路径的平滑代价为各路径节点的平滑代价之和,如式(9)所示:

$ {C}_{s}=\sum \limits_{k=2}^{n-1}{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_s}{\left({X}_{k}\right)}^{} $ (9)
2 基本烟花算法

基本烟花算法将烟花看作空间中的一个解,通过对烟花进行爆炸操作,选择不同的火花对邻域进行搜索。其基本原理是烟花对应的适应度值越小,则该烟花爆炸产生的火花数量越多,爆炸幅度越小;相反,若烟花对应的适应度值越大,则该烟花爆炸产生的火花数量越少,且爆炸幅度越大。

在基本烟花算法中,第$ i $个烟花的爆炸强度如式(10)所示:

$ {S}_{i}=\widehat{S}\frac{{f}_{\mathrm{m}\mathrm{a}\mathrm{x}}-f\left({p}_{i}\right)+ \varepsilon }{\sum \limits_{i=1}^{k}\left({f}_{\mathrm{m}\mathrm{a}\mathrm{x}}-f\left({p}_{i}\right)\right)+ \varepsilon } $ (10)

其中:$ \widehat{S} $表示控制烟花爆炸数量的常数;$ f\left({p}_{i}\right) $表示第$ i $个烟花的适应度值;$ {f}_{\mathrm{m}\mathrm{a}\mathrm{x}} $表示当前种群中的最大适应度值;$ k $表示当前烟花种群中的烟花个数;$ \varepsilon $表示防止分母为0的极小常数;$ p=({X}_{1}, {X}_{2}, \cdots , {X}_{n}) $表示无人车行驶的一条路径,即一个烟花。

$ i $个烟花的爆炸幅度如式(11)所示:

$ {A}_{i}=\widehat{A}\frac{f\left({p}_{i}\right)-{f}_{\mathrm{m}\mathrm{i}\mathrm{n}}+ \varepsilon }{\sum \limits_{i=1}^{5}\left(f\left({p}_{i}\right)-{f}_{\mathrm{m}\mathrm{i}\mathrm{n}}\right)+ \varepsilon } $ (11)

其中:$ {f}_{\mathrm{m}\mathrm{i}\mathrm{n}} $为当前种群中的最小适应度值;$ \widehat{A} $为控制烟花爆炸幅度的常数。

为了增加种群中烟花的多样性,基本烟花算法随机选择j个维度对烟花进行高斯变异,如式(12)所示:

$ {X}_{j}={X}_{j}\times g, j=\mathrm{2, 3}, \cdots , n-1 $ (12)

其中:$ g $表示均值为1、方差为1且满足高斯分布的随机数。

在烟花爆炸后产生的变异火花和爆炸火花可能会超出可行域范围,根据映射规则重新映射回可行域内,如式(13)所示:

$ {X}_{i, m}^{k}={B}_{d}^{k}+\left|{X}_{i, m}^{k}\right|\mathrm{\%}\left({B}_{u}^{k}-{B}_{d}^{k}\right), k=\mathrm{1, 2} $ (13)

其中:$ {B}_{u}^{k} $为三维地形环境中第$ k $维的上边界;$ {B}_{d}^{k} $为三维地形环境中第$ k $维的下边界;$ {X}_{i, m}^{k} $为第$ i $号烟花的第m个路径节点在第$ k $维的位置。

烟花算法通过选择操作对产生的新火花进行筛选,并选择部分火花作为下一代烟花,如式(14)和式(15)所示:

$ \mathrm{P}\mathrm{r}\left({p}_{i}\right)=\frac{R\left({p}_{i}\right)}{\sum\limits _{j=1}^{K}R\left({p}_{j}\right)} $ (14)
$ R\left({x}_{i}\right)=\sum \limits_{j=1}^{K}\Vert {p}_{j}-{p}_{i}\Vert $ (15)

其中:$ R\left({p}_{i}\right) $为火花$ {p}_{i} $与其他火花之间的距离求和;K为当前种群中所有火花的个数;$ \mathrm{P}\mathrm{r}\left({p}_{i}\right) $为烟花$ {p}_{i} $被选中的概率。

3 本文算法 3.1 轮盘选择操作

本文通过分析基本烟花算法迭代生成的路径,发现路径中可能存在部分路径节点偏离轨迹的问题。烟花算法的爆炸操作示意图如图 4所示。

Download:
图 4 烟花算法爆炸操作示意图 Fig. 4 Schematic diagram of explosion operation of fireworks algotithm

路径节点$ {X}_{i}^{} $$ {X}_{j}^{} $的适应度值远大于路径中的其他节点。因此,本文提出针对路径节点的轮盘选择操作,提升具有高适应度值的路径节点被选择并进行变异的概率。图 4$ {X}_{i}^{\mathrm{\text{'}}} $$ {X}_{j}^{\mathrm{\text{'}}} $为经过轮盘选择后再变异操作得到的新路径节点。本文轮盘选择操作分为以下3个步骤:

1)计算路径节点$ {X}_{i} $的适应度值,如式(16)所示:

$ \begin{array}{l}{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}}\left({X}_{i}\right)=\\ {\varpi }_{1}{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_f}\left({X}_{i}\right)+{\varpi }_{2}{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_d}\left({X}_{i}\right)+{\varpi }_{3}{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}\_s}\left({X}_{i}\right)\end{array} $ (16)

2)通过轮盘赌[22]的方法对需要爆炸的节点进行选择,路径节点$ {X}_{i} $被选择进行爆炸的概率如式(17)所示:

$ P\left(i\right)=\frac{{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}}\left({X}_{i}\right)}{\sum \limits_{i=2}^{n-1}{C}_{\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}}\left({X}_{i}\right)} $
$ Q\left(i\right)=\sum \limits_{j=2}^{i}P\left(j\right), i=\mathrm{2, 3}, \cdots , n-1 $
$ \mathrm{s}\mathrm{e}\mathrm{l}\mathrm{e}\mathrm{c}\mathrm{t}\left(k\right)={X}_{i}, Q\left(i\right)\le \mathrm{r}\mathrm{a}\mathrm{n}\mathrm{d}\left(\mathrm{0, 1}\right)\le Q\left(i+1\right) $ (17)

其中:$ Q\left(i\right) $$ P\left(i\right) $的累计概率;$ \mathrm{s}\mathrm{e}\mathrm{l}\mathrm{e}\mathrm{c}\mathrm{t}\left(k\right) $为用于保存$ k $个被选中的路径维度;$ \mathrm{r}\mathrm{a}\mathrm{n}\mathrm{d} $为生成均匀分布的0~1随机数,若$ \mathrm{r}\mathrm{a}\mathrm{n}\mathrm{d} $$ \left[Q\left(i\right), Q\left(i+1\right)\right] $区间内,则将$ i $存入$ \mathrm{s}\mathrm{e}\mathrm{l}\mathrm{e}\mathrm{c}\mathrm{t} $中。

3)对被选择的路径节点进行位移操作,如式(18)所示:

$ \mathrm{\Delta }{x}_{i}^{\mathrm{s}\mathrm{e}\mathrm{l}\mathrm{e}\mathrm{c}\mathrm{t}\left(j\right)}={x}_{i}^{\mathrm{s}\mathrm{e}\mathrm{l}\mathrm{e}\mathrm{c}\mathrm{t}\left(j\right)}+\mathrm{r}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{d}\left({A}_{i}\times \mathrm{r}\mathrm{a}\mathrm{n}\mathrm{d}(-\mathrm{1, 1})\right) $ (18)

因此,本文通过爆炸位移使路径节点在爆炸幅度内进行一次位置变化。

3.2 选择交叉变异

基本烟花算法通过高斯变异和爆炸操作对烟花的节点进行单点变异,并未考虑烟花之间路径片段的交互变异。例如,在一次迭代过程中,一个烟花$ {P}_{i}=\left({p}_{1}^{i}, {p}_{2}^{i}, \cdots , {p}_{n}^{i}\right) $,会在某一段路径片段中出现较高的适应度值,假设为$ P\text{'}=\left({p}_{k}^{i}, {p}_{k+1}^{i}, \cdots , {p}_{k+m}^{i}\right) $,而单一路径节点的变异方式并不能显著提高烟花适应度值。

本文借鉴遗传算法中的交叉变异因子[23]思想,提出选择交叉变异,并将其作为新的火花变异方式,通过3.1节轮盘选择的方式选择其中两个节点作为路径片段,并将其与另一个烟花之间的路径片段进行交换,通过该方式增大最优解出现的概率[24],以加强种群中烟花之间的信息交互。随机选择的两个父代烟花$ \mathrm{p}\mathrm{a}{\mathrm{r}}_{1} $$ \mathrm{p}\mathrm{a}{\mathrm{r}}_{2} $通过轮盘选择操作产生路径节点,对选中的路径节点进行路径片段交叉,以得到选择交叉火花$ \mathrm{c}\mathrm{h}\mathrm{i}\mathrm{l}{\mathrm{d}}_{1} $$ \mathrm{c}\mathrm{h}\mathrm{i}\mathrm{l}{\mathrm{d}}_{2} $,如式(19)所示:

$ \begin{array}{l}\mathrm{p}\mathrm{a}{\mathrm{r}}_{1}=[{X}_{1}, {X}_{2}, {X}_{k}^{s}, \cdots , {X}_{m}^{s}, {X}_{n}]\\ \mathrm{p}\mathrm{a}{\mathrm{r}}_{2}=[{X}_{1}^{\mathrm{\text{'}}}, {X}_{2}^{\mathrm{\text{'}}}, {X}_{k}^{\mathrm{\text{'}}s}, \cdots , {X}_{m}^{\mathrm{\text{'}}s}, {X}_{n}^{\mathrm{\text{'}}}]\end{array} $
$ \begin{array}{l}\mathrm{c}\mathrm{h}\mathrm{i}\mathrm{l}{\mathrm{d}}_{1}=[{X}_{1}, {X}_{2}, {X}_{k}^{\mathrm{\text{'}}s}, \cdots , {X}_{m}^{\mathrm{\text{'}}s}, {X}_{n}]\\ \mathrm{c}\mathrm{h}\mathrm{i}\mathrm{l}{\mathrm{d}}_{2}=[{X}_{1}^{\mathrm{\text{'}}}, {X}_{2}^{\mathrm{\text{'}}}, {X}_{k}^{s}, \cdots , {X}_{m}^{s}, {X}_{n}^{\mathrm{\text{'}}}]\end{array} $ (19)

选择交叉火花的产生流程如图 5所示,对$ \mathrm{p}\mathrm{a}{\mathrm{r}}_{1} $$ \mathrm{p}\mathrm{a}{\mathrm{r}}_{2} $中被轮盘选择操作选中的路径片段$ {p}_{1}=({X}_{k}^{s}, {X}_{k+1}^{s}, \cdots , {X}_{m}^{s}) $$ {p}_{2}=({X\text{'}}_{k}^{s}, {X\text{'}}_{k+1}^{s}, \cdots , {X\text{'}}_{m}^{s}) $进行选择交叉变异,产生选择交叉火花$ \mathrm{c}\mathrm{h}\mathrm{i}\mathrm{l}{\mathrm{d}}_{1}\mathrm{、}\mathrm{c}\mathrm{h}\mathrm{i}\mathrm{l}{\mathrm{d}}_{2} $

Download:
图 5 选择交叉火花的产生流程 Fig. 5 Generation procedure of selection crossover spark
3.3 算法流程

选择交叉烟花算法的具体流程如算法1所示。

算法1   选择交叉烟花算法(SC-FWA)

输入   地形Map,威胁区域矩阵G,最大迭代次数$ \mathrm{m}\mathrm{a}{\mathrm{x}}_{\mathrm{g}\mathrm{e}\mathrm{n}} $

输出   最优路径$ {p}_{b} $

1.随机初始烟花种群路径$ \mathrm{P}=\left\{{\mathrm{p}}_{1}, {\mathrm{p}}_{2}, \cdots , {\mathrm{p}}_{\mathrm{N}}\right\} $

2.for $ \mathrm{i}=1, \mathrm{i}\le \mathrm{m}\mathrm{a}{\mathrm{x}}_{\mathrm{g}\mathrm{e}\mathrm{n}}, \mathrm{i}++ $

3.通过式(2)计算种群中每个烟花适应度值$ {\mathrm{f}}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}} $

4.通过式(10)和式(11)计算烟花的爆炸幅度和火花个数

5.通过轮盘选择操作式(17)筛选出需要位移的路径节点$ {\mathrm{X}}_{\mathrm{s}\mathrm{e}\mathrm{l}\mathrm{e}\mathrm{c}\mathrm{t}} $

6.依据式(18)在爆炸幅度内对$ {\mathrm{X}}_{\mathrm{s}\mathrm{e}\mathrm{l}\mathrm{e}\mathrm{c}\mathrm{t}} $进行爆炸位移

7.随机选取路径节点$ {\mathrm{X}}_{\mathrm{j}} $依据式(12)进行高斯变异

8.通过式(19)将被选择的路径$ \mathrm{p}\mathrm{a}{\mathrm{r}}_{1} $$ \mathrm{p}\mathrm{a}{\mathrm{r}}_{2} $进行交叉变换,产生选择交叉火花

9.通过式(13)对变异后超出可行域的路径节点映射回可行域内

10.保留最优烟花,将其余爆炸火花、高斯变异火花、选择交叉火花通过式(14)选择下一代烟花。

步骤1在搜索空间中通过随机选择符合适应度值要求的n个路径节点作为初始路径,并构建N条初始路径以构成烟花种群。步骤2~步骤10在给定的最大迭代次数内循环使用选择交叉烟花算法,其中步骤3和步骤4计算适应度函数,得到爆炸幅度与爆炸强度,步骤5~步骤8产生爆炸火花、高斯变异火花和选择交叉火花,步骤9对超出可行域的路径节点进行映射,步骤10通过选择操作对火花进行筛选,形成下一代烟花。当达到最大迭代次数后,算法输出最优烟花,并作为无人车的规划路径。

4 实验与结果分析 4.1 实验环境与参数设置

本文在MATLAB 2018b上进行仿真实验,计算机配置为2.60 GHz CPU,16 GB RAM、64位操作系统。

本文将蚁群算法(ACO)[25]、基本烟花算法(FWA)、改进烟花算法(IFWA)[11]、选择寻优烟花算法(SC-FWA)进行对比实验。SC-FWA的实验参数:最大迭代次数$ \mathrm{m}\mathrm{a}\mathrm{x}\_\mathrm{g}\mathrm{e}\mathrm{n}=300 $,初始烟花个数$ N=10 $,最小转角$ \alpha =\mathrm{\pi }/2 $,最大爆炸幅度$ \widehat{A}=10 $,最大爆炸强度$ \widehat{S}=10 $,威胁代价$ {C}_{1}=0.2 $,平滑代价$ {C}_{2}=0.2 $,燃耗代价$ {C}_{3}=0.6 $,上坡燃耗系数$ {k}_{h}=0.2 $,下坡燃耗系数$ {k}_{l}=0.5 $,搜索空间上界$ {B}_{u}^{k}=100 $,搜索空间下界$ {B}_{d}^{k}=1 $,简单地形环境适应度函数阈值$ {F}_{s}=270 $,复杂地形环境适应度函数阈值$ {F}_{c}=750 $

4.2 结果分析

为验证选择交叉烟花算法的收敛性和高效性,本文将选择交叉烟花算法的两类改进操作分开进行对比分析。其中加入轮盘选择操作的烟花算法(S-FWA)是在基本烟花算法的基础上对不同适应度值的路径节点进行轮盘赌操作;加入选择交叉变异的烟花算法(C-FWA)是在基本烟花算法的基础上随机选择不同的路径片段进行交换。本文将ACO、FWA、IFWA、S-FWA、C-FWA、SC-FWA在简单地形和复杂地形下进行实验对比。当执行完给定的最大迭代次数后,不同算法在简单地形和复杂地形下的路径适应度值如表 1所示。

下载CSV 表 1 不同算法的路径适应度值对比 Table 1 Path fitness values comparison among different algorithms

FWA、IFWA、S-FWA、C-FWA、SC-FWA均找到了低于ACO适应度值的路径,说明烟花算法具有较优的空间探索能力,其中C-FWA相较于IFWA、S-FWA、FWA适应度值更低。因此,C-FWA通过选择交叉变异进行烟花间的片段交换,以增强烟花算法中烟花间的交互性,从而有效提升探索最优解的能力,但其不足是加入了新的交叉操作会导致运行时间较高于其他基本烟花算法。

在简单地形和复杂地形中,若算法探索到低于适应度函数阈值的路径时,则终止程序并记录运行时间,不同算法在简单地形和复杂地形下的运行时间如表 2所示。

下载CSV 表 2 不同算法的运行时间对比 Table 2 Running time comparison among different algorithms

FWA、IFWA、S-FWA、C-FWA、SC-FWA运行时间均低于ACO,说明烟花算法具有高效性。其中S-FWA相较于IFWA、C-FWA、FWA运行时间更短,由此可见,通过轮盘选择操作提高偏离路径节点的变异概率,从而加快烟花算法的收敛速度。但由于S-FWA减弱了烟花种群中烟花的多样性,因此探索最优解的能力降低,当完成所有迭代次数后,路径适应度值较高。

SC-FWA通过轮盘选择操作和选择交叉变异操作,结合S-FWA中收敛速度快和C-FWA中搜索全局最优解能力强的特点,在简单和复杂地形中,运行时间和路径适应度值均优于IFWA、FWA、ACO。因此,SC-FWA具有一定的收敛性和高效性,规划的路径适应度值更低,运行时间更短。

在100 km×100 km的仿真简单和复杂地形环境下,ACO、FWA、IFWA、SC-FWA算法的路径对比分别如图 6图 7所示(彩色效果见《计算机工程》官网HTML版)。其中,(0,0)为起始点,(100,100)为目标点。不同颜色代表区块的高度值(如山丘、山峰等),蓝色区域为平原区,黄色区域为山峰,圆圈标识的圆形区域为威胁区域。

Download:
图 6 在简单地形下不同算法的路径规划对比 Fig. 6 Path planning comparison among different algorithms in simple terrain
Download:
图 7 在复杂地形下不同算法的路径规划对比 Fig. 7 Path planning comparison among different algorithms in complex terrain

简单地形较为单一,大部分为平原地区。从图 6可以看出,4种算法均找到了近似全局最优解,威胁代价与转角代价均相近。但SC-FWA路径长度更短,燃耗更低。而ACO经过部分山地区域,导致燃耗增加。从图 7可以看出,在复杂地形下,由于加入了燃耗代价,将转角代价和威胁代价作为适应度函数,SC-FWA规划的路径远离了威胁区域,并且路径更加平滑,无人车选择行驶的路径地形更加平坦,减少了上坡下坡的燃耗,因此规划的路径适应度值更低。IFWA找到了与SC-FWA相近的路径,但是生成的路径经过山地地形,增加了燃耗消耗。而FWA和ACO陷入了局部最优解,没有找到最合理的路径。FWA相对ACO产生的路径更加平滑,但是规划的路径经过了山地,导致燃耗代价升高。相对于SC-FWA和IFWA,FWA规划的路径距离威胁区域更近,ACO虽然绕过了山地地形,但是规划的路径不平滑,转角过多,距离威胁区域较近。

在简单地形和复杂地形下FWA、IFWA、ACO和SC-FWA算法的收敛曲线分别如图 8图 9所示。

Download:
图 8 在简单地形下不同算法的收敛曲线对比 Fig. 8 Convergence curves comparison among different algorithms in simple terrain
Download:
图 9 在复杂地形下不同算法的收敛曲线对比 Fig. 9 Convergence curves comparison among different algorithms in complex terrain

烟花适应度值越低则表示生成的路径代价越小、产生的路径更加远离威胁区域、路径更加平滑且燃耗更低。在简单地形下,SC-FWA各个时期的适应度值均优于FWA、ACO、IFWA,并且在迭代第65次时,SC-FWA算法已基本收敛。FWA、ACO、IFWA算法适应度函数变化不大,说明产生的解均靠近全局最优解。在复杂地形下,SC-FWA的适应度值在前期下降更快,当迭代次数为150~200时,陷入了与IFWA同样的局部最优解,通过选择交叉操作,在迭代200次后跳出局部最优解,以搜寻到适应度值更小的路径。在迭代后期,SC-FWA找到了相比于FWA、ACO、IFWA更优的路径。

实验结果表明,通过构建适应度函数,使得SC-FWA规划的路径更加平滑且远离威胁区域。在FWA的基础上加入了轮盘选择操作和选择交叉变异,提高了低适应度节点被选择进行变异的概率,并使得烟花之间可以进行信息交互。因此,SC-FWA在保证烟花多样性的同时提高了算法的搜索效率,使算法在不同的地形环境下都具有良好的适应性,不易陷入局部最优解,使其具有更快的收敛速度,规划出更安全、高效的路径。

5 结束语

本文将三维地形环境下无人车路径规划问题转化为多约束条件的优化问题[26],提出选择交叉烟花算法。为了更真实地模拟无人车在三维地形环境下的行驶过程,引入燃耗代价、威胁代价和平滑代价作为适应度函数对路径进行评价,使产生的路径更加平滑且远离威胁区域。仿真实验结果表明,相比ACO、FWA、IFWA等算法,本文算法具有较优的求解性能和较快的收敛速度,使无人车在较短的时间内规划出更优的路径。下一步将考虑在三维地形环境下融合改进的烟花算法与强化学习模型,使多个无人车可以学习合作避障策略,以有效规避动态障碍物。

参考文献
[1]
朱大奇, 颜明重. 移动机器人路径规划技术综述[J]. 控制与决策, 2010, 25(7): 961-967.
ZHU D Q, YAN M Z. Survey on technology of mobile robot path planning[J]. Control and Decision, 2010, 25(7): 961-967. (in Chinese)
[2]
PATLE B K, BABU L G, PANDEY A, et al. A review: on path planning strategies for navigation of mobile robot[J]. Defence Technology, 2019, 15(4): 582-606. DOI:10.1016/j.dt.2019.04.011
[3]
WAHAB M N A, NEFTI-MEZIANI S, ATYABI A. A comparative review on mobile robot path planning: classical or meta-heuristic methods?[J]. Annual Reviews in Control, 2020, 50: 233-252. DOI:10.1016/j.arcontrol.2020.10.001
[4]
MASEHIAN E, SEDIGHIZADEH D. A multi-objective PSO-based algorithm for robot path planning[C]//Proceedings of International Conference on Industrial Technology. Washington D.C., USA: IEEE Press, 2010: 465-470.
[5]
DORIGO M, MANIEZZO V, COLORNI A. Ant system: optimization by a colony of cooperating agents[J]. IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics), 1996, 26(1): 29-41. DOI:10.1109/3477.484436
[6]
SOLTANI A R, TAWFIK H, GOULERMAS J Y, et al. Path planning in construction sites: performance evaluation of the Dijkstra, A, and GA search algorithms[J]. Advanced Engineering Informatics, 2002, 16(4): 291-303. DOI:10.1016/S1474-0346(03)00018-1
[7]
谭营, 郑少秋. 烟花算法研究进展[J]. 智能系统学报, 2014, 9(5): 515-528.
TAN Y, ZHENG S Q. Recent advances in fireworks algorithm[J]. CAAI Transactions on Intelligent Systems, 2014, 9(5): 515-528. (in Chinese)
[8]
谭营. 烟花算法引论[M]. 北京: 科学出版社, 2015.
TAN Y. Introduction to fireworks algorithm[M]. Beijing: Science Press, 2015. (in Chinese)
[9]
张玮, 马焱, 赵捍东, 等. 基于改进烟花-蚁群混合算法的智能移动体避障路径规划[J]. 控制与决策, 2019, 34(2): 335-343.
ZHANG W, MA Y, ZHAO H D, et al. Obstacle avoidance path planning of intelligent mobile based on improved fireworks-ant colony hybrid algorithm[J]. Control and Decision, 2019, 34(2): 335-343. (in Chinese)
[10]
薛裕颖, 张祥银, 张国梁, 等. 基于量子行为烟花算法的移动机器人路径规划及平滑[J]. 控制理论与应用, 2019, 36(9): 1398-1408.
XUE Y Y, ZHANG X Y, ZHANG G L, et al. Path planning and smoothing based on quantum-behaved fireworks algorithm for mobile robot[J]. Control Theory & Applications, 2019, 36(9): 1398-1408. (in Chinese)
[11]
樊永生, 连云霞, 杨臻. 改进烟花算法在虚拟士兵路径规划中的应用[J]. 计算机工程, 2018, 44(12): 228-232.
FAN Y S, LIAN Y X, YANG Z. Application of improved fireworks algorithm in path planning of virtual soldier[J]. Computer Engineering, 2018, 44(12): 228-232. (in Chinese)
[12]
PFEIFFER M, SCHAEUBLE M, NIETO J, et al. From perception to decision: a data-driven approach to end-to-end motion planning for autonomous ground robots[C]//Proceedings of International Conference on Robotics and Automation. Washington D.C., USA: IEEE Press, 2017: 1527-1533.
[13]
TAI L, LIU M. Towards cognitive exploration through deep reinforcement learning for mobile robots[EB/OL]. [2021-09-10]. https://arxiv.org/pdf/1610.01733.pdf.
[14]
CHEN Y F, EVERETT M, LIU M, et al. Socially aware motion planning with deep reinforcement learning[C]//Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems. Washington D.C., USA: IEEE Press, 2017: 1343-1350.
[15]
LAKSHMANAN A K, MOHAN R E, RAMALINGAM B, et al. Complete coverage path planning using reinforcement learning for tetromino based cleaning and maintenance robot[J]. Automation in Construction, 2020, 112: 1-10.
[16]
YANG Y, LI J T, PENG L L. Multi-robot path planning based on a deep reinforcement learning DQN algorithm[J]. CAAI Transactions on Intelligence Technology, 2020, 5(3): 177-183.
[17]
XIN L, SONG W, CAO Z G, et al. Multi-decoder attention model with embedding glimpse for solving vehicle routing problems[EB/OL]. [2021-09-10]. https://arxiv.org/abs/2012.10638v1.
[18]
LI J W, XIN L, CAO Z G, et al. Heterogeneous attentions for solving pickup and delivery problem via deep reinforcement learning[J]. IEEE Transactions on Intelligent Transportation Systems, 2022, 23(3): 2306-2315.
[19]
LI J W, MA Y N, GAO R Z, et al. Deep reinforcement learning for solving the heterogeneous capacitated vehicle routing problem[EB/OL]. [2021-09-10]. https://arxiv.org/abs/2110.02629v1.
[20]
WU Y X, SONG W, CAO Z G, et al. Learning improvement heuristics for solving routing problems[EB/OL]. [2021-09-10]. https://arxiv.org/abs/1912.05784.
[21]
CAI Y W, ZHAO H, LI M D, et al. 3D real-time path planning based on cognitive behavior optimization algorithm for UAV with TLP model[J]. Cluster Computing, 2019, 22(2): 5089-5098.
[22]
吉根林. 遗传算法研究综述[J]. 计算机应用与软件, 2004, 21(2): 69-73.
JI G L. Survey on genetic algorithm[J]. Computer Applications and Software, 2004, 21(2): 69-73. (in Chinese)
[23]
HUANG H C, TSAI C C. Global path planning for autonomous robot navigation using hybrid metaheuristic GA-PSO algorithm[C]//Proceedings of SICE Annual Conference. Washington D.C., USA: IEEE Press, 2011: 1338-1343.
[24]
STENTZ A. Optimal and efficient path planning for partially known environments[C]//Proceedings of IEEE International Conference on Robotics and Automation. Washington D.C., USA: IEEE Press, 1994: 203-220.
[25]
付振秋, 季光, 杨瑛. 改进型蚁群算法的AUV三维路径规划[J]. 舰船科学技术, 2018, 40(19): 72-77.
FU Z Q, JI G, YANG Y. AUV three-dimensional path planning method based on improved antcolony optimization and particle swarm optimization[J]. Ship Science and Technology, 2018, 40(19): 72-77. (in Chinese)
[26]
NAZARAHARI M, KHANMIRZA E, DOOSTIE S. Multi-objective multi-robot path planning in continuous environment using an enhanced genetic algorithm[J]. Expert Systems with Applications, 2019, 115: 106-120.