案例Agent

2024-06-09

案例Agent(精选5篇)

案例Agent 篇1

随着信息技术的进步, 建筑各专业设计逐步迈向计算机三维仿真设计, 实现建筑信息化模型BIM的搭建。近几年来, 在建筑给排水设计领域, BIM技术的应用也取得了很大的进步, 出现了一些新的软件产品和应用。但是设计成果的评价主要依赖于人工, 在设计软件中缺乏对设计方案的综合评价功能, 而这已经远远落后于当前的形势。给排水工程是一个复杂系统, 不仅要考虑技术因素, 而且要考虑到业主、顾问方和施工方等不同利益群体的诉求。如果能在给排水设计软件中引入综合评价, 将大大提高设计的效率和经济性。

1 案例推理

案例推理 (CBR) 是一种利用类比推理方法的心理学方法而产生的推理方式, 它基于问题求解过程中依赖于以往处理类似问题的经验和知识, 再针对新情况调整, 进而得出新问题的求解方案, 同时形成新案例。CBR方法能更加简便、快捷地获取知识, 同时提高推理的质量和速度[1]。

CBR的核心是:不必从头开始进行问题求解, 而可以使用类似问题的求解经验。在设计给排水设计过程中, 可以采用CBR思想将历史设计用于当前, 在生成新的设计时可以充分利用以往的成果从而避免了部分重复劳动。但是, 使用传统CBR系统缺乏自主性、灵活性和协作性, 无法考虑到多方的利益诉求和博弈。

2 案例agent

agent是能完成一种或者多种功能的软件模块。它在一定的环境中独立, 具有一定的推断力和自主性, 同时能与系统中其他代理通信, 并能对环境做出反应。而多代理 (Multi-Agent) 较好地解决了分布式系统中的通信和交互问题, 可以实现协同工作[2]。

常规CBR案例库无法拥有自主行为, 由案例检索控制模块进行控制。常规CBR系统引入Agent技术后, 可以改造为具有感知和服务能力的案例Agent。

案例Agent可以主动提供用户所需的信息, 并能够感知环境的变化与需求。重要的是, 案例Agent能与其它Agent进行通讯和协同, 从而完成复杂问题。由于案例Agent具备常规CBR系统没有的灵活性、自主性与协作性。如果将案例agent模块加入到现有的给排水设计软件中, 可以实现设计过程的改善。

3 给排水设计方案生成系统

给排水案例Agent的结构如图1所示。

它由五个模块组成。其中通讯模块获得、定义和选择给排水案例Agent得到的信息, 并与系统中其它部分之间进行信息交换。规划求解模块是主要功能部分, 它根据感知的信息, 确定求解策略, 进行求解。具体的功能包括案例检索、案例修改等。认识学习模块充分应用案例Agent的智能, 案例Agent内部通过学习发生相应的变化, 包括案例评价、案例管理等功能。给排水知识部分包括一个给排水方案库, 以及在给排水设计所需要使用的其它知识, 如国家标准、行业规范等。协作模块完成案例Agent与其它Agent相互协作的功能。

利用案例Agent的自主性、灵活性和协作性将传统的CAD设计系统中加入案例Agent, 对设计与协作能力都有很大的提高[3]。

生成的包含案例agent的给排水设计软件系统结构如图2。

该系统设计成分布式网络, 其中包含了给排水案例Agent。设计师通过通讯模块与给排水案例Agent的内部进行通讯, 由给排水案例Agent生成设计方案并提交给系统, 设计师得到该设计方案。给排水案例Agent中包含了案例库、案例检索、案例修改、案例库管理等模块, 功能也得到了进一步的加强。为了实现评价和交互, 在系统中还预留了其他Agent接口, 业主、顾问方、施工方都可以以Agent的形式加入系统, 协同完成设计和评价。同时设置了专门用于控制设计过程的控制Agent。

4 结束语

本文提出的包含案例agent的给排水设计软件系统采用分布式体系, 通过多个Agent协同工作, 完成给排水设计。同时, 多agent的应用能够更好地进行设计方案的评价和修改。

参考文献

[1]孙锋.基于案例推理的保险欺诈案例分析系统设计[J].闽江学院学报, 2008, 29 (5) :31-34.

[2]金士尧, 黄红兵, 范高俊.面向涌现的多Agent系统研究及其进展[J].计算机学报, 2008, 31 (6) :881-895

[3]王征, 何华灿.一个包含案例Agent的产品包装设计方案生成系统[J].微电子学与计算机, 2007, 24 (2) :191-193.

Agent口碑辩论模型研究 篇2

商务谈判在全球经济发展中显得日益重要。借助分布式和灵活、自治等人工智能优势,Agent能帮助谈判方更好更快达成一致,因此Agent谈判已经成为商务谈判的研究重点和热点之一[1]。

传统的Agent谈判研究采用博弈论[2]和启发式[3]的方法,要求Agent具有完全谈判信息,难以适应动态谈判环境。融入了辩论的Agent谈判(以下简称为辩论)允许Agent 在谈判过程中提供自己接受或者拒绝提议的论据,并通过辩论的方式影响对手的谈判偏好[4,5,6,7],因此能较好解决该问题。

