CN107315801B - 并行离散事件仿真***初始化数据存储方法 - Google Patents

并行离散事件仿真***初始化数据存储方法 Download PDF

Info

Publication number
CN107315801B
CN107315801B CN201710478450.5A CN201710478450A CN107315801B CN 107315801 B CN107315801 B CN 107315801B CN 201710478450 A CN201710478450 A CN 201710478450A CN 107315801 B CN107315801 B CN 107315801B
Authority
CN
China
Prior art keywords
attribute
simulation object
hash table
simulation
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710478450.5A
Other languages
English (en)
Other versions
CN107315801A (zh
Inventor
朱峰
姚益平
包思芮
唐文杰
鄢来斌
曲庆军
蒋志文
姚锋
李田林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201710478450.5A priority Critical patent/CN107315801B/zh
Publication of CN107315801A publication Critical patent/CN107315801A/zh
Application granted granted Critical
Publication of CN107315801B publication Critical patent/CN107315801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种并行离散事件仿真***初始化数据存储方法,该方法包括从目标仿真想定文件中获取到所需存储的仿真对象数据后,依次构建用于存储仿真对象类信息的仿真对象类哈希表、用于存储仿真对象实例信息的仿真对象实例哈希表、以及用于存储仿真对象属性信息的仿真对象实例属性哈希表,由仿真对象类哈希表、仿真对象实例哈希表以及仿真对象实例属性哈希表分别存储对应的仿真对象数据后,得到仿真对象数据存储结构。本发明具有实现方法简单、内存消耗小且复杂度低,能够便于快速准确的获取所需仿真对象数据等优点。

Description

并行离散事件仿真***初始化数据存储方法
技术领域
本发明涉及建模与仿真技术领域,具体涉及一种并行离散事件仿真***初始化数据存储方法。
背景技术
仿真***初始化是执行仿真计算的前提,在复杂军事仿真***中,初始化信息往往在仿真想定软件生成的仿真想定文件中进行描述,以实现从特定视角反应作战双方预先设定的***与作战计划。因此,在仿真***执行之前,需要从仿真想定文件中解析仿真***的初始化数据,加载到仿真***中,完成相应作战单元仿真模型的初始化,才能正确驱动仿真***的执行。为了避免仿真想定与仿真应用***耦合紧密,仿真想定软件往往具有通用性,其生成的仿真想定文件能够支持不同仿真***的初始化,这就需要建立合适的数据存储结构,使得在仿真***初始化过程中能够直接将想定数据映射为仿真***变量的初始值。
并行离散事件仿真技术为复杂军事仿真***的实现提供了重要的技术途径。如图1所示,目前基于并行离散事件仿真的复杂军事仿真***(以下简称为并行离散事件仿真***)通常由多个仿真对象构成,每个仿真对象的执行逻辑又是由一个初始化函数与多个事件处理函数组成,仿真对象之间通过事件调度机制实现通信。其中,仿真对象是对军事***中作战单元的建模抽象,仿真对象之间的事件调度关系是对作战单元之间的指控关系、交互关系的建模抽象。并行离散事件仿真***初始化数据本质上包含组成该***的各仿真对象初始化数据之和。随着仿真应用的不断深入,仿真对象的类型越来越多,仿真对象的规模越来越大,导致相应的初始化数据越来越复杂,给仿真***初始化数据的存储带来了挑战。
当前仿真***初始化数据存储主要存在以下两个方面的问题:(1)仿真***初始化数据往往包含较为复杂的数据类型,如作战实体属性、航路规划等,难以采用单一的数据结构模式进行存储;(2)仿真想定数据是面向特定用户进行组织的,与仿真***初始化变量的组织结构存在较大差异,难以直接建立想定数据到仿真***初始化变量之间的映射关系,进而需要对想定文件内容进行搜索,导致频繁的文件***访问操作。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、内存消耗小且复杂度低的并行离散事件仿真***初始化的数据存储方法,通过采用层次式嵌套Hash表结构,能够建立与并行离散事件仿真***结构相一致的初始化变量/数据对应关系,同时使得在仿真***初始化程序执行时能够快速搜索仿真***变量初始值。
为解决上述技术问题,本发明提出的技术方案为:
一种并行离散事件仿真***初始化数据存储方法,该方法包括:从目标仿真想定文件中获取到所需存储的仿真对象数据后,依次构建用于存储仿真对象类信息的仿真对象类哈希表、用于存储仿真对象实例信息的仿真对象实例哈希表、以及用于存储仿真对象属性信息的仿真对象实例属性哈希表,由所述仿真对象类哈希表、所述仿真对象实例哈希表以及所述仿真对象实例属性哈希表分别存储对应的仿真对象数据后,得到仿真对象数据存储结构。
作为本发明的进一步改进:所述仿真数据存储结构具体为依次由所述仿真对象类哈希表、所述仿真对象实例哈希表以及所述仿真对象实例属性哈希表嵌套构建得到,其中所述仿真对象类哈希表为基于仿真对象类信息、所述仿真对象实例哈希表构建哈希表得到,所述仿真对象实例哈希表为基于仿真对象实例信息、所述仿真对象实例属性哈希表构建哈希表得到,所述仿真对象实例属性哈希表为基于对象属性信息构建哈希表得到;所述对象属性信息为对象属性名称、对象属性值域。
作为本发明的进一步改进:所述仿真对象实例属性哈希表具体为基于对象属性信息、仿真对象属性集合哈希表构建哈希表得到,所述仿真对象属性集合哈希表为由属性信息集合构建哈希表得到;所述仿真对象属性集合哈希表包括由第一属性信息构建哈希表得到的第一属性变量哈希表、以及由第二属性信息构建哈希表得到的第二属性变量哈希表。
作为本发明的进一步改进:所述第一属性信息为包括属性名称、属性值域的基本属性信息;所述第二属性信息为包括航迹ID或多粒度属性信息、属性集的复杂属性信息。
作为本发明的进一步改进,该方法的具体步骤为:
S1.构建仿真对象类哈希表,解析目标仿真想定文件,并将目标仿真想定文件中包含的仿真对象类信息存储到仿真对象类哈希表中;
S2.为每一个仿真对象类构建一个仿真对象实例哈希表,循环搜索目标仿真想定文件后,将仿真对象类节点中包含的仿真对象实例信息,存储到所述仿真对象实例哈希表中;
S3.为每一个仿真对象实例构建一个仿真对象属性集合哈希表,循环搜索目标仿真想定文件,并将仿真对象实例节点中包含的仿真对象属性集合信息,存储到所述仿真对象属性集合哈希表中;
S4.为每一个仿真对象属性集合分别构建用于存储基本属性信息的第一属性变量哈希表、用于存储复杂属性信息的第二属性变量哈希表,循环搜索目标仿真想定文件,并将仿真对象实例节点中包含的所述第一属性信息、第二属性信息,分别存储到所述第一属性变量哈希表、第二属性变量哈希表中。
作为本发明的进一步改进:所述步骤S1的具体步骤为:
S11.解析目标仿真想定文件,获取一个仿真对象类名作为目标仿真对象类名;
S12.判断是否存在以目标仿真对象类名为key值的目标仿真对象类哈希表,若不存在,则转入执行步骤S13,否则转入执行步骤S14;
S13.构建所述仿真对象实例哈希表,将目标仿真对象类名为key值、所述仿真对象实例哈希表作为value值存入构建的所述仿真对象类哈希表中;
S14.获取以目标仿真对象类名为key值的仿真对象类哈希表,以及对应value值的仿真对象实例哈希表;
S15.循环执行S11~S14步骤,直至处理完目标仿真想定文件中所有仿真对象类。
作为本发明的进一步改进:所述步骤S2的具体步骤为:
S21.解析所述目标想定文件,获取一个仿真对象实例号或实例名作为目标实例信息;
S22.构建所述第一属性变量哈希表,以目标实例信息为key值、构建的所述第一属性变量哈希表为value值存入所述仿真对象实例哈希表;
S23.构建所述第二属性变量哈希表,以目标实例信息为key值、构建的所述第二属性变量哈希表为value值存入所述仿真对象实例哈希表;
S24.循环执行步骤S21~S23,直至解析完目标仿真想定文件中所有仿真对象类节点的仿真对象实例信息。
作为本发明的进一步改进:所述步骤S3中具体以所述第一属性为key值、所述第一属性变量哈希表为value值,存入所述仿真对象属性集合哈希表中;以及以所述第二属性中的类别标识为key值、所述第二属性变量哈希表为value值存入所述仿真对象属性集合哈希表中,完成仿真对象属性集合哈希表构建。
作为本发明的进一步改进:所述步骤S4中将第一属性信息存储至所述第一属性变量哈希表的具体步骤为:
S411.解析目标仿真想定文件,获取一个仿真对象实例节点的属性变量名作为目标属性变量名、以及属性值作为目标属性值;
S412.以目标属性变量名为key值、目标属性值为value值存入所述第一属性变量哈希表中;
S413.循环执行步骤S411、S412,直至解析完目标仿真想定文件中所有仿真对象实例节点。
作为本发明的进一步改进:所述步骤S4中将第二属性信息存储至所述第二属性变量哈希表的具体步骤为:
S421.解析目标仿真想定文件,获取一个仿真对象实例节点的属性变量名作为目标属性变量名、以及属性值作为目标属性值;
S422.判断是否存在key值为目标属性变量名的第二属性变量哈希表,若不存在,则转入执行步骤S423,否则转入执行步骤S424;
S423.构建仿真对象属性容器vector,将目标属性值***构建的仿真对象属性容器vector,并将目标属性变量名为key值、仿真对象属性容器vector为value值,存入所述第二属性变量哈希表中;
S424.在第二属性变量哈希表中查找与目标属性变量名对应的仿真对象属性容器vector,将目标属性值***仿真对象属性容器vector中;
S425.循环执行步骤S421~S424,直至解析完目标想定文件中所有仿真对象实例节点。
与现有技术相比,本发明的优点在于:
1)本发明用于并行离散事件仿真***初始化数据存储,采用层次式嵌套哈希(Hash)表结构,以一种统一的数据模板HashMap将仿真想定文件中包含的不同类型的数据,如作战实体属性、航路规划等重新组织存储起来,能够建立与并行离散事件仿真***结构相一致的初始化变量/数据对应关系,同时使得在仿真***初始化程序执行时能够快速搜索仿真***变量初始值,方便对仿真想定数据的存储与查询;
2)本发明采用层次式嵌套哈希(Hash)表结构,通过解析仿真想定文件,并将解析数据依次由仿真对象类哈希表、仿真对象实例哈希表以及仿真对象实例属性哈希表嵌套构建得到仿真数据存储结构,建立与并行离散事件仿真***结构相一致的初始化变量/数据对应关系,从而根据仿真对象类名称、仿真对象实例名称以及仿真对象属性名称可以快速搜索到仿真对象属性对应的初始化值,能够减少频繁的文件***访问操作,从而提高仿真***初始化效率。
附图说明
图1是并行离散事件仿真***的结构原理示意图。
图2是本实施例并行离散事件仿真***初始化数据存储方法的实现流程示意图。
图3是本实施例实现并行离散事件仿真***初始化数据存储的层次组织结构示意图。
图4是本实施例基于嵌套式哈希结构实现仿真对象数据存储的实现原理示意图。
图5是本实施例并行离散事件仿真***初始化数据存储方法的详细实现流程示意图。
图6是本实施例构建仿真对象第二属性Hash表的流程示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
如图2所示,本实施例中并行离散事件仿真***初始化数据存储方法,从目标仿真想定文件中获取到所需存储的仿真对象数据后,依次构建用于存储仿真对象类信息的仿真对象类哈希表、用于存储仿真对象实例信息的仿真对象实例哈希表、以及用于存储仿真对象实例的仿真对象实例属性哈希表,由仿真对象类哈希表、仿真对象实例哈希表、仿真对象属性集合哈希表以及仿真对象实例属性哈希表分别存储对应的仿真对象数据后,得到仿真对象数据存储结构。
哈希表是利用哈希算法和哈希值直接寻址并定位数据结构,能在较短时间内访问表内任何的数据元素。本实施例基于哈希表构建仿真对象数据存储结构,将仿真对象的属性信息、仿真对象属性容器存储至仿真对象数据存储结构中,与传统的如采用树结构存储的方式相比,所需的内存消耗小且复杂度低,当需要查找仿真对象属性信息时,可快速、准确的从仿真对象数据存储结构中查找到对应的仿真对象属性值。
考虑到与仿真***相对应的层次结构,如图3、4所示,本实施例中仿真数据存储结构具体为依次由仿真对象类哈希表(仿真对象类HashMap)、仿真对象实例哈希表(仿真对象实例HashMap)、仿真对象属性集合哈希表(仿真对象属性集合HashMap)以及仿真对象实例属性哈希表(仿真对象实例属性HashMap)嵌套构建得到,其中仿真对象类哈希表为基于仿真对象类信息、仿真对象实例哈希表构建哈希表得到,仿真对象类信息为仿真对象类名称;仿真对象实例哈希表为基于仿真对象实例信息、仿真对象实例属性集合哈希表构建哈希表得到,仿真对象实例信息为仿真对象实例ID;仿真对象实例属性哈希表具体为基于仿真对象属性类别信息、仿真对象属性集合哈希表构建哈希表得到,仿真对象属性类别信息为“第一属性”或第二属性类别,仿真对象属性集合哈希表包括由第一属性信息构建哈希表得到的第一属性变量哈希表、以及由第二属性信息构建哈希表得到的第二属性变量哈希表。
本实施例中,第一属性信息具体为包括属性名称、属性值域的基本属性信息的简单属性集合,如为<属性名称、属性值>的基本属性信息二元组;第二属性信息具体为包括航迹ID或多粒度属性信息、属性集的复杂属性信息的复杂属性集合,如为包括多粒度属性<属性名称,vector<属性值1,属性值2……属性值n>>、航路规划属性<航路规划名称,vector<规划1,规划2……规划n>>等的复杂属性信息。
通过上述存储得到仿真对象数据存储结构,则根据所需要查找的仿真对象类名、目标属性名、目标仿真对象属性类型,依次查找对应的仿真对象类哈希表、仿真对象实例哈希表、仿真对象属性哈希表,查找到对应的仿真对象属性值或容器vector,即可方便的查找到对应的仿真对象属性值。
如图5所示,本实施例实现上述并行离散事件仿真***初始化数据存储方法的具体步骤包括:
S1.构建仿真对象类Hash(哈希)表结构,自动解析并循环搜索目标仿真想定文件内容,将目标仿真想定文件中包含的仿真对象类信息存储到仿真对象类Hash表结构中;
S2.为每一个仿真对象类构建一个仿真对象实例Hash表结构,循环搜索仿真想定文件内容,将仿真对象类节点中包含的仿真对象实例信息存储到仿真对象实例Hash表结构中;
S3.为每一个仿真对象实例构建一个仿真对象属性集合Hash表结构,循环搜索仿真想定文件内容,将仿真对象实例节点中包含的仿真对象属性集合信息存储到仿真对象属性集合Hash表结构中;
S4.为每一个仿真对象属性集合分别构建用于存储基本属性信息的第一属性变量Hash表结构、用于存储复杂属性信息的第二属性变量Hash表结构,循环搜索目标仿真想定文件内容,并将仿真对象实例节点中包含的第一属性信息、第二属性信息,分别存储到第一属性变量哈希表、第二属性变量哈希表中。
本实施例采用上述方法实现并行离散事件仿真***的初始化数据存储,通过自动解析仿真想定文件,采用层次式嵌套哈希(Hash)表结构将仿真想定文件中包含的不同类型的数据,如作战实体属性、航路规划等重新组织存储起来,以建立与并行离散事件仿真***结构相一致的初始化变量/数据对应关系,在仿真***初始化程序执行时能够快速搜索仿真***变量的初始值,从而提高仿真***的初始化效率。
如图4所示,本实施例中采用上述仿真数据存储结构,将仿真对象的属性信息、仿真对象属性容器进行存储时,首先将仿真对象属性名称AttrName作为key值、以及将仿真对象属性容器vector作为value值存入仿真对象属性集合哈希表Attribution_map中;然后将仿真对象属性类别标识AttrType作为key值、仿真对象属性集合哈希表Attribution_map作为value值存入仿真对象属性哈希表TypeName_map中;再将仿真对象实例号InstanceID作为key值、TypeName_map仿真对象属性哈希表作为value值存入仿真对象实例属性哈希表Instance_map中;最后将仿真对象类名ClassName作为key值、仿真对象实例属性哈希表Instance_map作为value值存入仿真对象类哈希表Class_Instance_map中,完成存储。
本实施例实现并行离散事件仿真***的初始化数据存储,各步骤的详细步骤如下所示:
步骤S1的具体步骤为:
S11.解析目标仿真想定文件,获取一个仿真对象类名作为目标仿真对象类名ClassName;
S12.判断是否存在以目标仿真对象类名ClassName为key值的目标仿真对象类哈希表Class_Map,若不存在,则转入执行步骤S13,否则转入执行步骤S14;
S13.构建仿真对象实例哈希表Instance_Map,将目标仿真对象类名为key值、仿真对象实例哈希表Instance_Map作为value值存入构建的仿真对象类哈希表Class_Map中;
S14.获取以目标仿真对象类名ClassNam为key值的仿真对象类哈希表Class_Map,以及对应value值的仿真对象实例哈希表Instance_Map;
S15.循环执行S11~S14步骤,直至处理完仿真想定文件中所有仿真对象类。
步骤S2的具体步骤为:
S21.解析目标仿真想定文件,获取一个仿真对象实例号InstanceID或实例名InstanceName作为目标实例信息;
S22.构建第一属性变量哈希表H1,以目标仿真对象实例号InstanceID或实例名InstanceName为key值、构建的第一属性变量哈希表H1为value值存入仿真对象实例哈希表Instance_Map;
S23.构建第二属性变量哈希表H2,以目标仿真对象实例号InstanceID或实例名InstanceName为key值、构建的第二属性变量哈希表为value值存入仿真对象实例哈希表;
S24.循环执行步骤S21~S23,直至解析完目标想定文件中所有仿真对象类节点的仿真对象实例信息。
本实施例中,步骤S3中具体以第一属性为key值、第一属性变量哈希表H1为value值,存入仿真对象属性集合哈希表中;以及以第二属性中的类别标识为key值、第二属性变量哈希表为value值存入仿真对象属性集合哈希表中,完成仿真对象属性集合哈希表构建。
步骤S4中将第一属性信息存储至第一属性变量哈希表的具体步骤为:
S411.解析目标仿真想定文件,获取一个仿真对象实例节点的属性变量名SimAttrName作为目标属性变量名、以及属性值SimAttrValue作为目标属性值;
S412.以目标属性变量名SimAttrName为key值、目标属性值SimAttrValue为value值存入第一属性变量哈希表H1中;
S413.循环执行步骤S411、S412,直至解析完目标仿真想定文件中所有仿真对象实例节点。
如图6所示,本实施例步骤S4中将第二属性信息(复杂属性信息)存储至第二属性变量哈希表的具体步骤为:
S421.解析目标想定文件,获取一个仿真对象实例节点的属性变量名AttrName作为目标属性变量名、以及属性值作为目标属性值AttrValue;
S422.判断是否存在key值为目标属性变量名AttrName的第二属性变量哈希表,若不存在,则转入执行步骤S423,否则转入执行步骤S424;
S423.构建仿真对象属性容器vector,将目标属性值AttrValue***构建的仿真对象属性容器vector,并将目标属性变量名AttrValue为key值、仿真对象属性容器vector为value值,存入第二属性变量哈希表H2中;
S424.在第二属性变量哈希表H2中查找与目标属性变量名AttrName对应的仿真对象属性容器vector,将目标属性值AttrValue***仿真对象属性容器vector中;
S425.循环执行步骤S421~S424,直至解析完目标想定文件中所有仿真对象实例节点。
以下以一具体实施例对本发明进行进一步说明。本实施例中想定文件具体包括仿真对象经度、纬度等简单属性信息和两条航路集的复杂属性信息,每一条航路集中存在多个航路点信息,航路点信息具体包括经度、纬度、高度等子信息,仿真对象数据存储的具体步骤为:
步骤1:解析想定文件至模拟实体节点,读取实体英文名为A以及实例号为1001,判断是否存在以实体英文名A为key值的仿真对象类哈希表Class_Instance_map,如果存在,将实例instance信息***,如果不存在,新建以实体名A为key值的仿真对象类哈希表Class_Instance_map并存入仿真对象类信息;
步骤2:解析简单属性集,获取属性英文名称longitude,取值为0.00000。以longitude为key值,0.00000为value值存入第一属性变量哈希表中,循环处理至简单属性集解析完毕,以“第一属性”为key值,第一属性变量哈希表为value值存入仿真对象属性集哈希表;
步骤3:解析想定文件航迹集,解析航迹名称为“航迹线路一”,判断是否存在key值为“航迹线路一”的仿真对象属性集合哈希表TypeName_map,如果存在,则将属性信息***;如果不存在,则新建以“航迹线路一”为key值的仿真对象属性集合哈希表TypeName_map并存入属性信息。
步骤4:解析属性细节节点,解析得到名称为Lon,取值为107,判断以Lon为key值的仿真对象属性集合哈希表Attribution_map是否存在,如果存在,将107***容器vector中;
步骤5:循环处理至下一航路点中Lon属性取值为108,则将108***同一key值的存储结构中,即vector更新为<107,108>;解析下一节点时按照上述方式判断并存储相关数据信息,直至想定文件解析完毕。
本实施例中,采用上述方法将想定文件进行解析后得到的存储信息如下表所示:
表1:存储信息表
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (5)

