APP下载

基于角色的舰船作战系统设计方法

2012-10-20王兴众董晓明

舰船科学技术 2012年12期
关键词:敌舰军舰软件

王兴众,董晓明

(1.武汉大学动力与机械学院,湖北武汉430072;2.中国舰船研究设计中心,湖北武汉430064)

0 引言

随着舰船作战系统的发展,其软件的复杂程度越来越高,分布性、并发性、实时性[1]及智能性越来越多地出现在软件需求中。但传统的软件分析设计方法 (如面向对象的分析方法)却往往对此束手无策,原因在于复杂系统有太多的因素需要考虑,建立的模型复杂度过高,而传统的软件分析方法又没有很完善的方法来解决这些问题。于是,如何对复杂软件系统进行分析建模[2]就成为一个极具挑战性的课题。

解决软件复杂性的工具有以下几种:

1)分解。处理任何大型问题最基本的技巧就是把它分解成许多更小、更易于管理的模块,从而可以分别进行独立处理。

2)抽象。针对复杂系统建立一个简化的模型,强调重要的属性,而忽略那些不太重要的属性。

3)组织。确认和管理各个问题解决模块之间的交互关系。

随着时代的发展,舰船作战系统大多被用于难以预料的复杂环境。面向对象的建模方法在分析这些问题时,有些力不从心,因为即使是抽象出来的模型仍然太复杂。而程序设计的本质就是把现实世界中的东西抽象成模型,模型越清晰,实现起来就会越容易,也就更利于维护和重用。这就出现了对新的软件分析方法的需求。

智能体是处于某种环境中被封装的软件实体,为了实现设计目标能够灵活自治的同环境交互行为,其研究可追溯到20世纪70年代分布式人工智能(Distributed Artificial Intelligence,DAI)的 研究[3-4]。智能体一方面继承了“对象”的优点,比如封装性,良好定义的接口等;另一方面又具备了许多“对象”所没有的特性,比如明确的目标、自制性及灵活的问题求解能力等。这些特性恰好为分析复杂系统提供了解决的工具。

1 智能体技术

由于研究的角度和内容不同,智能体有多种不同的定义。被很多工程人员加以引用的是Michael Wooldridge的关于智能体的弱定义和强定义[5]。

弱定义:具有反应性、自治性、能动性和社交性的计算实体或程序被称为智能体。

强定义:在弱定义的基础上增加了心智上的概念“信念-需求-意图” (Belief-Desire-Intention,BDI)、理性、准确性和自学习。

在互联网环境和多智能体环境下,智能体的基本特性主要包括[6-7]:

1)自治性。智能体运行时不直接由人或者其他东西控制,它对其自己的行为和内部状态有一定的控制权。

2)社会能力。借助某种通信语言,智能体具有与其他智能体或人进行交互的能力。

3)反应能力。智能体能够理解它所处的环境,能对环境的变化作出及时适当的响应。

4)主动性。智能体并不是对其所处的环境作出简单的响应,而是采取积极主动的目标驱动行为。

5)适应性。智能体能够调节其自身的行为,以适应新的环境。这是一种能够随着时间而改进其实现目标能力的特性。

6)协作性。在多智能体环境下,各个智能体通过相互协商与合作来进行任务的分工,共同实现多智能体系统的功能。

智能体特别是多智能体的理论、技术,为复杂系统的分析、设计和实现提供了一个崭新的途径,被誉为“软件开发的又一重大突破”。将智能体技术[8-9]应用到舰艇作战系统的软件开发中,可以从以下方面对软件系统的性能进行改善:

1)智能体技术将有力地增强软件系统的外部环境获取、分类、过滤能力。由于每1个智能体都是1个智能的实体[10-11],所以智能体间的相互协调与协作可以扩大传感器的搜索范围;增强多传感器局部搜索的准确性;加快数据融合的速度以及改善处理后的信息清晰度和条理性。

2)智能体技术可以提高系统的应对能力。这主要表现在人性化的智能体技术能根据不同层次人员的需求,提供全方面、准确的信息,并依据自己的历史数据库提供可行的辅助决策支持。

3)智能体可以提高软件系统的抗毁性。任何情况下,多智能体系统都可以依据系统目前的资源状况和环境因素,快速组织资源通道以实现人员的意图。在系统局部受损的情况下,这些分布在各个网络节点的智能实体能有效重构,以实现传感器与资源设备的最佳组合。

2 研究目的和面临的挑战

世界各国为了迅速提高自己的军事实力,竞相发展高新技术兵器,这些新型武器设备的发展虽然提高了作战性能,但也带来了技术风险。首先是各系统之间和各系统与舰船总体之间的接口多而不易协调;其次,新技术往往在开始研制时不太成熟,其硬件、软件和接口尚不明确,给以后扩展和维修带来巨大的困难;再者,大量不兼容的计算机语言使各分系统软件之间的对接变得极为困难,这严重影响了系统的可靠性、可维护性和可用性。

