一种解决作业车间调度问题的排产算法的制作方法

文档序号:11063758阅读:791来源:国知局
一种解决作业车间调度问题的排产算法的制造方法与工艺

本发明涉及作业车间调度技术领域。



背景技术:

作业车间调度问题(Job-shop Scheduling Problem)是许多实际生产调度问题的简化模型,具有广泛的应用背景,譬如生产制造、交通规则、邮电通信、大规模集成电路设计等问题。作为一类满足任务配置和顺序约束要求的分配问题,JSP已被证明是一个典型的NP_hard问题,它的求解难度远远大于流水线调度问题。针对解决作业车间调度问题的算法一直是学术界和工程界共同关注的重要课题。

制造业的竞争日趋激烈,企业正朝着有不同完工时间和产品要求的多类型、小批量、大批量的生产模式。如何利用现有资源,满足加工任务所需各种约束,使所有任务能尽量按时完成,即如何有效地解决JSP问题,成为一个十分现实和紧迫的问题。高效的调度算法不可以大大提高生产效率和资源利用率,从而增强企业的竞争能力,因此对JSP的研究有非常重要的理论和现实意义。

鉴于作业车间调度问题的复杂性,一般都采用最优化方法和近似方法来解决作业车间调度方案的自动生成问题。

布谷鸟搜索(Cuckoo Search,CS)算法是一种新的现代启发式算法,由剑桥大学Yang和拉曼工程学院Deb于2009年提出的。该算法基于某些布谷鸟种类的巢寄生繁育行为和鸟类、果蝇等的莱维飞行(Levy flight)行为特征提出。布谷鸟搜索算法是模拟布谷鸟为寻找合适的产卵的鸟窝而随机游走的寻窝过程。

但是,已提出的这些算法都仅仅是解决最底层的作业调度问题,没有考虑到实际生产过程中生产资源的调度是否存在冲突,生产资源是否充足,且没考虑到工件试装的问题。



技术实现要素:

针对现有技术存在的上述不足,本发明要解决的技术问题是提供一种改进的布谷鸟算法和新的排产算法。

本发明的目的是克服现有技术中存在的:车间调度问题中没有考虑生产资源、工件试装的调度问题。

本发明为实现上述目的所采用的技术方案是:一种解决作业车间调度问题的排产算法,该算法的步骤如下:

步骤1:编码:采用基于工序的三维编码规则编码。

步骤2:选择当前最优解:按照改进布谷鸟搜索算法选择当前最优解。

步骤3:判断当前最优解是否满足试装条件,若满足,则执行试装操作;否则转步骤4。

步骤4:判断当前所选工件(当前最优解)即将执行的工序是否满足资源充足的条件,若满足,转步骤5,否则转步骤2。

步骤5:确定最优解,输出最优解,执行加工操作。

步骤6:循环,直到满足终止条件。

本发明的有益效果是:

1、考虑了作业车间调度问题如何调度才能够使资源合理利用。

2、提出了一种方法解决了某些作业在加工过程存在加工到一定程度需要试装,只有试装通过才可进行下一步的加工的调度问题。

3、提出一种方法解决了试装拆分的复杂过程存在的难题。

附图说明

图1表示该排产算法流程图

图2表示改进的布谷鸟搜索算法流程图

图3表示生产过程中的试装过程图

具体实施方式

该发明提出的排产算法解决了实际生产过程中以下几个问题:

(1)资源是否充足,这些资源的考虑包括工件原材料、加工工件所需设备、加工工具所需工具、场地、工人等。

(2)资源的调度存在冲突。

(3)工件加工过程中存在加工到一定程度要试装,只有试装通过才可进行下一步的加工。

(4)若干个小工件试装成一个比较大的工件,这个大工件才进行它的工序加工,当加工到一定程度(没有完成它的所有工序),需要把它拆开,它的小零部件工件继续回去加工该工件还没加工的工序,待达到一定条件以后,又组装工件,然后继续加工该工件所需后续工序。依次道理循环操作,直到满足终止条件的问题,此类问题结合图3表述如下:

工件3由工件1和工件2组装而成,工件1有5个工序需要加工,工件2有9个工序需要加工。首先加工工件1到第5个工序,加工工件2到第4个工序,把工件1和工件2组装起来(此过程在机械生产过程中称为试装)得到工件3;然后加工工件3到第2个工序,拆分工件3;接下来加工工件1的第6,第7个工序,加工工件2的第5,第6,第7个工序,完成了以后,又把工件1和工件2组装起来得到工件3;然后加工工件3的第3,第4,第5道工序,完成了以后,拆分;工件1所有工序已经完成,这时加工工件2的第8,第9道工序,完成了以后,把工件1和工件组装起来得到工件3。这时整个加工过程完成。

本发明解决上述问题,采用一种解决作业车间调度问题的排产算法,结合图1到图3,算法具体实施过程如下所述:

