上一篇介绍了蚁群算法,本篇介绍路径规划的另一种经典算法——遗传算法,主要介绍算法原理,流程以及在路径规划中的应用示例。




1. 理论基础


遗传算法源自于达尔文进化论的自然选择理念,是一种通过模拟自然进化过程搜索最优解的方法。解决问题时,问题的所有潜在解构成一个种群,种群中不同个体的基因编码不同。初代种群产生以后,根据个体适应度选择个体,并经过遗传学的组合交叉以及变异,产生新的个体,接着继续进行选择,进行迭代,在迭代过程中,使得种群的个体适应度越来越高,最终末代种群的最优个体,便可视为问题的近似最优解。


2. 算法实现流程


(1)种群初始化
首先规定种群中个体的数目n,种群迭代次数k,每个个体的染色体数目m,以及根据实际问题确定染色体编码方式,同时还有种群的交叉概率α,以及变异概率β。
接着,初始化种群中所有个体的染色体类型(一般采用随机生成的方式)
(2)计算适应度
确定个体适应度计算函数,一般适应度与求解目标正相关,如求最短路径时,适应度函数可以设置为:
在这里插入图片描述
式中:A为影响因子,D为路径长度。利用适应度函数,计算初代种群中每个个体的适应度。
(3)选择操作
采用轮盘赌法或者锦标赛法等方法,对上一代中的个体进行选择,以生成新一代的种群。
(4)交叉操作
种群中每两个相邻个体的染色体都有α的概率进行交叉操作,当发生交叉操作时,相邻个体的染色体,以规定的交叉比例因子进行交叉,如下图:
在这里插入图片描述
(5)变异操作
种群中每个个体都有β的概率发生变异操作,发生变异时,染色体上的基因在允许范围内随机变异,如下图所示:
在这里插入图片描述


(6)计算适应度函数
对新一代个体,进行适应度函数的计算,并记录最优个体。
至此,一次迭代完成,若未到达迭代次数,则转到步骤(3)继续迭代。


3. 路径规划应用示例


对如图所示二维路径规划问题,绿色圆代表障碍物,蓝色小圆形代表中间点。


在这里插入图片描述
(1)首先初始化种群
这里规定个体的每条染色体表示路径上的一个中间点,每条染色体上有两个基因,分别代表点的横纵坐标。
在生成初代种群时,个体染色体的基因坐标必须在规定范围内,即保证中间点必须在规划区域内。
(2)适应度计算与选择
这里的适应度函数可以如第二节中那样规定,同时,由于此问题有避障要求,因此需要添加碰撞检测函数。
碰撞检测函数可以规定为:规定最小路径单元step,在每相邻两个点形成的路径上,以step划分出若干离散点,判断每个离散点是否位于障碍物区间内,如下图所示:
在这里插入图片描述
同时,适应度函数中加入碰撞因子,如下式:
在这里插入图片描述
式中,c为碰撞因子,若发生碰撞,则c为0,否则为1。
接着,可利用轮盘赌法,锦标赛法等进行选择。上一节介绍过轮盘赌法,因此这里介绍一下锦标赛法。
若种群数目为n,则从上一代中随机选取一半的个体,选择其中适应度函数最高的作为一个新的个体,接着继续从上一代中随机选取一半……如此循环,直至生成所有新一代个体。
(3)交叉与变异操作
首先进行交叉操作,对种群中每两个相邻的个体,生成随机数与交叉概率比较,若大于交叉概率,则按下式进行交叉:
在这里插入图片描述
式中,X_old,X_new分别代表交叉前,后的染色体,μ代表交叉比例因子。
接着进行变异操作,同样的,对种群中的每个个体,生成随机数与变异概率比较,若大于变异概率,则按下式进行变异:
在这里插入图片描述
式中,X_H,X_L分别代表染色体取值上下限,rand为生成的0~1之间的随机数。
(4)计算适应度
经过上述操作后,新一代种群生成,接着计算其中每个个体的适应度,并记录最优个体与最佳适应度值。
至此,一次迭代完成。


4. 总结


本篇主要介绍了遗传算法的理论基础,算法实现流程,并结合具体的二维路径规划问题,介绍了其具体的应用方法。