1.一种并行离散事件仿真***初始化数据存储方法,其特征在于,该方法的具体步骤为:
S1.构建仿真对象类哈希表,解析目标仿真想定文件,并将目标仿真想定文件中包含的仿真对象类信息存储到仿真对象类哈希表中;
S2.为每一个仿真对象类构建一个仿真对象实例哈希表,循环搜索目标仿真想定文件后,将仿真对象类节点中包含的仿真对象实例信息,存储到所述仿真对象实例哈希表中;
S3.为每一个仿真对象实例构建一个仿真对象属性集合哈希表,循环搜索目标仿真想定文件,并将仿真对象实例节点中包含的仿真对象属性集合信息,存储到所述仿真对象属性集合哈希表中;
S4.为每一个仿真对象属性集合分别构建用于存储基本属性信息的第一属性变量哈希表、用于存储复杂属性信息的第二属性变量哈希表,循环搜索目标仿真想定文件内容,并将仿真对象实例节点中包含的所述第一属性信息、第二属性信息,分别存储到所述第一属性变量哈希表、第二属性变量哈希表中;
所述步骤S1的具体步骤为:
S11.解析目标仿真想定文件,获取一个仿真对象类名作为目标仿真对象类名;
S12.判断是否存在以目标仿真对象类名为key值的目标仿真对象类哈希表,若不存在,则转入执行步骤S13,否则转入执行步骤S14;
S13.构建所述仿真对象实例哈希表,将目标仿真对象类名为key值、所述仿真对象实例哈希表作为value值存入构建的所述仿真对象类哈希表中;
S14.获取以目标仿真对象类名为key值的仿真对象类哈希表,以及对应value值的仿真对象实例哈希表;
S15.循环执行S11~S14步骤,直至处理完目标仿真想定文件中所有仿真对象类。
2.根据权利要求1所述的并行离散事件仿真***初始化数据存储方法,其特征在于,所述步骤S2的具体步骤为:
S21.解析所述目标想定文件,获取一个仿真对象实例号或实例名作为目标实例信息;
S22.构建所述第一属性变量哈希表,以目标实例信息为key值、构建的所述第一属性变量哈希表为value值存入所述仿真对象实例哈希表;
S23.构建所述第二属性变量哈希表,以目标实例信息为key值、构建的所述第二属性变量哈希表为value值存入所述仿真对象实例哈希表;
S24.循环执行步骤S21~S23,直至解析完目标仿真想定文件中所有仿真对象类节点的仿真对象实例信息。
3.根据权利要求2所述的并行离散事件仿真***初始化数据存储方法,其特征在于,所述步骤S3中具体以所述第一属性为key值、所述第一属性变量哈希表为value值,存入所述仿真对象属性集合哈希表中;以及以所述第二属性中的类别标识为key值、所述第二属性变量哈希表为value值存入所述仿真对象属性集合哈希表中,完成仿真对象属性集合哈希表构建。
4.根据权利要求3所述的并行离散事件仿真***初始化数据存储方法,其特征在于,所述步骤S4中将第一属性信息存储至所述第一属性变量哈希表的具体步骤为:
S411.解析目标仿真想定文件,获取一个仿真对象实例节点的属性变量名作为目标属性变量名、以及属性值作为目标属性值;
S412.以目标属性变量名为key值、目标属性值为value值存入所述第一属性变量哈希表中;
S413.循环执行步骤S411、S412,直至解析完目标仿真想定文件中所有仿真对象实例节点。
5.根据权利要求1~4中任意一项所述的并行离散事件仿真***初始化数据存储方法,其特征在于,所述步骤S4中将第二属性信息存储至所述第二属性变量哈希表的具体步骤为:
S421.解析仿真目标想定文件,获取一个仿真对象实例节点的属性变量名作为目标属性变量名、以及属性值作为目标属性值;
S422.判断是否存在key值为目标属性变量名的第二属性变量哈希表,若不存在,则转入执行步骤S423,否则转入执行步骤S424;
S423.构建仿真对象属性容器vector,将目标属性变量名***构建的仿真对象属性容器vector,并将目标属性值为key值、仿真对象属性容器vector为value值,存入所述第二属性变量哈希表中;
S424.在第二属性变量哈希表中查找与目标属性变量名对应的仿真对象属性容器vector,将目标属性值***查找到的所述仿真对象属性容器vector中;
S425.循环执行步骤S421~S424,直至解析完目标仿真想定文件中所有仿真对象实例节点。
CN201710478450.5A 2017-06-22 2017-06-22 并行离散事件仿真***初始化数据存储方法 Active CN107315801B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710478450.5A CN107315801B (zh) 2017-06-22 2017-06-22 并行离散事件仿真***初始化数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710478450.5A CN107315801B (zh) 2017-06-22 2017-06-22 并行离散事件仿真***初始化数据存储方法

