当前位置:首页 > 学习agent必备!最全的JADE程序员指南
3.4.2类SimpleBehaviour
这个抽象类模拟简单的原子行为。它的reset()方法按默认情况来,但是用户可以定义子类重写该方法。
3.4.3类OneShotBehaviour
这个抽象类模拟原子行为,只能执行一次,不能暂停。所以,它的done()方法总是返回true。
3.4.4类CyclicBehaviour
这个抽象类模拟原子行为,必须被永远执行下去。所以它的done()方法总是返回false。
3.4.5类CompositeBehaviour
这个抽象类模拟有一些其它行为(children)组成的行为。所以执行这个行为的真正操作不是在行为本身定义的,而是在它的孩子中的,符合行关心的是根据已有的策略对孩子的调度安排。
尤其是CompositeBehaviour类只给children的调度安排提供一个通用的接口,而不定义任何调度安排策略。这个调度安排策略必须由子类(SequentialBehaviour,ParallelBehaviour和FSMBehaviour)定义。因此,一个好的程序设计只用CompositeBehaviour子类,除非需要一些特殊的children调度安排策略(比如,PriorityBasedCompositeBehaviour应该直接扩展CompositeBehaviour)。
注意:这个类从JADE2.2重新命名了,之前叫做ComplexBehaviour。
3.4.6类SequentialBehaviour
这个类是一个CompositeBehaviour,它按顺序执行它的子行为,当所有的子行为执行完毕,它也就终止了。当一个复杂的任务可以表示为一系列原子步骤的时候使用这个类。
3.4.7类ParallelBehaviour
这个类是一个CompositeBehaviour,它并行执行它的子行为,当关于它的子行为的一个特殊条件满足时,它就终止。在这个类的构造器中指明的恰当的变量用来创建ParallelBehaviour,当它所有的子行为完成的时候,它的子行为当中的任何一个终止的时候或者用户定义的N号子行为完成的时候,它就结束。当一个复杂的任务可以表示为一个并行替代操作的集合和一些子任务终止条件的时候使用这个类。
注意:这个类从JADE2.2重新命名,以前成为NonDeterministicBehaviour。
3.4.8类FSMBehaviour
这个类是一个CompositeBehaviour,根据用户定义的有限状态机制执行它的children。详细地说,每个child代表FSM的状态里要执行的一个活动,用户可以定义FSM状态间的转换。当状态Si相对应的child完成时,它的终止值(由onEnd()方法返回的)用来选择转换机制,到达新的状态Sj。在下一轮中,将执行与Sj相对应的child。FSMBehaviour的一些children可以作为最后状态注册。这些孩子当中的一个完成后,该FSMBehaviour终止。
参考JADE APIs的javadoc文档,了解关于如何在运行时间或静态编译时间描述有限状态机的详细描述。
3.4.9类WakerBehaviour
这个抽象类执行one-shot任务,必须在规定的间隔时间到期后只能执行一次。
3.4.10.类TickerBehaviour
这个抽象类实行cyclic任务,必须周期性地执行。 3.4.11例子
为了进一步说明前面的概念,下面举例子说明。说明两个agent的实现,它们分别发送和接收消息。AgentSender行为由SimpleBehaviour类扩展而来。它发送一些消息给接收者。AgentReceiver(也扩展自SimpleBehaviour类)代替行为说明接收消息的不同方式。
共分享92篇相关文档