关键词:
作为一名软件开发人员,我相信大家都对面向对象技术有个比较深刻的认识。面向对象技术的确为提高 软件开发效率做出了巨大的贡献。但是在我们的开发过程中,面向对象也暴露了一些不足,其中最主要的不足可以归纳为:面向对象技术并不是对现实世界的最贴切 的模拟。既然出现了不足,那么在这种特定的背景下,必然会出现一种软件开发理论和技术来解决软件开发中的问题。这就是智能体Agent。本文首先介绍一下 智能体的基本概念,然后开发了一个应用程序演示了利用智能体开发平台JADE来开发多智能体系统的过程。
所谓智能体是指驻留在某一环境下能够自主(autonomous)﹑灵活(flexible)地执行动作以满足设计目标的行为实体。针对上述定义,下面对智能体的概念作进一步分析:
1. 智能体驻留在环境中并需要与环境进行交互
任何智能体都不是孤立和封闭的,它驻留在一定的环境之中,需要与环境持续不断地进行交互。图1给出了智能体与环境交互的抽象视图。
2. 智能体是行为实体
智能体是一个行为实体,它具有一组动作并能执行这些动作,是动作执行的决策者和实施者。智能体的动作反应了其所具有的能力,这种能力主要体现在:智能体动作的实施有助于实现其设计目标并对其所驻留的环境产生影响。
3. 智能体能够自主地实施行为
智能体具有属于其自身的计算资源和局部于自身的行为控制机制,能在没有人类或其他智能体的直接干涉和指导的情况下运行,并能根据其内部状态和感知到的环境输入决定自身的状态,控制自身的行为。
4. 智能体有其设计目标
系统中的每个智能体都有其特定的设计目标。在其生命周期和持续运行过程中,智能体根据其设计目标和感知到的环境输入自主地决定自身行为。所以智能体的设计目标对其行为决策产生直接的影响。
在我们的日常现实生活中,有许多控制系统都可以视为智能体。例如,房间恒温调控系统中的恒温调节器就 是一个智能体。恒温调节器智能体的设计目标是要将房间的温度维持在用户设定的范围。它驻留于物理环境(房间)之中,具有温度感应器以感知环境输入(房间的 温度),并能对感知到的房间温度作出适时反应,从而影响所处的环境(调高或者降低房间的温度)。
JADE (Java Agent Development Framework)是一个完全由Java语言开发的一个软件框架,并且符合FIPA规范。通过这个中间件,极大地简化了我们程序员开发多智能体系统。JADE主要包括以下几个组成部分:
智能体赖以生存的一个运行时环境
程序员用来开发智能体应用的一个运行时库
一系列图形工具,帮助用户管理和监控运行时智能体的状态
安装
在进行一系列的开发之前,我们需要先下载并且安装JADE环境。您可以从JADE的官方网站http://jade.tilab.com/ 上下载JADE的最新版本,目前为3.4发布版本。一旦你下载完毕,请解压缩安装包,把其中lib目录下的4个jar文件放入您的ClassPath系统环境变量中。打开命令行,输入Java jade.Boot -gui,您将看到如图2所示的图形化用户界面。