一种线性方程约束下生成随机数修正的一般性方法(上)

16 篇文章 0 订阅
15 篇文章 0 订阅

前言

    博客《一种单线性方程约束下的生成随机数修正方法(结论与应用)》给出了生成的随机数满足变量上下限约束但不满足单线性方程约束时,生成随机数的修正方法,使得修正后的随机数既满足变量上下限约束又满足单线性方程约束;而博客《一种多线性方程约束下的生成随机数修正方法(上)》和博客《一种多线性方程约束下的生成随机数修正方法(下)》则通过实例分析将随机数修正方法拓展到某些多线性约束下的特殊优化场景,从而给出了一组用于解决各类线性约束下的生成随机数修正问题的可行思路。
    本博客将综合上述文章中的修正思路,首先对各类线性方程解的个数进行讨论,并给出线性方程约束下的生成随机数修正的一般性方法,并作为线性不等式约束和一般线性约束下生成随机数修正研究的前提。

修正方法

    设需要生成一组如下所示的 N N N维随机向量 x = [ x 1 ⋯ x j ⋯ x N ] T \boldsymbol{x}=\left[ \begin{matrix} x_1 & \cdots & x_j & \cdots & x_N \end{matrix} \right]^T x=[x1xjxN]T满足如式(1)所示的 N N N个随机量上下界约束条件和 M M M个线性方程约束
{ x j ∈ [ x ‾ j , x ‾ j ] , j ∈ { 1 , ⋯   , N } ∑ i = 1 N a i , j x j = b i , i ∈ { 1 , ⋯   , M } \begin{equation} \begin{cases} x_j ∈ \left[ \underline{x}_j, \overline{x}_j \right], j ∈ \{ 1, \cdots, N \} \\ \displaystyle \sum_{i = 1}^{N} a_{i, j} x_j = b_i, i ∈ \{ 1, \cdots, M \} \\ \end{cases} \end{equation} xj[xj,xj],j{1,,N}i=1Nai,jxj=bi,i{1,,M}
其中: x ‾ j \underline{x}_j xj x ‾ j \overline{x}_j xj分别是第 j j j维随机数 x j x_j xj的下界和上界; a i , j a_{i, j} ai,j为线性方程约束中随机数 x j x_j xj的系数,方程中的 a i , j a_{i, j} ai,j不能全部等于 0 0 0 b i b_i bi为第 i i i个线性方程的常数项。
    若按照如式(2)所示的随机数生成方法进行生成随机数 x g e n = [ x g e n , 1 ⋯ x g e n , i ⋯ x g e n , N ] T \boldsymbol{x_{gen}} = \left[ \begin{matrix} x_{gen, 1} & \cdots & x_{gen, i} \cdots & x_{gen, N} \end{matrix} \right]^T xgen=[xgen,1xgen,ixgen,N]T作为式(1)所示问题的其中一个测试解
x g e n , j = r j ( x ‾ j − x ‾ j ) + x ‾ j , j ∈ { 1 , ⋯   , N } \begin{equation} x_{gen, j}=r_j \left(\overline{x}_j - \underline{x}_j \right) + \underline{x}_j, j ∈ \{ 1,\cdots, N \} \end{equation} xgen,j=rj(xjxj)+xj,j{1,,N}

其中: r j r_j rj [ 0 , 1 ] [0,1] [0,1]上满足特定概率分布的随机数,易得
x ‾ j ≤ x g e n , j ≤ ( x ‾ j − x ‾ j ) + x ‾ j = x ‾ j , j ∈ { 1 , ⋯   , N } \begin{equation} \underline{x}_j ≤ x_{gen, j} ≤ \left( \overline{x}_j - \underline{x}_j \right) + \underline{x}_j = \underline{x}_j, j ∈ \{ 1, \cdots, N \} \end{equation} xjxgen,j(xjxj)+xj=xj,j{1,,N}
但该随机数生成方法无法保证满足式(1)中的线性方程约束。当生成的随机向量不满足式(1)中的线性方程约束时,须通过将 x g e n \boldsymbol{x_{gen}} xgen修正为 x c o r = [ x c o r , 1 ⋯ x c o r , j ⋯ x c o r , N ] T \boldsymbol{x_{cor}} = \left[ \begin{matrix}x_{cor, 1} & \cdots & x_{cor, j} & \cdots & x_{cor, N} \end{matrix} \right]^T xcor=[xcor,1xcor,jxcor,N]T,使之既满足式(1)中的变量上下界约束,又满足式(1)中的线性方程约束。
    将式(1)中的线性方程组转写成矩阵方程的形式,即有
A x = b \begin{equation} \boldsymbol{A} \boldsymbol{x} = \boldsymbol{b} \end{equation} Ax=b
其中:系数矩阵 A = [ a 1 , 1 ⋯ a 1 , j ⋯ a 1 , N ⋮ ⋮ ⋮ ⋮ ⋮ a i , 1 ⋯ a i , j ⋯ a i , N ⋮ ⋮ ⋮ ⋮ ⋮ a M , 1 ⋯ a M , j ⋯ a M , N ] \boldsymbol{A} = \left[ \begin{matrix} a_{1, 1} & \cdots & a_{1, j} & \cdots & a_{1, N} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ a_{i, 1} & \cdots & a_{i, j} & \cdots & a_{i, N} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ a_{M, 1} & \cdots & a_{M, j} & \cdots & a_{M, N} \end{matrix} \right] A= a1,1ai,1aM,1a1,jai,jaM,ja1,Nai,NaM,N ,常数向量 b = [ b 1 ⋮ b i ⋮ b M ] \boldsymbol{b} = \left[ \begin{matrix} b_1 \\ \vdots \\ b_i \\ \vdots \\ b_M \end{matrix} \right] b= b1bibM
    根据矩阵理论可知,可通过如式(5)所示的有限次初等行变换将 A \boldsymbol{A} A转换成行最简形矩阵(Reduced Row Echelon Form of a Matrix) A R R E F \boldsymbol{A_{RREF}} ARREF
A R R E F = ( ∏ p 1 = M P 1 P p 1 ) A \begin{equation} \boldsymbol{A_{RREF}} = \left( \displaystyle \prod_{p_1 = M_P}^{1} \boldsymbol{P_{p_1}} \right) \boldsymbol{A} \end{equation} ARREF= p1=MP1Pp1 A
其中: M P M_P MP为所进行的初等行变换的次数, P p 1 \boldsymbol{P_{p_1}} Pp1为第 p 1 p_1 p1次初等行变换所用的 M M M阶初等矩阵。
    然后可以将 A R R E F \boldsymbol{A_{RREF}} ARREF通过有限次的初等列变换转换成标准形矩阵(Standard Matrix) A S T D \boldsymbol{A_{STD}} ASTD
A S T D = A R R E F ( ∏ p 2 = 1 N P P p 2 ) = [ E R A ~ R × ( N − R ) O ( M − R ) × R O ( M − R ) × ( N − R ) ] \begin{equation} \boldsymbol{A_{STD}} = \boldsymbol{A_{RREF}} \left( \displaystyle \prod_{p_2 = 1}^{N_P} \boldsymbol{P_{p_2}} \right) = \left[ \begin{matrix} \boldsymbol{E}_R & \boldsymbol{\tilde{A}}_{R \times \left( N - R \right)} \\ \boldsymbol{O}_{\left( M - R \right) \times R} & \boldsymbol{O}_{\left( M - R \right) \times \left( N - R \right)} \end{matrix} \right] \end{equation} ASTD=ARREF(p2=1NPPp2)=[ERO(MR)×RA~R×(NR)O(MR)×(NR)]
其中: N P N_P NP为所进行的初等列变换的次数, P p 2 \boldsymbol{P_{p_2}} Pp2为第 p 2 p_2 p2次初等列变换所用的 N N N阶初等矩阵, R ( R ≤ min ⁡ ( M , N ) ) R \left( R ≤ \min \left( M, N \right) \right) R(Rmin(M,N))为矩阵 A \boldsymbol{A} A A R R E F \boldsymbol{A_{RREF}} ARREF A S T D \boldsymbol{A_{STD}} ASTD的秩, E R \boldsymbol{E}_R ER R R R阶单位矩阵, A ~ R × ( N − R ) = [ a ~ 1 , 1 ⋯ a ~ 1 , j ⋯ a ~ 1 , ( N − R ) ⋮ ⋮ ⋮ ⋮ ⋮ a ~ i , 1 ⋯ a ~ i , j ⋯ a ~ i , ( N − R ) ⋮ ⋮ ⋮ ⋮ ⋮ a ~ R , 1 ⋯ a ~ R , j ⋯ a ~ R , ( N − R ) ] \boldsymbol{\tilde{A}}_{R \times \left( N - R \right)} = \left[ \begin{matrix} \tilde{a}_{1, 1} & \cdots & \tilde{a}_{1, j} & \cdots & \tilde{a}_{1, \left( N - R \right)} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ \tilde{a}_{i, 1} & \cdots & \tilde{a}_{i, j} & \cdots & \tilde{a}_{i, \left( N - R \right)} \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ \tilde{a}_{R, 1} & \cdots & \tilde{a}_{R, j} & \cdots & \tilde{a}_{R, \left( N - R \right)} \end{matrix} \right] A~R×(NR)= a~1,1a~i,1a~R,1a~1,ja~i,ja~R,ja~1,(NR)a~i,(NR)a~R,(NR) O ( M − R ) × R \boldsymbol{O}_{\left( M - R \right) \times R} O(MR)×R O ( M − R ) × ( N − R ) \boldsymbol{O}_{\left( M - R \right) \times \left( N - R \right)} O(MR)×(NR)分别为 ( M − R ) \left( M - R \right) (MR) R R R列和 ( M − R ) \left( M - R \right) (MR) ( N − R ) \left( N - R \right) (NR)列的零矩阵。
    将式(4)所示的矩阵方程进行式(7)所示的初等行变换,将系数矩阵 A \boldsymbol{A} A转换成行最简形矩阵(Reduced Row Echelon Form Matrix) A R R E F \boldsymbol{A_{RREF}} ARREF
( ∏ p 1 = M P 1 P p 1 ) A x = ( ∏ p 1 = M P 1 P p 1 ) b [ ( ∏ p 1 = M P 1 P p 1 ) A ] x = ( ∏ p 1 = M P 1 P p 1 ) b A R R E F x = b R R E F \begin{equation} \begin{split} \left( \displaystyle \prod_{p_1 = M_P}^{1} \boldsymbol{P_{p_1}} \right) \boldsymbol{A} \boldsymbol{x} &= \left( \displaystyle \prod_{p_1 = M_P}^{1} \boldsymbol{P_{p_1}} \right) \boldsymbol{b} \\ \left[ \left( \displaystyle \prod_{p_1 = M_P}^{1} \boldsymbol{P_{p_1}} \right) \boldsymbol{A} \right] \boldsymbol{x} &= \left( \displaystyle \prod_{p_1 = M_P}^{1} \boldsymbol{P_{p_1}} \right) \boldsymbol{b} \\ \boldsymbol{A_{RREF}} \boldsymbol{x} &= \boldsymbol{b_{RREF}} \end{split} \end{equation} p1=MP1Pp1 Ax p1=MP1Pp1 A xARREFx= p1=MP1Pp1 b= p1=MP1Pp1 b=bRREF
其中: b R R E F \boldsymbol{b_{RREF}} bRREF为将 b \boldsymbol{b} b经过式(7)所示初等行变换后得到的常数向量。
    再将式(7)所示的矩阵方程进行式(8)所示的初等列变换,将行最简形矩阵(Reduced Row Echelon Form Matrix) A R R E F \boldsymbol{A_{RREF}} ARREF转换成标准形矩阵 A S T D \boldsymbol{A_{STD}} ASTD
A R R E F [ ( ∏ p 2 = 1 N P P p 2 ) ( ∏ p 2 = 1 N P P p 2 ) − 1 ] x = b R R E F [ A R R E F ( ∏ p 2 = 1 N P P p 2 ) ] [ ( ∏ p 2 = N P 1 P p 2 − 1 ) x ] = b R R E F A S T D x ~ = b R R E F \begin{equation} \begin{split} \boldsymbol{A_{RREF}} \left[ \left( \displaystyle \prod_{p_2 = 1}^{N_P} \boldsymbol{P_{p_2}} \right) \left( \displaystyle \prod_{p_2 = 1}^{N_P} \boldsymbol{P_{p_2}} \right)^{-1} \right] \boldsymbol{x} &= \boldsymbol{b_{RREF}} \\ \left[ \boldsymbol{A_{RREF}} \left( \displaystyle \prod_{p_2 = 1}^{N_P} \boldsymbol{P_{p_2}} \right) \right] \left[ \left( \displaystyle \prod_{p_2 = N_P}^{1} \boldsymbol{P_{p_2}^{-1}} \right) \boldsymbol{x} \right] &= \boldsymbol{b_{RREF}} \\ \boldsymbol{A_{STD}} \boldsymbol{\tilde{x}} &= \boldsymbol{b_{RREF}} \end{split} \end{equation} ARREF (p2=1NPPp2)(p2=1NPPp2)1 x[ARREF(p2=1NPPp2)] p2=NP1Pp21 x ASTDx~=bRREF=bRREF=bRREF
由于初等矩阵 P p 2 \boldsymbol{P_{p_2}} Pp2的逆矩阵仍为初等矩阵,因此根据 x ~ \boldsymbol{\tilde{x}} x~即为将 x \boldsymbol{x} x经过式(8)所示初等行变换后得到的未知向量。根据行最简形矩阵 A R R E F \boldsymbol{A_{RREF}} ARREF的结构可以看出, A S T D \boldsymbol{A_{STD}} ASTD即为将 A R R E F \boldsymbol{A_{RREF}} ARREF R R R列中的所有全零列与自 ( R + 1 ) \left( R + 1 \right) (R+1)起所有非零列依次调换的结果,因此 x ~ \boldsymbol{\tilde{x}} x~即为将 x \boldsymbol{x} x中与 A R R E F \boldsymbol{A_{RREF}} ARREF R R R列中的所有全零列对应的行和 x \boldsymbol{x} x中与 A R R E F \boldsymbol{A_{RREF}} ARREF ( R + 1 ) \left( R + 1 \right) (R+1)列起所有非零列对应的行依次调换的结果。
    为简化讨论,可假定系数矩阵 A \boldsymbol{A} A只需经过 M P M_P MP次初等行变换即可转换成标准形矩阵(Reduced Row Echelon Form Matrix) A S T D \boldsymbol{A_{STD}} ASTD,此时根据式(7)和式(8)可以看出
{ A R R E F = A S T D x = x ~ \begin{equation} \begin{cases} \boldsymbol{A_{RREF}} = \boldsymbol{A_{STD}} \\ \boldsymbol{x} = \boldsymbol{\tilde{x}} \end{cases} \end{equation} {ARREF=ASTDx=x~
    根据线性方程组理论可知,式(1)中的线性方程与式(8)所示矩阵方程同解,根据式(8)可知,式(1)中线性方程的解有以下情况:

    情况1:若系数向量 b R R E F \boldsymbol{b_{RREF}} bRREF自第 ( R + 1 ) \left( R + 1 \right) (R+1)列到第 M M M列存在非零元素,则式(8)所示的矩阵方程无解,此时无法将 x g e n \boldsymbol{x_{gen}} xgen修正为 x c o r \boldsymbol{x_{cor}} xcor,使之满足式(1)中的线性方程约束。

    情况2:若系数向量 b R R E F \boldsymbol{b_{RREF}} bRREF自第 ( R + 1 ) \left( R + 1 \right) (R+1)列到第 M M M列的元素全为零,则式(8)所示的矩阵方程有解,此时可分为以下情况将 x g e n \boldsymbol{x_{gen}} xgen修正为 x c o r \boldsymbol{x_{cor}} xcor,使得修正后的 x c o r \boldsymbol{x_{cor}} xcor满足式(1)中的线性方程约束:

    情况2.1:若 R = N R = N R=N,则式(8)所示的矩阵方程有且仅有唯一解,此时当且仅当 b R R E F \boldsymbol{b_{RREF}} bRREF中前 N N N行的所有元素全部满足式(1)所示的变量上下限约束时式(1)中的约束问题方有唯一修正解 x c o r = [ b R R E F , 1 ⋯ b R R E F , j ⋯ b R R E F , N ] T \boldsymbol{x_{cor}} = \left[ \begin{matrix}b_{RREF, 1} & \cdots & b_{RREF, j} & \cdots & b_{RREF, N} \end{matrix} \right]^T xcor=[bRREF,1bRREF,jbRREF,N]T

    情况2.2:若 R < N R < N R<N,则式(8)所示的矩阵方程有无穷多组解,实数域内有无穷多组解能够满足式(1)中的线性方程约束,此时又可分为以下情况将 x g e n \boldsymbol{x_{gen}} xgen修正为 x c o r \boldsymbol{x_{cor}} xcor,使得修正后的 x c o r \boldsymbol{x_{cor}} xcor满足式(1)中的线性方程约束:

    情况2.2.1:若 R = 1 R = 1 R=1,此时可将式(1)中的约束条件约简为
{ x j ∈ [ x ‾ j , x ‾ j ] , j ∈ { 1 , ⋯   , N } ∑ i = 1 N a 1 , j x j = b 1 \begin{equation} \begin{cases} x_j ∈ \left[ \underline{x}_j, \overline{x}_j \right], j ∈ \{ 1, \cdots, N \} \\ \displaystyle \sum_{i = 1}^{N} a_{1, j} x_j = b_1\\ \end{cases} \end{equation} xj[xj,xj],j{1,,N}i=1Na1,jxj=b1
根据博客《一种单线性方程约束下的生成随机数修正方法(结论与应用)》,可将 x g e n \boldsymbol{x_{gen}} xgen按如下方式修正为 x c o r \boldsymbol{x_{cor}} xcor
    情况2.2.1.1:当 ∑ j = 1 N a 1 , j x g e n , j > b 1 \displaystyle \sum_{j = 1}^{N} a_{1, j} x_{gen, j} > b_1 j=1Na1,jxgen,j>b1时,可按如式(11)所示的形式进行修正
x c o r , j = { b 1 − ( ∑ j = 1 , a 1 , j > 0 N a 1 , j x ‾ j + ∑ j = 1 , a 1 , j < 0 N a 1 , j x ‾ j ) ∑ j = 1 , a 1 , j > 0 N a 1 , j ( x g e n , j − x ‾ j ) + ∑ j = 1 , a 1 , j < 0 N a 1 , j ( x g e n , j − x ‾ j ) ( x g e n , j − x ‾ j ) + x ‾ j ( a 1 , j > 0 ) x g e n , j ( a 1 , j = 0 ) b 1 − ( ∑ j = 1 , a 1 , j > 0 N a 1 , j x ‾ j + ∑ j = 1 , a 1 , j < 0 N a 1 , j x ‾ j ) ∑ j = 1 , a 1 , j > 0 N a 1 , j ( x g e n , j − x ‾ j ) + ∑ j = 1 , a 1 , j < 0 N a 1 , j ( x g e n , j − x ‾ j ) ( x g e n , j − x ‾ j ) + x ‾ j ( a 1 , j < 0 ) \begin{equation} x_{cor, j} = \begin{cases} \dfrac{b_1 - \left( \displaystyle \sum_{j = 1, a_{1, j} > 0}^{N} a_{1, j} \underline{x}_j + \displaystyle \sum_{j = 1, a_{1, j} < 0}^{N} a_{1, j} \overline{x}_j \right)} {\displaystyle \sum_{j = 1,a_{1, j} > 0}^{N} a_{1, j} \left( x_{gen, j} - \underline{x}_j \right) + \displaystyle \sum_{j = 1, a_{1, j} < 0}^{N} a_{1, j} \left( x_{gen, j} - \overline{x}_j \right)} \left( x_{gen, j} - \underline{x}_j \right) + \underline{x}_j & \left( a_{1, j} > 0 \right) \\ x_{gen, j} & \left( a_{1, j} = 0 \right) \\ \dfrac{b_1 - \left( \displaystyle \sum_{j = 1, a_{1, j} > 0}^{N} a_{1, j} \underline{x}_j + \displaystyle \sum_{j = 1, a_{1, j} < 0}^{N} a_{1, j} \overline{x}_j\right)} {\displaystyle \sum_{j = 1,a_{1, j} > 0}^{N} a_{1, j} \left( x_{gen, j} - \underline{x}_j \right) + \displaystyle \sum_{j = 1, a_{1, j} < 0}^{N} a_{1, j} \left( x_{gen, j} - \overline{x}_j \right)} \left( x_{gen, j} - \overline{x}_j \right)+\overline{x}_j & \left( a_{1, j} < 0 \right) \\ \end{cases} \end{equation} xcor,j= j=1,a1,j>0Na1,j(xgen,jxj)+j=1,a1,j<0Na1,j(xgen,jxj)b1 j=1,a1,j>0Na1,jxj+j=1,a1,j<0Na1,jxj (xgen,jxj)+xjxgen,jj=1,a1,j>0Na1,j(xgen,jxj)+j=1,a1,j<0Na1,j(xgen,jxj)b1 j=1,a1,j>0Na1,jxj+j=1,a1,j<0Na1,jxj (xgen,jxj)+xj(a1,j>0)(a1,j=0)(a1,j<0)

    情况2.2.1.2:当 ∑ j = 1 N a 1 , j x g e n , j < b 1 \displaystyle \sum_{j = 1}^{N} a_{1, j} x_{gen, j} < b_1 j=1Na1,jxgen,j<b1时,可按如式(12)所示的形式进行修正
x c o r , j = { b 1 − ( ∑ j = 1 , a 1 , j > 0 N a 1 , j x ‾ j + ∑ j = 1 , a 1 , j < 0 N a 1 , j x ‾ j ) ∑ j = 1 , a 1 , j > 0 N a 1 , j ( x g e n , j − x ‾ j ) + ∑ j = 1 , a 1 , j < 0 N a 1 , j ( x g e n , j − x ‾ j ) ( x g e n , j − x ‾ j ) + x ‾ j ( a 1 , j > 0 ) x g e n , j ( a 1 , j = 0 ) b 1 − ( ∑ j = 1 , a 1 , j > 0 N a 1 , j x ‾ j + ∑ j = 1 , a 1 , j < 0 N a 1 , j x ‾ j ) ∑ j = 1 , a 1 , j > 0 N a 1 , j ( x g e n , j − x ‾ j ) + ∑ j = 1 , a 1 , j < 0 N a 1 , j ( x g e n , j − x ‾ j ) ( x g e n , j − x ‾ j ) + x ‾ j ( a 1 , j < 0 ) \begin{equation} x_{cor, j} = \begin{cases} \dfrac{b_1 - \left( \displaystyle \sum_{j = 1,a_{1, j}>0}^{N} a_{1, j} \overline{x}_j + \displaystyle\sum_{j = 1, a_{1, j} < 0}^{N} a_{1, j} \underline{x}_j \right)} {\displaystyle \sum_{j = 1,a_{1, j} > 0}^{N} a_{1, j} \left(x_{gen, j} - \overline{x}_j \right) + \displaystyle \sum_{j = 1, a_{1, j}<0}^{N} a_{1, j} \left( x_{gen, j} - \underline{x}_j \right)} \left( x_{gen, j} - \overline{x}_j \right) + \overline{x}_j & \left( a_{1, j} > 0 \right) \\ x_{gen, j} & \left( a_{1, j} = 0\right) \\ \dfrac{b_1 - \left( \displaystyle \sum_{j = 1, a_{1, j}>0}^{N} a_{1, j} \overline{x}_j + \displaystyle \sum_{j = 1, a_{1, j} < 0}^{N} a_{1, j} \underline{x}_j \right)} {\displaystyle \sum_{j = 1,a_{1, j} > 0}^{N} a_{1, j} \left( x_{gen, j} - \overline{x}_j \right) + \displaystyle \sum_{j = 1, a_{1, j}<0}^{N} a_{1, j} \left( x_{gen, j} - \underline{x}_j \right)} \left( x_{gen, j} - \underline{x}_j \right) + \underline{x}_j & \left( a_{1, j} < 0 \right) \\ \end{cases} \end{equation} xcor,j= j=1,a1,j>0Na1,j(xgen,jxj)+j=1,a1,j<0Na1,j(xgen,jxj)b1 j=1,a1,j>0Na1,jxj+j=1,a1,j<0Na1,jxj (xgen,jxj)+xjxgen,jj=1,a1,j>0Na1,j(xgen,jxj)+j=1,a1,j<0Na1,j(xgen,jxj)b1 j=1,a1,j>0Na1,jxj+j=1,a1,j<0Na1,jxj (xgen,jxj)+xj(a1,j>0)(a1,j=0)(a1,j<0)

    可以验证,当且仅当 ∑ j = 1 , a 1 , j > 0 N a 1 , j x ‾ j + ∑ j = 1 , a 1 , j < 0 N a 1 , j x ‾ j ≤ b 1 ≤ ∑ j = 1 , a 1 , j > 0 N a 1 , j x ‾ j + ∑ j = 1 , a 1 , j < 0 N a 1 , j x ‾ j \displaystyle \sum_{j = 1, a_{1, j} > 0}^{N} a_{1, j} \underline{x}_j + \displaystyle\sum_{j = 1, a_{1, j} < 0}^{N} a_{1, j} \overline{x}_j ≤ b_1 ≤ \displaystyle \sum_{j = 1, a_{1, j} > 0}^{N} a_{1, j} \overline{x}_j + \displaystyle \sum_{j = 1, a_{1, j} < 0}^{N} a_{1, j} \underline{x}_j j=1,a1,j>0Na1,jxj+j=1,a1,j<0Na1,jxjb1j=1,a1,j>0Na1,jxj+j=1,a1,j<0Na1,jxj时,通过式(11)和式(12)修正的随机向量 x c o r \boldsymbol{x_{cor}} xcor满足式(1)的所有约束,可以作为式(1)所示问题的其中一个可行解。

    情况2.2.2:若 1 < R < N 1 < R < N 1<R<N,则此时 x 1 , ⋯   , x R x_1, \cdots, x_R x1,,xR可以按照如式(10)所示的形式由 x R + 1 , ⋯   , x N x_{R + 1}, \cdots, x_N xR+1,,xN线性表示
x i = b R R E F , i − ∑ j = 1 N − R a ~ i , j x R + j , i ∈ { 1 , ⋯   , R } \begin{equation} x_i = b_{RREF, i} - \displaystyle \sum_{j = 1}^{N - R} \tilde{a}_{i, j} x_{R + j}, i ∈ \{ 1, \cdots, R \} \end{equation} xi=bRREF,ij=1NRa~i,jxR+j,i{1,,R}
结合式(1)中的对 x 1 , ⋯   , x R x_1, \cdots, x_R x1,,xR的上下限约束,不难看出要使变量 x 1 , ⋯   , x R x_1, \cdots, x_R x1,,xR满足上下限约束条件,必然有
x ‾ i ≤ x i = b R R E F , i − ∑ j = 1 N − R a ~ i , j x R + j ≤ x ‾ i , i ∈ { 1 , ⋯   , R } \begin{equation} \underline{x}_i ≤ x_i = b_{RREF, i} - \displaystyle \sum_{j = 1}^{N - R} \tilde{a}_{i, j} x_{R + j} ≤ \overline{x}_i, i ∈ \{ 1, \cdots, R \} \end{equation} xixi=bRREF,ij=1NRa~i,jxR+jxi,i{1,,R}
此时 x R + 1 , ⋯   , x N x_{R + 1}, \cdots, x_N xR+1,,xN满足
b R R E F , i − x ‾ i ≤ ∑ j = 1 N − R a ~ i , j x R + j ≤ b R R E F , i − x ‾ i , i ∈ { 1 , ⋯   , R } \begin{equation} b_{RREF, i} - \overline{x}_i ≤ \displaystyle \sum_{j = 1}^{N - R} \tilde{a}_{i, j} x_{R + j} ≤ b_{RREF, i} - \underline{x}_i, i ∈ \{ 1, \cdots, R \} \end{equation} bRREF,ixij=1NRa~i,jxR+jbRREF,ixi,i{1,,R}
    将 x g e n , R + 1 , ⋯   , x g e n , N x_{gen, R + 1}, \cdots, x_{gen, N} xgen,R+1,,xgen,N代入式(15),则:

    情况2.2.2.1:若 x g e n , R + 1 , ⋯   , x g e n , N x_{gen, R + 1}, \cdots, x_{gen, N} xgen,R+1,,xgen,N满足式(15)所示的约束条件,则可直接按照式(16)所示的形式得到 x c o r \boldsymbol{x_{cor}} xcor
x c o r , j = { b R R E F , j − ∑ k = 1 N − R a ~ j , k x g e n , R + k ( j ∈ { 1 , ⋯   , R } ) x g e n , j ( j ∈ { R + 1 , ⋯   , N } ) \begin{equation} x_{cor, j} = \begin{cases} b_{RREF, j} - \displaystyle \sum_{k = 1}^{N - R} \tilde{a}_{j, k} x_{gen, R + k} & \left( j ∈ \{ 1, \cdots, R \} \right) \\ x_{gen, j} & \left( j ∈ \{ R + 1, \cdots, N \} \right) \end{cases} \end{equation} xcor,j= bRREF,jk=1NRa~j,kxgen,R+kxgen,j(j{1,,R})(j{R+1,,N})
    可以验证,通过式(16)修正的随机向量 x c o r \boldsymbol{x_{cor}} xcor满足式(1)的所有约束,可以作为式(1)所示问题的其中一个可行解。

    情况2.2.2.2:若 x g e n , R + 1 , ⋯   , x g e n , N x_{gen, R + 1}, \cdots, x_{gen, N} xgen,R+1,,xgen,N不满足式(15)所示的约束条件,此时必然存在 k ∈ { 1 , ⋯   , R } k ∈ \{ 1, \cdots, R \} k{1,,R},使得 x g e n , R + 1 , ⋯   , x g e n , N x_{gen, R + 1}, \cdots, x_{gen, N} xgen,R+1,,xgen,N无法满足式(15)中的第 k k k个约束条件。设
b R R E F , k − x ‾ k ≤ b ~ c o r , k = ∑ j = 1 N − R a ~ k , j x c o r , R + j ≤ b R R E F , k − x ‾ k \begin{equation} b_{RREF, k} - \overline{x}_k ≤ \tilde{b}_{cor, k} = \displaystyle \sum_{j = 1}^{N - R} \tilde{a}_{k, j} x_{cor, R + j} ≤ b_{RREF, k} - \underline{x}_k \end{equation} bRREF,kxkb~cor,k=j=1NRa~k,jxcor,R+jbRREF,kxk
则有:

    情况2.2.2.2.1:若存在 k ∈ { 1 , ⋯   , R } k ∈ \{ 1, \cdots, R \} k{1,,R},使得 b R R E F , k − x ‾ k < ( ∑ j = 1 , a ~ k , j > 0 N − R a ~ k , j x ‾ R + j + ∑ j = 1 , a ~ k , j < 0 N − R a ~ k , j x ‾ R + j ) b_{RREF, k} - \underline{x}_k < \left( \displaystyle \sum_{j = 1, \tilde{a}_{k, j} > 0}^{N - R} \tilde{a}_{k, j} \underline{x}_{R + j} + \displaystyle \sum_{j = 1, \tilde{a}_{k, j} < 0}^{N - R} \tilde{a}_{k, j} \overline{x}_{R + j} \right) bRREF,kxk< j=1,a~k,j>0NRa~k,jxR+j+j=1,a~k,j<0NRa~k,jxR+j b R R E F , k − x ‾ k > ( ∑ j = 1 , a ~ k , j > 0 N − R a ~ k , j x ‾ R + j + ∑ j = 1 , a ~ k , j < 0 N − R a ~ k , j x ‾ R + j ) b_{RREF, k} - \overline{x}_k > \left( \displaystyle \sum_{j = 1, \tilde{a}_{k, j} > 0}^{N - R} \tilde{a}_{k, j} \overline{x}_{R + j} + \displaystyle \sum_{j = 1, \tilde{a}_{k, j} < 0}^{N - R} \tilde{a}_{k, j} \underline{x}_{R + j} \right) bRREF,kxk> j=1,a~k,j>0NRa~k,jxR+j+j=1,a~k,j<0NRa~k,jxR+j ,则根据线性函数的单调性,显然无法在 x \boldsymbol{x} x的取值范围内找到能够满足该线性不等式约束条件的随机向量,式(1)所示的线性方程约束问题无解,因此无法将 x g e n \boldsymbol{x_{gen}} xgen修正为 x c o r \boldsymbol{x_{cor}} xcor

    情况2.2.2.2.2:若对任意的 k ∈ { 1 , ⋯   , R } k ∈ \{ 1, \cdots, R \} k{1,,R},都有 ( ∑ j = 1 , a ~ k , j > 0 N − R a ~ k , j x ‾ R + j + ∑ j = 1 , a ~ k , j < 0 N − R a ~ k , j x ‾ R + j ) ≤ b R R E F , k − x ‾ k ≤ b R R E F , k − x ‾ k ≤ ( ∑ j = 1 , a ~ k , j > 0 N − R a ~ k , j x ‾ R + j + ∑ j = 1 , a ~ k , j < 0 N − R a ~ k , j x ‾ R + j ) \left( \displaystyle \sum_{j = 1, \tilde{a}_{k, j} > 0}^{N - R} \tilde{a}_{k, j} \underline{x}_{R + j} + \displaystyle \sum_{j = 1, \tilde{a}_{k, j} < 0}^{N - R} \tilde{a}_{k, j} \overline{x}_{R + j} \right) ≤ b_{RREF, k} - \overline{x}_k ≤ b_{RREF, k} - \underline{x}_k ≤ \left( \displaystyle \sum_{j = 1, \tilde{a}_{k, j} > 0}^{N - R} \tilde{a}_{k, j} \overline{x}_{R + j} + \displaystyle \sum_{j = 1, \tilde{a}_{k, j} < 0}^{N - R} \tilde{a}_{k, j} \underline{x}_{R + j} \right) j=1,a~k,j>0NRa~k,jxR+j+j=1,a~k,j<0NRa~k,jxR+j bRREF,kxkbRREF,kxk j=1,a~k,j>0NRa~k,jxR+j+j=1,a~k,j<0NRa~k,jxR+j ,则仍需分如下情况进行讨论,将 x g e n \boldsymbol{x_{gen}} xgen修正为 x c o r \boldsymbol{x_{cor}} xcor

    情况2.2.2.2.2.1:若 ∑ j = 1 N − R a ~ k , j x g e n , R + j > b R R E F , k − x ‾ k ≥ b ~ c o r , k \displaystyle \sum_{j = 1}^{N - R} \tilde{a}_{k, j} x_{gen, R + j} > b_{RREF, k} - \underline{x}_k ≥ \tilde{b}_{cor, k} j=1NRa~k,jxgen,R+j>bRREF,kxkb~cor,k,则选取式(15)中的第 k k k个约束条件,依照博客《一种单线性方程约束下的生成随机数修正方法(结论与应用)》中的式(4),将 x g e n , R + 1 , ⋯   , x g e n , N x_{gen, R + 1}, \cdots, x_{gen, N} xgen,R+1,,xgen,N修正为 x c o r , R + 1 , ⋯   , x c o r , N x_{cor, R + 1}, \cdots, x_{cor, N} xcor,R+1,,xcor,N
x c o r , R + j = { b ~ c o r , k − ( ∑ j = 1 , a ~ k , j > 0 N − R a ~ k , j x ‾ R + j + ∑ j = 1 , a ~ k , j < 0 N − R a ~ k , j x ‾ R + j ) ∑ j = 1 , a ~ k , j > 0 N − R a ~ k , j ( x g e n , R + j − x ‾ R + j ) + ∑ j = 1 , a ~ k , j < 0 N − R a ~ k , j ( x g e n , R + j − x ‾ R + j ) ( x g e n , R + j − x ‾ R + j ) + x ‾ R + j ( a ~ k , j > 0 ) x g e n , R + j ( a ~ k , j = 0 ) b ~ c o r , k − ( ∑ j = 1 , a ~ k , j > 0 N − R a ~ k , j x ‾ R + j + ∑ j = 1 , a ~ k , j < 0 N − R a ~ k , j x ‾ R + j ) ∑ j = 1 , a ~ k , j > 0 N − R a ~ k , j ( x g e n , R + j − x ‾ R + j ) + ∑ j = 1 , a ~ k , j < 0 N − R a ~ k , j ( x g e n , R + j − x ‾ R + j ) ( x g e n , R + j − x ‾ R + j ) + x ‾ R + j ( a ~ k , j < 0 ) \begin{equation} x_{cor, R + j} = \begin{cases} \dfrac{\tilde{b}_{cor, k} - \left( \displaystyle \sum_{j = 1, \tilde{a}_{k, j} > 0}^{N - R} \tilde{a}_{k, j} \underline{x}_{R + j} + \displaystyle \sum_{j = 1, \tilde{a}_{k, j} < 0}^{N - R} \tilde{a}_{k, j} \overline{x}_{R + j} \right)} {\displaystyle \sum_{j = 1,\tilde{a}_{k, j} > 0}^{N - R} \tilde{a}_{k, j} \left( x_{gen, R + j} - \underline{x}_{R + j} \right) + \displaystyle \sum_{j = 1, \tilde{a}_{k, j} < 0}^{N - R} \tilde{a}_{k, j} \left( x_{gen, R + j} - \overline{x}_{R + j} \right)} \left( x_{gen, R + j} - \underline{x}_{R + j} \right) + \underline{x}_{R + j} & \left( \tilde{a}_{k, j} > 0 \right) \\ x_{gen, R + j} & \left( \tilde{a}_{k, j} = 0 \right) \\ \dfrac{\tilde{b}_{cor, k} - \left( \displaystyle \sum_{j = 1, \tilde{a}_{k, j} > 0}^{N - R} \tilde{a}_{k, j} \underline{x}_{R + j} + \displaystyle \sum_{j = 1, \tilde{a}_{k, j} < 0}^{N - R} \tilde{a}_{k, j} \overline{x}_{R + j}\right)} {\displaystyle \sum_{j = 1,\tilde{a}_{k, j} > 0}^{N - R} \tilde{a}_{k, j} \left( x_{gen, R + j} - \underline{x}_{R + j} \right) + \displaystyle \sum_{j = 1, \tilde{a}_{k, j} < 0}^{N - R} \tilde{a}_{k, j} \left( x_{gen, R + j} - \overline{x}_{R + j} \right)} \left( x_{gen, R + j} - \overline{x}_{R + j} \right)+\overline{x}_{R + j} & \left( \tilde{a}_{k, j} < 0 \right) \\ \end{cases} \end{equation} xcor,R+j= j=1,a~k,j>0NRa~k,j(xgen,R+jxR+j)+j=1,a~k,j<0NRa~k,j(xgen,R+jxR+j)b~cor,k j=1,a~k,j>0NRa~k,jxR+j+j=1,a~k,j<0NRa~k,jxR+j (xgen,R+jxR+j)+xR+jxgen,R+jj=1,a~k,j>0NRa~k,j(xgen,R+jxR+j)+j=1,a~k,j<0NRa~k,j(xgen,R+jxR+j)b~cor,k j=1,a~k,j>0NRa~k,jxR+j+j=1,a~k,j<0NRa~k,jxR+j (xgen,R+jxR+j)+xR+j(a~k,j>0)(a~k,j=0)(a~k,j<0)
    由博客《一种单线性方程约束下的生成随机数修正方法(结论与应用)》的讨论可知,修正后的 x c o r , R + 1 , ⋯   , x c o r , N x_{cor, R + 1}, \cdots, x_{cor, N} xcor,R+1,,xcor,N既满足式(15)中的第 k k k个约束条件,又满足式(1)中对 x R + 1 , ⋯   , x R + j , ⋯   , x N x_{R + 1}, \cdots, x_{R + j}, \cdots, x_N xR+1,,xR+j,,xN的上下界约束,但无法保证满足式(15)中剩余的约束条件。为使其满足所有约束条件,须将修正后的 x c o r , R + 1 , ⋯   , x c o r , N x_{cor, R + 1}, \cdots, x_{cor, N} xcor,R+1,,xcor,N代入式(15),并与式(17)联立,可知 b ~ c o r , k \tilde{b}_{cor, k} b~cor,k须满足
b ~ ‾ c o r , k ≤ b ~ c o r , k ≤ b ~ ‾ c o r , k \begin{equation} \underline{\tilde{b}}_{cor, k} ≤ \tilde{b}_{cor, k} ≤ \overline{\tilde{b}}_{cor, k} \end{equation} b~cor,kb~cor,kb~cor,k
其中: b ~ ‾ c o r , k \underline{\tilde{b}}_{cor, k} b~cor,k b ~ ‾ c o r , k \overline{\tilde{b}}_{cor, k} b~cor,k分别满足
b ~ ‾ c o r , k = max ⁡ i = 1 R [ b ~ ‾ c o r , k ′ ( i ) , b ~ ‾ c o r , k ′ ′ ( i ) ] b ~ ‾ c o r , k = min ⁡ i = 1 R [ b ~ ‾ c o r , k ′ ( i ) , b ~ ‾ c o r , k ′ ′ ( i ) ] \begin{equation} \begin{split} \underline{\tilde{b}}_{cor, k} &= \max_{i = 1}^R \left[ \underline{\tilde{b}}'_{cor, k} \left( i \right), \underline{\tilde{b}}''_{cor, k} \left( i \right) \right] \\ \overline{\tilde{b}}_{cor, k} &= \min_{i = 1}^R \left[ \overline{\tilde{b}}'_{cor, k} \left( i \right), \overline{\tilde{b}}''_{cor, k} \left( i \right) \right] \\ \end{split} \end{equation} b~cor,kb~cor,k=i=1maxR[b~cor,k(i),b~cor,k′′(i)]=i=1minR[b~cor,k(i),b~cor,k′′(i)]

    剩余内容参见博客 《一种线性方程约束下生成随机数修正的一般性方法(中)》

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Academia1998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值