基于遗传算法的试错法推求单位线

2013-06-26 09:46三门峡市水文水资源局
河南水利与南水北调 2013年4期
关键词:水文遗传算法流域

□张 宁(三门峡市水文水资源局)

0.引言

水文预报(Hydrological Forecasting)是根据前期或现时的水文气象资料,对某一水体、某一地区或某一水文站在未来一定时间内的水文情况做出定性或定量的预测。它是水文学的一个重要组成部分,是建立在客观水文规律基础上的一门应用科学,主要包括:洪水预报、枯水预报、冰情预报、台风暴潮预报、沙量预报等。预报的方法一般有经验和半经验方法、水文模型方法和统计预报方法。早期的水文预报方法出现于20世纪30年代,主要来自对洪水规律的分析和总结,没有严密的理论基础,基本上属于经验方法,所以也称为工程师方法,比较有代表性的是API方法、单位线法和马斯京根法,他们被称为水文预报的“老三篇”,至今仍广泛使用。

在流域汇流预报中,最常用的是经验单位线法。经验单位线(Unit Hydrography,简称UH)源自美国,于1932年由舍尔曼(L.K.Sherman)提出,因此又被称为舍尔曼单位线。推求单位线使用次洪时段净雨及流域出口断面的直接径流过程,推求方法主要有分析法、试错法、最小二乘法。由于流域汇流的复杂性和测验资料的误差,实际应用中分析法和最小二乘法结果往往会出现锯齿状和负值现象,甚至结果无法使用。试错法使用比较广泛,但主要缺点是单位线过程的初始假定比较困难,试错过程的计算量大。

鉴于上述方法不足,本文提出以MATLAB为平台,试错法作为推求的基础,引入搜索整体最优解的遗传算法来推求单位线。通过实际的运用,证明此法行之有效,可以大大提高单位线推求效率,并对单位线推求具有一定借鉴。

1.遗传算法简介

遗传算法(Genetic Algorithm,简称GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,它是一种通过模拟自然进化过程搜索最优解的方法。该算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,并出版专著《Adaptation in Natural and Artificial Systems》。

遗传算法具有以下几方面的特点:

1.1 搜索全局最优解

遗传算法是从问题解的串集开始搜索,覆盖面大且利于全局择优,避免了传统优化算法从单个初始值迭代求最优解时容易误入局部最优解的弊端。

1.2 适用范围很广泛

遗传算法基本上仅用适应度函数来评估个体,而适应度函数不仅不受连续可微的约束,其定义域还可以任意设定,这使得遗传算法的应用范围大大扩展。

1.3 自学习适应性强

遗传算法利用进化过程获得的信息自行组织搜索,并采用概率的变迁规则来指导搜索方向,这使得它具有很好的自组织、自适应及自学习能力。

遗传算法是现代有关智能计算中的关键技术。它已被广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域,其通用计算过程见图1。

2.建立推求模型

2.1 数学模型的建立

引入遗传算法解决流域汇流经验单位线的推求,最关键的是要把实际工作的推求过程转化为寻求最优解的最优化数学函数。下面就以实际工作中常用的试错法作为推求基础介绍如何引入遗传算法推求单位线。

图1 遗传算法的计算过程图

试错法的基本思路是先假定一条初始单位线,再根据时段净雨推算流量过程,根据流量计算的误差修改假定的单位线,再推算流量过程,这样迭代下去直至误差达到允许范围。试错法特别适用于有一个时段净雨量特大的情况,这种情况计算收敛的较快。试错法得出的单位线是唯一的,但是不一定是最优的。

将试错法过程转化为最优化数学问题,需要构造出目标函数及其约束条件,过程如下:

实测m个时段净雨:r1,r2,…,rm,设一条n个时段的单位线:x1,x2,…xn。

实测流量过程:Q1,Q2,…Qk,其中洪峰为Ql。则目标函数见公式(1):

约束条件是对单位线:x1,x2,…,xn的约束,见公式(2):

2.2 模型的求解

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国Math Works公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算等。它包含了大量计算算法,拥有600多个数学运算函数,可以方便的实现用户所需的各种计算功能。MATLAB中关于遗传算法的函数如下:

介绍:使用遗传算法寻求目标函数的最小值。

语法:[X,Fval]=ga(Fitnessfcn,Nvars,A,B,Aeq,Beq,LB,UB)

遗传算法其中,Fitnessfcn需要在写成函数文件,提供给遗传算法函数引用。总之使用MATLAB为开发平台,可以大大缩短开发周期,提高开发效率。

3.应用及分析

为验证本文所述方法可行有效,作者使用实测资料进行单位线的推求。

首先,根据上述数学模型建立的方法,在MATLAB平台上编写出推求程序,代码如下:

主程序:

目标函数:

经过MATLAB程序推求,可以得到合格的单位线。程序计算运用结果如图2所示,可以看出,预报径流过程与实测径流过程洪峰位置相同,洪量误差在10%以内,基本满足精度要求,说明该程序可行有效。

图2 单位线成果验证图

4.结论

基于上述思路方法在实际的应用中,减少了工作量,提高了工作效率,取得了不错的效果,证明该方法的可行性,同时也从中得到几点认识:第一,遗传算法是人工智能的体现,将人工智能引入到单位线的求解上来,再以MATLAB作为推求平台,可以大大提高求解效率。第二,使用遗传算法推求单位线的关键在于如何将水文的推求过程转换为寻求最优解的最优化数学函数。第三,单位线法假定的降雨在流域均匀分布,流域汇流为线性系统与实际不符,因此对于某些流域,一条单位线难以满足预报精度的要求,所以一个预报方案常配有多条单位线。

[1]林三益.水文预报[M].北京:中国水利水电出版社,2001,1-4.

[2]吴云.利用最小二乘方原理推求单位线[J].太原师范学院学报,2003,(3):11-13+20.

[3]叶林泉.经验单位线分析方法的改进[J].中国农村水利水电,2003,(6):53-54.

[4]周明,孙树栋.遗传算法原理及应用[M].北京:国防工业出版社,1999,1-17.

[5]金菊良,丁晶著.遗传算法及其在水科学中的应用[M].四川大学出版社,2000,9-20.

猜你喜欢
水文遗传算法流域
压油沟小流域
继往开来 守正创新——河北省水文工程地质勘查院
堡子沟流域综合治理
罗堰小流域
水文
水文水资源管理
打造智慧流域的思路及构想——以讨赖河流域为例
基于自适应遗传算法的CSAMT一维反演
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
水文