著录项信息
专利名称 | 基于数据流映射的通用人工社会态势显示方法及装置 |
申请号 | CN201410013947.6 | 申请日期 | 2014-01-13 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2014-04-02 | 公开/公告号 | CN103699761A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/50 | IPC分类号 | G;0;6;F;1;7;/;5;0查看分类表>
|
申请人 | 中国人民解放军国防科学技术大学 | 申请人地址 | 湖南省长沙市砚瓦池正街47号中国人民解放军国防科学技术大学信息系统与管理学院
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国人民解放军国防科学技术大学 | 当前权利人 | 中国人民解放军国防科学技术大学 |
发明人 | 陈彬;钟荣华;马亮;郭刚;邱晓刚;段红;杨健;行舟 |
代理机构 | 湖南兆弘专利事务所 | 代理人 | 赵洪;谭武艺 |
摘要
本发明公开了一种基于数据流映射的通用人工社会态势显示方法及装置,方法的实施步骤如下:初始化配置文件,根据配置文件配置态势显示方式及数据显示方式;在人工社会并行计算引擎的支撑下,控制多个人工社会模型推动人工社会演化;获取人工社会并行计算引擎的态势数据并生成态势数据包,解析生成态势符号包、态势统计包,更新数据图的展示方式、在态势显示底图上更新统计数据。装置包括文件配置模块、显示设置模块、人工社会演化模块、数据接收模块、数据处理模块、数据显示模块、态势显示模块。本发明具有用户定制能力强、态势显示的通用性与适应性好、整体态势表现的灵活程度高、能够为更好的进行辅助决策提供反馈支持的优点。
1.一种基于数据流映射的通用人工社会态势显示方法,其特征在于实施步骤如下:
1)初始化配置文件,所述配置文件包括态势符号集、定制实体类集、定制实体集、复杂数据类型集、数据显示集和数据包配置集;所述态势符号集由多种态势符号组成,所述态势符号为态势显示相关的符号和图片,所述定制实体类集由多个定制实体类组成,所述定制实体类包含实体类及其属性的描述、实体类与态势显示符号之间的映射关系,所述定制实体集由多个定制实体组成,所述定制实体包含对实体及其属性的描述以及实体属性与相应态势显示符号的映射关系,所述复杂数据类型集由多种复杂数据类型组成,所述复杂数据类型包括用于解析从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的简单数据类型到复杂数据类型的结构体数据之间的映射关系,所述数据显示集包括图表的定义、智能体属性统计信息的显示类型和态势显示是否需要显示统计数据,所述图表的定义包括图表类型和数据类型,所述数据包配置集包括从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的数据交换标准、从内存中的指定位置读取态势数据包、从内存中的指定位置读取态势符号包及态势统计包的数据交换标准;
2)根据所述配置文件的态势符号集、定制实体类集、定制实体集、复杂数据类型集配置态势显示方式,根据所述配置文件的数据显示集配置数据显示方式;
3)在人工社会并行计算引擎的支撑下,驱动多个人工社会模型相互作用推动人工社会的演化;
4)在人工社会的演化过程中,从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流,根据所述配置文件的数据包配置集将所述不透明数据流进行解析得到态势数据,对所述配置文件的数据显示集中图表定义的数据类型进行统计得到统计数据,将解析得到的态势数据与统计数据打包生成态势数据包,最后将态势数据包映射到内存中的指定位置;
5)根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势数据包并进行解析,将解析得到的数据按照显示设置模块中保存的映射集与态势符号相关联形成态势符号包,抽取定制数据形成态势统计包,将所述态势符号包、态势统计包映射到内存中的指定位置;然后按顺序执行步骤6)和步骤7);
6)根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势统计包,基于所述配置文件配置的态势显示方式,根据所述态势统计包的数据更新模式使用配置的图形图表展示数据;
7)利用内存映射机制从内存中的指定位置读取态势符号包,根据配置的态势显示方式,利用所述态势符号包在态势显示底图上刷新态势符号,同时根据所述数据显示集中配置的智能体属性统计信息的显示类型利用所述态势统计包的新数据在态势显示底图上更新统计数据;
所述步骤2)的详细步骤如下:
2.1)读取所述配置文件的数据显示集中图表的定义、智能体属性统计信息的显示类型,根据所述定义、智能体属性统计信息的显示类型配置数据显示方式,所述图表的定义包括图表的图表类型和数据类型,所述图表类型包括柱状图、折线图和饼图,所述智能体属性统计信息的显示类型包括点密度图和气泡图;
2.2)确定所述配置文件的态势符号集中每一种态势符号的全局唯一编号;
2.3)确定所述配置文件的定制实体类集中每一种定制实体类的全局唯一编号;
2.4)确定所述配置文件的定制实体集中每一种定制实体的全局唯一编号;
2.5)确定所述配置文件的复杂数据类型集中每一种复杂数据类型的全局唯一编号;
2.6)设置复杂数据类型是否需要扁平化处理,如果需要扁平化处理,则分别读取复杂数据类型集中每一种复杂数据类型的全局唯一编号,然后使用递归的方式将复杂数据类型的结构体数据中的每一项属性信息分解为透明的简单数据类型,转步骤2.7);如果不需要扁平化处理,则直接转步骤2.7);
2.7)根据所述配置文件的态势符号集、定制实体类集、定制实体集三者的配置信息建立态势符号、定制实体类、定制实体三者之间的映射关系,确定态势符号的包括颜色、位置、大小、方向在内的属性信息;
2.8)将所述态势符号、定制实体类、定制实体三者之间的映射关系保存在缓存中;
所述步骤6)的详细步骤如下:
6.1)初始化用于数据显示的图表元素;
6.2)根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置获取态势统计包;
6.3)判断是否存在态势统计包,若存在则转步骤6.4),若不存在,则返回重新执行步骤
6.2);
6.4)根据态势统计包内容刷新数据图,根据所述数据显示集用态势统计包中新的数据更新数据图;
6.5)判断是否收到结束数据显示的命令,如果收到则结束数据显示,否则转步骤6.2);
所述步骤7)的详细步骤如下:
7.1)预先加载态势显示底图,所述态势显示底图包含态势显示需要的背景信息;
7.2)利用内存映射机制从内存中的指定位置获取态势符号包;
7.3)判断是否存在态势符号包,若存在则转步骤7.4),若不存在,则返回重新执行步骤
7.2);
7.4)读取获取的态势符号包,根据所述态势符号、定制实体类、定制实体三者之间的映射关系中态势符号与定制实体之间的映射关系,以及态势符号与定制实体类之间的映射关系,将所述定制实体及定制实体类的属性分别初始化定制实体及定制实体类所映射态势符号的态势显示类,从而确定态势符号属性信息的新的颜色、位置、大小、方向,从而完成在态势显示底图上刷新态势符号;所述态势显示类是指与态势符号绑定的类,其中态势显示类中的属性决定了态势符号的相关表现方式;
7.5)检查所述配置文件的数据显示集中配置的态势显示是否需要显示统计数据,如果态势显示需要显示统计数据,则转步骤7.6),否则转步骤7.7);
7.6)利用所述态势统计包的新数据在态势显示底图上更新统计数据的显示;
7.7)判断是否收到结束态势显示的命令,如果收到则结束态势显示,否则转步骤7.3);
7.8)结束态势显示。
2.根据权利要求1所述的基于数据流映射的通用人工社会态势显示方法,其特征在于:所述步骤3)中的多个人工社会模型包括智能体模型、环境模型、突发事件模型和控制干预模型。
3.一种基于数据流映射的通用人工社会态势显示装置,其特征在于包括:
计算实验管理模块,用于初始化配置文件,所述配置文件包括态势符号集、定制实体类集、定制实体集、复杂数据类型集、数据显示集和数据包配置集;所述态势符号集由多种态势符号组成,所述态势符号为态势显示相关的符号和图片,所述定制实体类集由多个定制实体类组成,所述定制实体类包含实体类及其属性的描述、实体类与态势显示符号之间的映射关系,所述定制实体集由多个定制实体组成,所述定制实体包含对实体及其属性的描述以及实体属性与相应态势显示符号的映射关系,所述复杂数据类型集由多种复杂数据类型组成,所述复杂数据类型包括用于解析从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的简单数据类型到复杂数据类型的结构体数据之间的映射关系,所述数据显示集包括图表的定义、智能体属性统计信息的显示类型和态势显示是否需要显示统计数据,所述图表的定义包括图表类型和数据类型,所述数据包配置集包括从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的数据交换标准、从内存中的指定位置读取态势数据包、从内存中的指定位置读取态势符号包及态势统计包的数据交换标准;
显示设置模块,用于根据所述配置文件的态势符号集、定制实体类集、定制实体集、复杂数据类型集配置态势显示方式,根据所述配置文件的数据显示集配置数据显示方式;
人工社会演化模块,在人工社会并行计算引擎的支撑下,驱动所述多个人工社会模型相互作用推动人工社会的演化;
数据接收模块,用于在人工社会的演化的过程中,从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流,根据所述配置文件的数据包配置集将所述不透明数据流进行解析得到态势数据,对所述配置文件的数据显示集中图表定义的数据类型进行统计得到统计数据,将解析得到的态势数据与统计数据打包生成态势数据包,最后将态势数据包映射到内存中的指定位置;
数据处理模块,用于根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势数据包并进行解析,将解析得到的数据按照显示设置模块中保存的映射集与态势符号相关联形成态势符号包,抽取定制数据形成态势统计包,将所述态势符号包、态势统计包映射到内存中的指定位置;分别调用数据显示模块和态势显示模块;
数据显示模块,用于根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势统计包,基于所述配置文件配置的态势显示方式,根据所述态势统计包的数据更新模式使用配置的图形图表展示数据;
态势显示模块,用于利用内存映射机制从内存中的指定位置读取态势符号包,根据配置的态势显示方式,利用所述态势符号包在态势显示底图上刷新态势符号,同时根据所述数据显示集中配置的智能体属性统计信息的显示类型利用所述态势统计包的新数据在态势显示底图上更新统计数据;
所述显示设置模块包括:
数据图设置子模块,用于读取所述配置文件的数据显示集中图表的定义、智能体属性统计信息的显示类型,根据所述定义、智能体属性统计信息的显示类型配置数据显示方式,所述图表的定义包括图表的图表类型和数据类型,所述图表类型包括柱状图、折线图和饼图,所述智能体属性统计信息的显示类型包括点密度图和气泡图;
态势符号编号子模块,用于确定所述配置文件的态势符号集中每一种态势符号的全局唯一编号;
定制实体类编号子模块,用于确定所述配置文件的定制实体类集中每一种定制实体类的全局唯一编号;
定制实体编号子模块,用于确定所述配置文件的定制实体集中每一种定制实体的全局唯一编号;
复杂数据类型编号子模块,用于确定所述配置文件的复杂数据类型集中每一种复杂数据类型的全局唯一编号;
复杂数据类型扁平化处理子模块,用于设置复杂数据类型是否需要扁平化处理,如果需要扁平化处理,则分别读取复杂数据类型集中每一种复杂数据类型的全局唯一编号,然后使用递归的方式将复杂数据类型的结构体数据中的每一项属性信息分解为透明的简单数据类型,并调用态势显示设置子模块;如果不需要扁平化处理,则直接调用态势显示设置子模块;
态势显示设置子模块,用于根据所述配置文件的态势符号集、定制实体类集、定制实体集三者的配置信息建立态势符号、定制实体类、定制实体三者之间的映射关系,确定态势符号的包括颜色、位置、大小、方向在内的属性信息;
映射关系保存子模块,用于将所述态势符号、定制实体类、定制实体三者之间的映射关系保存在缓存中;
所述数据显示模块包括:
图表元素初始化子模块,用于初始化用于数据显示的图表元素;
态势统计包获取子模块,用于根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置获取态势统计包;
态势统计包判断子模块,用于判断是否存在态势统计包,若存在则调用数据图刷新子模块,若不存在,则返回重新调用态势统计包获取子模块;
数据图刷新子模块,用于根据态势统计包内容刷新数据图,根据所述数据显示集用态势统计包中新的数据更新数据图;
数据显示结束判断子模块,用于判断是否收到结束数据显示的命令,如果收到则结束数据显示,否则调用态势统计包获取子模块;
所述态势显示模块包括:
态势显示底图加载子模块,用于预先加载态势显示底图,所述态势显示底图包含态势显示需要的背景信息;
态势符号包获取子模块,用于利用内存映射机制从内存中的指定位置获取态势符号包;
态势符号包判断子模块,用于判断是否存在态势符号包,若存在则调用态势符号刷新子模块,若不存在,则返回重新调用态势符号包获取子模块;
态势符号刷新子模块,用于读取获取的态势符号包,根据所述态势符号、定制实体类、定制实体三者之间的映射关系中态势符号与定制实体之间的映射关系,以及态势符号与定制实体类之间的映射关系,将所述定制实体及定制实体类的属性分别初始化定制实体及定制实体类所映射态势符号的态势显示类,从而确定态势符号属性信息的新的颜色、位置、大小、方向,从而完成在态势显示底图上刷新态势符号;所述态势显示类是指与态势符号绑定的类,其中态势显示类中的属性决定了态势符号的相关表现方式;
态势显示统计数据判断子模块,用于检查所述配置文件的数据显示集中配置的态势显示是否需要显示统计数据,如果态势显示需要显示统计数据,则调用统计数据更新子模块,否则调用态势显示结束判断子模块;
统计数据更新子模块,用于利用所述态势统计包的新数据在态势显示底图上更新统计数据的显示;
态势显示结束判断子模块,用于判断是否收到结束态势显示的命令,如果收到则结束态势显示,否则调用态势符号包判断子模块。
4.根据权利要求3所述的基于数据流映射的通用人工社会态势显示装置,其特征在于:所述人工社会演化模块中的人工社会模型包括智能体模型、环境模型、突发事件模型和控制干预模型。
基于数据流映射的通用人工社会态势显示方法及装置\n技术领域\n[0001] 本发明涉及人工社会仿真领域,具体是一种基于数据流映射的通用人工社会态势显示方法及装置。\n背景技术\n[0002] 人工社会系指基于建模与仿真建立的、与真实系统对应的虚拟世界,人工社会的仿真需要应用复杂系统理论建立与实际社会系统平行运行的人工社会计算实验系统。在哲学层面上,人工社会已迈向了“多重社会”的认识,认为人工社会也是一种现实,是现实社会的一种可能替代形式。目前人工社会还是一门试验性的学科,第一,强调整体性的观点,即在建模时基于人工组件构建复杂行为模式而不是机械地将自然系统进行拆分来理解系统行为。第二,利用涌现的方法进行观测、了解、分析和理解复杂系统的行为及其各种影响因素,从而为影响因素的“量化”分析和评估创造条件。基于人工社会的仿真手段已经成为解决复杂社会系统问题越来越重要、越来越有效,甚至是唯一有效的手段。\n[0003] 态势显示是人工社会仿真领域非常重要的一个环节。态势显示用于表现仿真过程中的模拟状态,合理组织模型中大量数据并以直观、形象的图形图表方式展现海量数据,在人工社会仿真领域起到描述人工社会形态和辅助决策的作用,为形成反馈控制提供依据,是人工社会仿真系统不可缺少的一部分。态势显示具有重大的理论与实践意义,第一,方便人们对大量抽象的数据进行分析;第二,可以大大提高人们对数据的处理能力;第三,实现对计算和编程过程的引导和控制;第四,可以辅助检验模型与实际的符合程度。\n[0004] 现有技术条件下人工社会领域的仿真存在下述特点:(1)人工社会领域的仿真与其他领域仿真的一个显著特点是由于仿真实体数量庞大,交互过程中产生海量数据,这对数据的传输与处理提出了一个巨大的挑战,并极有可能成为提高仿真性能的瓶颈;(2)人工社会领域的仿真更多关注的是一定范围内仿真实体群的整体表现情况,如在突发安全事件仿真中对群体心理状态的关注,突发事件中染病整体情况,这就要求人工社会领域的态势显示装置需要以灵活、直观的形式展现整体态势同时减小数据传输与处理的压力。目前现有的人工社会态势显示解决方案还具有一个重大缺陷:态势显示与具体计算应用绑定,不能够适应不同计算应用领域需求的变化,在需求变化后必须重新编码构建新的态势显示装置,不能重用现有的态势显示装置。这主要由以下三个原因造成:第一,态势显示装置在源代码级与计算应用绑定;第二,态势显示装置中态势符号与态势显示实体的映射关系在确定后难以改变,当态势显示需求变化后不能主动适应;第三,态势显示装置中的数据接收部分与态势显示引擎耦合度过高,使态势显示引擎在计算应用相关联的数据变化时总要更改接口来适应变化。综上所述,目前现有的人工社会态势显示解决方案的上述问题对人工社会仿真的应用产生了极大的限制。\n发明内容\n[0005] 本发明要解决的技术问题是提供一种用户定制能力强、态势显示的通用性与适应性好、整体态势表现的灵活程度高、能够为更好地进行辅助决策提供反馈支持的基于数据流映射的通用人工社会态势显示方法及装置。\n[0006] 为了解决上述技术问题,本发明采用的技术方案为:\n[0007] 一种基于数据流映射的通用人工社会态势显示方法,其实施步骤如下:\n[0008] 1)初始化配置文件,所述配置文件包括态势符号集、定制实体类集、定制实体集、复杂数据类型集、数据显示集和数据包配置集;所述态势符号集由多种态势符号组成,所述态势符号为态势显示相关的符号和图片,所述定制实体类集由多个定制实体类组成,所述定制实体类包含实体类及其属性的描述、实体类与态势显示符号之间的映射关系,所述定制实体集由多个定制实体组成,所述定制实体包含对实体及其属性的描述以及实体属性与相应态势显示符号的映射关系,所述复杂数据类型集由多种复杂数据类型组成,所述复杂数据类型包括用于解析从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的简单数据类型到复杂数据类型的结构体数据之间的映射关系,所述数据显示集包括图表的定义、智能体属性统计信息的显示类型和态势显示是否需要显示统计数据,所述图表的定义包括图表类型和数据类型,所述数据包配置集包括从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的数据交换标准、从内存中的指定位置读取态势数据包、从内存中的指定位置读取态势符号包及态势统计包的数据交换标准;\n[0009] 2)根据所述配置文件的态势符号集、定制实体类集、定制实体集、复杂数据类型集配置态势显示方式,根据所述配置文件的数据显示集配置数据显示方式;\n[0010] 3)在人工社会并行计算引擎的支撑下,驱动多个人工社会模型相互作用推动人工社会的演化;\n[0011] 4)在人工社会的演化过程中,从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流,根据所述配置文件的数据包配置集将所述不透明数据流进行解析得到态势数据,对所述配置文件的数据显示集中图表定义的数据类型进行统计得到统计数据,将解析得到的态势数据与统计数据打包生成态势数据包,最后将态势数据包映射到内存中的指定位置;\n[0012] 5)根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势数据包并进行解析,将解析得到的数据按照显示设置模块中保存的映射集与态势符号相关联形成态势符号包,抽取定制数据形成态势统计包,将所述态势符号包、态势统计包映射到内存中的指定位置;然后分别执行步骤6)和步骤7);\n[0013] 6)根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势统计包,基于所述配置文件配置的态势显示方式,根据所述态势统计包的数据更新模式使用配置的图形图表展示数据;\n[0014] 7)利用内存映射机制从内存中的指定位置读取态势符号包,根据配置的态势显示方式,利用所述态势符号包在态势显示底图上刷新态势符号,同时根据所述数据显示集中配置的智能体属性统计信息的显示类型利用所述态势统计包的新数据在态势显示底图上更新统计数据。\n[0015] 进一步地,所述步骤2)的详细步骤如下:\n[0016] 2.1)读取所述配置文件的数据显示集中图表的定义、智能体属性统计信息的显示类型,根据所述定义、智能体属性统计信息的显示类型配置数据显示方式,所述图表的定义包括图表的图表类型和数据类型,所述图表类型包括柱状图、折线图和饼图,所述智能体属性统计信息的显示类型包括点密度图和气泡图;\n[0017] 2.2)确定所述配置文件的态势符号集中每一种态势符号的全局唯一编号;\n[0018] 2.3)确定所述配置文件的定制实体类集中每一种定制实体类的全局唯一编号;\n[0019] 2.4)确定所述配置文件的定制实体集中每一种定制实体的全局唯一编号;\n[0020] 2.5)确定所述配置文件的复杂数据类型集中每一种复杂数据类型的全局唯一编号;\n[0021] 2.6)设置复杂数据类型是否需要扁平化处理,如果需要扁平化处理,则分别读取复杂数据类型集中每一种复杂数据类型的全局唯一编号,然后使用递归的方式将复杂数据类型的结构体数据中的每一项属性信息分解为透明的简单数据类型,转下一步;如果不需要扁平化处理,则直接转下一步;\n[0022] 2.7)根据所述配置文件的态势符号集、定制实体类集、定制实体集三者的配置信息建立态势符号、定制实体类、定制实体三者之间的映射关系,确定态势符号的包括颜色、位置、大小、方向在内的属性信息;\n[0023] 2.8)将所述态势符号、定制实体类、定制实体三者之间的映射关系保存在缓存中。\n[0024] 进一步地,所述步骤3)中的多个人工社会模型包括智能体模型、环境模型、突发事件模型和控制干预模型。\n[0025] 进一步地,所述步骤6)的详细步骤如下:\n[0026] 6.1)初始化用于数据显示的图表元素;\n[0027] 6.2)根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置获取态势统计包;\n[0028] 6.3)判断是否存在态势统计包,若存在则转步骤6.4),若不存在,则返回重新执行步骤6.2);\n[0029] 6.4)根据态势统计包内容刷新数据图,根据所述数据显示集用态势统计包中新的数据更新数据图;\n[0030] 6.5)判断是否收到结束数据显示的命令,如果收到则结束数据显示,否则转步骤\n6.2)。\n[0031] 进一步地,所述步骤7)的详细步骤如下:\n[0032] 7.1)预先加载态势显示底图,所述态势显示底图包含态势显示需要的背景信息;\n[0033] 7.2)利用内存映射机制从内存中的指定位置获取态势符号包;\n[0034] 7.3)判断是否存在态势符号包,若存在则转步骤7.4),若不存在,则返回重新执行步骤7.2);\n[0035] 7.4)读取获取的态势符号包,根据所述态势符号、定制实体类、定制实体三者之间的映射关系中态势符号与定制实体之间的映射关系,以及态势符号与定制实体类之间的映射关系,将所述定制实体及定制实体类的属性分别初始化定制实体及定制实体类所映射态势符号的态势显示类,从而确定态势符号属性信息的新的颜色、位置、大小、方向,从而完成在态势显示底图上刷新态势符号;所述态势显示类是指与态势符号绑定的类,其中态势显示类中的属性决定了态势符号的相关表现方式;\n[0036] 7.5)检查所述配置文件的数据显示集中配置的态势显示是否需要显示统计数据,如果态势显示需要显示统计数据,则转步骤7.6),否则转步骤7.7);\n[0037] 7.6)利用所述态势统计包的新数据在态势显示底图上更新统计数据的显示;\n[0038] 7.7)判断是否收到结束态势显示的命令,如果收到则结束态势显示,否则转步骤\n7.3);\n[0039] 7.8)结束态势显示。\n[0040] 本发明还提供一种基于数据流映射的通用人工社会态势显示装置,包括:\n[0041] 计算实验管理模块,用于初始化配置文件,所述配置文件包括态势符号集、定制实体类集、定制实体集、复杂数据类型集、数据显示集和数据包配置集;所述态势符号集由多种态势符号组成,所述态势符号为态势显示相关的符号和图片,所述定制实体类集由多个定制实体类组成,所述定制实体类包含实体类及其属性的描述、实体类与态势显示符号之间的映射关系,所述定制实体集由多个定制实体组成,所述定制实体包含对实体及其属性的描述以及实体属性与相应态势显示符号的映射关系,所述复杂数据类型集由多种复杂数据类型组成,所述复杂数据类型包括用于解析从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的简单数据类型到复杂数据类型的结构体数据之间的映射关系,所述数据显示集包括图表的定义、智能体属性统计信息的显示类型和态势显示是否需要显示统计数据,所述图表的定义包括图表类型和数据类型,所述数据包配置集包括从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的数据交换标准、从内存中的指定位置读取态势数据包、从内存中的指定位置读取态势符号包及态势统计包的数据交换标准;\n[0042] 显示设置模块,用于根据所述配置文件的态势符号集、定制实体类集、定制实体集、复杂数据类型集配置态势显示方式,根据所述配置文件的数据显示集配置数据显示方式;\n[0043] 人工社会演化模块,在人工社会并行计算引擎的支撑下,驱动所述多个人工社会模型相互作用推动人工社会的演化;\n[0044] 数据接收模块,用于在人工社会的演化的过程中,从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流,根据所述配置文件的数据包配置集将所述不透明数据流进行解析得到态势数据,对所述配置文件的数据显示集中图表定义的数据类型进行统计得到统计数据,将解析得到的态势数据与统计数据打包生成态势数据包,最后将态势数据包映射到内存中的指定位置;\n[0045] 数据处理模块,用于根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势数据包并进行解析,将解析得到的数据按照显示设置模块中保存的映射集与态势符号相关联形成态势符号包,抽取定制数据形成态势统计包,将所述态势符号包、态势统计包映射到内存中的指定位置;分别调用数据显示模块和态势显示模块;\n[0046] 数据显示模块,用于根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势统计包,基于所述配置文件配置的态势显示方式,根据所述态势统计包的数据更新模式使用配置的图形图表展示数据;\n[0047] 态势显示模块,用于利用内存映射机制从内存中的指定位置读取态势符号包,根据配置的态势显示方式,利用所述态势符号包在态势显示底图上刷新态势符号,同时根据所述数据显示集中配置的智能体属性统计信息的显示类型利用所述态势统计包的新数据在态势显示底图上更新统计数据。\n[0048] 进一步地,所述显示设置模块包括:\n[0049] 数据图设置子模块,用于读取所述配置文件的数据显示集中图表的定义、智能体属性统计信息的显示类型,根据所述定义、智能体属性统计信息的显示类型配置数据显示方式,所述图表的定义包括图表的图表类型和数据类型,所述图表类型包括柱状图、折线图和饼图,所述智能体属性统计信息的显示类型包括点密度图和气泡图;\n[0050] 态势符号编号子模块,用于确定所述配置文件的态势符号集中每一种态势符号的全局唯一编号;\n[0051] 定制实体类编号子模块,用于确定所述配置文件的定制实体类集中每一种定制实体类的全局唯一编号;\n[0052] 定制实体编号子模块,用于确定所述配置文件的定制实体集中每一种定制实体的全局唯一编号;\n[0053] 复杂数据类型编号子模块,用于确定所述配置文件的复杂数据类型集中每一种复杂数据类型的全局唯一编号;\n[0054] 复杂数据类型扁平化处理子模块,用于设置复杂数据类型是否需要扁平化处理,如果需要扁平化处理,则分别读取复杂数据类型集中每一种复杂数据类型的全局唯一编号,然后使用递归的方式将复杂数据类型的结构体数据中的每一项属性信息分解为透明的简单数据类型,并调用态势显示设置子模块;如果不需要扁平化处理,则直接调用态势显示设置子模块;\n[0055] 态势显示设置子模块,用于根据所述配置文件的态势符号集、定制实体类集、定制实体集三者的配置信息建立态势符号、定制实体类、定制实体三者之间的映射关系,确定态势符号的包括颜色、位置、大小、方向在内的属性信息;\n[0056] 映射关系保存子模块,用于将所述态势符号、定制实体类、定制实体三者之间的映射关系保存在缓存中。\n[0057] 进一步地,所述人工社会演化模块中的人工社会模型包括智能体模型、环境模型、突发事件模型和控制干预模型。\n[0058] 进一步地,所述数据显示模块包括:\n[0059] 图表元素初始化子模块,用于初始化用于数据显示的图表元素;\n[0060] 态势统计包获取子模块,用于根据所述配置文件的数据包配置集并利用内存映射机制从内存中的指定位置获取态势统计包;\n[0061] 态势统计包判断子模块,用于判断是否存在态势统计包,若存在则调用数据图刷新子模块,若不存在,则返回重新调用态势统计包获取子模块;\n[0062] 数据图刷新子模块,用于根据态势统计包内容刷新数据图,根据所述数据显示集用态势统计包中新的数据更新数据图;\n[0063] 数据显示结束判断子模块,用于判断是否收到结束数据显示的命令,如果收到则结束数据显示,否则调用态势统计包获取子模块。\n[0064] 进一步地,所述态势显示模块包括:\n[0065] 态势显示底图加载子模块,用于预先加载态势显示底图,所述态势显示底图包含态势显示需要的背景信息;\n[0066] 态势符号包获取子模块,用于利用内存映射机制从内存中的指定位置获取态势符号包;\n[0067] 态势符号包判断子模块,用于判断是否存在态势符号包,若存在则调用态势符号刷新子模块,若不存在,则返回重新调用态势符号包获取子模块;\n[0068] 态势符号刷新子模块,用于读取获取的态势符号包,根据所述态势符号、定制实体类、定制实体三者之间的映射关系中态势符号与定制实体之间的映射关系,以及态势符号与定制实体类之间的映射关系,将所述定制实体及定制实体类的属性分别初始化定制实体及定制实体类所映射态势符号的态势显示类,从而确定态势符号属性信息的新的颜色、位置、大小、方向,从而完成在态势显示底图上刷新态势符号;所述态势显示类是指与态势符号绑定的类,其中态势显示类中的属性决定了态势符号的相关表现方式;\n[0069] 态势显示统计数据判断子模块,用于检查所述配置文件的数据显示集中配置的态势显示是否需要显示统计数据,如果态势显示需要显示统计数据,则调用统计数据更新子模块,否则调用态势显示结束判断子模块;\n[0070] 统计数据更新子模块,用于利用所述态势统计包的新数据在态势显示底图上更新统计数据的显示;\n[0071] 态势显示结束判断子模块,用于判断是否收到结束态势显示的命令,如果收到则结束态势显示,否则调用态势符号包判断子模块。\n[0072] 本发明基于数据流映射的通用人工社会态势显示方法具有下述技术效果:\n[0073] 1、本发明解耦了代码与仿真应用在源代码级别上的绑定关系,当仿真系统中模型发生改变后,不需要重写相关代码只需要在配置文件中将模型的变化情况进行更新即可。\n[0074] 2、本发明态势定制实体类包含实体类及其属性的描述、实体类与态势显示符号之间的映射关系通过配置文件进行配置,必要时可以根据需要添加态势符号及其与态势显示实体的映射关系,提高装置的灵活性。\n[0075] 3、本发明配置文件的数据包配置集包括从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的数据交换标准、从内存中的指定位置读取态势数据包、从内存中的指定位置读取态势符号包及态势统计包的数据交换标准,并在后续数据的接收、处理与显示根据数据包配置集进行处理,从而将数据的接收、处理与显示实现了解耦,接收、处理与显示间通过内存映射机制实现数据共享,保证了装置的实时性。\n[0076] 综上所述,本发明基于数据流映射的通用人工社会态势显示方法具有用户定制能力强、态势显示的通用性与适应性好、整体态势表现的灵活程度高、能够为更好的进行辅助决策提供反馈支持的优点。\n[0077] 本发明基于数据流映射的通用人工社会态势显示装置为本发明基于数据流映射的通用人工社会态势显示方法完全对应的装置,因此也具有本发明基于数据流映射的通用人工社会态势显示方法前述相同的技术效果,故在此不再赘述。\n附图说明\n[0078] 图1为本发明实施例方法的基本流程示意图。\n[0079] 图2为本发明实施例装置的逻辑框架结构示意图。\n[0080] 图3为本发明实施例方法步骤2)的详细流程示意图。\n[0081] 图4为本发明实施例方法步骤4)的详细流程示意图。\n[0082] 图5为本发明实施例方法步骤5)的详细流程示意图。\n[0083] 图6为本发明实施例方法步骤6)的详细流程示意图。\n[0084] 图7为本发明实施例方法步骤7)的详细流程示意图。\n具体实施方式\n[0085] 下文以突发卫生事件为例,对本实施例的基于数据流映射的通用人工社会态势显示方法及装置进行详细说明。需要说明的是,本实施例仅仅是以突发卫生事件为例进行说明,毫无疑问地,本实施例还可以应用到其它各种通用人工社会的仿真,在此不再赘述。在本实施例针对突发卫生事件仿真中,选取北京SARS传播为背景,主要关注的智能体属性包含年龄(整型)、性别(枚举类型)、职业(枚举类型)、经纬度(浮点型)、社会关系网(结构体类型)、健康状态(枚举类型)、染病阶段(枚举类型)、染病阶段时间(整型)、免疫力(布尔型)、应急干预措施(枚举类型)等。智能体的染病阶段分为健康阶段、潜伏期阶段、染病阶段、恢复阶段。涉及的态势显示符号包含智能体符号、疾病聚集暴发符号、社会关系连接符号等,这些智能体属性及态势显示符号均已唯一编号,可以通过编号唯一确定态势显示符号,为态势符号包的生成奠定了基础。\n[0086] 如图1所示,本实施例基于数据流映射的通用人工社会态势显示方法的实施步骤如下:\n[0087] 1)初始化配置文件,配置文件包括态势符号集、定制实体类集、定制实体集、复杂数据类型集、数据显示集和数据包配置集;态势符号集由多种态势符号组成,态势符号为态势显示相关的符号和图片,定制实体类集由多个定制实体类组成,定制实体类包含实体类及其属性的描述、实体类与态势显示符号之间的映射关系,定制实体集由多个定制实体组成,定制实体包含对实体及其属性的描述以及实体属性与相应态势显示符号的映射关系,复杂数据类型集由多种复杂数据类型组成,复杂数据类型包括用于解析从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的简单数据类型到复杂数据类型的结构体数据之间的映射关系,数据显示集包括图表的定义、智能体属性统计信息的显示类型和态势显示是否需要显示统计数据,图表的定义包括图表类型和数据类型,数据包配置集包括从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的数据交换标准、从内存中的指定位置读取态势数据包、从内存中的指定位置读取态势符号包及态势统计包的数据交换标准;\n[0088] 2)根据配置文件的态势符号集、定制实体类集、定制实体集、复杂数据类型集配置态势显示方式,根据配置文件的数据显示集配置数据显示方式;\n[0089] 3)在人工社会并行计算引擎的支撑下,驱动多个人工社会模型相互作用推动人工社会的演化;\n[0090] 4)在人工社会的演化过程中,从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流,根据配置文件的数据包配置集将不透明数据流进行解析得到态势数据,对配置文件的数据显示集中图表定义的数据类型进行统计得到统计数据,将解析得到的态势数据与统计数据打包生成态势数据包,最后将态势数据包映射到内存中的指定位置;\n[0091] 5)根据配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势数据包并进行解析,将解析得到的数据按照显示设置模块中保存的映射集与态势符号相关联形成态势符号包,抽取定制数据形成态势统计包,将态势符号包、态势统计包映射到内存中的指定位置;然后分别执行步骤6)和步骤7);\n[0092] 6)根据配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势统计包,基于配置文件配置的态势显示方式,根据态势统计包的数据更新模式使用配置的图形图表展示数据;\n[0093] 7)利用内存映射机制从内存中的指定位置读取态势符号包,根据配置的态势显示方式,利用态势符号包在态势显示底图上刷新态势符号,同时根据数据显示集中配置的智能体属性统计信息的显示类型利用态势统计包的新数据在态势显示底图上更新统计数据。\n[0094] 本实施例中,配置文件包括态势符号集、定制实体类集、定制实体集、复杂数据类型集、数据显示集和数据包配置集。实体是指现实世界中客观存在并可相互区别的事物,是仿真行为执行的主体,定制实体即为仿真过程中与态势显示相关的实体,如智能体实体,环境实体。配置文件的上述内容具体说明如下:\n[0095] 1.1)态势符号集由多种态势符号组成,态势符号为态势显示相关的符号和图片;\n本实施例中,态势显示相关的符号和图片均为png格式的图片文件,包含人口符号、建筑物符号、车辆符号,突发事件标号、智能体心理状态符号等,建筑物符号包含医院,学校,车站等。\n[0096] 1.2)定制实体类集由多个定制实体类组成,定制实体类包含实体类及其属性的描述、实体类与态势显示符号之间的映射关系。定制实体类集用于按实体类设置映射信息,包含实体类及其属性的描述,以及实体类与态势显示符号的映射关系。本实施例中定制实体类为智能体实体类和环境实体类。\n[0097] 1.3)定制实体集由多个定制实体组成,定制实体包含对实体及其属性的描述以及实体属性与相应态势显示符号的映射关系。定制实体集为用户自定义的对一些实体的归类显示,其中包含对实体及其属性的描述以及实体属性与相应态势显示符号的映射关系。定制实体及可包含某些特定编号的医院,特定编号的智能体,特定场所智能体或特定出行方式智能体。\n[0098] 1.4)复杂数据类型集由多种复杂数据类型组成,复杂数据类型包括用于解析从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的简单数据类型到复杂数据类型的结构体数据之间的映射关系。复杂数据类型集用于对数据流的解析,即将结构体中各个属性分解直至全为简单数据类型。本实施例中,简单数据类型包括整型、浮点型、数组型、布尔型、枚举型等数据类型,例如智能体编号为整型,经纬度为浮点型,性别为枚举型;结构体数据类型包括社会关系网属性。\n[0099] 1.5)数据显示集包括图表的定义、智能体属性统计信息的显示类型和态势显示是否需要显示统计数据,图表的定义包括图表类型和数据类型。本实施例中,图表类型包括曲线图、饼状图,在其中规定了显示图例,坐标轴的定义、布局以及图表对显示数据的规范化要求,数据的规范化需求即为数据类型、数据长度;智能体属性统计信息的显示类型包括点密度图等,可用于在态势底图上对不同心理状态的分布密度直观形象的展示,这些规则包含对数据的规范化需求,即数据类型,数据长度。\n[0100] 1.6)数据包配置集包括从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的数据交换标准、从内存中的指定位置读取态势数据包、从内存中的指定位置读取态势符号包及态势统计包的数据交换标准;数据包配置集具体包括三个方面的内容:\n第一,仿真引擎与数据接收模块数据交换标准,即从仿真引擎产生的不透明的数据的组织形式,仿真引擎按此标准将数据打包,数据接收模块按此标准进行解析;第二,数据接收模块与数据处理模块数据交换标准,即态势数据包的数据组织形式;第三,数据处理模块与态势显示及数据显示模块数据交换标准,即态势符号包与态势统计包的数据组织形式。仿真引擎与数据接收模块数据交换标准为:按照智能体索引从低到高在内存中连续存放智能体数据,每个智能体数据又按照智能体属性的次序依次排列,属性的排列次序与配置文件中对智能体属性描述的顺序一致,因此数据接收模块中数据解析单元可以根据配置文件对智能体的描述从内存中抽取感兴趣的智能体属性信息,实现数据解析,其他两种数据交换标准不再赘述。\n[0101] 本实施例中,步骤3)中的多个人工社会模型包含智能体模型、环境模型、突发事件模型和控制干预模型共四类模型。这四类模型的具体说明如下:\n[0102] 3.1)智能体模型:在智能体模型中关注年龄(整型)、性别(枚举类型)、职业(枚举类型)、经纬度(浮点型)、社会关系网(结构体类型)、健康状态(枚举类型)、染病阶段(枚举类型)、染病阶段时间(整型)、免疫力(布尔型)、应急干预措施(枚举类型)这些智能体属性,智能体染病阶段分为健康阶段、潜伏期阶段、染病阶段、恢复阶段。通过分析SARS传播的统计数据,对智能体染病阶段的转换机制进行了建模。通过分析现实世界中人群的行为模式,对智能体的行为进行了建模。通过分析现实世界中人与人间的社会关系对智能体的社会关系网络进行了建模。\n[0103] 3.2)环境模型:在环境模型中主要关注两方面,一方面是对生活、工作、娱乐场所的建模,生活、工作、娱乐场所包含了若干子场所,如生活场所包含家庭、旅馆、车站等,工作场所包含写字楼、学校、工厂等,娱乐场所包含电影院、餐厅、体育馆等;另一方面是对交通路网的建模,其中主要关注地铁、公交、自驾、步行四种出行方式。\n[0104] 3.3)突发事件模型:突发事件模型包括外部SARS染病智能体侵入北京市模型及其统计分布数据,SARS病毒本身的病程模型,医疗资源模型及其分布数据。\n[0105] 3.4)控制干预模型:控制干预模型包括对智能体个体接种疫苗及其接种比例,隔离措施及隔离区域,关闭公共场所的措施等的建模。\n[0106] 本实施例的理论基础是构造态势显示装置的元模型,通过映射配置机制,使元模型实例化,从而将此装置应用于不同情境下的人工社会想定中,相比传统的态势显示装置,通用性与适用性大大增强。\n[0107] 如图2所示,本实施例还提供一种与前述基于数据流映射的通用人工社会态势显示方法完全对应的基于数据流映射的通用人工社会态势显示装置,包括:\n[0108] 计算实验管理模块,用于初始化配置文件,配置文件包括态势符号集、定制实体类集、定制实体集、复杂数据类型集、数据显示集和数据包配置集;态势符号集由多种态势符号组成,态势符号为态势显示相关的符号和图片,定制实体类集由多个定制实体类组成,定制实体类包含实体类及其属性的描述、实体类与态势显示符号之间的映射关系,定制实体集由多个定制实体组成,定制实体包含对实体及其属性的描述以及实体属性与相应态势显示符号的映射关系,复杂数据类型集由多种复杂数据类型组成,复杂数据类型包括用于解析从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的简单数据类型到复杂数据类型的结构体数据之间的映射关系,数据显示集包括图表的定义、智能体属性统计信息的显示类型和态势显示是否需要显示统计数据,图表的定义包括图表类型和数据类型,数据包配置集包括从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流的数据交换标准、从内存中的指定位置读取态势数据包、从内存中的指定位置读取态势符号包及态势统计包的数据交换标准;\n[0109] 显示设置模块,用于根据配置文件的态势符号集、定制实体类集、定制实体集、复杂数据类型集配置态势显示方式,根据配置文件的数据显示集配置数据显示方式;\n[0110] 人工社会演化模块,在人工社会并行计算引擎的支撑下,驱动多个人工社会模型相互作用推动人工社会的演化;\n[0111] 数据接收模块,用于在人工社会的演化的过程中,从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流,根据配置文件的数据包配置集将不透明数据流进行解析得到态势数据,对配置文件的数据显示集中图表定义的数据类型进行统计得到统计数据,将解析得到的态势数据与统计数据打包生成态势数据包,最后将态势数据包映射到内存中的指定位置;\n[0112] 数据处理模块,用于根据配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势数据包并进行解析,将解析得到的数据按照显示设置模块中保存的映射集与态势符号相关联形成态势符号包,抽取定制数据形成态势统计包,将态势符号包、态势统计包映射到内存中的指定位置;分别调用数据显示模块和态势显示模块;\n[0113] 数据显示模块,用于根据配置文件的数据包配置集并利用内存映射机制从内存中的指定位置读取态势统计包,基于配置文件配置的态势显示方式,根据态势统计包的数据更新模式使用配置的图形图表展示数据;\n[0114] 态势显示模块,用于利用内存映射机制从内存中的指定位置读取态势符号包,根据配置的态势显示方式,利用态势符号包在态势显示底图上刷新态势符号,同时根据数据显示集中配置的智能体属性统计信息的显示类型利用态势统计包的新数据在态势显示底图上更新统计数据。\n[0115] 本实施例中,人工社会演化模块基于人工社会并行计算引擎,人工社会并行计算引擎具体采用Parallel Engine并行计算引擎,Parallel Engine并行计算引擎是一种基于MPI(Message Passing Interface)的并行计算引擎,支持多进程分布式并行仿真,利用保守离散事件同步算法驱动OneModel生成的模型,是一种能够支持城市级规模人工社会的高性能仿真引擎,用于驱动人工社会模型。配置文件对数据流在各个模块间的流动过程起到了十分重要的作用:通过计算实验管理模块根据态势显示的需求(需要定制的数据、定制的数据显示方式)更新配置文件,显示设置模块读取配置文件信息,确认显示符号集,显示对象集并保存显示符号与显示对象的映射关系,确定显示对象中属性的复杂数据类型结构的组织方式;数据接收模块按照显示模块对复杂数据类型的描述解析从人工社会并行计算引擎得到的不透明数据,按照定制数据类型完成对相应数据的统计,最后生成态势数据包;\n数据处理模块解析数据并按照显示对象与显示符号的映射关系生成态势符号包,从态势数据包中提取态势统计包;态势显示模块与数据显示模块通过内存映射机制得到态势符号包与态势统计包从而实现态势显示与数据显示。\n[0116] 本实施例中,步骤2)具体是基于显示设置模块实现的,显示设置模块用于确定人工社会态势符号库中的各类态势符号(人口符号,建筑物符号,突发事件标号,智能体心理状态符号等)态势符号已经按照不同类别进行了编码,通过读取配置文件信息提取实体类,并根据配置信息完成人工社会态势符号与实体的映射配置,并保存映射集供数据处理模块加载。此外,显示设置模块还支持用户手动添加态势符号,映射规则,这些更改直接体现为对配置文件的更新,只需要重新读取配置文件,就可以更新映射集。本模块还从配置文件中加载数据显示集及对数据的规范化需求,如在突发事件仿真中关注突发事件发生时智能体心理状态的变化,则仿真引擎要向数据接收模块完全公布各个智能体心理状态数据,根据数据表现形式(如折线图),在数据接收模块对不同心理状态的智能体数量进行统计,方便打包形成态势数据包与态势统计包。如图3所示,显示设置模块启动以后,首先开启显示设置进程,通过显示设置进程执行步骤2)的详细步骤如下:\n[0117] 2.1)读取配置文件的数据显示集中图表的定义、智能体属性统计信息的显示类型,根据定义、智能体属性统计信息的显示类型配置数据显示方式,图表的定义包括图表的图表类型和数据类型,图表类型包括柱状图、折线图和饼图,智能体属性统计信息的显示类型包括点密度图和气泡图;\n[0118] 2.2)确认态势符号集:确定配置文件的态势符号集中每一种态势符号的全局唯一编号,在本实施例中要对智能体、环境所用到的态势符号进行全局唯一编号;\n[0119] 2.3)确认定制实体类集:确定配置文件的定制实体类集中每一种定制实体类的全局唯一编号,在本实施例中对智能体实体类和环境实体类确定全局唯一编号;\n[0120] 2.4)确认定制实体集:确定配置文件的定制实体集中每一种定制实体的全局唯一编号;定制实体的全局唯一编号是定制实体在系统内的唯一标识,在本实施例中用户可以按照年龄,性别,区域,职业状况,分布区域定制智能体的数据信息,仿真引擎根据此定制实体集向数据接收模块传递数据;\n[0121] 2.5)确认复杂数据类型集:确定配置文件的复杂数据类型集中每一种复杂数据类型的全局唯一编号;\n[0122] 2.6)设置复杂数据类型是否需要扁平化处理,如果需要扁平化处理,则分别读取复杂数据类型集中每一种复杂数据类型的全局唯一编号,然后使用递归的方式将复杂数据类型的结构体数据中的每一项属性信息分解为透明的简单数据类型,转步骤2.7);如果不需要扁平化处理,则直接转步骤2.7);\n[0123] 以对于智能体属性中的社会关系属性(智能体SocialGroup)进行扁平化为例,本实施例中根据配置文件得知智能体社会关系(SocialGroup)为结构体类型,即为复杂数据类型,此结构体包含两个成员,其一为整型的社会关系数量成员(nSocialGroupCount),另一为结构体类型的社会关系索引数组成员(nSocialRelations),其中社会关系索引数组成员是社会关系结构体类型(SocialGroup),社会关系结构体又包含两个成员,分别为整型的智能体索引成员(n智能体Index)和枚举型的社会关系成员(eSocialGroup),枚举型的社会关系成员枚举量分别为未知(Group_None),舍友(Group_Dormitory),朋友(Group_Friend),师生(Group_Education),社团(Group_Community),同乡(Group_NativePlace),同学(Group_Classmate);\n[0124] 2.7)映射态势符号集:根据配置文件的态势符号集、定制实体类集、定制实体集三者的配置信息建立态势符号、定制实体类、定制实体三者之间的映射关系,确定态势符号的包括颜色、位置、大小、方向在内的属性信息;\n[0125] 本实施例中,态势显示类是与态势符号绑定的类,其中态势显示类中的属性决定了态势符号的相关表现方式。如对于用于表现智能体的人形态势符号,与其绑定的态势显示类中的大小,颜色,旋转角度属性分别决定了人形态势符号的大小,颜色,方向。在本发明中态势显示类的初始化由态势数据包提供数据,从而定制实体与态势符号映射关系的建立依赖于定制实体属性与态势显示类属性建立映射关系;\n[0126] 2.8)保存映射集:将态势符号、定制实体类、定制实体三者之间的映射关系保存在缓存中。\n[0127] 在执行完步骤2.1)~2.8)以后,结束显示设置进程。\n[0128] 本实施例中步骤3)中人工社会模型包括智能体模型、环境模型、突发事件模型和控制干预模型。本实施例建立人工社会模型的建模工具采用OneModel 2.0建模工具,OneModel 2.0建模工具是一种用于开发分析、测试、评估、训练所需的组件模型,包括智能体、环境等对象,采用模块化、标准化、面向对象、离散事件仿真的思想、方法和技术,通过基于Tcl/Tk的集成开发环境开发符合XML和C++标准的组件模型,通过编程开发接口和并行仿真引擎提供模型开发与编译、想定解析与加载、CPU/GPU并行仿真和计算驱动支持。此外,毫无疑问也可以使用其它建模工具来建立人工社会模型,模型的数量及详细的模型均可以根据实际需要进行调整或更改,在此不再赘述。\n[0129] 本实施例中,步骤4)具体是基于数据接收模块实现的,数据接收模块用于持续侦听数据请求,收到数据请求后从人工社会并行计算引擎处获取以内存块形式存在的不透明数据流,按照配置文件对复杂数据类型集的描述,将数据流进行解析,根据配置模块中设定的定制数据类型及数据表现形式对相关数据进行统计,将解析的相关数据与统计数据打包生成态势数据包,最后将态势数据包映射到内存相应位置。\n[0130] 如图4所示,步骤4)的详细步骤如下:\n[0131] 4.1)开启数据接收进程;\n[0132] 4.2)判断是否接收到数据请求,如果收到数据请求转步骤4.4),否则转步骤\n4.3);\n[0133] 4.3)侦听数据请求,转步骤4.2);\n[0134] 4.4)在人工社会的演化的过程中,从人工社会并行计算引擎中获取以内存块形式存在的不透明数据流;\n[0135] 4.5)根据配置文件的数据包配置集将不透明数据流进行解析得到态势数据;\n[0136] 数据解析即为按照打包时数据的组织格式,从不透明的数据块中得到具体数据。\n在本实施例中,仿真引擎产生的数据流以内存块的形式储存在内存中,其组织形式为按照智能体索引从低到高在内存中连续存放智能体数据,每个智能体数据又按照智能体属性的次序依次排列,属性的排列次序与配置文件中对智能体属性描述的顺序一致,因此数据接收模块中数据解析单元可以根据配置文件对智能体的描述从内存中抽取感兴趣的智能体属性信息,实现数据解析。此外在数据处理模块与态势显示及数据显示模块中也涉及到了数据解析过程。数据处理模块按照配置文件中态势数据包数据组织形式解析态势数据包,态势显示模块按照态势符号包及态势统计包数据组织形式解析态势符号包及态势统计包,数据显示模块按态势统计包数据组织形式解析态势统计包;\n[0137] 4.6)对配置文件的数据显示集中图表定义的数据类型进行统计得到统计数据。本实施例中数据显示集中图表定义的数据类型为按照区域统计健康人数、染病人数、潜伏期人数、恢复期人数,接种疫苗比例,以及关闭公共场所的比例等;\n[0138] 4.7)根据配置文件的数据包配置集,将解析得到的态势数据与统计数据打包生成态势数据包;\n[0139] 数据打包主要方便数据在网络中的传输,如在TCP/IP通信中,网络中传输的IP数据包即为按照一定格式打包的数据包。在本本实施例中,打包的数据格式由配置文件的数据包配置集规定。在本实施例中,配置文件规定态势数据包中数据组织的先后顺序为智能体数据在前,环境实体数据在智能体数据后,定制数据统计信息在环境实体数据后,智能体数据按照智能体索引、染病阶段、经纬度排序,定制数据统计信息按照健康阶段、染病阶段、潜伏期阶段、恢复期阶段排序,数据接收模块的内存映射单元按照此顺序把从人工社会并行计算引擎得到的数据流解析筛选后打包。此外数据处理模块也涉及到了数据打包过程。\n在数据处理模块,映射配置单元按照配置文件中态势符号包与态势统计包的数据组织形式打包态势符号包与态势统计包;\n[0140] 4.8)将态势数据包映射到内存中的指定位置;\n[0141] 将态势数据包映射到内存中指定位置使用了内存映射机制,内存映射机制用于不同进程间快速交换数据,具体实施过程为:首先进程间约定交换数据存放在内存的地址以及内存中数据的组织形式,然后依照进程间数据地址及数据组织形式的约定,达到数据快速共享的目的。在本装置中,内存映射机制提升了态势显示的实时性。\n[0142] 4.9)判断是否接收到仿真结束命令,如果接收到则转步骤4.10),否则转步骤\n4.2);\n[0143] 4.10)结束数据接收。\n[0144] 如图5所示,本实施例步骤5)具体是通过数据处理模块来实现的。数据处理模块利用内存映射机制从数据接收模块接收到态势数据包进行解析,并将解析的数据按照显示设置模块中保存的映射集与态势符号相关联,形成态势符号包,抽取定制数据形成态势统计包。同时,将态势符号包和态势统计包映射到内存相应位置。\n[0145] 如图5所示,步骤5)的详细步骤如下:\n[0146] 5.1)开启数据处理进程;\n[0147] 5.2)向数据接收模块发送数据请求;\n[0148] 5.3)判断是否抓取到态势数据包,如果得到有效的态势数据包则将其放在内存中,转步骤5.5),否则转步骤5.4);\n[0149] 5.4)利用内存映射机制从内存中的指定位置读取态势数据包,转步骤5.3);\n[0150] 5.5)根据配置文件的数据包配置集的数据交换标准解析态势数据包;\n[0151] 5.6)将解析得到的数据按照显示设置模块中保存的映射集与态势符号相关联形成态势符号包;由于定制实体及其属性以及态势符号已经被唯一编号,所以编号间建立唯一映射关系也就决定了定制实体与态势符号间唯一确定了映射关系;\n[0152] 5.7)将态势符号包映射到内存中的指定位置;\n[0153] 5.8)综合定制数据,抽取定制数据形成态势统计包形成态势统计包;\n[0154] 5.9)将态势统计包映射到内存中的指定位置,转5.1)。\n[0155] 本实施例中,步骤6)具体是基于数据显示模块实现的,数据显示模块利用内存映射机制从数据处理模块得到态势统计包,并按要求以多种形式的图表形式显示整理后的数据,图表形式包括柱状图,折线图,饼图等。如使用柱状图或饼图表现人工社会区域内年龄构成,性别比例关系,疫苗的接种比例,关闭公共场所的比例,使用折线图表现智能体健康状态随时间的变化情况等。\n[0156] 本实施例中,数据接收模块、数据处理模块之间基于内存映射机制进行数据交换,由数据接收模块将态势数据包映射到内存中的指定位置,由数据处理模块利用内存映射机制从内存中的指定位置读取态势数据包。\n[0157] 本实施例中,步骤6)具体是通过数据显示模块实现的,数据显示模块在工作是启动一个数据显示进程来执行相关的流程。如图6所示,在启动数据显示进程后,数据显示进程执行步骤6)的详细步骤如下:\n[0158] 6.1)初始化用于数据显示的图表元素;\n[0159] 6.2)根据配置文件的数据包配置集并利用内存映射机制从内存中的指定位置获取态势统计包;\n[0160] 6.3)判断是否存在态势统计包,若存在则转步骤6.4),若不存在,则返回重新执行步骤6.2);\n[0161] 6.4)根据态势统计包内容刷新数据图,根据数据显示集用态势统计包中新的数据更新数据图,如前文所述,数据显示集包括图表的定义、智能体属性统计信息的显示类型;\n[0162] 本实施例中,根据数据显示集包括图表的定义、智能体属性统计信息的显示类型,结合态势统计包的数据组织形式解析势统计包,使用解析的新的数据更新数据图;以智能体健康状态折线图为例,本实施例具体是根据新的智能体健康状态数据确定新的数据点,染病状态数据在态势统计包中的组织先后顺序为:健康阶段、染病阶段、潜伏期阶段、恢复期阶段人数,按照顺序解析态势统计包,得到各个健康状态的智能体数量,将新的数据点与旧的数据点进行连接从而动态展现智能体健康状态变化趋势;\n[0163] 6.5)判断是否收到结束数据显示的命令,如果收到则结束数据显示,否则转步骤\n6.2)。\n[0164] 本实施例中,步骤7)具体是基于态势显示模块实现的,态势显示模块通过内存映射机制从数据处理模块得到态势符号包,根据映射信息,利用态势显示符号描绘组件进行态势绘制。根据定制的数据表现形式(如果配置文件中定制了统计信息表现形式),将态势统计包中的统计数据信息,按照要求在态势显示底图上叠加展现态势信息。如在公共卫生突发事件中根据每一单位区域内的智能体健康状态状况进行分级,使用点密度图在地图上直观显示疾病爆发程度,每一级采用不同的颜色进行展现,从而为决策者从宏观上直观把握区域性疾病暴发信息,为采取应对措施提供支撑。\n[0165] 本实施例中,步骤7)具体是通过态势显示模块实现的,态势显示模块工作时启动一个态势显示进程来执行相关的流程。如图7所示,在启动态势显示进程后,态势显示进程执行步骤7)的详细步骤如下:\n[0166] 7.1)预先加载态势显示底图,态势显示底图包含态势显示需要的背景信息,本实施例中,态势显示底图具体为北京市二维平面图;\n[0167] 7.2)利用内存映射机制从内存中的指定位置获取态势符号包;\n[0168] 7.3)判断是否存在态势符号包,若存在则转步骤7.4),若不存在,则返回重新执行步骤7.2);\n[0169] 7.4)读取获取的态势符号包,根据态势符号、定制实体类、定制实体三者之间的映射关系中态势符号与定制实体之间的映射关系,以及态势符号与定制实体类之间的映射关系,将定制实体及定制实体类的属性分别初始化定制实体及定制实体类所映射态势符号的态势显示类,从而确定态势符号属性信息的新的颜色、位置、大小、方向,从而完成在态势显示底图上刷新态势符号,从而完成在态势显示底图上刷新态势符号;其中,态势显示类是指与态势符号绑定的类,其中态势显示类中的属性决定了态势符号的相关表现方式,例如,对于用于表现智能体的人形态势符号,与其绑定的态势显示类中的大小、颜色、旋转角度属性分别决定了人形态势符号的大小、颜色、方向。本实施例中,要根据智能体的健康状态刷新态势符号的颜色信息;\n[0170] 7.5)检查配置文件的数据显示集中配置的态势显示是否需要显示统计数据,如果态势显示需要显示统计数据,则转步骤7.6),否则转步骤7.7);\n[0171] 7.6)利用态势统计包的新数据在态势显示底图上更新统计数据的显示;本实施例中,具体是指在北京市二维平面图上以点密度图,气泡图按区域叠加显示疾病爆发状况;\n[0172] 7.7)判断是否收到结束态势显示的命令,如果收到则结束态势显示,否则转步骤\n7.3)。\n[0173] 综上,实现本实施例的关键方法是基于数据流映射的态势数据与态势符号的映射配置,态势情景展现的配置机制。据此机制,仿真态势数据根据映射集中的映射关系在人工态势符号库中匹配相应符号,使用态势符号标绘组件就可以根据实时态势数据实时更新态势。通过定制数据减少了仿真引擎与数据接收模块间数据的传输量,降低了局域网络的通信负荷,提高了装置的性能与可靠性。通过定制统计数据表现形式,拓展了态势显示的能力。在实现具体仿真应用与态势显示装置相分离的过程中,配置文件起到了重要作用,是各模块间数据交换协议标准的集合。\n[0174] 以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
法律信息
- 2020-01-03
未缴年费专利权终止
IPC(主分类): G06F 17/50
专利号: ZL 201410013947.6
申请日: 2014.01.13
授权公告日: 2015.08.05
- 2015-08-05
- 2014-04-30
实质审查的生效
IPC(主分类): G06F 17/50
专利申请号: 201410013947.6
申请日: 2014.01.13
- 2014-04-02
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-12-12
|
2012-08-28
| | |
2
| |
2013-12-18
|
2013-05-24
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |