Advances in Applied Mathematics
Vol. 09  No. 12 ( 2020 ), Article ID: 39230 , 5 pages
10.12677/AAM.2020.912251

带时间窗口的单工件排序问题

刘敏1,曹庭锴1,张同全2

1云南民族大学数学与计算机科学学院,云南 昆明

2云南民族大学预科教育学院,云南 昆明

收稿日期:2020年11月26日;录用日期:2020年12月11日;发布日期:2020年12月18日

摘要

排序是为加工若干个工件或者完成若干项任务而对资源按时间进行高效率的分配,本文讨论一个工件的情况下对多台机器进行排序,从而使加工时间最短的问题。在这个问题中给定一个时间窗口作为约束,机器只能在规定的时间窗口内运行。分析该问题是NP-难问题,并给出一个近似算法,讨论该近似算法的近似比不超过3/2,该近似算法的时间复杂度为 O ( m 2 )

关键词

排序,循环时间窗口,NP-难,近似算法

The Scheduling Problem of Single Job with Time Windows

Min Liu1, Tingkai Cao1, Tongquan Zhang2

1School of Mathematics and Computer Science, Yunnan Minzu University, Kunming Yunnan

2School of Preparatory Education, Yunnan Minzu University, Kunming Yunnan

Received: Nov. 26th, 2020; accepted: Dec. 11th, 2020; published: Dec. 18th, 2020

ABSTRACT

Scheduling is the efficient allocation of resources according to time in order to process a number of jobs or complete a number of tasks. This paper discusses the problem of scheduling multiple machines in the case of one job so as to minimize the processing time. In this problem, we give a time window as a constraint; machines can only run within the time window. The problem is NP-hard and an approximate algorithm is given. The approximate ratio of the approximate algorithm is not more than 3/2. The time complexity of this algorithm is O ( m 2 ) .

Keywords:Scheduling, Cycle Time Windows, NP-Hard, Approximate Algorithm

Copyright © 2020 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

1. 引言

排序是为加工若干个工件或者完成若干项任务而对资源按时间进行高效率的分配,工厂在加工的时候,为了在盈利的同时令供应商、客户都满意,在保证按时交付产品的同时也要考虑到自己的成本问题,怎样让成本最小、花费时间最少、运输成本最小都是排序理论所要研究的问题。近年来国内外学者在排序领域取得了众多的研究成果。刘洋 [1] 分析了有新任务到达的包含时间窗口的多资源动态调度问题中的主要约束类型,建立了调度模型,提出了模型的启发式迭代修改求解方法。Chung-Yee Lee [2] 讨论了机器释放时间不同的几种情况下的理论结果,大多数问题是NP-难的,作者给出了伪多项式时间算法加以解决。Vickson [3] 研究了最大延误排序问题 1 | | T max 加工时间可控的费用最小问题。O. Braun [4] 等人将带时间窗口的单机排序问题添加了时间限制的约束条件,证明了当约束条件 B 2 时该问题是NP-难的,An Zhang [5] 等人给出了这个问题的多项式时间算法。Mostafa Khatami [6] 等人运用启发式算法和ILS算法更为有效率地解决了m台机器的有序流水线问题。

本文主要考虑一个工件在多台机器上加工的机器排序问题,与前述问题不同的是,本文在每天添加时间窗口作为机器运行时间的约束条件,要求所有机器都只能在时间窗口所规定的时间内运行。工厂在对工件进行加工时,机器运行的时间越长,成本就越高,所以要对机器进行排序,使得机器工作的天数最小,从而减少生产成本。本文给出了一个该问题的近似算法,并进行近似度分析,为工件的加工排序提供方案。

2. 问题简介

设有一个工件要在m台机器上进行加工,工件在每台机器上的加工时间为 t 1 , t 2 , , t m ,有时间窗口 [ α , β ] ,记 t = β α ,( α < β α , β [ 0 , 24 ] )。其中 α 表示机器开始运行的时间, β 表示机器结束运行的时间。所有机器的工作周期以天为单位,每天只能在时间窗口所规定的时间内运行,每台机器的工作时间不可中断,工件在同一时刻只能在一台机器上加工,机器之间没有顺序,要求对机器进行排序,使工作天数最小,设工作天数为k。

