遗传算法及其在生物数学模型参数优化中应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
遗传算法及其在生物数学模型参数优化中的应用
摘要:遗传算法是近年来发展起来的智能性优化算法。它模仿了自然界生物进化的机制,利用数学方法模拟生物的遗传、变异、选择等生物学规律,创造出了一种优化计算方法。遗传算法特别适合于复杂体系的优化,并往往能够得到很好的结果。生物数学模型是揭示复杂生物体系(或生物催化体系)内在规律的有力工具。较为复杂的生物数学模型参数的求取较为困难。本文介绍了遗传算法原理以及利用遗传算法优化计算生物数学模型参数的方法。
关键词:生物数学模型遗传算法优化
中图分类号: q815 文献标识码:a 文章编
号:1674-098x(2011)12(c)-0000-00
1引言
生物数学模型对于生物过程的理性分析、定量化研究具有重要作用。特别是对于复杂生物系统而言,仅仅采用实验的方法一般很难全面反映整个系统的特性,利用数学模型的方法不仅可以加深研究者对系统内在机理的认识,还可以通过计算机模拟的方法研究系统的特性,是一个有力的研究工具。使用数学模型方法需要求取模型参数。对于简单的代数方程,如米氏方程,可以采用双倒数作图方法求取模型参数。对于稍复杂的代数方程,如含有抑制常数的酶反应方程 (式1),可以首先在无抑制物i的条件下进行实验,此时可以忽略分母中的抑制项(i2/ki),方程形式与米氏方程相同,采用求米氏方程参数的方法得到vm和km。然后,在一定底物浓度s的
反应体系中加入不同浓度的抑制剂i并测量反应速度v,将实验数据代入式(1),利用非线性回归,求取抑制常数ki。
(1)
对于更加复杂的数学模型,如微分方程组构成的数学模型,上述方法就无能为力了。复杂系统的优化是一个较为困难的问题,数学家对此进行了大量的研究。美国学者john h. holland在上世纪六、七十年代利用计算机模仿生物遗传和进化过程,创造了一种新的优化算法——遗传算法(genetic algorithm, ga)[1]。遗传算法从上世纪80年代开始在复杂优化问题的求解方面得到了广泛的应用并有出色的表现。本文将介绍遗传算法原理及其在生物数学模型参数优化中的应用。
2 遗传算法计算原理
在生物界,遗传、变异与自然选择,周而复始,使生物的适应性不断提高。遗传使生物种群的基本属性得到保持;变异使某些个体的个别属性发生变化,正向变异使其性能提高,而负向变异使其性能退化;自然选择使适者得以生存、繁殖,不适者遭到淘汰和灭绝。经过长期进化,生物种群的性能就会不断地提高。ga模仿生物进化过程,包括繁殖、突变、染色体交叉和选择等几个步骤,对大量个体(染色体)进行反复地筛选,最终找到近似最优解。基本步骤如下。
2.1 编码和初始化
为了方便计算机处理,规定染色体(或基因)由两种类型的碱基
(以0或1表示)排列构成,其序列表示染色体型或染色体上的基因型(图1)。假设进行参数优化的生物数学模型由单个函数构成。该函数有a个参数s1sa,在ga中,这a个参数的0、1编码被看作是生物染色体(或生物个体)。计算之初,首先随机产生一个包含b 个个体的生物种群(第一代),表示为g1,g2,……,gb。染色体可以包含一个基因或多个基因,在这里,染色体包含a个基因,一个基因编码一个被优化的参数。这样,一个染色体就含有模型的全部参数。因此,可以用来求解模型,并对照测定值计算模型误差。原始种群的染色体型(或基因型)由计算机随机产生,称为原始种群的初始化。
经过初始化的染色体具有了初始值,即该染色体的二进制数的值。该值大小称为染色体的表型。上述0、1编码的s属于整数域。如果s属于实数域,则需公式把s映射到实数域上。在程序编制过程中,染色体群体可以使用二维数组来实现。初始化利用随机函数随机产生0或1,填写表示染色体群的二维数组。
2.2 突变
突变是以很小的概率(称为突变率,pm)随机地改变染色体上的一个碱基(即随机地使编码基因的二进制数的一个位发生从1到0或从0到1的翻转)。突变发生在哪个染色体上以及在染色体上哪个位点都是由计算机随机确定的。
2.3 交叉
染色体交叉也称基因重组,是指一对染色体之间发生部分交换,
产生新的染色体。染色体交叉以一定的概率发生,称为“交叉率”(pc)。染色体上发生交叉的位点由计算机随机产生(竖线表示交叉位点)。与突变操作相类似,利用概率发生函数,当概率大于交叉率pc时进行交叉操作。即首先利用概率发生函数在整数1~b范围内随机选择配对的染色体,然后在整数1~(m-1)范围内随机选择交叉发生的位置(m为二进制数编码的染色体的位数),两染色体的选定位置之后的部分进行互换,完成交叉操作。
2.4 解码和适应度计算
解码过程需要把二进制正整数转换成十进制正整数。如果模型参数以实数表示,需要先把二进制转换成十进制正整数,然后按照线性转换方法映射到实数域中。
利用各染色体的基因型(即g1,g2,……,gb)和适应度函数(反比于模型预测值与试验测定值之间的误差平方和),可以计算各染色体的对环境的适应度。适应度为大于0的正数,误差越大,适应度越小。适应度用来确定一个个体被遗传到下一代的概率。求适应度函数最小值的优化问题时,可以增加一个负号,把求函数最小值的问题转换成求最大值的问题。
2.5 选择和繁殖
以每个染色体的适应度作为选择该染色体的概率,利用赌盘对每个染色体进行随机选择。赌盘由随机函数控制转动和随机停止,选择b次,得到b个个体。f值大(适应度高)的个体被选择的几率高,f值小的个体被淘汰的几率高。被选中的染色体得以复制和繁
殖,产生生物种群的第二代。第二代的最大和平均适应度一般比第一代有所提高。生物种群一代又一代地经过突变、交叉、选择和繁殖,适应度不断提高,最终得到近似于最优的解。
3 遗传算法优化生物数学模型参数
以上介绍了由单个方程构成的生物数学模型。但复杂生物数学模型大多包含多个方程,既包含代数方程又包含微分方程。例如,酶或微生物反应动力学方程大多是代数方程,而质量平衡方程则为微分方程。以乳酸杆菌在乳酸起始浓度在0~90g/l范围内,厌氧发酵葡萄糖产生乳酸过程为例,方程(2)、(3)分别为菌体生长比速率(µ)和乳酸合成比速率(qp)方程,为代数方程;方程(4)~(6)为菌体(x)、乳酸(p)和葡萄糖(s)质量平衡方程,为微分方程:
上述模型参数列于表1,共有8个参数。比生长速率(方程2)包含底物抑制、产物抑制和最大菌体浓度限制。产物合成比速率包括生长相关与生长不相关两项因素(方程3)。底物消耗包括菌体生长和产物合成对底物的消耗(方程6)。定义染色体结构为长度为80位的二进制数,包含8个基因,每个基因占10位(图1)。一个染色体包含数学模型全部8个参数,代入数学模型能够计算得到一组过程变量(x,s,p曲线)。根据实验测定值可以计算出相应参数下数学模型预测值与实验值之间的误差平方和,进一步计算出该染色体的适应度,误差越小适应度越高。利用遗传算法求出使误差平方和趋于极小值的一组参数值即为参数的优化结果。上述计算过程完