1、遗传算法介绍

遗传算法是类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定,具有内在的隐并行性和更好的全局寻优能力,采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。

以这篇博文代码篇为例(点击打开)

本文采用代码与原理相结合的办法给大家讲解遗传算法,有助于大家更好的理解遗传算法。

在遗传算法中包括几个重要的步骤,分别为 个体、种群、适应度、选择、交叉、变异,下边为大家介绍。

首先第一步也是最重要的一步大家需要导入需要解决的的城市坐标。

load CityPosition1;%个城市坐标位置

1、初始种群的产生

在解决问题时,首先就需要有个体和种群,而个体和种群的产生就需要用如下函数产生。

Chrom=InitPop(NIND,N);

在上述子程序中产生的个体是导入的城市随机排列,假如有30个城市,那么一个个体就是1-30之间的整数随机排列,把他存放在矩阵中的一行中。

而种群则是随机产生的NIND个个体的组合,在种群中每行代表每个个体,那么种群的矩阵大小为NIND行,30列。

2、适应度的计算

适应度简单的说就是个体在你设定的环境中活下去的能力。

那么在路径优化中,每个个体的路径总距离最小那么他就越容易存活下去,也就是说这里的适应度是和路径的总距离有关系的。

ObjV=PathLength(D,Chrom);

因为适应度是越大越好,而在路径优化中是距离是越小越好,所以我们取总距离的的倒数,作为个体的适应度。

接下来就需要进行循环迭代,进行选择交叉变异等操作。

while gen

3、选择

SelCh=Select(Chrom,FitnV,GGAP);

上述选择简单的说就是通过比较每个个体的适应度,把总距离小的个体,也就是适应度大的个体挑选出,选择多少个个体则是需要大家根据自己情况而定。

4、交叉

SelCh=cross(SelCh,FitnV,D);

这里面的交叉其实是改进后的交叉方法,交叉说简单一点就是打乱现有个体的排列顺序,去产生一个新的个体,而在这个代码中他是有目的的去进行交叉的:

他是选择出两个个体,随机选择一个点,然后找出在这两个个体中随机点的下一个城市点,比较这两个个体中随机点和下一个点的距离,选择距离他最近的那一个城市作为下一个城市点,然后再在两个个体中寻找最近的城市的下一个最近城市。以此类推。。。

5、变异

SelCh=Multate(SelCh,Pm);

变异和交叉差不多,也是去打乱现有个体的排列顺序,去产生新的个体。

在4、5的步骤中都有新的个体产生,计算出新的个体的适应度,然后与产生变化前的个体比较适应度大小,如果适应度比变化前适应度大则保留产生的新个体,如果适应度变得更差了,则保留原有未变化的个体。

6、重新插回种群

Chrom=Reins(Chrom,SelCh,ObjV);

把经历3、4、5步骤的产生的新个体重新放回到种群中,因为种群数量是不变的,只能通过把那些适应度低的个体用产生的新个体替换,在这个过程中,种群中所有个体的适应度都会越来越好。

7、得到结果

在经历上述的过程后,最后输出一个种群,在这一个种群中选择一个适应度最大的个体当作该问题的最优解。最后输出最优解的城市顺序,或者是画图等一些需要的数据

(如有其他问题可以私聊我)