min k

数学描述:

x i j = { 1 j i 0 j i i = 1 , , k ; j = 1 , , m

约束条件为 j = 1 m x i j t j t ( i = 1 , , k )

i = 1 k x i j = 1 ( j = 1 , , m )

也即

{ x 11 t 1 + x 12 t 2 + + x 1 m t m t x 21 t 1 + x 22 t 2 + + x 2 m t m t x k 1 t 1 + x k 2 t 2 + + x k m t m t

{ x 11 + x 21 + + x k 1 = 1 x 12 + x 22 + + x k 2 = 1 x 1 m + x 2 m + + x k m = 1

只需考虑 k m 的情况。

A = ( x 11 x 12 x 1 m x 21 x 22 x 2 m x k 1 x k 2 x k m ) 。其中A的每一列只有一个元素为1,其余均为0,且 k = r ( A )

目标函数:求mink。

3. 对该问题的NP性讨论

定理1 上述问题是NP-难的。

证明:问题I:给定m个物品和一些容量为t的背包,m个物品的大小分别为 { t 1 , t 2 , , t m } ,需要把每个物品分别放入背包中,物品的大小不能超过背包的容量,每个物品不可分割。问是否存在可以装下所有物品的最小背包数k。

问题II:设有一个工件,m台机器,工件在每台机器的工作时间记为 t 1 , t 2 , , t m ,有时间窗口 [ α , β ] ,记 t = β α ,( α < β α , β [ 0 , 24 ] )。其中 α 表示机器开始运行的时间, β 表示机器结束运行的时间。所有机器每天只能在时间窗口内运行,每台机器的工作时间不可中断,工件在同一时刻只能在一台机器上加工,要求对机器进行排序,使工作天数最小,设工作天数为k。

若I有一个可行解k,

x i j = { 1 j i 0 j i i = 1 , , k ; j = 1 , , m

A = ( x 11 x 12 x 1 m x 21 x 22 x 2 m x k 1 x k 2 x k m ) ,记 T = ( t 1 t 2 t m ) C = ( t t t ) ,则由问题I可以得到 A T C ,而k是满足该条件的最小背包数。在问题II里 t 1 , t 2 , , t m 表示每台机器的工作时间,t表示每天的最长工作时间,当问题

II满足了 A T C 之后,可直接得到k就是要求的最小工作天数。所以问题I可以多项式规约为问题II。已知问题Ⅰ是NP-难的 [7] [8],所以问题II也是NP-难的。

4. 算法设计

Input: x i j ( i = 1 , , m ; j = 1 , , m ) ; t i ( i = 1 , , m )

Output: k的值。

Step1:先将m台机器按加工时间从大到小排列,不妨设为 t 1 t 2 t m 。加工时长大于 t / 2 的机器记作大机器,设有 k 台大机器,所需加工时间分别是 t 1 , , t k

Step2:按照每天运作一台大机器的方式先对大机器进行排序,即令

x i j = { 1 ( i = j = 1 , , k ) 0 ( j i i = 1 , , m ; j = 1 , , k )

Step3:令 t 1 = t 1 t 2 = t 2 t k = t k t k + 1 = t k + 2 = = t m = 0

for ( j = k + 1 , j < = m , j + + )#外循环依次安排每一个小机器#

{ for( i = 1 , i < = m , i + + ) #内循环决定第j台小机器在哪一天运行#

if ( t i + t j < = t )

x i j = 1 , x i + 1 , j = 0 , x i + 2 , j = 0 , , x m , j = 0

t i = t i + x i j t j

break. #终止内循环,转入外循环#

else x i , j = 0 ;}

Step4:根据step3可以求出矩阵A,A的秩r(A)等于A中非零元的个数,且知 k = r ( A )

5. 算法分析

定理2 上述算法的近似比不超过3/2。

证明:已知上述算法所花费的总天数为k,大机器参与排序的天数为 k ,记 k = k k 。将只对小机器进行排序的那些天记作小天,其余记作大天。显然小天共有 k 天,大天共有 k 天。在计算近似比时,将小天中的机器依次放在大天的空余部分,使大天的空余部分完全被占用,再依次将这些小天中的机器补在机器未被动用的小天的空余部分,使其空余部分完全被占用,将全部机器都被使用的小天数记作 d 2 ,机器未被动用的小天数加上机器未使用完的那一天记作 d 1 ,则 k = d 1 + d 2 .记最优解为OPT。则有

k + d 1 O P T (1)

k t 2 + d 1 t 2 d 2 t 1 2 ( k + d 1 ) d 2

1 2 ( k + d 1 ) d 2 (2)

将(2)式代入(1)式中得

O P T k + d 1

1 2 O P T 1 2 ( k + d 1 )

1 2 O P T d 2

所以

O P T + 1 2 O P T k + d 1 + d 2

3 2 O P T k

k O P T 3 2 .

因此上述算法的近似比不超过3/2。

定理3 上述算法的时间复杂度为 O ( m 2 )

证明:第一步的时间复杂度为 O ( m log m ) ,第二步的时间复杂度为 O ( m ) ,第三步的时间复杂度为 O ( m 2 ) ,第四步的时间复杂度为 O ( m ) ,所以该算法的时间复杂度为 O ( m 2 )

6. 结论

关于带时间窗口的单工件在多台机器上的排序问题,本文给出了一个近似算法,并且证明了该近似算法的时间复杂度和近似比,而带时间窗口的多个工件在多台机器上的排序问题是这类问题未来的研究方向。

致谢

衷心感谢匿名审稿人对初稿提出的宝贵意见。

文章引用

刘 敏,曹庭锴,张同全. 带时间窗口的单工件排序问题
The Scheduling Problem of Single Job with Time Windows[J]. 应用数学进展, 2020, 09(12): 2161-2165. https://doi.org/10.12677/AAM.2020.912251

参考文献

  1. 1. 刘洋. 基于动态约束满足的一类含时间窗口的多资源动态调度模型与方法[C]//中国运筹学会. 中国运筹学会第七届学术交流会论文集(中卷). 北京: 中国运筹学会, 2004: 155-163.

  2. 2. Lee, C.-Y. (1996) Machine Scheduling with an Availability Constraint. Journal of Global Optimization, 9, 395-416. https://doi.org/10.1007/BF00121681

  3. 3. Vickson, R.G. and Alfredsson, B.E. (1980) Two Single Machine Sequencing Problems Involving Controllable Job Processing Time. IIE Transactions, 12, 258-292. https://doi.org/10.1080/05695558008974515

  4. 4. Braun, O., Chung, F. and Graham, R. (2013) Single-Processor Scheduling with Time Restrictions. Journal of Scheduling, 17, 399-403. https://doi.org/10.1007/s10951-013-0342-0

  5. 5. Zhang, A., Chen, Y., Chen, L. and Chen, G.T. (2018) On the NP-Hardness of Scheduling with Time Restrictions. Discrete Optimization, 28, 54-62. https://doi.org/10.1016/j.disopt.2017.12.001

  6. 6. Khatami, M., Salehipour, A. and Hwang, F.J. (2019) Makespan Minimization for the M-Machine Ordered Flow Shop Scheduling Problem. Computer and Operation Research, 111, 400-414. https://doi.org/10.1016/j.cor.2019.06.012

  7. 7. Book, R.V. (1980) Review: Michael R. Garey and David S. Johnson, Computers and intractability: A Guide to the Theory of NP-Completeness. Bulletin (New Series) of the American Mathematical Society, 3, 898-904. https://doi.org/10.1090/S0273-0979-1980-14848-X

  8. 8. Zhang, G.C., Cai, X.Q. and Wong, C.K. (2000) Linear Time-Approximation Algorithm for Bin Packing. Operations Research Letters, 26, 217-222. https://doi.org/10.1016/S0167-6377(99)00077-2

期刊菜单