jade 笔记

一、Behavior

    所有的方法都在setup中添加,这对于一个简单的HelloWorld来说是适合的,但当Agent的有着复杂的行为时,setup就无法满足需求了,更重要的时,将所有的行为都放在setup中,会造成逻辑混乱。

    一个更好的方法时将Agent所有的任务或动作定义为Behaviour类,将Agent应该执行的动作(action)作为Behaviour的方法。这里注意到,BehaviourAgent的一个内部类,而action是内部类Behavior中的一个方法。接下来可以生成Behaviour的实例,并将之添加到Agent对象中。
        JADE
将基本的Behaviour分为3类:
        1. "One-Shot"
行为,它的动作只执行一次;OneShotBehaviour()
        2. "Cyclic"
行为, 它每次执行同样的动作;CyclicBehaviour()
        3. "Generic"
行为,当外界状态满足条件时,动作执行

       
下面的图给出Agent行为执行的路径。b.action()定义了行为的动作,b.done()定义行为是否执行完毕。这两者都是可以由用户进行扩展的。对于Cyclic行为,其done()方法返回值总是为false,所以总是能够循环执行,而One-Shot行为,其done()方法返回值为true,执行一次之后便不在执行。
       
另外,通过对上述三种行为的组合,可以完成更为复杂的任务。

二、ACLagent communication language

        Jadeagent之间进行通信使用的acl语言遵循fipa acl规范。一个acl消息通常包含这些参数:

sender:消息的发送者,用agent标志AID表示;

receivers: 接受agent消息的agent可以是多个;

Reply-to: 应受到回应的接受者;

Performative:标志该消息的目的,即发送者想要通过发送消息获取什么,通常有这样一些常值:REQUEST, INFORM, ACCEPT_PROPOSAL, REJECT_PROPOSAL, PROPOSE

Content: 消息的内容、语言,比如内容的编码格式;

ontology:双方都能够理解的消息内容的概念说明和语义描述。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值