基于遗传算法的陶瓷配方优化设计

2019-10-08 03:03罗艳霞杨云车艳
关键词:父代适应度交叉

罗艳霞, 杨云, 车艳

( 1.莆田学院 信息工程学院, 福建 莆田 351100; 2.陕西科技大学 电气与信息工程学院, 陕西 西安 710021 )

0 引言

传统陶瓷配方由人工反复实验来完成,需要耗费大量的人力和物力.近年来,随着计算机技术的发展,计算机技术被逐步应用到陶瓷生产领域中.例如,杨云等[1]使用复合形法计算了陶瓷坯料配方,但因复合形法只能在局部找到最优解,所以杨云等的研究未能取得全局最优解;程杰[2]利用标准遗传算法对陶瓷配方的优化进行了研究,但该算法容易出现早熟,配方精确度较低.本文针对标准遗传算法在陶瓷配方应用中的不足,提出一种改进的标准遗传算法,并通过陶瓷配方实验验证本文方法的有效性.

1 陶瓷配方优化设计的数学模型

1.1 提取约束变量

本文在配方的过程中选取组成含量相对较多的8种化学成分,分别为Al2O3、SiO2、CaO、Fe2O3、MgO、K2O、Na2O、TiO2[3],而其他含量较小的成分(如P2O5)本文不作考虑.

(1)

原料的化学组成可表示为:

(2)

1.2 建立目标函数

坯料的化学组成尽可能地接近预定值,设立计算值和理论值之间的绝对误差作为目标函数,已知绝对误差值大于等于零,求它的最小值.因本文选定的化学成分为8种,因此需要建立8个目标函数.通过求得目标函数的最小值,可使目标函数达到最优.目标函数的表达式为:

1.3 选取约束条件

由此得到陶瓷坯料的配方模型为:

(3)

2 改进的遗传算法在陶瓷配方中的操作

改进的遗传算法在陶瓷配方中的操作步骤如下:

1)编码策略.遗传算法中有多种编码方式,常使用的编码方式有二进制编码、格雷编码、浮点数编码等.因二进制编码和格雷编码不稳定,运算较为复杂,并且在陶瓷配方求解过程中,坯料和原料的化学组成含量都是实向量,所以本文算法选取浮点数编码.运用浮点数编码可以同时考虑求解实际问题和遗传算子两个因素,并且可以采用若干实数变量分别表示各种原料在配方中所占的质量百分比.

2)生成初始群体.生成初始种群的方法有两种:一种方法是随机生成一定数目的个体,然后从中挑出最好的个体加入到初始种群中,不断迭代该过程,直到初始种群个体达到预先确定的规模;另一种方法是根据问题固有知识,确定最优解在整个问题空间中的分布范围,然后以此分布范围设定初始种群.因第1种方法产生的初始种群不利于搜索最优解,因此本文采用第2种方法.第2种方法不仅能找到最优解,而且搜索效率高.根据陶瓷配方预处理的计算,得到各原料的用量上限和用量下限的分布范围,然后在该分布范围内生成初始种群.群体规模M是遗传算法中的一个重要参数,如果M值太小,算法可能收敛过快;如果M值太大,则会浪费计算资源.根据文献[5],M值一般取10~160.本文通过实验来确定群体大小,实验结果表明当M取值为128时,算法的运行时间与效率最佳;因此,本文在实验中取M=128.

3)构造适应度函数.在遗传算法中应用适应度可以度量出群体当中的个体是否能够在计算时达成最优解.适应度值大的个体,其遗传到下一代的概率就大,反之就小.本文选取配方设计数学模型中的目标函数(3)作为适应度函数.在陶瓷配方中,为了使计算值能够无限接近目标值的化学组成,本文采用标准函数极小化方法对其进行求解.

4)选择操作.选择操作的目的是从当前群体中选出优良个体,以此提高全局的收敛性和计算效率.选择的基础是适应度,适应度较高的个体遗传至下一代的机会较高,从而有较多的后代;而适应度较低的个体则产生较少的后代,最后逐渐被淘汰.标准遗传算法中最常用的选择操作为轮盘赌模型,它以个体的适应度为基础,个体的适应度越大,其在轮盘上所占的比例就较大.因该模型运行效率较低,且无法确保最优个体能够遗传至下一代,因此本文对选择操作进行如下优化: ①采用随机联赛选择模型[6]代替轮盘赌模型,以此减少运算处理量; ②为了保证算法具有局部最优化的能力,允许父代和子代进行竞争,让优良个体通过相互竞争来决定谁进入下一代.

