一种解决车间生产问题的改进排产算法的制作方法

文档序号:11063180阅读:467来源:国知局
一种解决车间生产问题的改进排产算法的制造方法与工艺

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



背景技术:

作业车间调度问题(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、给出了复杂的工件试装的解决办法,高效实用。

附图说明

图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,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道工序。因此在解码时就可以按照工件的出现顺序转化为一个调度方案。

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

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

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

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

具体步骤:

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

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

步骤4.3.3:每排出一个工件,调出它的体积Vi

步骤4.3.4:设置满库存警报条件:如果满足下式,则发出库存已满

警报:其中k是目前库存工件的数量。

四、所述步骤4.4判断出工件所需资源是否充足的判定规则如下:

设置资源库存池:

判定规则:

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

Else不满足资源充足条件。

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

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

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

步骤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)

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

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

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

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

S=u+α·σ

(10)

其中,

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

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

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

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

上述本发明的实施例只是为了解释本发明内容,并不限定本发明的保护范围,其保护范围由权利要求书的内容确定。

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