在灌区规划设计中,通常需要水文频率分析,以合理确定设计水平年的降雨量、来水量等特征参数。大型灌区通常具有较长的水文系列,计算得到的枯水设计年较为准确。但中小型灌区的水文系列通常较短,计算得到的枯水设计年精确度相对而言比较低。
P-Ⅲ型分布曲线是我国水文分析计算中推荐的线型,其参数估计的方法很多[1],例如矩法、概率权重矩法、线性矩法、权函数法、目估适线法和优化适线法等。优化适线法由于具有确定合理的适线准则、拟合程度较好而被广泛使用。随着计算机技术的发展,众多学者将智能算法如遗传算法[2-5]、粒子群算法[6-9]、模拟退火算法[10]、蚁群算法[11-12]、SCEM-UA算法[13]、群居蜘蛛算法[14-15]等与优化适线法相结合应用于水文频率分布曲线分析和与灌区相关的研究。有的算法用于水文频率分析效果好,但有的算法则有一些缺陷,如遗传算法易陷入局部最优、易早熟且结果不稳定;粒子群算法的待估参数较多,收敛性深受参数初始值的影响;模拟退火算法对参数初始值和发生扰动的步长的设置要求很高。
差分进化算法(DE)具有收敛快、控制参数少且简单、优化结果稳定等优点[16-17],引起了众多进化算法学者的注意,并成功解决了很多实际问题[18],但还未应用于水文频率分析领域。标准差分进化算法也具有控制参数的选择影响搜索能力和开发能力的现象,造成种群个体早熟或者搜索停滞现象[19]。针对标准差分进化算法的这一缺陷,引入一种基于随机扰动与三角函数相结合的自适应差分进化算法,应用离差平方和最小准则(OLS),基于长短系列水文资料分析了本算法在P-Ⅲ型水文频率分布曲线参数估值中的稳定性、收敛速度和精度,以期为灌区规划和管理提供一定依据。
差分进化(DE)由Storn等[21]提出的一种启发式随机搜索算法。差分进化算法采用实数编码方式,基于群体差异进行进化,其流程包括初始化、变异、交叉和选择。标准差分进化算法的原理可详见文献[22-24]。
缩放因子F和交叉概率CR两个参数对差分进化算法的影响较大,缩放因子F决定了差分向量对变异个体的影响程度,当F较大时,差分向量对变异个体影响较大,虽然增加了种群的多样性,但会降低搜索效率和所得全局最优解的精度[25-26]。反之,F较小时,差分向量对变异个体影响较小,但F太小时,算法易于早熟收敛并陷入局部最优;交叉概率CR对差分进化算法的影响主要体现在,CR决定算法中局部搜索能力和全局搜索能力的平衡:当CR越大,变异个体对试验个体的贡献越多,有利于局部搜索和加快收敛速度,越易发生早熟现象;反之,当CR越小,随机个体对试验个体的贡献越多,有利于种群的多样性和全局搜索[27]。因此,应在算法初期使得缩放因子F的值较大、交叉概率CR的值较小,保证种群的多样性,扩大搜索范围,避免陷入局部搜索;应在算法后期使得缩放因子F的值较小、交叉概率CR的值较大,保证收敛速度及最优解的精度;即应使缩放因子F随着迭代次数的增加而变小,交叉概率CR随着迭代次数的增加而变大。在标准差分进化算法中F和CR都是固定值,并不能很好适应所有种群的进化。针对这种问题,本自适应差分进化算法引入了一种随机扰动与三角函数相结合的方式来调整F和CR的大小,保证变异的随机性的同时加大收敛速率,其计算式为:
式中:gmax为最大进化代数;g为当前进化代数;根据文献[28]中建议的F和CR取值范围,建议α是在区间[0.2,0.8]中的随机选取的连续均匀分布函数值;γ是在[0,1]中的随机选取的连续均匀分布函数值。
是单调递减函数,随着g的增大而减小,是单调递增函数,随着g的增大而增大,使得F和CR的一部分分别是随着迭代次数的增加而变小及变大,随迭代次数增大算法的收敛速度。而α和γ的随机设置则增加搜索的多样性确保了变异的随机性进而提高算法的搜索能力。
P-Ⅲ型分布计算式[29]为:
式中:Γ(α)为α的伽玛函数;EX为数学期望;Cv为变差系数;Cs为偏态系数;
设计值计算式为:
式中:xP为设计值;P为所对应的频率;gaminv为伽玛分布函数逆函数。
优化适线法则是在一定的适线准则下,通过优选EX、Cv、Cs使频率曲线与经验点据拟合最好,即使设计值与经验值离差最小。采用离差平方和OLS适线准则,其目标函数为:
变量上标表示代数,下标表示其在种群中的位置,t表示不同的参数,当代的种群记作,f(∙)表示目标函数。
1)读取参数,设置初始种群。设置个体维度D和种群规模NP,以及最大迭代次数gmax。设置针对Cv、Cs和EX的约束条件,分别随机生成3个参数的初始种群
2)对每一代个体,进行3)~6)操作;
3)设置α和γ的取值范围,利用式(1)计算每次迭代缩放因子F的大小。从当代种群中,挑选3个位基矢量,其位置各不相同,采用差分策略DE/rand/1/bin[30-32],通过缩放因子进行变异得到变异个体
4)利用式(1)计算每次迭代交叉概率CR的大小,分别对变异个体和父代个体通过交叉概率进行交叉操作,得到试验个体
5)采用贪婪选择策略[33-34],依据适应度函数式(5)比较择优选择进入子代种群的相对应位置
6)令k=k+1,进入2),直至达到最大迭代次数,得到全局最优的。
以江西省赣州市南康区窑下坝站1956—2010年实测年降雨量为例,建立水文频率曲线模型,选择参数并用提出的自适应差分进化算法对其进行优化。设定均值EX的取值范围为[ximin,ximax](ximin和ximax分别表示实测水文资料序列中的最小值和最大值),变差系数Cv和偏态系数Cs的取值范围都为(0,1),个体维度D=3,种群规模NP=30,α是在[0.2,0.8]中随机选取,γ是在[0,1]中随机选取。将本方法与矩法、权函数法、最小二乘法和遗传算法分别对该水文站1956—2010年年降雨量进行水文频率分析比较,结果见表1。图1为采用5种算法获得的拟合曲线。其中遗传算法设定种群规模为30,变异概率和交叉概率分别为0.1和0.7,迭代次数分别为50、100、200、500、1 000、10 000的情况下,各计算20次,对自适应差分进化算法和遗传算法的离差平方和取均值,统计结果见表2。
表1 参数计算结果
估计方法矩法权函数法最小二乘法遗传算法自适应差分进化算法均值1 482.1 1 482.1 1 482.1 1 482.1 1 495.6变差系数0.188 4 0.188 4 0.200 9 0.199 3 0.199 0偏态系数0.491 6 0.652 7 0.650 6 0.599 7 0.633 6离差平方和56 641.2 53 722.4 41 403.2 41 630.9 40 316.7
表2 遗传算法和自适应差分进化算法不同迭代次数的统计结果
遗传算法迭代次数50 100 200 500 1 000 10 000均值标准差离差平方和41 523.80 41 464.40 41 183.10 41 145.00 41 196.90 41 161.70 41 279.15 168自适应差分进化算法迭代次数50 100 200 500 1 000 10 000均值标准差离差平方和40 316.7 40 316.7 40 316.7 40 316.7 40 316.7 40 316.7 40 316.7 0
为了验证自适应差分进化算法算法的稳定性、收敛速度和鲁棒性,在同一台Intel(R)Core(TM)i5-2520M CPU@2.50GHz,RAM4.00G,64位操作系统的笔记本上对遗传算法和自适应差分进化算法运行20次,迭代次数均为100和1 000次,统计运行结果见表3。
表3 遗传算法和自适应差分进化算法在不同迭代次数下分别运行20次目标函数的统计结果
统计结果最大值最小值中值平均值标准差迭代次数1 000遗传算法41 446.3 41 140.6 41 140.6 41 165.2 72自适应差分进化算法40 316.7 40 316.7 40 316.7 40 316.7 0 100遗传算法47 060.5 41 140.6 41 141.0 41 451.7 1 321自适应差分进化算法40 316.7 40 316.7 40 316.7 40 316.7 0
图1 长系列降雨资料下5种算法的拟合曲线
分别选取江西省赣州市南康区窑下坝站1956—2010年和1981—2010年实测年降雨量为长系列降雨资料和短系列降雨资料,对其进行水文频率分析,分别运行20次(遗传算法和自适应差分进化算法迭代1 000次),选取特殊干旱年(P=95%)、中等偏干旱年(P=85%)、中等干旱年(P=75%)和平水年(P=50%)的年降雨量设计值,统计各水平年年降雨量设计值的均值和长短系列之间的误差。统计结果见表4、表5和表6。
表4 长系列下5种算法分别运行20次不同水平年的统计结果 mm
水平年遗传算法自适应差分进化算法最小二乘法权函数矩法特殊干旱年1 058.3 1 061.6 1 053.3 1 080.2 1 976.9中等偏干旱年1 184.2 1 187.8 1 181.4 1 200.2 1 770.3中等干旱年1 269.0 1 273.1 1 267.8 1 281.1 1 656.0平水年1 449.3 1 453.6 1 450.1 1 452.0 1 459.3
表5 短系列下5种算法分别运行20次不同水平年的统计结果 mm
水平年遗传算法自适应差分进化算法最小二乘法权函数矩法特殊干旱年1 071.7 1 073.7 1 124.4 1 106.6 1 882.9中等偏干旱年1 216.0 1 217.6 1 251.3 1 237.1 1 729.4中等干旱年1 304.5 1 305.9 1 328.8 1 317.7 1 640.1平水年1 474.8 1 476.0 1 477.0 1 473.9 1 477.3
表6 长系列和短系列下5种算法不同水平年的设计值的误差统计结果 %
水平年遗传算法自适应差分进化算法最小二乘法权函数矩法特殊干旱年1.27 1.15 6.75 4.76 2.44中等偏干旱年2.71 2.51 5.92 2.31 3.07中等干旱年2.80 2.58 4.81 0.96 2.85平水年1.76 1.54 1.86 1.23 1.51总和8.54 7.78 19.34 9.26 9.87
图2 短系列降雨资料下5种算法的拟合曲线
分析比较自适应差分进化算法与遗传算法和常规适线法参数估计方法在基于离差平方和OLS准则的P-Ⅲ型分布曲线参数估计中应用(表1)发现,自适应差分进化算法的离差平方和最小、结果最优异,说明该法在对水文频率分析优化适线中具有更强的适用性,并且精度更高。
分析表2发现,随着迭代次数的增加,相比于遗传算法,自适应差分进化算法的离差平方和更稳定,并且其均值和标准差也更小,说明自适应差分进化算法比遗传算法的收敛速度更快也更稳定;分析表3发现,在同样运行20次迭代数分别为100次和1 000次的情况下,遗传算法的标准差分别是1 321和72,而自适应差分进化算法的标准差均为0,由标准差可知自适应差分进化算法在不同迭代次数下,均能找到全局最优解,鲁棒性更强。遗传算法2次运行的最大值、均值和中值均不相同,自适应差分进化算法2次运行的最大值、最小值、均值和中值均相同,说明相比遗传算法,自适应差分进化算法稳定性高,寻优结果一致。若取多次运行算法的均值为结果,遗传算法需要更多的运算次数,并且结果的精度难以保证。
从表4—表6可以看出,相比较于文中其他算法,自适应差分进化算法在长系列和短系列降雨资料设计值的误差之和最小,即在短系列降雨资料下各水平年的设计值总体最接近拥有长系列降雨资料下各水平年的设计值。自适应差分进化算法和权函数在长系列和短系列降雨资料计算出的中等偏干旱年、中等干旱年和平水年的设计值误差较小,优于文中其他算法。但在特殊干旱年设计值的误差,自适应差分进化算法要优于文中其他算法。
1)选取江西省赣州市南康区窑下坝站实测55 a(长系列)降雨量资料为数据,以离差平方和最小准则(OLS)为目标函数,将自适应差分进化算法和遗传算法、最小二乘法、矩法、权函数法加以比较,自适应差分进化算法的离差平方和最小,且多次迭代后离差平方和的标准差为0,说明自适应差分进化算法的稳定性精度都更高,鲁棒性更强,其原因为自适应差分进化算法通过自动调节缩放因子和交叉概率的方式保证收敛速度和提高种群多样性避免在进化中个体过于集中而陷入局部最优。
2)将自适应差分进化算法、遗传算法和常规适线法参数估计方法分别计算长短系列下各水平年设计值及其之间对应的误差,其中自适应差分进化算法误差总和最小为7.78%,说明在具有短系列水文资料情况下,采用自适应差分进化算法计算出的各水平年的设计值最接近长系列水文资料情况下的设计值,其原因为自适应差分进化算法寻优能力强,长短系列降雨资料具有一致性,因此在4种水平年的拟合上,长短系列P-Ⅲ水文频率曲线整体上更接近。
3)在中等偏干旱年、中等干旱年和平水年的设计值误差中,权函数法要优于自适应差分进化算法。虽然权函数法在中高频率阶段拟合长短系列的P-Ⅲ水文频率曲线更接近,但均不能很好地拟合原始数据(离差平方和大)。
4)在特殊干旱年的设计值误差中,自适应差分进化算法要优于本文其他算法。因为相对于本文中比较的其他算法,自适应差分进化算法能很好地拟合原始数据,并且本算法的特性使得高频率阶段拟合长短系列的P-Ⅲ水文频率曲线最接近。
因此,对于拥有短系列水文资料的中小型灌区规划枯水设计年而言,差分进化算法具有更强的适应性和准确性。
1)自适应差分进化算法收敛快、优化结果稳定,应用水文频率参数寻优结果更加有效。用长系列降雨资料进行验证,在OLS准则下,自适应差分进化算法与遗传算法、最小二乘法、矩法、权函数法方法的优化效果进行比较发现:自适应差分进化算法在确定水文频率曲线统计参数时,不仅能够得到较优的结果,稳定性也最高、鲁棒性强、寻优结果精度高且较一致。
2)自适应进化算法能很好地应用于具有较短降雨资料的灌区的枯水设计年的降雨频率计算。在对短系列水文资料进行水文频率分析时,相比较于文中对比的其他算法,自适应差分进化算法能得到更接近长系列降雨资料的水文频率分析结果。
[1]郭倩,刘攀,徐小伟,等.以平均设计流量为指标的汛期分期方法研究[J].中国农村水利水电,2011(8):53-55.
[2]王占海,陈元芳,倪夏梅,等.遗传算法在P-Ⅲ型分布曲线参数估值中的应用[J].人民黄河,2009,31(9):21-23.
[3]宋茂斌,冯宝平,张展羽.基于遗传算法的皮尔逊Ⅲ型曲线参数估计[J].中国农村水利水电,2008(6):52-54.
[4]郭铭.基于遗传算法的滴灌支管轮灌小区管网优化布置研究[J].灌溉排水学报,2018,37(2):72-76.
[5]张宇亮,张礼兵,周玉良,等.基于改进加速遗传算法的作物灌水率图修正研究[J].灌溉排水学报,2015,34(11):80-83.
[6]刘力,周建中,杨俊杰,等.粒子群优化适线法在水文频率分析中的应用[J].水文,2009,29(2):21-23.
[7]肖琳,邱林,陈晓楠.基于粒子群算法的设计洪水过程线推求优化方法[J].水电能源科学,2008,26(1):56-59.
[8]姚德仓,宋松柏.设计洪水频率曲线的粒子群优化适线法研究[J].水土保持通报,2007,27(6):113-115.
[9]张伟,何武全.基于粒子群算法的抛物线形渠道断面优化方法[J].灌溉排水学报,2017,36(4):94-98.
[10]陈子全,宋松柏,曾智,等.基于模拟退火算法的皮尔逊Ⅲ型分布参数估计[J].人民黄河,2012,34(5):14-15.
[11]李宏伟,宋松柏.蚁群算法在水文频率曲线参数计算中的应用[J].人民黄河,2009,31(4):38-40.
[12]曹雪芹,陈元芳,陈琼,等.蚁群算法在P-Ⅲ型分布曲线参数估计中的应用[J].水电能源科学,2010,28(4):14-15,74.
[13]陈南祥,甘甜,杜青辉.SCEM-UA优化算法在水文频率分析中的应用[J].西北农林科技大学学报(自然科学版),2011(8):210-214.
[14]吴光琼.群居蜘蛛优化算法在水文频率曲线参数优化中的应用[J].水资源与水工程学报,2015,26(6):123-126,131.
[15]王文川,雷冠军,刘惠敏,等.基于群居蜘蛛优化算法的自适应数值积分皮尔逊-Ⅲ型曲线参数估计[J].应用基础与工程科学学报,2015,23(S1):122-133.
[16]DAS S,MULLICK S S,SUGANTHAN P N.Recent advances in differential evolution-An updated survey[J].Swarm & Evolutionary Computation,2016,27:1-30.
[17]NERI F,TIRRONEN V.Recent advances in differential evolution:a survey and experimental analysis[J].Artificial Intelligence Review,2010,33(1/2):61-106.
[18]汪慎文,丁立新,张文生,等.差分进化算法研究进展[J].武汉大学学报(理学版),2014,60(4):283-292.
[19]丁青锋,尹晓宇.差分进化算法综述[J].智能系统学报,2017,12(4):431-442.
[20]廖雄鹰,李俊,罗阳坤,等.基于自适应变异算子的差分进化算法[J].计算机工程与应用,2018,54(6):128-134,142.
[21]STORN R,PRICE K.Differential Evolution-A simple and efficient heuristic for global optimization over continuous spaces[J].Journal of Global Optimization,1997,11(4):341-359.
[22]刘昊,丁进良,杨翠娥,等.基于择优学习策略的差分进化算法[J].上海交通大学学报,2017,51(6):704-708.
[23]王媛媛,刘东海.基于自适应差分进化算法的堆石坝参数反演[J].水电能源科学,2017(6):62-66.
[24]李荣雨,陈庆倩,陈菲尔.改进种群多样性的双变异差分进化算法[J].运筹学学报,2017,21(1):44-54.
[25]徐劭璇.差分进化算法在交流电机矢量控制系统中的仿真研究[D].上海:东华大学,2013.
[26]张旺.基于差分进化算法的反射面天线赋形技术研究[D].西安:西安电子科技大学,2014.
[27]印兴耀,孔栓栓,张繁昌,等.基于差分进化算法的叠前AVO反演[J].石油地球物理勘探,2013,48(4):591-596.
[28]RONKKONEN J,KUKKONEN S,PRICE K V.Real-parameter optimization with differential evolution[C]//Proc.2005 IEEE Congress on Evolutionary Computation,2005,1:506-513.
[29]王文川,雷冠军,刘灿灿,等.群居蜘蛛优化算法在水文频率分析中的应用[J].水文,2016,36(3):34-39.
[30]张锦华,宋来锁,张元华,等.加权变异策略动态差分进化算法[J].计算机工程与应用,2017,53(4):156-162.
[31]YI W,ZHOU Y,LIANG G,et al.An improved adaptive differential evolution algorithm for continuous optimization[M].Pergamon Press,Inc.2016.
[32]艾兵,董明刚,敬超.基于多策略排序变异的多目标差分进化算法[J].计算机应用研究,2018,35(7):1 950-1 954.
[33]王鑫,王人福,蒋华.改进贪婪算法的云任务调度研究[J].微电子学与计算机,2018,35(2):109-112,117.
[34]刘鹏.云计算[M].北京:电子工业出版社,2015.
Analyzing Hydrological Frequency in Irrigation District Using Adaptive Differential Evolution Method