一种基于图形化表示的多智能体系统生成方法
【技术领域】
[0001] 本发明涉及多智能体系统开发技术,具体涉及一种基于图形化表示的多智能体系 统生成方法。
【背景技术】
[0002] 多智能体系统(Multi-AgentSystem,简称MAS)是分布式人工智能的一个重要分 支,通过将多个智能体组织在一起,彼此通信和协调,共同实现某些鹿大而复杂的目标或者 完成特定的任务。多智能体系统具有自治性、分布性、反应性、主动性等特点,并具备一定 的组织能力、学习能力和推理能力。并且,不同的智能体之间可W是异构和分布的,不管单 个的智能体运行在什么环境与平台,只要智能体之间按照约定的规范进行通信与交互,它 们就能够组成一个多元的智能体系统。由于多智能体不仅具备分布式和并行解决问题的 能力,也在处理一些复杂模式与交互等方面有与生俱来的优势,它被广泛应用于生产规划、 巧雌控制、后勤、仿真、协调专家系统、分布式智能决策、空间探测、教育培训、分布式故障诊 断、供应链集成和虚拟企业等领域,并且随着多智能体技术的不断发展与完善,它将被应用 于更加广泛的领域。
[0003] 目前的多智能体系统开发方法主要有两类,一类是文本化的开发方法,一类是图 形化的开发方法。在文本化的开发方法中,用户W文本化的方式,在多智能体开发平台的 基础上,利用JAVA或C++的开发环境,直接编写JAVA或C++代码,从而开发出所需的多智 能体系统;该种开发方法导致用户不得不直接通过编写底层代码来设计并实现多智能体系 统,该对用户的计算机专业技能提出了很高的要求,无疑增加了软件开发成本。在图形化的 开发方法中,用户可通过图形化开发环境,对多智能体系统进行建模,而用户所建立的图形 化多智能体系统模型则可被自动转化为JAVA代码,从而形成多智能体系统。然而,目前的 图形化开发方法存在两个问题,第一,图形化多智能体系统模型的表示涉及了过多的多智 能体内部机制的细节,例如,协商机制等,抽象程度不高,不利于用户的理解与使用,且要求 用户掌握大量的关于多智能体系统的计算机专业知识;第二,目前在图形化多智能体系统 模型与底层代码转化中,没有普式的转化方法,且无法转化为C++代码,而许多工业领域的 软件,例如智能配电网相关软件的开发都WC++为主流开发语言,该就大大制约了图形化 开发方法的应用范围。
【发明内容】
[0004] 针对上述多智能体系统开发方法中存在的问题,本发明所要解决的技术问题是: 如何针对多智能体平台设计一种简洁、易用、抽象程度高的图形化开发方法,使用户不必关 也诸如网络消息通讯、任务调度算法、底层服务机制等多智能体系统的底层软件开发细节, 就可开发出满足应用需求的多智能体系统。
[0005] 为了解决上述技术问题,本发明提出了基于图形化表示的多智能体系统生成方 法,其具体步骤如下:
[0006] 1)采用图形化方式编辑构建多智能体系统的各个构成元素,包括智能体、任务、 服务和运行平台,并对多智能体系统的图形化元素进行建模,形成多智能体系统的表示模 型;
[0007]2)根据多智能体系统的表示模型,利用UML类图建立多智能体系统各个构成元素 的中间模型,将各个构成元素的属性与中间模型对应;
[0008]3)将多智能体系统各个构成元素的中间模型转化为底层代码,完成多智能体系统 的代码生成,得到自定义的多智能体系统。
[0009] 其中,步骤1)采用图形化方式编辑构建多智能体系统的各个构成元素的具体方法 是:
[0010] a)整个多智能体系统图形包括智能体、任务、服务、运行平台等图形元素,各类图 形元素由不同的图标表示。
[0011]b)智能体与任务的图形元素之间具备包含关系,即一个智能体图标的内部可W包 含零个或者若干个任务图标,表明该个智能体负责调度它所包含的所有任务。
[0012]C)服务用一条有向线段表示,该有向线段只能从智能体图标出发,终止于平台图 标,箭头指向平台图标。一条有向线段可W表示多个服务,该些服务的共同点是,它们都由 该线段相连的智能体提供,并且向线段指向的平台注册。
[0013] d)-个完整的多智能体系统图形有且仅有一个平台图标。可W有零个或者若干 个智能体图标和任务图标。所有的任务图标必须被包含在智能体图标内部,不能独立存在。 智能体图标到平台图标至多只能存在一条有向线段。
[0014] 进一步地,将步骤3)生成的底层代码与多智能体平台开发框架提供的通用源代码 整合编译,生成最终的完整的自定义多智能体系统的目标文件(可执行文件)。
[0015] 其中,对多智能体系统的代码转化包括两部分。一是利用底层多智能体平台所提 供的基本开发框架,将中间模型中的类与基本开发框架中的源代码相对应。例如用中间模 型表示的一个智能体类,必定具备基本开发框架中一个智能体的基本特性,因此,它是从基 本开发框架中的智能体类继承而来。另一方面,每个中间模型表示的智能体类,由于一开始 图形化设置的不同,都具备其独特的属性,因此,该些智能体类在代码转化过程中都将变成 基本智能体的子类,每个子类的属性各不相同。同时,根据图形化设置的不同和功能的不 同,会自动生成不同的代码块。本发明中,所有在图形化表示中通过有向线段注册服务的 智能体,都会在最终转化而成的智能体子类的启动方法中自动加入实现注册服务功能的代 码;所有在图形化表示中创建的智能体,都会在最终的系统启动函数中自动加入创建该智 能体的代码;所有在图形化表示中创建的任务,都会在最终转化而成的任务类中自动加入 与服务调用有关的交互逻辑代码。
[0016] 上述代码转化方法,在生成任务类的交互逻辑部分代码时,主要生成的逻辑如下: 一旦在任务的执行过程中需要调用某个服务,该任务即在调用服务后主动挂起,等待服务 返回结果,并且记录程序执行点;一旦服务正常返回,程序进入执行区从原来记录的执行点 继续往下执行,而不是从头开始执行;一旦服务不正常返回,即进入异常处理区做相应的处 理。
[0017] 在进行代码编译时,首先对通过图形化开发方法生成的源代码进行编译,如果发 现语法错误立即停止编译并作出提示;如果编译通过,则接下来将上述源代码与多智能体 平台提供的核也代码整合编译,最终生成整个多智能体系统的执行文件。
[0018] 本发明的有益效果:
[0019] 首先,本发明可对多智能体系统进行图形化建模,提出了多智能体系统的表示模 型,将多智能体系统的表示进行了高度的抽象,极大地方便了开发人员的理解与使用,为其 设计开发多智能体系统提供了简洁易懂的方式。其次,本发明提出将多智能体系统的表示 模型转化为中间模型,再将中间模型转化为底层C++源代码的代码转化方法,有效的将图 形化表示与底层源代码进行自动关联,开发人员只需添加与其业务相关的代码,而不必关 也诸如网络消息通讯、任务调度算法、底层服务机制等多智能体系统的底层软件开发细节, 就可开发出满足应用需求的多智能体系统,从而极大地降低了领域开发人员的工作负担, 节省了多智能体系统的软件开发成本。
【附图说明】
[0020] 图1是智能体的表示模型示意图;
[0021] 图2是actor的表示模型示意图;
[0022]图3是任务的表示模型示意图;
[0023] 图4是服务的表不模型不意图;
[0024]图5是平台的表示模型示意图;
[00巧]图6是智能体的中间模型示意图;
[0026]图7是服务的中间模型示意图;
[0027] 图8是平台的中间模型示意图;
[0028] 图9是示例中搭建一个由多个智能体和多个任务组成的自定义多智能体系统(基 于多智能体的配电网潮流计算系统)的图形化表示示意图。
[0029] 图10是本发明的多智能体系统生成方法的步骤流程图。
【具体实施方式】
[0030] 下面通过具体实施案例和附图,对本发明做进一步说明。
[0031] 本发明提出的基于模型转化的多智能体系统生成方法,其步骤如图10所示,具体 说明如下:
[0032] 1)对多智能体系统的构成元素即智能体、任务、服务和运行平台,进行图形化建 模,建立多智能体系统表示模型。各个构成元素的表示模型按照如下方法建立:
[0033] 1-1)如图1所示建立智能体表示模型。其中,id是每个智能体在整个多智能体系 统中唯一的一个身份标识符,从而与系统中其他的智能体相区分。系统通过id来定位每个 智能体。rs代表一个智能体为了完成特定的任务或者实现自身的功能,需要请求外界提供 给它的服务。PS代表一个智能体能够给其他智能体或者外界环境提供的功能,该是