环境污染与防治
ENVIRONMENTAL POLLUTION & CONTROL 
1999年 第21卷 第5期 Vol.21 No.5 1999



水质模型参数识别的遗传算法
刘国东　姚建　张翔
　　摘要　O'connor模型是一个比广泛应用的Streeter-Philips模型更精确的水质模型，由于该模型参数率定的困难性，限制了它在实际中的应用。通过探讨用新近发展起来的遗传算法率定该模型参数，获得了比其他方法如网格法和单纯形法更高精度的参数值，使O'connor模型的广泛应用成为可能，并为水质模型参数识别提供了一条新途径。
　　关键词　水质模型　参数识别　遗传算法
Using genetic algorithm to identify parameters of a water quality model
　Liu Guodong,Yao Jian,Zhang Xiang
Sichuan Union University,Chendu 610065
　　Abstracts:The genetic algorithm is a new optimization method that combines certainty with randomness in searching process so that the optimization solution of a global problem is possible to be obtained.The method is employed to identify parameters of O'Connor water quality model that is one of accurate water quality models.As result,the parameters obtained by this method are more precision than them by other optimization techniques,such as grid method and simplex search method.Therefore,the genetic algorithm is an efficient and more precision method for identification of parameters in water quality models.
　　Keywords:Water quality model　Parameter identification　Genetic algorithm
　　O'connor模型是描述河水中DO-BOD水质变化的一种较精确的模型［1］，是在Streeter-Philips模型的基础上发展起来的，但比广泛应用的Streeter-Philips模型考虑的因素更全面，因此对准确估算水环境容量和有效进行总量控制具有更重要的意义。其一般形式是：
　　
(1)
　
(2)
式中，L是BOD的浓度；LN是氨氮的浓度；Cs是饱和溶解氧DO的浓度；C是溶解氧DO的浓度；α是硝化系数；k1是BOD的耗氧系数，d-1；k2是大气复氧系数，d-1；k3是BOD沉积系数，d-1；k4是氨氮耗氧系数，d-1。(1)和(2)式的解析解是：

(4)
式中，L0、LN0和C0分别是BOD、氨氮和DO的初始浓度。使用(3)和(4)式能够很容易地计算起始断面以下河水中BOD和DO的浓度。从而可估算一个河流的水环境容量，为总量控制提供依据。但是在采用这两个公式之前，首先需要确定或识别公式中k1、k2、k3和k4这4个参数值。通常根据水团追踪实验进行率定，由于(4)式是高度非线性模型，其误差函数是一个多谷多峰函数，过去在采用一般的非线性优化方法率定参数时，获得的参数往往精度很低，致使计算结果误差较大，难以满足工程技术要求。近来遗传算法在优化领域里相当活跃，提供了一种崭新的优化方法。本文以某河流的水团追踪实验为例探讨遗传算法在率定O'connor模型参数中的应用及其优点。
1　遗传算法原理简介
　　遗传算法是J.D.Bagley于1967年首次提出的，但具有开创意义的遗传算法的理论和方法研究则始于1975年美国密西根大学J.H.Hotland的工作［2］。目前它已在许多领域得到广泛应用［3～6］，是近年国际上优化计算领域里的研究热点，我国这方面的研究起步较晚，尤其在水环境科学中的应用则更不多见。
　　遗传算法(Genetic Algorthm，简称GA)建立在种群遗传和自然选择的基础上，模拟了自然界“物竞天择，适者生存”的进化过程。它有许多突出的优点，如全局寻优、并行操作、速度快、不要求目标函数可微或连续等。GA主要有“复制”、“交叉”和“变异”3种操作［7］。
　　设目标函数为
　　　　maxZ=f(x1，x2，…，xn)
(5)
式中，x1，x2，…，xn为决策变量。根据实际问题先确定决策变量的取值范围，即xi∈［xdi，xui］(i=1，2，…，n)，然后用一个长度为li位的二进制编码串Si来表示xi，即
　　　　
(6)
　　　　式中，
(7)
全部的决策变量则用长度l=n.li的二进制编码串s表示，即

　　根据各变量的顺序很容易在S中找到各决策变量所对应的子串si，通过(6)式获得xi，将x1，x2，…，xn代入(5)式即得到函数f的值。因此，一个编码串对应一个f值，这样建立了编码串S与函数f之间的对应关系。有了这种关系，就能利用遗传算法进行寻优。遗传算法的基本步骤如下：
　　①随机生成M个l位的二进制编码串，作为基本种群放入配合池(mating pool)得到M个函数值fk(k=1，2，…，M)。依照fk的值由大到小对M个编码串进行排序。
　　②复制(copying)：以Ps的概率将前M.Ps个编码串复制并放在mating pool中，淘汰函数值f较小排序在后的M.Ps个编码串(适者生存)。
　　③交叉(crossover)：从mating pool里的M个编码串中随机选取两个编码串进行交叉操作，随机地选择交叉位置C(1＜C＜l)，将第一串的前C位编码与第二串C位以后的编码合并形成一个新的编码串，同样将第一串C位以后的编码与第二串前C位编码合并构成另一个新的编码串，即两个编码串以C位为界前后两个部分相互交换(交叉)生成两个新的编码串。在mating pool中要随机地选出(M.Pc/2)对编码串进行这样的交叉操作，生成M.Pc个新的编码串替代原来(M.Pc/2)对编码串放回mating pool中。
　　④变异(mutation)：在mating pool中随机选取一个编码串，对该编码串，随机选定变异位置E，在E位上如果其值是1则变为0，如果是0则变为1，称作变异。要选取M.Pm个编码串进行这种变异操作。
　　⑤对mating pool中的M个新编码串(新一代)，按函数值f由大到小重新排序。重复②到④步，生成下一代。直到mating pool中最大的函数值f不再变化或新一代中的最大f值与上一代中的最大f值之差满足一定精度要求为止。则最后一代中函数值f最大的那个编码串即为最优解。
　　上述步骤中M是基本种群个数，Ps是选择要复制的编码串的概率，Pc是用于交叉的概率，Pm是产生变异的概率。一般地，M=60～100，Ps=0.1～0.25，Pc=0.75～0.95，Pm=0.001～0.05。
2　应用遗传算法率定水质模型参数
　　为计算某河的水环境容量，在该河进行了水团追踪实验。实验前已测定河水中的溶解氧DO的初始浓度C0为4.71 mg/L，BOD的初始浓度L0为2.69 mg/L，氨氮的初始浓度LN0为2.81 mg/L，α=2.70 mg/L，平均气温为29 ℃。溶解氧DO的浓度随距离和时间变化的实测结果见表1。
表1　某河流水团追踪实验溶解氧实测结果

