一种改进的帝国主义竞争算法求解作业车间调度问题的制作方法

文档序号:11063902阅读:569来源:国知局
一种改进的帝国主义竞争算法求解作业车间调度问题的制造方法与工艺

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



背景技术:

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

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



技术实现要素:

针对现有帝国主义竞争算法中存在的上述不足,本发明要解决的技术问题是提供一种改进的帝国主义竞争算法解决作业车间的调度问题。

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

本发明为实现上述目的所采用的技术方案是:一种改进的帝国主义竞争算法求解作业车间调度问题,该算法的步骤如下:

步骤1:初始化帝国主义竞争算法参数:初始化国家数量、帝国主义国家、殖民地国家;

步骤2:计算帝国的相对势力:用机器处理作业能力来刻画;

步骤3:初始化帝国主义集团:根据帝国的势力将不同数量的殖民地国家分配给帝国主义国家;

步骤4:计算帝国集团的总势力:一个帝国集团的总势力包括两部分,一部分为帝国主义国家的势力,另一部分为它所拥有的殖民地国家的势力;

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

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

步骤7:殖民地国家的灭亡:在帝国的侵犯过程中,存在殖民地国家灭亡;

步骤8:新殖民地国家的产生:在社会进化过程中,会有新的殖民地产生;

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

步骤10:新帝国的产生:在帝国竞争中,会有新的帝国产生;

步骤11:计算帝国存活率:用机器利用率ρ来刻画;

步骤12:最后,保留最终剩余的帝国,将适应度值作为最优解;

本发明的有益效果是:

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

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

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

4、将帝国主义竞争算法中殖民地向帝国主义靠近的运动转化为帝国主义国家向殖民地国家移动的视角,更加贴切实际情况,同时,利用殖民地与帝国之间的距离来刻画代价函数,简单实用,具体高效。

5、帝国向殖民地靠近的方式用鸟类飞行的Mantegna算法执行莱维飞行来模拟,适当减缓了算法的收敛速度。

6、设定了一个帝国侵占殖民地的概率,用0-1规划来做随机选择,使算法更加灵活,计算结果更加精确。

附图说明

本发明的基本流程图

具体实施方式

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

一、帝国主义竞争算法描述

在帝国主义竞争算法中,每一个国家都是由一个实数数组或向量来表示。

对于一个Nvar维优化问题,该数组定义如下:

一个国家的势力大小需要通过计算一定的目标函数来得到,变量为即为

二、具体实施步骤

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

Npop=Nimp+Ncol

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

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

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

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

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

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

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

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

步骤5:殖民地向所属帝国移动:当帝国集团形成后,每个帝国集团中的帝国主义国家试图增加其殖民地的数量,在ICA算法中,殖民地国家沿着指向其所属帝国的方向靠近帝国,在该过程中,部分国家会产生革命,即殖民地随机的发生位置上的改变,本发明将殖民地向帝国移动转化为帝国向殖民地靠近的视角,把帝国向殖民地靠近的方式用鸟类飞行的Mantegna算法执行莱维飞行来模拟,具体实现方式如下:

随机移动步长(代价ti)S计算公式如下:

其中,β是一个[1,2]之间的参数,此处取β=1.5,u和v服从正态分布,如下所示:

其中,

在局部搜索时,对每一殖民地位置按条件进行更新:用一个随机数Ra与帝国侵占殖民地的概率Pa做比较,若Ra>Pa,则随机改变殖民地位置,否则保持原来位置不变,并计算位置移动后每个殖民地的代价函数值,记录当前最优殖民地位置,用如下0-1规划模型表示:

其中,

k为有距离为ti的殖民地数量;

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

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

向量P:

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

向量D有以下的到:

D=P-R

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

步骤7:殖民地国家的灭亡:在帝国的侵犯过程中,存在殖民地国家灭亡,

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

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

步骤8:新殖民地国家的产生:在社会进化过程中,会有新的殖民地产生;

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

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

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

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

步骤10:新帝国的产生:在帝国竞争中,会有新的帝国产生,在车间调度问题中,增加新机器即为新帝国的产生:

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

步骤11:计算帝国存活率:用机器利用率ρ来刻画,如下定义:

e为社会进化第e次;

步骤12:最后,保留最终剩余的帝国,将适应度值作为最优解。

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