MATLAB的遗传算法的设计与仿真(3)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

MATLAB的遗传算法的设计与仿真(3)

20世纪60年代中期,John Holland和他的学生提出了有关遗传算法的完整理论和应用。随后1975年Holland教授发表 “Adaptation in Natural and Artificial Systems"这一著作。于是遗传算法被推广开来,被运用到优化计算和机器学习等问题中。于是才有了如今的遗传算法。

遗传算法从生物进化的一些特点借鉴而得,是一种通过模拟生物的自然选择和遗传机制进行自适应全局优化概率搜索的算法。在“适者生存”的理论中,只有那些适应性好的个体才能在不断变化的自然环境中存活下来,并通过遗传机制将有利于生存的特性传递给后代。与此同时,在遗传过程或生物适应环境的过程中,个体中发生了变异,具有了适应环境的能力。因此,在进化过程中,生物群体将逐渐地趋于优良化,生物也逐渐适应了生态环境的变化。从选定的初始解开始,通过不断循环迭代计算,一步步对当前解做出改善,直到找出最优解或满意解为止。

2。2遗传规划

遗传算法在研究问题时是把字符串当作染色体来表达问题的,字符串一般固定长度。然而现实问题往往很复杂,有时仅仅依靠字符串表达问题的所有性质是很难实现的,这时就需要用到遗传规划。遗传规划利用计算机程序来表达问题,实际问题中遗传规则的大小和结构都是可以调整的,这样即使问题性质复杂,也可以用遗传规划灵活的表达出来。其计算过程大致如下:

(1)确定问题的表达结构:遗传规划用可变的层状计算机程序结构表达问题。

形成初始群体。尽管初始形成的个体不一定符合实际,但在进化过程中会不断地改进,逐步趋近实际所需要的形式。

(2)计算适应度:将不同实验数据带入初始群体个体,得出一组计算值。再将计算值与实际数据比较,衡量个体的优劣。

(3)复制:根据进化论优胜劣汰的原则复制最佳的个体,淘汰最差的。于是形成新一代个体。

(4)交换:进行交换。从而产生新的个体

(5)突变:和遗传算法一样,遗传规划经过突变也能产生新个体。但遗传算法中的突变要比遗传规划重要。

(6)终止:重复执行(3)-(6)步工作,个体不断变化,逐步趋向最优。

在很多问题中,解最自然的表达方式就是计算机程序。这些问题就好像要找出特定输入产生特定输出问题一样的计算机程序,然而求解这些问题的过程又可以当作在可能的计算机程序空间中寻找适应性最好的程序。适应性反应了解决一个特定问题的计算机程序的优劣程度。

2。3进化策略

    进化策略和遗传算法(GA)一样,都是由进化算法(EAS)的演变出来的十分重要的算法。但在解的表示以及搜索和选择算子方面两者是完全不同的。遗传算法使用的是二进制编码或者整数编码,而进化策略是以真实值编码为基础的。两者之间最显著的差别是在于选择算子。进化策略中父代的选择是无偏的,也就是说用以重组的当前种群的每一个个体被选择的概率是相同的。幸存个体的确定性选择驱动ES的进行。不过近几年出现了许多混合方法。比如组合优化问题的求解问题中,使用整数编码的ES被广泛应用。,也有人提出GA可以使用ES选择模型进行。

1965年德国的Rechenberg和Schwefel提出了进化策略。二人早期一起研究连续函数优化问题。当时在ES种群中只有一个个体,且仅仅使用变异操作。每一代中,变异的个体与父代个体进行比较,保留更优秀的,这就是(1+1)策略。但(1+1)演化策略存在收敛不到全局最优解、效率低等弊端。后来才改进出(μ+1)演化策略,(μ+λ)演化策略,(μ,λ)演化策略等。 (责任编辑:qin)