CN117311678A - Equivalent embedding method for synthesizing program module sequencing group function of AI system - Google Patents
Equivalent embedding method for synthesizing program module sequencing group function of AI system Download PDFInfo
- Publication number
- CN117311678A CN117311678A CN202310991958.0A CN202310991958A CN117311678A CN 117311678 A CN117311678 A CN 117311678A CN 202310991958 A CN202310991958 A CN 202310991958A CN 117311678 A CN117311678 A CN 117311678A
- Authority
- CN
- China
- Prior art keywords
- program
- sequence
- tight
- modules
- space
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012163 sequencing technique Methods 0.000 title claims abstract description 5
- 230000002194 synthesizing effect Effects 0.000 title abstract 2
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 44
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 44
- 230000006870 function Effects 0.000 claims abstract description 40
- 238000000605 extraction Methods 0.000 claims abstract description 15
- 238000013507 mapping Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 abstract description 15
- 230000006698 induction Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 230000014509 gene expression Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000006722 reduction reaction Methods 0.000 description 5
- 230000001939 inductive effect Effects 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 2
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- 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
技术领域Technical Field
本发明涉及计算机领域,具体是用于AI系统的程序模块序化组接功能合成的等效嵌入方法。The present invention relates to the field of computers, and in particular to an equivalent embedding method for sequential assembly function synthesis of program modules of an AI system.
背景技术Background Art
对于某一个确定的AI系统,如何能够把AI系统按照其功能大小自动拆分开来,从而将其分解为多个功能模块,从而对其局部和整体的功能进行较好的客观说明,使得非AI相关专业领域的使用者也可以客观直接地去理解此AI系统,从而结合自己的专业知识,对AI系统的功能和运行提出自己的建议和需求,目前的现有技术还不能够把AI系统按照其功能大小自动拆分开来。For a certain AI system, how can we automatically split the AI system according to its functional size, so as to decompose it into multiple functional modules, so as to give a better objective description of its local and overall functions, so that users in non-AI related professional fields can also understand this AI system objectively and directly, and then combine their own professional knowledge to put forward their own suggestions and requirements on the functions and operation of the AI system. The current existing technology cannot automatically split the AI system according to its functional size.
发明内容Summary of the invention
本发明的目的在于克服现有技术的不足,提供用于AI系统的程序模块序化组接功能合成的等效嵌入方法,包括如下步骤:The purpose of the present invention is to overcome the shortcomings of the prior art and provide an equivalent embedding method for program module sequencing and grouping function synthesis for an AI system, comprising the following steps:
步骤一,根据AI系统流图的结构,建立程序拓扑空间与程序模块类拓扑空间,并通过建立序性分类算子与序点判断算子对程序模块进行序性分类,根据序性分类,建立程序模块间的序关系;Step 1: According to the structure of the AI system flow graph, a program topological space and a program module class topological space are established, and the program modules are sequentially classified by establishing sequential classification operators and sequence point judgment operators. According to the sequential classification, the sequence relationship between program modules is established;
步骤二,基于程序模块间的序关系,根据紧序得到程序模块间的序关系的极大紧序,根据极大紧序对AI系统功能模块进行程序模块序化组接的功能合成提取;Step 2: Based on the sequence relationship between program modules, the maximum tight sequence of the sequence relationship between program modules is obtained according to the tight sequence, and the function synthesis extraction of the program module sequence grouping of the AI system function modules is performed according to the maximum tight sequence;
步骤三,利用形式语义将程序语言的语言成分进行形式语义化,得到程序流图,根据程序流图得到极大紧序,根据极大紧序得到对应的功能模块的输出结果的形式语义模块,完成AI系统的程序模块序化组接功能合成的等效嵌入。Step three, use formal semantics to formalize the language components of the program language to obtain a program flow chart, obtain the maximal tight sequence based on the program flow chart, and obtain the formal semantic module of the output results of the corresponding functional module based on the maximal tight sequence, thus completing the equivalent embedding of the program module serialization and assembly function synthesis of the AI system.
进一步的,所述的根据AI系统流图的结构,建立程序拓扑空间与程序模块类拓扑空间,包括:Furthermore, the establishment of the program topology space and the program module class topology space according to the structure of the AI system flow graph includes:
由程序模块组成的集合称为程序集合,其中任一程序模块Xi称为程序集合中的元素Xi,对任一程序集合由的所有子集为元素构成的集合:A set of program modules is called a program set, where any program module Xi is called an element Xi in the program set. Depend on All subsets of are the sets of elements:
称为的幂集,的每个子集称为的一个子集族;called The power set of Each subset of called A subset family of ;
所述的程序拓扑空间为:The program topology space is:
是集合,称为一个拓扑空间,若集合满足: is a collection, It is called a topological space if the set satisfy:
(i) (i)
(ii)集合内任意两个开集满足 (ii) Collection Any two open sets satisfy
(iii)的子集 (iii) Subset of
程序拓扑空间的开集为可数个程序模块的集合,程序拓扑空间为即 The open set of the program topological space is a countable set of program modules. The program topological space is Right now
所述的程序模块类拓扑空间为:若Y是包含n个程序模块类的有限集,则称Y的阶为n,记为:|Y|=n或Yn;程序模块类拓扑空间的开集为可数个程序模块类的集合,程序模块类拓扑空间为即 The program module class topological space is: if Y is a finite set containing n program module classes, then the order of Y is n, denoted as: |Y|=n or Y n ; the open set of the program module class topological space is the set of countable program module classes, and the program module class topological space is Right now
进一步的,所述的通过建立序性分类算子与序点判断算子对程序模块进行序性分类,根据序性分类,建立程序模块间的序关系,包括:Furthermore, the method of performing sequential classification on program modules by establishing a sequential classification operator and a sequence point judgment operator, and establishing a sequence relationship between program modules according to the sequential classification, includes:
所述的序性分类算子Ti为:将Xi映射到类空间伪基底Yj:TiXi=Yj,其中的Xi为程序空间下的伪基底,Yj是类空间下的伪基底,所述的伪基底为在程序空间和程序模块类空间下,为特征无关的程序模块和程序模块类;通过序性分类算子得到程序模块的类型;The sequential classification operator Ti is: mapping Xi to a pseudo-basis Yj in the class space: TiXi = Yj , wherein Xi is a pseudo-basis in the program space, Yj is a pseudo-basis in the class space, and the pseudo-basis is a program module and a program module class with irrelevant features in the program space and the program module class space; the type of the program module is obtained by the sequential classification operator;
所述的序点判断算子M为:用于判断及分类序起点、序终点及余点;其中的序起点为一段具有完整功能模块的程序第一个程序模块为序起点,序终点为一段具有完整功能模块的程序的最后一个程序模块为序终点;所述的余点为既不为序起点也不为序终点的程序模块;通过序点判断算子判断程序模块的分类以及程序模块之间的紧序关系。The sequence point judgment operator M is used to judge and classify the sequence starting point, sequence end point and remaining point; the sequence starting point is the first program module of a program with complete functional modules as the sequence starting point, and the sequence end point is the last program module of a program with complete functional modules as the sequence end point; the remaining point is a program module that is neither the sequence starting point nor the sequence end point; the classification of program modules and the tight sequence relationship between program modules are judged by the sequence point judgment operator.
进一步的,所述的紧序为:设为程序拓扑空间中的n(n≥1且)个程序模块,若这n个程序模块按顺序执行后,程序可以运行,则依次形成了紧序关系,记作 Furthermore, the tight sequence is: is n in the program topological space (n≥1 and ) program modules, if these n program modules After executing in sequence, the program can be run, then They form a tight sequence relationship, denoted by
进一步的,所述的极大紧序为:无任何极小紧序作为紧序的后继紧序,也无任何极小紧序以紧序为后继紧序,则为极大紧序;Furthermore, the maximal tight sequence is: if there is no minimal tight sequence as the successor tight sequence of the tight sequence, and there is no minimal tight sequence with the tight sequence as the successor tight sequence, then it is a maximal tight sequence;
所述的极小紧序为无真子紧序的紧序,所述的真子紧序为:设为程序拓扑空间中的n个程序模块,且是一个紧序,若有s(1≤s≤n且)个程序模块满足紧序关系则称为 的子紧序;若还成立s<n,则为的真子紧序;The minimal compact order is a compact order without a real sub-order, and the real sub-order is: Let are n program modules in the program topological space, and is a tight sequence if there is s(1≤s≤n and ) program modules Satisfy the tight order relation Then it is called for ; if s<n also holds, then for The true sub-tight order of ;
所述的后继紧序为:设为程序拓扑空间中的n+m个程序模块,且都是紧序,若 也是紧序,则称是的后继紧序。The successor sequence is: are n+m program modules in the program topological space, and are all in tight order, if is also a tight sequence, then it is called yes The successor sequence.
进一步的,所述的根据极大紧序对AI系统功能模块进行程序模块序化组接的功能合成提取,包括:Furthermore, the function synthesis extraction of performing program module serialization and grouping of AI system function modules according to the maximum tight sequence includes:
根据AI系统的程序模块以及程序模块的紧序关系,遍历出所有的极大紧序,完成程序模块序化组接的功能合成提取。According to the program modules of the AI system and the tight sequence relationship between the program modules, all the maximum tight sequences are traversed to complete the functional synthesis extraction of the sequential grouping of program modules.
本发明的有益效果是:本专利首先建立了程序拓扑空间与程序模块类拓扑空间,并通过建立分类算子与序点判断算子完成了对程序模块的序性分类。在完成序性分类后,我们定义了一个全新的序关系,即紧序,从而确定了“颗粒度程序模块”的序化组接。以序性分类和序化组接为基础,我们通过寻找极大紧序,给出了程序模块序化组接的功能合成提取的方法。The beneficial effects of the present invention are as follows: the present invention first establishes a program topological space and a program module class topological space, and completes the sequential classification of program modules by establishing classification operators and sequence point judgment operators. After completing the sequential classification, we define a new sequential relationship, namely, tight sequence, thereby determining the sequential grouping of "granular program modules". Based on sequential classification and sequential grouping, we provide a method for functional synthesis extraction of sequential grouping of program modules by finding the maximum tight sequence.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1为用于AI系统的程序模块序化组接功能合成的等效嵌入方法的流程示意图;FIG1 is a flow chart of an equivalent embedding method for sequential assembly function synthesis of program modules for AI systems;
图2为紧序示例1示意图;FIG2 is a schematic diagram of a tight sequence example 1;
图3为紧序示例2示意图;FIG3 is a schematic diagram of a tight sequence example 2;
图4为紧序与子紧序示意图;FIG4 is a schematic diagram of a tight sequence and a sub-tight sequence;
图5为紧序与后继紧序示意图;FIG5 is a schematic diagram of a tight sequence and a subsequent tight sequence;
图6为紧序与极大紧序示意图;FIG6 is a schematic diagram of a tight sequence and a maximum tight sequence;
图7为紧序及其节点示意图;Fig. 7 is a schematic diagram of a tight sequence and its nodes;
图8为依紧序收敛示例1示意图;FIG8 is a schematic diagram of Example 1 of convergence according to tight sequence;
图9为依紧序收敛示例2示意图;FIG9 is a schematic diagram of Example 2 of convergence according to tight sequence;
图10为紧序集错误示例示意图;FIG10 is a schematic diagram of an example of a tight-order set error;
图11为程序模块紧序集示例示意图;FIG11 is a schematic diagram of an example of a tight-ordered set of program modules;
图12为程序模块紧序集示例示意图;FIG12 is a schematic diagram of an example of a tight-ordered set of program modules;
图13为程序代码示例示意图;FIG13 is a schematic diagram of a program code example;
图14为程序流图示例示意图。FIG14 is a schematic diagram of an example of a program flow chart.
具体实施方式DETAILED DESCRIPTION
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。The technical solution of the present invention is further described in detail below in conjunction with the accompanying drawings, but the protection scope of the present invention is not limited to the following.
为了使本发明的目的,技术方案及优点更加清楚明白,结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。In order to make the purpose, technical solutions and advantages of the present invention more clear, the present invention is further described in detail in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention, that is, the described embodiments are only part of the embodiments of the present invention, rather than all of the embodiments. The components of the embodiments of the present invention described and shown in the drawings herein can be arranged and designed in various different configurations.
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。Therefore, the following detailed description of the embodiments of the present invention provided in the accompanying drawings is not intended to limit the scope of the claimed invention, but merely represents selected embodiments of the present invention. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative work are within the scope of protection of the present invention. It should be noted that relational terms such as the terms "first" and "second" are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations.
而且,术语“包括”,“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程,方法,物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程,方法,物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程,方法,物品或者设备中还存在另外的相同要素。Moreover, the terms "comprises", "includes" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or apparatus that includes a list of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method, article or apparatus. In the absence of more restrictions, an element defined by the phrase "comprises a ..." does not exclude the presence of additional identical elements in the process, method, article or apparatus that includes the element.
以下结合实施例对本发明的特征和性能作进一步的详细描述。The features and performance of the present invention are further described in detail below in conjunction with the embodiments.
如图1所示,用于AI系统的程序模块序化组接功能合成的等效嵌入方法,其特征在于,包括如下步骤:As shown in FIG1 , the equivalent embedding method for the program module sequence assembly function synthesis of the AI system is characterized by comprising the following steps:
步骤一,根据AI系统流图的结构,建立程序拓扑空间与程序模块类拓扑空间,并通过建立序性分类算子与序点判断算子对程序模块进行序性分类,根据序性分类,建立程序模块间的序关系;Step 1: According to the structure of the AI system flow graph, a program topological space and a program module class topological space are established, and the program modules are sequentially classified by establishing sequential classification operators and sequence point judgment operators. According to the sequential classification, the sequence relationship between program modules is established;
步骤二,基于程序模块间的序关系,根据紧序得到程序模块间的序关系的极大紧序,根据极大紧序对AI系统功能模块进行程序模块序化组接的功能合成提取;Step 2: Based on the sequence relationship between program modules, the maximum tight sequence of the sequence relationship between program modules is obtained according to the tight sequence, and the function synthesis extraction of the program module sequence grouping of the AI system function modules is performed according to the maximum tight sequence;
步骤三,利用形式语义将程序语言的语言成分进行形式语义化,得到程序流图,根据程序流图得到极大紧序,根据极大紧序得到对应的功能模块的输出结果的形式语义模块,完成AI系统的程序模块序化组接功能合成的等效嵌入。Step three, use formal semantics to formalize the language components of the program language to obtain a program flow chart, obtain the maximal tight sequence based on the program flow chart, and obtain the formal semantic module of the output results of the corresponding functional module based on the maximal tight sequence, thus completing the equivalent embedding of the program module serialization and assembly function synthesis of the AI system.
所述的根据AI系统流图的结构,建立程序拓扑空间与程序模块类拓扑空间,包括:The establishment of program topology space and program module class topology space according to the structure of the AI system flow graph includes:
由程序模块组成的集合称为程序集合,其中任一程序模块Xi称为程序集合中的元素Xi,对任一程序集合由的所有子集为元素构成的集合:A set of program modules is called a program set, where any program module Xi is called an element Xi in the program set. Depend on All subsets of are the sets of elements:
称为的幂集,的每个子集称为的一个子集族;called The power set of Each subset of called A subset family of ;
所述的程序拓扑空间为:The program topology space is:
是集合,称为一个拓扑空间,若集合满足: is a collection, It is called a topological space if the set satisfy:
(i) (i)
(ii)集合内任意两个开集满足 (ii) Collection Any two open sets satisfy
(iii)的子集 (iii) Subset of
程序拓扑空间的开集为可数个程序模块的集合,程序拓扑空间为即 The open set of the program topological space is a countable set of program modules. The program topological space is Right now
所述的程序模块类拓扑空间为:若Y是包含n个程序模块类的有限集,则称Y的阶为n,记为:|Y|=n或Yn;程序模块类拓扑空间的开集为可数个程序模块类的集合,程序模块类拓扑空间为即 The program module class topological space is: if Y is a finite set containing n program module classes, then the order of Y is n, denoted as: |Y|=n or Y n ; the open set of the program module class topological space is the set of countable program module classes, and the program module class topological space is Right now
所述的通过建立序性分类算子与序点判断算子对程序模块进行序性分类,根据序性分类,建立程序模块间的序关系,包括:The method of performing sequential classification of program modules by establishing a sequential classification operator and a sequence point judgment operator, and establishing a sequence relationship between program modules according to the sequential classification, includes:
所述的序性分类算子Ti为:将Xi映射到类空间伪基底Yj:TiXi=Yj,其中的Xi为程序空间下的伪基底,Yj是类空间下的伪基底,所述的伪基底为在程序空间和程序模块类空间下,为特征无关的程序模块和程序模块类;通过序性分类算子得到程序模块的类型;The sequential classification operator Ti is: mapping Xi to a pseudo-basis Yj in the class space: TiXi = Yj , wherein Xi is a pseudo-basis in the program space, Yj is a pseudo-basis in the class space, and the pseudo-basis is a program module and a program module class with irrelevant features in the program space and the program module class space; the type of the program module is obtained by the sequential classification operator;
所述的序点判断算子M为:用于判断及分类序起点、序终点及余点;其中的序起点为一段具有完整功能模块的程序第一个程序模块为序起点,序终点为一段具有完整功能模块的程序的最后一个程序模块为序终点;所述的余点为既不为序起点也不为序终点的程序模块;通过序点判断算子判断程序模块的分类以及程序模块之间的紧序关系。The sequence point judgment operator M is used to judge and classify the sequence starting point, sequence end point and remaining point; the sequence starting point is the first program module of a program with complete functional modules as the sequence starting point, and the sequence end point is the last program module of a program with complete functional modules as the sequence end point; the remaining point is a program module that is neither the sequence starting point nor the sequence end point; the classification of program modules and the tight sequence relationship between program modules are judged by the sequence point judgment operator.
所述的紧序为:设为程序拓扑空间中的n(n≥1且)个程序模块,若这n个程序模块按顺序执行后,程序可以运行,则依次形成了紧序关系,记作 The tight sequence is: is n in the program topological space (n≥1 and ) program modules, if these n program modules After executing in sequence, the program can be run, then They form a tight sequence relationship, denoted by
所述的极大紧序为:无任何极小紧序作为紧序的后继紧序,也无任何极小紧序以紧序为后继紧序,则为极大紧序;The maximal tight sequence is: if there is no minimal tight sequence as the successor tight sequence of the tight sequence, and there is no minimal tight sequence with the tight sequence as the successor tight sequence, then it is a maximal tight sequence;
所述的极小紧序为无真子紧序的紧序,所述的真子紧序为:设为程序拓扑空间中的n个程序模块,且是一个紧序,若有s(1≤s≤n且)个程序模块满足紧序关系则称为 的子紧序;若还成立s<n,则为的真子紧序;The minimal compact order is a compact order without a real sub-order, and the real sub-order is: Let are n program modules in the program topological space, and is a tight sequence if there is s(1≤s≤n and ) program modules Satisfy the tight order relation Then it is called for ; if s<n also holds, then for The true sub-tight order of ;
所述的后继紧序为:设为程序拓扑空间中的n+m个程序模块,且 都是紧序,若 也是紧序,则称是的后继紧序。The successor sequence is: are n+m program modules in the program topological space, and are all in tight order, if is also a tight sequence, then it is called yes The successor sequence.
所述的根据极大紧序对AI系统功能模块进行程序模块序化组接的功能合成提取,包括:The function synthesis extraction of performing program module serialization and grouping of the AI system function modules according to the maximum tight sequence includes:
根据AI系统的程序模块以及程序模块的紧序关系,遍历出所有的极大紧序,完成程序模块序化组接的功能合成提取。According to the program modules of the AI system and the tight sequence relationship between the program modules, all the maximum tight sequences are traversed to complete the functional synthesis extraction of the sequential grouping of program modules.
本专利首先建立了程序拓扑空间与程序模块类拓扑空间,并通过建立分类算子与序点判断算子完成了对程序模块的序性分类。在完成序性分类后,我们定义了一个全新的序关系,即紧序,从而确定了“颗粒度程序模块”的序化组接。以序性分类和序化组接为基础,我们通过寻找极大紧序,给出了程序模块序化组接的功能合成提取的方法。在前述工作基础上,我们完成了程序模块序化组接功能合成的等效嵌入工作,给出了程序模块序化组接功能合成的等效嵌入方法,并选取了较为具有代表性的例示来对我们的等效嵌入方法进行了展示和说明。This patent first established the program topological space and the program module class topological space, and completed the sequential classification of program modules by establishing classification operators and sequence point judgment operators. After completing the sequential classification, we defined a new sequence relationship, namely the tight order, to determine the sequential grouping of "granular program modules". Based on the sequential classification and sequential grouping, we provided a method for extracting the functional synthesis of the sequential grouping of program modules by finding the maximum tight order. On the basis of the above work, we completed the equivalent embedding work of the functional synthesis of the sequential grouping of program modules, provided an equivalent embedding method for the functional synthesis of the sequential grouping of program modules, and selected more representative examples to demonstrate and explain our equivalent embedding method.
二、确定颗粒度程序模块的序性分类2. Determine the sequential classification of granular program modules
为使序性分类算子与序点判断算子能够更好地对程序模块进行相应的序性分类与判断,我们建立程序拓扑空间与程序模块类拓扑空间,并在此基础上定义序性分类算子与序点判断算子。In order to enable the sequential classification operator and the sequence point judgment operator to better classify and judge the program modules, we establish the program topological space and the program module class topological space, and define the sequential classification operator and the sequence point judgment operator on this basis.
(一)程序拓扑空间1. Program Topological Space
引入程序模块的概念,一是为了考查程序的整体特征和结构,研究舍去程序个性后的抽象共性,划分区间;二是程序的语言十分简明,且能更加细致地区分研究对象的各种内涵,考查各种组合的可能性时还有很强的概括性。The concept of program module is introduced for two reasons: first, to examine the overall characteristics and structure of the program, to study the abstract commonalities after discarding the individual characteristics of the program, and to divide the intervals; second, the language of the program is very concise and can distinguish the various connotations of the research object more finely, and it has strong generalization when examining the possibility of various combinations.
为了对程序模块进行序性分类,我们考虑构建程序拓扑空间,分析程序拓扑空间的性质。要构建程序拓扑空间,我们首先需要定义程序集合,并在其基础上进一步建立程序拓扑空间,并分析其性质。In order to classify program modules sequentially, we consider constructing a program topological space and analyzing its properties. To construct a program topological space, we first need to define a program set, and then further build a program topological space based on it and analyze its properties.
1、程序集合1. Program Collection
鉴于我们已将程序分为多种模块,这些模块蕴含了具体的多种实现代码。于是我们对程序集合定义如下:Since we have divided the program into multiple modules, these modules contain multiple specific implementation codes. So we define the program collection as follows:
定义1:(程序集合)由所有程序模块组成的集合称为程序集合,其中任一程序模块Xi称为程序集合中的元素Xi.Definition 1: (Program Set) The set consisting of all program modules is called a program set, where any program module Xi is called an element Xi in the program set.
定义2:(幂集)对任一程序集合由的所有子集为元素构成的集合:Definition 2: (Power set) For any set of programs Depend on All subsets of are the sets of elements:
称为的幂集。的每个子集称为的一个子集族。called The power set of . Each subset of called A subset of .
为了发掘程序模块之间的隐含规律,利用数学抽象语言对程序模块更好地进行序性分类,我们在程序集合的基础上进一步定义了程序拓扑空间。In order to discover the implicit rules between program modules and use mathematical abstract language to better classify program modules in order, we further define the program topological space based on the program set.
2、程序拓扑空间2. Program topology space
为了发掘程序模块之间的隐含规律,利用数学抽象语言对程序模块更好地进行序性分类,我们在程序集合的基础上进一步定义了程序拓扑空间。In order to discover the implicit rules between program modules and use mathematical abstract language to better classify program modules in order, we further define the program topological space based on the program set.
为了定义程序拓扑空间,我们首先给出其拓扑定义如下:In order to define the program topology space, we first give its topological definition as follows:
是集合,称为一个拓扑空间,若集合满足如下公理: is a collection, It is called a topological space if the set Satisfies the following axioms:
(i) (i)
(ii)集合内任意两个开集满足 (ii) Collection Any two open sets satisfy
(iii)的子集 (iii) Subset of
在上述定义基础上,我们给出程序拓扑空间定义如下:Based on the above definition, we give the following definition of program topology space:
定义3:(程序拓扑空间)我们定义程序拓扑空间的开集为可数个程序模块的集合,程序拓扑空间为即 Definition 3: (Program topological space) We define the open set of program topological space as the set of countable program modules. The program topological space is Right now
对于这个新定义的开集和程序拓扑空间,下面我们验证拓扑空间的三条性质,从而说明我们这样定义的程序拓扑空间是良定义的。For this newly defined open set and program topological space, we will verify three properties of the topological space below to show that the program topological space we defined in this way is well-defined.
(i)由于程序模块总数是可数个,故我们可以得出程序模块集合 (i) Since the total number of program modules is countable, we can derive the set of program modules
(ii)设A和B是上述定义的中的两个不同的开集,那么A∩B也为程序模块的集合,且其中含有可数个程序模块,从而符合上述的开集定义;(ii) Let A and B be the above definitions. If A∩B is a set of program modules, and it contains countable program modules, it meets the above definition of open set.
(iii)任给程序拓扑空间的子集 也是程序模块的集合,并且中的程序模块个数不多于程序拓扑空间中程序模块的个数,从而也是可数个程序模块的集合,从而 (iii) Any subset of the program topology space is also a collection of program modules, and The number of program modules in is no more than the number of program modules in the program topological space, so is also a countable set of program modules, so
这样,我们证明了定义3中的程序拓扑空间确实具有拓扑结构,从而是一个拓扑空间。In this way, we prove that the program topological space in Definition 3 does have a topological structure and is therefore a topological space.
3、程序拓扑空间性质3. Properties of program topological space
在程序拓扑空间建立后,为了更好地对其中的程序模块进行序性分类,我们进一步研究了该空间的性质。After the program topological space was established, we further studied the properties of the space in order to better classify the program modules in it.
3.1、连通性与第一可数3.1 Connectivity and first countability
连通性:若中不存在一对无交的非空开子集和使得则我们称是连通的。Connectivity: If There does not exist a pair of non-empty open subsets that do not intersect and Make We call are connected.
定理1:程序拓扑空间是连通的。Theorem 1: The program topological space is connected.
第一可数:在程序拓扑空间中,任一程序模块X,选择X的邻域的一个可数簇为:使得X的每一个邻域都至少包含中的一个元素。在程序拓扑空间的每一点都有可数邻域基,故称程序拓扑空间是第一可数的。First countable: in program topological space For any program module X, a countable cluster of the neighborhood of X is selected as: So that every neighborhood of X contains at least An element in the program topology space Each point of has a countable neighborhood basis, so it is called a program topological space. It is the first countable.
3.2、程序拓扑空间内的运算法则3.2. Operational rules in program topological space
为了更好地表出程序空间中任一个完整程序,我们需要定义程序模块之间的运算法则:In order to better represent any complete program in the program space, we need to define the operation rules between program modules:
定义4:(程序拓扑空间运算符)设为程序拓扑空间两程序串行运算,为两程序并行运算。Definition 4: (Program topological space operator) Let For the program topology space, two programs are operated serially. Run two programs in parallel.
可以发现,在程序拓扑空间中,满足交换律、结合律,和满足左分配律,但不满足交换律、结合律。It can be found that in the program topology space middle, Satisfies the commutative and associative laws. and satisfies the left distributive law, but It does not satisfy the commutative and associative laws.
(i)不满足交换律(i) Does not satisfy the commutative law
证明:表示先运行A再运行B,prove: It means running A first and then running B.
表示先运行B再运行A, It means running B first and then running A.
表示先运行A再运行B和先运行B再运行A结果相同, It means that running A first and then B has the same result as running B first and then A.
然而在实际运行中,两个程序可交换执行顺序并不总是成立,However, in actual operation, it is not always true that the execution order of two programs can be interchanged.
从而不满足交换律。thereby Does not satisfy the commutative law.
(ii)不满足结合律(ii) Does not satisfy the associative law
证明:表示先运行A再运行B,最后运行C,prove: It means running A first, then running B, and finally running C.
表示先运行B再运行C,最后运行A, It means running B first, then running C, and finally running A.
表示依次序运行A、B、C和依次序运行B、C、A结果相同, It means that running A, B, C in sequence and running B, C, A in sequence will produce the same result.
然而在实际运行中,依次序运行A、B、C和依次序运行B、C、A并不总是相同。However, in actual operation, running A, B, C in sequence and running B, C, A in sequence are not always the same.
从而不满足结合律。thereby Does not satisfy the associative law.
(iii)满足交换律: (iii) Satisfies the commutative law:
证明:表示并行运行A和B,prove: Indicates running A and B in parallel.
表示并行运行B和A, Indicates running B and A in parallel.
表示并行运行A、B和并行运行B、A结果相同, Indicates that running A and B in parallel and running B and A in parallel will produce the same result.
这是显然成立的。This is obviously true.
从而满足交换律。thereby Satisfies the commutative law.
(iv)满足结合律: (iv) Satisfies the associative law:
证明:表示并行运行A和B后,再与C并行运行,prove: It means running A and B in parallel, and then running C in parallel.
表示并行运行B和C后,再与A并行运行, It means running B and C in parallel, and then running it in parallel with A.
表示上述两种运行顺序运行结果相同, Indicates that the above two running sequences have the same running results.
这是显然成立的。This is obviously true.
从而满足结合律。thereby Satisfies the associative law.
(v)和满足左分配律: (v) and Satisfies the left distributive law:
证明:表示将C与A、B并行运行后的结果串行运行,prove: It means that the results of running C in parallel with A and B are run serially.
表示将C分别与A和B串行运行后的结果并行运行, It means running C in parallel with the results of running A and B in series.
表示上述两种运行顺序结果相同, Indicates that the above two running orders have the same results.
这是显然成立的。This is obviously true.
从而和满足左分配律。thereby and Satisfies the left distributive law.
我们还可以根据程序的特点发现,和不满足右分配律。事实上,程序模块所形成的紧序集中并不存在这样的表现形式。We can also find out based on the characteristics of the program, and The right distributive law is not satisfied. In fact, the compact order set formed by the program module does not exist Such a form of expression.
(二)程序模块类拓扑空间(II) Program Module Class Topological Space
程序模块类拓扑空间显示了程序模块类数据结构的趋势或规律,将看似无关的程序模块类相关联,有助于我们理解完整程序的功能和目的,而且,各程序模块类之间结构关系在后续处理下也有保持不变的属性。我们给出了程序模块类空间的数学定义和相关推论,在考虑程序整体和局部时利于我们进行比较,以及使用哪些可视化表示。The program module class topological space shows the trend or regularity of the program module class data structure, and associates seemingly unrelated program module classes, which helps us understand the function and purpose of the complete program. Moreover, the structural relationship between program module classes also has the property of remaining unchanged under subsequent processing. We give the mathematical definition and related inferences of the program module class space, which helps us compare when considering the whole and part of the program, and what visual representations to use.
思维的概括性表现在它对一类事物非本质属性的摒弃和对其共同本质特征的反映。根据凭借物和功能目的的不同,程序模块类可以分为有限多个,我们可以推出如下:The generality of thinking is reflected in its rejection of non-essential attributes of a class of things and its reflection of their common essential characteristics. According to the different objects and functional purposes, the program module class can be divided into a finite number, and we can deduce the following:
定义5:(程序模块类集合)如果Y是包含n个程序模块类的有限集,则称Y的阶为n,记为:|Y|=n,或Yn.Definition 5: (Set of program module classes) If Y is a finite set of n program module classes, then the order of Y is called n, denoted by: |Y| = n, or Y n .
在前述的拓扑空间定义的基础上,我们可以详细给出程序模块类拓扑空间的定义。Based on the above-mentioned definition of topological space, we can give a detailed definition of program module class topological space.
定义6:(程序模块类拓扑空间)我们定义程序模块类拓扑空间的开集为可数个程序模块类的集合,程序模块类拓扑空间为即 Definition 6: (Program module class topological space) We define the open set of the program module class topological space as the set of countable program module classes. The program module class topological space is Right now
对于这个新定义的开集和程序拓扑空间,下面我们验证拓扑空间的三条性质,从而说明我们这样定义的程序模块类拓扑空间是良定义的。For this newly defined open set and program topological space, we will verify the three properties of the topological space below, thereby demonstrating that the program module class topological space we defined in this way is well-defined.
(i)由于程序模块类总数是可数个,故我们可以得出程序模块类集合由定义有, (i) Since the total number of program module classes is countable, we can derive the set of program module classes By definition,
(ii)设A和B是上述定义的中的两个不同的开集,那么A∩B也为程序模块类的集合,且其中含有可数个程序模块类,从而符合上述的开集定义;(ii) Let A and B be the above definitions. If A∩B is two different open sets in , then A∩B is also a set of program module classes, and it contains countable program module classes, thus meeting the above definition of open sets;
(iii)任给程序模块类拓扑空间的子集 也是程序模块类的集合,并且中的程序模块类个数不多于程序拓扑空间中程序模块类的个数,从而也是可数个程序模块类的集合,从而 (iii) Any subset of the topological space of program modules is also a collection of program module classes, and The number of program module classes in is no more than the number of program module classes in the program topological space, so is also a countable set of program module classes, so
这样,我们证明了定义3中的程序模块类拓扑空间确实具有拓扑结构,从而是一个拓扑空间。In this way, we prove that the program module class topological space in Definition 3 does have a topological structure and is therefore a topological space.
定义7:(拓扑的基)设(Yn,τ)为一个类空间,如果对于都可以表示为δ中某些程序模块类的并,则称δ为拓扑τ的一个基。Definition 7: (Topological basis) Let (Y n ,τ) be a class space, If for can all be expressed as the union of certain program module classes in δ, then δ is called a basis of the topology τ.
程序模块类及其类空间的定义是显然的;每个程序模块都可以找到与之对应的程序模块类。但完整的程序往往是多个程序的有序结合,按程序的内在联系把整个事物在思维中再现出来。没有综合,程序思维的信息材料是零碎、片断的,不能统一为整体,也难以对各个部分、侧面和属性有确切的了解。若考虑程序模块类集Yn分类与综合,我们先有如下定义:The definition of program module class and its class space is obvious; each program module can find its corresponding program module class. However, a complete program is often an orderly combination of multiple programs, and the whole thing is reproduced in the mind according to the internal connection of the program. Without synthesis, the information material of program thinking is fragmentary and fragmentary, and cannot be unified into a whole. It is also difficult to have a precise understanding of each part, aspect and attribute. If we consider the classification and synthesis of the program module class set Yn , we first have the following definition:
定义8:(分割)设Yn为一个类集合,n≥2,如果A,B为Y的非空程序模块类集,且满足:Definition 8: (Partition) Let Yn be a class set, n ≥ 2, if A, B are non-empty program module class sets of Y and satisfy:
则称{A,B}为Yn的一个分割。将Yn上的所有可能的分割的数目记为:y(n)。由分割的意义我们可以得到下面的推论:Then {A,B} is called a partition of Y n . The number of all possible partitions on Y n is recorded as: y(n). From the meaning of partition, we can get the following inference:
推论:若τ是Yn上的拓扑,它由四个集合组成:Corollary: If τ is a topology on Yn , it consists of four sets:
A,B为Yn的非空分类集,两者不相等,则A,B必满足条件:A and B are non-empty classification sets of Y n . If they are not equal, then A and B must satisfy the following conditions:
要么集族{A,B}为Yn的一个分割;要么τ按集合包含关系成为全序组:或 Either the set {A, B} is a partition of Y n ; or τ becomes a total ordered group according to the set inclusion relation: or
类空间的一个特点是不存在程序模块类距离的概念,反之点间关系要在其他原理的基础上建立。类空间使用的程序模块类本身是集,因此表现出各种特性,这在描述问题时很有用。A feature of class space is that there is no concept of distance between program modules, instead the relationship between points is established on the basis of other principles. The program module classes used in class space are sets themselves, so they exhibit various characteristics, which are very useful in describing problems.
在设计程序的思维中,很重要的一点是,具有对程序特点进行数量评估和对与它的变换及其他程序有关的定量特征进行评估的能力。类空间就是破坏某些思维逻辑和建立新的思维逻辑。如果逻辑不发生改变,则从数学上的拓扑观点来看就是没有转变。运用类空间就有可能研究程序思路,评价程序的复杂性,建立程序之间的新关系,而程序的拓扑决定了它们的实际性质。研究程序具体功能时运用类空间也很有用。In the thinking of designing programs, it is very important to have the ability to quantitatively evaluate the characteristics of the program and the quantitative characteristics related to its transformation and other programs. Class space is to destroy certain thinking logics and establish new thinking logics. If the logic does not change, there is no transformation from the mathematical topological point of view. Using class space, it is possible to study program ideas, evaluate the complexity of programs, and establish new relationships between programs, and the topology of programs determines their actual nature. Using class space is also useful when studying the specific functions of programs.
(三)序性分类算子和序点判断算子(III) Sequence Classification Operator and Sequence Point Judgment Operator
1、序性分类算子1. Sequential classification operator
在拓扑空间的基础上,我们利用拓扑空间提供的便利性,针对程序进行序性分类,从考虑全部的程序转换到考虑其类别,这提供了一个有价值的结构。Based on the topological space, we use the convenience provided by the topological space to classify programs sequentially, transforming from considering all programs to considering their categories, which provides a valuable structure.
我们需要判断一个程序的类型,需要建立程序空间到类空间的映射,即已知为程序拓扑空间,Y为程序模块类拓扑空间,Xi为程序空间下的伪基底,Yj是类空间下的伪基底,在此基础上我们给出伪基底和序性分类算子的定义如下:We need to determine the type of a program and establish a mapping from program space to class space. is the program topological space, Y is the program module class topological space, Xi is the pseudo-basis under the program space, and Yj is the pseudo-basis under the class space. On this basis, we give the definitions of the pseudo-basis and the sequential classification operator as follows:
定义9:(伪基底)为在程序空间和程序模块类空间下,要求它们为特征无关的程序模块和程序模块类。Definition 9: (Pseudo-basis) is a requirement that program modules and program module classes are feature-independent in program space and program module class space.
其中,in,
{Yj}表示:{判断;识别;设置;获取;创造;改造;转换;计算;查找;保存;加载;......};{Y j } means: {judge; identify; set; obtain; create; transform; convert; calculate; search; save; load; ...};
{Xi}表示:{程序模块}。{X i } means: {program module}.
定义10:(序性分类算子)Ti表示将Xi映射到类空间伪基底Yj:TiXi=Yj.Definition 10: (Order classification operator) Ti represents the mapping of Xi to the pseudo-basis Yj of the class space: Ti Xi = Yj .
我们将程序模块序性分类的过程不能用一个简单的数学过程描述,一部分的程序模块序性分类具有一个标准,另一部分的模块序性分类又具有一个标准,且这些标准不能用数学形式的算子表达出来,超出一般算子的定义,需要重新定义和创造新的运算符。The process of sequentially classifying program modules cannot be described by a simple mathematical process. The sequential classification of one part of the program modules has one standard, and the sequential classification of another part of the modules has another standard. Moreover, these standards cannot be expressed by mathematical operators, which goes beyond the definition of general operators and requires redefinition and creation of new operators.
假设我们将算子看作一个集合,即构建一个算子空间,我们研究由算子组成的空间的性质,能得到从局部的考虑到全局到考虑的一个转换。Assuming that we regard the operator as a set, that is, construct an operator space, we study the properties of the space composed of operators and obtain a transformation from local consideration to global consideration.
定义11:(序性分类算子空间)将序性分类算子看作一个元素,构成一个新的算子空间:表示从到Y的全体序性分类算子,对于任给的其不满足:Definition 11: (Order classification operator space) The order classification operator is regarded as an element to form a new operator space: Indicates from To all ordinal classification operators of Y, for any given It does not satisfy:
(A+B)(X)=AX+BX;(A+B)(X)=AX+BX;
(αA)(X)=αAx.(αA)(X)=αAx.
即为非线性算子空间。同时,这里我们也给出了全体算子集的表示。That is the nonlinear operator space. At the same time, we also give the representation of the entire operator set.
2、序点判断算子2. Sequence point judgment operator
在对程序模块进行序性分类的同时,我们还需要对程序模块进行一些特殊的判断,这些判断可以帮助我们找出哪些程序模块可以作为一段程序的起点或者终点,对于这类程序模块我们定义如下:While classifying the program modules sequentially, we also need to make some special judgments on the program modules. These judgments can help us find out which program modules can be used as the starting point or end point of a program. For this type of program modules, we define them as follows:
定义12:(序起点)对于一段具有完整功能模块的程序,我们定义它的第一个程序模块为序起点。Definition 12: (Sequence starting point) For a program with complete functional modules, we define its first program module as the sequence starting point.
定义13:(序终点)对于一段具有完整功能模块的程序,我们定义它的最后一个程序模块为序终点。Definition 13: (Sequence end point) For a program with complete functional modules, we define its last program module as the sequence end point.
序起点和序终点统称为序点,序点的存在,可以帮助我们更为迅速快捷地提取程序功能模块,因为一个完整的功能模块,其必定是以序起点为起点,以序终点为终点的。对此,我们考虑建立一个序点判断算子来帮助我们判断某个程序模块为序点。The sequence start point and sequence end point are collectively called sequence points. The existence of sequence points can help us extract program function modules more quickly and efficiently, because a complete function module must start from the sequence start point and end at the sequence end point. In this regard, we consider establishing a sequence point judgment operator to help us determine whether a program module is a sequence point.
首先,一般算子要在赋范空间中讨论,然而,前面定义的空间的性质里没有给出统一的度量,也不具有线性空间的性质。因此,这里定义的算子不具有线性性。同时,这里的算子是无界的,非线性的,非连续的。我们这里定义的算子可以叫做“伪算子”,或者“广义算子”。它具有算子的映射等功能,且是在非线性空间下讨论。First of all, general operators should be discussed in normed spaces. However, the properties of the space defined above do not give a unified metric, nor do they have the properties of linear spaces. Therefore, the operator defined here is not linear. At the same time, the operator here is unbounded, nonlinear, and discontinuous. The operator we define here can be called a "pseudo-operator" or a "generalized operator". It has functions such as operator mapping and is discussed in a nonlinear space.
定义14:(序点判断算子)定义算子M用以判断及分类序起点、序终点、余点(既不为序起点也不为序终点的程序模块叫作余点)。具体来说:算子M分别作用在待判定元素X上,其中X是集合中任意一个模块;算子M作用在元素上,若该元素满足三类中的任一序点,则输出为1.Definition 14: (Sequence point judgment operator) Define operator M to judge and classify sequence starting point, sequence end point, and remainder point (a program module that is neither a sequence starting point nor a sequence end point is called a remainder point). Specifically: Operator M acts on the element to be judged X, where X is any module in the set; Operator M acts on an element, and if the element satisfies any sequence point in the three categories, the output is 1.
例如:M(X)=(1,0,1)T则判断该元素X既可以作为序起点也可以作为序终点,M(Y)=(1,0,0)T则判断该元素X可以作为序起点但不可以作为序终点,M(Z)=(0,1,0)T则判断该元素X既不可以作为序起点也不可以作为序终点,这里的输出形式用向量表示。由此可见,算子作用在任一元素上,得到的结果是线性的,这是它的特点。For example: M(X)=(1,0,1) T determines that the element X can be used as both the starting point and the end point of the sequence, M(Y)=(1,0,0) T determines that the element X can be used as the starting point of the sequence but not as the end point of the sequence, and M(Z)=(0,1,0) T determines that the element X can neither be used as the starting point nor as the end point of the sequence. The output form here is represented by a vector. It can be seen that when the operator acts on any element, the result obtained is linear, which is its characteristic.
这里我们可以看出,一个程序模块既有可能作为序起点,也有可能作为序终点。通过观察序点判断算子输出的向量,我们可以分析其不同分量的数值来判断对应的程序模块是否为序起(终)点。Here we can see that a program module can be used as both a sequence start point and a sequence end point. By observing the vector output by the sequence point judgment operator, we can analyze the values of its different components to determine whether the corresponding program module is a sequence start (end) point.
三、确定颗粒度程序模块的序化组接3. Determine the sequential connection of granular program modules
在程序模块拓扑空间与程序模块类拓扑空间的基础上,我们采用序性分类算子对程序模块拓扑空间中的程序模块进行序性分类,使能更好地建立程序模块间的“序关系”;基于程序模块间的序关系,我们便可确定颗粒度程序模块的序化组接,从而实现对整个AI系统功能模块按一定颗粒度进行分级和提取的目的。On the basis of the program module topological space and the program module class topological space, we use the sequential classification operator to perform sequential classification on the program modules in the program module topological space, so as to better establish the "sequential relationship" between program modules; based on the sequential relationship between program modules, we can determine the sequential grouping of granular program modules, thereby achieving the purpose of grading and extracting the functional modules of the entire AI system according to a certain granularity.
对于序关系,我们都熟悉有如整数、有理数、实数那样“完全顺次有序”的集合,在这样的集合中,任意两个成员之间的关系都是“有序的”,也就是可以比较大小的。然而,客观实际中,这种“完全顺序”的有序集合还是过于理想了,不这么“完美”的、“部分有序”的集合更为普遍。这就是如下的:As for order relations, we are all familiar with "completely sequentially ordered" sets such as integers, rational numbers, and real numbers. In such sets, the relationship between any two members is "ordered", that is, the size can be compared. However, in objective reality, this "completely sequential" ordered set is still too ideal, and less "perfect" and "partially ordered" sets are more common. This is as follows:
偏序:若P是一个集合,P上的二元关系<称为一个偏序关系,如果满足:Partial order: If P is a set, a binary relation < on P is called a partial order if it satisfies:
(i)自反性: (i) Reflexivity:
(ii)反对称性: (ii) Antisymmetry:
(iii)传递性:这时候称(P,<)是一个偏序集。对于任意的a,b∈P,若a<b,则读作“a含于b″或者“a小于等于b″.(iii) Transitivity: At this time, (P, <) is called a partially ordered set. For any a, b∈P, if a < b, it is read as "a is contained in b" or "a is less than or equal to b".
从以上定义不难看出,偏序保留了全序中常见常用的“自反性”、“反对称性”和“传递性”,去掉了“任意两个对象都可比较大小”的“完全性”。虽然偏序比全序具有更强的包容性,但是将偏序作为程序模块间的序关系仍然存在着许多矛盾与问题。对此,我们假设所有程序模块组成了一个存在二元关系(P,<)的偏序集合P,这里的<表示程序的运行顺序,对于任意的Xi,Xj∈P,我们把Xi<Xj读作“先运行Xj再运行Xi”,接下来我们将证明集合P上的偏序关系不成立,具体证明如下:From the above definition, it is not difficult to see that the partial order retains the commonly used "reflexivity", "antisymmetry" and "transitivity" in the total order, and removes the "completeness" of "any two objects can be compared in size". Although the partial order is more inclusive than the total order, there are still many contradictions and problems in using the partial order as the order relationship between program modules. For this, we assume that all program modules form a partial order set P with a binary relationship (P, <), where < represents the running order of the program. For any Xi , Xj ∈P, we read Xi < Xj as "run Xj first and then run Xi ". Next, we will prove that the partial order relationship on the set P does not hold. The specific proof is as follows:
(i)不满足自反性(i) Not satisfying reflexivity
证明:我们任选判断类中的任一程序模块Xi,Xi∈P由自反性Proof: We randomly judge any program module Xi in the class, Xi∈P by reflexivity
可知,Xi<Xi成立,则Xi<Xi表示连续进行两次判断It can be seen that Xi < Xi holds true, then Xi < Xi means two consecutive judgments
操作成立。The operation is established.
然而在实际运行中,连续执行两次判断操作是没有意义的,However, in actual operation, it is meaningless to perform two consecutive judgment operations.
故Xi<Xi在实际应用中不成立。Therefore, Xi < Xi does not hold true in practical applications.
故程序模块间的序关系不满足自反性。Therefore, the order relationship between program modules does not satisfy reflexivity.
(ii)不满足反对称性(ii) Antisymmetry is not satisfied
证明:我们任选程序模块Xi与Xj,Xi,Xj∈P,Proof: We choose any program modules Xi and Xj , Xi , Xj∈P ,
由反对称性可知,From the antisymmetry, we can see that
则Xi<Xj表示“先运行Xj再执行Xi”成立,Then Xi < Xj means "run Xj first and then execute Xi " is established.
Xj<Xi表示“先运行Xi再执行Xj”成立,X j <X i means that “first run Xi and then execute X j ” is established.
然而在实际运行中,两个程序可交换执行顺序并不代表However, in actual operation, the fact that two programs can be executed in an interchangeable order does not mean that
这两个程序有相同功能,These two programs have the same functionality.
故Xi=Xj在实际应用中并不总是成立。Therefore, Xi = Xj is not always true in practical applications.
故程序模块间的序关系不满足反对称性。Therefore, the order relationship between program modules does not satisfy antisymmetry.
(iii)不满足传递性(iii) Transitivity is not satisfied
证明:我们任选程序模块Xi,Xj,Xk,Xi,Xj,Xk∈P,Proof: We choose any program module Xi , Xj , Xk , Xi , Xj , Xk∈P ,
由传递性可知, From the transitivity, we know that
则Xi<Xj表示“先运行Xj再执行Xi”成立,Then Xi < Xj means "run Xj first and then execute Xi " is established.
Xj<Xk表示“先运行Xk再执行Xj”成立。X j <X k means that “execute X k first and then execute X j ” holds true.
然而此时,“先运行Xk再执行Xi”,程序可能会报错,However, at this time, "run X k first and then execute Xi ", the program may report an error.
故Xi<Xk在实际应用中并不总是成立。Therefore, Xi < Xk is not always true in practical applications.
故程序模块间的序关系不满足传递性。Therefore, the order relationship between program modules does not satisfy transitivity.
由上述证明我们可以看出,偏序关系是难以运用于刻画一段程序的运行过程的。因此,我们尝试考虑包容度更高的预序,但是由预序的定义可知,预序虽然不用满足反对称性,但仍旧需要满足自反性和传递性,这表明将预序作为程序模块间的序关系也是存在着矛盾与问题的。至此,我们注意到传统的序关系几乎都无法用于刻画程序的运行。From the above proof, we can see that partial order relations are difficult to use to describe the running process of a program. Therefore, we try to consider a more inclusive preorder, but from the definition of preorder, although the preorder does not need to satisfy antisymmetry, it still needs to satisfy reflexivity and transitivity , which shows that using preorder as an order relation between program modules is also contradictory and problematic. So far, we have noticed that traditional order relations can hardly be used to describe the running of a program.
为此,我们考虑程序运行时的特点:一是程序模块必须按顺序执行,不同的执行顺序可能具有不同的功能;二是每个程序模块在程序运行时都是不可或缺的,如若缺少了某个程序模块,即使剩余的程序模块按顺序执行,也可能发生错误。基于此,我们建立了一种新的序关系,其定义如下:To this end, we consider the characteristics of program runtime: first, program modules must be executed in sequence, and different execution orders may have different functions; second, each program module is indispensable when the program is running. If a program module is missing, errors may occur even if the remaining program modules are executed in sequence. Based on this, we established a new order relationship, which is defined as follows:
定义15:(紧序)设为程序拓扑空间中的n(n≥1且)个程序模块,若这n个程序模块按顺序执行后,程序可以运行,则我们称依次形成了紧序关系,记作 Definition 15: (tight order) Let is n in the program topological space (n≥1 and ) program modules, if these n program modules After executing in sequence, the program can run, then we call They form a tight order relationship, denoted by
例如:设X1,X2,X3可按如下顺序执行:For example, suppose X 1 , X 2 , and X 3 can be executed in the following order:
图2紧序示例1Figure 2 Tight sequence example 1
则X1,X2,X3可满足紧序关系X1→X2→X3;同时若X1,X2,X3可按另一顺序执行如下:Then X 1 , X 2 , and X 3 can satisfy the tight order relationship X 1 →X 2 →X 3 ; at the same time, if X 1 , X 2 , and X 3 can be executed in another order as follows:
图3紧序示例2Figure 3 Tight sequence example 2
则X1,X2,X3可也满足紧序关系X2→X3→X1,注意,上述两个紧序是完全不同的紧序。Then X 1 , X 2 , and X 3 can also satisfy the tight order relation X 2 →X 3 →X 1 . Note that the above two tight orders are completely different tight orders.
在紧序定义的基础上,我们将紧序的数理结论了进行了更为广阔的延拓,给出了一些必要的数学定义,这些定义可以让紧序可以更为精细地对程序的运行进行刻画。这使得我们可以建立相应颗粒度程序模块的序化组接,从而在提取功能模块时,更为准确地获取我们想要的功能模块。故,这些必要的数学定义我们给出如下:Based on the definition of tight order, we extend the mathematical conclusion of tight order more extensively and give some necessary mathematical definitions, which can make tight order describe the operation of program more finely. This allows us to establish the sequenced combination of program modules with corresponding granularity, so as to obtain the functional modules we want more accurately when extracting functional modules. Therefore, we give these necessary mathematical definitions as follows:
定义16:(子紧序)设为程序拓扑空间中的n个程序模块,且是一个紧序,若有s(1≤s≤n且)个程序模块满足紧序关系 则称为的子紧序。额外的,若还成立s<n,则称为的真子紧序。Definition 16: (Subtight Sequence) Let are n program modules in the program topological space, and is a tight sequence if there is s(1≤s≤n and ) program modules Satisfy the tight order relation Then it is called for In addition, if s<n also holds, then we say for The true sub-tight order of .
例如:设有如下紧序:For example: Suppose there is the following tight sequence:
(i)X1→X2→X3→X4→X5 (i)X 1 →X 2 →X 3 →X 4 →X 5
图4紧序与子紧序Figure 4 Tight sequence and subtight sequence
则得X1,X2,X3,X4,X5,X1→X2,X2→X3,X3→X4,X4→X5,X1→X2→X3,X2→X3→X4,X3→X4→X5,X1→X2→X3→X4,X2→X3→X4→X5是X1→X2→X3→X4→X5的子紧序。 Then X1 , X2 , X3 , X4 , X5 , X1 → X2 ,X2→ X3 , X3 →X4,X4→ X5 ,X1→X2→ X3 , X2 → X3 → X4 , X3 → X4 → X5 ,X1→X2→X3→X4,X2→X3 → X4 → X5 is a subtight order of X1 → X2 → X3 → X4 → X5 .
由上述例子注意到,一个紧序的子紧序不唯一,且若一个紧序中有n个程序模块,那么我们可以发现,它有n个极小紧序,n-1个含有两个程序模块的紧序,以此类推,由归纳可得,它的子紧序有个。从而我们说明了,一个由n个程序模块构成的紧序的子紧序有个。From the above examples, we can see that the sub-compact order of a compact order is not unique, and if a compact order has n program modules, then we can find that it has n minimal compact orders, n-1 compact orders containing two program modules, and so on. By induction, we can get that its sub-compact order has Thus, we show that a sub-tight sequence of a tight sequence consisting of n program modules has indivual.
定义17:(极小紧序)无真子紧序的紧序称为极小紧序(事实上,极小紧序就是一个程序模块)。Definition 17: (Minimal compact order) A compact order without a proper sub-compact order is called a minimal compact order (in fact, a minimal compact order is a program module).
定义18:(后继紧序)设为程序拓扑空间中的n+m个程序模块,且 都是紧序,若 也是紧序,则称是的后继紧序。Definition 18: (Successor Tight Order) Let are n+m program modules in the program topological space, and are all in tight order, if is also a tight sequence, then it is called yes The successor sequence.
例如:设有如下紧序:For example: Suppose there is the following tight sequence:
(i)X1→X2→X3→X4→X5 (i)X 1 →X 2 →X 3 →X 4 →X 5
图5紧序与后继紧序Figure 5 Tight sequence and subsequent tight sequence
则得X2→X3,X2→X3→X4,X2→X3→X4→X5是X1→X2→X3→X4→X5的后继紧序。Then X 2 →X 3 ,X 2 →X 3 →X 4 ,X 2 →X 3 →X 4 →X 5 are the successor tight sequences of X 1 →X 2 →X 3 →X 4 →X 5 .
由上述例子注意到,一个紧序的后继紧序不唯一。但同时,我们可以观察到,由于每一个独立的紧序所包含的元素是确定的,且这些元素间的序关系也都是确定的,所以对于每一个独立的紧序,其后继极小紧序是唯一的。如果我们更换了其后继极小紧序,那么得到的紧序与原来的紧序是相互独立的。From the above examples, we can notice that the successor tight sequence of a tight sequence is not unique. But at the same time, we can observe that since the elements contained in each independent tight sequence are certain, and the order relationship between these elements is also certain, for each independent tight sequence, its successor minimal tight sequence is unique. If we replace its successor minimal tight sequence, the resulting tight sequence is independent of the original tight sequence.
定义19:(极大紧序)无任何极小紧序作为其后继紧序,也无任何极小紧序以它为后继紧序。Definition 19: (Maximal compact sequence) There is no minimal compact sequence as its successor compact sequence, and there is no minimal compact sequence with it as its successor compact sequence.
例如:设有如下紧序:For example: Suppose there is the following tight sequence:
图6紧序与极大紧序Figure 6 Compact order and maximal compact order
则X1→X2→X3→X5→X7,X1→X2→X3→X6,X1→X2→X4是极大紧序。Then X 1 →X 2 →X 3 →X 5 →X 7 ,X 1 →X 2 →X 3 →X 6 ,X 1 →X 2 →X 4 are maximal compact sequences.
定义20:(紧序节点)若一个极小紧序有不止一个后继紧序,则称该极小紧序为紧序节点。Definition 20: (Tight-order node) If a minimal tight sequence has more than one successor tight sequence, then the minimal tight sequence is called a tight-order node.
例如:设有如下紧序:For example: Suppose there is the following tight sequence:
图7紧序及其节点Figure 7 Tight sequence and its nodes
则得X2,X3是紧序节点。Then X 2 and X 3 are tight sequence nodes.
不仅如此,紧序的存在,还可以帮助我们找到两个程序模块之间可能的关系,对此,我们给出了依紧序收敛的定义,具体如下:In addition, the existence of tight order can also help us find the possible relationship between two program modules. For this purpose, we give the definition of convergence according to tight order, as follows:
定义21:(依紧序收敛)对于程序拓扑空间中的两个程序模块Xi,Xj,若我们能找到一个紧序则称Xi依紧序收敛到Xj.Definition 21: (Convergence in tight order) For two program modules Xi , Xj in the program topology space, if we can find a tight order Then Xi is said to be in a tight order Converges to X j .
注意,可以使Xi收敛到Xj的紧序可能不止一个,如下例:Note that there may be more than one tight order that can make Xi converge to Xj , as in the following example:
例如:设有如下两个紧序:For example, there are two tight sequences as follows:
(i)X1→X2→X3 (i) X1 → X2 → X3
图8依紧序收敛示例1Figure 8 Convergence example 1 according to tight order
(ii)X1→X4→X3,如图9(ii) X 1 →X 4 →X 3 , as shown in Figure 9
则X1既依紧序X1→X2→X3收敛到X3,也依紧序X1→X4→X3 Then X1 converges to X3 according to the compact sequence X1 → X2 → X3 , and also converges to X3 according to the compact sequence X1 → X4 → X3.
收敛到X3.Converges to X 3 .
四、程序模块序化组接的功能合成提取4. Functional synthesis and extraction of program module sequence assembly
在建立并采用紧序确定了颗粒度程序模块的序化组接之后,我们便可在此基础上,对程序模块序化组接的功能合成进行提取,为后续的等效嵌入方法建立相应的基础。After establishing and using tight sequence to determine the sequential combination of granular program modules, we can extract the functional synthesis of the sequential combination of program modules on this basis, and establish the corresponding foundation for the subsequent equivalent embedding method.
要对程序模块序化组接的功能合成进行提取,便需寻找极大紧序;而对于任意一个程序,为寻找该程序中的极大紧序,我们将该程序中所有程序模块以及它们之间的紧序关系关系视作具有紧序关系的集合,称为紧序集。结合程序模块和紧序的定义,我们知道,紧序集是一个“树”,即不可能出现如图10所示;To extract the functional synthesis of the sequential combination of program modules, we need to find the maximum tight order; and for any program, in order to find the maximum tight order in the program, we regard all program modules in the program and the tight order relationship between them as a set with a tight order relationship, called a tight ordered set. Combining the definitions of program modules and tight order, we know that a tight ordered set is a "tree", that is, it is impossible to appear as shown in Figure 10;
对于任意一个紧序集我们可以证明必定存在极大紧序,这意味着对于任意程序,必定存在一个完整的功能模块,在此基础上,我们还可以可以证明更强的结论。For any compactly ordered set We can prove There must be a maximal tight order, which means that for any program, there must be a complete functional module. On this basis, we can also prove stronger conclusions.
定理2:给定紧序集则中的任意一个紧序必能在中扩充成一个极大紧序,即,中的任意一个紧序必定包含在中的一个极大紧序中。Theorem 2: Given a compactly ordered set but Any tight sequence in is expanded into a maximal compact sequence, that is, Any tight sequence in must be contained in In a maximally tight sequence.
证明:任取中的紧序 Proof: Any Tight order in
若有后继紧序 like There is a successor sequence
根据后继紧序的定义,According to the definition of successor tight order,
可得也是中的紧序,Available Too In the tight sequence,
由于中的程序模块个数是有限个,because The number of program modules in is finite.
由数学归纳法,By mathematical induction,
我们可以得到一个在中无后继紧序的紧序为We can get one in The tight sequence without a successor tight sequence is
且是它的子序,and is its subsequence,
同样地,若是中某个紧序的后继紧序,Similarly, if yes A tight sequence The successor sequence of
可得也是中的紧序,Available Too In the tight sequence,
由数学归纳法,By mathematical induction,
我们可以得到一个在中无后继紧序的紧序We can get one in There is no subsequent tight sequence in
综上所述我们得到了中的极大紧序In summary, we have obtained The maximal tight order in
且它以为子序。And it is For subsequence.
从而定理得证。Thus the theorem is proved.
上述定理说明,存在紧序的紧序集中一定存在极大紧序,而由于我们定义的紧序集中一定存在紧序(此处不考虑是空集),从而任意一个紧序集中一定存在极大紧序,这也表明对于任意一段可以独立运行的程序,我们可以从其中找到至少一个完整的功能模块。注意到,虽然在定理的文字中只说明了在紧序集里,极大紧序的存在性,并未指出其具体表现形式和存在数量。但我们在定理的证明过程给出了一种用数学归纳法构造极大紧序的方法,这将帮助我们从一个程序中筛选出具有的完整功能的程序模块,即为极大紧序。The above theorem shows that there must be a maximal compact order in the compact order set with a compact order, and since there must be a compact order in the compact order set we defined (not considered here is an empty set), so there must be a maximal tight sequence in any compactly ordered set, which also shows that for any program that can run independently, we can find at least one complete functional module in it. Note that although the theorem only states the existence of a maximal tight sequence in a compactly ordered set, it does not specify its specific form and number of existence. However, in the proof of the theorem, we give a method to construct a maximal tight sequence using mathematical induction, which will help us screen out program modules with complete functions from a program, namely the maximal tight sequence.
我们需要将程序模块进行有机组合形成功能模块。由功能模块和程序模块的划分标准,问题转化为在紧序集中找极大紧序,下面我们将针对不同情况给出相应的方法。We need to organically combine program modules to form functional modules. Based on the division criteria of functional modules and program modules, the problem is transformed into finding the maximum tight sequence in the tight sequence set. Below we will give corresponding methods for different situations.
在面对结构较为简单,整体复杂度较低的程序流图时,我们可以采用数学归纳法来一步一步地寻找出极大紧序,这个过程可以帮助我们更准确地分析整个程序流图的几何构造,了解程序的几何运行逻辑,并在最终得到若干个极大紧序,也是我们所需要的的极大紧序,具体的数学归纳方法在定理2中已经给出,其大致思想如下:When faced with a program flow graph with a relatively simple structure and low overall complexity, we can use mathematical induction to find the maximum tight order step by step. This process can help us more accurately analyze the geometric structure of the entire program flow graph, understand the geometric operation logic of the program, and finally obtain several maximum tight orders, which are also the maximum tight orders we need. The specific mathematical induction method has been given in Theorem 2. The general idea is as follows:
为了用数学归纳法找到极大紧序,我们首先给出如下定义。In order to find the maximal compact order by mathematical induction, we first give the following definition.
定义22:(紧序集截止点)在一个紧序集中,若一个极小紧序没有后继紧序,定义该极小紧序为紧序集截止点。Definition 22: (Tight-ordered set cutoff point) In a tight-ordered set, if a minimal tight sequence has no successor tight sequence, the minimal tight sequence is defined as the tight-ordered set cutoff point.
定义23:(紧序集起始点)若一个极小紧序没有以它为后继紧序的紧序,定义该极小紧序为紧序集起始点。Definition 23: (Starting point of a compact order set) If a minimal compact order has no compact order with it as its successor, define the minimal compact order as the starting point of the compact order set.
特别地,在实际情况中,紧序集起始点的输入即为整个程序的输入,紧序集截止点的输出即为整个程序的输出。In particular, in actual situations, the input of the starting point of the compact order set is the input of the entire program, and the output of the end point of the compact order set is the output of the entire program.
对于有限多个程序模块及其序关系构成的紧序集,我们考虑数学归纳法,但从紧序集起始点根据紧序关系逐个归纳到紧序集截止点容易出现结点取舍问题,从而我们考虑从紧序集截止点逐个归纳到紧序集起始点。由下面定理可知,这样的紧序就是我们需要寻找的极大紧序。For a compact set consisting of a finite number of program modules and their order relations, we consider mathematical induction, but the node selection problem is prone to occur when inducing from the starting point of the compact set to the end point of the compact set according to the compact order relation. Therefore, we consider inducing from the end point of the compact set to the starting point of the compact set. From the following theorem, we can see that such a compact order is the maximal compact order we need to find.
定理3:一个紧序是极大紧序的充要条件为该紧序从紧序集起始点收敛到紧序集截止点。Theorem 3: A compact order is a maximal compact order if and only if it converges from the starting point of the compact order set to the end point of the compact order set.
证明:一个紧序是极大紧序;Proof: A compact sequence is a maximal compact sequence;
它没有后继紧序,也没有任何紧序以它为后继紧序; It has no successor tight sequence, and no tight sequence has it as a successor tight sequence;
它包含一个紧序集起始点和一个紧序集截至点; It contains a compact-order set starting point and a compact-order set ending point;
它从紧序集起始点收敛到紧序集截止点。 It converges from the compact-order set start point to the compact-order set end point.
从而定理证毕。Thus the theorem is proved.
例如:设a、b、c、d、e、f、g、h、i、j、k为程序拓扑空间中的程序模块且有如下流程图11程序模块紧序集示例;For example: let a, b, c, d, e, f, g, h, i, j, k be program modules in the program topological space and there is the following flow chart 11 program module tight ordered set example;
将上述流程图视作紧序集,我们可以知道,a是紧序集起始点,e、h、k、j是紧序集截止点。Considering the above flowchart as a compactly ordered set, we can know that a is the starting point of the compactly ordered set, and e, h, k, and j are the end points of the compactly ordered set.
e是d的后继紧序,d是c的后继紧序,c是b的后继紧序,b是a的后继紧序,从而我们得到一个从a依紧序收敛到e的紧序a→b→c→d→e,即为一个极大紧序。e is the successor compact sequence of d, d is the successor compact sequence of c, c is the successor compact sequence of b, and b is the successor compact sequence of a. Thus we get a compact sequence a→b→c→d→e that converges from a to e in compact sequence, which is a maximal compact sequence.
h是g的后继紧序,g是f的后继紧序,f是b的后继紧序,b是a的后继紧序,从而我们得到一个从a依紧序收敛到h的紧序a→b→f→g→h,即为一个极大紧序。h is the successor compact sequence of g, g is the successor compact sequence of f, f is the successor compact sequence of b, and b is the successor compact sequence of a. Thus we get a compact sequence a→b→f→g→h that converges from a to h in compact sequence, which is a maximal compact sequence.
k是i的后继紧序,i是g的后继紧序,g是f的后继紧序,f是b的后继紧序,b是a的后继紧序,从而我们得到一个从a依紧序收敛到k的紧序a→b→f→g→i→k,即为一个极大紧序。k is the successor compact sequence of i, i is the successor compact sequence of g, g is the successor compact sequence of f, f is the successor compact sequence of b, and b is the successor compact sequence of a. Thus we get a compact sequence a→b→f→g→i→k that converges from a to k in compact sequence, which is a maximal compact sequence.
j是i的后继紧序,i是g的后继紧序,g是f的后继紧序,f是b的后继紧序,b是a的后继紧序,从而我们得到一个从a依紧序收敛到k的紧序a→b→f→g→i→j,即为一个极大紧序。j is the successor compact sequence of i, i is the successor compact sequence of g, g is the successor compact sequence of f, f is the successor compact sequence of b, and b is the successor compact sequence of a. Thus we get a compact sequence a→b→f→g→i→j that converges from a to k in compact sequence, which is a maximal compact sequence.
观察上述数学归纳法我们不难发现,数学归纳法在寻找极大紧序时具有极强的规律性,其许多操作都是高度重复的,这是完全可以用计算机来代替实现的,这也表明,数学归纳法可以很好地算法化。By observing the above mathematical induction method, it is not difficult to find that mathematical induction method has extremely strong regularity in finding the maximal tight sequence, and many of its operations are highly repetitive, which can be completely replaced by computers. This also shows that mathematical induction method can be well algorithmized.
同时,我们也可以跳出几何的局限,从代数的角度出发,通过紧序间所存在的运算关系,来寻找出极大紧序,具体方法如下:At the same time, we can also jump out of the limitations of geometry and start from the perspective of algebra to find the maximum compact order through the operational relationship between compact orders. The specific method is as follows:
回顾在程序拓扑空间中我们给出的定义及其性质:Recall the definition and properties we gave in the program topology space:
设为程序拓扑空间程序模块串行运算,为程序模块并行运算。其中,满足交换律、结合律,和满足左分配律,但不满足交换律、结合律。set up It is the serial operation of the program module of the program topology space. is the parallel operation of program modules. Satisfies the commutative and associative laws. and satisfies the left distributive law, but It does not satisfy the commutative and associative laws.
有了上述定义和性质,我们可以将程序模块及其紧序关系构成的紧序集用这两种运算表示出来。从而我们得到关于程序模块表达式,再利用和的左分配律将之进行展开,得到一个任意一个都不在任意一个括号里面的表达式。而这些所连接的只有的表达式就是我们要找的极大紧序。With the above definitions and properties, we can use these two operations to express the tight-ordered set composed of program modules and their tight-order relations. Thus, we get the expression of program modules, and then use and Expand it by the left distributive law to obtain an arbitrary are not inside any of the parentheses. The only connected The expression is the maximal compact order we are looking for.
例如:设a、b、c、d、e、f、g、h、i、j、k为程序拓扑空间中的程序模块且有如下流程图12;For example: suppose a, b, c, d, e, f, g, h, i, j, k are program modules in the program topological space and there is the following flow chart 12;
我们可以将该程序图用程序拓扑空间中的和表示如下:We can use the program graph in the program topological space and It is expressed as follows:
将上式展开:Expand the above formula:
从而得到四个极大紧序:Thus we get four maximal tight sequences:
a→b→c→d→ea→b→c→d→e
a→b→f→g→ha→b→f→g→h
a→b→f→g→i→ka→b→f→g→i→k
a→b→f→g→i→ja→b→f→g→i→j
我们可以发现,上述两种算法都可以遍历出所有可能的极大紧序。We can find that the above two algorithms can traverse all possible maximal tight orders.
基于上述两种方法,我们便可以根据不同情形,选择不同算法来寻找我们需要的极大紧序,在寻找到极大紧序后,我们也就完成了相应程序模块序化组接的功能合成提取。在此基础上,我们就可以进一步研究程序模块序化组接功能合成的等效嵌入。Based on the above two methods, we can choose different algorithms to find the maximum tight sequence we need according to different situations. After finding the maximum tight sequence, we have completed the functional synthesis extraction of the corresponding program module serialization group. On this basis, we can further study the equivalent embedding of the functional synthesis of the program module serialization group.
五、程序模块序化组接功能合成的等效嵌入5. Equivalent embedding of program module serialization and functional synthesis
(一)功能合成的等效嵌入方法(I) Equivalent embedding method for functional synthesis
为了完成程序模块序化组接功能合成的等效嵌入,我们首先观察了整个AI系统流图的结构,并构建了程序模块和程序模块类的集合,同时讨论了集合的性质,然后在集合的基础上,进一步定义了新的特殊拓扑空间。我们通过研究这些拓扑空间的特殊结构与相关性质,在这种拓扑空间的基础上,给出了序性分类算子和序点判断算子的定义并最终确定了颗粒度程序模块的序性分类,给程序模块的序化组接构建了一个有规律的空间,使得我们可以避免从若干个杂乱无序的程序模块中去构造序关系。In order to complete the equivalent embedding of the function synthesis of the sequential assembly of program modules, we first observed the structure of the entire AI system flow chart, and constructed a set of program modules and program module classes, and discussed the properties of the set. Then, based on the set, we further defined a new special topological space. By studying the special structure and related properties of these topological spaces, we gave the definitions of the sequential classification operator and the sequence point judgment operator on the basis of this topological space and finally determined the sequential classification of granular program modules, and constructed a regular space for the sequential assembly of program modules, so that we can avoid constructing sequential relations from several disordered program modules.
在采用序性分类算子与序点判断算子对程序模块进行了相应的序性分类与判断之后,我们进一步构建了程序模块间的序关系。我们首先考虑了全序、偏序和预序等传统的序关系,但是这些传统序关系在刻画程序运行时存在着许多本质矛盾,于是,我们针对程序模块必须按照特定逻辑顺序运行这一特点,以传统序关系的部分理论为基础,延拓出了专门用于描述程序模块间序关系的“紧序”的定义,并对其相关性质进行了一定的研究与分析。最终,我们通过紧序,对整个AI系统的结构关系进行了分析与抽象,完成了程序模块序化组接的功能合成提取。After using the sequence classification operator and the sequence point judgment operator to classify and judge the sequence of program modules, we further constructed the sequence relationship between program modules. We first considered traditional sequence relations such as total order, partial order and preorder, but these traditional sequence relations have many essential contradictions in describing program operation. Therefore, based on the characteristic that program modules must run in a specific logical order, we extended the definition of "tight order" specifically used to describe the sequence relationship between program modules based on some theories of traditional sequence relations, and conducted some research and analysis on its related properties. Finally, through the tight sequence, we analyzed and abstracted the structural relationship of the entire AI system and completed the functional synthesis extraction of the sequenced combination of program modules.
在完成了程序模块序化组接的功能合成提取后,我们以形式语义学为理论基础,进行了程序模块序化组接功能合成的等效嵌入。首先,我们利用形式语义将程序语言的语言成分抽象化。其次,在完成了程序语言的形式语义化后,我们给出了一个能够完整描述程序语言的形式语言。此处,我们不仅以抽象概括、归纳总结以及类比推导等数学方法,给出了表达式、状态和语句之间计算、转移以及归约的运算法则与映射规律,还对其终止性、最大性、可达性以及Church-Rosser性质等进行了证明,并形成了相应命题、定理、定义以及推论。利用这些性质,我们给出了程序模块序化组接功能合成的等效嵌入方法。After completing the functional synthesis extraction of the sequential assembly of program modules, we used formal semantics as the theoretical basis to carry out the equivalent embedding of the functional synthesis of the sequential assembly of program modules. First, we used formal semantics to abstract the language components of the program language. Secondly, after completing the formal semantics of the program language, we gave a formal language that can fully describe the program language. Here, we not only use mathematical methods such as abstract generalization, inductive summary and analogical deduction to give the operation rules and mapping rules for calculation, transfer and reduction between expressions, states and statements, but also prove its termination, maximality, reachability and Church-Rosser properties, and form corresponding propositions, theorems, definitions and inferences. Using these properties, we give an equivalent embedding method for the functional synthesis of the sequential assembly of program modules.
(二)功能合成的等效嵌入例示(II) Example of equivalent embedding of functional synthesis
在得到功能合成的等效嵌入方法后,为了进一步验证其正确性,同时展示此方法的优良性,我们需要选出一个形式具有代表性,复杂度适宜的代码作为例示,并采用等效嵌入方法对其进行等效嵌入,具体代码展示如图13,After obtaining the equivalent embedding method of functional synthesis, in order to further verify its correctness and demonstrate the excellence of this method, we need to select a code with a representative form and appropriate complexity as an example, and use the equivalent embedding method to embed it equivalently. The specific code is shown in Figure 13.
对于上述代码,其用Name表示数据、变量和对象;S表示语句;Blochi表示代码块。此段代码定义了一个“类”,并对这个“类”进行了初始化,同时定义了这个“类”的一个方法。对于这个代码,我们给出更为具体的解释如下:For the above code, Name is used to represent data, variables and objects; S is used to represent statements; and Bloch i is used to represent code blocks. This code defines a "class", initializes this "class", and defines a method of this "class". For this code, we give a more specific explanation as follows:
(i)若假设输入的数据格式为280×280×3,那么输入卷积层的信道个数(in_channels)为3.(i) If the input data format is assumed to be 280×280×3, then the number of channels in the input convolutional layer (in_channels) is 3.
(ii)对于卷积:Conv2d(in_channels,32,3,stride=1,padding=0,bias=False),括号内的内容依次为:输入卷积层数据的信道个数(标量),卷积层输出数据的信道个数为32(标量),卷积核的尺寸为3(标量),步长(stride)为2,填充(padding)为0偏置(bias)为不偏置。(ii) For convolution: Conv2d(in_channels,32,3,stride=1,padding=0,bias=False), the contents in the brackets are: the number of channels of the input convolution layer data (scalar), the number of channels of the convolution layer output data is 32 (scalar), the size of the convolution kernel is 3 (scalar), the stride is 2, the padding is 0, and the bias is no bias.
(iii)对于最大池化:nn.MaxPool2d(3,stride=2,padding=0),括号内的内容依次为:池化层的池化核尺寸为3(标量),步长(stride)为2,填充(padding)为0.(iii) For maximum pooling: nn.MaxPool2d(3, stride = 2, padding = 0), the contents in the brackets are: the pooling kernel size of the pooling layer is 3 (scalar), the stride is 2, and the padding is 0.
(iv)对于有序容器:nn.Sequential(Conv2d(160,64,1,stride=1,padding=0,bias=False),Conv2d(64,96,3,stride=1,padding=0,bias=False)),这个容器的内部情况如下所示:(iv) For the ordered container: nn.Sequential(Conv2d(160,64,1,stride=1,padding=0,bias=False),Conv2d(64,96,3,stride=1,padding=0,bias=False)), the internal situation of this container is as follows:
class name1():class name1():
def__init__():def__init__():
super(name1,self).__init__()super(name1,self).__init__()
self.name2=Conv2d(160,64,1,stride=1,padding=0,bias=False)self.name2=Conv2d(160,64,1,stride=1,padding=0,bias=False)
self.name3=Conv2d(64,96,3,stride=1,padding=0,bias=False)self.name3=Conv2d(64,96,3,stride=1,padding=0,bias=False)
def forward(self,input):def forward(self,input):
input=self.name2(input)input = self.name2(input)
input=self.name3(input)input = self.name3(input)
return inputreturn input
其中,name1,name1,name3代表由我们自己取名的对象,input表示由我们自己命名并输入的数据Among them, name1, name1, name3 represent objects named by ourselves, and input represents data named and entered by ourselves.
(v)对于张量拼接:torch.cat((x0,x1),dim=1),括号中的内容依次为:x0,x1为待拼接的两个张量,dim=1表示在维度1上对两个张量进行拼接。注意,在目前主流的语言中,程序从0开始计数。(v) For tensor concatenation: torch.cat((x0,x1), dim=1), the contents in the brackets are: x0, x1 are the two tensors to be concatenated, dim=1 means concatenating the two tensors in dimension 1. Note that in the current mainstream languages, programs start counting from 0.
对于上述代码,我们对其进行形式语义化。为了对其进行形式语义化,系统状态为s,我们首先假设For the above code, we formalize it. In order to formalize it, the system state is s, and we first assume
Name0≡Stem,Name1≡input_channels,Name3≡x,Name 0 ≡Stem,Name 1 ≡input_channels,Name 3 ≡x,
Name3,0≡x0,Name3,1≡x1.Name 3,0 ≡x 0 ,Name 3,1 ≡x 1 .
(i)结构语句(i) Structural statements
class Name0(nn.Module):Block1,设为B1;class Name 0 (nn.Module):Block 1 , set to B 1 ;
def__init__(self,Name1):Block2,设为B2;def__init__(self,Name 1 ):Block 2 , set to B 2 ;
def forward(self,Name3):Block3,设为B3;def forward(self,Name 3 ):Block 3 , set to B 3 ;
return Name3,设为B4.return Name 3 , set to B 4 .
其中Block1=B2;B3.Where Block 1 = B 2 ; B 3 .
(ii)原子语句(ii) Atomic Statements
super(Name0,self).__init__(),设为A1;super(Name 0 ,self).__init__(), set to A 1 ;
self.conv_namei=Conv2d(parametersi),设为Aconv,i;self.conv_name i =Conv2d(parameters i ), set to A conv,i ;
self.pool_namei=nn.Maxpool2d(parametersi),设为Apool,i;self.pool_name i =nn.Maxpool2d(parameters i ), set to A pool,i ;
self.mixed_namei=nn.Sequential(parametersi),设为Aseq,i.self.mixed_name i =nn.Sequential(parameters i ), set to A seq,i .
(iii)算术表达式(iii) Arithmetic expressions
value_name_i=self.conv_namei(value_name),设为aconv,i value_name_i=self.conv_name i (value_name), set to a conv,i
value_name_i=self.pool_namei(value_name),设为apool,i value_name_i=self.pool_name i (value_name), set to a pool,i
value_name_i=self.mixed_namei(value_name),设为aseq,i value_name_i=self.mixed_name i (value_name), set to a seq,i
value_name=torch.cat((value_name1,value_name2),dim=n),n∈N,设为a4.value_name=torch.cat((value_name 1 , value_name 2 ), dim=n), n∈N, set to a 4 .
那么,代码的运行过程用形式语义表达的运算转移过程如下:Then, the operation transfer process of the code running process expressed by formal semantics is as follows:
以及归约方式如下:And the reduction is as follows:
<B1,s>→<B2;B3,s1>.<B 1 ,s>→<B 2 ;B 3 ,s 1 >.
紧接着,我们便可以得到程序流图14,得到上述程序流图后,我们便可寻找其极大紧序,由于此代码仅为例示,其程序流图复杂度较低,我们可通过观察得到其两个极大紧序为分别为:Next, we can get the program flow chart 14. After getting the above program flow chart, we can find its maximum tight sequence. Since this code is only an example, the complexity of its program flow chart is relatively low. We can observe that its two maximum tight sequences are:
和and
于是,程序可以划分为两个功能模块的功能模块:构造网络节点和定义思维类型所对应的功能模块的输出结果。Therefore, the program can be divided into two functional modules: constructing network nodes and defining the output results of the functional modules corresponding to the thinking type.
首先,定义网络节点模块First, define the network node module
以及归约:And reduction:
于是,网络完成了方法的继承,接下来由于:So, the network completes the inheritance of methods, and then:
Block2=Aconv,1;Aconv,2;Aconv,3;Apool,1;Aconv,4;Aseq,1;Aseq,2;Aconv,5;Apool,2,Block 2 =A conv,1 ;A conv,2 ;A conv,3 ;A pool,1 ;A conv,4 ;A seq ,1 ;A seq,2 ;A conv,5 ;A pool,2 ,
从而得到Thus we get
以及归约:And reduction:
综上,构造网络节点的程序功能模块运算转为形式语义运算:In summary, the program function module operation of constructing network nodes is transformed into formal semantic operation:
并归约为形式语义模块:And reduced to formal semantic modules:
<B2,s1>→*s4.<B 2 ,s 1 >→ * s 4 .
这样的形式语义模块便是构造网络节点思维类型的形式化。Such formal semantic modules are the formalization of the thinking types for constructing network nodes.
其次,网络运算模块,由于Secondly, the network operation module, due to
以及as well as
<B1,s>→<B2;B3,s1>→*<B3,s4>,<B 1 ,s>→<B 2 ;B 3 ,s 1 >→ * <B 3 ,s 4 >,
因此,我们只需讨论:Therefore, we only need to discuss:
Block2=aconv,1;aconv,2;aconv,3;apool,1;aconv,4;a4;aseq,1;aseq,2;a4;aconv,5;apool,2;a4;B4.Block 2 = a conv,1 ; a conv,2 ; a conv,3 ; a pool,1 ; a conv,4 ; a 4 ; a seq,1 ; a seq,2 ; a 4 ; a conv,5 ; a pool,2 ;a 4 ;B 4 .
于是有转移关系So there is a transfer relationship
以及归约关系:And the reduction relation:
从而形成定义思维类型所对应的功能模块的输出结果的形式语义模块。This forms a formal semantic module that defines the output results of the functional module corresponding to the thinking type.
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。The above is only a preferred embodiment of the present invention. It should be understood that the present invention is not limited to the form disclosed herein, and should not be regarded as excluding other embodiments, but can be used in various other combinations, modifications and environments, and can be modified within the scope of the concept described herein through the above teachings or the technology or knowledge of the relevant field. The changes and modifications made by those skilled in the art do not deviate from the spirit and scope of the present invention, and should be within the scope of protection of the claims attached to the present invention.
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310991958.0A CN117311678B (en) | 2023-08-04 | 2023-08-04 | Equivalent embedding method for program module sequencing and functional synthesis in AI systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310991958.0A CN117311678B (en) | 2023-08-04 | 2023-08-04 | Equivalent embedding method for program module sequencing and functional synthesis in AI systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117311678A true CN117311678A (en) | 2023-12-29 |
CN117311678B CN117311678B (en) | 2024-06-04 |
Family
ID=89236147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310991958.0A Active CN117311678B (en) | 2023-08-04 | 2023-08-04 | Equivalent embedding method for program module sequencing and functional synthesis in AI systems |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311678B (en) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143817A1 (en) * | 2003-01-17 | 2004-07-22 | Kunii Tosiyasu L. | Information managing apparatus |
JP2005115498A (en) * | 2003-10-06 | 2005-04-28 | Catena Corp | Software development pre-processing method, software control method, software development method, and software developing device |
WO2006030809A1 (en) * | 2004-09-17 | 2006-03-23 | Catena Corporation | Software generating method |
WO2006038303A1 (en) * | 2004-10-07 | 2006-04-13 | Catena Corporation | Software creating method |
CN102298681A (en) * | 2011-06-22 | 2011-12-28 | 西北大学 | Software identification method based on data stream sliced sheet |
CN103646194A (en) * | 2013-11-29 | 2014-03-19 | 北京广利核系统工程有限公司 | Credible sorting method of synchronous data flow procedures based on formal verification |
CN108287711A (en) * | 2018-03-07 | 2018-07-17 | 北京理工大学 | A kind of algebraically component representation method and apparatus of software systems |
CN109408034A (en) * | 2018-03-17 | 2019-03-01 | 东南大学 | A kind of controlling stream graph building method of object-oriented program |
CN111208991A (en) * | 2020-01-03 | 2020-05-29 | 北京龙归科技有限公司 | Workflow-based program development method, electronic device, and storage medium |
CN113792008A (en) * | 2021-08-31 | 2021-12-14 | 北京百度网讯科技有限公司 | Method and device for acquiring network topology structure, electronic equipment and storage medium |
CN114610297A (en) * | 2022-01-27 | 2022-06-10 | 新疆品宣生物科技有限责任公司 | Automatic programming method for multi-language program codes |
CN114675830A (en) * | 2022-03-08 | 2022-06-28 | 南京南瑞继保电气有限公司 | Method and device for deploying edge AI (Artificial Intelligence) and constructing visual AI programming platform and electronic equipment |
-
2023
- 2023-08-04 CN CN202310991958.0A patent/CN117311678B/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143817A1 (en) * | 2003-01-17 | 2004-07-22 | Kunii Tosiyasu L. | Information managing apparatus |
JP2005115498A (en) * | 2003-10-06 | 2005-04-28 | Catena Corp | Software development pre-processing method, software control method, software development method, and software developing device |
WO2006030809A1 (en) * | 2004-09-17 | 2006-03-23 | Catena Corporation | Software generating method |
WO2006038303A1 (en) * | 2004-10-07 | 2006-04-13 | Catena Corporation | Software creating method |
CN102298681A (en) * | 2011-06-22 | 2011-12-28 | 西北大学 | Software identification method based on data stream sliced sheet |
CN103646194A (en) * | 2013-11-29 | 2014-03-19 | 北京广利核系统工程有限公司 | Credible sorting method of synchronous data flow procedures based on formal verification |
CN108287711A (en) * | 2018-03-07 | 2018-07-17 | 北京理工大学 | A kind of algebraically component representation method and apparatus of software systems |
CN109408034A (en) * | 2018-03-17 | 2019-03-01 | 东南大学 | A kind of controlling stream graph building method of object-oriented program |
CN111208991A (en) * | 2020-01-03 | 2020-05-29 | 北京龙归科技有限公司 | Workflow-based program development method, electronic device, and storage medium |
CN113792008A (en) * | 2021-08-31 | 2021-12-14 | 北京百度网讯科技有限公司 | Method and device for acquiring network topology structure, electronic equipment and storage medium |
CN114610297A (en) * | 2022-01-27 | 2022-06-10 | 新疆品宣生物科技有限责任公司 | Automatic programming method for multi-language program codes |
CN114675830A (en) * | 2022-03-08 | 2022-06-28 | 南京南瑞继保电气有限公司 | Method and device for deploying edge AI (Artificial Intelligence) and constructing visual AI programming platform and electronic equipment |
Non-Patent Citations (5)
Title |
---|
H.M. SNEED: "Extracting business logic from existing COBOL programs as a basis for redevelopment", 《PROCEEDINGS 9TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION.IWPC 2001》, 7 August 2002 (2002-08-07) * |
J.MITOLA: "Software radio architecture:a mathematical perspective", 《IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS》, vol. 17, no. 4, 30 April 1999 (1999-04-30), XP011054941 * |
孙禹铭: "面向深度学习的低代码开发平台的设计与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, no. 2, 15 February 2023 (2023-02-15) * |
朱怡健: "抽取程序模块功能的计算机辅助系统", 《小型微型计算机系统》, no. 9, 8 September 1994 (1994-09-08) * |
李招文: "广义近似空间的拓扑结构", 《应用数学学报》, vol. 33, no. 4, 15 December 2009 (2009-12-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117311678B (en) | 2024-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Leroux et al. | Reachability in vector addition systems is primitive-recursive in fixed dimension | |
Eiter et al. | Distance measures for point sets and their computation | |
Vatshelle | New width parameters of graphs | |
Afrati et al. | Transitive closure and recursive datalog implemented on clusters | |
Barrett et al. | Predecessor existence problems for finite discrete dynamical systems | |
CN102646111A (en) | A Rapid Construction Method of General Correlation Information Query Tree Based on Knowledge Base | |
Minato et al. | LCM over ZBDDs: Fast generation of very large-scale frequent itemsets using a compact graph-based representation | |
Chechik et al. | Efficient multiple-valued model-checking using lattice representations | |
Li et al. | Durable subgraph matching on temporal graphs | |
Wang et al. | Quantifier elimination in stochastic boolean satisfiability | |
CN117311678B (en) | Equivalent embedding method for program module sequencing and functional synthesis in AI systems | |
US9665538B2 (en) | Solving satisfiability problems through search | |
US7472130B2 (en) | Select indexing in merged inverse query evaluations | |
CN116628136A (en) | Collaborative query processing method, system and electronic equipment based on declarative reasoning | |
Jiang et al. | Fast subgraph matching by dynamic graph editing | |
Magdalena et al. | Hierarchical computable aggregations | |
Wang et al. | Making sense of a cophylogeny output: efficient listing of representative reconciliations | |
Sultana et al. | Querying KEGG pathways in logic | |
Khoussainov et al. | Unary automatic graphs: an algorithmic perspective | |
Oliveira et al. | FPT Algorithms to Enumerate and Count Acyclic and Totally Cyclic Orientations | |
Gomes et al. | FPT and kernelization algorithms for the k-in-a-tree problem | |
Bordewich | The complexity of counting and randomised approximation | |
Huang et al. | Cohesive Subgraphs | |
Neven et al. | Finite-state map-reduce computation and relational algebra queries | |
Buzatu | Covering Graphs by Convex Sets |
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 |