Page 43 - 2022年第53卷第5期
P. 43

k
              长,为避免过多试算一般设置为较大的值,如水库兴利库容的月均值等;Qf为步长增加第 k次时确定
                                                                                   n
              的区间上界。当出现城镇保证率或农业保证率低于设定目标保证率时,可确定城镇供水能力可行区间
                          k
                    k - 1
              为[Qf ,Qf],并进入步骤(4)。
                          n
                    n
                  ( 4)内层:定界迭代。基于定界迭代法                [25 - 26] 和对分差值算法   [27] 缩小供水能力区间,以迭代区间中
              值作为本次试算的供水能力值,然后根据保证率结果缩小城镇供水能力可行区间,上下界逼近收敛时
              即得出调度线个体对应的城镇供水能力值。迭代试算的城镇供水能力值依据式(10)确定:
                                                                 j
                                                           j
                                                      j
                                                   Qs= (Qs + Qs )?2                                    (10)
                                                           max
                                                      n
                                                                 min
                                                                                          j
                                    j
                                                                                   j
              式中:j为迭代次数;Qs为第 j次迭代参与模拟计算的城镇供水能力值;Qs 和 Qs 为供水能力迭代
                                                                                   max
                                    n
                                                                                          min
                                                                               j
                                            1
                                                  1
                                                                                      j
              区间的上下界。迭代区间初值 Qs 、Qs 由第(3)步确定。下一代的 Qs 、Qs 需根据城镇和农业的
                                            max   min                          max    min
              计算供水保证率与目标保证率关系按式(11)、式(12)进行修正:
                                                    j - 1
                                              j
                                            Qs = Qs ,   P ≥P 且 P ≥P                                    (11)
                                              j {
                                                    max
                                              max
                                                    j - 1
                                            Qs = Qs ,     urca  urob  arca  arob
                                              min   n
                                                    j - 1
                                              j
                                            Qs = Qs ,
                                              j {  max  n   P <P 或 P <P                                (12)
                                                    j - 1
                                            Qs = Qs ,     urca  urob  arca  arob
                                              min   min
                  根据式(11)、式(12),当城镇和农业保证率均满足时表明城镇供水能力可以继续增加,可行区间
              取现有可行区间的上半区。其他情况下该调度线不能同时满足两个保证率的要求,必须降低城镇供水
              能力目标值减少两个目标的竞争关系,可行区间取现有区间的下半区。
                  ( 5)内层:调度线个体循环判断。根据式(13)判断调度线个体对应的城镇供水能力是否达到最大:
                                                         j    j
                                                       Qs - Qs < δ                                     (13)
                                                         max  min
                  当城镇供水能力定界区间范围小于精度控制值 δ (一般取非常小的常数)则停止迭代并进入步骤
                           j
              (6),并以 Qs 作为第 n条调度线个体在第 e代对应的城镇供水能力,如式(14)所示:
                           min
                                                           e
                                                               j
                                                        qur= Qs                                        (14)
                                                           n   min
              若不符合迭代停止条件,则重复步骤(4)调整迭代区间。
                  ( 6)内层:调度线种群循环判断。判断当前进化代次的种群是否均完成城镇供水能力计算,若未
              完成则进入步骤( 3),计算下一条调度线个体对应的城镇供水能力。若全部调度线种群完成计算则结
              束内层循环,并将本代所有调度线个体对应的城镇供水能力返回外层,进入步骤(7)。
                  ( 7)外层:比选个体极值和全局极值。通过比选第 n条调度线个体在不同代次对应的城镇供水能
                                      e
              力确定调度线个体极值( Lp);通过比选截止到当前代次所有种群对应的城镇供水能力确定调度线全
                                      n
                        e
              局极值( Lg)。
                        m
                  ( 8)外层:收敛判断。当最大城镇供水能力(全局极值)保持不变,且连续达到一定进化代数,一
              般应达到 50次以上,可认为算法已经完全收敛,结束计算,并输出最优全局调度线和供水能力。若
              不满足收敛条件,则继续执行步骤( 9)。
                  ( 9)外层:更新进化速度和方向。根据式(15)更新下一代调度线个体的进化速度和方向:
                                                            e
                                                e
                                       e + 1
                                                                              e
                                                                                 e
                                                                e
                                     Vf = w·Vf + c·R·(lp - l ) + c·R·(lg - l )                         (15)
                                       n,m      n ,m  1  1  n ,m  n ,m  2  2  m  n ,m
                      e + 1
              式中:Vf 为第 n条调度线个体的第 m个粒子在第 e + 1 代的速度;c和 c为两个常数;R和 R为[0,1]
                      n,m                                                  1   2             1    2
              之间的随机数;w为动量项数,可以通过调整其大小来改变搜索能力的强弱,一般取 0.1~0.9。为了
              保证前期搜索范围和后期搜索精度,同时提高避免陷入局部最优的能力,根据式(16)确定不同进化代
              次的 w值    [28]
                                                             (
                                                         (
                                                                          ·! + 1 ?2
                                      w = w + (w - w )· cos   mod(e,100)     ) )                       (16)
                                                     min
                                          min
                                                max
                                                                  100
                  (10)外层:调度线种群进化。根据粒子群算法的种群进化方法,调度线进化过程如下:
                                                           e
                                                       e + 1
                                                                 e + 1
                                                      l = l + Vf                                       (17)
                                                       n,m  n,m  n,m
                   e + 1
              式中 l 为进化生成的第 e + 1 代调度线粒子,需根据下式进行修正:
                   n,m
                                                                                                —  5 4 3 —
   38   39   40   41   42   43   44   45   46   47   48