断面
编号时间ti
(d)DO浓度Ci
(mg/L)饱和DO浓度Csi
(mg/L)
10.234.037.63
20.354.817.74
30.573.967.62
40.824.047.58
50.994.917.54
61.164.687.61


　　将表1中的时间ti和饱和溶解氧浓度Csi代入(4)式，如果存在一组参数(k1，k2，k3，k4)，使得计算浓度CCs与实测浓度Cs的偏差最小，那么这组参数即为所求的最优参数。为寻找这组参数，让 

(8)
为最小。f为目标函数，其理论值为零；k1、k2、k3、k4为决策变量。由于遗传算法的目标函数是寻求极大值，因而采用y=1/f作为遗传算法的目标函数。根据河流的实际情况，k1、k2、k3、k4的变化范围见表2，编码串中子串的长度li取为28位，则一个编码串的全长l为112位。在mating pool中的种群数M=80，复制概率Ps=0.2，交叉概率Pc=0.8，变异概率Pm=0.03。当演化到824代后，目标函数不再变化，其值为0.7258，得到最佳参数值见表2。
　　为检验遗传算法的优点，表2同时列出了其他两种优化方法率定的参数，由表2可以看出，遗传算法的目标函数显然比网格法［1］小得多，表明遗传算法的精度要比网格法高得多。单纯形法也不要求目标函数连续、可微，是工程技术上应用较广泛的一种优化方法。用此种方法率定O'connor水质模型参数时，发现优化结果极大地依赖于参数的初始值，初始值不同，目标函数差异很大，表2给出了其中三组初始值所率定的结果(A、B和C)。可见三组初值得到了三个目标函数，其中C组的结果最好，但找到与C组相应的初始值却需要经过多次试探。单纯形法与梯度最速下降法一样，是一种确定性寻优方法，它只能按照确定的模式向目标函数减小的方向搜寻，最终到达初始值附近的极小点而不再前进，因此不能穿过局部峰点而达到全局最小点，除非初始值位于全局极小点附近(找到这组初值并不是一件容易的事情)。遗传算法虽然向目标函数减小的方向搜寻，由于交叉、变异又随机跳跃，因而有可能越过局部峰值点而到达全局最小点。所以，在本例中遗传算法找到了较小的目标函数，从而获得的模型参数精度也较高。除此之外，由表2可见遗传算法的取值范围较其他两种方法要大，因而率定过程的客观性更强。
表2　几种优化方法率定的模型参数

　　k1k2k3k4目标函数f
遗传ki的取值范围［0.1，1.0］［0.1，1.0］［0.1，1.0］［0.1，1.5］
算法最　终　解0.46120.94380.77500.38160.7258
网ki的取值范围［0.4，0.5］［0.3，0.5］［0.2，0.4］［0.3，0.4］
格初始网格间距0.020.030.030.02
法最　终　解0.50.50.40.31410.057
单纯形法A
初　始　值0.10.10.10.1
最　终　解0.10.150.10.11.7406
B初　始　值0.90.90.90.9
最　终　解0.90.1350.90.92.099
C初　始　值0.30.40.50.3
最　终　解0.5251.0500.8750.5250.8671


3　结论 
　　O'connor模型是一个较精确的水质模型，该模型参数率定的困难性限制了它在水环境中的广泛应用。应用遗传算法率定该模型参数，获得的参数精度要比用网格法和单纯形法高得多，可满足工程技术要求，且率定过程的客观性更强。此外，遗传算法将确定性与随机性有机地结合起来，克服了传统的优化方法只能局部寻优的缺点，使得全局寻优成为可能。它还以其并行运行、不需目标函数连续、可微等优点将在水环境模型参数识别中得到更广泛的应用。
作者简介：刘国东，男，36岁。主要从事水环境科学的教学与科研工作，在“中国科学”、“中国环境科学”等核心刊物发表论文20余篇。
作者单位：四川联合大学，成都610065
参考文献
1　张永良，刘培哲.水环境容量综合手册.北京：清华大学出版社，1991.605～607
2　Goldberg D E.Genetic algorithm in search optimization and machine learning.Massachusetts:Addison Wesley,1989
3　Franchini M.Hydrological Sciences Journal,1996,41(1):21～40
4　Rizel B J,Eheart J W,Ranjithan S. Water Resources Research,1994,30(5):1589～1603
5　McKinney D C,Lin M D.Water Resources Research,1994,30(6):1897～1906
6　姜大立，杜文.1996年中国神经网格大会论文集.成都：西南交通大学出版社，1996.278～281
7　何虹，金希东，钱清泉.1996年中国神经网格大会论文集.成都：西南交通大学出版社，1996.261～264
(收到修改稿日期：1998-11-14)
