APP下载

基于MATLAB的遗传算法优化软件设计

2014-02-20胡新何海浪郭潇然

汽车实用技术 2014年8期
关键词:适应度遗传算法染色体

胡新,何海浪,郭潇然

(长安大学,陕西 西安 710064)

基于MATLAB的遗传算法优化软件设计

胡新,何海浪,郭潇然

(长安大学,陕西 西安 710064)

优化设计理论使工程设计方法发生了变革。其中,遗传算法理论与传统优化算法相比,具有鲁棒性、自适应性、全局优化性和隐含并行性的特点。本文基于Matlab语言编程实现了遗传算法,并设计搭建了用户界面。通过标准测试函数对所开发软件优化功能进行了测试检验,优化结果准确,操作简单方便,系统设计满足预期要求。

遗传算法;Matlab;优化软件;标准测试函数

CLC NO.:U462.1Document Code:AArticle ID:1671-7988(2014)08-32-03

引言

优化设计理论与方法在20世纪60年代后期开始应用于工程设计,而直到20世纪70年代中期我国才开始有关研究。工程设计方法在这30多年的研究中发生了根本性的变革,现在的工程设计方法具有科学性、理性化等特点。

遗传算法(GA)是一种模拟自然进化过程搜索最优解的方法,以自然选择和遗传理论为基础,将生物进化过程中适者生存规则与群体内部染色体的随机信息交换机制相结合,与传统优化算法相比,具有鲁棒性、自适应性、全局优化性和隐含并行性的特点[2]。

Matlab配备有功能强大的数学函数支持库,它不仅具有效率高、编程语句简单、适用范围广等特点,而且还便于使用以直观、简洁并符合人们思维习惯的代码给用户提供了一个非常友好的开发环境。利用Matlab处理矩阵运算的强大功能来编写遗传算法程序有着巨大的优势[1]。

1、遗传算法基本理论

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

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

遗传算法的具体步骤(如图1):

(1)选择编码策略,把参数集合(可行解集合)转换染色体结构空间;

(2)定义适应函数,便于计算适应值;

(3)确定遗传策略,包括选择群体大小,选择、交叉、变异方法以及确定交叉概率、变异概率等遗传参数;

(4)随机产生初始化群体;

(5)计算群体中的个体或染色体解码后的适应值;

(6)按照遗传策略,运用选择、交叉和变异算子作用于群体,形成下一代群体;

(7)判断群体性能是否满足某一指标、或者是否已完成预定的迭代次数,不满足则返回第五步、或者修改遗传策略再返回第六步。

2、 MATLAB实现遗传算法

2.1 编码并产生初始种群

2.1.1 确定编码策略

编码就是表现型到基因型的映射,编码时要注意以下三个原则:

①完备性:问题空间中所有点(潜在解)都能成为GA编码空间中的点(染色体位串)的表现型;

②健全性:GA编码空间中的染色体位串必须对应问题空间中的某一潜在解;

③非冗余性:染色体和潜在解必须一一对应。

基于上述三条原则,采用二进制的形式来进行编码,将某个变量值代表的个体表示为一个{0,1}二进制串。

2.1.2 要确定种群规模M

过大或过小的种群规模都会对进化结果产生影响,一般种群设定为300~400个个体。

2.1.3 计算染色体长度

染色体的长度是根据所设定的求解精度计算而得的;假定求解精度为pre,则染色体的长度L由如下公式计算得出:

最后随机生成M个长度为L的二进制编码串,构成初始种群。实现过程如下:

2.2 杂交

杂交就是将一组染色体上对应基因段的交换得到新的染色体,然后得到新的染色体组,组成新的群体[3]。杂交的实现过程如下:

2.3 变异

变异是通过一个小概率改变染色体位串上的某个基因。变异的实现过程如下:

2.4 适应度评价

适应度评价的关键在于适应度函数的选择,由于本文是采用遗传算法作函数优化,则理想情况应是直接将目标函数作为适应度函数,这样目标函数值即为适应度值,方便进行后续的选择和最优解输出[7]。

针对本文还要做出遗传算法的优化界面,适应度函数也