5)交叉操作.交叉操作以交叉概率作为选择标准.交叉操作过程为:首先选出要进行交叉的个体,建立交叉配对池;然后对配对池中的个体进行完全随机等概率地一一配对;最后对每一对个体随机选定交叉点,交换基因片段,生成新的子代个体.标准遗传算法采用算术交叉法实现交叉操作,如公式(4)所示:

(4)

公式(4)中:rnd是[0,1]区间内的一个随机数;parent1与parent2对应的是父代个体矢量,child1与child2对应的是因交叉而形成的子代个体矢量.由于通过交叉操作产生的子代个体始终位于父代个体的连线之上,因此子代个体对应的搜索空间会持续收缩,进而导致早熟.因此,本文对标准遗传算法进行改进,即对父代矢量的各个分量进行交叉时,采用不同的随机数,如下所示:

child1[j]=parent1[j]+rnd[j](parent2[j]-parent1[j]),

(5)

child2[j]=parent2[j]+rnd[j](parent1[j]-parent2[j]).

(6)

上式中parent1[j]与parent2[j]分别是父代parent1和parent2的分量,child1[j]与child2[j]分别是子代个体矢量child1和child2的分量,rnd[j]是[-2,2]区间内的一个随机数.改进遗传算法后,产生的子代个体不再局限于父代个体的连线上,而是散布在相对广阔的空间范围内,因此可防止出现早熟,提高全局寻优效率.

(7)

7) 交叉率Pc和变异率Pm的自适应调整.Pc和Pm值的选取对遗传算法的行为具有很大影响.Pc值过大,容易破坏遗传模式;Pc值过小,会导致搜索速度下降.Pm值过大,会使遗传算法变为随机搜索算法;Pm值过小,会导致变异操作产生新个体的能力变差.在标准遗传算法中,交叉率Pc和变异率Pm都需通过多次实验来确定最合适的值,不仅耗时耗力,而且不易确定合适的值.本文通过自适应调整Pc和Pm, 即:对性能较差的个体,采用较大的交叉率和变异率;对性能较好的个体,则根据适应度的大小采用适当的交叉率和变异率;当繁衍代数逐渐增大时,逐渐降低交叉率和变异率,以此提高算法的收敛性.具体实现如下:

设Pc1=0.99(1-gen/G),Pc2=0.99(1-gen/G), 则:

(8)

设Pm1=0.3(1-gen/G),Pm2=0.01(1-gen/G), 则:

(9)

上式中,Pm与Pc的参数相同,gen为当前繁衍代数,G为一常数(G≥gen),fmax为群体最大适应值,favg为群体的平均适应值,f′为参与交叉的两个个体的较大的适应值,f为变异个体适应值.

3 实例计算及分析

以某瓷厂的陶瓷配方为例进行实例计算,所选目标配方及原料的化学组成如表1所示.

表1 目标配方及原料化学组成

标准遗传算法和改进遗传算法运行100次的运行时间和误差结果见表2.两种算法所包含的坯料化学组成(不含TiO2)以及绝对误差和相对误差的结果见表3.从表2可以看出,改进遗传算法的运行时间长于标准遗传算法,其主要原因是改进后的算法扩大了局部搜索空间,而且算法在运行过程中对Pc和Pm进行了自适应调节.从表3可以看出,改进遗传算法的精度远远高于标准遗传算法.

表2 标准遗传算法和改进遗传算法的运行时间和误差

表3 标准遗传算法和改进遗传算法的误差

4 结论

应用改进的遗传算法对陶瓷配方进行试验表明,改进遗传算法的配方精度的绝对误差仅约为0.1,明显优于标准遗传算法,说明该方法在陶瓷配方设计中具有很好的适应性.本文算法的时间效率有待进一步提高,因此今后我们将继续讨论如何提高算法效率.

猜你喜欢
父代适应度交叉
中国高等教育的代际传递及其内在机制:“学二代”现象存在吗?
延迟退休决策对居民家庭代际收入流动性的影响分析
——基于人力资本传递机制
改进的自适应复制、交叉和突变遗传算法
新冠疫情期间增加了父代体育人口吗?
——基于反向社会化理论的实证研究
“六法”巧解分式方程
一种基于改进适应度的多机器人协作策略
男孩偏好激励父代挣取更多收入了吗?
——基于子女数量基本确定的情形
连数
连一连
基于空调导风板成型工艺的Kriging模型适应度研究