基于多智能体进化算法的资源受限项目调度方法技术

技术编号:8533561 阅读:241 留言:0更新日期:2013-04-04 17:05
本发明专利技术公开一种基于多智能体进化算法的资源受限项目调度方法,属自动控制与信息技术领域。本发明专利技术将多智能体系统与进化计算相结合,用于求解资源受限项目调度问题,其特征在于:首先根据两种算法初始化智能体网格中的每个智能体,然后设计了邻域竞争算子、邻域交叉算子、变异算子、自学习算子对智能体进行优化,验证结果表明,本发明专利技术在评定求解资源受限项目调度问题方法效用的两个方面:求解到最优解的比例和偏离最优解平均误差,都很有优势,是一种有效的求解资源受限项目调度问题的方法,还能扩展到求解其它带有优先关系限制的组合优化问题。

【技术实现步骤摘要】

本专利技术涉及自动控制与信息
的一种方法,具体涉及一种基于多智能体进化算法(multiagent evolutionary algorithm, MAEA)的资源受限项目调度方法。
技术介绍
资源受限项目调度问题(resource-constrainedproject scheduling problem,简称RCPSP)广泛地存在于建筑工程、软件开发、飞机及轮船制造等单件或小批量生产方式的企业中,合理的调度计划是降低成本、提高质量、缩短周期的重要保证。RCPSP不仅在实践中应用广泛,在理论上,该问题模型丰富,而且多属于NP-hard问题,求解困难,因此,一直吸引着国内外众多学者的研究和关注。典型的资源受限项目调度问题可描述为在一个项目中,包含η个任务。任务之间存在着紧前关系,记B」为任务j的紧前任务集,为任务j的紧后任务集。整个项目的结构可由一张节点式(activity-on-node,A0N)有向网络图G= (V7E)表示,顶点集V中每个顶点代表项目中每一个任务,弧线集E代表任务间优先关系,即若任务V和任务w之间存在一条由V指向W的箭线,则任务V是任务W的紧如任务,任务W是任务V的紧后任务。每个任务执行持续时间记为dp这些任务的执行有两种约束①优先关系约束,即每个任务必须等它的所有紧前任务完成之后才能执行;②资源约束。每个任务的执行都要消耗时间和资源,调度的目的是求出项目中每项任务的开始时间和结束时间,并且同时满足资源约束和优先关系约束,使某些管理目标最优化,例如最小化项目工期。目前文献中提出了大量的RCPSP解决方法,大致可分为三类最优化算法、启发式算法、元启发式算法。其中,元启发式算法主要包括遗传算法、模拟退火算法、禁忌搜索算法、粒子群优化算法、蚁群优化算法等。RCPSP属于组合优化问题,元启发式算法是目前被普遍认为在性能、可扩展性和易于实现性等方面权衡后的最佳方法。其中,遗传算法是最常用的一种元启发式算法。更广义的地说,遗传算法属于一种进化算法,由于进化算法与传统优化方法相比,具有简单、通用、鲁棒性强和便于并行化处理等优点,已被广泛应用于数值优化、组合优化、分类器设计等领域。但实践也表明,仅仅使用以遗传算法为代表的进化算法来模仿生物处理事物的智能还是远远不够的,还必须更加深层地挖掘与利用生物的智能资源。在遗传算法中,用于产生子代的个体是根据适应度从整个种群中选择出来的,因此必须预先确定整个种群的适应度分布。但在自然界中并不存在全局选择,也无法计算全局的适应度分布。事实上,自然选择本身是一种局部现象,它只与个体所在的局部环境有关。也就是说,某一阶段,自然进化是一个局部过程,它通过渐渐扩散,才使得信息为全局共享。因此,用遗传算法求解资源受限项目调度问题不能很好的模仿生物处理事物的智能,另外遗传算法还有易早熟收敛、收敛速度慢、稳定性差等缺点,从而无法得到好的项目进度计划。
技术实现思路
本专利技术的目的在于针对上述现有方法的不足, 提出了一种,本方法能解决
技术介绍
中存在的不足,从而得到在最优解比例和偏离最优解误差方面更好的资源调度。本专利技术的技术方案是这样实现的根据表示项目结构的节点式有向网络图初始化智能体,所有智能体均生存在一个网格环境中,即智能体网格,网格形式见附图2,网格的大小为LsizJLsize,网格大小根据任务量设置,例如一个项目实例中包含32个任务,Lsize设为6,则网格中有6*6即36个智能体,每个智能体固定在网格的一个格点上,记处于第i行、第j列的智能体为Li, P该智能体的邻域为本文档来自技高网
...

