system: [SYSTEM]

user: 4. 问题P2的最优解 本节中给出问题P2的最优解，在最大费用有上界条件 Z ≤ Q 下展开。首先，利用上一节的相应结果，问题P2可以转换为下述两个非线性规划。 NLP 3 ( β < γ ) :   { min U = ∑ j = 1 n u ( j ) s .t .   { β ∑ j = 1 n ( w ( j ) / u ( j ) ) k ≤ Q u ( j ) > 0 ，   j = 1 ， 2 ， ⋯ ， n (17) NLP 4 ( β ≥ γ ) : { min U = ∑ j = 1 n u ( j ) s .t .     { γ ( w ( 1 ) / u ( 1 ) ) k + ε ∑ j = 2 n ( w ( j ) / u ( j ) ) k ≤ Q u ( j ) > 0 ，   j = 1 ， 2 ， ⋯ ， n (18) 引理4 对于给定的任务排序 π = ( J ( 1 ) ， ⋯ ， J ( n ) ) ，非线性规划NLP3，NLP4的最优解 u * = ( u ( 1 ) * ， ⋯ ， u ( n ) * ) 和最优目标函数值 U * 分别为 u ( j ) * = { ( V β / Q ) 1 / k w ( j ) k / ( k + 1 ) ，     j = 1 ， 2 ， ⋯ ， n   ( β < γ ) { ( L ε / Q ) 1 / k ( γ / ε ) 1 / ( k + 1 ) w ( 1 ) k / ( k + 1 ) ， j = 1 ( L ε / Q ) 1 / k w ( j ) k / ( k + 1 ) ， j = 2 ， ⋯ ， n     ( β ≥ γ ) (19) U * = { ( β / Q ) 1 / k V ( k + 1 ) / k ， β < γ ( ε / Q ) 1 / k L ( 1 / k ) + 1 ， β ≥ γ (20) 证明 以 γ ≤ β 为例加以证明， γ > β 时证明方法类似。由于(18)式给出的目标函数 U = ∑ j = 1 n u ( j ) 是关 于 u ( j ) 的凸函数，并且约束函数 f ( u ) = γ ( w ( 1 ) / u ( 1 ) ) k + ε ∑ j = 1 n ( w ( j ) / u ( j ) ) k − Q 也是关于 u ( j ) 的凸函数，利用 凸规划理论，可知最优资源 u * 必在边界 f ( u ) = 0 上取得，于是可使用Lagrange乘子法求解。假定任务排序 π 已经给定，则Lagrange函数为 L 2 ( u ， η ) = ∑ j = 1 n u ( j ) + η [ γ ( w ( 1 ) / u ( 1 ) ) k + ε ∑ j = 2 n ( w ( j ) / u ( j ) ) k − Q ] (21) 这里 η 表示Lagrange乘子。在(21)中，分别计算 L 2 ( u ， η ) 对所有决策变量的一阶偏导数，再令它们等于零，便可得到最优资源 u * 所满足的必要条件如下 ∂ L 2 ( u ， λ ) / ∂ η = γ ( w ( 1 ) / u ( 1 ) ) k + ε ∑ j = 2 n ( w ( j ) / u ( j ) ) k − Q = 0 (22) ∂ L 2 ( u ， λ ) / ∂ u ( 1 ) = 1 − η γ k ( w ( 1 ) k / u ( 1 ) k + 1 ) = 0 (23) ∂ L 2 ( u ， λ ) / ∂ u ( j ) = 1 − η ε k ( w ( j ) k / u ( j ) k + 1 ) = 0 ， j = 2 ， ⋯ ， n (24) 注意到是凸规划问题，因此上述条件也是充分条件。由(23)，(24)可得 γ ( w ( 1 ) k / u ( 1 ) k + 1 ) = ε ( w ( j ) k / u ( j ) k + 1 ) ，   j = 2 ， ⋯ ， n (25) 由(25)得到 u ( j ) = u ( 1 ) ( w ( j ) / w ( 1 ) ) k / ( k + 1 ) ( ε / γ ) 1 / ( k + 1 ) ，   j = 2 ， ⋯ ， n (26) 将(26)带入(22)，得 u ( 1 ) = ( L ε / Q ) 1 / k ( γ / ε ) 1 / ( k + 1 ) w ( 1 ) k / ( k + 1 ) (27) 将(27)带入(26)可得(19)后两行。将(19)带入 U = ∑ j = 1 n u ( j ) 可得(20)。引理证毕。 根据引理3、引理4，我们有如下结论：如果 γ > β ，由于 V = ∑ j = 1 n w j k / ( k + 1 ) 是与任务排序无关的常数，因此任意排序都是最优的。如果 γ ≤ β ，注意到 k ， Q ， ε 皆为常数，因此只需最小化 L = ( γ / ε ) 1 / ( k + 1 ) w ( 1 ) k / ( k + 1 ) + ∑ j = 2 n w ( j ) k / ( k + 1 ) 。注意到 γ / ε ≤ 1 ，根据引理3可知将最大的 w ( j ) 对应的任务排在首位，其余任务顺序任意，可得最优排序。根据上面分析可得问题P2如下算法。 算法2 输入数据 α ， β ， γ ， k ， Q 第一步 计算 l = arg max 1 ≤ j ≤ n { w j } ，根据引理3，将任务 J l 排在首位，其余任务顺序任意，得到最优任务排序 π * = { J l ， J ( 2 ) ， ⋯ ， J ( n ) } 第二步 由(19)计算出最优资源分配 u * = ( u ( 1 ) * ， u ( 2 ) * ， ⋯ ， u ( n ) * ) 第三步 由(4)计算最优公共工期 d * = d ( π ， u ) = { 0 ，   γ > β γ ( w l / u l ) k + ( β / ( α + β ) ) ∑ j = 2 n ( w ( j ) / u ( j ) ) k ，   γ ≤ β 第四步 由(20)计算出最优目标值 U * 。 定理2 使用算法2可以在 O ( n ) 时间内得到问题P2的最优解。 证明 上述全面的分析保证定理2结论的正确性。其中第一、二步所需时间都是 O ( n ) ，第三、四步的计算时间同为 O ( 1 ) 。因此求解问题P2的总时间为 O ( n ) 。定理证毕。 以下算例2说明算法2的运算过程。 算例2 给定问题参数 k = 1 ， ​   Q = 100 ，   n = 5 ，任务负荷为 { w 1 ， w 2 ， w 3 ， w 4 ， w 5 } = { 1 ， 1 ， 4 ， 9 ， 16 } 。 计算 l = arg max 1 ≤ j ≤ n { w j } = 5 ，根据引理3，得到最优任务排序 π * = { J 5 ， J 1 ， J 2 ， J 3 ， J 4 } 。 情形1 取 α = 1 ， β = 2 ， γ = 3 。由于 β < γ ，故利用(19)求出最优资源分配 u * = ( u ( 1 ) * ， u ( 2 ) * ， u ( 3 ) * ， u ( 4 ) * ， u ( 5 ) * ) = ( u 5 * ， u 1 * ， u 2 * ， u 3 * ， u 4 * ) = ( 0.88 ， 0.22 ， 0.22 ， 0.44 ， 0.66 ) 。由(20)求出最优目标函数值 U * = ( β / Q ) 1 / k V ( k + 1 ) / k = ( 2 / 100 ) × 11 2 = 2.42 ，其中 V = 11 。由(4)求出最优 d * = 0 。 情形2 取 α = 1 ， β = 4 ， γ = 2 ，由于 β ≥ γ ， ε = β ( α + γ ) / ( α + β ) = 2.4 ，最优任务排序 π * = { J 5 ， J 1 ， J 2 ， J 3 ， J 4 } 不变， L = 10.65 。利用(19)求出最优资源分配 u * = ( u ( 1 ) * ， u ( 2 ) * ， u ( 3 ) * ， u ( 4 ) * ， u ( 5 ) * ) = ( u 5 * ， u 1 * ， u 2 * ， u 3 * ， u 4 * ) = ( 0.9329 ， 0.2556 ， 0.2556 ， 0.5112 ， 0.7668 ) 。由(20)求出最优目标 函数值 U * = ( ε / Q ) 1 / k L ( 1 / k ) + 1 = ( 2.4 / 100 ) × 10.65 2 = 2.7221 。由(4)求出最优 d * = γ ( w 5 / u 5 ) k + ( β / ( α + β ) ) ∑ j = 1 4 ( w j / u j ) k = 56.2109 。