system: [SYSTEM]

user: 4. 近似算法 4.1. 最优调度方案的性质 由于该调度问题是NP-难问题，无法直接给出最优调度方案。但是，我们可以根据目标函数提出几点最优调度方案应有的性质。 性质1：在最优调度方案中，一定存在 0 ≤ k max − k min ≤ 1 。其中 k max = max { k 1 ， k 2 ， ⋯ ， k m } ； k min = min { k 1 ， k 2 ， ⋯ ， k m } 。 证 明 不失一般性，假设调度方案 σ 是最优调度方案， k max = k 1 ， k min = k 2 ， σ 可以被表示为 σ = { B 1 ， 1 ， t ， B 1 ， 2 ， t ， ⋯ ， B 1 ， k 1 ， B 2 ， 1 ， t ， ⋯ ， B 2 ， k 2 ， ⋯ ， B m ， 1 ， t ， B m ， 2 ， t ， ⋯ ， B m ， k m } 其中， k max − k min ≥ 2 ，且 B 1 ， k 1 非空，至少有一个工件 J j 存在。 若将批次 B 1 ， k 1 内的工件放入 B 2 ， k 2 加工，其余批次不变，其目标函数为 f ，则不等式 f ( σ ) − f ≥ w j ( t + p j ) > 0 成立。也就是说，当 k max − k min ≥ 2 ，且 B 1 ， k 1 非空时，还有更优的调度方案。故，在最优调度方案中，一定存在 0 ≤ k max − k min ≤ 1 。证毕。 性质2：在最优调度方案中，所有平行机的批次的权重和都应该是由大到小的，不同机器的批次内的权重和也是。 证 明 不失一般性，假设调度方案 σ 1 在机器 M i 的调度结果为 σ 1 ， i = { B i ， 1 ， t ， B i ， 2 ， t ， ⋯ ， B i ， l ， t ， B i ， l + 1 ， t ， ⋯ ， B i ， k i } ，在机器 M i + q 的调度结果为 σ 1 ， i + q = { B i + q ， 1 ， t ， B i + q ， 2 ， t ， ⋯ ， B i + q ， l ， t ， B i + q ， l + 1 ， t ， ⋯ ， B i + q ， k i + q } 。 调度方案 σ 2 在机器 M i 的调度结果为 σ 2 ， i = { B i ， 1 ， t ， B i ， 2 ， t ， ⋯ ， B i + q ， l + 1 ， t ， B i ， l + 1 ， t ， ⋯ ， B i ， k i } ，在机器 M i + q 的调度 结果为 σ 2 ， i + q = { B i + q ， 1 ， t ， B i + q ， 2 ， t ， ⋯ ， B i + q ， l + 1 ， t ， B i ， l ， t ， ⋯ ， B i + q ， k i + q } 。 调度方案 σ 1 和 σ 2 除了批次 B i ， l 和批次 B i + q ， l + 1 内的工件发生了对换外，其余批次没有任何变化。其中， 机器 M i 的第 l 个批次的权重和为 ∑ j = 1 n i ， l w j i ， l ；机器 M i + q 的第 l + 1 个批次 B i + q ， l + 1 的权重和为 ∑ j = 1 n i + q ， l + 1 w j i + q ， l + 1 ；机器 M i 上的调度方案 σ 1 和 σ 2 的目标函数分别为 f ( σ 1 ) 和 f ( σ 2 ) 。 假设 ∑ j = 1 n i ， l w j i ， l ≥ ∑ j = 1 n i + q ， l + 1 w j i + q ， l + 1 ，则有 f ( σ 1 ) − f ( σ 2 ) = ∑ 1 n i ， l w j i ， l C j i ， l + ∑ 1 n i ， l + 1 w j i ， l + 1 C j i ， l + 1 + ∑ 1 n i + q ，     l     w j i + q ， l C j i + q ， l + ∑ 1 n i + q ， l + 1 w j i + q ， l + 1 C j i + q ， l + 1 − ∑ 1 n i + q ， l + 1 w j i + q ， l + 1 [ C j i + q ， l + 1 − ( T + t ) ] − ∑ 1 n i ， l + 1 w j i ， l + 1 C j i ， l + 1 − ∑ 1 n i + q ， l w j i + q ， l C j i + q ， l − ∑ 1 n i ， l w j i ， l [ C j i ， l + ( T + t ) ] = ∑ 1 n i ， l w j i ， l C j i ， l + ∑ 1 n i + q ， l + 1 w j i + q ， l + 1 C j i + q ， l + 1 − ∑ 1 n i + q ， l + 1 w j i + q ， l + 1 [ C j i + q ， l + 1 − ( T + t ) ] − ∑ 1 n i ，     l w j i ， l [ C j i ， l + ( T + t ) ] = ∑ 1 n i + q ，     l + 1 w j i + q ， l + 1 ( T + t ) − ∑ 1 n i ，     l w j i ， l ( T + t ) = ( ∑ 1 n i + q ， l + 1 w j i + q ， l + 1 − ∑ 1 n i ， l w j i ， l ) ( T + t ) ≤ 0. 由以上不等式可知，当批次按照权重和由大到小排列时，其加权总完工时间小于其他调度方案结果。因此，在最优调度方案中，所有平行机的批次的权重和都应该是由大到小的，不同机器的批次的权重和也是。证毕。 性质3：在最优调度方案中，任一批次内的工件都是按照WSPT规则排序的。 证 明 我们知道，同一批次内工件的加工不需要维护。对于无约束的单机调度问题 1 || ∑ w j C j ，我们知道WSPT规则可以得到最优调度方案。因此，在最优调度方案中，任一批次内的工件都应按照WSPT规则排序。证毕。 性质4：在最优调度方案中，在加工了工件 J j 的批次前，所有平行机都没有可以加工工件 J j 的空闲时间。 证 明 不失一般性，假设在调度方案 σ 为最优调度中，工件 J j 被安排在机器 M i 的第 l + 1 批次 B i ， l + 1 内加工，完工时刻为 C j 。且机器 M i + q 的第 l 个批次 B i ， l 内有可以加工工件 J j 的空闲时间。若将工件 J j 放入批次 B i ， l 内加工，其余工件不变，其目标函数为 f ，则不等式 f ( σ ) − f ≥ w j ( t + p j ) > 0 成立。故，在最优调度方案中， 在加工了工件 J j 的批次前，所有平行机都没有可以加工工件 J j 的空闲时间。证毕。 对于单机调度问题 1 || ∑ w j C j ，根据WSPT规则可以得到最优调度方案。在多机环境中，当有多台机器均可以加工工件时，应该安排在哪一台机器上加工会有更优的结果，我们是不知道的。工件完成时间优先(JCT)、机器完成时间优先(MCT)作为两种工件分配机制被何杰(文献 [ 12 ] )提出用于解决最小化时间表长的车间调度。因此，我们可以将这两个工件分配机制以及FF规则与WSPT规则结合考虑，提出以下算法。 4.2. WSPTJCT算法 步骤1：将所有工件按照WSPT规则排序，不失一般性，假设 w 1 p 1 ≥ w 2 p 2 ≥ ⋯ ≥ w n p n ；若 w j p j = w j + q p j + q ，且 p j ≥ p j + q   ，则工件 J j 排在 J j + p 前； 步骤2：若工件 J j 按照FF规则在机器 M i 上加工的当前完成时刻 C j i 不大于在其他机器上加工的完成时刻，则将工件 J j ( j = 1 ， 2 ， ⋯ ， n ) 按照FF规则安排在机器 M i 上加工； 步骤3：将所有批次按照其权重和由大到小排，依次放入各机器上； 步骤4：计算目标值 f W S P T J C T = ∑ w j C j 。 4.3. WSPTMCT算法 步骤1：将所有工件按照WSPT规则排序，不失一般性，假设 w 1 p 1 ≥ w 2 p 2 ≥ ⋯ ≥ w n p n ；若 w j p j = w j + q p j + q ，且 p j ≥ p j + q   ，则工件 J j 排在 J j + p 前； 步骤2：若按照FF规则加工工件 J j 后，机器 M i 的当前完成时刻不大于其他机器加工完工件 J j 的完成时刻，则将工件 J j ( j = 1 ， 2 ， ⋯ ， n ) 按照FF规则安排在机器 M i 上加工； 步骤3：将所有批次按照其权重和由大到小排，依次放入各机器上； 步骤4：计算目标值 f W S P T M C T = ∑ w j C j 。 4.4. WSPTBF算法 步骤1：将所有工件按照WSPT规则排序，不失一般性，假设 w 1 p 1 ≥ w 2 p 2 ≥ ⋯ ≥ w n p n ；若 w j p j = w j + q p j + q ，且 p j ≥ p j + q ，则工件 J j 排在 J j + p 前； 步骤2：将所有工件按照BF规则依次放入各机器上； 步骤3：将所有批次按照其权重和由大到小排，依次放入各机器上； 步骤4：不失一般性，假设时间表长在平行机 M 1 的第 l 个批次内取得，若每台平行机的使用的批次个数不完全相同，则将每一台平行机的第 l 个批次内的工件全部取出，按照WPSTJCT算法放在 m 台平行机上加工； 步骤5：计算目标值 f W S P T B F = ∑ w j C j 。 4.5. ROPT算法 计算目标值 f R O P T = min { f W S P T J C T ， f W S P T M C T ， f W S P T B F } 。