遗传算法原理与matlab,有关路径优化遗传算法原理(结合matlab代码)相关推荐

  1. 【优化求解】基于matlab遗传算法求解立体仓库出入库路径优化问题【含Matlab源码 2028期】

    ⛄一.遗传算法仓库货位简介(仅供参考) 1 问题描述 1.1 自动化立体仓库出入库路径优化问题描述 自动化立体仓库如图1所示,主要是由以下几个部分组成: 货架,一般为钢结构构成的存储商品的单元格,单元 ...

  2. matlab遗传算法配送路径,基于遗传算法的生鲜配送的路径优化问题

    樊倩 熊雷鸣 邵晓根 孔亮 摘要:为了响应国家低碳经济的号召,为了降低物流行业的成本,提高商品配送的质量和效率,该文提出了基于遗传算法的生鲜配送的路径优化模型,并针对具体案例进行了仿真,初始的行驶距离 ...

  3. 【基于遗传算法改进的粒子群GA-PSO算法优化shubert函数及MATLAB编程实现,测试函数shubert(十)

    测试函数shubert(十) shubert函数属于周期性多峰函数,如图1所示拥有多个全局最优值,如图二所示在一个周期内只有一个全局最优值,局部最优解较多,适合测试算法的收敛性能,粒子群算法是一种收敛 ...

  4. 【多式联运】基于matlab帝国企鹅算法+遗传算法+粒子群算法求解不确定多式联运路径优化问题【含Matlab源码 2073期】

    ⛄一.联运运输简介 1 引言 运输问题(Transportation Problem)是一类特殊的线性规划问题,最早是由Hichcock于1941年提出的,由于它不仅能解决物资的合理调运和车辆的合理调 ...

  5. 【路径规划】基于matlab蚁群优化遗传算法机器人栅格地图最短路径规划【含Matlab源码 1581期】

    ⛄一.简介 路径规划是实现移动机器人自主导航的关键技术,是指在有障碍物的环境中,按照一定的评价标准(如距离.时间.能耗等),寻找到一条从起始点到目标点的无碰撞路径,这里选取最短距离路径规划的评价标准, ...

  6. 【VRP】基于matlab遗传算法求解多中心车辆路径规划问题【含Matlab源码 1965期】

    ⛄一.VRP简介 1 遗传算法基本原理 遗传算法 (Genetic Algorithm, GA) 是由美国密歇根大学的John Holland教授首先提出的, 它基于达尔文的进化论和孟德尔的遗传学说, ...

  7. 【优化调度】基于matlab遗传算法求解公交车调度排班优化问题【含Matlab源码 2212期】

    ⛄ 一. 遗传算法简介 1 引言 公交排班问题是城市公交调度的核心内容,是公交调度人员.司乘人员进行工作以及公交车辆正常运行的基本依据.行车时刻表是按照线路的当前客流量情况,确定发车频率,提供线路车辆 ...

  8. 【多式联运】基于matlab遗传算法求解多式联运冷链运输成本优化问题【含Matlab源码 2207期】

    一.联运运输简介 1 引言 运输问题(Transportation Problem)是一类特殊的线性规划问题,最早是由Hichcock于1941年提出的,由于它不仅能解决物资的合理调运和车辆的合理调度 ...

  9. 【优化调度】遗传算法求解公交车调度排班优化问题【含Matlab源码 2212期】

    ⛄ 一. 遗传算法简介 1 引言 公交排班问题是城市公交调度的核心内容,是公交调度人员.司乘人员进行工作以及公交车辆正常运行的基本依据.行车时刻表是按照线路的当前客流量情况,确定发车频率,提供线路车辆 ...

  10. 【多式联运】遗传算法求解多式联运冷链运输成本优化问题【含Matlab源码 2207期】

    ⛄一.联运运输简介 1 引言 运输问题(Transportation Problem)是一类特殊的线性规划问题,最早是由Hichcock于1941年提出的,由于它不仅能解决物资的合理调运和车辆的合理调 ...

最新文章

  1. 一次 HashSet 所引起的并发问题
  2. scrapyd部署爬虫项目到LINUX服务器
  3. linux 上使用wc -l命令快速查看文件内容有多少行,以及如何匹配指定字符查看多少行
  4. JavaScript HTML DOM - 改变 CSS
  5. Boost:简单的双图bimap的测试程序
  6. vs远程编译linux程序,使用Visual Studio 2015远程调试Linux程序
  7. 操作系统课设之内存管理
  8. 前端开发面试题收集(html部分)
  9. RPMB原理介绍【转】
  10. linux SHELL之结构化命令
  11. .net core 1.1 mysql_Asp.net Core 1.1 升级后操作mysql出错的解决办法|chu
  12. 全自动备份vss和sql数据库(含源码下载)
  13. 计算机累论文的数据字典怎么写,毕业论文中数据字典应该这样写
  14. Exadata是什么?
  15. Metricbeat监听容器CPU利用率,内存等使用情况,发送给ElasticSearch并展示在kibana
  16. 国内交通银行OSA账户被注销后,企业该如何面对这种局面?
  17. python 有趣包_一些有趣且鲜为人知的 Python 特性
  18. bam文件读取_科学网—Pacbio Sequel两种bam文件解析 - 卢锐的博文
  19. pads-logic
  20. 体育馆团体预约系统UML软件工程第16周项目日志

热门文章

  1. 安装Python报错could not write value to key.....
  2. 随机效应估算与固定效应估算_混合OLS模型、固定效应模型、随机效应模型的区别是什么...
  3. redis过期策略及配置方式
  4. 矩阵的卷积以及使用python计算方法
  5. linux之fstab文件详解
  6. 类型多样的3Dmax软件插件素材,速来收藏
  7. mysql语句转换为oracle_MyBatis项目实战 快速将MySQL转换成Oracle语句
  8. 现代化智能一体化机柜
  9. 圣思园的随堂视频发布了
  10. 狗都能看懂的MAML原理讲解和代码实现