计算流图构建方法、装置和存储介质制造方法及图纸

技术编号:21513874 阅读:30 留言:0更新日期:2019-07-03 09:01
本发明专利技术提供一种计算流图构建方法、装置和存储介质,该方法包括:接收添加节点的请求;基于添加节点的请求生成待添加节点的命名字符串;将生成的命名字符串作为关键码值在已构建的全局哈希表中进行检索,该全局哈希表中包括已添加节点的命名字符串;在全局哈希表中检索到与命名字符串相匹配的条目的情况下,在已构建的流图结构中不添加待添加的节点;在全局哈希表中未检索到与命名字符串相匹配的条目的情况下,在已构建的流图结构中添加待添加的节点,获取新加节点的数据结构访问地址,并通过全局ID分配操作得到新加节点的ID;在全局哈希表中添加新加节点对应的条目。

Computational Flow Graph Construction Method, Device and Storage Media

【技术实现步骤摘要】
计算流图构建方法、装置和存储介质
本专利技术涉及计算机
,尤其涉及一种计算流图构建方法、装置和存储介质。
技术介绍
近年来,符号式编程的方法被广泛应用于人工智能、互联网、计算机技术等领域。符号式编程有着应用范围广、逻辑清晰、内存使用效率和计算效率高、易于阅读和维护等优势。在符号式编程中,计算流图是最为重要的建模方法之一,其使用图结构来表达一个复杂的计算过程,根据应用场景不同,赋予图节点、节点之间的边以不同的意义和数据,能够清晰地表达数据之间的关联,如依赖关系、并行关系等,同时能根据应用需求基于计算流图的结构进行优化,从而达到优化计算过程的目的。在很多应用场景下,计算流图作为一种解决实际问题的工具,通常基于一个编程平台或框架存在,平台的设计者提供建图、执行、优化计算流图等一系列基本操作;而平台的使用者则通过这些操作构建属于自己的计算流图,并基于这个计算流图来解决自己面临的实际问题。由于平台的使用者不一定是平台的设计者,使用者在很多时候不清楚计算流图底层实现的细节,加上使用者本身不能保证在设计计算流图的时候完全不出现设计上的失误,使得计算流图的构建过程中通常会出现一些不符合计算流图设计原则的错误。在这些错误中,最为普遍的一种是,重复定义了图中的节点和图中的边,一组节点和边构成了相对于整个运算流程来说的一个子运算表达式,重复的节点便意味着重复的子运算表达式。从平台使用者的角度看,这些重复的表达式有可能在设计逻辑上存在着歧义:一、它们可能表示同一个运算过程,但是可能在计算流图中作为相互独立的过程来保存和计算;二、它们也有可能表示不同的过程,只不过不小心赋予了同样的命名。这种歧义性会带来一些致命的后果,比如计算流图的实际结构与设计者预期不符、计算流图中出现的错误不可复现、不可分析或不可调试等。在这样的情况下,通过一些机制来消除计算流图使用者的误操作带来的这些歧义是非常有必要的。
技术实现思路
鉴于此,本专利技术实施例提供了一种计算流图构建方法、装置和存储介质,以消除或改善现有技术中存在的一个或更多个缺陷。本专利技术的技术方案如下:根据本专利技术的一方面,提供一种计算流图构建方法,该方法包括以下步骤:接收添加节点的请求,该请求中包含:待添加节点的运算信息和源数据节点的数据结构信息;基于所述添加节点的请求生成待添加节点的格式化命名字符串,所述格式化命名字符串包含待添加节点运算信息和基于源数据节点的数据结构信息获得的待添加节点的源数据节点标识;将生成的格式化命名字符串作为关键码值在已构建的全局哈希表中进行检索,所述全局哈希表中包括已添加节点的命名字符串;在所述全局哈希表中检索到与命名字符串相匹配的条目的情况下,在已构建的流图结构中不添加所述待添加的节点;在所述全局哈希表中未检索到与命名字符串相匹配的条目的情况下,在已构建的流图结构中添加所述待添加的节点,获取新加节点的数据结构访问地址,并通过全局标识分配操作得到新加节点的标识;在所述全局哈希表中添加新加节点对应的条目,所述新加节点对应的条目包括所述生成的命名字符串。可选地,所述方法还包括:将已构建流图的所有节点或新加节点的数据结构信息进行输出和/或存储。可选地,所述全局哈希表中还包括已添加节点的数据结构信息,所述全局哈希表中添加的新加节点对应的条目还包括所述新加节点的数据结构信息。可选地,所述全局哈希表中的数据结构信息包括数据结构访问地址信息;所述方法还包括:在所述全局哈希表中检索到与命名字符串相匹配的条目情况下,基于相匹配的条目中的数据结构访问地址信息将对应节点的数据结构进行输出;在所述全局哈希表中未检索到与命名字符串相匹配的条目情况下,基于所述全局哈希表中新加节点对应的条目中的数据结构访问地址信息将新加节点的数据结构进行输出。可选地,所述全局哈希表包括第一哈希表和第二哈希表,所述第一哈希表中存储有已添加节点的命名字符串及节点标识,所述第二哈希表中存储有已添加节点的标识以及已添加节点的数据结构访问地址信息。可选地,基于所述添加节点的请求生成待添加节点的格式化命名字符串的步骤包括:基于所述添加节点的请求获得包括待添加节点的运算信息和基于源数据节点的数据结构信息获得的源数据标识信息在内的多段数据,将获得的多段数据按照预定的顺序排列并通过预定的分隔符进行分隔,而生成待添加节点的命名字符串。可选地,对于对源数据节点的顺序有要求的运算,所述预定的顺序包括运算中源数据节点的逻辑顺序;对于对源数据节点的顺序无要求的运算,所述预定的顺序包括运算中源数据标识信息从小到大的顺序。可选地,所述格式化节点命名字符串具有预定长度。根据本专利技术是另一方面,还提供一种计算流图构建装置,该装置包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该装置实现如前所述方法的步骤。根据本专利技术的另一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前所述方法的步骤。本专利技术能够清晰、无歧义地记录每一个节点的信息,确保用户即使在重复调用多次完全相同的新建节点请求时也不会造成图结构的混乱或者冗余。借助本方法,在建图过程中可以使得计算流图的结构严谨、鲁棒、无歧义。另外,本专利技术方法能够在建图的同时防止在计算流图中产生重复子表达式,通过构造命名字符串并查询哈希表中命名字符串等的操作,在合理的应用场景下,都能够在常数时间内完成建图以及重复子表达式的检查和消除,具有高效、同步的优点。本领域技术人员将会理解的是,能够用本专利技术实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本专利技术能够实现的上述和其他目的。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,并不构成对本专利技术的限定。在附图中:图1示出了本专利技术实施例中在计算流图建图过程中防止产生重复子表达式的方法流程图。图2示出用户调用API进行建图的伪代码示例。图3示出了基于图2所示的伪代码进行计算流图的建图和重复子表达式查重处理流程的一个示例性流程。图4示出基于图2的伪代码和图3的流程构建的计算流图结构的示例。图5示出了本专利技术另一实施例中计算流图的建图过程中防止产生重复子表达式的一个流程图示例。图6示出了基于图2的伪代码和图3的流程构建的计算流图结构的示例。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本专利技术做进一步详细说明。在此,本专利技术的示意性实施方式及其说明用于解释本专利技术,但并不作为对本专利技术的限定。在此,还需要说明的是,为了避免因不必要的细节而模糊了本专利技术,在附图中仅仅示出了与根据本专利技术的方案密切相关的结构和/或处理步骤,而省略了与本专利技术关系不大的其他细节。应该强调,术语“包括/包含/具有”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。在此,还需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合。专利技术人在进行计算流图构建平台的设计和研究过程中,发现通过全局哈希表加形式化字符串命名相结合的办法,可以为计算流图中重复子表达式的检查和纠正提供一种明确的、高效的解决方法。因此,在本专利技术中,构造了一个全局哈希表T,本文档来自技高网
...