口碑是指信息传递者与信息接收者之间,通过面对面或经由电话所产生的信息沟通行为[8]。口碑的传播过程就是信息交流的过程。由于口碑具有高可信度、双向、更具活力和信息受干扰的影响小等诸多特点,因此在Agent辩论中具有相当重要的作用[9,10,11]。

相关研究中,文献[4]提出了Agent辩论中常用的威胁、奖励和申辩的形式化模型;文献[5]基于经济学中的多属性效用理论,借助对信念修正算子这一工具的计算和比较,对信念进行量化和排序,提出了一种辩论式的多Agent多议题协商方法;文献[6,7]对文献[4]的研究进行了改进,提出了一种较为有效的算法。文献[9,10,11]对人与人之间的口碑及其传播进行了量化研究,并提出了相应模型。文献[12]提出了一种基于Agent的模拟方法,对新产品的口碑如何在消费者的信息网络中传播进行了建模和仿真;文献[13]对口碑在Agent社会网络中的学习方面进行了一定程度的研究,提出了相应的模型;文献[14,15]结合博弈论、定位理论和启发式的方法,通过对口碑传播开始节点的选择,提出了作为负面口碑的谣言如何在Agent社会网络中传播的相应模型。

纵观以上文献,都还没有系统研究口碑传播对Agent辩论的影响。因此,本文拟在文献[4]的基础上进行研究,提出Agent口碑辩论模型,并对其进行验证。

1 Agent口碑辩论模型

Agent口碑辩论模型着重考虑口碑在Agent辩论中的效用,而效用的有效性需要通过一定的评价机制来说明。因此,为更好阐述该模型,同时保证模型的整体性,先将模型划分为描述和评价两个主要部分,从这两个角度对模型进行阐述。此外,在建立该模型之前,还应先对口碑进行分类,将其分为正面口碑和负面口碑:正面口碑可以给Agent辩论带来促进双方合作的正面效应,负面口碑则会给Agent辩论带来阻碍双方合作的负面效应。并且,根据谈判中的议题不同,还可以对正面口碑和负面口碑进一步分类。例如,对于价格口碑,可以分为正面价格口碑和负面价格口碑两种。

1.1 模型的描述部分

为更好阐述模型,先假定2个Agent之间即AgentaAgentb正在就某商品交易进行谈判,但前者的提议与后者的期望相差较远,谈判陷入了僵局。此时,为了节约谈判成本,提高谈判效率,实现合作,AgentaAgentb提出带有辩论的提议,辩论中除了包括文献[4]所提出的辩论策略外,还包括其他Agent对Agenta的口碑,该辩论提议可形式化表示为:

P(ab)={a,b,s,w}

该模型中,各元素的解释如下:

(1) a表示辩论方,即Agenta;

(2) b表示被辩论方,即Agentb;

(3) P(ab)表示AgentaAgentb提出的辩论;

(4) s表示AgentaAgentb提出的辩论策略,例如奖励或威胁等,且ssb

由于整个辩论过程是交互和对称的,因此Agentb也可能向Agenta提出相应的带有口碑的辩论。即:

P(ba)={b,a,s,w}

也就是说,模型的描述部分具有一定的通用性。但是,模型中的变量所属集合需要作相应修改,即ssa

1.2 模型的评价部分

以上讨论的是在2个Agent之间谈判出现僵局时,其中一个Agent为促进双方合作而做出的考虑口碑的辩论提议,但该模型应同样适用于多个Agent之间的辩论。而在多Agent辩论中,为体现该类辩论的有效性,需要对如何对该类辩论评价进行量化和分析比较,即模型的评价部分。

为简化研究,假定Agenta,Agentb,Agentc正在就某商品交易,Agenta,Agentb为该商品的买方,Agentc为卖方。Agenta,Agentb的购买条款都与Agentc的销售期望相差较远,Agenta,Agentb又都希望Agentc尽快同意其购买条款,因此Agenta,Agentb都向Agentc提出带有口碑的辩论。

此时,Agentc同时要对AgentaAgentb所提出的辩论做出比较和选择。以AgentaAgentc的辩论为例,相应的评价为:

