发明名称 基于多智能体进化算法的资源受限项目调度方法
摘要 本发明公开一种基于多智能体进化算法的资源受限项目调度方法,属自动控制与信息技术领域。本发明将多智能体系统与进化计算相结合,用于求解资源受限项目调度问题,其特征在于:首先根据两种算法初始化智能体网格中的每个智能体,然后设计了邻域竞争算子、邻域交叉算子、变异算子、自学算子对智能体进行优化,验证结果表明,本发明在评定求解资源受限项目调度问题方法效用的两个方面:求解到最优解的比例和偏离最优解平均误差,都很有优势,是一种有效的求解资源受限项目调度问题的方法,还能扩展到求解其它带有优先关系限制的组合优化问题。
申请公布号 CN103020730A 申请公布日期 2013.04.03
申请号 CN201210454380.7 申请日期 2012.11.01
申请人 西安电子科技大学 发明人 刘静;蔡冰琦;焦李成
分类号 G06Q10/04(2012.01)I 主分类号 G06Q10/04(2012.01)I
代理机构 陕西电子工业专利中心 61205 代理人 张问芬;王品华
主权项 1.一种基于多智能体进化算法的资源受限项目调度方法,将多智能体系统与进化计算相结合,用于求解资源受限项目调度问题,其特征在于:首先根据两种算法初始化智能体网格中的每个智能体,然后用设计的邻域竞争算子、邻域交叉算子、变异算子和自学习算子对智能体进行优化,具体步骤如下:(1)参数设定:P<sub>c</sub>为邻域交叉概率,P<sub>m</sub>为变异概率,t为大于或等于0的整数,表示第t代,L<sup>t</sup>表示第t代智能体网格,L<sup>t+1/3</sup>和L<sup>t+2/3</sup>是L<sup>t</sup>和L<sup>t+1</sup>间的中间代智能体网格,Best<sup>t</sup>是L<sup>0</sup>,L<sup>1</sup>,…,L<sup>t</sup>中最优的智能体,CBest<sup>t</sup>是L<sup>t</sup>中最优的智能体,rand指随机产生的0到1之间的实数,L<sub>i,j</sub>表示处在智能体网格第i行、第j列的智能体,energy(L<sub>i,j</sub>)表示智能体L<sub>i,j</sub>的能量;(2)初始化智能体网格L<sup>0</sup>,更新Best<sup>0</sup>,令t=0,网格大小为L<sub>size</sub>*L<sub>size</sub>,其中L<sub>size</sub>为整数,设计为使网格中智能体个数大于或等于项目中任务个数的最小值,每个智能体用一个可行的任务列表表示,即列表中每个任务的所有紧前任务都必须排在这个任务的前面,循环调用算法1和算法2对智能体网格中每个智能体进行编码;(3)对网格L<sup>t</sup>中每个智能体执行邻域竞争算子,得到L<sup>t+1/3</sup>,<img file="FSA00000805242300011.GIF" wi="66" he="50" />表示智能体L<sub>i,j</sub>邻域中能量最大的智能体,如果<img file="FSA00000805242300012.GIF" wi="570" he="58" />则智能体L<sub>i,j</sub>继续存活在网格上,否则,必须死亡,空出的格点由<img file="FSA00000805242300013.GIF" wi="63" he="49" />变异产生一个新智能体占据,变异的方法采用插入变异算子,此插入变异算子与一般组合优化的插入变异算子有所不同,变异后任务列表仍须满足任务间优先关系;(4)对L<sup>t+1/3</sup>中的每个智能体,若rand<P<sub>c</sub>,则将邻域交叉算子作用在其上,得到L<sup>t+2/3</sup>,如果智能体L<sub>i,j</sub>满足交叉条件,则将两点交叉算子作用在L<sub>i,j</sub>与<img file="FSA00000805242300014.GIF" wi="56" he="46" />上,得到两个智能体c<sub>1</sub>和c<sub>2</sub>,比较这两个智能体的能量,用能量较大的一个替代L<sub>i,j</sub>;(5)对L<sup>t+2/3</sup>中的每个智能体,若rand<P<sub>m</sub>,则将变异算子作用在其上,得到L<sup>t+1</sup>,如果智能体L<sub>i,j</sub>满足变异条件,则将插入变异算子作用在其上,该变异算子与步骤(3)中变异算子相同;(6)从L<sup>t+1</sup>中找出CBest<sup>t+1</sup>,并将自学习算子作用在其上,若智能体L<sub>i,j</sub>满足自学习条件,由L<sub>i,j</sub>变异产生智能体h<sub>1</sub>,变异方法与步骤(3)中变异方法相同,若energy(h<sub>1</sub>)>energy(L<sub>i,j</sub>),则用h<sub>1</sub>替代L<sub>i,j</sub>且自学习算子停止,否则由h<sub>1</sub>继续变异产生一个智能体h<sub>2</sub>,与L<sub>i,j</sub>比较能量,如果h<sub>2</sub>的能量比L<sub>i,j</sub>的大,则用h<sub>2</sub>替代L<sub>i,j</sub>且自学习算子停止,否则继续由h<sub>2</sub>变异产生一个智能体与L<sub>i,j</sub>比较能量,按照这种方式一直变异,一旦得到一个大于L<sub>i,j</sub>能量的智能体,则用该智能体替代L<sub>i,j</sub>且自学习算子停止,最大变异次数为20,若还找不到一个智能体使其能量大于L<sub>i,j</sub>的能量,则自学习算子停止,L<sub>i,j</sub>保持不变;(7)如果energy(CBest<sup>t+1</sup>)>energy(Best<sup>t</sup>),则把CBest<sup>t+1</sup>的值赋予Best<sup>t+1</sup>,否则,把Best<sup>t</sup>的值赋予Best<sup>t+1</sup>和CBest<sup>t+1</sup>;(8)如果终止条件满足,即得到RCPSP的最优解或者达到最大进化代数,则解码计算最小项目工期输出,否则,令t的值自加1,并转向步骤(3)。
地址 710071 陕西省西安市太白南路2号