【技术保护点】
1.一种计算流图构建方法,其特征在于,该方法包括:接收添加节点的请求,该请求中包含:待添加节点的运算信息和源数据节点的数据结构信息;基于所述添加节点的请求生成待添加节点的格式化命名字符串,所述格式化命名字符串包含待添加节点运算信息和基于源数据节点的数据结构信息获得的待添加节点的源数据节点标识;将生成的格式化命名字符串作为关键码值在已构建的全局哈希表中进行检索,所述全局哈希表中包括已添加节点的命名字符串;在所述全局哈希表中检索到与格式化命名字符串相匹配的条目的情况下,在已构建的流图结构中不添加所述待添加的节点;在所述全局哈希表中未检索到与命名字符串相匹配的条目的情况下,在已构建的流图结构中添加所述待添加的节点,获取新加节点的数据结构访问地址,并通过全局标识分配操作得到新加节点的标识;在所述全局哈希表中添加新加节点对应的条目,所述新加节点对应的条目包括所述生成的命名字符串。

【技术特征摘要】
1.一种计算流图构建方法,其特征在于,该方法包括:接收添加节点的请求,该请求中包含:待添加节点的运算信息和源数据节点的数据结构信息;基于所述添加节点的请求生成待添加节点的格式化命名字符串,所述格式化命名字符串包含待添加节点运算信息和基于源数据节点的数据结构信息获得的待添加节点的源数据节点标识;将生成的格式化命名字符串作为关键码值在已构建的全局哈希表中进行检索,所述全局哈希表中包括已添加节点的命名字符串;在所述全局哈希表中检索到与格式化命名字符串相匹配的条目的情况下,在已构建的流图结构中不添加所述待添加的节点;在所述全局哈希表中未检索到与命名字符串相匹配的条目的情况下,在已构建的流图结构中添加所述待添加的节点,获取新加节点的数据结构访问地址,并通过全局标识分配操作得到新加节点的标识;在所述全局哈希表中添加新加节点对应的条目,所述新加节点对应的条目包括所述生成的命名字符串。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将已构建流图的所有节点或新加节点的数据结构信息进行输出和/或存储。3.根据权利要求1所述的方法,其特征在于,所述全局哈希表中还包括已添加节点的数据结构信息,所述全局哈希表中添加的新加节点对应的条目还包括所述新加节点的数据结构信息。4.根据权利要求3所述的方法,其特征在于,所述全局哈希表中的数据结构信息包括数据结构访问地址信息;所述方法还包括:在所述全局哈希表中检索到与命名字符串相匹配的条目情况下,基于相匹配的条目中的数据结构访问地址信息将对应节点的数据结构进行输出;在所述...

【专利技术属性】
技术研发人员:龚施俊鄢贵海侯忱赵寒川
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1