针对作业车间生产问题的排产算法的制作方法

文档序号:11063797阅读:1107来源:国知局
针对作业车间生产问题的排产算法的制造方法与工艺

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



背景技术:

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

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

现有的很多算法被提出,用来解决作业车间调度问题,但仅仅是解决最底层的作业车间调度问题,没有考虑到实际生产过程中存在的紧急订单处理情况,且关于解决工件空位放置(工件库存)问题的排产算法仍有待优化。



技术实现要素:

针对现有技术存在的上述不足,本发明要解决的技术问题是提供一种新的基于布谷鸟搜索的排产算法,以解决紧急订单处理问题以及优化算法性能使得更加适用于车间实际生产环境。

本发明所采用的技术方案是:针对作业车间生产问题的排产算法,该算法的步骤如下:

步骤1:编码:采用基于工序的编码规则编码;

步骤2:设置工件优先级阶数La;

步骤3:设置工件优先级序列P(哪个工件属于哪个优先级);

步骤4:若某一优先级的工件数量不为空,则执行同级排产算法,否则优先级+1;其改进的同级排产算法步骤如下:

步骤4.1选择最初最优解:按照改进布谷鸟搜索算法选择最初最优解;

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

步骤4.3是否有空间放置该工件,是转步骤4.4,否则转步骤4.1;

步骤4.4判断当前所选工件(当前最优解)即将执行的工序是否满足资源充足的条件,若满足,转步骤4.5,否则转步骤4.1;

步骤4.5确定最优解,输出最优解,执行加工操作;

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

本发明的有益效果是:

1、不仅解决了资源合理利用调度问题,还考虑了订单周期的约束条件,使算法解更加精确、具有实用性。

2、解决了实际生产过程中存在的库存问题,通过利用工件的平均体积来计算和衡量当前库存容量,比较实用,实时性好,简单高效。

3、确定了布谷鸟算法中外来鸟蛋被发现的概率的计算方式,精确高效,使算法更加适用于实际生产环境中。

4、突破了布谷鸟算法的三个假设条件之一:鸟窝数量不变。本发明考虑了鸟窝数量增加的情况,设置了紧急订单插入的处理方式。

附图说明

图1本算法的详细流程图

图2改进的同级排产算法流程图

图3一种改进布谷鸟搜索算法的基本流程图

图4表示试装过程实施例

图5表示复杂的工件组合问题实施例

具体实施方式

以下结合附图1到5,对本发明详细描述。

一、所述实际生产过程中试装过程结合图4实施例,描述如下:若干个小工价试装成一个比较大的工价,这个大工件才进行它的工序加工,当加工到一定程度(没有完成它的所有工序),需要把它拆开,它的小零部件工件继续回去加工该工价还没加工的工序,待达到一定条件以后,又组装工价,然后继续加工该工件所需后续工序。依次道理循环操作,直到满足终止条件。其实施例结合图4如下:工件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。这时整个加工过程完成。

二、所述复杂的工件组合问题结合图5实施例,描述如下:实际生产过程中,存在多个部件组合而成新的部件,这个新的部件1又可能还会跟其他工件组合成新的部件2,新的部件2又可能需要加工,再跟新的部件3组装成一个工件,如此循环。

三、所述步骤1的具体描述如下:采用基于工序的编码规则编码,即染色体由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,1,1,J3,2,1,J1,2,1,J1,2,2,J1,1,3,J1,4,1)

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

四、所述步骤4.2试装操作的执行如下:

执行试装,如果试装成功,需要返回加工后续工序,直接返回到需要加工的后续加工工序点;如果试装不成功,则由人工判断,返回需要加工的工序点进行加工。如果试装成功组合而成的工件需要跟其他工件试装,就试装,直到满足拆分条件再拆分进行后续加工。

五、所述步骤4.3是否有空间放置工件的判断方法为:

假设条件:假设每个订单没有延期取货的情况。

具体步骤:

步骤4.3.1:初始化成品库存容量C。

步骤4.3.2:计算工件平均体积:

步骤4.3.3:设置满库存警报条件:如果满足下式,则发出满库存警报:(f+k)·Vave≥C,其中,f是已完成的工件数量,k是一个定值,这里取k=1。

六、所述步骤4.4判断出工件所需资源是否充足的判定规则如下:设置资源库存池:

判定规则:

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

Else不满足资源充足条件。

七、所述步骤4.1改进的布谷鸟搜索算法:

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

其中,n为第L优先级的鸟巢(工件)数量;

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

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

目标函数:

f(T)=min max1≤o≤w{max1≤k≤m{max1≤i≤nToik}} (1)

约束条件:

Toik-poik+M(1-aoihk)≥Toih

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

Tojk-Toik+M(1-xoijk)≥poik

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

Toik≥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)

maxi{Toi}≤To (6)

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

式(6)表示第o个订单的所有工件最大完成时间小于订单周期To的时间约束。

步骤4.1.4:更新鸟窝位置:

(1)一种情况:如果没有新的鸟窝出现(鸟窝数量没有增加(没有新的订单的出现)):开始迭代,保留上代最优鸟窝位置不变,更新鸟窝位置(即全局搜索),从而随机产生下一代鸟窝,并评估位置更新后每个鸟窝的目标函数值,记录当前最优鸟窝位置。具体实施方案如下数学公式所示:

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

S=u+α·σ (10)

其中,

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

(2)另一种情况:如果有新的鸟窝出现(有新的订单出现),鸟窝数量增加,即:N+H,H为新增的鸟窝数量,同时,判断是否为紧急订单:如果是,做紧急订单处理操作,把该订单的工件设置为所需加工的工序的优先级;如果不是紧急订单,则不做紧急处理。

其紧急订单处理操作如下:计算紧急系数,紧急系数越大的订单紧急程度越大,越需要得到优先处理,紧急系数的计算如下:

其中,max{Topre}为订单o的估计完成时间,这里通过人工经验估计得到,To为订单o的交货周期。

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

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

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

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