一种基于生物启发的改进型粒子群优化算法的制作方法

文档序号:12471482阅读:286来源:国知局

本发明涉及一种基于生物启发的改进型粒子群优化算法,属于计算机应用技术领域。



背景技术:

流水车间调度是一个无等待的车间调度问题。在生产实践的环节中,每一个工作序列包含若干个工作,每一个工作包含若干个工序。每个工作在不同的机器上完成,在同一台机器上,不同的工作的完成顺序相同,在同一台机器上一个工序完成后无等待的进行下一个工序。流水车间调度中所有工作的最长完工时间的最小化,可以促使总生产运营的最小化、稳定的资源利用、快速的作业周转和在制品库存的最小化。

流水车间调度问题是制造系统中重要的规划问题,是一类典型的NP-Hard组合优化难题。当前比较常用的流水车间调度问题的求解方法主要分为精确方法、构造启发式方法和基于计算智能的元启发式算法三种类型。由于问题本身是NP困难的,因此,精确方法受计算量和存储量过大的影响,仅适合于小规模问题的求解。而构造启发式方法虽然可以在比较短的时间内获得调度问题的解,但该类方法在构造调度的过程中过于依赖根据问题局部信息设计的调度规则,除了基于领域搜索的启发式算法求的解性能较好以外,通常所获得的解的质量和算法通用性均较差。近几年,人工智能技术快速发展,基于计算智能的元启发式算法,特别是基于混合策略的算法,通常能够在可行时间内以较大的概率获得流水车间调度问题的最优解或最优近似解,成为各种流水车间调度问题最常用的算法。

粒子群优化(PSO)算法的研究是目前计算智能领域的热点课题,最早是由Kennedy和Eberhart受鸟群捕食行为的启发而提出的一种基于群体智能方法的优化技术。与遗传算法(GA)比较,PSO保留了基于种群的全局搜索策略,通过种群内粒子之间的合作与竞争来产生群体智能指导优化搜索,其优化机理清晰易懂,步骤简单,计算费用较低,因此受到学者们的关注。但是PSO在解决流水车间调度问题上,仍然存在缺陷。首先,PSO在运行初期收敛速度比较快,但在运行后期容易因缺乏拓展能力而陷入局部最优。其次,PSO虽然具有比较好的全局搜索能力,但是在搜索的过程中没有充分利用种群中获得的关于流水车间调度问题解空间的知识来指导粒子位置的更新,因此局部搜索能力较差。基于以上缺点,学者们提出了混合算法以改进该算法的缺陷。

混合算法可以看作是进化算法和局部搜索算子结合而形成的优化工具,其兼具进化算法和局部搜索算子的优点,更具有有效性。Zhou chi等人最早提出基于信息共享机制的新型粒子群调度算法,该算法主要通过记忆库的信息共享机制将邻域知识引入PSO调度算法的局部收索模块,用于指导算法的邻域搜索,加快了算法收敛速度。但是因为种群的个体数目较小,且PSO进化速度快,同时只使用一种局部搜索算子,大大降低了种群的多样性,最终无法避免算法陷入局部最优。期刊Expert Systems with Applications提出基于模拟退火和多类型个体的混合粒子群算法求解作业车间调度问题,该方法同样面临局部搜索能力较差,算法早熟,最终不能得到最优的调度方案。



技术实现要素:

本发明所要解决的技术问题是克服现有技术的缺陷,提供一种基于生物启发的改进型粒子群优化算法,首先考虑到粒子群算法中个体最优解和全局最优解对单个粒子的飞行起着重要的“导航”作用,在初始值中对个体最优初始值的生成方式进行了改进;其次,设计激素调节因子,改进粒子飞行方程,加强粒子之间的信息共享,使得每个粒子的飞行速度由其本身的飞行经验和群体的飞行经验进行动态调整。

为解决上述技术问题,本发明提供一种基于生物启发的改进型粒子群优化算法,包括以下步骤:

(1)定义解空间;

(2)定义适应度函数;

