一种基于GPU加速的并联水库群防洪优化调度方法技术

技术编号:19009653 阅读:30 留言:0更新日期:2018-09-22 09:27
本发明专利技术公开了一种基于GPU加速的并联水库群防洪优化调度方法,涉及水库调度技术领域。该方法,首先构建并联水库群优化调度问题,确定优化变量、优化变量个数、约束条件和防洪调度目标函数,然后采用PSO算法对水库群调度过程进行优化,并以CUDA为编程架构,采用GPU对PSO算法进行加速求解。所以,采用本发明专利技术实施例提供的优化调度方法,不仅在解决“维数障碍”和调度效率问题中,避免了大量进程间的通讯和复杂管理损耗问题的出现,而且极大的降低了硬件成本。

An optimal operation method for flood control of parallel reservoirs based on GPU acceleration

The invention discloses a method for optimizing flood control operation of parallel reservoirs based on GPU acceleration, and relates to the technical field of reservoir operation. In this method, the optimal operation problem of parallel reservoirs is firstly constructed, and the optimization variables, the number of optimization variables, the constraints and the flood control operation objective function are determined. Then the PSO algorithm is used to optimize the reservoir group operation process, and the CUDA programming framework is used to accelerate the PSO algorithm. Therefore, the optimized scheduling method provided by the embodiment of the invention not only avoids a large number of inter-process communication and complex management loss problems, but also greatly reduces the hardware cost in solving the \dimension barrier\ and scheduling efficiency problems.

