遗传算法(geneticalgorithm,GA)是由美国Michigan大学的JohnHolland教授在1975年首先提出的,它是一种模拟生物自然进化现象的优化算法。随后在1989年,Goldberg的著作对遗传算法做了更为全面而系统的总结,也由此奠定了遗传算法的基础。
遗传算法借用了生物遗传学的思想,以及自然界中的“物竞天择,适者生存”原则,将问题的解表示成“染色体”,通过模拟自然选择、交叉、变异等操作,实现个体适应度的提高,不断迭代,逐步寻找最优解(或次优解)。遗传算法在求解问题时,从一组随机产生的初始种群开始搜索。种群中一个个体(individual)表示问题的一个解,称为染色体(chromosome)。种群通过连续的迭代进行进化,每一次迭代操作产生一代(generation)。在每一代中用适应度函数(fitnessfunction)或目标函数(objectivefunction)对每个个体进行评价(evaluation),适应度值高的个体被选中的概率高。迭代过程的下一代称为子代(offspring),通过选择(selection)、交叉(crossover)、变异(mutation)等遗传算子产生子代。遗传算法有五个基本要素:编码和解码;种群初始化方法;适应度函数;遗传算子(主要包括选择、交叉、变异等);遗传参数设置(种群规模、遗传算子的概率等)等。图3.1所示为基本遗传算法的流程框图。
假设P表示种群规模,t表示当前代,P(t)和C(t)表示第t代的父代和子代,那么基本的遗传算法执行步骤如下。
步骤1按照一定的初始化方法产生初始种群P(t),t=0。
步骤2评价种群P(t),计算每个个体的适应度值。
步骤3判断是否满足终止条件,如果满足则输出结果;否则转步骤4。
步骤4按照选择、交叉、变异等遗传算子产生子代C(t)。
步骤5P(t)=C(t),转步骤2,t=t+1。

遗传算法是一种通用的优化算法,其编码技术和遗传操作比较简单,优化过程不受限制性条件的约束,使它能够在复杂空间中进行全局优化搜索,并具有较强的鲁棒性。与传统的优化方法相比,遗传算法具有以下特点。
(1)遗传算法是对问题参数的编码即“染色体”进行操作,而非对参数本身进行操作的。进化过程中,只是在评价个体适应度值时需要使用问题的具体信息,而其他部分并不需要了解问题本身的信息,这使得遗传算法不受函数约束条件的限制(如连续或可微),设计简单且适应性广。
(2)遗传算法的搜索过程是从问题的解的集合开始,而不是从单个解开始的,具有隐含并行搜索特性。可将搜索重点集中于性能高的部分,从而可以提高搜索效率,并且减小了陷入局部极小的可能性,易得到全局最优解。
(3)遗传算法在问题解空间的整个搜索过程中是在概率指导下完成的、有方向的启发式搜索,与穷举或完全随机的搜索不同,因而具有较高的效率。在初始阶段,等概率初始化保证了搜索点均匀地覆盖整个解空间;之后在适应度值的概率选择,以及交叉、变异等概率的指导下,搜索逐渐向适应度值高的区域集中,直到收敛到适应度值最高的区域为止

