优化算法:遗传算法

注:可先看实例《优化算法:遗传算法实例》对照理解

目录

1.前言

2.遗传算法的基本原理

2.1基本思想

2.2遗传算法中的生物遗传学概念

3.遗传算法的步骤


1.前言

遗传算法(Genetic Algorithm,GA) 是一种解优化问题的导向随机搜索方法,它模拟生物在自然进 化中的选择和遗传(即适者生存)规律而提出来的全局优化搜索算法。遗传算法的思想和基本概念最早由美国Michigan大学的J.Holland 教授于1975提出来的。

2.遗传算法的基本原理

2.1基本思想

遗传算法的基本思想基于模仿生物界遗传学的遗传过程。它把问题的参数用基因代表。把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染色体的个体组成的群体。这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代。后代随机继承了父代的最好特征,并在生存环境的控制支配下继续这一过程。群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解。

2.2遗传算法中的生物遗传学概念

遗传学概念、遗传算法概念和数学概念三者之间的对应关系
序号 遗传学概念 遗传算法概念 数学概念
1 个体 要处理的基本对象、结构 可行解
2 群体 个体的集合 被选定的一组可行解
3 染色体 个体的表现形式 可行解的编码
4 基因 染色体中的元素 编码中的元素
5 基因位 某一基因在染色体中的位置 元素在编码中的位置
6 适应值 个体对于环境的适应程度,
或在环境压力下的生存能力
可行解所对应的适应函数值
7 种群 被选定的一组染色体或个体 根据入选概率定出的一组可行解
8 选择 从群体中选择优胜的个体
淘汰劣质个体的操作
保留或复制适应值大的可行解,
去掉小的可行解
9 交叉

染色体上对应基因段的交换

根据交叉原则产生的一组新解
10 交叉概率

染色体对应基因段交换的概率

闭区间[0,1]上的一个值,一般为 0.65~0.90
11 变异 染色体水平上基因变化 编码的某些元素被改变
12 变异概率 染色体上基因变化的概率 开区间(0,1)内的一个值,一般为0.001~0.01
13

进化、适者生存

个体进行优胜劣汰的进化,一代又一代地优化

目标函数取到最大值,最优的可行解

3.遗传算法的步骤

遗传算法计算优化的操作过程如生物学上生物遗传进化的过程,主要有三个基本操作(或称为算子):选择(Selection)交叉(Crossover)变异(Mutation)

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

遗传算法具体步骤:

  1. 选择编码策略,把参数集合(可行解集合)转换染色体结构空间。
  2. 定义适应函数,便于计算适应值。
  3. 确定遗传策略,包括选择群体大小、选择、交叉、变异方向以及确定交叉第三步:确定遗传策略,概率、变异概率等遗传参数。
  4. 随机产生初始化群体。
  5. 计算群体中的个体或染色体解码后的适应值。
  6. 按照遗传策略,运用选择、交叉和变异算子作用于群体,形成下一代群体。
  7. 判断群体性能是否满足某一指标、或者是否已经、完成预定的迭代次数,不满足则返回第五步或者修改遗传策略再返回第六步。

遗传算法有很多具体的不同实现过程,以上介绍的是标准遗传算法的主要步骤,此算法会一直运行直到找到满足条件的最优解为止。

*其中《高等工程数学》一书给出的给出的步骤为

  1. 随机初始化pop_size 个染色体.
  2. 用交叉算法更新染色体.
  3. 用变异算法更新染色体.
  4. 计算所有染色体的目标值.
  5. 根据目标值计算每个染色体的适应度.
  6. 通过轮盘赌的方法选择染色体.
  7. 重复第2至第6步直到终止条件满足.
  8. 输出最好的染色体作为最优解

注:本篇内容均为对《MATLAB建模与仿真》(周品 赵新芬 编著,国防工业出版社)摘录与个人归纳总结,如需要更加详细了解,可阅读原书“第16章 部分智能优化算法”部分。

你可能感兴趣的:(算法,高等工程数学,算法,数学建模,笔记,学习)