一种水电系统优化调度的多核并行逐次逼近方法
【专利摘要】本发明属于水电优化调度运行领域,公开了一种水电系统优化调度的多核并行逐次逼近方法,该方法以逐步优化算法(POA)为基础执行框架,将水电优化调度问题分解为若干两阶段子问题,在两阶段子问题寻优时开展多核并行寻优,逐次逼近全局最优解。本发明能够充分利用已有并行计算资源,大幅提高运算效率;且计算规模越大,性能优势越显著,有效降低计算复杂度,显著提升电站计算规模和运算效率,且计算规模越大,本发明性能优势越明显,对大规模水电系统优化调度问题的并行研究具有良好的参考和应用价值。
【专利说明】—种水电系统优化调度的多核并行逐次逼近方法
【技术领域】
[0001]本发明涉及水电优化调度运行领域,特别涉及一种水电系统优化调度的多核并行逐次逼近方法。
技术背景
[0002]随着水电系统的水力、电力联系日趋复杂,其运行与管理面临日益严峻的挑战,迫切需要新型有效的方法与途径提高水电优化调度计算效率与求解质量。与此同时,伴随计算机技术的迅猛发展,多核CPU已然成为个人、企业等电脑的标准配置;为适应这一趋势,传统的串行编程正逐渐向并行、分布式编程转变,充分利用多核并行环境逐渐成为提高应用问题求解效率的重要途径与发展趋势。传统优化算法如线性规划、动态规划等多采用单线程计算模式,未能充分利用已有多核并行计算资源,造成资源的极大浪费;同时在求解大规模水电优化调度问题时难以在合理时间内获取满意的计算结果。
[0003]逐步优化算法(ProgressiveOptimality Algorithm, P0A)是由加拿大学者H.R.Howson和N.G.F.Sancho在1975年提出用于求解多状态动态规划问题的动态规划改进算法。作者根据贝尔曼最优化原理的思想,提出了逐次最优化原理,即“最优路线具有这样的性质,每对决策集合相对于它的初始值和终止值来说是最优的”。POA将多阶段问题分解为多个两阶段子问题,每次都固定其他阶段变量,只优化调整当前所选两阶段变量,并将本次优化结果作为下次优化的初始条件,如此逐时段进行,反复循环直至收敛。
[0004]POA将多阶段决策问题分解为若干两阶段子问题,与DP相比,可有效提高计算效率;同时在目标函数为凸函数时可保证收敛至总体最优解,因此在库群联合优化调度中得到广泛应用。但随着水电站数目增多,POA仍会面临严重的“维数灾”问题。假设系统共涉及N座水库,各水库状态离散数目均为k,POA子问题只需离散所求时段t各水库状态,并对各水库离散状态进行组合,则至少需存储0个状态组合,如图1所示;同时相邻时段分别需要进行kN次调节计算,子问题共需2kN次,由此可知,POA子问题时间复杂度均为0(kN)。随着计算电站与状态离散数目增多,POA存储规模和运算耗时将呈指数增长,“维数灾”问题并未得到彻底解决。同时从图2可以看出,各状态组合分别代表一种调度决策过程,任意两状态组合之间相互独立、无直接联系,即POA具有良好的并行性,各状态组合之间可实现同步计算;与此同时,POA采用传统串行计算模式依次计算各状态组合,未能充分利用已有多核并行资源。由此可知,若能结合并行技术予以计算,可有效提升POA计算效率。
[0005]Fork/Join框架是一种基于分治策略处理海量数据计算、充分利用多核CPU计算能力的并行计算框架,通过问题分解、并行计算、结果合并等三个步骤实现并行求解,其基本思想是首先采用“分治法”将难以直接求解的大规模复杂问题分解为数个规模较小、相互独立且与原问题相同、并可直接求解的子问题,然后递归求解获得各子问题解,最后合并各子问题的解得到原问题的解。
[0006]因此,本发明提出的多核并行逐次逼近方法开展对库群优化调度问题的求解,可在多核环境下利用Fork/Join框架实现POA的并行计算,将大规模计算问题分解至P个CPU同时进行计算,逐次逼近全局最优解,将POA的时间复杂度由0(kN)降低至本发明的0(kN/P),又可充分利用已有计算资源,大幅提升计算效率,保证水电系统优化调度问题计算的准确性和时效性。
【发明内容】
[0007]本发明要解决的技术问题是提供一种水电系统优化调度的多核并行逐次逼近方法,该方法以POA为基础,在两阶段子问题寻优时并行计算所有状态组合,逐次逼近全局最优解,充分利用已有并行计算资源,可有效缓解POA的时间复杂度,大幅提高运算效率。
[0008]本发明的技术方案为:本发明揭示了一种水电系统优化调度的多核并行逐次逼近方法,假设水电系统中涉及N个电站,共需计算T个时段,则本发明按照下述步骤完成梯水电系统优化调度过程,其中(5)-(8)采用并行技术予以实现,两阶段子问题并行计算示意图见图4,本发明计算流程如图5所示。
[0009](I)设置精度要求ε、状态离散数目k等计算参数;
[0010](2)由常规调度方法确定各水库水位变化序列Z° ;
[0011](3)令 t = T-1。
[0012](4)由时段t各电站初始状态Zi, t及相应状态增量Λ i>t构造状态组合,此时初始状态组合为ΚΖ-Ζν,Ζy,了,式中zi;t、Δ i;t分别表示电站i在时段t的状态和初始状态增量,i = 1,2,…,N ; j = I, 2,...,T0
[0013](5)由主线程计算优化阶段阶段调度方案总数目,并生成设定数量的线程池;
[0014](6)将调度方案分解至各线程池,直至各任务规模均不大于设定阈值;
[0015](7)采用惩罚函数法并行计算各子任务中所有状态组合相应目标函数及惩罚项;
[0016](8)主线程合并各子线程计算结果,获得最优状态组合<及相应计算结果。
[0017](9)判定是否满若满足则转至(10);否则令ZX,转至(4);
[0018](10)令 t = t-Ι,若 t > 0,则转至(4);否则转至(11);
[0019](Ii)此时各水库水位变化序列为z1,判定是否满足,若满足
\<i<N 1< j<T 1 J'J
转至(12);否则缩小各时段状态增量,令广0.5χΔ,ν,然后转至⑶;
[0020](12)停止计算,输出各水库最优水位序列。
[0021]本发明涉及一种水电系统优化调度的多核并行逐次逼近方法,可在多核环境下实现POA的并行计算,逐次逼近全局最优解,对比现有技术有如下有益效果:
[0022](I).从计算模式上,传统POA采用串行计算模式,仅能利用单个CPU,造成其他CPU的资源空闲,而本发明将大规模计算问题分解至多个CPU同时进行计算,使得各CPU均有任务处理,实现负载均衡;
[0023](2).从时空复杂度上看,本发明提出的多核并行逐次逼近方法开展对库群优化调度问题的求解,在多核环境下利用Fork/Join框架实现POA的并行计算,假设分配至P个(PU进行计算,则可将POA的时间复杂度由O(kN)降低至本发明的0(kN/P);
[0024](3).从计算效率上看,本发明将相同的计算任务分配至多个计算单元同时计算,显然可以充分利用已有计算资源,大幅缩短计算耗时,有效提升计算效率;
[0025](4).从计算规模上看,随着计算机硬件的不断提升,本发明运行的硬件中CPU计算单元越多,显然计算规模越大,并且在相同时间内能够完成的工作量更多。
[0026](5).从计算结果上看,本发明充分结合POA算法和并行计算的优点,可保证水电系统优化调度问题计算的准确性和时效性。
[0027](6).从发展趋势上看,本发明紧跟目前并行计算发展潮流,对水电系统常规优化方法的多核并行、GPU并行等具有良好的借鉴意义。
【专利附图】
【附图说明】
[0028]图1是POA两阶段子问题状态组合示意图;
[0029]图2是POA串行计算模式不意图;
[0030]图3是Fork/Join并行框架示意图;
[0031]图4是本发明两阶段子问题并行计算示意图;
[0032]图5是本发明计算流程图;
【具体实施方式】
[0033]下面结合附图和实施例对本发明作进一步的描述。
[0034]本发明揭示了一种水电系统优化调度的多核并行逐次逼近方法,假设水电系统中涉及N个电站,共需计算T个时段,则本发明按照下述步骤完成梯水电系统优化调度过程,其中(5)-(8)采用并行技术予以实现。其中两阶段子问题并行计算示意图见图4,本发明计算流程如图5所示。
[0035](I)设置精度要求ε、状态离散数目k等计算参数;
[0036](2)由常规调度方法确定各水库水位变化序列ZO ;
[0037](3)令 t = T-1。
[0038](4)由时段t各电站初始状态Zi, t及相应状态增量Λ i t构造状态组合,此时初始状态组合力z =[z, ,,Z2n---,Zxt J,式中Zi, t、Ait分别表示电站i在时段t的状态和初始状态增量,i = 1,2,…,N ; j = I, 2,...,T0
[0039](5)由主线程计算优化阶段阶段调度方案总数目,并生成设定数量的线程池;
[0040](6)将调度方案分解至各线程池,直至各任务规模均不大于设定阈值;
[0041](7)采用惩罚函数法并行计算各子任务中所有状态组合相应目标函数及惩罚项;
[0042](8)主线程合并各子线程计算结果,获得最优状态组合Zi1及相应计算结果。
[0043](9)判定是否满若满足则转至(10);否则令z,=zl转至
(4);
[0044](10)令 t = t-Ι,若 t >0,则转至(4);否则转至(11);
[0045](11)此时各水库水位变化序列为Z1,判定是否满足,若满足转至(12);否则缩小各时段状态增量,令"/,7_人/=0.5\4,/,然后转至⑶;
[0046](12)停止计算,输出各水库最优水位序列。
[0047]实施例
[0048]以乌江流域长期优化调度为例对本发明进行验证。乌江流域是我国13大水电基地之一,调节性能多样,涵盖多年调节、不完全年调节及日调节等多种调节性能。下表列出在平水年来水条件下,POA与本发明不同状态离散数目的计算结果对比。需要说明的是:由于本发明采用POA作为基础框架,在两阶段计算时利用Fork/Join框架实现并行计算,故本发明与POA计算发电量相同。可以看出,从耗时和发电量上看,随着状态离散数目增加,POA与本发明计算规模不断增加,搜索能力得到增强,不断逼近全局最优解,发电量逐渐增大,但增幅并不明显,而算法耗时显著延长:状态离散数目由3增加至5时,发电量仅增加0.02亿kW.h,而耗时增加约2.4倍;状态离散数目由7增加至9,发电量不再增加,而耗时增幅高达为2060s,显然已无法满足实际工程的时效性需求。而本发明结合并行技术,充分利用并行计算资源,与串行方法相比,计算效率大幅提升,且随着CPU核数的增加,性能优势更加显著:在状态离散数目为3时,串行耗时为2核、4核和8核环境下并行计算的1.83倍、
3.41倍和6.64倍;在状态离散数目为9时,2核、4核和8核环境下耗时分别减少1223s、1833s 和 2176s。
[0049]
【权利要求】
1.一种水电系统优化调度的多核并行逐次逼近方法,其特征包括如下步骤, 假设水电系统中涉及N个电站,共需计算T个时段; (1)由常规调度方法确定各水库水位变化序列Z°;
(2)令t = T-1 ;(3)由时段t各电站初始状态Zi;t及相应状态增量Ai;t构造状态组合,此时初始状态组合为々^[ZhnZ2>t,.■-,ZnJ,式中Zi;t、Δ 分别表示电站i在时段t的状态和初始状态增量,i = l,2,...,N;j = 1,2,…,T; (4)由主线程计算优化阶段调度方案总数目,并生成设定数量的线程池; (5)将调度方案分解至各线程池,直至各任务规模均不大于设定阈值; (6)采用惩罚函数法并行计算各子任务中所有状态组合相应目标函数及惩罚项; (7)主线程合并各子线程计算结果,获得最优状态组合7反相应计算结果; (8)判定是否满足ε为精度要求k;若满足则转至(10);否则令Zr°=Z/,转至⑷; (9)令t=> 0,则转至(4);否则转至(11); (?ο)此时各水库水位变化序列为z1,判定是否满足€$罾s,若满足转至(12);否则缩小各时段状态增量,令VUAv=MxA,,,,然后转至(3); (11)停止计算,输出各水库最优水位序列。
【文档编号】G06Q50/06GK104182909SQ201410415550
【公开日】2014年12月3日 申请日期:2014年8月21日 优先权日:2014年8月21日
【发明者】程春田, 冯仲恺, 牛文静, 廖胜利, 武新宇, 李刚, 申建建 申请人:大连理工大学