一种解决作业车间工艺瓶颈问题的算法的制作方法

文档序号:11063764阅读:616来源:国知局
一种解决作业车间工艺瓶颈问题的算法的制造方法与工艺

本发明涉及调度领域,具体地涉及用算法解决作业车间工艺瓶颈问题。



背景技术:

在企业的整个经营过程中,总有某一个环节制约着企业的产销率,我们将其称为“瓶颈”。企业的目标就是在现在或将来赚取更多的利润,所以要不断的进行改进和突破,让瓶颈不再成为企业增收的障碍。但是在改进的过程中,日的瓶颈消失了,新的瓶颈又将产生。所以对企业来说,对瓶颈的改造和突破是一个循环往复、持续改进的过程。

通过对以上定义的分析,可以发现,判别某资源是否为瓶颈资源时,有以下六种典型情况:

1、部分生产资源的生产能力低于市场需求。

2、所有生产资源的生产能力低于市场需求。

3、所有生产资源的生产能力均高于市场需求。

4、添加新的生产资源或改进工艺时,对瓶颈资源产生的影响。

5、通过外包加工提高生产能力时,对瓶颈资源产生的影响。

6、通过营销等措施使市场需求提高时,对瓶颈资源产生的影响。

约束理论认为应该平衡系统中的物流,而不是平衡系统中的能力,那些占极少数的瓶颈资源是控制物流的关键,决定了占大多数的非瓶颈资源的利用程度,同时决定了系统的有效产出。因此,理论的工具、原则就成为瓶颈资源识别的关键技术之一。本章主要研究瓶颈资源的识别方法,以便科学合理、快速有效地识别出系统中的瓶颈资源。瓶颈资源限制了整个系统的有效产出,是系统能力最薄弱的地方。

帝国主义算法(ICA)也称为殖民地竞争算法,是Atashaz_Gargari和Lucas于2007年提出的一种基于帝国主义殖民竞争机制的进化算法,属于社会启发的随机优化搜索方法。ICA算法根据帝国主义的社会政策来控制更多的国家,在殖民地国家受到一些规律支配时使用它们的资源,如果一个帝国失去强大的势力,其他国家将占有它。帝国主义竞争算法的基本思想是:同其他进化算法相似,帝国主义竞争算法开始于一组被定义为国家的个体,所有国家被分为两类:帝国主义国家和殖民地国家。将最初势力比较强大的国家作为帝国主义国家,其他国家作为殖民地国家。根据每个国家的势力将殖民地分配给不同的帝国主义国家。帝国主义国家与其所包含的殖民地被称为一个帝国。帝国之间通过竞争以获得更多的殖民地为目的,势力更大的帝国有较大的可能性战友最弱的殖民地,智力薄弱的帝国将逐渐失去其殖民地,当所有殖民地全部被一个帝国占有时,该算法结束。

帝国主义竞争算法具有简单、较快的收敛速度和全局最优搜索等优点,但是也同其他智能优化算法一样,在作业车间调度问题中,帝国主义竞争算法也存在着过早收敛、精确度不够等缺点。

K_means算法在大量数据处理中有着非常广泛的应用,它的主要思想是通过迭代过程把数据集划分为不同的类别,使得评价聚类性能的准则函数达到最优,从而使生成的每个聚类内紧凑,类间独立。



技术实现要素:

针对现有技术的上述不足,本发明要解决的技术问题是提供一种解决作业车间工艺瓶颈问题的算。

本发明的目的是克服现有技术中存在的问题:作业车间产能供不应求,存在工艺瓶颈问题;帝国主义竞争算法容易收敛;帝国主义竞争算法求解精确度不够高;帝国主义算法在车间调度问题中的应用不够灵活。

本发明为实现上述目的所采用的技术方案是:一种解决作业车间工艺瓶颈问题的算法。该算法的步骤如下:

步骤1:识别瓶颈:瓶颈的识别方法如下:

步骤1.1:根据TOC原理确定瓶颈资源。

步骤1.2:当需求超过能力时,排队最长的机器就是瓶颈。

步骤2:优化瓶颈:利用改进的帝国主义竞争算法优化车间瓶颈工艺加工的调度。具体流程如下:

步骤2.1:初始化社会国家数量Npop

步骤2.2:利用改进的K_means算法对这些社会国家进行聚类,分出不同性质的国家群体。具体的,分出帝国主义国家,殖民地国家。具体方法如下:

1、初始化数据集。初始化采购商数据集国家数量集。

2、选择初始解。随机产生一组中心解(一个帝国主义国家,一个殖民地国家)。

3、聚类。把势力相当的国家聚为一类。具体为:

(1)计算所有国家与中心国家的相异度。

(2)如果相异度ρi≤ε,则第i个国家就聚到相应的c中心一类中。

步骤2.3利用帝国主义竞争算法在不同类中进行调度。具体如下:

(1)初始化帝国主义竞争算法参数:初始化国家数量Npop、帝国主义国家Nimp、殖民地国家Ncol

