智能Agent设计与开发开放实验讲义

  • 格式:doc
  • 大小:856.50 KB
  • 文档页数:53

《智能Agent设计与开发》开放实验讲义

实验1 JADE智能开发平台安装、配置及使用

实验目的:掌握JADE开发平台的安装方法及简单使用。

实验要求:提交JADE 平台安装和使用的实验报告。

实验内容:JADE开发平台的安装、配置、基本使用过程。

1、配置环境:

(1)在官方网站/下载最新版本的jade3.6压缩包。压缩包中包含四个部分:

①JADE-bin-3.6(存放jade的核心部件,它是jade框架平台的支持文件);

②JADE-doc-3.6(存放jade的说明文档,其中包括各种程序说明与教程资料);

③JADE-examples-3.6(存放jade的实例源代码);

④JADE-src-3.6(存放jade框架平台的源代码,jade为开源项目)。

(2)classpath设置:

在JADE-BIN-3.6\jade\lib\目录下包含:http.jar、iiop.jar、jade.jar、jadeTools.jar和commons-codec-1.3.jar五个文件。可以使用两种方法设置这些文件的系统路径:

①在命令行下cmd,输入:

Set CLASSPATH=

C:\JADE-bin-3.6\jade\lib\jade.jar; C:\JADE-bin-3.6\jade\lib\iiop.jar;

C:\JADE-bin-3.6\jade\lib\http.jar; C:\JADE-bin-3.6\jade\lib\jadeTools.jar;

C:\JADE-bin-3.6\jade\lib\comons-codec\commons-codec-1.3.jar

注意:这种方式每次使用时都需要重新输入。

②设置系统环境变量:

单击我的电脑图标,在快捷菜单中选择“属性”,在属性对话框中选择高级标签,单击“环境变量”按钮,设置环境变量。

在classpath变量中设置:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

C:\JADE-bin-3.6\jade\lib\jade.jar; C:\JADE-bin-3.6\jade\lib\iiop.jar;

C:\JADE-bin-3.6\jade\lib\http.jar; C:\JADE-bin-3.6\jade\lib\jadeTools.jar;

C:\JADE-bin-3.6\jade\lib\comons-codec\commons-codec-1.3.jar

注意:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 前面部分是java jdk的变量。

(3)环境正确性测试:

在CMD命令行里输入: java jade.Boot -gui (注意大小写),如果配置正确会跳出一个jade GUI窗口。

2、运行第一个示例:HelloWorldAgent

在JADE-examples-3.6\jade\src\examples\hello里面找到HelloWorldAgent.java示例程序。

(1)运行HelloWorldAgent:

首先,用记事本打开HelloWorldAgent.java ,将package examples.hello;这句注释掉(先去掉路径问题,后面会详细介绍)并保存修改。

然后,打开控制台,首先输入:

Cd E:\agent\JADE-bin-3.6\JADE-examples-3.6\jade\src\examples\hello

(让这个目录作为默认路径),

然后,编译agent文件,输入:

javac HelloWorldAgent.java

编译好了以后,输入:

java jade.Boot -gui myAgent:HelloWorldAgent

注意:myAgent是这个agent的名字,可以自由指定。HelloWorldAgent代表HelloWorldAgent类名。

输入上面的命令后,会跳出一个窗口,然后控制台会输出:

Hello World! My name is myAgent。

而那个窗口的左边的树结构下的叶节点上没有显示我们的myAgent,因为这个agent的代码中输入Hello World! My name is myAgent后,Agent自行销毁了自己。如果想要在jade

GUI中看到自己所建的agent,可以改HelloWorldAgent.java文件,将doDelete();注释掉,前面加//,保存重编译。再次使用上面的命令运行就可以在jade GUI中看到

myAgent @name1099/JADE的agent

3、利用Netbeans 和eclipse IDE平台调试编辑Agent程序。

(1)运行netbeans平台,添加库,添加库德步骤如下运行菜单 工具->库管理器,点新建库,然后输入库名,不妨设为jade,然后点 添加jar文件,将classpath中的几个jar文件都添加进来。在netbeans中新建一个常规项目,程序内容如下:

