1.一种解决移动瓶颈法不可行解问题的解环方法,其特征在于,包括两个步骤,S1判定环具体包括以下几个子步骤:
S1.1作业车间调度问题输入,初始时所有机器均未排序,此时当前工件顺序矩阵M(j,i)=‑1,其中,j为机器的索引(j=1,…,m),m为机器数量;i为机器j所加工工序的索引(i=
1,…,lj),其中lj等于机器j所加工工序数量;
S1.2依次对未调度机器集合中的机器运用calier算法求解其单机子问题,将calier算法求解的机器排序更新到当前工件顺序矩阵中,运用工件甘特图排序算法对该机器所在的工件顺序矩阵进行间接环的判定,如果形成环,转到S2;否则转到S1.3;
S1.3瓶颈机选择,取瓶颈机所在的工件顺序矩阵为当前工件顺序矩阵;
S1.4对已调度机器集合进行局部优化,将更新的机器排序更新到当前工件顺序矩阵中;
S1.5判断所有机器是否都被排序,如果是,则运用局部优化直到解不再改变;如果否,则回到步骤S1.2;
S2解环
对于导致环的机器,运用解环算法进行解环,得到该机器新的排序,所述解环算法具体包括如下步骤:S2.1对于待排序机器k,令该机器所在工件顺序矩阵M(k,i)=(‑1,‑1…,‑1),(i=
1,…,lk);
S2.2运用解环算法得到待排序机器新的排序并更新到其所在的工件顺序矩阵中,回到步骤S1.2;
所述步骤S1.2中的工件甘特图排序算法具体包括如下步骤:
Step1.记J为机器顺序矩阵,x为J矩阵中工件的索引,x=1,2…n,n为工件数量,yx为工件x的可加工工序索引;g为M矩阵中机器的索引,g=1,2…m,zg为机器g的可加工工序索引;
初始时机器顺序矩阵J和工件顺序矩阵M的第一道工序均为可加工工序,令yx=1,zg=1,(x=1,2…n,g=1,2…m);
Step2.从J矩阵中依次选取工件x的可加工工序J(x,yx)进行加工,找到J(x,yx)所对应的机器g,判定M矩阵中M(g,zg)所对应的工件号:如果M(g,zg)=x,转到Step3;
如果M(g,zg)=‑1,转到Step4;
如果当前所有工件的可加工工序都不能被加工,则转到Step5;
Step3.将J(x,yx)安排在max{当前工件x完工时间,机器g完工时间}之后开始加工,加工完成后,令机器g的完工时间等于工件x的完工时间,J(x,yx)的下一道工序和M(g,zg)的下一道工序变为可加工工序;判断机器顺序矩阵J的所有工序是否都被加工,是,转到Step6;否则,令yx=yx+1,zg=zg+1,转到Step2;
Step4.将J(x,yx)安排在当前工件x完工时间之后加工,加工完成后,令机器g的完工时间等于工件x完工时间,J(x,yx)的下一道工序和M(g,zg)的下一道工序变为可加工工序;判断机器顺序矩阵J的所有工序是否都被加工,是,转到Step6;否则,令yx=yx+1,zg=zg+1,转到Step2;
Step5.当前调度无解,也就是形成了环;
Step6.输出最大完工时间;
所述解环算法是以待排序机器的待加工工件的可加工时间间隔作为基准,结合回溯策略,每次从待排序机器的待加工工件的可加工时间间隔集合中选取α个可加工时间间隔最小的对应工件,并加入回溯树中,同时更新每个节点的工件顺序矩阵M,对当前α个节点进行无环判定,选取具有最小下界的无环排序工件,直到所有工件都被选取,其中回溯树中每个节点都有一个下界,下界值为基于工件顺序矩阵M求解的最大完工时间;
具体包括如下步骤:
StepA.当机器k运用Calier算法求解的排序导致环时,假设此时该机器的工件顺序矩阵为M,令工件顺序矩阵M(k,i)=(‑1,‑1…,‑1)(i=1,2…,lk);
令Ie为待排序机器k待加工工件的可加工时间间隔集合,M0为待排序机器k所有工件集合,J0为回溯树的根结点,初始Ie={Ie1,Ie2,Iei,…Ien}, i=0;
StepB.对回溯树进行构造,从Ie中选取α个可加工时间间隔最小的对应工件,作为弧添加到回溯树中,对于弧r,将J0=J0 U{jr}作为该弧对应的子结点,更新每个子节点相应的工件顺序矩阵M(k,i)=jr;运用工件甘特图排序算法对该α个子节点进行无环判定,从无环节点中选取具有最小下界的结点w,节点w的工件顺序矩阵为Mw;令J0=Jw,M=Mw,通过M运用工件甘特图排序算法得到此时待加工工件(M0\J0)的可加工时间间隔集合为Ie′,令Ie=Ie′,并删除其余α‑1个结点;
StepC.判定所有工件是否都被加工,如果是,算法结束,否则,i++,转StepB。
2.根据权利要求1所述的解决移动瓶颈法不可行解问题的解环方法,其特征在于,回溯树的每一条弧对应于一个工件,对于回溯树的任一结点w,Jw表示待排序机器k的已加工工件集合,Lw表示该结点的下界。