(2)计算帝国的相对势力:用机器处理作业能力Cn来刻画。

(3)计算帝国主义国家的势力。

(4)初始化帝国主义集团:根据帝国的势力将不同数量的殖民地国家分配给帝国主义国家,帝国国家势力越大,该帝国所拥有的殖民地国家就越多。帝国和它所拥有的殖民地组成一个帝国集团。

(5)计算帝国集团的总势力:一个帝国集团的总势力包括两部分,一部分为帝国主义国家的势力,另一部分为它所拥有的殖民地国家的势力,在这两部分中,帝国主义国家的势力对势力有更大的影响。

(6)殖民地向所属帝国移动:当帝国集团形成后,每个帝国集团中的帝国主义国家试图增加其殖民地的数量,在ICA算法中,殖民地国家沿着指向其所属帝国的方向靠近帝国。

(7)帝国集团的竞争:帝国主义的竞争过程发生在帝国集团之间,因为每一个帝国集团都试图占有其他帝国的殖民地并且控制他们。通过竞争使得强大的帝国集团更加强大,弱小的帝国集团更加弱小。

(8)殖民地国家的灭亡:在帝国的侵犯过程中,存在殖民地国家灭亡。

(9)新殖民地国家的产生:在社会进化过程中,会有新的殖民地产生。

(10)弱势帝国的灭亡:在帝国竞争中,失去势力的帝国集团将会灭亡,而且它所拥有的殖民地将被其他帝国集团所瓜分。。

(11)新帝国的产生:在帝国竞争中,会有新的帝国产生。

(12)计算帝国存活率:用机器利用率ρ来刻画。

(13)最后,保留最终剩余的帝国,即当前即将进行操作的工件。

本发明的有益效果是:

1、通过识别瓶颈,对瓶颈有正对性地优化瓶颈工艺的作业调度,避免了很多不必要的优化程序,加快了算法的执行速度,同时,也提高了算法解的精确度。

2、利用改进的帝国主义竞争算法优化车间瓶颈工艺加工的调度,简单有效。

3、利用改进的K_means算法对这些社会国家进行聚类,优化了帝国主义竞争算法,加快了帝国主义竞争算法的计算速度,对于解的精度也有提高。

4、直接把所有国家分为两类,有正对性第进行加工调度,提高了车间调度的效率,提高了车间生产的产能。

5、利用计算所有国家与中心国家的相异度。作业车间工件工序的执行时间刻画两道工序的相异度,简单有效,有效提高实际调度速度。

6、帝国的相对势力直接用机器处理作业能力来刻画,减少算法计算复杂度。

7、直接定义机器为帝国、作业为殖民地,避免了随机产生初始解带来的不确定性,减少算法运行时间。

8、利用作业运行时间来计算帝国主义国家的势力大小,简单、实际、靠谱。

9、利用机器作业能力来作为帝国国家殖民地分配的准则,简单直观、解的精确度高。

10、建立服从正态分布的殖民地位置变动参数,解决传统算法易于收敛的问题。

11、对殖民地国家灭亡的定义符合实际,简单直观。

12、对于帝国消亡的定义符合实际,简单直观。

13、结合社会进化过程以及实际应用实例具体情况,设计算法中有新殖民地产生的情况,切合实际,简单直观,计算精度高。

14、结合社会进化过程以及实际应用实例具体情况,设计算法中有新帝国产生的情况,切合实际,简单直观,计算精度高。

15、算法以帝国存活率来刻画机器利用率,简单易懂。

附图说明

图1一种解决作业车间工艺瓶颈问题的算法流程图

图2改进的帝国主义竞争算法流程图

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合算法流程图进行详细、具体说明。

一、瓶颈的数学描述

对于系统中的n种资源X={X1,X2,...,Xn},实际产出能力C={C1,C2,...,Cn},系统的外部需求量MR={MR1,MR2,...,MRn}。某些资源之间存在护卫输入输出的关联关系R。假设与资源Xi相关联的资源的标号的集合为S,即

那么,当且仅当时,资源Xi为瓶颈资源,产出能力Ci,外部需求量MRi

二、一种解决车间调度工艺瓶颈问题的算法

步骤1:识别瓶颈:瓶颈的识别方法如下:

步骤1.1:根据TOC原理,建立以下模型:且时,资源Xi为瓶颈资源。

步骤1.2:当需求超过能力时,排队最长的机器就是瓶颈。

步骤2:优化瓶颈:利用改进的帝国主义竞争算法优化车间瓶颈工艺加工的调度。具体流程如下:

步骤2.1:初始化社会国家数量Npop

步骤2.2:利用改进的K_means算法对这些社会国家进行聚类,分出不同性质的国家群体。具体的,分出帝国主义国家,殖民地国家。具体方法如下:

1.初始化数据集。初始化采购商数据集国家数量集

属性(国家种类)数据集P。P={Pj|i=1,2,...,k},这里k=2。

