system: [SYSTEM]

user: 3. 初步分析 下面，就问题的最优排序提出一些引理。一个明显的性质：最优排序中第一个工件从零时刻开始加工且两个相邻的工件之间没有空闲。为了简便，假设在工件 J [ i ] 完工之后立即进行维护，即维护之前的工件数量为i。 引理1：对于一个给定的序列 π = [ J [ 1 ] ， J [ 2 ] ， ⋯ ， J [ n ] ] ，如果工件 J [ j ] 被排在维护之前，它的等待时间和完工时间分别为 W [ j ] = C [ j − 1 ] = ( a [ 1 ] / u [ 1 ] ) k 1 m + [ ( a [ 2 ] / u [ 2 ] ) k + b ( a [ 1 ] / u [ 1 ] ) k 1 m ] 2 m + ⋯     + [ ( a [ j − 1 ] / u [ j − 1 ] ) k + b ( ∑ r = 1 j − 2 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 j − 2 ( 1 + b l m ) ) ] ( j − 1 ) m = ∑ r = 1 j − 1 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 j − 1 ( 1 + b l m ) C [ j ] = C [ j − 1 ] + [ ( a [ j ] / u [ j ] ) k + b ( ∑ r = 1 j − 1 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 j − 1 ( 1 + b l m ) ) ] j m = ∑ r = 1 j ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 j ( 1 + b l m ) 其中 C [ 0 ] = 0 ， [ j ] 表示任意给定序列的第j个位置。 证明：用归纳法进行证明。如果 j = 1 ，可得 W [ 1 ] = C [ 0 ] = 0 和 C [ 1 ] = ( a [ 1 ] / u [ 1 ] ) k 1 m = p [ 1 ] 。假设 W [ i − 1 ] = C [ i − 2 ] = ∑ r = 1 i − 2 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i − 2 ( 1 + b l m ) 和 C [ i − 1 ] = ∑ r = 1 i − 1 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i − 1 ( 1 + b l m ) 成立，需要证明 W [ i ] = ∑ r = 1 i − 1 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i − 1 ( 1 + b l m ) 和 C [ i ] = ∑ r = 1 i ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i ( 1 + b l m ) 。 如果 j = i ，那么 W [ i ] = C [ i − 1 ] = ∑ r = 1 i − 1 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i − 1 ( 1 + b l m ) C [ i ] = C [ i − 1 ] + [ ( a [ i ] / u [ i ] ) k + b ( ∑ r = 1 i − 1 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i − 1 ( 1 + b l m ) ) ] i m = ∑ r = 1 i − 1 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i − 1 ( 1 + b l m ) + [ ( a [ i ] / u [ i ] ) k + b ( ∑ r = 1 i − 1 ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i − 1 ( 1 + b l m ) ) ] i m = ∑ r = 1 i ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i ( 1 + b l m ) 证毕。 引理2：对于一个给定的序列 π = [ J [ 1 ] ， J [ 2 ] ， ⋯ ， J [ n ] ] ，如果工件 J [ j ] 被排在维护之后，它的等待时间和完工时间分别为 W [ j ] = C [ i ] + μ + σ C [ i ] + ∑ r = i + 1 j − 1 ( a [ r ] / u [ r ] ) k ( r − i ) m ∏ l = r + 1 j − 1 ( 1 + b l m ) = μ + ( 1 + σ ) ∑ r = 1 i ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i ( 1 + b l m ) + ∑ r = i + 1 j − 1 ( a [ r ] / u [ r ] ) k ( r − i ) m ∏ l = r + 1 j − 1 ( 1 + b l m ) C [ j ] = μ + ( 1 + σ ) ∑ r = 1 i ( a [ r ] / u [ r ] ) k r m ∏ l = r + 1 i ( 1 + b l m ) + ∑ r = i + 1 j ( a [ r ] / u [ r ] ) k ( r − i ) m ∏ l = r + 1 j ( 1 + b l m ) 其中 [ j ] 表示任意给定序列的第j个位置。 证明：与引理1证明类似。证毕。 引理3：如果 C [ j ] ≤ d [ j ] ，那么 C [ j − 1 ] ≤ d [ j − 1 ] ， j = 2 ， 3 ， ⋯ ， n ；如果 C [ j ] ≥ d [ j ] ，那么 C [ j + 1 ] ≥ d [ j + 1 ] ， j = 1 ， 2 ， ⋯ ， n − 1 。 证明：令 J [ j ] 表示在一个工件序列中，被排在第j个位置的工件。考虑维护位置的所有可能情形证明如下。 情形1) j ≤ i − 1 ：工件 J [ j ] 被排在工件 J [ i − 1 ] 之前或 J [ j ] 被排在第 ( i − 1 ) 个位置。对于一个给定的排序π，如果 C [ j ] ≤ d [ j ] ，那么 C [ j ] = C [ j − 1 ] + p [ j ] ≤ d [ j ] = q + p [ j ] ⇒ C [ j − 2 ] ≤ q ⇔ C [ j − 2 ] + p [ j − 1 ] ≤ q + p [ j − 1 ] ⇔ C [ j − 1 ] ≤ d [ j − 1 ] 如果 C [ j ] ≥ d [ j ] ，那么 C [ j ] = C [ j − 1 ] + p [ j ] ≥ d [ j ] = q + p [ j ] ⇒ C [ j ] ≥ q ⇔ C [ j ] + p [ j + 1 ] ≥ q + p [ j + 1 ] ⇔ C [ j + 1 ] ≥ d [ j + 1 ] 情形2) j = i ：工件 J [ j ] 加工完成之后立即进行维护。对于一个给定的排序π，如果 C [ j ] ≤ d [ j ] ，那么 C [ j ] = C [ i ] = C [ i − 1 ] + p [ i ] ≤ d [ j ] = d [ i ] = q + p [ i ] ⇒ C [ i − 2 ] ≤ q ⇔ C [ i − 2 ] + p [ i − 1 ] ≤ q + p [ i − 1 ] ⇔ C [ i − 1 ] ≤ d [ i − 1 ] 如果 C [ j ] ≥ d [ j ] ，那么 C [ j ] = C [ i ] = C [ i − 1 ] + p [ i ] ≥ d [ j ] = d [ i ] = q + p [ i ] ⇒ C [ i ] ≥ q ⇔ C [ i ] + μ + σ C [ i ] + p [ i + 1 ] ≥ q + μ + σ C [ i ] + p [ i + 1 ] ⇒ C [ i + 1 ] ≥ q + p [ i + 1 ] ⇔ C [ i + 1 ] ≥ d [ i + 1 ] 情形3) j = i + 1 ：维护之后立即排工件 J [ j ] 。对于一个给定的排序π，如果 C [ j ] ≤ d [ j ] ，那么 C [ j ] = C [ i + 1 ] = C [ i ] + μ + σ C [ i ] + p [ i + 1 ] ≤ d [ j ] = d [ i + 1 ] = q + p [ i + 1 ] ⇒ C [ i ] = C [ j − 1 ] ≤ q ⇒ C [ j − 2 ] ≤ q ⇔ C [ j − 2 ] + p [ j − 1 ] ≤ q + p [ j − 1 ] ⇔ C [ j − 1 ] ≤ d [ j − 1 ] 如果 C [ j ] ≥ d [ j ] ，那么 C [ j ] = C [ i + 1 ] = C [ i ] + μ + σ C [ i ] + p [ i + 1 ] ≥ d [ j ] = d [ i + 1 ] = q + p [ i + 1 ] ⇒ C [ j ] ≥ q ⇔ C [ j ] + p [ j + 1 ] ≥ q + p [ j + 1 ] ⇔ C [ j + 1 ] ≥ d [ j + 1 ] 情形4) j > i + 1 ：工件 J [ j ] 被排在工件 J [ i + 1 ] 之后。对于一个给定的排序π，如果 C [ j ] ≤ d [ j ] ，那么 C [ j ] = C [ j − 1 ] + p [ j ] ≤ d [ j ] = q + p [ j ] ⇒ C [ j − 1 ] ≤ q ⇒ C [ j − 2 ] ≤ q ⇔ C [ j − 2 ] + p [ j − 1 ] ≤ q + p [ j − 1 ] ⇔ C [ j − 1 ] ≤ d [ j − 1 ] 如果 C [ j ] ≥ d [ j ] ，那么 C [ j ] = C [ j − 1 ] + p [ j ] ≥ d [ j ] = q + p [ j ] ⇒ C [ j ] ≥ q ⇔ C [ j ] + p [ j + 1 ] ≥ q + p [ j + 1 ] ⇔ C [ j + 1 ] ≥ d [ j + 1 ] 因此，得到引理3结论。证毕。 引理4：对于任一给定的序列π，都存在一个最优的松弛交货期，它的公共松弛时间q等于某工件的等待时间。 证明：令 J [ j ] 表示在一个工件序列中，被排在第j个位置的工件。假设存在一个工件序列π，使得对于工件 J [ s ] 有 W [ s − 1 ] ≤ q ≤ W [ s ] 。主要考虑 i < s 的情况，其它情况可以类似地证明。令 Δ = q − W [ s − 1 ] ，注意 0 ≤ Δ ≤ p [ s − 1 ] 。对于给定的 i < s ，维护所用时间为 f ( t ′ ) = μ + σ t ′ = μ + σ C [ i ] = μ + σ ( p [ 1 ] + p [ 2 ] + ⋯ + p [ i ] ) = μ + σ ∑ j = 1 i ( a [ j ] / u [ j ] ) k j m ∏ l = j + 1 i ( 1 + b l m ) 根据引理3可知，所有排在 J [ s ] 前的工件都提前，所有排在 J [ s ] 后的工件都延迟。 1) 工件 J [ j ] ( j = 1 ， 2 ， ⋯ ， s − 1 ) 提前的费用之和如下： ∑ j = 1 s − 1 α E [ j ] = α [ ( s − 1 ) Δ + i μ + ∑ j = 1 i ( j + i σ ) p [ j ] + ∑ j = i + 1 s − 2 j p [ j ] ] 2) 工件 J [ j ] ( j = s ， s + 1 ， ⋯ ， n ) 延迟的费用之和如下： ∑ j = s n β T [ j ] = β [ ∑ j = s − 1 n ( n − j ) p [ j ] − ( n − s + 1 ) Δ ] 3) 公共松弛时间的费用(表示为 Z q )为： Z q = ∑ j = 1 n γ q = n γ ( Δ + W [ s − 1 ] ) = n γ ( Δ + μ + ∑ j = 1 i ( 1 + σ ) p [ j ] + ∑ j = i + 1 s − 2 p [ j ] ) 4) δ 1 C max = δ 1 ( ∑ j = 1 n p [ j ] + f ( t ′ ) ) 5) δ 2 ∑ j = 1 n C [ j ] = δ 2 ( ∑ j = 1 n ( n − j + 1 ) p [ j ] + ( n − i ) f ( t ′ ) ) 因此，总费用由 Z ( q ， u ， π ) = ∑ j = 1 n ( α E [ j ] + β T [ j ] + γ q + v [ j ] u [ j ] ) + δ 1 C max + δ 2 ∑ j = 1 n C [ j ] 给定，可以将其表示为 Z ( q ， u ， π ) = A Δ + B ，其中 A = α ( s − 1 ) − β ( n − s + 1 ) + n γ B = α ( i μ + ∑ j = 1 i ( j + i σ ) p [ j ] + ∑ j = i + 1 s − 2 j p [ j ] ) + β ∑ j = s − 1 n ( n − j ) p [ j ] + n γ μ     + n γ ( ∑ j = 1 i ( 1 + σ ) p [ j ] + ∑ j = i + 1 s − 2 p [ j ] ) + ∑ j = 1 n v [ j ] u [ j ] + δ 1 ( ∑ j = 1 i ( 1 + σ ) p [ j ] + ∑ j = i + 1 n p [ j ] )     + δ 1 μ + δ 2 ( ( n − i ) μ + ∑ j = 1 i [ n − j + 1 + ( n − i ) σ ] p [ j ] + ∑ j = i + 1 n ( n − j + 1 ) p [ j ] ) 显然，A，B都是常数，与Δ无关，且Z是关于Δ的线性函数， B ≥ 0 ，要使 Z ( q ， u ， π ) 最小必须使 Δ = { 0 ，     α ( s − 1 ) − β ( n − s + 1 ) + n γ ≥ 0 p [ s − 1 ] ，     α ( s − 1 ) − β ( n − s + 1 ) + n γ < 0 因此，对于任一给定的序列π，都存在一个最优的公共松弛时间q等于某工件的等待时间。证毕。 接下来，确定其等待时间等于公共松弛时间q的工件 J [ s ] 的s值。要证明工件 J [ s ] 的位置是费用参数的一个函数，且与维护无关。 引理5：对于最优排序π，必有 q = C [ s − 1 ] = W [ s ] ，其中 s = ⌈ n ( β − γ ) / ( α + β ) ⌉ ( ⌈ x ⌉ 表示对x上取整，即取大于等于x的最小整数)。 证明：考虑一个最优排序和最优公共松弛时间，使得对某工件 J [ s ] 有 q = C [ s − 1 ] = W [ s ] ，利用经典扰动技术，研究当移动松弛时间时总费用的变化。当松弛时间左移充分小的正数ε个单位时间，总费用的改变值为 Δ Z 1 = − α ( s − 1 ) ε + β ( n − s + 1 ) ε − n γ ε ；相反地，当松弛时间右移ε个单位时间，总费用的改变值为 Δ Z 2 = α s ε − β ( n − s ) ε + n γ ε 。显然，因为π为最优排序，所以 Δ Z 1 ≥ 0 ， Δ Z 2 ≥ 0 。由 Δ Z 1 ≥ 0 ，得 s ≤ n ( β − γ ) / ( α + β ) + 1 ；由 Δ Z 2 ≥ 0 ，得 s ≥ n ( β − γ ) / ( α + β ) 。因为 s ∈ Ζ ，故 s = ⌈ n ( β − γ ) / ( α + β ) ⌉ 。证毕。