首页 > 编程语言 >基于遗传优化算法小车避障问题matlab仿真,地图为栅格地图

基于遗传优化算法小车避障问题matlab仿真,地图为栅格地图

时间:2023-03-27 23:56:32浏览次数:35  
标签:避障 end 变异 地图 bi gbh 个体 栅格 遗传算法

1.算法描述

 首先介绍MATLAB部分的遗传算法的优化算法介绍:

 

       遗传算法的原理

 

       遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。

 

一、遗传算法的目的

        典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有

 

bi{0,1}L (3-84)

 

给定目标函数f,有f(bi),并且

 

0

 

同时f(bi)≠f(bi+1)求满足下式

 

max{f(bi)|bi{0,1}L}

 

的bi。很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。

 

二、遗传算法的基本原理

        长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:

 

1.选择(Selection)

 

这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。

 

2.交叉(Crossover)

 

这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。

 

3.变异(Mutation)

 

这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。

 

遗传算法的原理可以简要给出如下:

 

choose an intial population

 

determine the fitness of each individual

 

perform selection

 

repeat

 

perform crossover

 

perform mutation

 

determine the fitness of each individual

 

perform selection

 

until some stopping criterion applies

 

        这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。

 

三、遗传算法的步骤和意义

1.初始化

 

选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。

 

通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。

 

2.选择

 

根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。

 

给出目标函数f,则f(bi)称为个体bi的适应度。以

 

为选中bi为下一代个体的次数。

 

显然.从式(3—86)可知:

 

(1)适应度较高的个体,繁殖下一代的数目较多。

 

(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。

 

这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。

 

3.交叉

 

对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。

 

例如有个体

 

S1=100101

 

S2=010111

 

选择它们的左边3位进行交叉操作,则有

 

S1=010101

 

S2=100111

 

一般而言,交 婊显譖。取值为0.25—0.75。

 

4.变异

 

根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。

 

例如有个体S=101011。

 

对其的第1,4位置的基因进行变异,则有

 

S'=001111

 

单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

3.MATLAB核心程序

 

d=[3,9,10,12,13,16,26,31,41,42,48,56,63,69,76,77,81,86,91,94];
G=100;
popsize=50;
poplength=18;
pc=1;
pm=1;
pop=initialize(popsize,poplength);
for i=1:G
    pop=crossover(pop,poplength,pc);
    pop=muate(pop,pm);
    pop=roulette(pop,popsize,poplength);
end
[a,b]=sort(pop(:,poplength+1));
bestroad=pop(b(popsize),:);
t=0;
for i=1:poplength
    if(bestroad(i)~=0)
        t=t+1;
    end
end
disp('Short Road is:');disp(bestroad(1:t))
disp('The Number is:');disp(t)
for i=1:11
    for j=1:11
        gx((i-1)*11+j)=j-1;
        gy((i-1)*11+j)=11-i;
    end
end
for i=1:10
    for j=1:10
        gbh((i-1)*10+j,:)=[(i-1)*11+j,(i-1)*11+j+1,i*11+j+1,i*11+j];
    end
end
hold on
for i=1:length(d)
    fill(gx(gbh(d(i)+1,:)),gy(gbh(d(i)+1,:)),'g')
end
for i=1:100
    plot(gx(gbh(i,1:2)),gy(gbh(i,1:2)))
    plot(gx(gbh(i,2:3)),gy(gbh(i,2:3)))
    plot(gx(gbh(i,3:4)),gy(gbh(i,3:4)))
    plot(gx(gbh(i,4:1)),gy(gbh(i,4:1)))
    text(sum(gx(gbh(i,:)))/4,sum(gy(gbh(i,:)))/4,...
        num2str(i-1),'Color','Blue','Fontsize',10)
end

 

  

 

标签:避障,end,变异,地图,bi,gbh,个体,栅格,遗传算法
From: https://www.cnblogs.com/51matlab/p/17263511.html

相关文章

  • 原生 谷歌地图 应用
    简介谷歌地图(GoogleMap)是Google公司提供的电子地图服务,包括局部详细的卫星照片。它提供了三种视图:一是矢量地图(传统地图),可提供政区和交通以及商业信息;二是不同分辨率的......
  • Google赶在WWDC前发布3D地图 对苹果“先发制人”
    TNW刚刚收到Google邀请,Google说6月6号即将有一个Google地图演示,这个事情相当滑稽,因为WWDC马上就要来了,而苹果被指望在大会上介绍自己的3D地图,但木已成舟,我们只能期望Google......
  • 亚马逊收购3D地图初创公司UpNext 欲与苹果和Google一分天下
    大家都知道,在使用KindleFire时如果想查看地图,必须下载第三方地图应用或通过浏览器访问在线地图服务,十分不方便。而为了打造功能更为全面的产品,亚马逊在周一宣布收购3D地图......
  • [原创]基于百度地图起草真实建筑建模实践
    在百度地图中标注建筑的高宽,并进行截图2.打开blender添加图像,参考或者背景打开标尺工具标记好建筑群大概的距离,然后右键调整物体的图片尺寸,一般图像多大就代表距离......
  • Android简单集成高德地图API
    首先进入高德官网  高德开放平台|高德地图API(amap.com)  注册登录完成之后创建新应用  点击之后呈现如下页面:  Key的名称随便起,主要是提交后会有一个......
  • PostgreSQL+PostGIS扩展 ogr2ogr命令导入gdb地图数据
    实现将arcgis支持的.gdb中的数据和qgis支持的.gpkg中的数据导入到Postgres数据库中第一步:安装PostgreSQL安装好后自带pgAdmin管理工具相当于是一个图形管理工具第二步:......
  • m基于BP神经网络的障碍物避障和路线规划matlab仿真
    1.算法描述BP(BackPropagation)神经网络,其本质是一种基于误差反馈传播的神经网络算法。从结构上讲,BP神经网络是由一个信息的正向传播网络和一个误差的反向传播网络两个模块......
  • m基于BP神经网络的障碍物避障和路线规划matlab仿真
    1.算法描述        BP(BackPropagation)神经网络,其本质是一种基于误差反馈传播的神经网络算法。从结构上讲,BP神经网络是由一个信息的正向传播网络和一个误差的反向......
  • Leaflet中使用Leaflet.Spin插件实现地图加载等待效果
    场景Leaflet快速入门与加载OSM显示地图:Leaflet快速入门与加载OSM显示地图_BADAO_LIUMANG_QIZHI的博客-在上面的基础上,怎样使用插件实现地图加载等待效果如下注:博客:BADAO_LIU......
  • 关于我使用ECharts对地图进行染色渲染不成功的原因以及解决
    问题描述不知道为什么,我弄出来的地图一直只有一个颜色,就一直改变我写代码的内容以及形式,试图通过这种方式解决这个问题,没想到的是,改了好久,地图还是那个地图,我却快要谢了,真......