2.选择初始解。随机产生一组中心解(一个帝国主义国家,一个殖民地国家)。

3.聚类。把势力相当的国家聚为一类。具体为:

(1)计算所有国家与中心国家的相异度。相异度用势力刻画,在这里用作业车间工件工序的执行时间刻画。第n个帝国主义国家的势力大小定义为:

式中,ti为第i项作业的在第n台机器的运行时间,即代价值。

相异度:

ρi=Pi-Pc

其中,Pi为任意国家的势力,Pc为中心国家的势力。

(2)如果ρi≤ε,则,第i个国家就聚到相应的c中心一类中。

步骤2.3:利用帝国主义竞争算法在不同类中进行调度。具体如下:

(1)初始化帝国主义竞争算法参数:初始化国家数量Npop、帝国主义国家Nimp、殖民地国家Ncol。其中,帝国主义国家用机器来表示,殖民地国家用作业来表示。

Npop=Nimp+Ncol

(2)计算帝国的相对势力:用机器处理作业能力Cn来刻画。

其中,Ncn表示所有有可能等待某台机器Mn处理的作业数量,Mcn表示可以处理这Ncn个作业的机器数量。

(3)计算帝国主义国家的势力:第n个帝国主义国家的势力大小定义为:

式中,ti为第i项作业的在第n台机器的运行时间,即代价值。

(4)初始化帝国主义集团:根据帝国的势力将不同数量的殖民地国家分配给帝国主义国家,帝国国家势力越大,该帝国所拥有的殖民地国家就越多。帝国和它所拥有的殖民地组成一个帝国集团。在车间调度问题中,帝国所拥有的殖民地等于该机器实际处理的作业数。因此,殖民地分配方法按式:

式中,N.Cn代表第n个帝国所拥有的殖民地。

(5)计算帝国集团的总势力:一个帝国集团的总势力包括两部分,一部分为帝国主义国家的势力,另一部分为它所拥有的殖民地国家的势力,在这两部分中,帝国主义国家的势力对势力有更大的影响。因此,一个帝国的总势力计算方式如下:

式中,T.Cn为第n个帝国集团的总代价函数值,ti为帝国集团的殖民地的代价函数值,0<μ<1,是个实数,一般情况下取μ∈[0.1,0.5]。

(6)殖民地向所属帝国移动:当帝国集团形成后,每个帝国集团中的帝国主义国家试图增加其殖民地的数量,在ICA算法中,殖民地国家沿着指向其所属帝国的方向靠近帝国。在该过程中,部分国家会产生革命,即殖民地随机的发生位置上的改变。殖民地向其所属帝国靠近方式如下:

为了使殖民地从各个方向向其所属帝国移动,增强帝国到达全局最优的收敛性,设立两个服从于正态分布的随机参数x,θ:

x~N(d,ρ)

θ~N(0,γ)

式中,d是殖民地与帝国之间的距离,β是一个大于1的数,β>1会使殖民地国家从四面八方向其所属帝国移动,γ一般取π/4。

(7)帝国集团的竞争:帝国主义的竞争过程发生在帝国集团之间,因为每一个帝国集团都试图占有其他帝国的殖民地并且控制他们。通过竞争使得强大的帝国集团更加强大,弱小的帝国集团更加弱小。在ICA算法中,最弱帝国集团中的最弱一个殖民地国家将被其他帝国集团通过竞争去占有。每一个帝国集团都有可能占有最弱的国家。这种可能性的大小由下式定义得到:

式中,N.T.Cn为第n个帝国集团的相对代价函数值,定义如下:

向量P:

向量R是与向量P相同规格的向量:

向量D有以下的到:

D=P-R

在向量D中最大的元素所对应的帝国集团将会占有上述最弱的殖民地国家。

(8)殖民地国家的灭亡:在帝国的侵犯过程中,存在殖民地国家灭亡。

在车间调度问题中,殖民地灭亡即表示订单处理完毕。此时,殖民地数目会减少。

k为消亡的殖民地数量,e为社会进化第e次。

(9)新殖民地国家的产生:在社会进化过程中,会有新的殖民地产生。

在车间调度问题中,新殖民地的产生极为订单的增加。此时,殖民地数目会增加。

h为增加的殖民地数量,e为社会进化第e次。

(10)弱势帝国的灭亡:在帝国竞争中,失去势力的帝国集团将会灭亡,而且它所拥有的殖民地将被其他帝国集团所瓜分。在车间调度问题中,机器故障、机器完工都可用帝国的灭亡来表示,帝国灭亡,则帝国数目减少。

l为减少的帝国数量,e为社会进化第e次。

(11)新帝国的产生:在帝国竞争中,会有新的帝国产生。在车间调度问题中,增加新机器即为新帝国的产生。

g为新增的帝国数量,e为社会进化第e次。

(12)计算帝国存活率:用机器利用率ρ来刻画,如下定义:

e为社会进化第e次。

(13)最后,保留最终剩余的帝国,即当前即将进行操作的工件。

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