system: [SYSTEM]

user: 3. 问题P1的最优解 本节中给出问题P1的最优解。为此首先给出下述重要结论。这对得到最优算法是必要的。 引理1 [ 11 ] 对于给定的任务排序 π = ( J ( 1 ) ， ⋯ ， J ( n ) ) 和资源分配方案 u = ( u ( 1 ) ， ⋯ ， u ( n ) ) 最优工期d和目标函数Z分别为 d * = d ( π ， u ) = { 0 ， γ > β C ( 1 ) + β / ( α + β ) [ C ( n ) − C ( 1 ) ] ， γ ≤ β (4) Z * = Z ( π ， u ) = { β C ( n ) ， γ > β γ C ( 1 ) + ε [ C ( n ) − C ( 1 ) ] ， γ ≤ β (5) 其中 ε = β ( α + γ ) / ( α + β ) 。 根据引理1，利用(1)的表达式 p j ( u j ) = ( w j / u j ) k ，   u j > 0 ，   j = 1 ， 2 ， ⋯ ， n ，问题P1转化为下述的非线性规划 NPL 1 :     { min Z = β ∑ j = 1 n ( w ( j ) / u ( j ) ) k s .t .     ∑ j = 1 n u ( j ) ≤ U ，   u ( j ) > 0 ，   j = 1 ， 2 ， ⋯ ， n   ( γ > β ) (6) NPL 2 :     { min Z = γ ( w ( 1 ) / u ( 1 ) ) k + ε ∑ j = 2 n ( w ( j ) / u ( j ) ) k s .t .     ∑ j = 1 n u ( j ) ≤ U ，   u ( j ) > 0 ，   j = 1 ， 2 ， ⋯ ， n   ( γ ≤ β ) (7) 引理2 对于给定的任务排序 π = ( J ( 1 ) ， ⋯ ， J ( n ) ) ，NPL1和NPL2的最优解 u * = ( u ( 1 ) * ， ⋯ ， u ( n ) * ) 和最优目标函数值 Z * 分别为 u ( j ) * = { ( U / V ) w ( j ) k / ( k + 1 ) ，     j = 1 ， 2 ， ⋯ ， n ，   β < γ { ( U / L ) ( γ / ε ) 1 / ( k + 1 ) w ( 1 ) k / ( k + 1 ) ， j = 1 ( U / L ) w ( j ) k / ( k + 1 ) ，     j = 2 ， ⋯ ， n ，     β ≥ γ (8) Z * = Z ( π ， u * ) = { β U − k V k + 1 ， ​   γ > β ε U − k L k + 1 ，   γ ≤ β (9) 其中 V = ∑ j = 1 n w ( j ) k / ( k + 1 ) = ∑ j = 1 n w j k / ( k + 1 ) ， L = ( γ / ε ) 1 / ( k + 1 ) w ( 1 ) k / ( k + 1 ) + ∑ j = 2 n w ( j ) k / ( k + 1 ) 证明 以 γ ≤ β 为例加以证明， γ > β 时证明方法类似。由于(7)式给出的目标函数是关于决策变量 u ( j ) 的凸函数，并且约束函数 g ( u ) = ∑ j = 1 n u ( j ) − U 也是关于 u ( j ) 的凸函数，利用凸规划理论，可知最优资源 u * 必使 g ( u ) = 0 ，于是可使用Lagrange乘子法求解上述问题。假定任务排序 π 给定，则Lagrange函数表达式为 L 1 ( u ， λ ) = γ ( w ( 1 ) / u ( 1 ) ) k + ε ∑ j = 2 n ( w ( j ) / u ( j ) ) k + λ { ∑ j = 1 n u ( j ) − U } (10) 这里 λ 表示Lagrange乘子。在(10)中，分别计算 L 1 ( u ， λ ) 对所有决策变量的一阶偏导数，再令它们为零，便可得到最优资源 u * 所满足的必要条件如下 ∂ L 1 ( u ， λ ) / ∂ λ = ∑ j = 1 n u ( j ) − U = 0 (11) ∂ L 1 ( u ， λ ) / ∂ u ( 1 ) = − γ k ( w ( 1 ) k / u ( 1 ) k + 1 ) + λ = 0 (12) ∂ L 1 ( u ， λ ) / ∂ u ( j ) = − ε k ( w ( j ) k / u ( j ) k + 1 ) + λ = 0 ，   j = 1 ， 2 ， ⋯ ， n (13) 注意到是凸规划问题，因此上述条件也是充分条件。由(12)，(13)得 γ ( w ( 1 ) k / u ( 1 ) k + 1 ) = ε ( w ( j ) k / u ( j ) k + 1 ) ，   j = 2 ， ⋯ ， n (14) 由(14)得到 u ( j ) = u ( 1 ) ( w ( j ) / w ( 1 ) ) k / ( k + 1 ) ( ε / γ ) 1 / ( k + 1 ) ，   j = 2 ， ⋯ ， n (15) 将(15)带入(11)，得 u ( 1 ) = ( U / L ) ( γ / ε ) 1 / ( k + 1 ) w ( 1 ) k / ( k + 1 ) (16) 将(16)带入(15)可得(8)。其中 V = ∑ j = 1 n w ( j ) k / ( k + 1 ) ， L = ( γ / ε ) 1 / ( k + 1 ) w ( 1 ) k / ( k + 1 ) + ∑ j = 2 n w ( j ) k / ( k + 1 ) 最后将(8)中后两式带入NPL2中目标函数Z得到(9)式。引理证毕。 引理3 [ 17 ] 给定两个正数列 { x j } 和 { y j } ， j = 1 ， 2 ， ⋯ ， n 。把 { x j } 按不减顺序排列，再把 { y j } 按不增顺序排列，可使得对应项乘积的和 ∑ j = 1 n x j y j 达到最小值。 根据上面分析和引理2、引理3，问题P1可由下述算法求解。 算法1 输入数据 α ， β ， γ ， k ， U 第一步 计算 l = arg max 1 ≤ j ≤ n { w j } ，根据引理3，将任务 J l 排在首位，其余任务顺序任意，得到最优任务排序 π * = { J l ， J ( 2 ) ， ⋯ ， J ( n ) } 第二步 由(8)计算出最优资源分配 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 ，   γ ≤ β 第四步 由(9)计算出最优目标值 Z * 。 定理1 使用算法1可以在 O ( n ) 时间内求出问题P1的最优解。 证明 上面一系列分析可以保证定理1结论的正确性。第一步时间复杂性为 O ( n ) ，第二步的时间复杂性同为 O ( n ) ，第三、四步需要 O ( 1 ) 时间。于是求解问题P1的总的时间复杂性是 O ( n ) 。定理证毕。 以下算例1说明算法1的运算过程。 算例1 给定问题参数 k = 1 ， ​   U = 121 ， ​   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 。由于 β < γ ，故利用(8)求出最优资源分配 u * = ( u ( 1 ) * ， u ( 2 ) * ， u ( 3 ) * ， u ( 4 ) * ， u ( 5 ) * ) = ( u 5 * ， u 1 * ， u 2 * ， u 3 * ， u 4 * ) = ( 44 ， 11 ， 11 ， 22 ， 33 ) 。由(9)求出最优目标函数值 Z * = β U − k V k + 1 = 2 ，其中 V = ∑ j = 1 5 w j k / ( k + 1 ) = 11 。由(4)求出最优 d * = 0 。 情形2 取 α = 1 ， β = 4 ， γ = 2 。由于 β ≥ γ ， ε = β ( α + γ ) / ( α + β ) = 2.4 ，最优任务排序还是 π * = { J 5 ， J 1 ， J 2 ， J 3 ， J 4 } 不变， L = ( γ / ε ) 1 / ( k + 1 ) w 5 k / ( k + 1 ) + ∑ j = 1 4 w j k / ( k + 1 ) = 7 + ( 2 / 3 ) 30 = 10.65 。由(8)求出最优资 源分配 u * = ( u ( 1 ) * ， u ( 2 ) * ， u ( 3 ) * ， u ( 4 ) * ， u ( 5 ) * ) = ( u 5 * ， u 1 * ， u 2 * ， u 3 * ， u 4 * ) = ( 41.47 ， 11.36 ， 11.36 ， 22.72 ， 34.08 ) 。由(9)求出最优目标 函数值 Z * = ε U − k L k + 1 = 2.25 。由(4)求出最优 d * = γ ( w 5 / u 5 ) k + ( β / ( α + β ) ) ∑ j = 1 4 ( w j / u j ) k = 1.3610 。