军事上的需求要求从根本上解决上述问题。必须根据战术要求,对舰船作战系统的元素特性进行分析,建立系统原型,并通过软件设计反映到技术装置。由此可见,系统原型是战术和技术之间的桥梁,对它进行分析和设计是极为重要的。

因此,如何把智能体的理论、技术,特别是多智能体的理论、技术,成功运用于舰船作战系统的分析、设计中,是解决新的软件系统需求比如分布性、并发性、实时性和智能性的研究关键。基于此背景,本文以舰船协同作战为线索,来阐述基于“角色”的舰船作战系统的分析设计方法。

3 面向智能体的分析设计

3.1 基于角色的智能体设计

“面向智能体”是“面向对象”的进一步发展,也是对真实世界更自然,更拟人化的建模。从现实世界中人类、事物和环境出发,认为事物的属性特别是动态特性在很大程度上受到与其密切相关的人和环境的影响,强调认识、思维与客观事物及其所处环境之间的相互作用,将影响事物的主观与客观特征相结合,抽象为系统中的智能体,作为系统的基本构成单位,通过智能体之间的合作、竞争、协商来实现系统的整体目标。

在智能体生命周期中引入角色概念[12],如图1所示。一个智能体至少需要扮演一个角色,但是在其生命周期中,可以根据不同的环境情况扮演不同的角色。角色的实例仅仅存在于同智能体的联系中,其生命周期开始于智能体类实例化的过程中。当一个智能体根据当前需要和一个角色绑定时,此角色的生命周期就此开始。当环境发生变化时,该智能体又和另外一个角色相结合,则上一个角色的生命周期就此宣告终结,下一个角色的生命周期开始。在智能体的生命周期中,智能体会扮演不同的角色,每个角色都有自己的执行周期,除非发生异常中止。

基于角色的概念,在图2中给出一个某平台中的智能体结构:智能体从外界获取消息;然后根据其目标来规划选择一个角色,对外进行反应;相应角色的方法被激发来完成对外界的反应;智能体的属性和外界决策将会根据行为反馈进行调整。

图2 某平台中的智能体结构Fig.2 The structure of agent in a platform

3.2 智能体模型的构建

1)角色模型

通过角色模型可以将系统分解成各个角色模块以及定义每个智能体的角色划分。角色划分描述了一个智能体如何被分解成为子模块,以及这些子模块组合在一起的方式。

每个角色至少同一个功能相联系,不同的角色承担不同的责任。在大多数情况下,智能体同角色之间是一一对应的关系,但是一些紧密相关的角色为了方便和模块化,可以封装到一个智能体之中。

2)交互模型

它描述了智能体和角色之间的交互机制。智能体有一些功能必须通过相互之间的交互才能够实现。通过交互,智能体能够获取信息,然后更新内部状态 (信念,目标和能力),然后调整自身来对外界进行反应。交互机制提供了合适的条件来保障智能体之间的交互,这是协作的基础。

通过交互模型,确定智能体之间的接口,找到和纠正运行时的错误和潜在的通信瓶颈。这个模型对于智能体之间的管理是至关重要的。

3)状态模型

它提供一种描述智能体内部工作流和角色转换机制的手段。同时,状态模型能够反映出外界事件对智能体内部状态所产生的影响。要注意,1个交互对应于2个智能体的状态转换。

每个状态具有输入,输出,前提和结果。智能体的状态依赖于它的输入和前提状态。作为对输入事件的一个反应,智能体根据当前状态能够决定是转到一个不同的角色还是继续保持当前状态。根据这些规则,推导出每个角色的功能和角色类的继承框架。

4 案例设计与分析

4.1 舰船作战系统的情景描述

通过对一个简单的试验来详细阐明“基于角色的面向智能体”软件分析方法。案例以“我军2艘军舰在追击敌方1艘军舰”为背景,分析重点在于舰船作战系统如何能够对各种情况做出恰当的反应,各个智能体能够相互协作,共同完成任务。作战情景如图3所示。我军的2艘军舰在一片海域中协作追击敌方的1艘舰艇,二者速度基本相同。在规定的时间内,当我军舰只与敌舰在同一个格子时,表示追上了敌舰,我军获胜;否则算敌舰逃走。在这片海域中行进,需要绕开障碍物,图中黑色部分代表障碍物,白色部分代表通道,这些信息存储在代表环境的一个矩阵结构中,每个格子都用一个类型值来表示障碍或者通道。我军舰只和敌舰在移动位置时,都需要获取自己周围方格的类型信息,以判断能否前进。当我军舰只与敌舰之间的距离小于4时,会相互发现对方。当我军的1艘军舰发现敌舰时,会立即通知另1艘军舰赶来支援。

图3 舰船作战场景Fig.3 Ship combat scenarios

这是一个明显的并发系统,我军与敌人的行动同步进行,又相互制约,可以按照多智能体系统来进行分析建模。每个智能体都有自己的意愿和行为,有的目的相悖,有的目的相同。由于智能体之间的交互具有不确定性,采用面向对象的方法进行分析,舰船作战系统的结构会变得十分庞杂,难以控制。采用“面向智能体”的分析设计,能够比较清晰地描述出整个结构框架,而且便于扩展。下面就逐一介绍整个系统的具体分析设计流程。

4.2 角色模型

如图4所示,可以很清楚地看出智能体的目标,分解的角色以及每个角色所实现的功能。分离出4个智能体,2个代表我军舰只;1个代表敌舰,1个代表环境。我军舰只的目标是抓住敌舰。为了实现目标,必须完成以下任务:能够侦察到敌舰的踪迹;同友舰交换信息;发现敌舰后能追上它。为了完成每个任务,分派了3个角色:信息、指挥和武器。信息角色承担信息获取和信息处理的任务,负责发现障碍物和敌人的行踪;指挥角色承担指挥决策的任务,还负责同友舰进行协商,共同行动,共享信息等;武器角色则承担消灭敌人的任务,根据当时的具体情况采取不同的作战策略。

图4 角色模型图Fig.4 Role model diagram

4.3 交互模型

模型目的:描述智能体之间的交互方式,如何获取自己所需要的信息。通过交互图可以找出任何潜在的通信瓶颈,运行时可能引起的问题,以便进行改正。

如图5所示,阴影部分代表协调者,方块代表各个智能体,由用于交互的函数和底层通信原语组成。智能体之间在逻辑层的交互用虚线表示,实际底层通信机制用实线表示,经过交互介质来实现。虚线上的单词表示通信原语,数字表示交互的先后次序。

图5 交互模型图Fig.5 Interaction model diagram

我军舰只与环境之间的交互主要包括:InformNayPosition(),通知环境自己的当前位置坐标;GetEnemyPosition(),获得敌舰的当前位置坐标;GetGridType(),从环境获得四周方格的类型,判断是障碍物还是通路,能否前进。敌舰与环境之间的交互采用类似方式。

4.4 状态模型

图6展现了我军舰只智能体随着具体环境的变化而不断改变自己的状态。整个状态图由信息角色、指挥角色和武器角色3个角色图组成,每个角色内部又包含了角色自己的状态转换图。

我军舰只智能体每移动1格作为1个行为周期,在这个周期内,角色转换可能发生2~3次。首先是信息角色与环境智能体交互,询问在可观察范围内是否有敌舰,如果有,就获得了最新的敌舰位置;接着就是转到指挥角色,察看友舰是否知道敌舰的位置,并请求援助;接着由武器角色承担进攻任务。当我军舰只智能体处于指挥角色时,就与友舰互换信息,以求获得最新的敌舰位置信息,如果双方都没有,则仍保持原有信息,转到信息角色。在信息角色阶段,先以我军舰只智能体所在位置为中心,判断四周8个格子中哪1个没有障碍,可以前进。然后根据敌舰的方向选择下一步前进的最佳位置。最后向逼近敌舰的方向移动1格,完成本周期的任务,如果敌舰就在这个格子中,则获得胜利。

图6 角色状态转换图Fig.6 Role state transition figure

4.5 智能体模型的实施效果及注意事项

通过上述智能体模型的结构可以看出,它符合程序设计中的开放封闭原则 (Open-Closed Principle,OCP),既能够很好地利用已有的种类和对象,做到最大程度上的重用;又具有很好的扩展性,能够根据需要来添加所需角色,而不会影响软件系统结构。

但这个模型也存在以下缺陷:

1)智能体问题求解和智能体BDI状态之间的关系尚未得到充分表达。具体的应用往往是面向问题求解的,如果问题求解和智能体的BDI状态不能结合在一起,那么BDI状态的描述只能是“早熟的数学”,不能为开发人员所接受。

2)智能体模型和具体的智能体结构之间没有明确的映射关系,使实际智能体建造者难以用软件实现智能体理论者提出的抽象智能体模型。从BDI理论模型出发而形成的软件模型与解决的软件开发过程中的具体问题相脱离,具体表现在:由于智能体理论描述和实际系统结构之间缺乏清晰的关系,软件模型几乎不能对现有的软件智能体的设计和实现起到指导和验证作用,而仅仅成为软件实现逻辑模块的一个名词而已。

3)实践表明,用逻辑语言描述智能体BDI的形式化方法与软件实现之间存在较大距离。BDI模型本身几乎不支持软件开发过程中所遇到的一些根本性问题,如由于并行性和网络计算等特点带来的软件复杂性问题,又如提高软件粒度重用问题以提高开发效率的问题或软件功能验证的可维护性问题。

5 结语

虽然“面向智能体”的分析方法确实具有“面向对象”所不具备的很多优势,但是目前并不成熟,难以在实际项目中应用。要改变这种局面,首先要把研究“面向智能体”的分析方法同研究智能体模型本身区分开来。智能体模型本身主要是研究策略选择方面,是多变的,随着人们对智能体认识的不断深入,新的模型会不断涌现,这就造成基于某种固定智能体模型的软件分析方法比较僵化,灵活性差,很容易被淘汰。但是智能体在整个软件体系构架中的位置和作用一般是相对稳定的,可以构建一个智能体在软件体系结构中的构件模型,作为实际智能体到软件体系结构的一个映射,这个模型较稳定,即使智能体模型本身不断变化,但都可以映射到这个构件模型上,避免了面向智能体分析方法的变动。其次,把智能体的研究同人工智能区分开,在实际项目中,并不需要智能体具有多高的智能,或者具备智能体的所有属性,应该根据项目的实际需要来对智能体的属性进行取舍,并且要尽可能地利用目前已经比较成熟的各种软件开发技术,以降低软件开发成本。

本文从基于角色概念和智能体技术出发,对软件开发进行了模型架构设计,给出模型的层次结构,通过舰船作战系统协同来实现所设计的模型。同时,对模型如何应用于实际系统作了初步的分析,并就其中出现的问题给出了一些初步的解决方案。正在对以上3个模型进行细化,将面向服务框架 (Service Oriented Architecture,SOA)的设计思想应用于系统实现,使系统更易于扩展,增强其互操作性,为实现实际的可用系统做进一步的工作。

[1]章军,高曙.基于Agent技术的Internet信息通讯的研究与应用[J].通信电源技术,2004,21(2):27-29.ZHANG Jun,GAO Shu.The research and application of internet information and communication based on agent technology[J].Telecom Power Technologies,2004,21(2):27-29.

[2]谢储晖.面向主体的系统开发方法[J].计算机与现代化,2003(12):13-16.XIE Chu-hui.The development methods of subject-oriented system[J].Computer and Modernization,2003(12):13-16.

[3]MOTAMENI H,MOVAGHAR A,SHIRAZI B,et al.Analysis software with an object-oriented petri nets model[J].World Applied Sciences Journal,2008,4(3):565-576.

[4]靳小龙,张世武,等.多智能体模型与实验[M].北京:清华大学出版社,2003.3-14.JIN Xiao-long,ZHANG Shi-wu,et al.Multi-agent model and experimental[M].Beijing:Tsinghua University Press,2003.3-14.

[5]WOOLDRIDGE M,et al.Intelligent agents:theory and practice[J].Knowledge Engineering Review,1995,10(2):115-152.

[6]史忠植.智能主体及其应用[M].北京:科学出版社,2000.6-11.

[7]靳小龙,张世武,等.多智能体模型与实验[M].北京:清华大学出版社,2003.3-14.

[8]薛霄.面向agent的软件设计开发方法[M].北京:电子工业出版社,2009.12-14,205.XUE Xiao.The design and development methods of agentoriented software[M].Beijing:Electronics Industry Press,2009.12-14,205.

[9]张欧亚,佟明安.基于AUML的面向agent分析方法及其应用[J].计算机工程与应用,2007,43(2):244-248.ZHANG O-ya,DONG Ming-an.AUMLagent-oriented analysismethod and its application[J].Computer Engineering and Applications,2007,43(2):244-248.

[10]陈禹.复杂性研究的新动向—基于主体的建模方法及其启迪[J].系统辨证学学报,2003,11(1):43-50.CHEN Yu.The new trends of complexity-agent-based modeling method and its inspiration[J].System Syndrome.2003,11(1):43-50.

[11]邓宏钟.基于多智能体的整体建模仿真方法及其应用研究[D].长沙:国防科学技术大学,2002.DENG Hong-zhong.Based on themulti-agentoverall modeling and simulation method and its application[D].Changsha:DoctoralDissertation ofNationalDefense University of Science and Technology,2002.

[12]HE C W,HE F,et al.Role of relationship and its meta model for design pattern instantiation.In:LI X,WANG S L,DONG Z Y,etal.AdvancedDataMiningand Applications,1st Int’l Conf.(ADMA 2005).Berlin,Heidelberg:Springer-Verlag,2005.642-653.

猜你喜欢

敌舰军舰软件
泰国军舰沉没
禅宗软件
图解军舰
打捞沉没军舰
软件对对碰
微分方程在动态目标检测与跟踪中的应用研究
崇武以东海战记忆
即时通讯软件WhatsApp
丰富多彩的Android软件