美章网 资料文库 舰船系统设计方法综述范文

舰船系统设计方法综述范文

本站小编为你精心准备了舰船系统设计方法综述参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

舰船系统设计方法综述

面向智能体的分析设计

基于角色的智能体设计“面向智能体”是“面向对象”的进一步发展,也是对真实世界更自然,更拟人化的建模。从现实世界中人类、事物和环境出发,认为事物的属性特别是动态特性在很大程度上受到与其密切相关的人和环境的影响,强调认识、思维与客观事物及其所处环境之间的相互作用,将影响事物的主观与客观特征相结合,抽象为系统中的智能体,作为系统的基本构成单位,通过智能体之间的合作、竞争、协商来实现系统的整体目标。在智能体生命周期中引入角色概念[12],一个智能体至少需要扮演一个角色,但是在其生命周期中,可以根据不同的环境情况扮演不同的角色。角色的实例仅仅存在于同智能体的联系中,其生命周期开始于智能体类实例化的过程中。当一个智能体根据当前需要和一个角色绑定时,此角色的生命周期就此开始。当环境发生变化时,该智能体又和另外一个角色相结合,则上一个角色的生命周期就此宣告终结,下一个角色的生命周期开始。在智能体的生命周期中,智能体会扮演不同的角色,每个角色都有自己的执行周期,除非发生异常中止。基于角色的概念,给出一个某平台中的智能体结构:智能体从外界获取消息;然后根据其目标来规划选择一个角色,对外进行反应;相应角色的方法被激发来完成对外界的反应;智能体的属性和外界决策将会根据行为反馈进行调整。智能体模型的构建1)角色模型通过角色模型可以将系统分解成各个角色模块以及定义每个智能体的角色划分。角色划分描述了一个智能体如何被分解成为子模块,以及这些子模块组合在一起的方式。每个角色至少同一个功能相联系,不同的角色承担不同的责任。在大多数情况下,智能体同角色之间是一一对应的关系,但是一些紧密相关的角色为了方便和模块化,可以封装到一个智能体之中。2)交互模型它描述了智能体和角色之间的交互机制。智能体有一些功能必须通过相互之间的交互才能够实现。通过交互,智能体能够获取信息,然后更新内部状态(信念,目标和能力),然后调整自身来对外界进行反应。交互机制提供了合适的条件来保障智能体之间的交互,这是协作的基础。通过交互模型,确定智能体之间的接口,找到和纠正运行时的错误和潜在的通信瓶颈。这个模型对于智能体之间的管理是至关重要的。3)状态模型它提供一种描述智能体内部工作流和角色转换机制的手段。同时,状态模型能够反映出外界事件对智能体内部状态所产生的影响。要注意,1个交互对应于2个智能体的状态转换。每个状态具有输入,输出,前提和结果。智能体的状态依赖于它的输入和前提状态。作为对输入事件的一个反应,智能体根据当前状态能够决定是转到一个不同的角色还是继续保持当前状态。根据这些规则,推导出每个角色的功能和角色类的继承框架。

案例设计与分析

舰船作战系统的情景描述通过对一个简单的试验来详细阐明“基于角色的面向智能体”软件分析方法。案例以“我军2艘军舰在追击敌方1艘军舰”为背景,分析重点在于舰船作战系统如何能够对各种情况做出恰当的反应,各个智能体能够相互协作,共同完成任务。作战情景如图3所示。我军的2艘军舰在一片海域中协作追击敌方的1艘舰艇,二者速度基本相同。在规定的时间内,当我军舰只与敌舰在同一个格子时,表示追上了敌舰,我军获胜;否则算敌舰逃走。在这片海域中行进,需要绕开障碍物,图中黑色部分代表障碍物,白色部分代表通道,这些信息存储在代表环境的一个矩阵结构中,每个格子都用一个类型值来表示障碍或者通道。我军舰只和敌舰在移动位置时,都需要获取自己周围方格的类型信息,以判断能否前进。当我军舰只与敌舰之间的距离小于4时,会相互发现对方。当我军的1艘军舰发现敌舰时,会立即通知另1艘军舰赶来支援。这是一个明显的并发系统,我军与敌人的行动同步进行,又相互制约,可以按照多智能体系统来进行分析建模。每个智能体都有自己的意愿和行为,有的目的相悖,有的目的相同。由于智能体之间的交互具有不确定性,采用面向对象的方法进行分析,舰船作战系统的结构会变得十分庞杂,难以控制。采用“面向智能体”的分析设计,能够比较清晰地描述出整个结构框架,而且便于扩展。下面就逐一介绍整个系统的具体分析设计流程。可以很清楚地看出智能体的目标,分解的角色以及每个角色所实现的功能。分离出4个智能体,2个代表我军舰只;1个代表敌舰,1个代表环境。我军舰只的目标是抓住敌舰。为了实现目标,必须完成以下任务:能够侦察到敌舰的踪迹;同友舰交换信息;发现敌舰后能追上它。为了完成每个任务,分派了3个角色:信息、指挥和武器。信息角色承担信息获取和信息处理的任务,负责发现障碍物和敌人的行踪;指挥角色承担指挥决策的任务,还负责同友舰进行协商,共同行动,共享信息等;武器角色则承担消灭敌人的任务,根据当时的具体情况采取不同的作战策略。交互模型模型目的:描述智能体之间的交互方式,如何获取自己所需要的信息。通过交互图可以找出任何潜在的通信瓶颈,运行时可能引起的问题,以便进行改正。如图5所示,阴影部分代表协调者,方块代表各个智能体,由用于交互的函数和底层通信原语组成。智能体之间在逻辑层的交互用虚线表示,实际底层通信机制用实线表示,经过交互介质来实现。虚线上的单词表示通信原语,数字表示交互的先后次序。我军舰只与环境之间的交互主要包括:InformNayPosition(),通知环境自己的当前位置坐标;GetEnemyPosition(),获得敌舰的当前位置坐标;GetGridType(),从环境获得四周方格的类型,判断是障碍物还是通路,能否前进。敌舰与环境之间的交互采用类似方式。状态模型展现了我军舰只智能体随着具体环境的变化而不断改变自己的状态。整个状态图由信息角色、指挥角色和武器角色3个角色图组成,每个角色内部又包含了角色自己的状态转换图。我军舰只智能体每移动1格作为1个行为周期,在这个周期内,角色转换可能发生2~3次。首先是信息角色与环境智能体交互,询问在可观察范围内是否有敌舰,如果有,就获得了最新的敌舰位置;接着就是转到指挥角色,察看友舰是否知道敌舰的位置,并请求援助;接着由武器角色承担进攻任务。当我军舰只智能体处于指挥角色时,就与友舰互换信息,以求获得最新的敌舰位置信息,如果双方都没有,则仍保持原有信息,转到信息角色。在信息角色阶段,先以我军舰只智能体所在位置为中心,判断四周8个格子中哪1个没有障碍,可以前进。然后根据敌舰的方向选择下一步前进的最佳位置。最后向逼近敌舰的方向移动1格,完成本周期的任务,如果敌舰就在这个格子中,则获得胜利。智能体模型的实施效果及注意事项通过上述智能体模型的结构可以看出,它符合程序设计中的开放封闭原则(Open-ClosedPrinciple,OCP),既能够很好地利用已有的种类和对象,做到最大程度上的重用;又具有很好的扩展性,能够根据需要来添加所需角色,而不会影响软件系统结构。但这个模型也存在以下缺陷:1)智能体问题求解和智能体BDI状态之间的关系尚未得到充分表达。具体的应用往往是面向问题求解的,如果问题求解和智能体的BDI状态不能结合在一起,那么BDI状态的描述只能是“早熟的数学”,不能为开发人员所接受。2)智能体模型和具体的智能体结构之间没有明确的映射关系,使实际智能体建造者难以用软件实现智能体理论者提出的抽象智能体模型。从BDI理论模型出发而形成的软件模型与解决的软件开发过程中的具体问题相脱离,具体表现在:由于智能体理论描述和实际系统结构之间缺乏清晰的关系,软件模型几乎不能对现有的软件智能体的设计和实现起到指导和验证作用,而仅仅成为软件实现逻辑模块的一个名词而已。3)实践表明,用逻辑语言描述智能体BDI的形式化方法与软件实现之间存在较大距离。BDI模型本身几乎不支持软件开发过程中所遇到的一些根本性问题,如由于并行性和网络计算等特点带来的软件复杂性问题,又如提高软件粒度重用问题以提高开发效率的问题或软件功能验证的可维护性问题。

结语

虽然“面向智能体”的分析方法确实具有“面向对象”所不具备的很多优势,但是目前并不成熟,难以在实际项目中应用。要改变这种局面,首先要把研究“面向智能体”的分析方法同研究智能体模型本身区分开来。智能体模型本身主要是研究策略选择方面,是多变的,随着人们对智能体认识的不断深入,新的模型会不断涌现,这就造成基于某种固定智能体模型的软件分析方法比较僵化,灵活性差,很容易被淘汰。但是智能体在整个软件体系构架中的位置和作用一般是相对稳定的,可以构建一个智能体在软件体系结构中的构件模型,作为实际智能体到软件体系结构的一个映射,这个模型较稳定,即使智能体模型本身不断变化,但都可以映射到这个构件模型上,避免了面向智能体分析方法的变动。其次,把智能体的研究同人工智能区分开,在实际项目中,并不需要智能体具有多高的智能,或者具备智能体的所有属性,应该根据项目的实际需要来对智能体的属性进行取舍,并且要尽可能地利用目前已经比较成熟的各种软件开发技术,以降低软件开发成本。本文从基于角色概念和智能体技术出发,对软件开发进行了模型架构设计,给出模型的层次结构,通过舰船作战系统协同来实现所设计的模型。同时,对模型如何应用于实际系统作了初步的分析,并就其中出现的问题给出了一些初步的解决方案。正在对以上3个模型进行细化,将面向服务框架(ServiceOrientedArchitecture,SOA)的设计思想应用于系统实现,使系统更易于扩展,增强其互操作性,为实现实际的可用系统做进一步的工作。

作者:王兴众董晓明单位:武汉大学动力与机械学院中国舰船研究设计中心