信息与控制
INFORMATION AND CONTROL
1999年 第28卷 第2期 Vol.28 No.2 1999



用约束满足自适应神经网络和有效的启发式
算法解Job-shop调度问题*
杨圣祥　汪定伟
　　摘要　提出一种用约束满足自适应神经网络结合有效的启发式算法求解Job-shop调度问题．在混合算法中，自适应神经网络具有在网络运行过程中神经元的偏置和连接权值自适应取值的特性，被用来求得调度问题的可行解，启发式算法分别被用来增强神经网络的性能、获得确定排序下最优解和提高可行解的质量．仿真表明了本文提出的混合算法的快速有效性．
　　关键词　约束满足自适应神经网络，启发式算法，Job-shop调度，整数线性规划
USING CONSTRAINT SATISFACTION ADAPTIVE NEURAL NETWORK
AND EFFICENT HEURISITICS FOR JOB-SHOP SCHEDULING
YANG Shengxiamg　WANG Dingwei
(Department of Systems Engineering,Northeastern University,Shenyang　110006)
　　Abstract　Based on constraint satisfaction this paper proposes a new adaptive neural network,and an efficient heuristics hybrid algorithm for Job-shop scheduling. The neural network has the property of adapting its connection weights and biases of neural units while solving feasible solution. Heuristics are used to improve he property of neural network and to obtain local optimal solution from solved feasible solution by neural network with orders of operations determined and unchanged. Computer simulations have shown that the proposed hybrid algorithm is of high speed and excellent efficiency. 
　　Key words　constraint satisfaction adaptive neural network,heuristics,Job-shop scheduling,integer linear programming
　　1　引言
　　生产调度问题就是按时间分配资源来完成任务的问题［1］，Job-shop调度问题是一类复杂且极具代表性的生产调度问题：给定m台机器加工n个工件，每个工件有其特定的加工顺序或路线，调度目标就是确定每台机器上各工件工序的加工顺序及开工时间，使某个性能指标（如制造周期）最小［2］．Foo S.Y.最早提出用神经网络求解Job-shop调度问题［3］，其后又有一些人用神经网络对此问题进行了研究［4,5,6］，但所有这些网络基本上都是非自适应的，必须在网络运行前先确定神经元自身的偏置和神经元之间的连接权值．本文采用基于约束满足基础上的自适应神经网络（CSANN），结合相关的启发式算法来求解Job-shop调度问题．CSANN具有神经元的偏置和连接权值在网络运行过程中自适应取值的特性，用来求得调度问题的可行解，而启发式算法被分别用来增强神经网络的性能、获得确定排序下最优解和提高可行解的质量．仿真实验表明了混合算法的快速有效性．
　　2　Job-shop调度问题的数学模型
　　设N={1,…,n}，M={1,…m}，ni是工件i的工序数，用Oikq表示工件i第k道在第q台机器上加工的工序，其开始加工时间和加工时间（工序加工时间已知）记为Sikq和Tikq,Sieiq和Tieiq分别是工件i最后一道工序的开始加工时间和加工时间，ri和di分别是工件i的投料时间和交货期限，Pi是工件的有序工序对\集合，其中Oikp优先于Oikq，Rq是使用机器q的所有工序Oikq的集合，以最小化最大完工时间为性能指标，则Job-shop调度问题数学模型可采用整数线性规划描述如下

s.t.
　　　　　　　　　　　(1)
　　　　　　　　　(2)
　　　　　　　　　　　　　　　(3)
其中，目标函数E是取所有工件最后一道工序完工时间的最大值，即制造周期；式（1）表示同一工件的不同工序不能同时加工，且必须满足工序顺序约束；式(2)表示每台机器同一时刻只能加工一个工件，即资源约束．式（3）表示投料时间和交货期限约束．
　　3　约束满足自适应神经网络
　　CSANN是由在通用神经元（见图1）基础上，分别定义的表示工序开工时间的ST类（Starting Time）神经元、工序顺序约束是否满足的SC（Sequence Constraint）类神经元和资源约束是否满足的RC（Resource Constraint）类神经元组成，这三类神经元通过相互连接组成工序顺序约束――SC模块和资源约束――RC模块．SC模块的每个单元由一个SC类和两个ST类神经元组成（见图2），用来判断同一工件的工序顺序约束是否得到满足，RC模块的每个单元由一个RC类和两个ST类神经元组成（见图3），用来判断资源约束是否得到满足，当工序顺序约束或资源约束条件不满足时，通过适当的反馈调节来消除约束冲突．


图1　通用神经元模型

图2　SC模块单元