步骤1:首先确定编码规则。在求解jsp问题是采用基于工序的编码规则,即染色体由w×n×m个基因组成,他们表示一个工序的排列,在这个工序排列中每个工件号最多出现m次,其染色体是由一个二维空间点(x,y)表示,即第x个订单的第y个工件。例如,3×4×3(订单(或阶数)×工件×机器)的实例,染色体序列为(1,1)(1,2)(2,1)(1,1)(3,1)(3,1)(3,3)(3,2)(1,2)(1,2)(1,1)(1,4)。那么,它对应的工件加工序列为:

(J1,1,1,J1,2,1,J2,1,1,J1,1,2,J3,1,1,J3,1,2,J3,3,1,J3,2,1,J1,2,1,J1,2,2,J1,1,3,J1,4,1,)

其中,Jti,j表示第t个订单的第i个工件的第j道工序,j表示工件i出现的次数。因此,上面例子的染色体序列表达的意思是先加工顺序为:第1个订单的第1个工件的第1道工序,加工第1个订单第2个工件的第1道工序,在加工第2个订单第1个工件的第1道工序,加工第1个订单第1个工件的第2道工序,以此类推,最后加工第1个订单第4个工件的第1道工序。因此在解码时就可以按照工件的出现顺序转化为一个调度方案。

步骤2:选择当前最优解:按照改进布谷鸟搜索算法选择当前最优解。

步骤3:判断当前最优解是否满足试装条件,若满足,则执行试装操作;否则转步骤4。

步骤4:判断当前所选工件(当前最优解)即将执行的工序是否满足资源充足的条件,若满足,转步骤5,否则转步骤2。

步骤5:确定最优解,输出最优解,执行加工操作。

步骤6:循环,直到满足终止条件。

一、所述步骤4工件所需资源是否充足的判定规则如下:

设置资源库存池:

判定规则:

If(库存池存在所需设备&&库存该设备数量>=所需该设备数量&&库存池存在所需工具&&库存该工具数量>=所需该工具数量&&库存池存在所需工种工人&&库存该工人数量>=所需该工人数量)满足资源充足条件;

Else不满足资源充足条件。

二、所述步骤2改进的布谷鸟搜索算法如下:

步骤2.1:初始化算法基本参数:设置鸟窝个数(工件数量)n,宿主发现外来鸟蛋的概率Pa(作业抢占概率),以及最大迭代次数MaxT或搜索精度ε。

步骤2.2:初始化鸟窝位置(工件加工完成时间):根据加工时间长短呈上升趋势排列。

步骤2.3:计算目标函数值:按照编码规则将鸟窝位置(完成时间)转换为工序排列,计算各鸟窝位置对应的目标函数值,并获得当前最优鸟窝位置。具体实现为:

目标函数:

f(C)=min max1≤o≤w{max1≤k≤m{max1≤i≤nCoik}} (1)

约束条件:

Coik-poik+M(1-aoihk)≥Coih

(o=1,2,…,w;i=1,2,…,n;h,k=1,2,…,m) (2)

Cojk-Coik+M(1-xoijk)≥poik

(i,j=1,2,…,n;o=1,2,…,w;k=1,2,…,m) (3)

Coik≥0(o=1,2,…,w;i=1,2,…,n;k=1,2,…,m) (4)

xoijk=0或1(i,j=1,2,…,n;o=1,2,…,w;k=1,2,…,m) (5)

其中,式(1)表示目标函数,即完成时间(Makespan);式(2)表示工艺约束条件决定的每个工件的操作的先后顺序;式(3)表示加工每个工件的每台机器的先后顺序;式(4)表示完工时间变量约束条件;式(5)表示变量可能的取值大小。上述公式中所涉及的符号定义含义如下:Coik和poik分别为第o个订单(或阶数)中的第i个工件在机器k上的完成时间点和加工时间长度;M是一个足够大的整数;aoihk和xoijk分别为指示系数和指示变量,其含义为:

步骤2.4:更新鸟窝位置:开始迭代,保留上代最优鸟窝位置不变,更新鸟窝位置(即全局搜索),从而随机产生下一代鸟窝,并评估位置更新后每个鸟窝的目标函数值,记录当前最优鸟窝位置。具体实施方案如下数学公式所示:

其中,表示第i只布谷鸟在第t代的鸟窝位置(在车间调度问题中用Coik表示),α是步长大小参数,一般取α=0.1。参数S是随机游动的步长,计算公式如下:

S=u+α·σ (9)

其中,

在局部搜索时对每一鸟窝位置按条件进行更新:用一个随机数Ra作为鸟窝主人发现外来鸟蛋的概率并与Pa进行比较,若Ra>Pa,则随机改变鸟窝位置,否则保持原来位置不变,并计算位置移动后每个鸟窝的目标函数值,记录当前最优鸟窝位置。用如下0-1规划模型表示:

步骤2.5:更新最优函数值:比较本次迭代和上一次迭代鸟窝位置的最优值,如果新的最优值小于原最优值,则把新的最优值赋予当前最优鸟窝位置的目标函数值。

步骤2.6:当到达最大搜索次数或满足搜索精度时转入步骤7,否则,转3进行下一次搜索。

步骤2.7:输出最优调度值和对应的调度方案(染色体序列)。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1