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

文档序号:6381175阅读:178来源:国知局
专利名称:基于多智能体进化算法的资源受限项目调度方法
技术领域
本发明涉及自动控制与信息技术领域的一种方法,具体涉及一种基于多智能体进化算法(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.一种基于多智能体进化算法的资源受限项目调度方法,将多智能体系统与进化计算相结合,用于求解资源受限项目调度问题,其特征在于首先根据两种算法初始化智能体网格中的每个智能体,然后用设计的邻域竞争算子、邻域交叉算子、变异算子和自学习算子对智能体进行优化,具体步骤如下 (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)所述的用算法I对智能体网格中智能体进行编码的具体步骤如下 2a)把节点式有向网络G中每个任务的紧前任务个数rv赋予av,即av := rv,任务列表s设为空序列,即s:=[];2b)判断任务列表s是否包含网络G中所有的任务,如果是,则转向步骤2f),否则转向步骤2c); 2c)找出任务集合W,集合中的每个任务都不属于任务列表s,并且这些任务目前的紧前任务个数aw = O,即1 = {\^5|8胃=0}; 2d)把任务集合W中所有任务按任意顺序连续的赋给任务列表s ; 2e)对任务集合W中每个任务的所有紧后任务的紧前任务个数减I,即VwGW,VvGA.,av = av_l,然后转向 2b); 2f)算法结束。
3.如权利要求1所述的基于多智能体进化算法的资源受限项目调度方法,其特征在于步骤(2)所述的用算法2对智能体网格中智能体进行编码的具体步骤如下 3a)把节点式有向网络G中每个任务的紧前任务个数rv赋予av,即av := rv,任务列表s设为空序列,S卩s := □,令i为O ; 3b)判断i是否等于n,如果是,则转向步骤3g),否则转向步骤3c); 3c)找出这样的任务集合V,集合中的每个任务都不属于任务列表S,并且这些任务目前的紧前任务个数av = 0,即V: = {vgs|av=0}; 3d)把任务集合V中所有任务按任意顺序入栈; 3e)从栈项出栈一个任务w,把i自加I,即1:= i+1,把任务w赋给任务列表s,即s[i]=w ; 3f)对任务w的所有紧后任务的紧前任务个数减1,即VvGA.,av:= av-l,然后转向3b); 3g)算法结束。
4.如权利要求1所述的基于多智能体进化算法的资源受限项目调度方法,其特征在于步骤(3)所述的由C变异产生一个新智能体,采用的变异算子按如下规则进行 在C中随机选择一个任务V,把它在任务列表中位置记为P [v],将V的紧前任务集合Bv中任务的最大下标位置记为1,同时将V的紧后任务集合Av中任务的最小下标位置记为e,随机产生一个位置k,需满足k古p [v]且I < k < e,把任务V插入到位置k,任务列表其它任务间顺序不变。例如对任务列表S= [1,2,3,4,5,6,7,8,9]进行变异,随机选择任务5,若此时 I = 2,e = 8,则它可能的变异结果为 s' = [1,2,5,3,4,6,7,8,9],s' = [1,2,3,5,4,6,7,8,9], s/ = [1,2,3,4,6,5,7,8,9]或 s' = [1,2,3,4,6,7,5,8,9]。
5.如权利要求1所述的基于多智能体进化算法的资源受限项目调度方法,其特征在于步骤⑷所述的对Lq与YT作用的两点交叉算子,产生两个子代智能体C1和C2,具体步骤如下 5a)随机产生两个整数!T1和r2,1 < T1 < r2 < n, n为假设的任务列表中任务的个数;5b) i G [I, rj , cji] = Lijj[i];5c) i G [!^+Lr2] ,Cm = zT [m],m 是满足1^ [m] Ucl[I], C1 [2],…,C1 [i_l]]最小的下标; 5d) i G [r2+l, n], C1Li] = Li, j[m], m 是满足L1.j[m]茫[cjl],C1M , ...,cj1-l]]最小的下标; 5e)交换1^,」和17产生另外一个智能体c2。
全文摘要
本发明公开一种基于多智能体进化算法的资源受限项目调度方法,属自动控制与信息技术领域。本发明将多智能体系统与进化计算相结合,用于求解资源受限项目调度问题,其特征在于首先根据两种算法初始化智能体网格中的每个智能体,然后设计了邻域竞争算子、邻域交叉算子、变异算子、自学习算子对智能体进行优化,验证结果表明,本发明在评定求解资源受限项目调度问题方法效用的两个方面求解到最优解的比例和偏离最优解平均误差,都很有优势,是一种有效的求解资源受限项目调度问题的方法,还能扩展到求解其它带有优先关系限制的组合优化问题。
文档编号G06Q10/04GK103020730SQ201210454380
公开日2013年4月3日 申请日期2012年11月1日 优先权日2012年11月1日
发明者刘静, 蔡冰琦, 焦李成 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1