为方便问题分析,对无人艇作以下假设:
1)船载监测设备已探知小船周围障碍物位置;
2)无人艇行驶的环境为二维平面,忽略水面波浪所致小船起伏;
3)忽略障碍物高度,每一个障碍物占据一个二维栅格;
4)无人艇、目标点、障碍物位置均处于栅格中心点;
5)无人艇最大转向角为45°。
而路径规划之前,通常要对无人艇的作业环境进行建模。常见的环境建模法包括顶点图、邻接图、栅格法等,其中最为常见的即栅格法建模,通过栅格将地图环境进行存储,包括起点、终点、障碍点信息。栅格地图的距离计算通常有3种方式。
1)曼哈顿距离。曼哈顿距离即坐标系中两点的绝对轴距之和,其表达式如下式:
2)切比雪夫距离。切比雪夫距离被称为棋盘距离,其表达式下式:
3)欧几里得距离。其值直接可以看作两个位置点在欧式空间中的两点的直线距离,其表达式如下式:
无人艇的最大转向角设定为45°,曼哈顿距离只能支持横向、纵向的移动,故距离计算选择可以斜向行走的切比雪夫距离。
其中:Ymax和Xmax分别为探测范围内的纵向、横向的最远距离。
无人艇路径规划是避免碰撞的前提下,保证路径长度最短,是一个典型的约束最优问题,数学模型描述如下:
对于此类带约束非线性最优化问题,可以将其转化为无约束最优化问题,等价于一个能量优化函数E,其由路径长度函数(Ei)和碰撞惩罚函数(Ec)组成。
含有N个路径节点的情况,路径长度函数El为所有线段长度之和,即
碰撞惩罚函数Ec为无人小船在作业过程中,全部路径节点的碰撞惩罚函数能量之和,即
其中:${{C}}_{{i}}^{{k}}$为第i个路径节点对于第k个障碍点的碰撞惩罚函数,K为障碍点数量,N为路径节点数量。整条路径能量函数E为:
其中权值${\mu_l}+{\mu_c}=1$,目标函数为:
在标准人工蜂群中,蜜源更新位置公式如下:
式中:$K\in(1,2\cdots,SN)$,SN是种群规模,$j\in(1,2\cdots,$$d)$,即随机选取下标。Rij是[1,1]之间的随机数。
侦察蜂的蜜源选择概率公式:
针对传统蜂群算法的不足,本文提出在信息素更新时引入混沌算子,通过混沌序列的全空间遍历和变异操作的特性来增加算法种群多样性,迭代后期则去除混沌扰动避免振荡。
式中:${\tau_{ij}}(0)$为初值,${\tau_{ij}}(t)$指算法在第iter次迭代时的值,根据混沌理论,当初值${\tau_{ij}}(0)$不等于0.25,0.5,0.75时,序列完全处于混沌态,提高搜索多样性。
当雇佣蜂转变为侦察蜂时,将产生一个D维随机向量${\tau_0}=[{\tau_{01}},{\tau_{02}},\cdots{\tau_{0D}}]$,${\tau_0}\in[0,1]$并不等于特殊值。${\tau_0}$作为初始值,由Logistic混沌映射式得到蜜源附近多个邻域解,从而得到经混沌操作后的新蜜源:
1)建立栅格化环境模型。
2)设置混合混沌ABC算法的基本参数,包括种群大小,最大迭代次数itermax,当前迭代次数iter,蜜源数量。
3)雇佣蜂阶段,根据蜜源更新公式随机搜索附近新蜜源,贪心原则,选择更优的蜜源位置。
5)侦察蜂阶段,重新根据蜜源更新公式在新被选中的蜜源附近进行搜索,计算收益度,收益度高的置为当前蜜源,否则不变。
6)迭代进行,当蜜源未更新次数达到limit值,雇佣蜂转变为侦察蜂,利用混算搜索算子搜索新蜜源。
提出结合混沌局部搜索算法的改进人工蜂群算法,用以解决USV的路径规划问题。该算法利用Logistcis混沌序列的全空间遍历特性避免ABC算法陷入局部最优,从而快速找到全局最优解。算例测试表明,与传统蜂群算法相比,改进后的算法在求解质量上有了提升,能够有效解决传统ABC算法局部收敛的问题,避免早熟收敛,并能为无人艇规划出一条可通行且较优的路径。