图3　RC模块单元
　　通用神经元由对输入信号的线性加权求和函数与非线性函数f(.)级联而成，见图1．图1中，ST类神经元用于约束各工件的工序加工活动开始时间，定义如下
　　　　　　　　　　　　　　(4)
　　　　　　　　　　　　　　(5)
其中，（4）式右边的第一和第二项分别是相关的SC类和RC类神经元的反馈调节作用，第三项是ST类神经元STi上一时刻的输出，（5）式中TSTi是STi所对应工序的加工时间．
　　SC类、RC类神经元采集ST类神经元的输出，分别用来判断（1）式表示的工序顺序约束、（2）式表示的机器资源约束是否满足，定义形式相同，如下所示
　　　　　　　　　　　　　　　　　　　　　　　　　　　(6)
　　　　　　　　　　　　　　　　　　　　　　　　　　　(7)
其中，Ci=SCi或RCi，BCi是神经元SCi或RCi的偏置设定（见图2和图3）．图2中\∈Pi，各权值与偏置取值如（8）式所示．图3中Oikq和Ojlq∈Rq，各权值与偏置取值视网络运行t时刻具体情况而定，若Sikq(t)≤Sjlq(t)，由（9）式确定，若Sikq(t)≥Sjlq(t)，由（10）式确定．
　　　　　　　　　　　　　　(8)
　　　　　　　　　　　　　　(9)
　　　　　　　　　　　　　　(10)
上述各式中，W是正的可调参数．
　　针对Job-shop调度问题，CSANN的建模步骤：确定工件数n和机器数m，工件i的工序数ni；确定ST类神经元的数目，并为每个ST类神经元对应工序Oikq编号为STikq；根据工艺要求，确定Pi和Rq集合，构造SC模块和RC模块．
　　4　算法描述
　　求解Job-shop调度问题的混合算法由CSANN和启发式算法组成，CSANN用来消解约束冲突，得到可行调度解，启发式算法被分别用来增强神经网络的性能、获得确定排序下最优解以提高可行解的质量．
　　4.1　启发式算法描述
　　算法1（相邻工序互换排序算法）：在神经网络运行过程中t时刻，对同一工件的相邻工序　∈Pi(i∈N)，当Sikp(t)≥Silq时，互换Oikp和Oilq的开工时间以互换其加工顺序，以减少因工序顺序冲突造成的反馈调节次数，加速神经网络的运行，算法如下
　　　　　　　　　　　　　　　　　　　　　(11)
另一方面，在神经网络运行过程中，由于工序顺序约束冲突的反馈调节和资源约束冲突的反馈调节之间可能存在矛盾，从而造成“死锁”现象，即神经网络陷入死循环而不能收敛到对应问题可行解的稳定状态，此时可通过对同一机器上的相邻工序，满足一定条件时，互换开工时间以互换其加工顺序，从而消除网络求解过程中可能出现的“死锁”现象，以确保得到可行解，算法如下：Oikp和Ojlq∈Rq(q∈M),当Tqikjl(t)≥T时，
　　　　　　　　　　　　　　　　　　　　　(12)
其中，Tqikjl(t)是网络运行t时刻，机器q上加工的工序Oikq和Ojlq对已经连续需要调整的次数，T是设定的常数（例如5）．
　　算法2（确定排序下最优算法）：对CSANN得到的可行调度解，在不改变各机器上工序排序的情况下，对所有机器压缩空闲等待同时有工件可加工的时间，以缩短可行解的制造周期，得到确定排序下最优的可行调度解．具体算法是按时间从小到大顺序，将遇到的所有工序的开工时间作如下修改
　　　　　　　　　　　　　　　　　(13)
其中，Sjlp是算法运行前工序Ojlp的开工时间，S′ikp是算法运行后得到的确定排序下最优解中Oikp的开工时间，Oik-lq是Oikp同一工件i的紧前工序，Ojlp是机器p上Oikp的紧前工序．（13）式表示将Oikp的开工时间提前到Oik-lq的完工时间或Sjlp的完工时间．
　　4.2　混合算法描述
　　混合算法求解Job-shop调度问题基本步骤为：
　　(1） 建立CSANN模型，设定参数T和W的值，设定最大运行次数；
　　(2） 随机或统一给定各工序开始加工时间ISTikp，作为相应的ST神经元的初始输出；
　　(3） 运行SC模块各单元，按（6、7和8）式计算OSCikp(t)，若OSCikp(t)≠0，表示（1）式对应的工序顺序约束不满足，则按（14）式或（11）式（若启用算法(1）和（5）式修改Sikp(t+1)和Silq(t+1)
　　　　　　　　　(14)
　　(4） 运行RC模块各单元，按（6、7、9或10）式计算ORCqikjl(t)，若ORCqikjl(t)≠0，表示（2）式对应的资源约束不满足，则按（15）式或（12）式（若启用算法1）和（5）修改Sik1(t+1)和Sjlq(t+1)．重复步骤3和步骤4，直至得到可行解．若不启用算法2，则结束本次运行
　　　　　　　(15)
　　(5） 若算法2启用，则运用算法2，得到确定排序下最优解；
　　(6） 若运行次数未达到设定最大运行次数，返回步骤2；否则停止运行，并输出最好解．
　　5　仿真实验结果
　　表1给出一个6×6 Job-shop调度问题的原始数据[5]，（s,m,t）表示工件的第s道工序在第m台机器上加工，加工时间为t；“→”表示工序间先后顺序，问题最优值（最小制造周期）是55．
表1　6×6Job-shop调度问题原始数据

工件1（1,3,1）→（2,1,3）→(3,2,6）→（4,4,7）→(5,6,3）→（6,5,6）
工件2（1,2,8）→（2,3,5）→（3,5,10)→（4,6,10)→(5,1,10)→（6,4,4）
工件3（1,3,5）→（2,4,4）→（3,6,8）→（4,1,9）→（5,2,1）→（6,5,7）
工件4（1,2,5）→（2,1,5）→(3,3,5）→（4,4,3）→（5,5,8）→（6,6,9）
工件5（1,3,9）→（2,2,3）→（3,5,5）→（4,6,4）→（5,1,3）→（6,4,1）
工件6（1,2,3）→（2,4,3）→（3,6,9）→（4,1,10)→（5,5,4）→（6,3,1）

　　对上述调度问题，采用两种方法进行仿真实验：方法1=CSANN+算法1，方法2=CSANN+算法1+算法2，实验中各参数设置为：T=5和W=0.5．仿真中各工件投料时间设为0，即在0时刻所有工件都已释放或可加工，完工时间约束是事先设定的期望制造周期，用作所有工件的交货期约束．在每种方法下和不同的完工时间约束，进行100个实验，其中，第一个实验是在零初始条件下进行的，即所有的工序初始开工时间都设为零，而其他99个实验中，所有初始解中各工序初始开工时间取[0，100]之间的均匀分布．仿真得到其统计平均值结果见表2（运行时间为0秒表示不到1秒）．图4和图5分别是采用方法1和方法2，在完工时间约束设为100时和用同一个随机产生的初始解进行运算的结果甘特图（方框中[i,j]表示第i个工件的第j道工序）．

图4　方法1求解结果

图5　方法2求解结果
　　由图4和图5可见，由于算法2的启用，运算的结果性能指标得到明显的提高（制造周期由100缩减为66）．图6是采用方法2在完工时间约束设为58（近优值）时，随机产生初始解进行运算的结果．

图6　方法2求得的最优解
表2　6×6调度问题的实验结果

求解方法完工时间约束各工序初始开
工时间设定调度指标E
平均/最小/最大运行时间（秒）
平均/最小/最大
方法12000711
方法1200随机产生106.56/99/1210.10/0/1
方法22000691
方法2200随机产生76/61/940.17/0/1
方法11000711
方法1100随机产生99.50/99/1000.18/0/1
方法21000691
方法2100随机产生75/60/930.21/0/1
方法158（近优值）05820
方法158（近优值）随机产生58/58/585.53/0/43
方法258（近优值）05625
方法258（近优值）随机产生57/55/586.6/0/44

　　6　结束语
　　仿真实验表明：(1）以最大完工时间为性能指标时，从零初始加工时间开始搜索，对于各种完工时间约束，采用方法1和方法2一般都能快速得到较好的可行解；(2）配以适当的完工时间约束，采用方法1能够快速得到较好的可行调度解，但解的性能指标好坏依赖于期望制造周期的设定；(3）采用方法2，对不同的完工时间约束和各工序初始开工时间，都能得到较好的可行调度解、近优解或最优解．仿真实验表明本文提出的求解Job-shop调度问题的混合算法是快速有效的．
*国家自然科学基金(No.69684005)和国家863计划CIMS主题(No.863-511-9069-003)共同资助课题.
作者简介：杨圣祥，男，26岁，博士生．研究领域为神经网络，智能优化方法，智能调度等．
　　　　　汪定伟，男，50岁，教授，博士生导师．研究领域为生产计划与调度理论，建模与决策，智能优化方法．
作者单位：东北大学信息科学与工程学院系统工程系　沈阳　110006
参考文献
　1　Baker,K. R.,Introduction to Sequence and Scheduling,John Wiley & Sons,New York,1974
　2　Conway,R. W.,Theory of Scheduling,Reading Mass: Addison-Wesley ,1967
　3　Foo,S. Y. and Takefuji,Y.,Integer-linear Programming Neural Networks for Job-shop Scheduling,Proc. IEEE IJCNN'88,San Diago,1988,341～348
　4　Zhou D. N.,Charkassky,V.,Baldwin,T. R. and Hong,D. W.,Scaling Neural Network for Job-shop Scheduling,Proceedings IEEE Int. Joint Conference on Neural Networks,1989,889～894
　5　于海斌，智能生产调度方法及应用研究，东北大学博士论文，1997
　6　Willems,T. M. and Brandts,L. E. M. W.,Implementing Heuristics as an Optimization Criterion in Neural Networks for Job-shop Scheduling. Journal of Intelligent Manufacturing,1995,6,377～387
1998-03-23收稿
