基于BP神经网络的水库优化调度 文覃编号:1003-5850(2010)08—0050一O4 基于BP神经网络的水库优化调度 Reservoir Optimal Dispatching based on BP Neural Network 赵钰段富 (太原理工大学计算机与软件学院 太原030024) 【摘 要】在阐述神经网络基本原理及其改进的基础上,提出了建立水库优化调度函数的神经网络模型,利用该 模型建立了水库优化调度函数。通过实例计算表明,模型计算结果基本能反映水库调度的实际情况,符合水库 调度的规律,表明所建立的调度函数是合理可靠的;BP神经网络由于其较强的数据处理和映射功能,能准确地 反映水库运行要素之间的复杂的非线性关系,所建立的水库调度函数适合于指导水库的调度运行。 【关键词】水库,优化调度,BP神经网络 中图分类号:TP311 ABSTRACT 文献标识码:A In this paper the basic principle and improving neural network were presented based on the establishment of optimizing reservoir operation function and neural network model was established by using this mode1.By calculation of the example analysis shows that the model can reflect the basic calculation results of the actual situation of reservoirs,conform to the rules,show reservoirs of scheduling function is reasonable and reliable.The BP neural network due to its strong data processing and mapping function can accurately reflect the reservoir operation between element ̄of the complicated nonlinear relation,and the reservoir regulation function is also suitable for operation of the reservoir. KEYWORDS reservoir,optimal dispatch,BP neural network 水库调度是实现水资源配置的主要手段。以运筹 学为基础的水库优化调度发展到现在,大致可以划分 为线性规划(LP)、非线性规划(NLP)、动态规划 (DP)、模拟技术、控制方法、神经网络方法(ANN)、遗 优化调度函数。 1水库优化调度数学模型 研究水库的调度函数模型,是为了寻求水库某一 决策变量(如出力、放水等)与其相关状态变量(如水库 水位)的函数关系。水库以防洪、灌溉为主,兼顾其他综 合利用要求、满足各种约束条件的优化调度模型如下。 目标函数为: -.、 传算法(GA)、多目标决策技术、大系统理论与方法、随 机优化方法、模糊优化方法以及由此衍生的一些其他 方法等。原有的研究方法和途径日显窘态,影响因子越 来越多,复杂性和动态性越来越强,单独使用确定性和 不确定性方法面临着许多无法妥善解决的问题。人工 神经网络的发展为解决上述问题提供了有效的方法。 人工神经网络是以工程技术手段模拟人脑神经网 络的结构和功能特征的一种技术系统。它用大量的非 线性并行处理来模拟众多的人脑神经元,用处理器间 E=2AaFf,1+bF‘,2+cF ,3+ Ff,4 F max厶cw _、 (1) (2) (3) (4) (5) (6) Ff.2一max厶弋 n , Ff.3 max厶、 A “ N 错综灵活的连接来模拟人脑神经元间的突触行为,以 实现大脑的感知和学习功能。人工神经网络系统独特 的非线性、非凸性、自适应性、强大的计算能力使得它 在水文水资源领域的应用很多,其中在预测预报方面 Ff.4一max 1 j YSi,j=h(Ui, ,x , ] f.1。J) 的应用最为广泛,包括:降雨预报、降雨一径流分析、径 流预报、综合利用水库(群)的优化调度、水质水量预测 及地下水管理等方面。本文采用一种改进的BP网络 Xf, ≥∑ ,J U e.i X{.j~Xt-1.j+I 广一Efj--Li.j—Yi,j (7) ( 建立了水库的优化调度模型,通过实例计算求解水库 y ̄ -2010—04—22收到,2010—06—15改回 ** 基金项目:太原理工大学科研开发项目。 ***赵钰,女,1985年生,硕士,研究方向:计算机应用。 第23卷第8期 电脑开发与应用 蜀, ≤Xf。,≤Xf. f, (9) (1O) 题,采用梯度下降算法,但是对于复杂的非线型问题来 讲,存在着局部最小、学习速度慢等缺陷。本文采用改 ≤【,f, ≤ “ 式中:E为效能指数;Fm为在阶段i城市缺水目 标函数;F 为工业缺水目标函数;F∞为农业目标缺水 进BP网络算法,即累积误差校正算法以及动态调整 学习率和惯性系数法。以下是水库群优化调度函数的 BP网络方法的求解步骤: 函数;F“为泥沙目标函数;a,6,c,d为对每个目标函 数之权重系数;YS 为泥沙淤积量;CWi, 为供水点愚 处,城市生活缺水量;1W讲为工业生活缺水量;AWf.^ 为农业生活缺水量; 为运行阶段数;_『为水库数;k为 ①选取水平年的水库群优化运行策略作为网络 的学习样本,样本包含丰、中、枯水年的水库群优化运 行策略,提高了样本的代表性。 供水点数;【厂 为水库放水; H, 为初库容;X 为末库 容; 为人库末调度人流;E 为水库蒸发量;L 为水 库渗漏损失;D 为从水库引水量。 2 BP网络模型求解水库优化调度模型 2.1 BP网络结构 根据BP网络模型的基本原理,可以建立相应时 段水库的运行要素即入库径流、水库水位同放水流量 或时段出力之间的映射关系,来模拟水库调度函数。对 于水库调度函数的神经网络模型,其训练样本即为长 系列优化调度计算结果。网络训练完成后,将网络各年 样本学习的知识和有关信息(即各层间的连接权与各 个神经元的阀值)保存下来,各个神经元之间的连接权 值即为所建立调度函数非线性关系的反映。然后,将未 参加训练的样本资料输入网络中并根据所得到的调度 信息(网络输出)对所建立网络的性能进行检验。 运用神经网络建立水库调度函数,首先应该确定 网络的结构。本文在进行水库优化调度时计算时段取 为月,每年有12个时段,所以选用12个BP网络 (BP ..'BP )分别模拟各月的函数关系。选择水库 下泄水量为调度函数的因变量,出库水量的决策往往 与当前的入库流量和近期的来水息息相关,而下泄水 量不仅与水库人流有关,也决定于水库的蓄水状态(水 位或库容),该时段城市生活、工业、农业需水量,共1O 个特征量作为BP网络输入层1O个节点的输入。9个 因变量作为BP网络9个输出节点的输出,分别代表 各个水库在该时段的出库水量、城市供水量和农业灌 溉水量。 对于隐含层的确定考虑到既满足精度要求,又要 尽可能减少学习费用,选用一个隐含层。而对于隐含层 神经元数,由于没有统一适用的确定方法,实际应用时 所使用的方法也不相同。 2.2网络的学习训练 确定了网络的结构之后,用长系列模拟优化模型 计算结果,分别对12个网络进行训练。传统BP网络 模型把一组样本的输入输出问题变为一个非线型问 ②数据归一化。为了比较的一致性,可以讲输入、 输出数据归一化至[O,1]区域内,但Sigmoid函数在 [o,0.1J和[O.9,1-1区间变化极为缓慢,所以本文采取 的归一化处理是将数据归一化至[O.1,0.9],其方法 个, 为: —max{x}-4-min{xi}(i=1,2,…, ) /式中z 、 分别为归一化前、后的样本值;max {xf)、min{.27 }分别为X所在单元的样本值的最大值和 最小值。 ③令N一1,给连接权 和阈值 、rf赋予 (一1,1)间的随机数;令E(O)等于一较大正值及惯性 系数 (1)∈(O,1),学习率a(1)∈(O,1), (1)∈(O, 1)。 ④选取一模式对A 一(口:,a ,…,口 )、Y =( , Y ,…,yt)提供给网络。其中k一1,2,…, ,为学习样 本数;输入模式a ( 一1,2,…,lO)分别为各水库本时 段的入库水量、初库容、上一时段的入库水量,以及该 时段城市需水量归一化后的值;输出模式 (g=1,2, …,9)分别代表各水库在本时段的出库水量、灌溉水 量、城市供水量,其数值也经过了数据处理。 ⑤按上式分别计算隐含层、输出层的输入和输 出: 10 _、 一厶 口 一 ( =1,2,…,9) (11) 6;:厂(s )一 ,( 一1,2,…,9)(12) l十e 9 ] L :25v』=1 ,jb ̄Br ,0=1,2,…,9) (13) =厂( )一 ,(f=1,2,…,9)(14) l十e 式中 (歹一1,2,…,9,i一1,2,…,10)为隐含层 单元与输入层单元的连接权;V ,(f一1,2,…,9; 一1, 2,…,9)为输出层单元与隐含层单元的连接权;Sj、bi、 分别为中间层的输入、输出和阈值;厶、G、 分别为 输出层的输入、输出和阈值。 ⑥按照上式计算每一模式的输入输出。 ⑦应用下式计算误差平方和: 基于BP神经网络的水库优化调度 表1 12月份出库水量预测值与实测值 月份 l 2 3 4 E(Ⅳ): ∑∑( 一c )z l t=l (15) 预测值 0.003 8 0.001 1 1.384 7 0.445 8 0.352 5 0.241 6 实测值 0.003 2 0.002 9 1.341 9 0.575 4 o.364 3 0.226 5 绝对误差 0.000 6 0.001 8 0.042 8 0.129 6 o.011 8 0.015 1 相对误差 O.187 5 0.620 69 0.031 9 0.225 235 0.032 391 0.066 67 若E(Ⅳ)≤e,则认为达到极小点,输出结果,停止 计算;走则转人第⑦步。 ⑨输出 一( }, ,…, 5),网络实际输出 一 (c ,C ,…,c:)计算输出层各单元的一般化误差: =( 一C )・C (1一C ) (16) 5 6 ⑨用连接权 小输出层的一般化误差 、中间层 的输出6;,计算每一输入模式中间层个单元的一般化 误差: e;=( ・Vfj)・ (1—6;) (17) ⑩用累积误差,利用动态调整法,修正连接权和 阈值。惯性系数 和学习率a的选择是一个至关重要 的问题,在学习初级阶段选得大一些可以使学习速度 加快,但在临近最佳点,必须相当小,否则将反复震荡 而不能收敛。 3应用算例 为验证水库优化调度模型及BP算法的可行性和 有效性,以汾河水库的计算数据为计算实例。汾河水库 位于汾河干流上游,地处娄烦县杜交曲镇下石家庄村 北,上距汾河发源地管涔山122 km,下距省城太原市 83 km,控制流域面积5 268 km 。水库1958年建设, 1961年运行,设计总库容7.21亿112。,最大回水长度 18 km,最大回水面积32 km 。是一座以防洪、灌溉为 主,兼顾发电、养鱼的大(II)型水利枢纽。汾河流域内 多年平均降水量为49 412 mill,汛期6月~9月降水 量为全年的75.1%,其中7月、8月最大,占全年降水 量的47.6 。多年平均来水量3.74亿m。,汛期来水量 占全年来水量的53%。流域多年平均来沙量1 155万 吨,汛期来沙量占全年来沙量的94 ,多年平均侵蚀 模数为2 192 t・km_。。水库封冻期为70 dN100 d,冰 厚40 cm ̄60 cm。流域内设有32个雨量站,7处水文 站,其中汾河干流的静乐站和汾河的上静游站,建站 早,资料充分,且为水库的入库站,是本次分析的主要 依据。 采用1961年~1988年共28年的实测资料和长 系列优化运行成果,建立水库调度函数神经网络模型。 运用上述方法,对28年的优化运行策略进行学习,分 别对1989年共12个月12个网络进行训练,对汾河水 库的逐月出库水量预测,引入BP网络模型进行预测。 将训练样本模拟的网络导人,带人预测数据,得到 下表所示的预测结果: 7 0.117 8 0.148 7 0.030 9 0.207 8Ol 8 0.087 4 0.096 7 0.009 3 0.096 174 9 o.003 9 0.006 7 0.002 8 0.4l7 91 10 o.003 1 0.002 7 0.oo0 4 0.148 15 11 0.190 S 0.235 6 0.045 1 0.191 426 l2 0.001 6 0.002 0.00o 4 0.200 00 从表中可以看出,对于来水比较多的月份,其误差 e比较大,这是因为汛期水库调度决策变量与影响因 子间的非线性关系比较复杂,当网络收敛到一定程度 后,误差不再减小 将表中数据绘制图表,如图1所示。 汾河水库1989年逐月出库水量 兴 }; 8: 8: 0 2 4 6 8 10 12 l4 月份 图1汾河水库1989年逐月出库水量 网格训练后,在没有参加网格训练的序列中选取 3个典型年:枯水年、丰水年、中水年,用神经网络计算 其决策变量,并与优化结果作比较以检验网络,检验结 果列于下表,各项均采用相对误差进行统计。 表2出库水量相对误差 来永 年平均相对误差/ 年份 情况 出库水量 农业供水 城市供水 工业供水 1956—1957 丰水年 O.O2 0 0.01 0.O2 1972—1973 枯水年 0.04 0.1 O.O4 0.12 1987—1988 中水年 0.01 0 O O.O2 可以看出,BP网络方法求得的出库水量与优化方 法结果相近,其运行结果和计算精度是合理的、比较满 意的。以上两个表共同表明:水库群调度函数BP网络 方法能够较准确地反应出决策变量与自变量之间的复 杂的非线性关系。 4结果分析 本文提出了水库优化调度函数模型,并用BP网 络算法进行求解。研究结果表明,与传统方法相比,用 第23卷第8期 电脑开发与应用 改进BP网络方法求解调度函数具有以下优点: 准确地反映水库运行要素之间的复杂的非线性关系, 所建立的水库调度函数也更适合于指导水库的调度运 行。 参考文献 ①更全面地反映了水库调度决策变量与影响因 子的复杂非线性关系; ②由于神经网络具有一致逼近的效果,训练后在 样本上输出期望值(误差在允许范围内),在非样本点 上,根据连接权和阈值,输出结果; ③将所有决策变量与因变量都包括在同一网络 中,可以反映出调度过程中水库群间的相互关系。 杨雨亭,梁袁子勇,梁川.大桥水库入库径流预测及电站优化 虹.人工神经网络在径流预报中的述评 调度研究EJ3.四川水力发电,2008,27(5):77—8O. ④将调度函数用于实施调度时,操作简单方便, 只需输人输入层变量,而不必进行繁杂的计算。 与展望EJ].水科学与工程技术,2009,33(1):39—41. 饶碧玉,王 龙,王 静等.人工神经网络在灌区水 库调度中的应用[J].水资源与水工程学报,2009,20 (4):38—41. 本文采用BP网络求解水库的优化模型并对计算 结果进行了检验。从结果可以看出,模型计算结果基本 马细霞,夏龙兴.昭平台水库调度函数的人工神经网 络模型[J].水电能源科学,2005,23(3):28—30. 能反映水库调度的实际情况,符合水库调度的规律,表 明所建立的调度函数是合理可靠的;BP神经网络由于 其较强的数据处理和映射功能,同常规模型相比,能更 ] 口 ] ] ] ] 余丽华.水库群发电优化诃度神经网络模型研究[D]. 南京:河海大学,2006. (上接第49页) if(image.IsValid()一一false)continue; 4运行结果和应用 经过调试和运行,已经达到所需的功能要求,并在 基于WINCE 6.0的智能手机上面得到运用。图2为 本应用软件的一个实例 在实际应用中,本浏览器界 面美观,操作简单,可以打jpg, WIDTH—const float flmgRatio一(float)image.GetHeight()/ image.GetWidth(); if(fImgRatio>fRatio)(//确定适合屏幕的高和宽 nDestWidth=(int)(THUM—HEIGHT/flmgRatio); nDestHeight=THUM—HEIGHT;) WIDTH; —else{nDestWidth—THUMnDestHeight=(int)(THUM* tga,bmp。gif,png,pcx,tif等多 种格式的图片文件,并实现图片 fImgRatio);) image.Resample(nDestWidth,nDestHeight);//缩放指定 移动、缩略图显示,手势缩放等功 能。与Windows CE操作系统自 带的图片浏览功能相比,功能更 实用,操作界面更友好,从而提高 高度和宽度 CString path=filename+TEXT( \ )+name;//生 成缩略图路径 image.Save(path,image.GetType());11保存在其子目录 下 了图片的浏览效率。由于软件是 分模块实现,软件开发人员可以 很方便地在该模块的基础上进行 图2软件实例 功能扩展和完善。 参考文献 3.2.3 图片移动 //左上移动 if(MoveWidth>=0&&MoveHeight>=O) f rtMove.bottomMoveHeight,m—=min(rtMove.bottom+ PieHeight); rtHeight; —— [1] 杨 阳,闫 薇.智能手机走在红海边[J].经济观 一rtMove.top=rtMove.bottom—m察,2009(36):1-6. rtMove.right=min(rtMove.right+MoveWidth,mPicWidth); rtMove.1eft=rtMove.right-m—[2] Charles Pezold.Windows CE程序设计[M].北京:北 京大学出版社,1999. [3] CxImage.Davide Pizzolato.http://www.codeprojeet. com/KB/graphics/eximage.aspx,2008—02—15. rtWidth;) ::BitBlt(m hDeMemBack,rtRECT.1eft,rtRECT.top,m rtHeight,m——[4] 陈宁,童钟.PMP软件架构的研究[J].现代电子 rtWidth,m—hDcMemZoom,rtMove・left, 技术,2007(2):97—112. rtMove.top,SRCCOPY);//移动显示