E{P(ac)}=E(aλ(a)+E(sλ(s)+E(wλ(w)

该评价中,各元素的集合均属于Agentc,并且:

(1) E{P(ac)}表示在AgentcAgenta所提出的辩论的评价值;

(2) E(a),λ(a)表示AgentcAgenta本身的评价值和相应的权重值;

(3) E(s),λ(s)表示AgentcAgenta所提出辩论中的策略的评价值和相应的权重值;

(4) E(w),λ(w)表示AgentcAgenta所提出辩论中的口碑的评价值和相应的权重值。

由于本文的研究重点在于考虑Agent的口碑辩论模型及评价,因此,重点研究该评价部分中的E(w)值该如何计算。为此,先对Agent口碑辩论力度进行定义:

定义1 Agent口碑辩论力度 在Agent辩论过程中,其中一方Agent采用考虑口碑的辩论方式促使另一方Agent尽快与其合作,该Agent为评价此辩论而对该口碑进行量化,计算的值称为Agent的口碑辩论力度,即上述评价中的E(w)。

同理,关于E(w)的计算,以交货期、价格和质量三方面因素为例,可得具体计算公式如下:

E(w)=E(dλ(d)+E(pλ(p)+E(qλ(q)

(1) E(d),λ(d)表示AgentcAgenta在交货期口碑方面的评价值和相应的权重值;

(2) E(p),λ(p)表示AgentcAgenta在价格口碑方面的评价值和相应的权重值;

(3) E(q),λ(q)表示AgentcAgenta在质量口碑方面的评价值和相应的权重值;

在上述计算公式中,如该项口碑为正面口碑,相应的评价值为正,如该项口碑为负面口碑,相应的评价值为负。此外,该部分对Agentb也同样适用,即具有通用性,而且除交货期、价格和质量外,如考虑其他因素,也可根据此评价部分同理相加得到。

2 算例和分析

为验证以上模型的有效性,假定以上Agent谈判场景中,Agenta,Agentb,Agentc所提出辩论的策略中包括奖励和威胁两种,辩论的口碑中包括交货期、价格和质量三个指标,算例中拟定的值为1—10之间的整数,权重拟定的值为0.1-1之间的一位小数。

首先,拟定AgentcAgentaAgentb的各项口碑评价值及相应权重值,见表1和表2所示。

AgentcAgenta所提出辩论中的口碑辩论力度为:

E(w)=3×0.5+6×0.3-5×0.2=2.3

AgentcAgentb所提出辩论中的口碑辩论力度为:

E(w)=4×0.4+5×0.2-4×0.4=1

在此基础上,假定AgentcAgentaAgentb自身的评价在于以往交易次数,同时假定Agenta提出的辩论中的策略为奖励,Agentb提出的辩论中的策略为威胁,给出相应的评价值和权重值,见表3和表4所示。

AgentcAgenta所提出辩论的评价值为:

E{P(ac)}=3×0.3+2×0.2+2.3×0.5=2.45

AgentcAgentb所提出辩论的评价值为:

E{Ρ(bc)}=2×0.5+3×0.3+1×0.2=2.1

可见E{P(a→c)}≻E{P(b→c)},Agentc认为Agenta提出的口碑辩论比Agentb提出的口碑辩论说服力度大,因此选择Agenta完成交易。结果表明,Agenta辩论成功,Agentb辩论失败。

3 结 语

以往研究虽然在口碑传播方面做了相当的研究工作,但计算较为复杂,不利于Agent辩论功能的充分发挥,也较难得到验证。相比之下,Agent口碑辩论模型更进一步考虑了Agent如何模拟人类理性思维谈判,而且模型复杂程度低,但通用性和实用性强,同时更具一般性。本文所提出的模型是对口碑在Agent辩论中的作用及影响的初步探索。下一步将进一步考虑时间等其他因素对Agent口碑辩论模型的影响。

摘要:基于辩论的Agent谈判能提高Agent在动态环境下的谈判效率,保证谈判效果。口碑则能强化辩论效果。为保证模型的整体性,将对Agent口碑辩论模型的阐述分为描述和评价两个部分;对口碑进行分类,结合形式化理论,提出Agent口碑辩论模型的描述部分;提出口碑辩论力度的概念,并对其进行量化,提出Agent口碑辩论模型的评价部分;最后通过算例对模型进行验证。

一种Agent的协作模型 篇3

1.1 Agent的定义

当前对Agent还没有一个确切的定义,我们可以简单地认为一个Agent是一个软件程序或者是一个机器人,但是它们有一个共同的特性,即它们对环境有一个感知过程并且依照它的经验或者预先储存在其内部的知识可以自治地做出某些行为。通过这样的一个特性大多数研究者一般认为:Agent是一个具有知识、目标、能力,并能单独或在人的少许指导下进行推理决策,并能完成一定任务的能动的实体。

这里所说的Agent,是多Agent系统的一个基础,它研究的是多Agent系统的一个微观世界,即Agent的内部结构,动作执行过程等等,我们主要研究的是多Agent系统,即Agent之间的结构关系。

1.2Agent内部的分层结构

在我们定义的Agent的结构中。由于Agent的动作过程比较复杂,因此采用一种分层的结构,这样就可以有效地降低Agent模型的复杂程度。在这里我们将Agent定义成一个三层的结构,由外到内分别是感知通信层、精神状态层、动作决策层。其中感知层主要负责对世界的感知以及同其它Agent的通信,在这一层中提供了两个函数,一个是obs()另一个是comm(),前者是某个Agent对世界观察的函数,后者是Agent之间相互通信的函数。但是对世界的观察并不会直接影响动作的决策,而是先将感知到的结果存入到感知缓冲器中,决策层会根据感知缓冲器以及精神状态层中的内容来决定Agent的下一个动作。除此之外感知层还要负责与其它的Agent达成协议,相互协作地工作。精神状态层中存放的是一组公式的集合,其中要包含两个函数ins(α)和del(α),前者是将精神状态α添加到精神状态层中,后者是将精神状态α从精神状态层中删除。

1.3 Agent的动作过程

Agent的动作可以分为内部动作和外部动作两种,前者是Agent对环境的观察、Agent精神状态的更新以及所有其它对精神操作等动作,后者则是Agent内部作出决策后Agent试图改变环境所要做的动作。

Agent动作的起源是Agent对环境的观察或者与其它Agent的通信。Agent首先对环境进行观察,并将它感知的结果放入它的感知缓冲器中,Agent对其内部的感知缓冲器进行分析,最后决策出下一个所要执行的动作。

Agent的动作有时会比较复杂,这样我们就可以将Agent的动作分解成一系列的子动作,比如Agent的某个动作是a,这个动作就可以分解成a1:a2:a3(假设可以分解成3个子动作),那么在这个动作的执行中就可能有四种不同的结果,a1+:a2+:a3+,a1+:a2+:a3-,a1+:a2-,a1-(ai+表示子动作完成,ai-表示子动作失败),只有当三个子动作全部都完成的时候,动作a的返回值才是成功。而当某个子动作失败时,我们的策略是从下面的三个选项中选择一个:(1)忽略某个程序执行的前提条件。(2)重新执行一次该子动作。(3)废除该子动作。

当然,一个Agent的程序不可能是某一个单一Agent动作,它必然是某些动作的一个组合,下面我们给出这些动作的组合形式。

“;”为动作连续执行的组合形式。例如,α;β即动作α执行结束后执行动作β

“+”为动作的选择。例如,σ=α+β,即动作σ是从动作α和动作β中选择一个并执行。

“×”为动作的并行执行。例如σ=α×β,即动作σ的执行是将其分解为动作αβ并行的执行。

“*”为动作的重复执行。

2 多Agent结构

由于单个Agent的能力有限,一般情况下一个系统中会存在着多个Agent。它们相互协作,共同完成某个目标,这样就使得整个系统的工作能力以及智能性提高了许多。

在多Agent的系统中,为了更准确地进行描述,我们使用ρ表示某一个Agent的状态。Agent的状态中包括事件的一个序列我们使用ε表示。Agent的状态就可以定义成一个四元组的形式,即ρ=<ε,AM,AS,AG>,其中AM为Agent精神状态的集合,其中包括B,D,I分别表示agent的信念、愿望、意图(详细说明见参考文献[1])。AS为单个Agent执行动作的集合。AG为组合动作的集合。Agent的状态是不断变化的,其它Agent的影响或者Agent所在环境的改变都会使Agent的状态发生改变,即通过某个触发事件,Agent的状态就会从某一状态转换到另一个状态。一个多Agent系统的执行过程可以理解成:在系统中的每个Agent都在执行自己状态的转换,即:ρ1→ρ2→ρ3……。这样一个多Agent系统就是在每一个Agent的状态转换中进行的。

显然,如果没有一个好的协作结构,多Agent的执行过程会显得很混乱,一个较好的协作结构会使得Agent之间的通信变得更加的方便。一般情况下协作模型要包含以下的元素:

· 协作实体,可以并发执行的能动的实体,即每个Agent实体。

· 协作的媒体,它允许参与的实体进行相互协作。媒体同样为实体构建一个构架提供了服务。

· 协作规则,它决定了实体是怎样通过协作媒体来进行相互协作的。

在这里我们引入“市场”这一概念,在市场中含有两种形式的Agent,一种是协作行为的参与者,我们在这里叫作参与Agent。另一种是对这个市场结点进行管理,并且对参与Agent提供服务的Agent,我们在这里叫管理Agent,市场必须要有一个与其相对应的管理Agent。市场中的每一个参与Agent都要将它们自己的任务以及各自的工作背景、知识记录在这个市场中,这样管理Agent就可以通过参与Agent所请求的任务以及参与Agent所能提供的行为来进行相应的匹配。参与Agent进入市场中时,首先添加其想要得到的事件以及可以提供的动作,管理Agent在所有Agent想要得到的事件和可以提供的动作中进行匹配,当匹配成功时管理Agent对相互协作的Agent制定协议,最后通知相互协作的Agent进行工作。其具体的执行过程如图1所示。

3 实例:基于Agent理论的模式挖掘系统

数据挖掘是一个多步骤的过程,并且是一个反复的过程,数据挖掘的结果可能会影响到前一步的数据集合,这就要求每个步骤之间都有通信的功能。数据挖掘系统中主要步骤有:数据准备、数据预处理,数据挖掘等。当前的数据挖掘算法中主要是针对项目集、序列和树的挖掘,而针对图挖掘的研究是比较少的。在这里我们仅仅对三个Agent进行描述,它们分别是数据处理Agent、数据挖掘Agent以及人机界面Agent。

数据预处理Agent的主要功能是数据库中的数据进行分析,并且对其进行数据抽取、数据处理、数据变换。其中数据处理部分包括消除脏数据、消除重复记录等数据清洗操作,还包括连续属性离散化等降维操作。

对处理后的数据进行数据挖掘是整个数据挖掘系统的核心,并且也是最复杂的一个步骤。在这里我们可以认为环境P(关于环境的详细描述见文献[5])为数据的集合,Agent对P进行观察,并在Agent的内部对数据进行处理,AS为Agent对数据处理过程的一个集合。由于数据挖掘过程很复杂,因此可将数据挖掘Agent定义成一个市场。

市场中的每个参与Agent对其相应的模式进行挖掘,如参与Agent的集合包括树型模式挖掘Agent、序列模式挖掘Agent等等,而对于每一个参与Agent的挖掘过程可以按照不同的数据挖掘算法进行。这样在不同的模式之间就可以并行地处理,而这个市场的管理Agent任务是将经过预处理的数据按照其不同的模式分配给相应的Agent。当然这个市场还要与其它的Agent相互连接,使数据挖掘成为一个整体的系统,其具体形式如图2所示。

人机界面Agent:要做到完全自制的系统是不太现实的,因此要与用户有一定量的通信,此时便需要一个来完成用户和系统之间通信的智能体。用户通过该Agent“告诉”系统哪些信息是该用户偏爱的。这个Agent还要注意信息的暂时性,即用户在某一特定的时刻会对某一些特定的信息感兴趣,而在其他时刻对这类信息却不感兴趣。人机界面Agent目的主要是通过Agent产生一组规则的集合,使用这些规则来预测用户的爱好,系统初始状态会给定一些规则,然后在用户的使用过程中逐步地修改并且适应用户。

4 结束语

本文以形式化的方法描述了Agent的内部结构、动作执行过程以及多Agent的结构框架,并且将所给出的框架和数据挖掘系统相互结合,提出了基于Agent的数据挖掘系统,使系统的智能性和通用性都得到了很大程度的提高。

参考文献

[1]Maria Fasli On Commitment,Roles,and Obligation Department of Com-puter Science,University of Essex Wivenhoe Park,Colchester CO43SQ,UK.

[2]Adorjan Kiss and Joel Quinqueton LIRMM.Learning User Preference in Multi-Agent System Multi-Agent Team.161rue Ada.F34492Montepel-lier Cedex.France.

[3] Stuart Rssell,Peter Norvig.Artificial Intelligence A Modern Approach.

[4]Wieke de Vries,Frank S.de Boer,Wiebe ven der Hoek an John-Jules Ch Meyer.A Truly Concurrent Model for Interacting Agents Utrecht U-niversity,Institute of Information and Computing Sciences.

[5]David Kinny.Reliable Agent Computation:An Algebraic Approach.In-telligent Agent Laboratory Department of Information System University of Melbourne.3010Anstralia.

[6] Gipsy Lane,Headington,Oford,Ox3,ONW,UK.The Role of Caste in Formal specification of MAS.School of computing and Mathematical sciences.oxford Brooles University.

多Agent系统的研究 篇4

近年来,随着计算机技术和信息科学技术的快速发展,对Agent及多Agent系统的研究成为分布式人工智能(DAI)研究的一个热点,并且被赋予高于早期的分布式问题求解型的人工智能的一些特点。多Agent系统(Multi-Agent System)是一个高度交叉的研究领域。它吸取了不同领域的内容,如经济学、逻辑学、生态学、社会科学和哲学。由于它更能体现人类的社会智能,更加适合开放的、动态的社会环境,因而引起了各领域研究人员的浓厚的兴趣,并广泛应用于科学计算、计算机网络、电子商务、企业管理和交通控制等领域。

2 多Agent系统的概念

多Agent系统可以被定义为:由多个问题解决者(Ageni)组成的松散的网络,其中的Agent相互作用从而解决单个Agent由于能力或知识上的不足而无法解决的问题。MAS的主要特点在于,其中的每个Ageni都不具备解决问题的足够的能力或知识,这些A-gent同时运行,不但所需的数据是分散的,而且没有全局控制系统。

3 MAS的关键问题

在一个MAS中的多个Agent需要相互通信、相互协调、相互协商与相互协作,所以这些也就成为MAS研究中的关键问题。

3.1 通信

在多Agent系统中,一个Agent需要和其他Agent或环境进行通信和交互,单个Agent所处的环境需要能够为Agent的通信和交互提供个一个基本的结构,Agent的这种能力来源于Agent的感知能力和动作能力。

Agent间通信的基本作用是提供信息交换的方法,这些信息包括规划、部分结果和同步信息。在分布式人工智能中,Agent的通信主要是通过对话完成的,其中Agent的角色可以是主动的、被动的或二者兼有。Agent通信中有2种基本的消息类型:声明(Assertions)和查询(Queries)。每个Agent,无论是主动还是被动,必须要有接收消息的能力。

3.2 协调

协调是指具有不同活动目标的多个Agent对其目标、资源等进行合理安排,以协调各自行为,最大限度地实现各自目标。协调包括定时地为其他Agent提供必要的信息、保证主体之间活动的同步、避免冗余的问题求解等。

3.3 协商

协商是指多个Agent通过通信,交换各自目标,直到多Agent的目标达成一致或不能达成协议。它是实现协同、协作、冲突消解和矛盾处理的关键环节,其关键技术有协商协议、协商策略、协商处理三种。

3.4 协作

很多协作所采用的基本策略就是分任务,然后把任务分配或分布到不同的Agent上,这种方法可以降低任务的复杂度。然而,系统必须要决定如何分解,分解过程必须要考虑Agent的资源和能力,并且还必须考虑在子任务之间可能存在有交互,在Agent之间还存在有冲突的问题。这就要求Agent之间必须能够合作求解问题、完成任务。但是系统的任务分解要考虑子问题的交互性、协调性、数据相关性等,而任务分配时通常是采用基于合同网机制来分配任务。最终各个Agent对子问题进行求解并综合单个子问题的解。

总之,通信是MAS中进行协调、协商和协作等活动的基础。多个Agent之间通过通信完成自己或整体的任务。

4 构造MAS的组织模型

4.1 MAS组织的概念和基本特性

多Agent系统由一组分离的智能主体构成,为了它们能协作完成各种任务,需建立组织,以进行管理和协调,使多个Agent之间协作完成目标。多Agent系统组织的设计除具有一般组织的基本特性外,还必须使所建立的组织在计算机上易于实现,组织的工作方式适合于计算实体之间的互操作。

多Agent组织定义为由多个智能Agent组成的相对大的系统,是为了实现一定目标而进行合理的管理和协调,并具有一定边界的计算实体的集合。

多Agent组织的基本特性是:具有社会性的计算实体的集合和特定的目标;是承诺、制度的集合体;是一个开放的信息处理系统也是一个松散耦合的分布系统。

4.2 MAS组织建模的设计原则

MAS组织的建造一般要遵循以下设计原则:(1)目标要统一,目的是有利于实现组织目标;(2)要合理地进行分工协作。(3)统一指挥原则,有利于提高管理的效率;(4)控制宽度原则;(5)职权和职责必须协调一致;(6)稳定性与适应性相结合。

4.3 MAS组织建模的过程

通过下面步骤建造一个MAS组织的模型。

(1)确定层次组织中各级机构的目标;(2)为了保证业务活动的分类更科学更合理,要实现目标中需要的各项业务活动或任务,细致地分析实现各级目标所需的所有业务活动,同时还要分析与业务活动相关的可用资源、设施以及利用它们的最佳途径;(3)确定问题求解管理流程的总体设计;(4)设计职能,职能是问题求解管理流程的具体环节,也是组织结构的基本单位。由各类职能形成基层组织,再由基层组织形成上一层管理子系统,直至构成系统的总体结构;(5)定义管理职能和问题求解职能;(6)建立协同工作过程模型和控制模型,它详细说明协同工作模式、职能之间的协作关系、交互控制协议和控制机制等内容;(7)建立完整的组织结构,通过职权关系和信息联系,把各层次、各部门联结成为一个有机整体,形成最终的组织系统图;(8)确定Agent承担的职能;(9)定义Agent实现策略;(10)建立组织管理策略。

5 多Agent技术的应用

5.1 多机器人系统

自主式多机器人系统,尢其是移动机器人系统,其协调十分重要。基于决策论的MAS策略适于多移动机器人的行为协调。多Agent技术可提高多机器人系统的鲁棒性、柔性及容错能力,增加系统的自治性。

5.2 计算机网络

多Agent技术以其独特的自主移动、异步和智能化特性,能较好地适应互联网的高度分布、异构和动态特性,可以弥补传统信息服务模式在复杂的互联网环境下的诸多缺陷。因此,MAS技术已成为替代传统C/S提高网络信息服务质量的首选工具。

5.3 软件工程领域

面向Agent的软件开发方法的优势是数据、控制、资源的分布性、自然的表述方式且便于现有软件系统的集成。它可以描述一些复杂的、有生命的、有行为的组件,并且使它们能与其它一些独立开发的类似组件灵活交互。

5.4 其他应用

多Agent技术还用于过程智能控制、远程医疗、网上数据挖掘、交通控制、信息过滤、评估和集成以及数据管理等。

6 结束语

多Agent技术是当前分布式人工智能及计算机科学领域的研究热点。作为一个新的学术热点,关于多Agent系统技术的研究多数尚处于初级阶段。随着INTERNET和多媒体等信息技术的飞速发展,对MAS研究的需求更加现实地体现出来,这将进一步推动多Agent理论研究的应用技术的快速发展。我们相信随着多Agent理性模型、行为模型的不断完善,面向Agent的实用技术的研究将会成为人工智能的一个重要方向。

摘要:多Agent系统(MAS)是当前分布式人工智能(DAI)的主要研究方向之一。介绍了多Agent系统的背景和概念,着重分析了MAS的关键问题和构造MAS的组织模型,最后给出了多Agent系统的应用。

关键词:Agent,多Agent系统,组织模型

参考文献

[1]蔡自兴,徐光祐.人工智能及其应用[M].北京:清华大学出版社,2004.

[2]朱福喜,杜友福,夏定纯,等.人工智能引论[M].武汉:武汉大学出版社,2006.

[3]王学通,王伟.多Agent系统研究概述[J].现代电子技术,2006,10[225]:65-67.

[4]李海刚,吴启迪.多Agent系统研究综述[J].同济大学学报,2003,31[6]:728-732.

[5]郭海霞,吴捷.多Agent技术的研究进展[J].河南科学,2004,22[2]:242-246.

[6]李薇,张凤鸣.多Agent技术研究与应用[J].软件时空,2006,22[8-3]:293-295.

Agent软件系统研究 篇5

关键词:Agent,软件系统

1 引言

Agent是近年来分布式人工智能领域研究热点之一。Agent内涵丰富,其含义随环境的变化而改变,至今还没有形成一个统一的定义。一种普遍的观点认为,Agent通常是指在一定环境中持续自主运行的实体,是一种帮助人们完成特定任务的软件。在网络环境中,它能够协助人们定位、存取筛选和集成,并能根据外界环境及用户要求的变化不断地调节自己。Agent的主要特点是自主性、社会性、交互性、进化性和可通信性。

现在大多数的软件工程方法学都是基于面向对象的方法。而商业性质MAS工程来说,急需面向Agent软件工程方对其进行指导。传统的面向对象的分析与设计是在面向对象编程出现之后才兴起的,但是Agent作为比对象更高层次的抽象,具有更智能、更灵活的性质,应该是在粗粒度的级别上来描述它。

目前关于以Agent为核心概念的面向Agent技术的研究十分活跃,也有一些应用,但这一领域仍然方兴未艾。从目前情况来看,面向Agent方法在分析与设计上已有许多研究且较成熟,但在实现上尚难找到一种成熟的、全新的面向Agent实现技术。

2 Agent语言

hoham提出面向Agent的程序设计后的最初几年,出现了多种Agent语言,主要有Agent0及其扩展PLACA、Agent-K、AgentSpeak(L)、ConGolog和3APL以及Concurrent METATEM、SLP等。近几年来,这方面的工作主要集中于Agent语言语义的研究、Agent语言的逻辑基础的完善以及各种语言相互之间的比较等方面。

相对而言,在这几种Agent语言中,Agent0提出得最早,最简单,同时又具备了必须的语言成分,因此是其他Agent语言的衡量基准。虽然有些文献给出了SAC-Agent0的操作语义,但因为没有涉及到Agent0的交互部分,因此这方面有待于进一步的工作。同时,Agent0的逻辑模型和程序模型之间的距离也有待缩小。AgentSpeak(L)的提出有其实际背景,并有严格的操作语义和相应的证明理论,但近年来缺乏进一步的细致工作。相对而言,以Koen V.Hindriks为主的研究群体对3APL进行了深入的研究,从最初的操作语义到指称语义和程序逻辑,关于通信的扩展,以及3APL和其他Agent语言的比较和模拟等。GOAL是他们为解决程序模型和逻辑模型一致性而给出的另一个Agent语言,但还只是一个原型语言。3APL的最大不足是缺乏对Agent交互的支持,其关于通信的扩展不能满足Agent交互需求,这方面的工作可能需要借助于标准的并发理论。ConGolog与前述几种语言不同,它是在Golog中加入并发成分发展起来的Agent语言,其基础情景演算在逻辑上已较为成熟,在机器人领域有较多的应用,但是ConGolog Agent不能显式表示思维状态,与BDI Agent有较大的差距。

3 Java优越性

近年来,Internet以迅猛之势发展,已成为世界上规模最大的计算机网络,Java的出现正好适应了Internet发展的需要,它所体现的简单、不依附平台、面向对象、分布式、可靠性、安全性、可移植性、动态性、多线程等特性,为Internet的使用提供了一种良好的运行和开发环境,成为Internet上最佳的程序设计语言。

一些学者总结了面向Agent编程语言的适用标准,即面向对象性、平台独立性、通信能力、安全性、代码可操作性,依据这一标准,用面向对象语言更容易构造Agent,而传统语言在这方面能力较弱。Agent实体的概念与对象的概念较为相近,均由属性和方法构成,通过发送消息或唤醒方法相互通信,使用典型的OOP概念如继承、数据封装。因此,面向对象开发方法与基于Agent系统开发方法有着紧密的联系。Java凭借平台独立性和安全性等优势,比其他语言更适合开发Agent系统,更符合面向Agent编程语言的适用标准。使用Java可以满足Agent的下列特性:

3.1 自主性

软件程序要想自主性,它必须是单独的进程或线程。Java应用是独立的进程,因而能长时间运行,并表现出自主性。

3.2 可移动性

Java虚拟机提供了一个相同的虚拟环境,允许Java Agent在不同的硬件系统中移动,例如从一个PC到N工作站,再到AS400系统。另外还提供了远程方法调用(Remote MethodInvocation;;RMI)和对象串行化(Object Serialization)这两种接口来开发分布式Java系统,二者皆有利于Agent的移动。RAH允许开发者从远程Java虚拟机的Java对象上调用方法。

3.3 智能性

Agent的智能范围可以从硬编码或面向对象逻辑到复杂的推理和学习能力。Prolog和lisp是常用的人工智能编程语言,近年来,许多商业化的AI系统是用C或C++编程的。面向对象编程语言提供了支持这些智能行为所有功能。

3.4 安全性

Java是唯一一种从设计的开始就考虑安全性的移动代码,虽然并不完美,Java却在程序的功能性和保护主机的安全性两方面达到了最大的平衡,并且Java非常适合从一个平台向另一个平台移植。

Java采用一个称为“sandbox”的模型来运行移动代码,不被信任的移动代码只能在sandbox中运行而不能进行多数针对主机的操作,比如读、写或删除文件、监听或接受网络连接等。当浏览器加载含有Java Applet的网页时,它从Web服务器上取Java的字节代码,然后将代码传给称为字节代码检验器的Java部件,检验器确保字节代码有正确的格式,不会超出内部堆栈的边界,这就防止了程序的崩溃。第二个Java部件是类加载器,决定一个Java Applet在何时、以何种方式将代码加入正在运行的Java环境,保证Applet不会取代任何级别的内容。每一个Java程序由一个或多个类、数据对象以及操作数据的方法所组成。当一个有潜在危险的方法试图运行时,安全管理器就会起作用,是否运行这种有潜在危险的方法取决于需求此种方法的类来源于何处。举例来说,内部本身的类比通过网络获取的类具有更大的特权。任何下载并运行外来可执行程序,以及在运行时动态链接由无名编程者创建的类的应用程序,都可能成为危险因素。Java小应用程序如得不到有效约束,有可能欲用来成为计算机病毒。用户在下载了一个小应用程序时,他无法确定这个小应用程序是否执行了期望的行为,而没有进行非法行动。某些Agent的移动特性,特别是Java小应用程序,对Java的安全模型提出了更高的要求,这种要求超越了以往任何编程语言。

除上述几点,JavaBean也对Agent系统具有重要意义,JavaBean为Java提供了基于组件的开发体系。组件模型允许开发者重用已有的软件模块(组件)建造应用,而不必从头起。事件型(Event Model)允许分布式动态组件之间的通信。每一JavaBean使用自检机制提供一系列它可以触发的事件,如果JavaBean对其中的某一个事件感兴趣,开发者必须应用所谓的“侦听器”监视一个JavaBean触发另一个JavaBean的事件。

另外Java作为一种网络编程语言,其多平台支持性[write-once,run-anywhere)等使之成为开发移动Agent系统的首选语言。此外,普遍存在的Java虚拟机也有助于促进移动Agent在Internet上的广泛传播移动Agent已经成为设计、实现及维护分布式系统的主要工具,它具有传统client/serve体系结构所无法比拟的优越性。而Java语言作为跨平台网络编程语言,其自身所具有的特点与实现移动Agent的需要恰好吻合,使其成为设计移动Agent系统的首选语言。

4 Eclipse平台体系结构

Eclipse的最大特色就是其具有插件的体系结构。插件模型体现的是从已经存在的部件来创建新的应用的一种体系结构模式。具体来说,Eclipse是专门为创建IDE的IDE平台,也就是一个可扩展的IDE平台。它提供核心服务把一些工具集成到一起,提供一个应用框架来支持开发人员的工作。工具的创建者把他们的工具封装起来作为可插入的部件放入E-clipse平台,这些可插入的部件称之为插件,它们遵从Eclipse平台的插件协议,将在后边介绍这些协议。它的核心概念和工具支持一种通用的模型,通过这种模型,可以把不同软件供应商提供的部件组合起来形成新的应用。

由于有了插件,Eclipse系统的核心部分在启动的时候要完成的工作十分简单:启动平台的基础部分和查找系统的插件。在Eclipse中实现的绝大部分功能是由相应的插件完成的,比如Workbench Ul插件完成界面的外观显示,ResourceManagement插件完成维护或生成项目或文件等资源管理工作。虽然以上提到的每一个功能都是绝大多数IDE环境所必备的功能,Eclipse却把它们都做成了插件模式,甚至用来开发Java程序的开发环境,JDT只不过是Eclipse系统中的一个普通插件而己。整个Eclipse体系结构就像一个大拼图,可以不断地向上加插件,同时,现有插件上还可以再加插件。

5 Eclipse的Java开发环境

Eclipse是一个功能强大的IDE,使用它可以方便地开发Java应用。它内置了一个Java调试器。该调试器不仅提供诸如单步执行、设置断点、检查变量以及暂时挂起和恢复线程等标准调试功能,而且提供了代码片段编辑测试窗页面和远程调试等功能。

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet和JSP配合才能完成。JSP具备Java技术的简单易用、完全面向对象、具备平台无关性且安全可靠、主要面向Internet的所有特点,可以在Eclipse环境下搭建一个JSP的开发环境进行有关Agent方面的开发。

6 结语

综上所述Java用于开发Web应用软件方面有很大的优势,Java语言并不是开发Agent语言的唯一语言,它在表达Agent信念、意愿、承诺方面有所不足。由于Eclipse环境是以插件形式提供的,以后可以在不足之处,加紧插件的研究。有理由相信,在JSP环境中开发Agent将越来越美好。

参考文献

[1]周金陵,孙艳.基于多Agent技术的分布式测控系统研究[J].微计算机信息,2003.9.

[2]石纯一,张伟等.Agent研究进展.

[3]刘甘林.基于Java的软件Agent实现技术研究[硕士学位论文].国防科学技术大学研究生院,2004.

[4]宁红岩,启小刚.开发Agent的得力工具:Java.计算机工程与应用,2001.

[5]路川,胡欣杰等.用JAVA实现agent的网络安全[J].微计算机信息,2004.

[6]张浩,骆正虎,杨敬安.基于Java语言的移动Agent开发平台.合肥工业大学学报,2001.

[7]刘君.基于Java的Agent研究.计算机测量与控制,2005.

[8]李蛟.基于Eclipse平台的Agent集成开发环境的研究与实现[硕士学位论文].天津大学,2004.

[9]叶达峰.Eclipse编程技术与实例.人民邮电出版社,2006.

[10]飞思科技产品研发中心.JSP应用开发详解.

上一篇:皮带输送带下一篇:英语中汉语借词