⛄一、无人机简介

1 遗传算法
遗传算法由约翰·霍兰德在20世纪60年代提出,并于1975年首次出版,是一种基于达尔文的生物进化论和孟德尔的遗传学的随机搜索与优化算法[9]。具有适用性广,鲁棒性强的全局优化能力[10]。文献[11]证明了遗传算法在采用精英保留策略时具有全局收敛性。一般采用遗传算法处理飞行航迹规划需要确定以下问题:(1)个体表示方法,即基因编码;(2)评价方法;(3)选择方法;(4)基因操作;(5)确定控制参数,如种群大小等。

1.1 基因编码
基因编码的方式决定了规划问题的具体表达方式,也决定了遗传操作的形式。本文采用的编码方法如下:首先,将规划空间表示为m×n×l的栅格地图,并对每个栅格进行编号,使每个栅格具有一个且只有一个标识号N。以10×10×10栅格地图为例,如果空间坐标系中某点的坐标为(x1,y1,z1),则基因与坐标的映射关系为

其中mod表示取剩余部分,floor表示四舍五入。一定数量的航迹节点形成一条轨迹,相应地,一定数量的基因按一定顺序形成染色体。

1.2 航迹评价函数和选择方法
使用第1节给出的代价函数计算每条航迹的代价值。个体的价值越小,环境的适应度越高,更满足的理想航迹要求。

选择方法决定了哪些个体将被保留,同时将其特征传递给后代,对于每一代种群,健康状况较差的个体,即代价值较高的个体被淘汰。本文采用的选择方法是将精英保留策略和轮盘赌法结合,即根据个体在种群中的适应度决定个体被选择的概率。这相当于将完整的轮盘分为多个扇区,每个扇形的中心角越大,扇形的面积越大,被选中的概率越大,同时保留每一代最优航迹。

1.3 基因操作
基因操作也被称为进化算子,包括交叉算子和变异算子,变异算子包括扰动算子、插入算子和删除算子。具体含义如下:1.交叉算子:将两条航迹的染色体从某一位置切割,然后将切割的染色体重新组合,形成两条新的航迹。2.扰动算子:随机改变航迹的某个航迹节点。3.插入算子:在航迹中的随机位置(起点和目标点除外)随机插入一个新的航迹节点。4.删除算子:随机从航迹中删除除起点和目标点外的航迹节点。

1.4 遗传算法流程
遗传算法具体过程如下:
1.确定种群大小Q、每一代淘汰个体数量E和各种基因操作的作用概率,并确定终止条件(最大进化次数)。设置与航迹相关的参数,如每个航迹节点的最大数目和最小数目。初始化规划空间,设置起点和目标点,加载禁飞区,地形以及威胁。
2.生成初始群体,每个航迹的起始点和目标点都是固定的,中间节点在规划空间中随机生成。
3.评估和选择航迹,保留数量为(Q−E)的航迹,如果满足终止条件,转到第5步,否则转到第4步。
4.在保留的航迹上进行基因操作产生新的个体,并向原来的种群添加新生成的航迹,从而将种群规模恢复到Q,转到第3步。
5.从航迹中选择代价值最低的个体作为规划出的航迹,进化过程结束。

2 自适应遗传算法
基因操作可以产生新的个体,推动进化进程,传统遗传算法先进行交叉操作,再进行变异操作。交叉操作的概率可以影响种群的丰富程度,概率值越大,种群的丰富程度越大,但同时,种群中的优良个体被破坏的可能也越大。变异操作的概率影响遗传算法的全局寻优能力,概率值越大,越不容易陷入极值陷阱,但同时,算法的随机性增强,收敛概率减小。进化到后期,种群的适应度越来越集中,种群差异度较小,种群的多样性不足,进行交叉操作,产生新个体的适应度改变不大,之后再进行变异操作,容易破坏优良个体,减缓了收敛的速度。因此,自适应遗传算法[9]被提出,其思想是当群体适应度比较集中时,同时增加交叉概率和变异概率;当群体适应度比较分散时,同时减少交叉概率和变异概率。交叉概率和变异概率按式(19)和(20)进行自适应调整。

其中,Pc是交叉概率,Pm是变异概率,fmax是种群的最大适应度;fave是种群的适应度平均值;f′是两个交叉个体适应度较大者的适应度;f是变异个体的适应度;k1>0,k2,k3,k4≤1为常数。

从公式可以看出,当个体的适应度高于或等于种群平均适应度的时候自适应的调整交叉和变异概率,当个体适应度低于种群平均适应度的时候交叉概率和变异概率被赋予一个较大的固定常数值,这种方法可以在一定程度上减少较差的个体,但是同时也会损失较差个体中的优良基因,破坏种群的丰富程度。

⛄二、部分源代码

clc;
clear;tic;%
for i=13:13close all;

⛄三、运行结果


⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李霞,魏瑞轩,周军,李雪松2,张冲基于改进遗传算法的无人飞行器三维路径规划[J].西北工业大学学报. 2010,28(03)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

【AGA三维路径规划】基于matlab自适应遗传算法单无人机三维路径规划【含Matlab源码 214期】相关推荐

  1. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  2. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  3. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  4. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  5. 【Matlab水果识别】自助水果超市【含GUI源码 594期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...

  6. 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】

    一.代码运行视频(哔哩哔哩) [Matlab路径规划]改进的遗传算法机器人避障路径规划[含GUI源码 703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  7. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  8. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  9. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

最新文章

  1. python种r b u f作用
  2. wp7 手机归属地查询
  3. lucene源代码学习之 lucene的经典打分过程
  4. 基于MATLAB的仿windows画图板功能的实现
  5. 【Vue Laravel-mix】Error with Vue lazy loading components: “Failed to resolve async component“
  6. SpringBoot 2.x 监控中心:Actuator
  7. Find consecutive elements in an array
  8. 路由器启动后如何定位IOS?
  9. 为什么梯度的方向与等高线切线方向垂直?
  10. Eclipse用户使用IntelliJ IDEA的常见问答
  11. 操作系统——文件目录
  12. 算法之【折半插入法】
  13. ominigraffle 模板_商河盖梁模板安装
  14. 数组和指针(sizeof两者的关系)
  15. Linux 进程地址空间1_数据结构和接口
  16. 技术美术 之 游戏开发流程
  17. 校园网 显示ldap服务器连接不上,客户端无法连接到LDAP服务器
  18. 中国石油大学《大学语文》第一阶段在线作业
  19. oracle递归查询用法
  20. excel表格如何转换成word表格_将excel/word数据复制粘贴到word表格的几种方式

热门文章

  1. python制作翻译小软件_python 制作一个翻译软件
  2. win+ubuntu双系统grub开机顺序设置
  3. 学奥数对数学究竟有没有帮助?浅谈本人亲身经验
  4. Python学习总结(基础篇)(pycharm)
  5. vivado版本更换及IP升级
  6. word文档docx解密软件推荐,word文档docx权限密码如何解开?
  7. Codevs 2627 村村通
  8. 穆熙妍在节目中秀美鞋
  9. 魅蓝Note7Android7,魅蓝Note6和魅族PRO7哪个好?魅族Pro7和魅蓝Note6的区别 (全文)
  10. LED 实验玉和国际15758980009D13蓝色 LED 闪烁