面向Agent的软件设计模式解析欧展培
摘要:就目前的形势而言,Agent技术在市场上的需求量还是比较大的,但是人们对于Agent技术还不够成熟和完善,人们都在致力研发该技术。
设计形态是每个问题技术实现都具备的,不同种类的软件也都拥有不同的设计模式。
为Agent 设计模式可以最大程度化的实现其技术潜力,发挥最大化的作用,为软件工程提供更大的帮助。
而如何为Agent技术设计合适的模式则是需要人们探讨的。
基于此,本文探析面向 Agent 的软件设计模式,旨在为软件设计领域有更好的发展。
关键词:Agent软件;软件设计模式;Agent软件设计模式
1、Agent技术解析
1.1 Agent的概念
由于Agent概念可以从多种方面进行定义,本文选择了较为容易理解的一种进行解释。
该解释是从人工智能的角度对Agent技术进行定义的。
Agent是指自主、灵活的一种执行动作,同时执行的动作能够令目标的实行主体感到满意。
其中自主灵活的执行动作三个特点,分别是反应性、主动性和社会性。
该概念也总结了Agent技术的外部行为方式和特点。
1.2 分析面向对象软件工程与面向Agent软件工程
首先从系统构成来看,两者的系统结构主体不同。
Agent技术是由具有自主形态的实体计算Agent所构成的,而对象技术则是由不具自主性的计算实体对象构成的。
另外Agent技术可以自动感知周围环境的变化情况,但是对象技术都是被动的接受环境变化的信息。
从结构关系来看,Agent技术的主要关系是社会性的关系,对象技术则更偏重于继承、关联等一些类似的联系。
除了以上三点的不同,Agent技术和对象技术还可以从协作实质和协作结果两者进行区别。
图1为面向对象软件工程与面向Agent软件工程的对比分析。
图1
1.3 个体Agent的模式
个体Agent的模式一共有三种。
分别是以下几点:
1.3.1环境感知模式,该模式的主要目的使Agent更加完善的解决环境感知类的问题。
1.3.2状态模式,该模式旨在使Agent解决在其内部发生状态变化时,通过灵活改变其本身的行为方式的问题。
1.3.3单件模式,该模式的存在是为了保证在一个多Agent系统中,一个Agent只能扮演一个特定的某个单一的角色。
2、面向Agent的软件设计模式
2.1 Gaia面向Agent的分析和设计方法
为了更好的分析Agent软件设计模式我们可以利用Gaia的理论进行分析。
虽然Gaia的理论在某些方面存在着一些局限性,但是从另一方面来说Gaia在Agent系统中有值得人们挖掘的某一开发功能。
其次,将Gaia运用到Agent软件设计的过程中可以分为微观和宏观。
在使用Gaia方法进行Agent设计共有以下几个过程,首先是在某一个Agent类中画入某个角色。
并在这之后,将所制作每一个类的Agent进行编辑相应号码。
接着在Agent中制作一个与角色特点想符合的最佳模型。
最后再建立一个合适的模型解释Agent之间的关联性。
2.2 多Agent软件分析和设计方法
多Agent软件分析与Gaia的分析方法有些类似,但也还是有些不同。
多Agent软件设计研究的深层次内容是对利用多Agent软件工程进行支持,并使用其进行工具的自动编码。
与Gaia相比,它还具有一个特别的作用传送对应和不多点,此作用属于Agent的交互作用。
多Agent软件分析一共有七个过程分别是:①找到目标②申请合适的事例③将角色进行训练,到达最佳情况。
④建立相对应的Agent类⑤创建具有交互作用的Agent会话⑥将
Agent类进行不同的聚集⑦根据此前操作,进行合理的系统设计。
2.3 数据库信息系统的建模
Agent对象关系(AOR)模型与信息系统设计的过程有些相类似。
作为运用的数量最多的
数据库模型之一,AOR的主要目的是对ER模型进行一定的扩充。
除了对ER模型的扩展,AOR模型也被人们证明了能够将某些类型Agent之间的联系模型化。
在该模型下,Agent的
要求都可以被当做一个委托。
整个模型下的责任和许可与Gaia的方法相符。
3、面向Agent的软件设计模式及其分类
3.1组织结构型模式
组织结构型模式的主要功能是将出现在多Agent系统组织结构中的各类问题进行合理的
解决。
在模式中,每个Agent都有自己的角色,将其扮演好。
同时,每个Agent还要发挥其
特有的作用,做出一些符合角色的相应行为。
各种社会关系是Agent代表的角色之间联系的
主要路径,同时Agent扮演的角色都会有一定的区别不同,同时角色与角色之间也会存在一
些不可避免的关联性,这些错综复杂的关系就构成了组织拓扑结构。
组织的拓扑结构对需要
解决问题的影响是组织结构型模式解决的典型问题。
3.2交互协作型模式
解决如何实现、保持或方便Agent之间的交互是交互协作型模式的主要目的。
除此之外
还有为了达到Agent之间的行为不出现冲突问题而进行不同的协调。
如果能够科学、合理的
运用该模式也能有效使系统的运行性能得到显著提高,在解决复杂问题时可以利用合作求解。
当然该模式也有一定的缺点,例如,当Agent改变原本的位置后,交互就得不到保持。
严重
的Agent之间可能还会出现欺骗的问题。
3.3个体Agent的模式
3.3.1环境感知模式:该模式旨在解决Agent如何感知环境的问题。
问题的产生的上下文
是Agent需要根据获取的环境信息来决定执行何种动作。
问题的解决方法是:应用Agent负
责处理业务逻辑,它与环境Agent进行交互来获取环境信息;环境Agent的信息来自传感器Agent,传感器Agent负责与物理环境打交道,收集环境信息,响应环境Agent查询信息的请求。
3.3.2状态模式:该模式旨在解决如何使用Agent在其内部状态发生变化时改变自己的行
为方式的问题。
解决这一问题的基本思路是在Agent内部设置一个动作决策部件,该部件描
述了内部状态和执行行为的对应关系。
Agent根据当前所处状态,查找动作决策部件中对应
的条目获知需要执行的动作。
3.3.3单件模式:该模式旨在确保一个多Agent系统中,某角色只能由一个Agent扮演。
例如,在公司系统中,只能有一个Agent扮演总裁角色。
这个模式反映了角色和Agent在数
量对应关系上存在的约束。
除了该模式描述的一对一映射外,还有其他反映角色与Agent在
数量关系上的约束,例如某个角色只能被特定数量的Agent扮演等。
结束语
现代社会,技术一直在不断的发展,随之而应的Agent技术的运用也越来越广泛。
在该
领域的创新和研究应该不断的加强。
虽然该领域的一些概念和具体操作比较抽象、难以理解,但如果能将其深入研究,就一定能对软件工程领域起很大的帮助。
同时也希望有关的研究人
员能够越来越重视该问题。
参考文献:
[1]苗维亮.面向Agent软件的分析和设计方法[J].哈尔滨商业大学学报,2013.
[2]鲁东明.面向Agent的软件分析和设计方法[J].计算机科学,2015,(06).。