CN113535152A - 基于思维图的复杂算法实现方法、计算机存储介质及设备 - Google Patents
基于思维图的复杂算法实现方法、计算机存储介质及设备 Download PDFInfo
- Publication number
- CN113535152A CN113535152A CN202110697765.5A CN202110697765A CN113535152A CN 113535152 A CN113535152 A CN 113535152A CN 202110697765 A CN202110697765 A CN 202110697765A CN 113535152 A CN113535152 A CN 113535152A
- Authority
- CN
- China
- Prior art keywords
- logic
- thinking
- data
- program
- mind map
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出一种基于思维图的复杂算法实现方法、计算机存储介质及设备,该方法包括:根据待设计程序需要实现的业务功能以及与业务功能相关的操作数据解析待设计程序的业务逻辑,得到多个逻辑模块;基于思维图对各逻辑模块进行功能及数据接口描述,得到对应的思维图;对各思维图进行功能抽象,将具有共性功能的思维图抽象到基础类,将具有特有属性功能的思维图作为继承基础类的应用类思维图,实现待设计程序的逻辑框架构建。本发明能够自顶向下对复杂算法的宏观逻辑进行较好的把握,可以将晦涩的程序代码表示为直观的思维逻辑图,有利于调试问题的快速定位和程序维护,而且对于类似逻辑模块代码可复用,有效提高复杂算法的程序编码效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于思维图的复杂算法实现方法、计算机存储介质及设备。
背景技术
复杂算法是指问题输入种类数量大、知识密集、范围未知、内部处理流程不明确、算法逻辑复杂、规模巨大且研发周期长的机器求解过程。在处理这类问题的时候,通常的程序设计方法是不断地迭代更新代码,打补丁,程序员容易迷失在逐渐复杂的代码里,失去对整体逻辑的控制,算法设计和维护代价随工作推进呈指数上升。
现有的解决办法有模型驱动架构MDA、软件需求规格说明、和流程图技术,试图通过程序数据分离、修改需求规格说明书和流程图逻辑、自动程序设计改善复杂算法的设计和维护问题。现有技术存在的问题是MDA架构可以借鉴,但不同复杂算法逻辑设计和维护的架构不同,需要具体问题具体分析;需求规格说明侧重于用户需求的认定,不便于修改和确定算法内部逻辑流程;流程图则偏向程序设计底层,虽然方便自动程序设计的实现,缺少高层逻辑语义,没有修改更新备份机制,逻辑修改复杂性仍然很大,本身设计和维护成本很高,仍然不方便描述刻画不确定程序逻辑,使用十分不便,而且实用化应用复杂程度太高。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于思维图的复杂算法实现方法、计算机存储介质及设备。
本发明提供了一种基于思维图的复杂算法实现方法,所述方法包括:
根据待设计程序需要实现的业务功能,以及与所述业务功能相关的操作数据解析待设计程序的业务逻辑,得到多个逻辑模块;
基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述,得到与各逻辑模块对应的思维图;
对各个思维图进行功能抽象,将具有共性功能的思维图抽象到基础类中,将具有特有属性功能的思维图作为继承基础类的应用类思维图,以实现待设计程序的逻辑框架构建;
基于得到的逻辑框架进行逻辑功能代码设计。
可选地,所述预设逻辑结构包括以下组件:功能描述,私有数据、示例信息、公共数据、数据接口和执行方向。
可选地,在基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述之后,所述方法还包括:
根据各个思维图对应逻辑模块的逻辑流程,将当前思维图划分为连续执行的多个思维子图,所述思维子图具有同样的预设逻辑结构,每一思维图的公共数据是其对应的多个思维子图的外部全局数据,多个思维子图的私有数据、示例信息和数据接口总和构成对应思维图的私有数据,示例信息和数据接口。
可选地,在基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述之后,所述方法还包括:
根据各个思维图对应逻辑模块的逻辑功能,为各思维图创建平行思维子图,平行思维子图用于对对应的逻辑模块的关键逻辑功能进行描述。
可选地,在基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述之后,所述方法还包括:
根据各个逻辑模块存在的继承关系和多态现象,采用多重数据配置文件对对应的思维图进行描述。
可选地,所述采用多重数据配置文件对对应的思维图进行描述包括:
采用动态常识属性配置文件对思维图的显式继承关系进行描述;
采用静态常识属性配置文件对思维图的隐式继承关系进行描述;
采用多态识别配置文件对思维图的多态现象进行描述。
可选地,所述方法还包括:
为各个思维图构建存储索引,基于所述存储索引进行思维图的存储,其中,思维图的存储索引分为横向和纵向两个维度,横向表示执行流程,纵向代表功能包含关系。
本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述方法的步骤。
本发明提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
本发明提出的基于思维图的复杂算法实现方法、计算机存储介质及设备,能够自顶向下对复杂算法的宏观逻辑进行较好的把握,使用思维图可以将晦涩的程序代码表示为直观的思维逻辑图,有利于调试问题的快速定位和程序维护,而且对于类似逻辑模块代码可复用,采用本发明提供的基于思维图的复杂算法实现方法将有效提高复杂算法的程序编码效率。
附图说明
图1为本发明的基于思维图的复杂算法实现方法的流程图;
图2为本发明实施例中提出的思维图的结构示意图;
图3为本发明实施例中提出的思维子图的结构示意图;
图4为本发明实施例中提出的平行思维子图的结构示意图;
图5为本发明实施例中数据元语义识别思维图的结构示意图;
图6为本发明实施例中数据元名称语义识别思维子图和数据元变量计算公式识别思维子图的结构示意图;
图7为本发明实施例中思维子图Sub-TGraph-11的一个底层实现逻辑描述示意图;
图8为本发明实施例中思维子图Sub-TGraph-12的一个底层实现逻辑描述示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1所示,其为本发明实施例提供的基于思维图的复杂算法实现方法的流程示意图。本发明实施例提供的基于思维图的复杂算法实现方法,具体包括以下步骤:
S11、根据待设计程序需要实现的业务功能,以及与所述业务功能相关的操作数据解析待设计程序的业务逻辑,得到多个逻辑模块。
S12、基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述,得到与各逻辑模块对应的思维图。
S13、对各个思维图进行功能抽象,将具有共性功能的思维图抽象到基础类,将具有特有属性功能的思维图作为继承基础类的应用类思维图,以实现待设计程序的逻辑框架构建。
S14、基于得到的逻辑框架进行逻辑功能代码设计。
其中,所述预设逻辑结构包括以下组件:功能描述,私有数据、示例信息、公共数据、数据接口和执行方向。具体的:
功能描述FD:思维图基本功能的文字描述。比如,″数据元变量语义识别思维图″的功能描述FD:″识别数据元的量词属性(性质)、最近名词(特征)与隶属属性(约束)等语义三元组″。
公共数据CD:思维图及其平行思维子图,或者思维图的所有思维子图公用的数据。公共数据由思维图逻辑范围里的平行思维子图或所有思维子图共同(读/写)维护。比如,数据元变量语义表示三元组,对于″数据元语义识别思维图″的所有思维子图是公共数据,所有思维子图都读写这个三元组。
数据接口DI:思维图传递给下一个工作环节的数据。比如,″数据元变量语义识别″思维图传递给″常识及显示知识规则生成环节″思维图的数据接口为问题所有数据元变量的语义三元组。
私有数据PD:包括思维图运行的私有数据结构动态传递的数据,以及思维图的静态的数据配置文件中的数据及其格式。比如,″时间量词识别思维图″的私有数据配置文件内容为:″秒、分、分钟、小时、微秒、毫秒、日、天、星期、周、月、年、…″。
示例信息EI:描述思维图业务处理功能的典型样例和处理特例。比如,在″词性属性特例判别思维图″中,上下文″4个足球和20根跳绳″中的″和″不是名词,模式″数量+量词+名词+和+数量+量词+名词″中的″和″一律都是连词属性。示例信息一般可以描述输入、处理依据和输出结果三种信息,用简明直观的文字叙述。
执行方向SD:用单向线段描述思维图下一步的执行步骤,即后续执行的思维图。注意独立的平行思维子图和算法结束思维子图没有执行方向。
本发明提出的基于思维图的复杂算法实现方法,能够自顶向下对复杂算法的宏观逻辑进行较好的把握,使用思维图可以将晦涩的程序代码表示为直观的思维逻辑图,有利于调试问题的快速定位和程序维护,而且对于类似逻辑模块代码可复用,采用本发明提供的基于思维图的复杂算法实现方法将有效提高复杂算法的程序编码效率。
思维图就是一个比较适合的偏逻辑高层的选择,其主要功能有三个:(1)描述逻辑功能流程,迅速定位调试问题;(2)记录程序流程和功能的变动,快速验证程序逻辑;(3)备份逻辑修改记录,保存调试中间成果。思维图逻辑描述的优势有:自顶向下,逐渐模块细化延展,展示整个算法的逻辑内容。具体可以分成三个依次递进的研究任务:形式化思维图的定义,形成其标准化的逻辑表达模型,形成复杂算法的标准描述文档,以便于后续机器识别和软件实现;设计实现思维图描述复杂算法的工具,支撑复杂算法的设计和维护;建立形式化描述的思维图和软件程序的自动转化机制,以思维图设计为核心展开复杂算法的软件开发。
本发明采用思维图的形式,描述复杂算法的内部结构和逻辑流程,成为复杂大型算法设计维护的实用化工具。思维图由一系列的串行或并行逻辑模块组成,每个逻辑模块又可以由多个子模块组成,也可以包含嵌入的多个平行模块。每个模块都包含功能描述,私有数据、示例信息、公共数据、数据接口和执行方向六个组件,从程序逻辑角度描述模块功能及数据接口等设计、理解和维护算法所需要的信息。
具体的,在基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述之后,所述方法还包括:
根据各个思维图对应逻辑模块的逻辑流程,将当前思维图划分为连续执行的多个思维子图,所述思维子图具有同样的预设逻辑结构,每一思维图的公共数据是其对应的多个思维子图的外部全局数据,多个思维子图的私有数据、示例信息和数据接口总和构成对应思维图的私有数据,示例信息和数据接口。
具体的,在基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述之后,所述方法还包括:
根据各个思维图对应逻辑模块的逻辑功能,为各思维图创建平行思维子图,平行思维子图用于对对应的逻辑模块的关键逻辑功能进行描述。
本发明实施例中,思维图TGraph:由功能描述FD、私有数据PD、示例信息EI、公共数据CD、数据接口DI及其执行方向SD构成,即TGraph(<FD,PD,EI,CD,DI,SD>)。思维图结构如图2所示。
思维子图Sub-TGraph:构成系列描述复杂算法思维图TGraph的串行或并行独立逻辑模块,即TGraph={Sub-TGraph}。思维子图结构如图3所示。其中,思维图TGraph A由三个思维子图A-1、A-2和A-3构成,TGraph A的公共数据CD是三个思维子图的外部全局数据,三个思维子图的私有数据PD、示例信息EI和数据接口DI总和构成TGraph A的私有数据,示例信息和数据接口。
平行思维子图PSub-TGraph:思维图的嵌入式思维子图,是与思维图结点平级的内容实现抽象。平行思维子图如图4所示,其中,A-1是思维图TGraph A的第一个平行思维子图,描述思维图中的重点逻辑功能。
递归思维子图ESub-TGraph:有2条执行方向。一条指向自己表示递归嵌套;另一条指向递归嵌套执行结束后,后续执行的思维子图。
在实际应用中,采用面向对象的程序设计方法(OOP)进行程序设计。使用OOP技术,可以将思维图的基本框架设计为原始父类,其各个子图设计为继承原始父类的子类,特定函数功能多态方式重构。思维图基础类的抽象的具体的实现过程如下:
依据思维图的逻辑模型,对思维图的各个组件功能进行抽象提炼,共性的功能被抽象到基础类中。比如,外部数据配置文件的读取功能,可以被归并到基础类中;而对于数据配置文件格式的识别和处理,则属于高层思维图特有的属性功能,由继承基础类的应用类思维图完成。基础类的提炼是需求持续进行的工作,涉及程序逻辑不断的共享优化过程。本发明将思维图的基本框架归并为基础类,先完成程序宏观逻辑框架设计,然后在框架内填充具体需要的逻辑功能代码,最后统一调试运行,改变了以往程序设计从下向上,容易迷失在代码细节之中而失去对宏观逻辑的把握的情况。例如,下述基础类class_baisc描述了外部配置文件初始化和访问的基本函数功能,所有的思维图都继承这个基础类。
思维图类执行和继承框架具体的实现过程如下:
思维图的技术实现负责算法类框架的实现过程,而逻辑块实现主要实现填充框架的逻辑功能。凝练和总结算法类框架主要依据2个维度,一是思维图结构维度;二是公共基础功能维度。思维图维度的类结构设计是主线,公共基础功能维度用于优化和提升。比如,文本隐含常识知识的识别,类框架的实现如下所示:
类2:
类3:
其中,类1、类2和类3主要依据思维图确定类执行程序框架,而其类继承关系主要依据公共功能分布,确定类的结构。类1和类2继承公共基础类class_math,而类3继承类2。上述例子的执行调用算法片段为:
scene_frame_identification cScene(SCENE);
cScene.Dynamic_Semantic_Web_Generate();
math_commonsense cWeb0(COMMONSENSE);
cWeb0.Dynamic_Semantic_Web_Generate();
math_attibute_identfication cWeb(ATTRIB);
cWeb.Dynamic_Semantic_Web_Generate();
本发明实施例中,在基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述之后,所述方法还包括:根据各个逻辑模块存在的继承关系和多态现象,采用多重数据配置文件对对应的思维图进行描述。进一步地,所述采用多重数据配置文件对对应的思维图进行描述具体包括:采用动态常识属性配置文件对思维图的显式继承关系进行描述;采用静态常识属性配置文件对思维图的隐式继承关系进行描述;采用多态识别配置文件对思维图的多态现象进行描述。
具体的,思维图描述的客观世界普遍存在继承和多态的现象,思维图通过多重数据配置文件实现对这样的现象的表示。比如,″长方体水缸″,″水缸″继承″长方体″的长、宽、高和体积数学属性及其计算方法;但是″表面积″属性及其计算方法却要多态重构,因为″水缸″一般无盖子,″水缸″表面积比″长方体″少一个顶部长方形面积。可以通过建立动态常识属性配置文件描述″长方体水缸″这样显式的数学常识,即水缸继承长方体的数学常识属性及其计算方法,再通过″水缸″的常识数据配置文件重新定义其表面积属性及其计算方法。由上述描述可以判断:思维图通过数据配置文件可以实现对客观世界全量描述和实现,能够完整刻画客观世界的场景和知识。
显式的继承关系通过动态常识属性配置文件描述,而隐式的继承关系则通过静态常识属性配置文件描述。多态现象则是通过多态识别配置文件描述的新的计算方法重构数学常识相应公式实现。比如,静态常识属性配置文件默认″纸盒″数学属性为″长方体″;显式表示的″长方体水缸″,则动态常识属性配置文件表述″水缸″数学属性为″长方体″,并有多态识别配置文件重构其″表面积″属性及其计算公式。多态识别配置文件可以表示为如下格式:
1///多态识别项ID
1///重构公式个数
水缸::表面积::面积,水缸::四周::面积,水缸::底部::面积,///重构公式数据元变量表
6///重构公式ID
总量,A部分,B部分,///数学公式变量表
1///动态常识属性条目数
长方体///数学属性概念
水缸///实际概念
4///匹配词汇项数
...///循环通配符
s长方体///名词匹配词汇″长方体″
s水缸||**///名词匹配词汇″水缸″,″**″通配任何名词词汇
…///循环通配符
实现继承和多态的算法描述如下:
算法1:多态继承算法
输入:数学属性配置文件,多态继承配置文件;
输出:问题数学计算公式集合
1.bool bSucc=false;
2.math_attibute_identfication cWeb(ATTRIB);
3.multi_state_identification cMultiState(MULTISTATE);
4.cMultiState.is_multistate_frame(cMultiState.struct_Scene,&(cMultiState.Num));
5.memset(&struct_Frame,0,sizeof(class_frame::MATHFRAME));
6.while(ReadAFrame(&struct_Frame))
7.{
8.if(cMultiState.is_multi_state(cMultiState.struct_Scene,cMultiState.Num,&struct_Frame))
9.{
10.bSucc=cMultiState.Dynamic_Semantic_Generate();
11.}
12.else
13.{
14.bSucc=cWeb.Dynamic_Semantic_Generate();
15.}
16.}
17.Return bSucc;
下面通过一个具体实例对本发明基于思维图的复杂算法实现方法的实现方式进行详细说明。本实施例以实现数据元语义识别算法为例进行说明,下面用实例说明数据元语义识别算法的思维图演进过程:
A.起始阶段
数据元语义识别思维图的逻辑结构如图5所示,其中,图中示例信息EI的描述是最初的概括性功能描述。随着编码调试进展,逐渐演变为典型案例的输入输出详细信息如下:
输入:
″一个长方体水缸,长10分米,宽8分米,水深4.5分米,放入一块石头,这时水面上升到6分米;这块石头的体积是多少?″
输出:
1 23::水::长方体::体积,长::长方体::距离,宽::长方体::距离,1::水::深::长方体::距离=-长方体体积,长方体长,长方体宽,长方体高
2 37::四周::水::长方体::面积,长::长方体::距离,宽::长方体::距离,1::水::深::长方体::距离=-长方体四周面积,长方体长,长方体宽,长方体高
3 38::底部::长方体::面积,长::长方体::距离,宽::长方体::距离=-长方体底部面积,长方体长,长方体宽
4 38::顶部::长方体::面积,长::长方体::距离,宽::长方体::距离=-长方体底部面积,长方体长,长方体宽
5 22::水::长方体::体积,底部::长方体::面积,1::水::深::长方体::距离=-长方体体积,截面面积,长方体长
6 22::石头::水::体积,底部::长方体::面积,2::深=-长方体体积,截面面积,长方体长
7 6::这块::石头::体积,石头::水::体积,水::长方体::体积=-A部分,总量,B部分
B.中间过程
上例的数据元语义识别思维图可以初步逻辑划分为连续执行的两个思维子图:数据元名称语义识别思维子图Sub-TGraph-11和数据元变量计算公式识别思维子图Sub-TGraph-12。各子图的逻辑结构如图6所示:
Sub-TGraph-11的EI详细信息如下:
输入:
″一″、″个″、″长方体″、″水缸″、″,″、″长″、″10″、″分米″、……
输出:
长::长方体::距离
宽::长方体::距离
……
Sub-TGraph-12的EI详细信息如下:
输入:
″一″、″个″、″长方体″、″水缸″、……″1::水::深::长方体::距离″、″2::深″、……
输出:
1 23::水::长方体::体积,长::长方体::距离,宽::长方体::距离,1::水::深::长方体::距离=-长方体体积,长方体长,长方体宽,长方体高。
本发明实施例中,所述方法还包括:为各个思维图构建存储索引,基于所述存储索引进行思维图的存储,其中,思维图的存储索引分为横向和纵向两个维度,横向表示执行流程,纵向代表功能包含关系。
具体的,思维图的存储索引分为两个维度,横向表示执行流程,纵向代表功能包含关系,便于设计和维护人员检索查阅。
本发明实施例中,思维图样例信息EI信息可以不断细化形成不同版本文档形式表示。
思维图中间过程可以是多层次细化的过程。思维图细化程度以能清楚描述程序关键逻辑为标准。一般而言,通过程序源代码能直观了解的细节处理不在负责范围之内,思维图只负责高层流转逻辑和关键处理逻辑的描述,通常这些知识不能通过局部代码分析得到。思维图不是替代源代码阅读的工具,而是辅助代码设计和维护的工具。思维图细化层次要根据代码复杂程序而定。
图7是前述思维子图Sub-TGraph-11的一个底层实现逻辑描述,其中,逻辑块Sub-TGraph-11001的详细信息示例如下:
Sub-TGraph-11001(比例概念识别)
FD:在所有变量都是比例数或″几分之几″时,识别模式″名词1″+″占″+″名词2″并生成变量名:名词1::名词2::比例数,其中含有指代识别比例数分母概念功能。
CD:分词词汇链。
DI:比例识别修改后的分词词汇链。
PD:无
EI:″商店运来一批蔬菜,黄瓜占总数的1/3,西红柿占总数的2/5,其它的是土豆,土豆占这批蔬菜的几分之几?″识别结果:黄瓜::总数::比例数(1/3),西红柿::总数::比例数(2/5),土豆::总数::比例数(?)。
SD:Sub-TGraph-12
图8是前述思维子图Sub-TGraph-12的一个底层实现逻辑描述,其中,逻辑块Sub-TGraph-12001的详细信息示例如下:
Sub-TGraph-12001(比例公式生成)
FD:匹配比例识别数据匹配文件中的模式,确定数据元变量名称,若所有变量总值为1,输出2至N个总和为1的比例数加法公式。
CD:分词词汇链。
DI:数据元变量名确定后的分词词汇链。
PD:识别模式数据配置文件(比例识别.txt)。
EI:″第一车间完成了帐篷制作计划的1/5,第二车间完成了帐篷制作计划的1/4,还剩下几分之几没完成?″输出公式:″第一::车间::帐篷::比例数++第二::车间::帐篷::比例数++剩下::帐篷::比例数==1″。
SD:END(功能结束)。
思维图技术适用于复杂算法研发中,内部逻辑功能和流程不能一次确定,要根据情况不断进行修改和更新,需要迅速定位问题、索引原有逻辑功能和查询原有输入/输出格式和接口,存档内部逻辑和数据格式变动信息。在文本数据元语义识别算法研发过程中,基于思维图进行复杂算法研发实现,简便易行,操作实用,方便逻辑功能调试,提高了研发工作效率,对于其他复杂算法研发工作有借鉴意义。
相比较于流程图,思维图着重反映复杂算法的逻辑意义而非程序执行的细节走向,面向复杂算法设计与维护而非程序编写,侧重于逻辑模块而非执行语句,其逻辑粒度比流程图要大。复杂算法的实现往往是渐进的迭代编码调试的过程,使用思维图将晦涩的程序代码表示为直观的思维逻辑图,有利于调试问题的快速定位和程序维护,后期加上类似逻辑模块代码复用功能,将有效提高程序编码的效率。
本发明提出的基于思维图的复杂算法实现方法,能够自顶向下对复杂算法的宏观逻辑进行较好的把握,使用思维图可以将晦涩的程序代码表示为直观的思维逻辑图,有利于调试问题的快速定位和程序维护,而且对于类似逻辑模块代码可复用,采用本发明提供的基于思维图的复杂算法实现方法将有效提高复杂算法的程序编码效率。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述方法的步骤。
本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
此外,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。例如图1所示的步骤:S11、根据待设计程序需要实现的业务功能,以及与所述业务功能相关的操作数据解析待设计程序的业务逻辑,得到多个逻辑模块;S12、基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述,得到与各逻辑模块对应的思维图;S13、对各个思维图进行功能抽象,将具有共性功能的思维图抽象到基础类,将具有特有属性功能的思维图作为继承基础类的应用类思维图,以实现待设计程序的逻辑框架构建;S14、基于得到的逻辑框架进行逻辑功能代码设计。
本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于思维图的复杂算法实现方法,其特征在于,所述方法包括:
根据待设计程序需要实现的业务功能,以及与所述业务功能相关的操作数据解析待设计程序的业务逻辑,得到多个逻辑模块;
基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述,得到与各逻辑模块对应的思维图;
对各个思维图进行功能抽象,将具有共性功能的思维图抽象到基础类,将具有特有属性功能的思维图作为继承基础类的应用类思维图,以实现待设计程序的逻辑框架构建;
基于得到的逻辑框架进行逻辑功能代码设计。
2.如权利要求1所述的方法,其特征在于,所述预设逻辑结构包括以下组件:功能描述,私有数据、示例信息、公共数据、数据接口和执行方向。
3.如权利要求2所述的方法,其特征在于,在基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述之后,所述方法还包括:
根据各个思维图对应逻辑模块的逻辑流程,将当前思维图划分为连续执行的多个思维子图,所述思维子图具有同样的预设逻辑结构,每一思维图的公共数据是其对应的多个思维子图的外部全局数据,多个思维子图的私有数据、示例信息和数据接口总和构成对应思维图的私有数据,示例信息和数据接口。
4.如权利要求2所述的方法,其特征在于,在基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述之后,所述方法还包括:
根据各个思维图对应逻辑模块的逻辑功能,为各思维图创建平行思维子图,平行思维子图用于对对应的逻辑模块的关键逻辑功能进行描述。
5.如权利要求1所述的方法,其特征在于,在基于具有预设逻辑结构的思维图对各逻辑模块从逻辑角度进行功能及数据接口描述之后,所述方法还包括:
根据各个逻辑模块存在的继承关系和多态现象,采用多重数据配置文件对对应的思维图进行描述。
6.如权利要求5所述的方法,其特征在于,所述采用多重数据配置文件对对应的思维图进行描述包括:
采用动态常识属性配置文件对思维图的显式继承关系进行描述;
采用静态常识属性配置文件对思维图的隐式继承关系进行描述;
采用多态识别配置文件对思维图的多态现象进行描述。
7.如权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
为各个思维图构建存储索引,基于所述存储索引进行思维图的存储,其中,思维图的存储索引分为横向和纵向两个维度,横向表示执行流程,纵向代表功能包含关系。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一项所述方法的步骤。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110697765.5A CN113535152B (zh) | 2021-06-23 | 2021-06-23 | 基于思维图的复杂算法实现方法、计算机存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110697765.5A CN113535152B (zh) | 2021-06-23 | 2021-06-23 | 基于思维图的复杂算法实现方法、计算机存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535152A true CN113535152A (zh) | 2021-10-22 |
CN113535152B CN113535152B (zh) | 2023-06-30 |
Family
ID=78125631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110697765.5A Active CN113535152B (zh) | 2021-06-23 | 2021-06-23 | 基于思维图的复杂算法实现方法、计算机存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535152B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120216015A1 (en) * | 2011-02-22 | 2012-08-23 | Mitra Sumanranjan S | System and method to concurrently execute a plurality of object oriented platform independent programs by utilizing memory accessible by both a processor and a co-processor |
US20170235848A1 (en) * | 2012-08-29 | 2017-08-17 | Dennis Van Dusen | System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction |
CN107145354A (zh) * | 2017-05-04 | 2017-09-08 | 武汉斗鱼网络科技有限公司 | 软件框架及其构建方法、电子终端及可读存储介质 |
CN109800344A (zh) * | 2019-01-28 | 2019-05-24 | 王立山 | 一种自然语言机器思维的自动编程方法及其系统 |
CN112784598A (zh) * | 2019-11-11 | 2021-05-11 | 北京京东尚科信息技术有限公司 | 思维导图的生成方法、装置、设备及存储介质 |
-
2021
- 2021-06-23 CN CN202110697765.5A patent/CN113535152B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120216015A1 (en) * | 2011-02-22 | 2012-08-23 | Mitra Sumanranjan S | System and method to concurrently execute a plurality of object oriented platform independent programs by utilizing memory accessible by both a processor and a co-processor |
US20170235848A1 (en) * | 2012-08-29 | 2017-08-17 | Dennis Van Dusen | System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction |
CN107145354A (zh) * | 2017-05-04 | 2017-09-08 | 武汉斗鱼网络科技有限公司 | 软件框架及其构建方法、电子终端及可读存储介质 |
CN109800344A (zh) * | 2019-01-28 | 2019-05-24 | 王立山 | 一种自然语言机器思维的自动编程方法及其系统 |
CN112784598A (zh) * | 2019-11-11 | 2021-05-11 | 北京京东尚科信息技术有限公司 | 思维导图的生成方法、装置、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
ANIL KUMAR: "CERN ROOT Tutorial 2: Plotting Graph Using TGraph", pages 1 - 16, Retrieved from the Internet <URL:《https://techforcurious.website/cern-root-tutorial-2-plotting-graph-using-tgraph/》> * |
MAYU AKAKI: "Creative Thinking Affecting Team Creativity and Team Performance: Analysis Result of the Survey to Graduate Students in a Team Collaboration Project", 《2020 9TH INTERNATIONAL CONGRESS ON ADVANCED APPLIED INFORMATICS (IIAI-AAI)》, pages 1 - 6 * |
陈曦: "面向大规模知识图谱的弹性语义推理方法研究及应用", 《中国博士学位论文全文数据库 信息科技辑》, pages 140 - 28 * |
风中1匹狼: "C++中类的三种继承方式public(公有继承)、protected(保护继承)、private(私有继承)之间的差别", pages 1 - 7, Retrieved from the Internet <URL:《https://blog.csdn.net/biqioso/article/details/83108532》> * |
Also Published As
Publication number | Publication date |
---|---|
CN113535152B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9158847B1 (en) | Cognitive memory encoding networks for fast semantic indexing storage and retrieval | |
US10747740B2 (en) | Cognitive memory graph indexing, storage and retrieval | |
CA2924083C (en) | Syntactic tagging in a domain-specific context | |
US7831534B2 (en) | Method of building persistent polyhierarchical classifications based on polyhierarchies of classification criteria | |
JP4856237B2 (ja) | グラフィック・デザイナの再利用を可能にする宣言型定義 | |
US11907203B2 (en) | Path encoded tree structures for operations | |
CN107622080B (zh) | 一种数据处理方法及设备 | |
US20120297364A1 (en) | Augmented design structure matrix visualizations for software system analysis | |
Delfmann et al. | The generic model query language GMQL–Conceptual specification, implementation, and runtime evaluation | |
US20090199156A1 (en) | Constraint language editing for generating model-related constraint expressions | |
Baas | Nosql spatial–neo4j versus postgis | |
Ledur et al. | Towards a domain-specific language for geospatial data visualization maps with big data sets | |
Ángel et al. | Automated modelling assistance by integrating heterogeneous information sources | |
US20140130008A1 (en) | Generating information models | |
US20160266875A1 (en) | Software automatic configuration apparatus, software automatic configuration method, and storage media | |
Jiménez-Pastor et al. | Scalable model exploration for model-driven engineering | |
CN113535152A (zh) | 基于思维图的复杂算法实现方法、计算机存储介质及设备 | |
Ledur et al. | A high-level dsl for geospatial visualizations with multi-core parallelism support | |
Garriga | Formal methods for mining structured objects | |
Po et al. | Community detection applied on big linked data | |
Priyambadha et al. | Tree-based keyword search algorithm over the visual paradigm’s class diagram xml to abstracting class information | |
Trujillo et al. | Modeling the behavior of OLAP applications using an UML compliant approach | |
Golobisky et al. | Fundamentals for the Automation of Object-Relationa Database Design | |
Simacek | Harnessing forest automata for verification of heap manipulating programs | |
US20200394218A1 (en) | Visual data model object dependency tracing |
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 |