import jade.core.*;

public class HelloWorld extends Agent{

public void setup(){

System.out.println("Agent Started: Hello World!");

System.out.println("-----About Me:-----");

System.out.println("My local name is:"+getLocalName());

System.out.println("My globally unique name is:"+getName() );

System.out.println("-----About Here:-----");

Location l = here();

System.out.println("I am running in a location called:"+l.getName());

System.out.println("Which is identified uniquely as:"+l.getID());

System.out.println("And is contactable at:"+l.getAddress());

System.out.println("Using the protocol:"+l.getProtocol());

}

} 注意:这时有错误提示,说明jade.core库并未找到,需要在工程窗口中,单击库 的右键,将我们前面加入的jade库添加近来。然后设置运行命令,打开工程属性窗口,单击运行,在主类编辑框中输入jade.Boot,在运行参数编辑框中输入 -gui hello:jadetest.HelloWorld。确定返回。这时直接点netbeans工具条上的运行按钮,程序运行,会弹出jade rma运行窗口,并在netbeans下面的输出框中打印出结果信息。

(2)在eclipse中进行配置与netbeans稍有不同。不过步骤一样,首先要在eclipse中添加库。

在窗口-受选项中,选择java,展开其子项,在构建路径->用户库中,新建一个库,名称不妨定为jade,然后,添加jar,将我们前面所列出的jar文件都导入。第二步就是在新建的工程中添加库和设置运行参数。比如新建了一个项目,在导航器中右键单击其属性,在属性对话框中选择java构建路径,在“库”选项卡中单击按钮,添加库,选择用户库,然后下一步把jade添加进来。设置运行参数的时候,可以按如下步骤进行:选择编写好的agent类,右键单击,运行方式->运行,弹出运行对话框,在java application中选择新建,不妨起名为run in jade,设置main类为jade.Boot,在自变量中输入参数:在上例中则为, -gui

hello:jadetest.HelloWorldAgent。然后运行之,则会在工作区下面的控制台上输出结果,表示配置成功。

注意:其实在项目中不一定非要完全运行,而且我们一般要创建的是多个Agent。一般我们也可以把它编译为类之后,使用命令行启动图形界面的管理器,使用start new agent添加Agent即可。

实验2 Jade行为类

实验目的:掌握Jade行为类的使用方法。

实验要求:在简单智能Agent中添加行为类。

实验内容:编写一个简单的智能Agent,给智能Agent添加基本行为类。

1、Jade行为类简介

agent所作的工作都定义在了setup中,实际上它具有的行为和执行的动作都应该定义在behavious类中,我们可以对生成behavios类的实例,然后将任务或者动作代码放在对behavious类中的action方法中,action方法是必须要有的。Behavious类还有很多子类,分别对应着不同类型的behavious,包括SimpleBehaviour,sequences behaviors ,parallel

behaviors,cyclic behaviors等。

一个agent的行为表示它能够执行的任务,通过继承jade.core.behaviours.Behaviour来实现。然后在agent类中通过addBehaviour()方法将行为加入进来。当一个agent启动(通过setup()方法)后,行为可以在任何时间加入进来。

要定义Behaviour必须实现其action()方法,它定义了agent的执行时的实际动作,而done()方法指名了一个行为是否已执行完毕,是否要从行为池中删除。

一个agent可以并发执行多个behaviour。每个agent线程启动后执行的过程如下:

(1)SimpleBehaviour简单行为

下面的例子中我们不在setup()中打印信息,而是把它放在一个简单行为中:

import jade.core.*;

import jade.core.behaviours.SimpleBehaviour;

public class HelloWorldBehaviours extends Agent{

public void setup(){

SimpleBehaviour hello_behaviour = new SimpleBehaviour(this){

boolean finished = false;

// 覆盖 Behaviour 类的action这一抽象方法

public void action(){

System.out.println("Hello World Behaviour run: Hello World!");

System.out.println("-----About Me:-----");

System.out.println("My local name is:"+getLocalName());