体验了一下多Agent系统
终于完成多agent拍卖系统的开发了,多agent课程期末作业写一篇论文或做一个项目,选择写论文不用花费很多时间,反正大家都是凑的嘛。不过学了一学期的多agent,都是学了些理论,对多agent还没什么直观的印象,所以我想还是选项目做做,也算体验一下多agent吧。
这个礼拜上午开算法讨论班,下午和晚上就做多agent项目,有点累。。不过倒是挺开心的,学了不少东西,知道了FIPA标准,知道JADE平台,学会了JADE平台下开发多agent系统的套路,哈哈。
恩,稍微总结一下。
环境: + Eclipse + JADE 。
配置CLASSPATH,加入JADE的lib下的几个jar,在Eclipse下ms也可以不用,直接在Project中添加JADE的包的引用:; ;;-codec-。
基于JADE平台开发多Agent系统,。我们通过开发类中的相应函数来实现一个Agent。主要工作有:创建Agent,制定Agent行为,实现Agent之间通信。
1、Agent创建和终止
在JADE平台下,每个Agent都对应一个类,通过在类中定义setup()函数来创建Agent。Setup()函数是每个Agent类都必须包含的,由它来启动Agent并完成一些初始化工作每个Agent通过setup()函数创建成功之后,都会有一个名字,格式为<昵称>@<平台名>,这个命名是唯一的,以后Agent之间的通信就是通过指定Agent名字来进行的。要终止一个Agent,必须调用该Agent类的doDelete()函数,,我们不用重新定义。但我们必须定义takeDown()函数,此函数完成Agent结束前的一些清理工作,在doDelete()函数结束Agent时被调用。
2、Agent行为
Agent的实际工作是在行为内定义的,一个行为代表了Agent的一个任务,。比较常见的JADE行为有:OneShotBehaviour(只执行一次),CyclicBehaviour(一直循环),TickerBehaviour(周期执行),WakerBehaviour(超时就执行)。我们通过在Agent类中内嵌行为类,并在Agent的setup()函数中通过addBehaviour调用来添加相应的Agent行为。每个行为类都必须实现action()函数,action()函数定义了当行为发生时执行的操作。在行为类中通过实现done()函数定义行为终止条件。一个Agent的行为是并发执行的,一旦一个行为被调度(即addBehaviou
体验了一下多Agent系统 来自淘豆网www.taodocs.com转载请标明出处.