杨志娟,杨阳,杨会建
(长春理工大学 电子信息工程学院,长春 130022)
在多Agent系统研究中,研究员试图发现或发明群体行为的控制机制,将这种机制应用于控制大规模数量的简单Agent,使大规模数量的简单Agent能够像生物界中的群体生物一样,自组织的表现出群体智能行为,比如蚁群觅食、鱼群鸟群的列队前进、蟑螂聚集选择栖息地等。群体Agent系统及其表现出的群体智能行为可用于完成现实世界的任务,比如执行搜索、探测、救援、运输、地图构建等。目前群Agent系统以控制方式不同可分为集中式控制和分布式控制两种形式。
集中式控制是指由一种或多种复杂的Agent控制其他Agent来完成相应的操作。这种单一的系统管理方式存在着大量的缺陷,如低效率、低扩展性、网络拥塞严重、系统核心管理Agent随着网络规模的扩展压力不断增加。
相对于集中式控制出现的种种问题,分布式控制系统通过Agent之间的相互作用来实现整体性的正常运行。这些相互作用可通过简单的规则来实现,如Agent的近邻个体信息(例如雷诺的三个规则“群中心”,“避障”和“速度匹配”)。这样,系统占用更少的资源,具有更好的鲁棒性,从而提高整体的工作性能。
以上两种方式中的Agent之间都是采用数字通信的方法来处理协调个体行为的问题,在一般情况下是有效的,但对于大系统来说,该方法则会存在一些问题,因为数字通信可能会出现通信失败,这些失败的通信可能会导致系统的恶化。为确保系统能够正常运行,需要更多的控制和增加硬件机制,这样就增加了Agent的复杂性,使系统的可靠性也大大降低,且系统的扩展性能变得较差等。
本文提出一种新型的、基于信标的多Agent系统。模块间仅通过信标检测的方式来进行信息交互,设计出的新型Agent系统不仅能实现现有系统的功能,且由于模块间的信息交互方式简单,硬件电路的复杂度降低,出现故障的概率将减小,系统的可靠性将得到增强,同时也降低了系统的成本。
该系统中的Agent之间是通过发射/接收简单的无线信标方式进行信息交互的。原理是Agent间通过发射/接收吸引和排斥两种类型的信标使系统正常运行。其中吸引信标用于资源分配(吸引Agent去指定的地方,如目标物所在位置),排斥信标用来控制Agent的分布和密度,避免Agent模块在移动过程中发生碰撞。由于Agent之间仅通过信标检测的方式来进行通信,系统的扩展性将得到提高。
系统中的Agent拟采用可移动模块,模块中主要包含一对无线节点、控制模块、传感器、电机驱动模块、电机和电源等。图1所示为Agent的结构框图。
每个Agent配备一对无线节点,分别在可移动模块的左、右两侧,且规定右无线节点为主节点,主要用于发射/接收排斥信标和吸引信标,左无线节点为从节点,主要用于接收排斥信标和吸引信标。右无线节点发射的信标强度为确定值,在传输过程中信标的强度将降低,左、右无线节点由于距离源点的距离不同,左、右接收到的信标强度有差距。
传感器用来检测及发现目标物,从而确定目标物所在的位置。针对不同的任务,可添加不同的传感器,如检测平面区域内的积水区时,则采用湿度传感器,在模块移动过程中,传感器实时地检测周围的环境并发现目标物。
电机是选用两个电机分别控制移动模块的两边车轮,控制器通过产生两路可调型的PWM波,通过电机驱动芯片来控制两边电机的转速来实现Agent的转弯以及直行等移动状态。
控制器根据无线节点接收到的信标类型及左、右信标强度之差作出Agent移动方向的判定来产生两路PWM波输出,同时实时处理传感器输入的信号,未发现目标物时,控制右无线节点只发射排斥信标,一旦发现目标物信号,控制器首先使Agent停在该位置,同时使右无线节点从只发射排斥信标的状态,转为间接性的发射两种信标,这样在保证不发生碰撞的情况下,所有Agent向检测出的目标物位置靠拢,来更好地完成所要实现的功能。
系统主要是由多个Agent模块组成,在规定区域内,各自按照自身的移动路径移动且配备的传感器实时检测周围环境发现目标物,同时以一定的频率发射排斥信标来防止与其他Agent发生碰撞。当其中一个Agent发现目标物后,将发射吸引信标来告知其他Agent模块,其他Agent接收到吸引信标后,将终止自身的移动路径,不断地根据接收到的左、右吸引信标之差值的判定方式向目标物方向移动,最终对目标物进行实行必要的包围、拦截等任务。发现目标物的Agent可根据自身的路径回溯功能,在任务完成后,使系统的所有Agent都回到出发位置。
图1 Agent模块的结构图
在研究初期,仅在较小的范围内进行验证,先采用固定航点信标导航的方式对Agent在固定区域内进行导航。固定航点以序列的形式在区域内均匀排列,发射信标对Agent进行导航,当Agent靠近固定航点时,下一个序列的航点将发射导航吸引信标,此时Agent将向下一个航点信标方向移动,以此类推,Agent将按固定航点的导航路径在区域内移动,并实行目标物的检测及其相关任务的完成。
由于新型Agent之间是通过信标检测的方式实现的,但具体的移动规则还需细化分析。
Agent模块配备的一对无线节点,分别在模块的左、右两侧,根据模块两侧的无线节点接收到的信标强度和类型不同来实现相应的功能。主要的工作原理是根据左、右两个无线节点源点的距离不同,将两侧的信标强度作差和求和运算,控制器根据运算值及信标类型作出判定,Agent模块以一定的频率重复上述运算,最终实现与其他Agent处于安全状态的情况下,向目标物位置方向靠拢。
Agent的排斥信标只对在一定范围内的Agent有反应,如图2所示,以ρ为半径的圆表示Agent的防撞范围。每个Agent之间要保持ρ距离的足够空间,才能确保Agent的正常运行。距离ρ与Agent的最小半径旋转半径Γ有关,进一步的可以认为直接与Agent的运动速度有关。
图2 Agent间的防碰撞的最小区域图
而吸引信标是找到目标物后Agent发射的一种类型的信标,来引导其他Agent向目标物位置靠拢。
定义接收到的信标强度公式为:式中,Iy,i是在位置xi的Agenti接收到的y型的信标强度,包含排斥信标col和tar两种类型的信标即 y∈{ }
col,tat,Ay是发射y型信标强度,该系统共有n个Agent,发射的同类型的所有信标具有相同的强度,该值可设置为常数,在计算该公式可被视为过程中可做常数处理。下面是利用两个横向天线的方向灵敏性,能得出左、右天线的信号强度,这样可分别求出到左、右天线的距离:
若Agent将接收到的每个碰撞信标区分时,则需要在调制方案中进行必要的处理。假设Agent的排斥信标是可区分的,上述的算法将会简化些,但由于是多个Agent模块同时运行,要分别对接收到的数据先进行处理,再对处理后的数据运算,这将增加硬件电路的结构,相对而言,复杂度大大提高。同样的,可参照求排斥信标的总和方法来求吸引信标强度。而不将n个排斥信标进行区分。在一般情况下,该算法是适用的,但这种简化方式存在一定的弊端,由于所求的是排斥信标的强度之和,Agent会可能做出错误的转弯判定。下面举例论证,假如有两个Agent在Agent A的左边距离100,排斥信标处于打开状态,Agent A的排斥范围为ρ=80。那么根据接收到的Agent A的天线强度值将(错误地)判定Agent在排斥范围内,Agent A将向右转弯,可能会不立即发生碰撞。这种情况至少在原理上是有可能发生的,当有大量的Agent在右侧上且不在排斥范围内,左侧的Agent在排斥范围内,但其信标强度低于一侧的信标强度之和,其排斥信标强度的和值使得A向左侧方向上进入Agent的轨迹,其轨迹也在碰撞范围内,原理上这种情况可能会发生碰撞,但在实际操作中,这种情况是不可能发生的,其中有两个原因:第一,因为Agent通常相隔的距离最小为ρ,信标强度下降与距离的平方成正比,距离远的Agent的影响是可以忽略不计的,只有少量临近的Agent能够决定A的判定;第二,Agent不必在所有时间都打开排斥信标,可以以一定的频率发送脉冲。那么两个或多个脉冲在同一时间发生的概率将会很低,即使他们同时出现,短时间以后将再次出现间隔,则Agent可以做出正确的决定。因此对于信标接收器,要分辨出不同的Agent信标是没有必要的。
具体的转动方向是根据两个方向天线接收到的信标强度决定的,天线位于Agent的两侧,方向与运动方向相反(η,和-η),且与该Agent的速度矢量垂直。由于Agent的转弯半径与转弯方向(左和右)无关,通过左、右方向天线的简单强度比较,来判定是向左转还是向右转。将左、右天线之间的信号强度和与差进行定义:其中 Sy,i和 Dy,i表示Agenti的左、右天线y型信号强度的和与差。其中Sy,i是用来确保在接收到有用信标情况下,做出的判定。且在y=col的类型下,只有Agent在满足的情况,分别用左、右天线信号的强度Li和Ri求出Dcol,i,进一步的说明只有在满足上述条件下,Scol,i和Dcol,i才有意义。Agent的导向控制原理如:当 Scol,i>0且 Dcol,i>0时,Agent执行向右转的命令;当 Scol,i>0且 Dcol,i≤0时,Agent执行向左转的命令;当这两个条件都不满足时,则当Star,i>0且Dtar,i>0时,Agent执行向左转的命令;当Star,i>0且 Dtar,i≤0时,Agent执行向右转的命令;若上述条件都不满足时,Agent执行沿原方向直走的命令。
首先通过仿真来验证出上述所讲的信号处理算法进行了仿真,仿真环境为MATLAB软件。方案是:首先随机产生四组数据,每组的数据长度为10,分别作为接收到的左侧排斥信号强度,右侧排斥信号强度,左侧吸引信号强度和右侧吸引信号强度。设置的排斥信号强度临界值为5,当左侧或右侧排斥信号强度大于临界值时,将计算出左侧排斥信号强度与右侧排斥信号强度和与差值,若小于临界值时,则计算出左侧吸引信号强度与右侧吸引信号强度和与差值。仿真出的图形如图3所示。
图3 新型Agent对接收到的信号处理算法的仿真验证
通过图3的仿真图可看出当接收到的任一侧的排斥信标强度大于临界值5时,控制器将会计算出排斥信标的和与差,当两侧的排斥信标强度都小于5时,控制器将会计算出吸引信标的和与差,再分别根据计算出的和与差的数值及信号类型作出相应的判定。
在仿真过程中,选用的计数次数为10次,相应的是十次的转弯判定,将对应的判定结果存放于矩阵action中,每一列为一次仿真判定。每列中第一行为1时,表示Agent向右转弯;第二行为1时,表示Agent向左转弯;第三行为1时,表示Agent处于排斥范围外,且没接收到吸引信号的情况下,Agent保持直走的状态。
如图3所示,首先对序列1进行分析,左侧的排斥信标强度大于临界值5,则计算出两侧排斥信标强度的和与差,如图可看出吸引信标强度之和与差都为0,表示未计算。两侧信标之和大于0,确保信号准确存在,左侧与右侧的排斥信标强度之差大于0,说明左侧离排斥信标较近,Agent模块向右转弯,矩阵action的第一列为[1 0 0]T,表示执行向右转弯判定,与理论要求一致。对序列2进行分析,两侧的排斥信标都小于临界值5,则计算出两侧吸引信标的和与差,如图2所示,排斥信标的和与差都为0,表示未计算。左侧与右侧的吸引信标强度只差大于0,右侧距离Agent的距离较近,Agent应向左转弯,矩阵action的第二列为[0 1 0]T,表示执行向左转弯的判定,与理论一致。对序列3进行分析,两侧的排斥信标都小于临界值5,则计算出两侧吸引信标的和与差,如图2所示,排斥信标的和与差都为0,表示未计算。左侧与右侧的吸引信标强度只差小于0,右侧吸引信标距离Agent较近,Agent应向右转弯,矩阵action的第3列为[1 0 0]T,表示执行向右转弯的判定,与理论一致。下面可按此方式来一一验证。
根据所得出的两组类型信号的和与差,判定出Agent模块是向左转弯,向右转弯或直走的状态。在仿真算法中,转弯的决策通过矩阵的形式表示,矩阵内容如:
现有的多Agent系统,模块间通信采用的是数字通信方式。相对而言硬件电路较复杂,且可靠性不高。基于以上原因,本文提出一种新型的多Agent系统,模块间仅通过信标检测的方式进行信息交互。对系统的运行原理进行了详细的描述。并对Agent模块的移动规则进行主要的分析及研究,通过仿真来进一步进行了验证。而且现如今无线网络的发展已趋于成熟化,将这一技术应用到多Agent系统中,进行了多方向的融合,应用领域广泛,具有很好的研究价值。
[1]谢学科.多Agent交互协作研究及系统模拟[D].西安:西北工业大学,2005.
[2]何飞.基于Pi-演算的Agent交互模式研究[D].太原:太原理工大学,2007.
[3]金士尧,黄红兵,范高俊.面向涌现的多Agent系统研究及其进展[J].计算机学报,2008,31(6):881-894.
[4]陈丹,林金朝.无线定位系统及其发展趋势[J].山西电子技术,2006,7(6):12-13.
[5]瞿雷.Zigbee技术及应用[M].北京:北京航空航天大学出版社,2007:132-147.
[6]彭瑜.低功耗、低成本、高可靠性、低复杂度的无线电通信协议ZigBee[J].自动化仪表,2005,26(5):1-4.