【调度】遗传算法的基本理论相关推荐

  1. 并行多机调度遗传算法调参记录---变异和淘汰哪个更重要?

    遗传算法主要有3个参数,变异率,淘汰率和染色体数量.本文通过一个并行多机调度问题,通过交叉验证的实验的方法找到这几个参数可能的最优值. 有3台机器要完成30个工件,计算完成所有工件的最短时间. 首先优 ...

  2. 搜索技术——遗传算法

    如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间 一:进化与遗传的概念 拉马克(Lamarck)进化论: 一切物种都是其他物种演变和进化而来的,而生物的演变和进化是一个缓慢和连续的过程 环 ...

  3. 基于Matlab的遗传算法程序设计及优化问题求解

    FPGA教程目录 MATLAB教程目录 ----------------------------------------------------------------------- 遗传算法(Gen ...

  4. 用遗传算法,开启研究车间调度问题之门

    车间调度问题描述.分类,柔性作业车间调度问题描述,遗传算法的基本理论,遗传算法求解柔性车间调度问题及代码实现为主线,为你打开智能优化算法求解柔性作业车间调度问题之门. #1.车间调度问题描述# 调度问 ...

  5. 基于遗传算法改进的BP神经网络电网负荷预测,GA-BP神经网络电网负荷预测,1000案例之14

    摘要 节能减排,降低谈排放,降低电网传输的损耗 电力负荷预测是以电力负荷为对象进行的一系列预测工作.从预测对象来看,电力负荷预测包括对未来电力需求量(功率)的预测和对未来用电量(能量)的预测以及对负荷 ...

  6. matlab 功率分配,一种基于遗传算法的NOMA功率分配方法与流程

    本发明涉及一种基于遗传算法的NOMA功率分配方法,属于无线通信技术领域. 背景技术: 随着移动互联网应用的发展,移动数据流量和终端连接数也呈爆炸式增长,未来全球移动通信网络连接的设备总量将达到千亿规模 ...

  7. 30篇强化学习求解车间调度文章(中文)大全

    国内使用强化学习求解车间调度问题的研究起步较晚,基本是在在2000年以后,而深度强化学习求解车间调度问题更是在2019.2020年左右开始流行.今天在上一篇文章的基础上((吐血整理)118篇强化学习求 ...

  8. 2018-3-27 遗传算法中的轮盘赌

    原出处:http://my.oschina.net/u/1412321/blog/192454 一.遗传算法的应用 函数优化(遗传算法的经典应用领域): 组合优化(实践证明,遗传算法对于组合优化中的N ...

  9. 实时操作系统主流调度方法RMS

    操作系统的调度方法有很多种,这里主要介绍主流的调度算法,像EDF这种调度算法就不表述了.目前几乎所有的商业实时操作系统的调度理论都基于RMS理论. 以下是基于RMS的一些假设理论: 1 各个任务之间没 ...

最新文章

  1. 零基础可以学python吗-零基础适合学习python吗?
  2. matlab理想低通滤波器代码_自己动手,解开Matlab下AMD锐龙处理器性能封印
  3. 转载 程序员上帝视角解读“旅行青蛙”,你的呱真的在旅行嘛? (手机游戏)...
  4. mac上java文件如何编译_如何在Mac上用Java编译和运行程序?
  5. GetWeApp聊天室 代码(微信小程序)
  6. 90-50-010-源码-hbase的rowkey设计
  7. matlab日期textscan,求助:在MATLAB里如何输入时间序列中的时间
  8. Kibana+Logstash+Elasticsearch 日志查询系统
  9. java与数据库的数据交互,Java与数据库初步交互(后续需要进行优化)
  10. ZOJ 3987 2017CCPC秦皇岛 G:Numbers(高精度+贪心)
  11. sqlserver为数据库表增加自增字段
  12. Unity3D的Android移动之路之平台依赖编译
  13. 使用spring提供的URL多级路径匹配器
  14. 谷歌浏览器安装插件教程步骤,开发用这2个插件工作效率倍增
  15. Linked_data
  16. Detected outdated SDK Tools version 0.0.0 when the min version is XXX
  17. 以太网卡 及 以太网帧
  18. linux设置屏蔽海外ip,linux屏蔽海外流量的两种方法
  19. 八、Linux全套大总结
  20. css 滚动条scrollbar-thumb美化,可能会引起微信闪退

热门文章

  1. python 连通域面积_python 三维连通域分析
  2. 苹果如何Design Different
  3. 网络游戏服务器构架设计(四):云风的轨迹
  4. ST-Link资料05_自制ST-Link(提供原理图及hex和bin固件)
  5. PHP获取当前页面完整URL地址
  6. Unity双相机Camera,将虚拟相机视角画面显示在平面Plane上
  7. VS2017安装程序提示“无法下载应用程序,请检查Internet连接”,以及安装程序在“一切准备”页面停一会之后就一闪而过没反应了
  8. 不仅仅可以用来做爬虫,Puppeteer 还可以干这个!
  9. Mongo与robomongo
  10. CDH6.3整合Carbondata