是根据用户的需要自行输入的,这样就会产生适应度函数不确定的问题,为了解决这个问题,在Matlab编程时使用了eval函数,将输入的目标函数字符串经转化识别后,根据优化变量的取值范围求其目标函数值即适应度值[6]。这样适应度评价的实现过程为:

2.5 选择

优胜劣汰的选择机制使得适应值大的个体有较大的存活机会,不同的选择策略对算法性能有较大的影响。对函数优化问题上,基于局部竞争的选择对适应度函数要求较小,同时能够将适应度值小的个体轻松选择出来。因此,本文采用基于局部竞争的选择方法[8]。选择的实现过程如下:

2.6 GUI制作

首先对GUI进行布局设计,然后编写实现GUI控件功能的回调函数;同时到工作界面的美观性,对图形区添加了图片背景,最终完成的工作界面如图2所示:

3、软件系统的功能验证

标准测试函数Bohachevsky函数F(χ,χ)=χ2+2χ2-

1212 0.3cos(3πχ1)cos(4πχ2)+0.3(-50≤χi≤50)在(χ1,χ2)=(0,0)处有一全局极小值0。使用Bohachevsky函数对该软件进行功能验证结果如图3所示:

4、结论

由上述验证过程可知:得出最小值为0,此时优化变量x1、x2的取值均为0,与之前介绍的Bohachevsky函数特性一致,因此,优化结果正确,该软件功能能正常实现。

但是,本软件系统还存在一些不足:该系统仅是针对二元函数的优化问题进行的设计,还未能拓展至多元函数,二元函数和多元函数的优化在程序实现上的差异主要是在适应度评价、个体和优化变量取值范围之间的转化两个方面,这也将是我在今后学习中需要解决的一个问题。

[1] 张志涌,杨祖樱.Matlab教程(R2011a)[M].北京:航空航天大学出版社,2012.

[2] 雷英杰.MATLAB遗传算法工具箱及应用[M].西安:电子科技大学出版社,2005.

[3] 宋莹,任金霞等.基于Matlab的GUI设计遗传算法优化软件[J].计算机与现代化,2004.

[8] 罗述全.传统优化算法与遗传算法的比较[J] .湖北工业大学学报.2007.

[5] 章红兵.基于MATLAB的遗传算法优化工具箱的应用[C].中国科技文论在线.

[6] 陈国良,王煦法,庄镇泉.遗传算法及其应用[M].北京:人民邮电出版社,1996.

[7] Bo-Ping Wang,Supervising Professor,Wen S.Chan.GENETIC ALGORITHMS IN DESIGN OPTIMIZATION[D].American,The Unveisity of Texas,2000.

[8] 刘国华,包宏,李文超.用Matlab实现遗传算法程序[J].计算机应用研究,2001.

Genetic algorithm optimization software design based on MATLAB

Huxin, He Hailang, Guo Xiaoran
(Chang'an University, Shaanxi Xi’an 710064)

The optimal design theory in engineering design has made the traditional engineering approach to a fundamental change .The theory of genetic algorithm in the optimization of the design are robust, adaptive, global optimization and implicit parallelism, which the traditional optimization algorithms donot have. This paper dsigns the genetic algorithm based on Matlab programming and build the user interface. Through the standard test function test the development software optimization function, the optimization results accurate, system friendly interface, easy to operate, the system design is expected to meet.

Genetic Algorithms; Matlab; Optimization software; Standard test functions

U462.1

A

1671-7988(2014)08-32-03

胡新,硕士研究生,就读于长安大学汽车学院。

猜你喜欢

适应度遗传算法染色体
改进的自适应复制、交叉和突变遗传算法
基于遗传算法的高精度事故重建与损伤分析
基于遗传算法的模糊控制在过热汽温控制系统优化中的应用
多一条X染色体,寿命会更长
基于遗传算法的智能交通灯控制研究
为什么男性要有一条X染色体?
启发式搜索算法进行乐曲编辑的基本原理分析
真假三体的遗传题题型探析
能忍的人寿命长
基于人群搜索算法的上市公司的Z—Score模型财务预警研究