《1 前言》

1 前言

水库优化调度是一个比较复杂的非线性约束优化问题。周育人等[1] 提出将约束优化问题转换成两个目标函数的最小值问题,一个为原问题的目标函数,另一个为违反约束条件的程度函数;利用 Pareto 优于关系定义个体 Pareto 强度指标,根据 Pareto 强度指标对上述两个目标函数组成的向量进行排序,使用遗传算法求解。 SCE - UA 算法[2,3] 是 Duan 等人提出的一种解决非线性约束最优化问题的进化算法,算法结合了单纯形法、随机搜索和基因算法等方法的优点,具有很强的全局寻优能力。笔者采用 SCE - UA 算法结合 Pareto 强度值等概念,用 Pareto 强度值 SCE - UA 算法(PSSCE, Pareto strength SCE - UA algorithm)求解水库优化调度的问题。

《2 水库优化调度问题数学模型》

2 水库优化调度问题数学模型

假设研究的对象是以发电为主,兼顾其他综合利用要求的水库。长期优化调度的确定性数学模型如下:

目标函数

约束条件

水量平衡约束 

水库蓄水量约束 

水轮机过水流量约束 

水库泄流量约束 

水电站出力约束 

式中 T 为年内总时段数,以月计 T = 12;A 为水电站出力系数;Qt 为水电站发电引用流量(m3/s);Ft 为水库入库流量(m3/s);Ht 为水电站时段平均水头(m);St 为水库弃水流量(m3/s);Mt 为第 t 时段小时数;Vt 为时段初水库蓄水量(m3);V+ 1 为时段末水库蓄水量(m3);(t 为第 t 时段的秒数;Vt,min 为水库最小允许蓄水量(m3) ; Vt,max 为水库最大允许蓄水量(m3);Qmin 为水电站最小引用流量(m3/s);Qmax 为水电站最大引用流量(m3/s);qt,min 为水库下游综合利用要求的最小下泄流量(m3/s);qt,max 为下游河道安全泄流量;Pmin 为水电站保证出力(kW);Pmax 为水电站装机容量(kW)。

《3 Pareto强度值 SCE - UA 算法》

3 Pareto强度值 SCE - UA 算法

《3.1 约束优化问题转化为无约束多目标问题》

3.1 约束优化问题转化为无约束多目标问题

约束优化问题可以概括地描述为如下形式:

对于上述问题定义

s1x)= fx),s2x)= fjx),原优化问题式(7)转化为一个两目标无约束优化问题[4] 

其中,∈ S RnS 为目标函数的搜索空间,F 为可行区域。其中 s1x)为原问题的目标函数,s2x)为违反约束条件的程度函数,如果 x * 既是 s1x)的最小值又是 s2x)的最小值(s2x)的最小值为 0),那么 x * 就是原约束问题式(7)的解。

《3.2 基于 Pareto 强度值的个体排序》

3.2 基于 Pareto 强度值的个体排序

在进化算法求解问题式(9)的过程中的个体选优,可利用向量之间的 Pareto 优于关系为基础比较两个个体的优劣,对群体中的个体则以 Pareto 强度值 [1] 概念为基础来进行排序。

定义 1 设 a ∈ Sb ∈ S,称 a Pareto 优于 b(Pareto dominate 记 a  b)或 b Pareto 劣于 a 当且仅当 i ∈{1,2}:sia sib)且  j ∈{1,2 } : siasib)。

定义 2 设 xi 是群体 Pt 中的一个个体,用 Sxi)表示群体中 Pareto 劣于 x的个体个数,称为 xi 的强度值,即

其中#表示集合的基数。强度值 Sxi)反映了个体 xi 在群体 Pt 中的 Pareto 优于关系的强弱程度,从而可以根据强度值为基础来对群体中的个体进行排序,排序步骤如下:

1) 按式(10)计算群体中的每个个体的强度值,强度值大者为优。

2) 对于强度值相同者,进一步比较 s2x),s2x)小者为优。

《3.3 Pareto强度值 SCE - UA 算法》

3.3 Pareto强度值 SCE - UA 算法

算法由 SCE 和 CCE 两部分构成,如图 1 所示。

《图1》

图1 Pareto 强度值 SCE - UA 算法流程图

Fig.1 Flowchart of Pareto strength SCE-UA algorithm

SCE 算法步骤:

