基于量子蚁群算法的机器人联盟问题研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于量子蚁群算法的机器人联盟问题研究

摘要:将量子进化算法与蚁群算法思想相融合,提出一种求解机器人联盟问题的量子蚁群算法。为了避免搜索陷入局部最优,采用多种群并行搜索及量子交叉策略,以改善种群信息结构;算法中还设计了一种新的信息素表示方式。仿真实验结果表明,该算法具有较快的收敛速度和全局寻优能力。

关键词:机器人;联盟;蚁群算法;量子蚁群算法

中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2013)15-3596-03

在多机器人系统中,单个机器人个体的资源、能力与智能都是有限的,往往不能独自完成特定的任务。为了完成任务,机器人之间就必须相互协作,通过结成联盟来提高求解问题的能力[1]。因此联盟是多机器人系统的重要合作方式,而机器人联盟生成问题(multi-robot coalition formation)则成为多机器人系统研究中一个关键的基础性问题,主要研究如何在多机器人系统中动态生成面向任务的最优机器人联盟。从1993年提出联盟方法以来,国内外学者对面向任务的联盟生成进行了大量的研究工作,其中智能进化算法由于具有全局寻优能力强、收敛速度快等优点,在近年来更是被广泛地应用到机器人联盟问题的求解中,如蒋建国、夏娜、李杰等[2-4]基于粒子群和蚁群算法、许波等人[5-6]基于量子粒子群算法,这些方法在可接受时间内获得的解的质量有所提高,仿真实验也验证了智能算法的高效性。

1 机器人联盟问题描述

机器人联盟c是一组相互合作、能共同完成某一任务的一个或多个机器人集合。若系统中有n个机器人集合[r={r1,r2,…,rn}],则一个联盟c就是r的一个非空子集。在多机器人系统中,每个机器人[ri]都具有一个能力向量[bi=b1i,b2i,…,bri], [bji≥0,(1≤i≤n,1≤j≤n)],用于定量描述[ri]执行某种特定动作的能力大小,若[bji]=0,则表示[ri]不具备能力[bji]。任务t具有一定的能力需求[bt=b1t,b2t,…,brt]。联盟c具有一个能力向量[bc=b1c,b2c,…,brc],bc是联盟中所有机器人能力向量的总和,即[bc=ri∈cbi],联盟c能完成任务t的必要条件是:[bc≥bt]。

任何一个联盟c都有联盟代价costc、联盟收益profitc和联盟值valuec,若联盟c不能完成任务,则联盟值valuec为0,否则,valuec为一正数,并且随着profitc值的递增而递增,随着costc 的递增而递减。因此在本文中我们将联盟值定义为:

valuec=profitc /costc(当联盟c不能完成任务时,profitc=0)。机器人联盟问题就是要求出能完成任务的并拥有最大valuec值的最优联盟。

2 量子蚁群算法(qaca)

2.1编码方式

2.2 量子信息素

量子蚂蚁[qatk]的量子信息素值[qτtk]的具体表示如下:

[qτtk=βt112βt122…βt1n2βt212βt222…βt212??βtij2?βtn12βtn12…βtnn2] (2)

通过上面公式可以发现,量子信息素量直接通过相应的量子蚂蚁就可获得,采用这种量子信息素表示方式使得信息素的更新操作变得非常简单,不需要任何参数,对于各路径上信息素的挥发和增强完全可以通过对量子蚂蚁的更新来完成,例如:若蚂蚁在机器人 i 上选择了机器人 j 作为盟友,并成为较优的联盟组合,则机器人 i 到机器人 j 就是用来更新量子蚂蚁的较优路径中的一条边,通过更新量子蚂蚁,会使得其概率幅[βtij]的值增加,从而[βtij2]也增加,即使得机器人 i 到机器人 j 路径上的信息素得以增强;反之,该路径上的信息素会有所挥发。

2.3 多种群并行搜索及量子交叉

为了避免算法陷入局部最优,我们采用多种群并行搜索策略,得到解空间中不同区域的最优值。在进化初期,以各种群最优值为进化目标引导搜索方向。每进化一定代数后,比较各种群的最优值,保留全局最优个体,并以该最优个体取代各种群中最差个体。若某种群连续若干代仍没有找到更优个体时,则利用量子信息的纠缠和干涉特性执行一种量子交叉策略,以促进种群内部的信息交流,增强种群多样性。量子交叉的具体做法如下:

2.4 算法流程

求解机器人联盟问题的量子蚁群算法(qaca)具体操作步骤如下:1)初始化n组量子蚁群;

2)分别计算各组种群的量子信息素[qτ(t)=qτtk,k=1,2,…m];

3)构建路径,计算适应度;

4)判断是否满足终止条件,若满足,则算法终止,否则执行下一步;

5)采用量子旋转门[7]更新量子蚁群[qa(t)];

6)进化每间隔d代,记录所有种群中全局最优个体,并以全局最优个体取代各种群中最差个体。若某种群连续d代没有找到更优个体,则执行量子交叉操作;

7) t=t+1,算法转到(2)继续执行,直到算法结束。

3 仿真实验

为了验证算法的有效性,将qaca与文献[3]中基本蚁群算法(baca)和文献[8]中的量子遗传算法(qga)进行比较。实验中机器人个数、能力向量及任务等相关参数选用文献[5]中给定的实验数据,其它参数设定为:种群规模100,进化代数1000,[α]=1,[β]=2,d=10。针对给定的联盟问题,分别采用qga、baca和qaca 三种算法进行50次独立实验,并记录下50次实验中各算法找到的最优联盟值、最差联盟值、平均联盟值,及最快搜索到最优解的迭代次数和50次实验平均搜索到最优解的迭代次数。通过考察这几个参数指标,可以实现对算法全局寻优性能及收敛性能的比较,其对比实验结果见表1。

从表1的统计结果可以看出, qaca算法无论在最好情况、最差

情况还是平均情况下都要明显优于qga和baca算法。这表明在相同的迭代条件下qaca算法能够搜索到较高质量的解,具有较好的全局寻优能力。而通过搜索到最优解的迭代次数,可以表明qaca

算法的收敛速度较快,且收敛稳定性较高。

4 结束语

将蚁群算法与量子进化算法思想相结合,提出了一种求解机器人联盟问题的量子蚁群算法(qaca)。算法中根据量子编码的多样性特性,设计了一种新的信息素表示及更新方式;为了避免搜索陷入局部最优,设计了一种多种群并行搜索和量子交叉策略。最后将qaca与baca和qga进行仿真实验比较,测试结果也表明了算法具有一定的优势。在qaca基础上的多任务联盟问题求解将是我们下一步研究工作的重点。

参考文献:

[1] lovekech v, julie a. multi-robot coalition formation[j]. ieee transactions on robotics, 2006, 22(4):637–649.

[2] 蒋建国,张国富,齐美彬,等.基于离散粒子群求解复杂联盟的并行生成[j].电子与信息学报, 2009, 31(30): 519-522.

[3] 夏娜,蒋建国,魏星,等.改进型蚁群算法求解单任务agent 联盟[j].计算机研究与发展,2005,42(5):734-739.

[4] 李杰,王爱民,于金刚,等.一种非线性动态自适应的agent 联盟生产算法[j].小型微型计算机系统, 2012, 33(8):

相关文档
最新文档