【技术保护点】
一种基于多智能体进化算法的资源受限项目调度方法,将多智能体系统与进化计算相结合,用于求解资源受限项目调度问题,其特征在于:首先根据两种算法初始化智能体网格中的每个智能体,然后用设计的邻域竞争算子、邻域交叉算子、变异算子和自学习算子对智能体进行优化,具体步骤如下:(1)参数设定:Pc为邻域交叉概率,Pm为变异概率,t为大于或等于0的整数,表示第t代,Lt表示第t代智能体网格,Lt+1/3和Lt+2/3是Lt和Lt+1间的中间代智能体网格,Bestt是L0,L1,…,Lt中最优的智能体,CBestt是Lt中最优的智能体,rand指随机产生的0到1之间的实数,Li,j表示处在智能体网格第i行、第j列的智能体,energy(Li,j)表示智能体Li,j的能量;(2)初始化智能体网格L0,更新Best0,令t=0,网格大小为Lsize*Lsize,其中Lsize为整数,设计为使网格中智能体个数大于或等于项目中任务个数的最小值,每个智能体用一个可行的任务列表表示,即列表中每个任务的所有紧前任务都必须排在这个任务的前面,循环调用算法1和算法2对智能体网格中每个智能体进行编码;(3)对网格Lt中每个智能体执行邻域竞争算子,得到Lt+1/3,表示智能体Li,j邻域中能量最大的智能体,如果则智能体Li,j继续存活在网格上,否则,必须死亡,空出的格点由变异产生一个新智能体占据,变异的方法采用插入变异算子,此插入变异算子与一般组合优化的插入变异算子有所不同,变异后任务列表仍须满足任务间优先关系;(4)对Lt+1/3中的每个智能体,若rand<Pc,则将邻域交叉算子作用在其上,得到Lt+2/3,如果智能体Li,j满足交叉条件,则将两点交叉算子作用在Li,j与上,得到两个智能体c1和c2,比较这两个智能体的能量,用能量较大的一个替代Li,j;(5)对Lt+2/3中的每个智能体,若rand<Pm,则将变异算子作用在其上,得到Lt+1,如果智能体Li,j满足变异条件,则将插入变异算子作用在其上,该变异算子与步骤(3)中变异算子相同;(6)从Lt+1中找出CBestt+1,并将自学习算子作用在其上,若智能体Li,j满足自学习条件,由Li,j变异产生智能体h1,变异方法与步骤(3)中变异方法相同,若 energy(h1)>energy(Li,j),则用h1替代Li,j且自学习算子停止,否则由h1继续变异产生一个智能体h2,与Li,j比较能量,如果h2的能量比Li,j的大,则用h2替代Li,j且自学习算子停止,否则继续由h2变异产生一个智能体与Li,j比较能量,按照这种方式一直变异,一旦得到一个大于Li,j能量的智能体,则用该智能体替代Li,j且自学习算子停止,最大变异次数为20,若还找不到一个智能体使其能量大于Li,j的能量,则自学习算子停止,Li,j保持不变;(7)如果energy(CBestt+1)>energy(Bestt),则把CBestt+1的值赋予Bestt+1,否则,把Bestt的值赋予Bestt+1和CBestt+1;(8)如果终止条件满足,即得到RCPSP的最优解或者达到最大进化代数,则解码计算最小项目工期输出,否则,令t的值自加1,并转向步骤(3)。FSA00000805242300011.tif,FSA00000805242300012.tif,FSA00000805242300013.tif,FSA00000805242300014.tif...

