当前位置: 首页 > 专利查询>东北大学专利>正文

一种基于直线编码方式采用初始下界剪枝的分支定界方法技术

技术编号:16838417 阅读:48 留言:0更新日期:2017-12-19 20:33
本发明专利技术属于生产调度技术领域,提出了一种基于直线编码方式采用初始下界剪枝的分支定界方法,考虑了带释放时间的情况,更符合生产实际,更有工业价值。采用直线编码和一种新的用初始下界剪支的分支定界方法有效解决了分支定界过程中需遍历节点过多的问题,最优解一定在初始上界和初始下界之间,使用初始下界剪枝比只使用初始上界剪枝的分支计算量大大减小,大大提高了搜索速度。对于维护检查、医疗检索等场合,具有相当的适用价值。

A branch and bound method based on the initial lower bound pruning based on linear coding

The invention belongs to the field of production scheduling technology, and proposes a branch and bound method based on the line coding method using the initial lower bound pruning, taking into account the release time, which is more suitable for production practice and has more industrial value. With the linear encoding and a branch and bound method supported by initial shear new bounds can effectively solve the problem of excessive need to traverse the node branch and bound of optimal solution is in the upper and lower bounds between the initial initial initial use, lower than the branch pruning using only initial pruning of calculation is greatly reduced, greatly improving the search speed. For the maintenance and inspection, medical retrieval and other occasions, it has a considerable value.

【技术实现步骤摘要】
一种基于直线编码方式采用初始下界剪枝的分支定界方法
本专利技术属于生产调度
,涉及基于直线编码方式的分支定界方法。
技术介绍
解决开放作业问题的方法有很多,可以分为最优解方法和近似解方法两种,最优解方法包括动态规划方法、整数规划方法和分支定界算法等。分支定界算法的基本思想是在有约束条件的最优化问题的可行解空间内进行搜索,搜索的过程需要对解空间不断分割成越来越小的子空间,这个过程就是分支的过程;在每次分支过程中需要对每个子空间内的解的值计算一个上界或下界,这个过程称为定界。在每次分支过程后,对界限超出限定值的可行解不再进行分支,这样每次分支过程都会剪掉一些解集,从而缩小搜索范围。分支过程一直进行直至找到最优的可行解为止。目前国内外使用分支定界的方法解决开放车间调度问题的并不太多,且有进一步完善的空间。例如Brucker等的论文Abranch&boundalgorithmfortheopen-shopproblem给出了基于析取图模型的开放作业目标函数为makespan的分支定界算法,计算结果表明该方法的性能很好。但他们的并没有考虑到工件的释放时间。不带释放时间是不符合工业实际的,因为现实生产中不太经常出现所有工件同时到达的其情况。在分支定界算法中,分支过程可以通过一个搜索树图来体现。m台机器n个工件规模的问题的搜索树一共有m×n层,将同一分支上的节点按从第一层到最后一层的顺序进行排列得到一个可行解。分支定界算法主要通过剪枝过程来缩小搜索范围,在目前的研究中,剪枝过程往往是通过比较下界与上界进行的,现有的针对带释放时间的开放车间调度问题的分支定界方法往往是给出初始上界,若某节点的下界大于该初始上界则被剪枝,这样需计算的分支数量很大,花费时间较长。
技术实现思路
为了解决带释放时间的开放车间极小化最大完工时间问题,该问题的相关定义如下:(1)开放作业(openshop)在开放作业Om问题中,n个工件需要在m台机器上处理。每个工件经过机器的顺序是任意的。在任意时刻,每台机器至多可以加工一个工件且每个工件在任意时刻至多可在一台机器上加工。当某个工件在某台机器上加工时,该过程不可以中断。(2)处理时间(processingtime)处理时间又称加工时间,表示某个工件在某台机器上处理时所需要的时间。如没有特殊说明,同一工件在不同机器上的处理时间一般不同;不同工件在同一机器上的处理时间一般也不相同。(3)释放时间(releasetime)释放时间也称到达时间(arrivetime),表示工件到达系统的时间,即工件在系统中最早可以开始加工的时间。(4)完工时间(completiontime)完工时间表示某个工件在所有机器上都经过处理后的完工时间。makespan即所有工件中最大完工时间。本专利技术提供了一种基于直线编码方式的用初始下界剪枝的分支定界方法。采用直线编码和一种新的用初始下界剪支的分支定界方法有效解决了分支定界过程中需遍历节点过多的问题,对于维护检查、医疗检索等场合,具有相当的适用价值。本专利技术解决的问题是带释放时间的开放车间调度问题,目标函数是makespan。具体技术方案为:一种基于直线编码方式采用初始下界剪枝的分支定界方法,在该分支定界算法中,每一种调度方式为一个解,将工序按照加工时间先后顺序排序得到的序列对应着开放作业问题的一个解,这种编码方式称为直线编码方式。包括如下步骤:第一步:初始化;在m台机器n个工件的开放作业中,τ为算法进行到的层数,为初始上界,为初始下界,ZUB为当前最小上界,为在第τ层节点k的下界值,Sh,τ为第τ-1层中节点h的后继结点的集合,其中0<k≤m×n,0≤τ,0≤h;令τ=0,Sh,0={1..m×n},通过最长处理时间优先启发式算法计算初始上界每台机器上工件的加工顺序不受其他机器上工件的影响,在每台机器上工件按照释放时间顺序排列,最后得到的最大完工时间为其中一个下界LB1;对于n个工件,工件的释放时间加上工件在所有机器上的加工时间之和中最大的作为另一个下界LB2,j=1,2,……,n,其中,rj代表工件j的释放时间,pi,j代表工件j在机器i上的处理时间;初始下界为第二步:判断分支条件;(1)若初始上界等于初始下界,即则初始上界即为最优解;(2)否则,令τ=τ+1,若τ<m×n-1,对于该层的每个节点k通过下界算法计算相应的下界将下界大于等于当前最小上界的节点从Sh,τ中删除;若令ZUB=ZUB+1,对该层节点重新按照下界大于等于当前最小上界的节点从Sh,τ中删除;若选出第一个下界值最小的节点,返回步骤(2);(3)若τ=m×n-1,得到两个解,分别计算其最大完工时间即为节点h的两个上界和令如果则令第三步:剪枝;删除满足k∈Sh,τ,1≤τ≤n条件的节点k;若1≤τ≤n,进入第四步;否则令τ=τ-1,在该层中能够分支但尚未向下分支的节点中选出一个下界值最小的节点,返回第二步步骤(2);第四步:终止;当前最小上界ZUB为最优解,对应的顺序为最有调度顺序。进一步地,上述第一步所述的最长处理时间优先(LPT)启发式算法,包括如下步骤:第1步:加工在所有可用的并且未加工的工序中加工时间最长的工序,若工件带有释放时间则工序的初始可用时间为该工件的释放时间,否则为0;若有处理时间相同的工序,则选取下标小的工序,转至第2步;若当前没有可用工序,转至第3步;第2步:更新工序的可用时间;将该被加工工件的可用时间更新为∞;将所有与该加工工件属于相同的机器或工件的工序的可用时间更新为在被加工工件的完工时间和工件原可用时间中取大;若所有工序加工完毕,转至第4步;否则转至第1步;第3步:更新当前时间为所有未加工的工序中最早的可用时间,转至第1步;第4步:所有工序加工完毕,调度过程结束,计算当前加工序列的最大完工时间即得初始上界。进一步地,上述第二步步骤(2)所述的下界算法为:将每台机器作为单机,每台机器上工件的加工顺序不受其他机器上工件的影响,假设当前处理到节点k,1≤k≤m×n,对于前面层中已经确定加工顺序的工序,更新各工序代表工件的可用时间;每台机器上未加工的工件按带有释放时间的最长处理时间优先启发式排列,求得的最大完工时间即为节点k的下界。本专利技术的有益效果为:(1)考虑了带释放时间的情况,更符合生产实际,更有工业价值。(2)使用了一种新的用初始下界剪枝的方法,最优解一定在初始上界和初始下界之间,使用初始下界剪枝比只使用初始上界剪枝的分支计算量大大减小,大大提高了搜索速度。附图说明图1是此分支定界算法的流程图。具体实施方式下面结合附图对本专利技术的具体实施做详细说明。实施例1:一个3台机器3个工件的开放作业的加工时间与释放时间见下表,表1工件的加工时间与释放时间步骤一:初始化,通过计算该问题的初始上界初始下界并令因为通,所以初始上界即为最优解。搜索过程结束,之后步骤不再进行,节约了90%以上的时间。实施例2:一个3台机器3个工件的开放作业的加工时间与释放时间见下表,表2工件的加工时间与释放时间步骤一:初始化,通过计算该问题的初始上界初始下界并令步骤二:将O11排在第一层,通过计算该节点下界为18,因为18>ZUB,所以剪枝。步骤三:将O12排在第一层,通过计算该节点下界为17,因为1本文档来自技高网
...
一种基于直线编码方式采用初始下界剪枝的分支定界方法