【技术实现步骤摘要】
一种基于GPU加速的并联水库群防洪优化调度方法
本专利技术涉及水库调度
,尤其涉及一种基于GPU加速的并联水库群防洪优化调度方法。
技术介绍
水库调度是防洪减灾的重要非工程措施,高效的水库调度对防洪、航运、发电、供水等有着积极的促进作用。随着水库数量的增加和防洪的迫切需求,水库群联合调度成为一种趋势。水库群联合调度不仅是实现水资源可持续利用的基础,也是实现流域内水文补偿、库容补偿、电力补偿及综合利用效益的必要条件。然而,水库数量巨增也带来了水库群调度“维数障碍”问题,即模型的计算变量变得更大、求解更困难。同时,高效的水库群防洪优化调度才能为防洪抢险赢得宝贵的时间。目前,为了解决“维数障碍”和调度效率问题,主要从算法改进和硬件提升两方面进行了改进。其中,算法改进主要是将算法并行化,硬件提升主要是增强CPU的性能。但是,对于一个复杂的调度模型,为了满足并行计算的要求,需要启动数千个线程进行计算,在传统的基于CPU的并行平台上启动如此多的线程将会导致大量进程间的通讯和复杂管理损耗;而且,传统并行计算所需的硬件成本过高。
技术实现思路
本专利技术的目的在于提供一种基于GPU加速的并联水库群防洪优化调度方法,从而解决现有技术中存在的前述问题。为了实现上述目的,本专利技术采用的技术方案如下:一种基于GPU加速的并联水库群防洪优化调度方法,所述方法包括:S1,确定并联水库群;S2,获取所述并联水库群中各水库的约束条件、优化变量、优化变量个数以及防洪调度目标函数;S3,根据约束条件、优化变量和优化变量个数,利用PSO算法对防洪调度目标函数求解,得到并联水库群下游最大过流量,其中,采用GPU对粒子群优化算法进行加速求解。优选地,S2中,所述防洪调度目标函数为:式中,为并联水库群下游共同防洪控制点的最大流量;Qn(t)为第t时段末第n个水库下泄流量经过洪水演进计算到达下游防洪控制点的平均流量;N为并联水库群中水库个数;T为调度时段总数。优选地,S2中,所述优化变量为并联水库群在调度期内各个时刻末的水位过程线Zn(t)(t=1,2,…,T;n=1,2,..,N),所述优化变量个数为水库个数与调度时段总数的积,即为水库个数N与调度时段总数T的乘积NT。优选地,S2,所述约束条件包括:ⅰ、下式所示的水库水位-库容关系曲线:V=Sn(z)(3)式中,水库的水位z为第n个水库的水位,V为第n个水库的库容;ⅱ、下式所示的水库水量平衡约束:式中,Vn(t-1)表示第n个水库在第t时段初的库容,Vn(t)分别表示第n个水库在第t时段末的库容,表示第t时段末第n个水库的入库流量,表示第t时段末第n个水库的下泄流量,Δt为计算时段的长度;ⅲ、下式所示的水库库容约束:式中,表示第t时段末第n个水库的最小允许库容,表示第t时段末第n个水库的最大允许库容;ⅳ、下式所示的水库泄流能力约束:式中,是第n个水库库容为Vn时所对应的水库最大下泄流量;ⅴ、下式所示的边界条件:式中,Vn(0)表示第n个水库调度期初起调水位对应的库容;Vn(T)表示第n个水库调度期末水位对应的库容;和为定值,需根据水库的实际情况给定;ⅵ、下式所示的下泄流量变幅约束:式中,Δqn表示第n个水库出库流量的最大变幅;第t时段初第n个水库的下泄流量;ⅶ、下式所示的下游河道安全泄量约束:式中,Qn(t)表示第n个水库出库流量经洪水演进计算至防洪控制点的第t时段末流量;qsafe表示防洪控制点的安全流量;ⅷ、下式所示的河道汇流约束:式中,均为第k个马斯京根演算河段的演进参数。优选地,S3包括如下步骤:S31,结合并联水库群防洪优化调度问题,对PSO算法进行如下的数学描述:将所有优化变量组合作为决策变量序列,并将决策变量序列中的元素与PSO算法中的粒子的位置向量元素一一对应设置;将并联水库群中各水库各时段末水位的涨落速度与PSO算法中的速度向量元素一一对应设置;将优化变量个数与PSO算法的搜索空间维数对应设置;通过式(1)计算PSO算法的适应度值;其中,设定:D为PSO算法的搜索空间维数,数值上等于优化变量个数NT;M为粒子的种群规模,即粒子总数;K为算法迭代的最大次数;Umax为粒子允许最大速度;为粒子i(i=1,2,…,m)在第j(j=1,2,…,k)次迭代计算中的位置向量,为粒子i在第j次迭代计算中的速度向量,Pbest(i,j)为粒子i在第j次迭代计算中所经历过的最佳位置,简称个体极值;Gbest(j)为粒子i在第j次迭代计算中所有粒子中的最佳位置,简称全局极值;f(i,j)为粒子i在第j次迭代计算中通过式(1)所计算出的适应度值;S32,当j=0时,在CPU端对PSO算法进行如下内容的初始化设置:种群规模、迭代次数和粒子允许最大速度,并在满足所述约束条件的范围内随机给定粒子i的初始位置和速度;在CPU端初始化各个粒子的个体极值和全局极值;在GPU端建立与粒子总数相同的线程数,并为每个粒子设置独立的计算空间,将每个线程上的粒子计算作为一个计算任务,即粒子与线程一一对应设置;将CPU端粒子信息传递至GPU显存,得到多个需并行计算的任务;通过CPU端函数的调用,执行GPU上的需并行计算的任务;S33,将j增加1,并判定j+1是否小于K,如果是,则执行S34,否则返回S31;S34,在GPU端并行进行粒子的迭代计算,得到当次迭代的并联水库群下游最大过流量;S35,判断当次迭代得到的并联水库群下游最大过流量是否小于并联水库群下游防洪断面的安全过流量Qsafe,如果是,则迭代结束,获得最优全局极值,即得到优化后的水库水位过程线,进入S36;否则返回S33,直到获得最优全局极值;S36,将GPU端的信息传回至CPU端,释放CPU端和GPU端已分配的变量空间,完成使用GPU对PSO算法进行加速的方法对防洪调度目标函数的求解。优选地,S34包括如下步骤:S341,按照式(10)、(11)和(12)更新粒子i在第j次迭代计算中的速度和位置;其中,ω(j)为第j次迭代计算的惯性系数;C1和C2均表示学习因子,为常数,可取2;R1和R2均为[0,1]上的随机数,rand()为随机函数,产生[0,1]的随机数;S342,将任意一个粒子i在第j次迭代计算中的位置向量带入式(1)中,同时对粒子i进行约束条件的计算,若同时满足所有约束条件,则计算出粒子i在第j次迭代计算中的适应度值f(i,j);若不满足约束条件中的任何一个,则将粒子i在第j次迭代计算中的适应度值f(i,j)置为0;S343,按照如下方法更新粒子个体极值:将通过S342计算获得的粒子i在第j次迭代计算中的适应度值f(i,j)与粒子i在第j-1次迭代计算中的个体极值Pbest(i,j-1)进行比较,如果f(i,j)>Pbest(i,j-1),则粒子i在第j次迭代计算中的个体极值Pbest(i,j)数值上等于f(i,j);如果f(i,j)≤Pbest(i,j-1),则粒子i在第j次迭代计算中的个体极值Pbest(i,j)数值上等于Pbest(i,j-1);S344,按照如下方法更新全局极值:将粒子i在第j次迭代计算中的个体极值Pbest(i,j)与第j-1次迭代计算中的全局极值Gbest(j-1)进行比较,如果Pbest(i,j)>Gbest(j本文档来自技高网...
一种基于GPU加速的并联水库群防洪优化调度方法

【技术保护点】
1.一种基于GPU加速的并联水库群防洪优化调度方法,其特征在于,所述方法包括:S1,确定并联水库群;S2,获取所述并联水库群中各水库的约束条件、优化变量、优化变量个数以及防洪调度目标函数;S3,根据约束条件、优化变量和优化变量个数,利用PSO算法对防洪调度目标函数求解,得到并联水库群下游最大过流量,其中,采用GPU对粒子群优化算法进行加速求解。

【技术特征摘要】
1.一种基于GPU加速的并联水库群防洪优化调度方法,其特征在于,所述方法包括:S1,确定并联水库群;S2,获取所述并联水库群中各水库的约束条件、优化变量、优化变量个数以及防洪调度目标函数;S3,根据约束条件、优化变量和优化变量个数,利用PSO算法对防洪调度目标函数求解,得到并联水库群下游最大过流量,其中,采用GPU对粒子群优化算法进行加速求解。2.根据权利要求1所述的基于GPU加速的并联水库群防洪优化调度方法,其特征在于,S2中,所述防洪调度目标函数为:式中,为并联水库群下游共同防洪控制点的最大流量;Qn(t)为第t时段末第n个水库下泄流量经过洪水演进计算到达下游防洪控制点的平均流量;N为并联水库群中水库个数;T为调度时段总数。3.根据权利要求2所述的基于GPU加速的并联水库群防洪优化调度方法,其特征在于,S2中,所述优化变量为并联水库群在调度期内各个时刻末的水位过程线Zn(t)(t=1,2,…,T;n=1,2,..,N),所述优化变量个数为水库个数与调度时段总数的积,即为水库个数N与调度时段总数T的乘积NT。4.根据权利要求3所述的基于GPU加速的并联水库群防洪优化调度方法,其特征在于,S2,所述约束条件包括:ⅰ、下式所示的水库水位-库容关系曲线:V=Sn(z)(3)式中,水库的水位z为第n个水库的水位,V为第n个水库的库容;ⅱ、下式所示的水库水量平衡约束:式中,Vn(t-1)表示第n个水库在第t时段初的库容,分别表示第n个水库在第t时段末的库容,表示第t时段末第n个水库的入库流量,表示第t时段末第n个水库的下泄流量,Δt为计算时段的长度;ⅲ、下式所示的水库库容约束:式中,表示第t时段末第n个水库的最小允许库容,表示第t时段末第n个水库的最大允许库容;ⅳ、下式所示的水库泄流能力约束:式中,是第n个水库库容为Vn时所对应的水库最大下泄流量;ⅴ、下式所示的边界条件:式中,Vn(0)表示第n个水库调度期初起调水位对应的库容;Vn(T)表示第n个水库调度期末水位对应的库容;和为定值,需根据水库的实际情况给定;ⅵ、下式所示的下泄流量变幅约束:式中,Δqn表示第n个水库出库流量的最大变幅;第t时段初第n个水库的下泄流量;ⅶ、下式所示的下游河道安全泄量约束:式中,Qn(t)表示第n个水库出库流量经洪水演进计算至防洪控制点的第t时段末流量;qsafe表示防洪控制点的安全流量;ⅷ、下式所示的河道汇流约束:式中,均为第k个马斯京根演算河段的演进参数。5.根据权利要求4所述基于GPU加速的并联水库群防洪优化调度方法,其特征在于,S3包括如下步骤:S31,结合并联水库群防洪优化调度问题,对PSO算法进行如下的数学描述:将所有优化变量组合作为决策变量序列,并将决策变量序列中的元素与PSO算法中的粒子的位置向量元素一一对应设置;将并联水库群中各水库各时段末水位的涨落速度与PSO算法中的速度向量元素一一对应设置;将优化变量个数与PSO算法的搜索空间维数对应设置;通过式(1)计算PSO算法的适应度值;其中,设定:D为PSO算法的搜索空间维数,数值上等于优化变量个数NT;M为粒子的种群规模,即粒子总数;K为算法迭代的最大次数;Umax为粒子允许最大速度;为粒子i(i=1,2,…,m)在第j(j=1,2,…,k)次迭代计算中的位置向量,为粒子i在第j次迭代计算中的速度向量,Pbest(i,j)为粒子i在第j次迭代计算中所经历过的最佳位置,简称个体极值;Gbest(j)为粒子i在第j次迭代计算中所有粒子中的最佳位置,简称全局极值;f(i,j...

【专利技术属性】
技术研发人员:曾志强雷晓辉杨明祥蒋云钟王浩权锦刘珂田雨张梦婕
申请(专利权)人:中国水利水电科学研究院
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1