Publications (2)

Publication Number Publication Date
CN107315801A CN107315801A (zh) 2017-11-03
CN107315801B true CN107315801B (zh) 2019-12-13

Family

ID=60183370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710478450.5A Active CN107315801B (zh) 2017-06-22 2017-06-22 并行离散事件仿真***初始化数据存储方法

Country Status (1)

Country Link
CN (1) CN107315801B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182139A (zh) * 2019-08-29 2021-01-05 盈盛智创科技(广州)有限公司 一种资源描述框架三元组的溯源方法、装置及设备
CN112465344B (zh) * 2020-11-26 2023-10-24 中船重工鹏力(南京)智能装备***有限公司 一种基于车间自动化产线仿真***参数的初始化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914565A (zh) * 2014-04-21 2014-07-09 北京搜狐新媒体信息技术有限公司 一种向数据库***数据的方法及装置
CN104407991A (zh) * 2014-12-10 2015-03-11 成都科来软件有限公司 一种数据存储方法及装置
CN106250356A (zh) * 2016-08-09 2016-12-21 南京国电南自电网自动化有限公司 基于Hash表的继电保护装置抽象对象的快速解析方法
CN106484332A (zh) * 2016-10-12 2017-03-08 郑州云海信息技术有限公司 一种数据存储方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047284A (en) * 1997-05-14 2000-04-04 Portal Software, Inc. Method and apparatus for object oriented storage and retrieval of data from a relational database

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914565A (zh) * 2014-04-21 2014-07-09 北京搜狐新媒体信息技术有限公司 一种向数据库***数据的方法及装置
CN104407991A (zh) * 2014-12-10 2015-03-11 成都科来软件有限公司 一种数据存储方法及装置
CN106250356A (zh) * 2016-08-09 2016-12-21 南京国电南自电网自动化有限公司 基于Hash表的继电保护装置抽象对象的快速解析方法
CN106484332A (zh) * 2016-10-12 2017-03-08 郑州云海信息技术有限公司 一种数据存储方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
并行仿真***管理平台关键技术研究与初步实现;钟自鸣;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111215(第S2期);第I138-1928页 *

