论文部分内容阅读
摘要:本文首先解释了多主体系统的含义,并介绍了多主体系统的体系结构,给出了多主体系统开发设计方法。
关键词:多主体系统;主体系统;体系结构;开发设计
1.多主体系统简介
多个体的系统被圣菲研究所称为多主体的系统,因为其中的个体都是独立决策的行为主体,不受一个系统中枢的指挥。这个系统因此可以被称为是多中心的,甚至由于自为中心的主体是如此之多以致可以被称为“无中心”的。但是它们并不因此是“一群乌合之众”,众多独立个体在相互作用的交往活动中却能彼此协调,保持一种宏观秩序,如在市场经济中众多商品生产者自发遵循价值法则活动所造成的现象。在他们的研究中,把研究的系统看成是多个主体组成,并且研究包含有子系统的多主体系统。
多主体系统可以定义为“a loosely-coupled network of problem solvers that work together to solve problems that are beyond their individual capabilities”。这些问题求解器就是一个个的主体。实际系统中的主体可由不同开发者在不同时间用不同工具和技术实现,各具不同领域不同程度的问题求解能力。多主体系统一般具有个体信息不完全、个体能力受限、无全局控制、数据分布化和计算异步等特点。一个多主体系统一般由以下几个部分组成:(1)多个已存在的主体;(2)多主体之间的联合意图,即多个主体联合行动以实现共同的目标;(3)常识,即主体之间的公共知识;(4)公共行为规范,即多个主体在联合行动中应遵守的公共规则和采取的行动;(5)主体赖以生存的环境,即为主体行为提供基本保障的设施,如网络、软硬件平台等。
2.多主体系统的体系结构
体系结构就是对要完成的特定任务进行特定分解的一般方法学。多主体系统体系结构研究的是怎样为构造主体按一定方法将主体分解成各种功能模块。多主体系统是主体群体,其中的各主体通过相互协商与合作来实现多主体系统的功能。因此,多主体系统体系结构分为个体主体体系结构和主体群体社会结构两部分。其中个体主体体系结构是指在多主体系统中单个主体的构造结构,它与单主体体系结构研究的内容联系紧密。主体群体社会结构是指存在于各主体中的通信和控制模式,通过定义主体之间的权威关系,为主体提供了一种交互框架。体系结构不但决定了主体之间的通信方式,也决定了系统中信息的存储和共享方式。体系结构的选取不但影响单主体内部协作智能的多少,而且也会影响多主体系统中异步、一致性、自主性和自适应性的程度。
下面简要介绍一下多主体系统中几种常见的社会结构,并对它们在控制结构、通信、信息存储等方面进行了分析和比较。
1)网络结构:这是一种平板结构,主体网络社会中没有特权者,每两个主体之间都是对等的关系。通信对等、信息局部化是这类结构的显著特点。
2)层次结构:主体群体中的主体被分层,在每一层的决策和该层的控制权集中在其上层主体上,由它(它们)控制和协调该层主体的行为。同一层的主体之间的通信要经过上层。这种结构的主体只需保存其下层主体的相关信息,但通信不如网络结构简略。
3)联盟结构:将系统中的主体根据某种方式(一般是根据距离远近,便于通信)划分成一个个的主体联盟。联盟与联盟之间的关系与网络结构中主体与主体之间关系一样。每个联盟有一个协助主体,不同联盟中主体之间的交互都是通过各联盟中的协助主体协助完成。
3.多主体系统开发设计方法
主体的理论、技术,特别是多主体的理论和技术为开放系统的分析、设计和实现提供了一个崭新的途径,被称为是“软件开发的又一重大突破”。目前,基于主体的技术应用日益广泛,其范围包括商务、工业、军事、医疗和教育等。在一些大型的基于主体的软件中,往往会包含数量不等的主体,甚至达到百千计,其复杂程度很高,没有好的开发设计方法要完成此项工作是不可想象的。
近年来,基于主体软件工程的研究主要集中在面向主体的开发方法学的探索,许多方法都借鉴了面向对象的开发方法和建模技术,依此为基础,将一些术语、概念和建模方法应用到多主体系统的分析与设计中。这些技术的使用或者直接应用到多主体系统设计中,或者根据多主体系统的计算特性进行扩展,形成新的面向主体的开发方法和建模技术。另外,还有一些研究是基于软件工程和知识工程建模技术,比如Brazier等人提出了一种设计多主体系统的规范框架,称为DESIRE(design and specification of interacting reasoning components)。另外一些方法是将多主体系统看成一个由计算实体构成的人工社会或组织,然后借鉴组织设计的概念、方法等来说明多主体系统的分析和设计,这类方法更能描述主体的自主性和多主体系统中的复杂协作行为。上述方法从两个角度来进行多主体系统的开发:
1)将分析和设计过程的结果看成一个抽象的規范,开发者根据这个规范,采用原有的低级设计与实现技术进行实现;
2)在分析与设计过程中形成一些体系结构方面的框架和约定,直接应用于实现。但面向主体的开发方法学最终是要在分析、设计过程形成一个特定的多主体系统结构和有关各主体结构的严格规范,并通过一个系统的设计步骤产生直接可实现的主体模型的集合。
到目前为止,设计和实现多主体系统还比较缺乏经验,同时也没有高质量的软件工具支持,在实施过程中还没有统一的规范,特别是大多数系统的建造都是从头开始,组件基本不能重用,很多系统都是依据各自的具体情况开发的。这里,依据软件工程的各个环节简要分析多主体系统的开发方法。
1)需求分析
在这个环节上,多主体的开发与其他一般软件的开发没有很大区别,多主体系统需求分析阶段的结果是用户的需求文档,在该文档中包含了系统分析人员和开发人员对用户需求的一个特性描述,一般用非技术语言书写,以方便用户的理解; 2)系統设计
软件工程所要解决的一个重要问题就是如何设计出高效、强大的软件系统。当前,多主体系统软件开发的很多研究工作都致力于使系统设计环节成为一个有方法可循的严格过程,但目前还没能形成一个公认的设计方法学。在面向主体的
设计方法学领域需要解决两个关键问题:理论基础,新的设计方法学需要有新的理论作为其提出的依据,在工程实践中对设计方法学不断的深入分析和研究对此问题有很好的帮助;宏观系统结构,在系统分析阶段形成了抽象、精确的系统规范之后,就需要将该规范转换成多个主体,并通过相对应的宏观结构理顺主体之间复杂的相互关系。因此,与面向对象的设计方法学类似,系统设计也要有一套有效的建模方法,通过该方法能够准确的确定主体的粒度和职能,精确描述主体之间的依赖关系,并提供不同的体系结构。
3)系统实现
系统实现阶段是根据设计阶段所建立的职能体系,确定承担不同职能的各主体怎样最好的实现。不同的职能设计将需要不同的主体结构,以体现职能所需要的功能特性和非功能特性。目前,己经提出了一些关于主体的体系结构,其中有两种是最典型的:“强AI系统”,它使用基于知识系统或逻辑定理证明来建造主体,在这种结构中通常采用标准的基于知识技术,并以规则、框架等知识表示技术代码化一个主体的行为;使用Java语言设计建立主体的基本框架,而不使用任何AI技术。目前来看,两种结构各有优缺点,通常简单的问题采用Java主体,而复杂问题就利用推理系统来建立主体。
4)系统的测试、调试和验证
测试和调试是主体开发过程中容易忽略的环节,由于目前多主体系统的开发仍处于初级阶段,所以许多性质在设计阶段很难完全确定,许多并发系统动态特性通常需要在原型系统建立后进行观测和调试,通过调试工具逐步执行并修正相应的行为。
4. 结论
近年来,对主体的研究蓬勃兴起,面向主体的编程被誉为是继面向对象编程之后的“软件开发的又一重大突破”。随着对主体理论与技术的深入研究,多主体系统己成为当前的研究热点。本文就多主体系统的设计与开发进行了研究,依据软件工程的各个环节简要分析多主体系统的开发方法。
参考文献:
[1] 张军,多主体系统-概念、方法与探索,首都经济贸易大学出版社,2013.
[2]R.Ma,Multiple positive solutions for nonlinear m-point boundary value problems.Appl.Math.ComPut2004,148:249-262.
[3]F.Xiao,L.Wang,J.Chen,Y.P.Gao,Finite-time formation control for multi-agent system Automation2009,45,2605-2611.
关键词:多主体系统;主体系统;体系结构;开发设计
1.多主体系统简介
多个体的系统被圣菲研究所称为多主体的系统,因为其中的个体都是独立决策的行为主体,不受一个系统中枢的指挥。这个系统因此可以被称为是多中心的,甚至由于自为中心的主体是如此之多以致可以被称为“无中心”的。但是它们并不因此是“一群乌合之众”,众多独立个体在相互作用的交往活动中却能彼此协调,保持一种宏观秩序,如在市场经济中众多商品生产者自发遵循价值法则活动所造成的现象。在他们的研究中,把研究的系统看成是多个主体组成,并且研究包含有子系统的多主体系统。
多主体系统可以定义为“a loosely-coupled network of problem solvers that work together to solve problems that are beyond their individual capabilities”。这些问题求解器就是一个个的主体。实际系统中的主体可由不同开发者在不同时间用不同工具和技术实现,各具不同领域不同程度的问题求解能力。多主体系统一般具有个体信息不完全、个体能力受限、无全局控制、数据分布化和计算异步等特点。一个多主体系统一般由以下几个部分组成:(1)多个已存在的主体;(2)多主体之间的联合意图,即多个主体联合行动以实现共同的目标;(3)常识,即主体之间的公共知识;(4)公共行为规范,即多个主体在联合行动中应遵守的公共规则和采取的行动;(5)主体赖以生存的环境,即为主体行为提供基本保障的设施,如网络、软硬件平台等。
2.多主体系统的体系结构
体系结构就是对要完成的特定任务进行特定分解的一般方法学。多主体系统体系结构研究的是怎样为构造主体按一定方法将主体分解成各种功能模块。多主体系统是主体群体,其中的各主体通过相互协商与合作来实现多主体系统的功能。因此,多主体系统体系结构分为个体主体体系结构和主体群体社会结构两部分。其中个体主体体系结构是指在多主体系统中单个主体的构造结构,它与单主体体系结构研究的内容联系紧密。主体群体社会结构是指存在于各主体中的通信和控制模式,通过定义主体之间的权威关系,为主体提供了一种交互框架。体系结构不但决定了主体之间的通信方式,也决定了系统中信息的存储和共享方式。体系结构的选取不但影响单主体内部协作智能的多少,而且也会影响多主体系统中异步、一致性、自主性和自适应性的程度。
下面简要介绍一下多主体系统中几种常见的社会结构,并对它们在控制结构、通信、信息存储等方面进行了分析和比较。
1)网络结构:这是一种平板结构,主体网络社会中没有特权者,每两个主体之间都是对等的关系。通信对等、信息局部化是这类结构的显著特点。
2)层次结构:主体群体中的主体被分层,在每一层的决策和该层的控制权集中在其上层主体上,由它(它们)控制和协调该层主体的行为。同一层的主体之间的通信要经过上层。这种结构的主体只需保存其下层主体的相关信息,但通信不如网络结构简略。
3)联盟结构:将系统中的主体根据某种方式(一般是根据距离远近,便于通信)划分成一个个的主体联盟。联盟与联盟之间的关系与网络结构中主体与主体之间关系一样。每个联盟有一个协助主体,不同联盟中主体之间的交互都是通过各联盟中的协助主体协助完成。
3.多主体系统开发设计方法
主体的理论、技术,特别是多主体的理论和技术为开放系统的分析、设计和实现提供了一个崭新的途径,被称为是“软件开发的又一重大突破”。目前,基于主体的技术应用日益广泛,其范围包括商务、工业、军事、医疗和教育等。在一些大型的基于主体的软件中,往往会包含数量不等的主体,甚至达到百千计,其复杂程度很高,没有好的开发设计方法要完成此项工作是不可想象的。
近年来,基于主体软件工程的研究主要集中在面向主体的开发方法学的探索,许多方法都借鉴了面向对象的开发方法和建模技术,依此为基础,将一些术语、概念和建模方法应用到多主体系统的分析与设计中。这些技术的使用或者直接应用到多主体系统设计中,或者根据多主体系统的计算特性进行扩展,形成新的面向主体的开发方法和建模技术。另外,还有一些研究是基于软件工程和知识工程建模技术,比如Brazier等人提出了一种设计多主体系统的规范框架,称为DESIRE(design and specification of interacting reasoning components)。另外一些方法是将多主体系统看成一个由计算实体构成的人工社会或组织,然后借鉴组织设计的概念、方法等来说明多主体系统的分析和设计,这类方法更能描述主体的自主性和多主体系统中的复杂协作行为。上述方法从两个角度来进行多主体系统的开发:
1)将分析和设计过程的结果看成一个抽象的規范,开发者根据这个规范,采用原有的低级设计与实现技术进行实现;
2)在分析与设计过程中形成一些体系结构方面的框架和约定,直接应用于实现。但面向主体的开发方法学最终是要在分析、设计过程形成一个特定的多主体系统结构和有关各主体结构的严格规范,并通过一个系统的设计步骤产生直接可实现的主体模型的集合。
到目前为止,设计和实现多主体系统还比较缺乏经验,同时也没有高质量的软件工具支持,在实施过程中还没有统一的规范,特别是大多数系统的建造都是从头开始,组件基本不能重用,很多系统都是依据各自的具体情况开发的。这里,依据软件工程的各个环节简要分析多主体系统的开发方法。
1)需求分析
在这个环节上,多主体的开发与其他一般软件的开发没有很大区别,多主体系统需求分析阶段的结果是用户的需求文档,在该文档中包含了系统分析人员和开发人员对用户需求的一个特性描述,一般用非技术语言书写,以方便用户的理解; 2)系統设计
软件工程所要解决的一个重要问题就是如何设计出高效、强大的软件系统。当前,多主体系统软件开发的很多研究工作都致力于使系统设计环节成为一个有方法可循的严格过程,但目前还没能形成一个公认的设计方法学。在面向主体的
设计方法学领域需要解决两个关键问题:理论基础,新的设计方法学需要有新的理论作为其提出的依据,在工程实践中对设计方法学不断的深入分析和研究对此问题有很好的帮助;宏观系统结构,在系统分析阶段形成了抽象、精确的系统规范之后,就需要将该规范转换成多个主体,并通过相对应的宏观结构理顺主体之间复杂的相互关系。因此,与面向对象的设计方法学类似,系统设计也要有一套有效的建模方法,通过该方法能够准确的确定主体的粒度和职能,精确描述主体之间的依赖关系,并提供不同的体系结构。
3)系统实现
系统实现阶段是根据设计阶段所建立的职能体系,确定承担不同职能的各主体怎样最好的实现。不同的职能设计将需要不同的主体结构,以体现职能所需要的功能特性和非功能特性。目前,己经提出了一些关于主体的体系结构,其中有两种是最典型的:“强AI系统”,它使用基于知识系统或逻辑定理证明来建造主体,在这种结构中通常采用标准的基于知识技术,并以规则、框架等知识表示技术代码化一个主体的行为;使用Java语言设计建立主体的基本框架,而不使用任何AI技术。目前来看,两种结构各有优缺点,通常简单的问题采用Java主体,而复杂问题就利用推理系统来建立主体。
4)系统的测试、调试和验证
测试和调试是主体开发过程中容易忽略的环节,由于目前多主体系统的开发仍处于初级阶段,所以许多性质在设计阶段很难完全确定,许多并发系统动态特性通常需要在原型系统建立后进行观测和调试,通过调试工具逐步执行并修正相应的行为。
4. 结论
近年来,对主体的研究蓬勃兴起,面向主体的编程被誉为是继面向对象编程之后的“软件开发的又一重大突破”。随着对主体理论与技术的深入研究,多主体系统己成为当前的研究热点。本文就多主体系统的设计与开发进行了研究,依据软件工程的各个环节简要分析多主体系统的开发方法。
参考文献:
[1] 张军,多主体系统-概念、方法与探索,首都经济贸易大学出版社,2013.
[2]R.Ma,Multiple positive solutions for nonlinear m-point boundary value problems.Appl.Math.ComPut2004,148:249-262.
[3]F.Xiao,L.Wang,J.Chen,Y.P.Gao,Finite-time formation control for multi-agent system Automation2009,45,2605-2611.