您的位置:首页 > 编程语言 > MATLAB

Matlab实现用遗传算法求车辆倒车的最佳路径

2016-11-16 11:03 316 查看
现如今智能启发式算法很普遍,用处也很多,遗传算法、模拟退火、蚁群算法、粒子群算法等都是常用的几个智能算法,借用之前做的数模题目的例子,大致记录一下遗传算法的Matlab实现。

 


题目具体分析就不阐述了,核心要求是给出由理想起始点倒车入库的泊车策略,包括车速、前轮转角、后轮行驶距离。

假设我现在已经得到了一个比较好的倒车起始点,且在最终到达车库门前的过程中方向盘不动。遗传算法求解过程:

由于该模型方程较复杂且约束条件为非线性的,直接用求解面临这许多困难,故考虑用启发式算法中常用的遗传算法求解。遗传算法不需要给出优化变量的初始值,只需要给出优化变量的范围就可以进行高效并行的全局搜索。并且遗传算法不需要目标函数的导数梯度等信息,按照适应度的值就可以进行搜索最优值。本文研究的泊车问题无法给出的优化参数的初始值,仅能给出优化变量的范围,并且无法提供目标函数的梯度信息,所以采用遗传算法进行参数优化。

垂直泊车的遗传算法优化过程如下:

第一步:确定转弯半径范围

当停车点确定后,由于前轮转向角不同使得开出的路径不一样,但由于角度不直观且不方便运算,根据阿克曼模型,使用对应的转弯半径 作为决策变量。对于小型车,其最大转向角一般为33.5-39.6°之间,取转向角为36°,从而确定了转弯半径要大于3785mm。

第二步:产生初始种群并编码

决策变量 为一定区间内的浮点数,不宜采用二进制编码,由于 为一定范围内的浮点数,所以采用实数编码效果更好。具体做法是在 的取值范围内,随机选择 个染色体,作为初始种群。

第三步:等效距离的选择与计算[

为了求解最优的路径,我们把从理想倒车点到停车位置处所经过的距离的计算式作为适应度函数,算出的适应度称为等效距离。在产生种群的过程中,难免会得出一些不满足约束条件的解。工程中常用惩罚策略来解决遗传算法中具有非线性约束的问题,惩罚策略的本质是通过惩罚不可行解,将有约束的问题转化为无约束的问题,即通过增加惩罚项来改变适应度。带有惩罚项的适应度函数有两种。



在加法形式下的适应度函数中,本文将惩罚项定义为一很大的常数 ,以此排除不满足约束条件的值,则适应度函数为:



第四步:对个体进行选择

采用转盘算法对染色体进行选择,按如下公式计算出种群中每个染色体被选中的概率:

 

                                       
轮盘每转动一次选中一个个体,若个体的等效距离越小,则被选中的概率越大,由此选中那些路径较小的个体,使得种群的平均路径长度不断减小。

第五步:交叉操作

首先选取对应的交叉概率 。选取交叉概率为0.7, 的值太大,群体更新的速度太快,高适应度的个体很快被破坏。而 的值太小则可能导致搜索阻滞。随机选取两个个体 和 ,交叉公式为:

 


第六步:变异操作

变异的基因多少是按照变异率 决定的,变异率 很低难以增加种群的多样性, 太高GA 的搜索就变成了随机搜索,因此,一般取 =0.001~0.1。本文取 =0.01。

第七步:进化终止

进化的终止条件是进化代数到达最大值,进化代数的选择视具体情况而定,一般取T=100-500,经过重复多次试验,本文取100。

结果的分析

输入坐标对模型进行测试,一般的,倒车方式为直接倒行时,输入变量为理想起始点的坐标。当倒车方式为两段式垂直泊车时,需要再添加一个车身与水平线夹角的变量 。


                  

              
               a.直接倒行                                        b.两段式

运行程序,开始时输入倒车起始点,但基于理想起始点的约束,不是任意的点都可以得出解的,比如某些死角点不可能直接倒进车库中,或者不同的理想点对应不同的倒车方式,所以在分析大量实验数据后,我们大致给出了输入坐标的范围。

给出程序运行过程中,各代的平均值和最佳值曲线。由曲线可以看出,遗传算法收敛程度高,每一代种群平均等效距离的下降速度快,且得出最优路径时间快,完全保持在100代以内达到最优结果。


                                        

    
a.直接倒行                                                                       b.两段式
程序运行完毕后,给出最优的路径,并在命令窗口显示出题目需要的几个参数的具体值,并画出最优路径[9]。
 

                                 


a.直接倒行                                                                     b.两段式
图13 最优路径显示
 
 
论文下载,想要了解的朋友可以看看,水平有限,请勿喷=。=
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Matlab 遗传算法