Also Published As

Publication number Publication date
CN107315801A (zh) 2017-11-03

Similar Documents

Publication Publication Date Title
CN104573115B (zh) 支持多类型数据库操作的集成接口的实现方法及***
CN107341262B (zh) 数据库中对象类型列的序列化、反序列化方法及装置
CN106326381B (zh) 基于MapDB构建的HBase数据检索方法
CN106407303A (zh) 数据存储、查询方法及装置
CN108681603B (zh) 数据库中快速搜索树形结构数据的方法、存储介质
CN107798017B (zh) 分布式数据库中的执行计划信息生成方法和***
US7020659B2 (en) System and method for managing bi-directional relationships between objects
US20160103858A1 (en) Data management system comprising a trie data structure, integrated circuits and methods therefor
US20180300330A1 (en) Proactive spilling of probe records in hybrid hash join
CN110222238A (zh) 字符串与识别符双向映射的查询方法和***
CN106569896A (zh) 一种数据分发及并行处理方法和***
CN110046170A (zh) 基于多文件管理的语句执行方法、装置、设备和介质
US20180336224A1 (en) Hash-based synchronization of geospatial vector features
CN107315801B (zh) 并行离散事件仿真***初始化数据存储方法
CN110502532A (zh) 远程数据库对象的优化方法、装置、设备和存储介质
Schulz et al. Better process mapping and sparse quadratic assignment
US10872085B2 (en) Recording lineage in query optimization
US11544285B1 (en) Automated transformation of hierarchical data from a source data format to a target data format
de Souza Baptista et al. NoSQL geographic databases: an overview
CN116028680B (zh) 基于图数据库的资产图谱的展示方法、装置及电子设备
CN111949649B (zh) 一种动态本体存储***、存储方法、数据查询方法
CN106991116A (zh) 数据库执行计划的优化方法和装置
CN109753533A (zh) 一种多源关系型数据库客户端开发方法及装置
WO2022154906A1 (en) Graph neural network for signal processing
EP3091447B1 (en) Method for modifying root nodes and modifying apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant