system: [SYSTEM]

user: 3. 定理及其证明 对于任意工件序列 L = { J 1 ， J 2 ， ⋯ ， J n } ，易知 C max O P T ( L ) ≥ ∑ j = 1 n p j m (1) 其中m为机器台数。 在没有特别说明的情形下，下面我们总是假设工件序列 L = { J 1 ， J 2 ， ⋯ ， J n } 满足， p i ∈ [ 1 ， r ] ， p 1 ≥ p 2 ≥ ⋯ ≥ p n ，并且总是假设 m = 2 。 定理1. 当 m = 2 时，LPT算法的最坏性能比为： R ( 2 ， L P T ， r ) = { 7 6 ，                                   r ≥ 3 2 ， k r + k + 1 2 k + 1 ，       1 + 1 2 k − 2 2 k ( 2 k + 3 ) ≤ r < 1 + 1 2 k ， 4 k + 7 4 k + 6 ， 1 + 1 2 k + 2 ≤ r ≤ 1 + 1 2 k − 2 2 k ( 2 k + 3 ) ， 1                                   r = 1. 其中 k ≥ 1 ，k为整数。 证明： r ≥ 3 2 时的结论即是Graham [ 2 ] 给出的 R ( 2 ， L P T ) = 4 3 − 1 3 m 当 m = 2 时的情形。当 r = 1 时，所有工件的加工时长都一样，显然LPT算法也是最优算法，所以结论显然成立。下面讨论 2 k + 3 2 k + 2 ≤ r < 2 k + 1 2 k 的情形。我们首先证明对任意满足条件的工件序列L，下面不等式成立： C max L P T ( L ) C max O P T ( L ) ≤ { k r + k + 1 2 k + 1 1 + 2 k + 1 2 k ( 2 k + 3 ) ≤ r < 2 k + 1 2 k ， 4 k + 7 4 k + 6 2 k + 3 2 k + 2 ≤ r < 1 + 2 k + 1 2 k ( 2 k + 3 ) . (2) 如果(2)不成立，设 L = { J 1 ， J 2 ， ⋯ ， J n } 是使(2)不成立且工件个数n最小的工件序列，这样的工件序列我们称之为最小反例。对于最小反例，易知最后一个工件J n 是最后完工的工件，即 C max L P T ( L ) = L 1 + p n 。 所以当 1 + 2 k + 1 2 k ( 2 k + 3 ) ≤ r < 2 k + 1 2 k 时，我们有 k r + k + 1 2 k + 1 < C max L P T ( L ) C max O P T ( L ) = 2 ( L 1 + p n ) 2 C max O P T ( L )   ≤ L 1 + L 2 + 2 p n 2 C max O P T ( L ) = ∑ j = 1 n p j + p n 2 C max O P T ( L ) ≤ 1 + p n 2 C max O P T (L) 最后不等式由(1)得。即 C max O P T ( L ) < ( 2 k + 1 ) p n 2 k ( r − 1 ) < ( 2 k + 3 ) p n (3) 当 2 k + 3 2 k + 2 ≤ r < 1 + 2 k + 1 2 k ( 2 k + 3 ) 时，我们同样可得(3)。因此，对于最小反例L，其总工件个数 n ≤ 4 k + 4 。 下面我们令 S i = { j | J j   在 L P T 算 法 下 安 排 在   M i   上 并 且   j ≠ n } ， i = 1 ， 2 ； S i * = { j | J j   在 O P T 算 法 下 安 排 在   M i   上 } ， i = 1 ， 2 。 易知 | S 1 ∪ S 2 | = n − 1 ， | S 1 * ∪ S 2 * | = n 。 为了完成定理1的证明，我们首先给出下面的几个引理。 引理2. 对最小反例L，在LPT算法下， J 2 i − 1 和 J 2 i 安排在不同机器上 ( i = 1 ， 2 ， ⋯ ， 2 k ， 2 k + 1 ) 。 证明：假设不然，设 i 0 是使 J 2 i − 1 和 J 2 i 为第一对被LPT算法安排在同一台机器上的两个工件，不失一般性，假设都安排在 M 2 上，那么在 J 2 i 0 − 1 和 J 2 i 0 安排之前， M 1 ， M 2 上的工件集 S ′ 1 ， S ′ 2 满足 | S ′ 1 | = | S ′ 2 | = i 0 − 1 ， 则由LPT算法规则下面不等式必然成立： ( i 0 − 1 ) r ≥ ∑ j ∈ S ′ 1 p j ≥ ∑ j ∈ S ′ 2 p j + p 2 i 0 − 1 ≥ i 0 所以有 r ≥ i 0 i 0 − 1 ≥ 1 + 1 2 k 。这显然与 r < 1 + 1 2 k 矛盾，即引理得证。 由引理2可以得出，在LPT算法下未安排工件 J 4 k + 4 时，两台机器上的工件个数相差不会超过1。 引理3. 对最小反例L，若 | S 1 * | ≥ | S 2 * | ，则 | S 1 ∩ S 1 * | ≥ | S 1 ∩ S 2 * | 和 | S 2 ∩ S 1 * | ≥ | S 2 ∩ S 2 * | 至少有一个成立。 证明：若 | S i ∩ S 1 * | < | S i ∩ S 2 * | ( i = 1 ， 2 ) 成立，则 | ( S 1 ∪ S 2 ) ∩ S 1 * | ≤ | ( S 1 ∪ S 2 ) ∩ S 2 * | + 2 成立。由定义我们有 | ( S 1 ∪ S 2 ) ∩ S i * | = { | S i * | n ∉ S i * | S i * | − 1 n ∈ S i * 这样我们有 | S 1 * | − 1 ≤ | S 2 * | + 2 ( n ∈ S 1 * ) 或者 | S 1 * | ≤ | S 2 * | + 1 ( n ∈ S 2 * ) ，此时都与假设 | S 1 * | ≥ | S 2 * | 矛盾。 引理4. 设 p ， q ∈ { 1 ， 2 } ，令 q ¯ = q mod 2 + 1 ，即 q = 1 时 q ¯ = 2 ，而 q = 2 时 q ¯ = 1 。若 | S p | ≤ k 0 ， | S q * | ≥ k 0 + 1 ， | S p ∩ S q * | ≥ | S p ∩ S q ¯ * | 且 k 0 ≤ 2 k ，则有 C max L P T ( L ) C max O P T ( L ) ≤ k r + k + 1 2 k + 1 (4) 证明：由 C max L P T ( L ) ≤ ∑ j ∈ S p p j + p n 和 C max O P T ( L ) ≥ ∑ j ∈ S q * p j 得 C max L P T ( L ) C max O P T ( L ) ≤ ∑ j ∈ S p p j + p n ∑ j ∈ S q * p j = ∑ j ∈ S p ∩ S q ¯ * p j + ∑ j ∈ S p ∩ S q * p j + p n ∑ j ∈ S q * \ S p p j + ∑ j ∈ S p ∩ S q * p j ≤ ∑ j ∈ S p ∩ S q ¯ * p j + | S p ∩ S q * | + 1 ∑ j ∈ S q * \ S p p j + | S p ∩ S q * | ≤ | S p ∩ S q ¯ * | r + | S p ∩ S q * | + 1 | S p ∩ S q * | + | S q * \ S p | = | S p ∩ S q ¯ * | r + | S p ∩ S q * | + | S p ∩ S q ¯ * | r + | S p ∩ S q * | + 2 2 | S q * | ≤ | S p ∩ S q * | r + | S p ∩ S q ¯ * | + | S p ∩ S q ¯ * | r + | S p ∩ S q * | + 2 2 | S q * | ≤ | S p | r + | S p | + 2 2 | S q * | = k 0 r + k 0 + 2 2 k 0 + 2 ≤ k r + k + 1 2 k + 1 上面第二个不等式是因为 p n ≥ 1 和函数 f ( x ) = a + x b + x ( a ≥ b > 0 ) 在 x ≥ 0 里是x的减函数，第四个不等式由引理3得，最后一个不等式是因为 k 0 ≤ 2 k 和函数 g ( x ， y ) = ( r + 1 ) x + 2 2 x + 2 是 x ≥ 0 的增函数。 引理5. 设 p ， q ∈ { 1 ， 2 } ，令 q ¯ = q mod 2 + 1 。若 | S P | ≤ 2 k 0 + 1 ， | S q * | ≥ 2 k 0 + 2 且 k 0 ≤ k ，则有(4)。 证明：与引理4的证明类似可得 C max L P T ( L ) C max O P T ( L ) ≤ ∑ j ∈ S p ∩ S q ¯ * p j + ∑ j ∈ S p ∩ S q * p j + p n ∑ j ∈ S q * \ S p p j + ∑ j ∈ S p ∩ S q * p j ≤ | S p ∩ S q ¯ * | r + | S p ∩ S q * | + 1 | S p ∩ S q * | + | S q * \ S p | = | S p ∩ S q ¯ * | ( r − 1 ) + | S p | + 1 | S q * | ≤ k 0 r + k 0 + 2 2 k 0 + 2 ≤ k r + k + 1 2 k + 1 上面最后一个不等式是因为函数 g ( x ， y ) = ( r + 1 ) x + y 2 x + y 是 x ≥ 0 的增函数，是 y ≥ 0 的减函数。 由(3)，我们下面分 n = 2 k ′ + 1 ， 2 k ′ + 2 ( k ′ ≤ 2 k ) 和 n = 4 k + 3 ， 4 k + 4 这4种情况证明(4)成立。 情况1. n = 2 k ′ + 1 ， k ′ ≤ 2 k 。 由 | S 1 * | + | S 2 * | = 2 k ′ + 1 不妨设 | S 1 * | ≥ k ′ + 1 。由引理2得 | S 1 | = | S 2 | = k ′ ，由引理3知， | S 1 ∩ S 1 * | ≥ | S 1 ∩ S 2 * | 和 | S 2 ∩ S 1 * | ≥ | S 2 ∩ S 2 * | 至少有一个成立。若 | S 1 ∩ S 1 * | ≥ | S 1 ∩ S 2 * | 成立。则令 p = 1 ， q = 1 ， k 0 = k ′ ，由引理4得(4)成立。若 | S 2 ∩ S 1 * | ≥ | S 2 ∩ S 2 * | 成立。则令 p = 2 ， q = 1 ， k 0 = k ′ ，由引理4也得(4)成立。 情况2. n = 2 k ′ + 2 ， k ′ ≤ 2 k 。 由引理2不妨设有 | S 1 | = k ′ ， | S 2 | = k ′ + 1 ， | S 1 * | ≥ k ′ + 1 。若 | S 1 ∩ S 1 * | ≥ | S 1 ∩ S 2 * | ，则令 p = 1 ， q = 1 ， k 0 = k ′ ，由引理4得(4)成立。 若 | S 1 ∩ S 1 * | ≥ | S 1 ∩ S 2 * | 不成立，此时若有 | S 2 * | ≥ k ′ + 1 ，令 p = 1 ， q = 2 ， k 0 = k ′ ，由引理4得(4)成立。否则有 | S 2 * | ≤ k ′ ，因而 | S 1 * | ≥ k ′ + 2 。则由引理3知 | S 2 ∩ S 1 * | ≥ | S 2 ∩ S 2 * | 成立，这时令 p = 2 ， q = 1 ， k 0 = k ′ + 1 ，由引理4知当 k ′ < 2 k 时(4)成立。 若 | S 1 ∩ S 1 * | ≥ | S 1 ∩ S 2 * | 不成立，且 | S 2 * | ≤ k ′ 和 k ′ = 2 k 成立，令 p = 1 ， q = 2 ， k 0 = k ′ ，由引理5知(4)成立，因为由 | S 1 ∩ S 1 * | ≤ | S 1 ∩ S 2 * | 可得 | S 1 ∩ S 1 * | ≤ k 。 情况3. n = 4 k + 3 。 不妨设 | S 1 * | > | S 2 * | 。由引理2及(3)知 | S 1 * | = 2 k + 2 且 | S 1 | = | S 2 | = 2 k + 1 。由引理3知 | S 1 ∩ S 1 * | ≥ | S 1 ∩ S 2 * | 和 | S 2 ∩ S 1 * | ≥ | S 2 ∩ S 2 * | 中至少有一个成立。若 | S 1 ∩ S 1 * | ≥ | S 1 ∩ S 2 * | 成立，则有 | S 1 ∩ S 1 * | ≥ k + 1 ， | S 1 ∩ S 2 * | ≤ k 。令 p = 1 ， q = 1 ， k 0 = k ，则由引理5即得(4)成立。 若 | S 1 ∩ S 1 * | ≥ | S 1 ∩ S 2 * | 不成立，则必有 | S 2 ∩ S 1 * | ≥ | S 2 ∩ S 2 * | 成立，所以有 | S 2 ∩ S 1 * | ≥ k + 1 ， | S 2 ∩ S 2 * | ≤ k p = 2 ， q = 1 ， k 0 = k 则由引理5即得(4)成立。 情况4. n = 4 k + 4 。 由(3)得 | S 1 * | = | S 2 * | = 2 k + 2 。由引理2可不妨设 | S 1 | = 2 k + 1 ， | S 2 | = 2 k + 2 。 若 | S 1 ∩ S 1 * | ≥ k + 1 成立，则有 | S 1 ∩ S 2 * | ≤ k 这时令 p = 1 ， q = 1 ， k 0 = k ，则由引理5即得(4)成立。由于 | S 1 ∩ ( S 1 * ∪ S 2 * ) | = 2 k + 1 ，若 | S 1 ∩ S 1 * | ≥ k + 1 不成立，则 | S 1 ∩ S 2 * | ≥ k + 1 成立，因而有 | S 1 ∩ S 1 * | ≤ k ，这时令 p = 1 ， q = 2 ， k 0 = k ，则由引理5也得(4)成立。 由上所述可知 C max L P T ( L ) C max O P T ( L ) ≤ max { k r + k + 1 2 k + 1 ， 4 k + 7 4 k + 6 } = { k r + k + 1 2 k + 1 ， 1 + 2 k + 1 2 k ( 2 k + 3 ) ≤ r < 2 k + 1 2 k 4 k + 7 4 k + 6 ， 2 k + 3 2 k + 2 ≤ r < 1 + 2 k + 1 2 k ( 2 k + 3 ) 下面我们分别给出上面不等式等号成立的实例： 当 1 + 2 k + 1 2 k ( 2 k + 3 ) ≤ r ≤ 2 k + 1 2 k 时，我们令 L = { J 1 ， J 2 ， ⋯ ， J 4 k + 1 } ，其相应的加工时长为 { r ， r ， ⋯ ， r ， 1 ， 1 ， ⋯ ， 1 } ，其中时长为r和1的工件分别有2k和 2 k + 1 个。在LPT算法下， M 1 上安排时长为r和1的工件各 k ， k + 1 个， M 2 上安排时长为r和1的工件各k个，故 C max L P T ( L ) = k r + k + 1 。 在OPT算法下， M 1 上安排时长为r的工件2k个， M 2 上安排时长为1的工件 2 k + 1 个，故 C max O P T ( L ) = 2 k + 1 ，即 C max L P T ( L ) C max O P T ( L ) ≤ k r + k + 1 2 k + 1 当 2 k + 3 2 k + 2 ≤ r < 1 + 2 k + 1 2 k ( 2 k + 3 ) 时，我们分别给出k为奇数和偶数时紧界的实例： 当k为奇数时，令 L = { J 1 ， J 2 ， ⋯ ， J 4 k + 5 } ，其相应加工时长为 { r ， r ， ⋯ ， r ， r ′ ， r ′ ， ⋯ ， r ′ ， 1 ， 1 ， ⋯ ， 1 } 时长为r和 r ′ 的各有 k + 1 个，时长为1的有 2 k + 3 个，并且满足 1 < r ′ < r ， r + r ′ = 2 k + 3 k + 1 在LPT算法下， M 1 上安排时长为r和 r ′ 的工件各有 k + 1 2 个，安排 k + 2 个时长为1的工件。 M 2 上安排时长分别为r和 r ′ 的工件各 k + 1 2 个，时长为1的工件 k + 1 个。则 C max L P T ( L ) = ( k + 1 ) ( r + r ′ ) 2 + k + 2 在OPT算法下， M 1 上安排时长为r和 r ′ 的工件各 k + 1 个， M 2 上安排 2 k + 3 个时长为1的工件， 则 C max O P T ( L ) = 2 k + 3 ，故 C max L P T ( L ) C max O P T ( L ) = 4 k + 7 4 k + 6 当k为偶数时，令 L = { J 1 ， J 2 ， ⋯ ， J 4 k + 5 } ，其相应加工时长为 { r ， r ， ⋯ ， r ， r ′ ， r ′ ， ⋯ ， r ′ ， r ″ ， r ″ ， 1 ， 1 ， ⋯ ， 1 } 长分别为r和 r ′ 的各有k个，时长为 r ″ 的工件有2个，时长为1的有 2 k + 3 个，并且满足 1 < r ″ < r ′ < r ， k ( r + r ′ ) + 2 r ″ = 2 k + 3 在LPT算法下， M 1 上安排时长为r和 r ′ 的工件各 k 2 个，安排1个时长为 r ″ 的工件和 k + 2 个时长为1的工件。 M 2 上安排时长分别为r和 r ′ 的工件各 k 2 个和1个时长为 r ' ' 的工件以及 k + 1 个时长为1的工件。则 C max L P T ( L ) = k ( r + r ′ ) 2 + r ″ + k + 2 在OPT算法下， M 1 上安排时长为r和 r ′ 的工件各k个，以及2个 r ″ ，在 M 2 上安排 2 k + 3 个时长为1的工件，则 C max O P T ( L ) = 2 k + 3 故： C max L P T ( L ) C max O P T ( L ) = 4 k + 7 4 k + 6 综上可知，定理1得证。