Step 1 初始化   假定是 n 维问题,选取参与进化的复合形的个数 p 1 )和每个复合形所包含的顶点数目 mm n + 1)。计算样本点数目 spm

Step 2 产生样本   在可行域内随机产生 s 个样本 x1,…,xs,计算样本 yi =(s1xi),s2xi)),得样本点(xiyi ),i=1,…,s

Step 3 样本点排序  把 s 个样本点按 Pareto 强度值排序,排序后不妨仍记为(xiyi ),= 1,…,,其中 xi 优于 x+ 1 ,记 D ={(xiyi ),= 1,…,s }。

Step 4 划分为复合形群体  将 D 划分为 p 个复合形 A1,…, AP,每个复合形含有 m 点,其中

Step 5 复合形进化   按照竞争复合形进化算法(CCE)分别进化每个复合形。

Step 6 复合形掺混   把进化后的每个复合形的所有顶点组合成新的点集,再次按 Pareto 强度值排序,排序后不妨仍记为 D

Step 7 收敛性判断   如果满足收敛条件则停止,否则回到 Step 4 。

CCE(竞争复合形进化算法)步骤:

Step 1 初始化   选取 q,α,β,这里 2 q m,α 1,β 1 。p = 2(m + 1 - i)/mm + 1 ), = 1,…,m

Step 2 分配权重   对第 Ak 个复合形中的每个点分配其概率,这样较好的点就要比稍差的点有较多的机会形成子复合形。

Step 3 选取父辈群体   从 Ak 中按照概率分布随机地选取 q 个不同的点 u1 ,…,uj,并记录 q 个点在 Ak 中的位置 L 。计算每个点的 yi=(s1xi),s2xi)),把 q 个点及其相应的 yi 放于变量 B 中。

Step 4 进化产生下一代群体

Step 4a 对 q 个点按 Pareto 强度值排序,计算 q - 1 个点的形心: u/(q - 1)

Step 4b 计算最差点的反射点 r = 2g - uq

Step 4c 如果 r 在可行域内 Ω,计算其二维向量值 yr,转到 Step 4d 。否则,计算包含 Ak 的可行域中的最小超平面 H,从 H 中随机抽取可行点 z,计算 yz,以 z 代替 ryz 代替 yr

Step 4d 若 yr 优于 yq,以r代替最差点 uq,转到 Step 4f;否则计算 c =(g + uq)/2 和 yc

Step 4e 若 yc 优于 yq,以 c 代替最差点 uq,转到 Step 4f;否则,计算包含 Ak 的可行域中的最小超平面 H,从 H 中随机抽取可行点 z,计算 yz,以 z 代替 uqyz 代替 yq

Step 4f 重复 Step 4a 到 Step 4e α 次。

Step 5 取代  把 B 中进化产生的下一代群体即 q 个点放回到 Ak 中原位置 L,并重新排序。

Step 6 迭代  重复 Step 1 到 Step 5 β 次,它表示进化了 β 代,也即每个复合形进化了多远。

算法建议取 m = 2n + 1,q = n + 1,α = 1,β = 2n + 1 。

《4 计算实例》

4 计算实例

以辽宁省某水电站为例,该水电站坝址以上控制流域面积 10 400 km2 ,坝址以上干流总长 247 km 。水电站是以发电为主兼有防洪和灌溉的综合利用枢纽,电站出力系数为 8.5,保证出力为 33 MW,装机容量为 225 MW,多年平均发电量为 4.77 × 108 kW · h 。水库为不完全年调节水库,正常蓄水位为 300 m,死水位为 290 m,最高蓄水位为 303 m,为保证水库安全,要求水库在 7 月份至 8 月份的水位不超过 300 m,9 月初以后才允许超蓄,直到最高蓄水位 303 m 。为验证计算结果的准确性,同时与传统的动态规划法(DP)计算比较,调度过程计算结果如表 1 所示,可以看出 PSSCE 计算结果与 DP 计算结果基本一致,其中 Pareto 强度值 SCE - UA 算法计算结果的总发电量为 5.6238 × 109 kW · h,DP 计算结果的总发电量为 5.6238 × 109 kW · h,这表示建立的方法有效可行。

《表1》

表1 Pareto 强度值 SCE - UA 算法和动态规划典型年计算结果

Table1 Result of typical year optimal operation by PSSCE and DP