请输入您要查询的百科知识:

 

词条 jadex
释义

Jadex是一种智能代理的BDI(Belief-Desire-Intention)推理机。推理机实际上可以与不同的agent中间件一起使用,中间件可以提供交流环境和控制功能。

BDI模型概念是由Bratman提出后Rao和Georgeff发展成为适用于多代理系统的软件架构。建立与这之上的系统叫做PRS(Procedural Reasoning Systems)。Jadex是从已有的BDI系统如JACK,发展过来的,利用内置目标协商方法,克服了一些BDI的弱点如:如何协调目标冲突。

在Jadex系统中,agent包含一组信念(beliefs),它可以是任何类型的Java对象;目标集(Goals)表示要实现的目标;规划库(plans)用来具体实现agent目标的方法。

Jadex-BDI模型示意图图中描述Jadex中,基于BDI模型的agent体系结构,该结构中包含四个部分:信念库、反应推理机、目标库和规划库。Agent启动后,响应外界消息和内部事件(应用事件,条件事件,目标事件),反应推理机处理这些事件和外界消息,选择规划库中的合适的规划去执行。当前的信念库决定了agent的规划执行,而规划的执行又可以改变信念库,改变的信念将触发内部事件,产生新的目标和新的规划执行。

Jadex的BDI模型

智能代理必须对一些事情做出判断,如玩游戏,选择一种安全的方法,还是选择风险高,但是成功的话可以有更多好处的方法。为了实现agent的智能,人们提出了BDI, AOP, 3APL、SOAR等agent体系结构。其中影响最广的是Bratman提出的BDI模型。它由Belief,Desire,Intention这三种可以生成动作,信念和得到信息的精神状态组成。Rao和Georgeff做出了BDI模型的可执行程序,而其中BDI的概念演变成信念、目标和规划。 Jadex把BDI模型引进到Jade代理平台中,并且可以从agent内部生成代表信念、目标和规划。Jadex里agent拥有的信念可以是任何一种Java对象,存储在信念库里。目标代表了可以影响到agent行动的具体的动机(例如,要达到一种状态)。为了达到目标agent执行规划。代表规划的Java代码中定义了,针对一个目标的解决方案。

信念库

信念库存储着agent相信的事实,也是agent内一个可以访问的数据。信念库中存储的信息与面向对象理论中的对象的属性来说,稍微抽象一点,可以说是对agent的知识的整体视图。Jadex里信念非常容易输入,不支持推论系统。信念库中的信念包含一个字符串代表自己名字(与关系数据库中的表相似)。信念名映射到信念值,而信念值可以是一个Java对象。信念库支持单数的信念和信念集合。Jadex信念库中实现了与OQL相似的查询语言,一部分信念改变时将会引发规划或目标,用表达式代替信念值,可以在运行时自动附值。

目标的结构

与传统的BDI系统不同,目标是Jadex系统的关键概念。Jadex中目标也是一个具体的短时间的要求。目标被执行或不再需要为止为止,agent将会一直寻找合适的行动。与别的系统不同的是Jadex中的目标可以是相互矛盾的。为了分离将被采纳的目标和已被激活的目标,Jadex采用了目标的生命周期的概念,其中目标可以是待选、激活、暂停等几个状态。一个目标被采纳时,它是待选状态。应用程序中应该定义目标协商机制以决定如何改变目标的状态。有些目标是需要特殊的环境才能有效,如果环境不符合要求目标将会暂停。

Jadex中有四种目标类型:执行、达到、询问、维持,执行类型是必须执行但不必得到确切结果的目标类型。比如说捡垃圾的机器人在发现垃圾之前,只能是四处移动并寻找垃圾。这样的目标可以由一个固定的规划去执行。达到类型定义了一种抽象的目标状态,而没有固定怎么去实现。比如,在一个战略游戏中电脑需要得到一种资源。这样的目标电脑可以以自己生产或与别的玩家进行交易来达到。询问目标体现了一种信息需求。如果暂时无法提供这个信息,将执行相关规划收集所需要的信息。比如机器人需要倾倒垃圾,首先得知道垃圾箱的位置。如果机器人没有垃圾箱的信息的话,就需要寻找垃圾箱。维持目标是一旦达到目标状态就要维持这个状态。

Jadex系统中,目标是对象由带属性对象实现。“达到”目标的目标状态可以由表达式表示,可用来检查是否达到目标。目标的属性如目标的名字,可以促进规划的选择,如:可以指定一个规划来处理一个特定名字的所有目标。目标的参数也可以有效地指导规划的执行。如:寻找一个FIPA directory facilitator服务,并限制结果集的长度。

被采纳的目标存储在目标库中。Agent拥有一系列的最高优先级的目标,可供外部调用。目标还可以拥有子目标,目标和子目标合起来形成目标树。

规划的规格

Agent的执行部分在规划里。Jadex中agent的规划由两部分组成:规划头和相关的规划体。规划头是指在ADF文档中定义的规划信息,它为规划体的实例化和执行指定环境。规划体是用具体的Java类实现的Java程序,它继承了Jadex定义的ThreadedPlan类或NonThreadedPlan类,可以实现一些目标或对发生的事件做出反应。线程规划代码位于body()方法中,而非线程规划代码位于action()方法中。

在运行时,规划体进行实例化来处理事件和达到目标。而规划体的开始按钮在规划头里,当相关事件发生时将被执行。还有一种规划叫初始化规划,在agent生成后就执行。运行中的规划生成一个额外的过滤器来等待特定的事件发生,以触发接下来的规划步骤。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/10 11:51:36