【技术保护点】
一种基于直线编码方式采用初始下界剪枝的分支定界方法,其特征在于,包括如下步骤:第一步:初始化;在m台机器n个工件的开放作业中,τ为算法进行到的层数,

【技术特征摘要】
1.一种基于直线编码方式采用初始下界剪枝的分支定界方法,其特征在于,包括如下步骤:第一步:初始化;在m台机器n个工件的开放作业中,τ为算法进行到的层数,为初始上界,为初始下界,ZUB为当前最小上界,为在第τ层节点k的下界值,Sh,τ为第τ-1层中节点h的后继结点的集合,其中0<k≤m×n,0≤τ,0≤h;令τ=0,Sh,0={1..m×n},通过最长处理时间优先启发式算法计算初始上界每台机器上工件的加工顺序不受其他机器上工件的影响,在每台机器上工件按照释放时间顺序排列,最后得到的最大完工时间为其中一个下界LB1;对于n个工件,工件的释放时间加上工件在所有机器上的加工时间之和中最大的作为另一个下界LB2,其中,rj代表工件j的释放时间,pi,j代表工件j在机器i上的处理时间;初始下界为第二步:判断分支条件;(1)若初始上界等于初始下界,即则初始上界即为最优解;(2)否则,令τ=τ+1,若τ<m×n-1,对于该层的每个节点k通过下界算法计算相应的下界将下界大于等于当前最小上界的节点从Sh,τ中删除;若令ZUB=ZUB+1,对该层节点重新按照下界大于等于当前最小上界的节点从Sh,τ中删除;若选出第一个下界值最小的节点,返回步骤(2);(3)若τ=m×n-1,得到两个解,分别计算其最大完工时间即为节点h的两个上界和令如果则令第三步:剪枝;删除满足条件的节点k;若1≤τ≤n,进入第四步;否则令τ=τ-1,在该层中能够分支但尚未向下分支的节...

【专利技术属性】
技术研发人员:崔晓智付尧刘冰倩张强白丹宇任涛
申请(专利权)人:东北大学
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1