(3)根据生物调节机制,设计激素调节因子AF,改进粒子群算法中的粒子飞行公式;

(4)粒子在解空间中飞行,寻找最优解;

(5)设定最大循环数以及最小偏差要求,如果停止条件满足,则输出全局最优解;否则,返回步骤(3)继续寻找最优解。

前述的步骤(1)中定义解空间是指针对所需求解的问题,确定需要优化的变量并赋予其搜索最优解的范围;在n维优化问题中每一维都要求根据具体问题确定其取值范围和每一代粒子种群数量。

前述的定义粒子的当前位置用于代表所需求解的问题的一个可行解。

前述的步骤(2)中,定义适应度函数是指确定一个能够准确反映出解空间中解的优劣程度的函数,将其确定为算法的适应度函数。

前述的适用度函数可直接采用优化问题的目标函数。

前述的步骤(3)包括以下步骤:

(3-1)粒子编码,采用问题解与粒子维度位置一一对应的二维编码表示方法进行粒子编码;

(3-2)参数初始化,在初始位置时,用基于贪婪随机自适应搜索算法将随机的个体初始解转换出个体最优解初始值;每个粒子在运动初期的第一个位置,就是该粒子的个体最优位置,而全局最优位置就是这些个体最优位置中最好的一个;

(3-3)设计激素调节因子AF,改进粒子速度的更新公式如下:

Xi(K+1)=Xi(K)+Vi(K+1)+AF (1)

其中,Xi(K+1)表示第K+1代粒子群中第i个粒子的位置,Xi(K)表示第K代粒子群中第i个粒子的位置,Vi(K+1)表示第K+1代粒子群中第i个粒子的速度。

前述的激素调节因子AF由体现粒子个体性能的函数Ai和体现粒子局部特性的函数Al构成,

AF=Ai*Al (2)

其中,设计Ai(f(x))为基于最大适应度与平均适用度之间的单调增函数,设计Al(f(x))为基于粒子适应度前后代的单调增函数,f(x)表述第x个粒子的适应度函数。

前述的步骤(4)粒子在解空间中飞行,寻找最优解,过程如下:

(4-1)计算粒子适应度值,确定全局最优适用度值Xgbest,个体最优适用度值Xbest,每一代的平均适应度favg和每一代的最大适应度fmax,并保存历史最大适应度f’max;适应度函数根据粒子在解空间中的坐标,返回赋给当前位置的适应度值,若该适应度值大于此时粒子的个体最优适用度值或全局最优适应度值,则更新粒子的个体最优适用度值或全局最优适应度值,否则不进行更新;

(4-2)根据公式(1)更新粒子速度,粒子速度随着个体和全局最优位置的改变而改变,朝着适应度值更优的方向加速,对于每一个粒子,如果当前解优于个体最优解,则更新个体最优解;对个体最优解的最佳者做局部搜索;更新个体最优解;利用个体最优解更新全局最优解。

本发明所达到的有益效果:

本发明充分利用了需优化问题中的启发式信息,首先使用基于贪婪随机自适应搜索(GRASP)算法对算法初始种群进行了优化;然后,将基于生物体调节机制的激素调节因子应用到其中,通过对粒子个体周边信息的感应,指导算法的局部搜索,避免了粒子大量盲目的更新操作,既保证了算法的全局优化特性,又提高了算法中有效信息的流动效率,加快了算法收敛速度。本发明方法可用于物流、交通、流水线生产等领域,确定每项操作在生产过程的优先顺序,控制生产流程,以减少生产系统完成所有工作序列的时间,提高生产效率。

具体实施方式

下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

本发明基于生物启发的改进型粒子群优化算法,包括以下步骤:

(1)定义解空间;针对所需求解的问题,确定需要优化的变量并赋予其搜索最优解的范围;在n维优化问题中每一维都要求根据具体问题确定其取值范围和每一代粒子种群数量。本发明中粒子的当前位置用于代表所求问题的一个可行解,其每一维的取值范围可根据站的总数来限定。

(2)定义适应度函数;确定一个能够准确反映出解空间中解的优劣程度的函数,将其确定为算法的适应度函数,以用来判断算法的进化方向;算法中具体的适应度函数和解空间由需要求解优化的问题决定。适用度函数可直接采用优化问题的目标函数,而不像遗传算法那样需要进行转换。

(3)根据生物调节机制,设计激素调节因子AF,改进算法中的粒子飞行公式;包括以下步骤:

(3-1)粒子编码,采用粒子群算法求解优化问题时,其关键步骤是在粒子群算法的粒子空间与调度问题的解空间建立一种合理的映射关系,使得粒子群算法的优化结果能够清晰的映射出调度问题的近优(或最优)解。本发明中采用问题解与粒子维度位置一一对应的二维编码表示方法。

(3-2)参数初始化,在初始位置时,用基于GRASP算法将随机的个体初始解转换出个体最优解初始值;每个粒子在运动初期的第一个位置,就是该粒子的个体最优位置,而全局最优位置就是这些个体最优位置中最好的一个。

(3-3)激素调节因子AF的设计,在传统粒子群算法中,粒子新的位置信息是由前一刻的位置、到目前为止的个体最优位置以及当代粒子群的全局最优位置决定的。但是,在粒子群算法模拟鸟群飞行的原理中,单个粒子在运动的过程中,其周围粒子的行为对其行为必定产生一定的影响,单个粒子不应仅感知其它粒子的位置,对于其它粒子的状态也应有所感应,并适当的对自己的位置做出一定调整。因此,受生物体自我调节机制的启发,在原始的更新方程中引入激素调节因子AF,使得算法中的粒子飞行方程能够具有更好的局部搜索特性,以便提高个体最优解的性能,其更新方程为:

Xi(K+1)=Xi(K)+Vi(K+1)+AF (1)

其中,Xi(K+1)表示第K+1代粒子群中第i个粒子的位置,Xi(K)表示第K代粒子群中第i个粒子的位置,Vi(K+1)表示第K+1代粒子群中第i个粒子的速度。

考虑到激素调节因子AF应能够体现两方面因素,即粒子个体性能和粒子局部特性,因此,AF由两部分函数组成,即体现粒子个体性能的函数Ai和体现粒子局部特性的函数Al,如公式(2)所示。

AF=Ai*Al (2)

定义第K代粒子群的最大适应度为fmax,平均适应度为favg,将fmax作为粒子群的全局信息,favg作为粒子群的平均信息,考虑优化问题,记第i个粒子的适应度为fi,其前后的粒子适应度分别为fi-1,fi+1。当fi>favg时,粒子i的个体性能较好,对原始位置的调整应较小,即Ai值应变小;反之,当fi<favg时,粒子i的个体性能较差,对原始位置的应适当调整,即Ai值应变大。当fi>(fi-1+fi+1)/2时,粒子i的局部特性认为较好,自适应调节因子AF的值应较小,即Al值变小;反之,内分泌系统将分泌更多的激素,即AF的值变大,来促进粒子i超越周围粒子,向更合适的位置移动。综上所述,在参考生物内分泌调节机制的基础上,设计Ai(f(x))为基于最大适应度与平均适用度之间的单调增函数,设计Al(f(x))为基于粒子适应度前后代的单调增函数,f(x)表述第x个粒子的适应度函数。

(4)粒子在解空间中的飞行,寻找最优或近优解;包括以下步骤:

(4-1)计算粒子适应度值,确定全局最优适用度值Xgbest,个体最优适用度值Xbest,每一代的平均适应度favg和每一代的最大适应度fmax,并保存历史最大适应度f’max。适应度函数根据粒子在解空间中的坐标,返回赋给当前位置的适应度值,若该适应度值大于此时粒子的个体最优适用度值或全局最优适应度值,则更新粒子的个体最优适用度值或全局最优适应度值,否则不进行更新;

(4-2)更新粒子速度,粒子速度的控制是整个优化的核心,受生物激素调节机制的启发,对粒子速度的更新公式进行了改进,引入了激素调节因子AF,如公式(1),粒子速度随着个体和全局最优位置的改变而改变,朝着适应度值更优的方向加速。对于每一个粒子,如果当前解优于个体最优解,则更新个体最优解;对个体最优解的最佳者做局部搜索;更新个体最优解;利用个体最优解更新全局最优解。这里的当前解指的是粒子所对应的解空间中的问题解。

(5)设定最大循环数以及最小偏差要求,如果停止条件满足,则输出全局最优解;否则,返回步骤(3)继续寻找最优解。

实施例

以流水车间调度问题为例,流水车间调度问题的简化模型,主要研究n个工件在m台机器上的加工顺序。每个加工任务需要经过m道工序,每道工序要求不同的机器,这n个加工任务通过m台机器的顺序相同,它们在每台机器上的加工顺序也相同。加工任务Jj在第i台机器上的加工时间是给定的,记为pi,j(i=1,2,...,m;j=1,2,...,n)。加工顺序为π=(π12,...,πn)时,n个加工任务在m台机器上的置换流水车间调度的完成时间为C(m,n)。Jj指的是代加工的零件种类,比如要加工箱体、曲柄、凸轮,πj则是指某台机器正在加工第几个工件任务。则本问题的求解目标是确定n个加工任务在每台机器上的最优加工顺序π*,使最大流程时间最小。

以最大流程时间最小为目标调度问题可以用数学公式描述为:

所求目标为:

其中,C(k,πj)表示第πj个加工任务在机器k上的加工完成后的时间。指第π1个加工任务在机器1上的加工消耗时间,表示第πj个加工任务在机器k上的加工消耗时间。式(3)~(5)表示工艺约束条件,它决定了各种工件各自操作的先后加工顺序,保证每个工件的加工顺序满足预先的要求;式(6)表示加工各个工件的各机器的先后顺序,保证每台机器一次只能加工一个工件;式(7)表示调度的目标函数,即要求机器加工最大完成时间最小化,也就是本发明所述的适用度函数。

粒子的编/解码。流水车间调度问题主要解决的是所有工件的排序问题,采用基于工件次序和粒子位置的二维编码表示方法,即采用粒子位置的次序来映射调度问题中的工件或者任务次序,以实现对调度问题解的表示。采用基于粒子位置次序的二维粒子编码方法时,第一维i表示粒子的位置向量值,第二维j表示工件的加工次序。粒子的长度为所有加工工件的数量n,如粒子i的位置Xi=[xi,1,xi,2,…,xi,n]蕴含了工件的排列顺序,xi,n表示第i个粒子的数组中第n个量,同时,为了使粒子群的优化结果能够正确的映射出实际的加工顺序,本发明采用最小粒子倒序法来对工件的加工顺序进行提取。

算法参数初始化。在粒子群算法中,粒子的初始解X0和速度的初始值V0是通过在区间[min,max]上的均匀分布随机产生的,个体最优解的初始值为个体的初始解。其中,min,max根据具体的问题求解区间确定。为提高算法性能,充分利用置换流水车间调度问题中的启发信息,本发明随机生成初始解后,个体最优解的初始值则是由基于贪婪随机自适应搜索方法得到的工件加工顺序转化而成。

粒子的信息更新。在原始的更新方程中引入激素调节因子AF,使得算法中的粒子飞行方程能够具有更好的局部搜索特性,以便提高个体最优解的性能,其更新方程为公式(1)。

上述方法中,并没有许多需要调节的参数,下面列出了这些参数以及经验设置:粒子数N(种群大小):一般取20~40,对于大部分的问题,20个粒子已经足够取得好的结果,对于比较难的问题或者特定类别的问题,粒子数可以取到100或200。粒子的长度n(空间维数):这是由优化问题决定的,就是问题解的长度。粒子的坐标范围:由优化问题决定,每一维可以设定不同的范围。最大速度决定粒子在一个循环中最大的移动距离,通常设定为粒子的范围宽度。终止条件:设定最大循环数以及最小偏差要求,这个终止条件由具体的问题确定。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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