【技术特征摘要】
1.一种基于多智能体进化算法的资源受限项目调度方法,将多智能体系统与进化计算相结合,用于求解资源受限项目调度问题,其特征在于首先根据两种算法初始化智能体网格中的每个智能体,然后用设计的邻域竞争算子、邻域交叉算子、变异算子和自学习算子对智能体进行优化,具体步骤如下 (1)参数设定p。为邻域交叉概率,Pffl为变异概率,t为大于或等于O的整数,表示第t代,Lt表示第t代智能体网格,Lt+1/3和Lt+2/3是Lt和Lt+1间的中间代智能体网格,Bestt是L0, L1,…,Lt中最优的智能体,CBestt是Lt中最优的智能体,rand指随机产生的O到I之间的实数,Lijj表示处在智能体网格第i行、第j列的智能体,energy (Lijj)表示智能体Li, j的能量; (2)初始化智能体网格L°,更新Best°,令t= O,网格大小为LsizJLsize,其中Lsize为整数,设计为使网格中智能体个数大于或等于项目中任务个数的最小值,每个智能体用一个可行的任务列表表示,即列表中每个任务的所有紧前任务都必须排在这个任务的前面,循环调用算法I和算法2对智能体网格中每个智能体进行编码; (3)对网格Lt中每个智能体执行邻域竞争算子,得到Lt+1/3,iT;表示智能体Li,j邻域中能量最大的智能体,如果energy (U」) >engrgy ,则智能体1^,」继续存活在网格上,否则,必须死亡,空出的格点由变异产生一个新智能体占据,变异的方法采用插入变异算子,此插入变异算子与一般组合优化的插入变异算子有所不同,变异后任务列表仍须满足任务间优先关系; (4)对Lt+3中的每个智能体,若rand< P。,则将邻域交叉算子作用在其上,得到Lt+2/3,如果智能体Lm满足交叉条件,则将两点交叉算子作用在Lm与^上,得到两个智能体C1和C2,比较这两个智能体的能量,用能量较大的一个替代Liij ; (5)对Lt+2/3中的每个智能体,若rand< P111,则将变异算子作用在其上,得到Lt+1,如果智能体Lm满足变异条件,则将插入变异算子作用在其上,该变异算子与步骤(3)中变异算子相同; (6)从Lt+1中找出CBestt+1,并将自学习算子作用在其上,若智能体Li,j满足自学习条件,由Li, j变异产生智能体Ii1,变异方法与步骤(3)中变异方法相同,若energy Oi1) >energy (Li,」),则用Ii1替代Li,」且自学习算子停止,否则由Ii1继续变异产生一个智能体h2,与Lm比较能量,如果h2的能量比Lm的大,则用h2替代Lm且自学习算子停止,否则继续由h2变异产生一个智能体与Lm比较能量,按照这种方式一直变异,一旦得到一个大于Lm能量的智能体,则用该智能体替代Li, j且自学习算子停止,最大变异次数为20,若还找不到一个智能体使其能量大于Ly的能量,则自学习算子停止,Ly保持不变;(7)如果energy (CBestt+1) > energy (Bestt),则把 CBestt+1 的值赋予 Bestt+1,否则,把Bestt 的值赋予 Bestt+1 和 CBestt+1 ; (8)如果终止条件满足,即得到RCPSP的最优解或者达到最大进化代数,则解码计算最小项目工期输出,否则,令t的值自加1,并转向步骤(3)。2.如权利要求1所述的基于多智能体进化算法的资源受限项目调度方法,其特征在于步骤(2...

【专利技术属性】
技术研发人员:刘静蔡冰琦焦李成
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1