- 36
- 0
- 约2.77千字
- 约 6页
- 2021-02-21 发布于湖北
- 举报
遗传算法及其应用
遗传算法(GeneticAlgorithm,GA)是近多年来发展起来的一种全新的全局优化算法,它是基于了生物遗传学的观点,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它通过自然选择、遗传、复制、变异等作用机制,实现各个个体的适应性的提高,从而达到全局优化。[1]
生物学背景
所有生物的进化都具有一些共同的特点:
(1)进化的发生地点是信息载体,即染色体(Chromosome),而不是被编码的生物个体(Individual)上。
(2)染色体能被复制,成功适应环境的被编码个体的染色体有更多的机会进行复制,形成有优势的后代。
(3)染色体能产生突变,使子代染色体不同于母代。
问题的解被称为个体,它表示为一个变量序列,叫做染色体或者基因串。[2]
算法流程
如下图所示:
产生初始种群:算法随机生成一定数量的个体(有时候操作者也可以干预这个随机产生过程,以提高初始种群的质量)。
计算个体适应度值:通过计算适应度函数得到适应度数值,按照适应度排序种群个体,适应度高的在前面。这里的“高”是相对于初始的种群的低适应度而言。
选择:依据原则“适应度越高,被选择的机会越高,而适应度低的,被选择的机会就低”。 不意味着完全以适应度高低为导向,因为单纯选择适应度高的个体将可能导致算法快速收敛到局部最优解而非全局最优解,我们称之为早熟。
交叉:也叫交配,每两个个体通过交配产生两个新个体,代替原来的“老”个体,而不交配的个体则保持不变。交配概率(范围一般是0.6~1)反映两个被选中的个体进行交配的概率。交配父母的染色体相互交换,从而产生两个新的染色体,第一个个体前半段是父亲的染色体,后半段是母亲的,第二个个体则正好相反。不过这里的半段并不是真正的一半,这个位置叫做交配点,也是随机产生的,可以是染色体的任意位置。
变异:一般遗传算法都有一个固定的突变常数(又称为变异概率),通常是0.1或者更小,这代表变异发生的概率。根据这个概率,新个体的染色体随机的突变,通常就是改变染色体的一个字节(0变到1,或者1变到0)。
参数
种群规模:即种群中染色体个体的数目。
字串长度:个体中染色体的长度。
交叉概率:控制着交叉算子的使用频率。
变异概率:控制着变异算子的使用频率。
中止条件:见上。[2]
示例
1.方弦 /archives/10462用100个透明三角形画一个火狐图标
2. 求解函数 f(x) = x + 10*sin(5*x) + 7*cos(4*x) 在区间[0,9]的最大值。知乎sjyan
/question
3.利用遗传算法求解01背包问题 /BreezeDust/p/3352090.html
存在的缺陷
收敛速度慢。
容易陷入局部最优点。
解决方法:选择算子,交叉算子和变异算子,这些参数的选择将直接影响算法的性能和搜索速度,所以选择合适的遗传算子是算法能高效地收敛到全局最优解的关键所在。[3]
算法性能
(1) 群体的规模越大,遗传算法的离线性能越好,越容易收敛.
(2) 规模较大的群体,遗传算法的初始在线性能较差;而规模较小的群体,遗传算法的初始在线性能较好.
(3) 增大变异概率会降低遗传算法的离线性能和在线性能,且随着变异概率的增大,遗传算法的性能会越来越接近于随机搜索算法的性能.
(4) 对于多点交叉算子,随着交叉点数的增加会降低遗传算法的在线性能和离线性能. [4]
应用
主要是全局最优化问题。
财富杂志500强企业中大多数都用它进行时间表安排、数据分析、未来趋势预测、预算、以及解决很多其他组合优化问题。
“欺骗”深度学习。[5]
日本新干线N700系列车“气动双翼”的独特空气动力造型车鼻。
近年来,遗传算法已被成功地应用于经济答理、交通运输、工业设计等不同领域.解决了许多问题。例如,可靠性优化、流水车间调度、作业车间调度、机器调度、设备布局设计、图像处理以及数据挖掘等。[6]
目前研究方向
值得研究的工作:
a) 遗传算法与优化技术的融合。
b) 算法的改进以及新型算法的提出。
c) 混合遗传算法。
d) 算法的并行化研究。
e) 加强遗传算法与应用的结合。
f) 面向多目标优化、约束优化问题的算法及理论研究。[7]
对我个人的启示
仿生学是创新的一个非常有效的起点。
跨学科的交流对学科的进展是非常有帮助的。
每一种算法都有其优点和缺点,我们应该扬长避短地使用算法。
每一种算法都有其发展的过程,从单一到多样,从不完善到渐渐完善。
参考文献:
[1] 遗传算法在组合优化中的应用研究[D]. 汪松泉.安徽大学 2010
[2] /wiki/%E9%81%97%E4%BC%A0%E7%AE%97%E6%B3%95维基百科——遗传算法
原创力文档

文档评论(0)