CN103049665B - 一种基于变量的配置化计算逻辑的多变量计算方法和装置 - Google Patents
一种基于变量的配置化计算逻辑的多变量计算方法和装置 Download PDFInfo
- Publication number
- CN103049665B CN103049665B CN201210580155.8A CN201210580155A CN103049665B CN 103049665 B CN103049665 B CN 103049665B CN 201210580155 A CN201210580155 A CN 201210580155A CN 103049665 B CN103049665 B CN 103049665B
- Authority
- CN
- China
- Prior art keywords
- variable
- multivariate
- computational logic
- calculated
- calculating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明提供一种基于变量的配置化计算逻辑的多变量计算方法和装置,其中,所述方法包括:预先对多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义;根据所述多变量中各变量的计算逻辑的结构化定义确定待计算变量;根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所述待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定义的计算器对所述待计算变量中各变量进行计算。本发明提供的基于变量的配置化计算逻辑的多变量计算方法和装置可以实现多变量按需次第计算,降低系统开发和维护的复杂度和难度。
Description
技术领域
本发明涉及多变量自动计算领域,具体而言,涉及一种基于变量的配置化计算逻辑的多变量计算方法和装置。
背景技术
目前有如下两种多变量自动化计算方案:
第一种:覆盖性计算、选择性取用。即,在可预计的变量范围内,对所有变量预设计算逻辑,然后进行自动计算并赋值,计算结果供不同应用场景有选择的取用;
第二种:基于计算公式字符串解析技术的变量自动计算。即,以字符串的方式描述变量计算函数,基于相应的函数语法自动解析字符串,并基于解析结果,自动计算变量结果。
上述两种方案虽然能完成多变量自动化计算,但是却存在以下问题:
对于覆盖性计算、选择性取用的多变量计算方法,其扩展性和适应性差、冗余计算多,导致计算资源浪费;
对于基于计算公式字符串解析技术的变量自动计算方法,其解析过程复杂,对函数的扩展适应性差,速度慢、耗用资源大;
并且,上述两种方法均无法实现多变量按需自动计算,数据处理效率低,使得系统开发和维护的复杂度和难度相对较高。
发明内容
本发明提供了一种基于变量的配置化计算逻辑的多变量计算方法和装置,提高多变量计算的灵活性、可扩展性,进而提高数据处理效率。
根据本发明实施例的第一方面,提供了一种基于变量的配置化计算逻辑的多变量计算方法,该方法预先对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义,并且所述方法包括以下步骤:
步骤A:根据所述多变量中各变量的计算逻辑的结构化定义确定待计算变量;
步骤B:根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所述待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定义的计算器对所述待计算变量中各变量进行计算。
根据本发明实施例的第二方面,提供一种基于变量的配置化计算逻辑的多变量计算装置,包括:
预配置模块:用于预先对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义;
待计算变量确定模块:用于根据所述多变量中各变量的计算逻辑的结构化定义确定待计算变量;
计算模块:用于根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所述待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定义的计算器对所述待计算变量中各变量进行计算。
实施本发明实施例提供的基于变量的配置化计算逻辑的多变量计算方法和装置,提高了多变量计算的灵活性和可扩展性,实现了多变量的按需自动计算;降低了多变量进行计算占用的计算机资源并且数据处理效率高,能够降低系统开发和维护的复杂度和难度、对监测到的或者用户输入的外部技术数据进行按需次第处理等。
附图说明
图1是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算方法的流程示意图;
图2是根据本发明实施例的一种确定变量计算依赖关系和计算层级的方法的流程示意图;
图3是根据本发明实施例的一种确定待计算变量的方法的流程示意图;
图4是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算方法的流程示意图;
图5是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算装置的结构示意图;
图6是根据本发明实施例的一种待计算变量确定模块的结构示意图;
图7是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算装置的结构示意图。
具体实施方式
为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
在变量计算中,变量的值可由相应的计算函数唯一确定。对该函数的组成元素(包括计算依赖的常量值、变量值、函数计算器等)进行定义,并基于此,以结构化的方式描述该变量的计算逻辑,称为变量的配置化计算逻辑。
本发明针对多个变量,基于这些变量的配置化计算逻辑,自动根据这些变量的计算依赖关系确定变量的计算次序,并按次序自动完成对这些变量的计算和赋值,从而实现基于变量的配置化计算逻辑的多变量自动化按需次第计算。需要说明的是,例如,在一个由自变量和因变量构成的集合A中,我们对集合A的一个子集B中的所有变量进行计算逻辑的结构化定义,在对集合B中的各个变量的结构化定义中可能会涉及属于集合A而不属于集合B的变量,也可能会涉及不属于集合A的变量,换而言之,集合B中的各个变量进行计算所依赖的变量不局限于集合B中的变量。
为了清楚、简要的说明本发明申请的技术方案内容,下文部分说明内容中出现的词语“定义”就是指“结构化定义”。
图1是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算方法,参见图1,该方法包括:
S100:预配置定义,具体地,包括预先对多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义;
S102:确定待计算变量:具体地,可以根据多变量中各变量的计算逻辑的结构化定义确定待计算变量;
S104:获取待计算变量中各变量进行计算所需要的变量值和常量计算参数,具体地,可以根据待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取待计算变量中各变量进行计算所依赖变量的值和待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数;
S106:用相应的结构化定义的计算器对待计算变量中的各变量进行计算。
在步骤S100中,可以通过对某变量进行计算逻辑的结构化定义将该变量添加到可计算的变量集合中,也可以通过取消某变量的计算逻辑定义将该变量从可计算的变量集合中删除,这样就确定了最终参与计算的多变量。已知变量包括多变量中未发生变动的自变量(在本发明中,自变量包括被操纵的变量,例如由用户输入直接决定的变量、由系统或装置直接测得的变量等。在这些自变量中,未随着操纵条件变化的变量就属于未发生变动的自变量)和能够根据变量自身的计算逻辑的结构化定义计算出结果的变量。以变量AC01020801为例,包含其进行计算所依赖变量的变量值获取路径定义在内的计算逻辑的结构化定义的程序代码示例如下(在本说明书中列举的所有程序代码仅为示例性列举以使本领域技术人员更好的理解本发明请求保护的技术方案,并非对本发明的保护范围构成限制):
上述结构化定义的含义为:通过cal010001公式进行计算,计算参数为上述计算器定义中java.util.List类型的itemList,计算依赖的已知变量为AC01020201和AC01020001。已知变量的获取路径依据具体的应用环境进行定义,本例为:reportPeriodDistance="0"以及相应的变量名AC01020201和AC01020001。待计算变量应当满足的条件为其进行计算所依赖的已知变量非空(即:isNullable="false"),如果该前提条件不满足,则将相应的已知变量替换为0(defaultValue="0")。
此外,为了提高计算器的可复用率及其有效性,对于某些变量的计算可能需要按次序应用多个计算器。在这种情况下,可以对其计算逻辑进行递归/嵌套的定义,相应的程序代码示例如下:
在步骤S100中,对计算器的结构化定义包括:以结构化的描述方式定义各类普遍意义上的计算函数,如加法、减法、乘法、除法、乘方、对数、三角函数等,以及任何其他特殊的自定义计算逻辑(如下文中定义的“a与b是否相等”的断言)。
其中,以求和公式为例,相应计算器的结构化定义的程序代码示例如下:
在这里,公式的输入都定义为数字,计算结果也定义为数字。
以“a与b是否相等”的断言为例,相应计算器的结构化定义的程序代码示例如下:
在这里,断言的输入都定义为数字,结果定义为布尔值。
在本实施例的一种实现方式中,步骤S102可包括:
步骤I:根据多变量中各变量的计算逻辑的结构化定义确定多变量中各变量的计算依赖关系和计算层级;
步骤II:根据多变量中各变量的计算逻辑的结构化定义确定多变量中所有属于待计算变量的变量。
其中,参见图2,步骤I可以通过以下步骤实现:
S200:确定多变量中各变量的计算依赖关系,具体地,可以通过解析多变量中各变量的计算逻辑的结构化定义以确定多变量中各变量的计算依赖关系;
S202:确定多变量中第1计算层级的变量,具体地,根据多变量中各变量的计算依赖关系将多变量中计算所依赖参数满足如下条件的变量的计算层级确定为第1计算层级,
所述条件为计算所依赖参数全为常量和/或自身未进行计算逻辑的结构化定义的变量;
S204:遍历多变量中未确定计算层级的变量以确定其中能够确定出计算层级的变量的计算层级,具体地,可以以任意顺序遍历多变量中未确定计算层级的变量,对于未确定计算层级的变量中的当前遍历变量,如果它进行计算所依赖变量的计算层级都已确定,则将它的计算层级确定为第k+1计算层级,第k计算层级是它进行计算所依赖变量中计算层级最大的变量的计算层级;
S206:判断多变量中各变量是否均确定了计算层级,如果判断为否,则返回执行步骤S204;如果判断为是,则步骤I结束。
在步骤S200中,如果在变量计算逻辑的结构化定义中存在嵌套的计算器定义(例如,在上文列举的各种程序代码示例中,paramEssentials标签中的paramInputTypeCd属性值为varByFormula或varByAssertion则说明存在嵌套的计算器定义),则需要对其进行递归,直至不存在varByFormula或varByAssertion类型的paramEssentials。
参见图3,步骤II可以通过以下步骤实现:
S300:确定由所有发生变动的变量构成的第二变量清单;其中,最初确定的发生变动的变量是由于操纵条件变化直接导致变动的变量;
S302:对多变量中各变量进行遍历以确定多变量中当前属于待计算变量的变量,具体地,可以以任意顺序遍历多变量中各变量的计算逻辑的结构化定义,如果多变量中的当前遍历变量进行计算所依赖变量包括第二变量清单中的至少一个变量,则确定多变量中的当前遍历变量属于待计算变量,并将其加入第一变量清单和第二变量清单,该第一变量清单由多变量中属于待计算变量的变量构成;
S304:遍历多变量中当前不属于待计算变量的变量以确定其中新的属于待计算变量的变量,具体地,可以以任意顺序遍历多变量中不属于第一变量清单的变量的计算逻辑的结构化定义,对于不属于第一变量清单的变量中的当前遍历变量,如果它进行计算所依赖变量包括第二变量清单中的至少一个变量,则确定它属于待计算变量,并将它加入第一变量清单和第二变量清单;
S306:判断在步骤S304中是否确定出了新的属于待计算变量的变量,如果判断为是,则返回执行步骤S304;如果判断为否,则步骤II结束。
在步骤S302和S304的遍历过程中,如果当前遍历变量在变量计算逻辑的结构化定义中存在嵌套的计算器定义(在上文列举的各种程序代码示例中,paramEssentials标签中的paramInputTypeCd属性值为varByFormula或varByAssertion则说明存在嵌套的计算器定义),则需要对其进行递归,直至不存在varByFormula或varByAssertion类型的paramEssentials。
在本发明实施例的一种实现方式中,在确定了多变量中各变量的计算依赖关系和计算层级以及确定出由所有的待计算变量构成的第一变量清单之后,步骤S104和S106可以通过以下方式实现:
按照计算层级由小到大的顺序遍历第一变量清单中的各变量,对于第一变量清单中的当前遍历变量,根据其计算逻辑的结构化定义和计算所依赖变量的变量值获取路径获取其进行计算所依赖变量的值和在其计算逻辑的结构化定义中定义的常量计算参数(paramInputTypeCd属性的值配置成constant的paramEssentials就表示常量,paramInputSourceIdentity配置的值就是对应的常量值。常量计算参数可以在对变量计算逻辑的结构化定义进行解析时获取);
将获取的进行计算所依赖变量的值和常量计算参数作为输入,调用相应的结构化定义的计算器,对第一变量清单中的当前遍历变量进行计算。这样在遍历完成之后,所有的待计算变量就完成了计算。
本实施方式在计算过程中通过调用相应的计算器并按照对计算器的结构化定义实现相应的计算功能。以上述求和公式为例,其结构化定义的程序代码为:
相应的计算器的java实现为:
参见图4,图4是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算方法,包括:S400、S402、S404、S406和S408,其中,对于步骤S400、S404、S406和S408的说明请参见图1所示实施例中的相应说明,此处不再赘述。其中,步骤S402:配置正确性检查,是对多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义进行配置正确性检查,配置正确性检查内容包括:重复定义检查、必配项检查和配置值合法化检查。重复定义检查用于检查多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义是否存在重复定义的现象,例如,对某一变量的计算逻辑的结构化定义不应多于1次(即:参见说明书中列举的程序代码,其中不同accountCalEssentials标签的accountCode属性不应相同);必配项检查可以检查在多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义中是否配置了相应的必配项(例如,在对计算器的计算逻辑进行递归/嵌套的结构化定义中,accountCalEssentials标签的accountCode属性、formulaIdentityName属性、paramEssentials属性,paramEssentials标签的paramIdentityName属性、paramInputTypeCd属性、paramInputSourceIdentity属性、isNullable属性等均属于必配项);配置值合法化检查用于检查在多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义中是否存在配置值不合法的情况,例如:对于定义了取值范围的配置值,该配置值应当在取值范围内;变量的计算逻辑的结构化定义不应使变量依赖于变量自身等。
通过配置正确性检查,可以检查多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义的完整性和正确性,避免可能造成的缺失和不一致性。配置正确性检查在本发明中并不要求自动化,可以完全由人通过编辑配置文件文本完成。
在本发明的一种实施例中,除了具有上述所有方法实施例中的技术特征之外,在预先对多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义之前,本发明还利用已知的输入设备(例如键盘、鼠标、触控界面等)、数据采集设备(例如传感器)或数据采集系统等进行数据输入或采集,以获取相应的自变量。所述自变量可以是系统开发中需要参与计算的变量,也可以是与环境相关的变量,例如环境温度、湿度、气压等,当然也可以是在其他工业生产中需要进行采集并进行数据处理的变量。
本发明实施例还提供一种基于变量的配置化计算逻辑的多变量计算装置,参见图5,该多变量计算装置50包括:
预配置模块502:用于预先对多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义;
待计算变量确定模块504:用于根据多变量中各变量的计算逻辑的结构化定义确定待计算变量;
计算模块506:用于根据待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取待计算变量中各变量进行计算所依赖变量的值和待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用结构化定义的计算器对待计算变量中各变量进行计算。
其中,预配置模块502采用图1所示实施例中列举的结构化定义的方式能够灵活的对多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义,扩展性和适应性强。预配置模块502可以通过对某变量进行计算逻辑的结构化定义,将该变量添加到可计算的变量集合中;也可以通过取消某变量的计算逻辑定义,将该变量从可计算的变量集合中删除,这样就确定了最终参与计算的多变量。预配置模块502对计算器的结构化定义包括:以结构化的描述方式定义各类普遍意义上的计算函数,如加法、减法、乘法、除法、乘方、对数、三角函数等,以及任何其他特殊的自定义计算逻辑,具体的结构化定义的方式请参见图1所示实施例中的相应描述,此处不再赘述。
参见图6,在本实施例的一种实现方式中,待计算变量确定模块504包括:
第一确定子模块60:用于根据多变量中各变量的计算逻辑的结构化定义确定多变量中各变量的计算依赖关系和计算层级;
第二确定子模块62:用于根据多变量中各变量的计算逻辑的结构化定义确定多变量中所有属于待计算变量的变量。
其中,第一确定子模块60包括计算依赖关系确定单元602和计算层级确定单元604,其中,
计算依赖关系确定单元602,用于解析多变量中各变量的计算逻辑的结构化定义以确定多变量中各变量的计算依赖关系;
计算层级确定单元604包括:
确定子单元6042:用于根据多变量中各变量的计算依赖关系将多变量中计算所依赖参数满足如下条件的变量的计算层级确定为第1计算层级,
所述条件为计算所依赖参数全为常量和/或自身未进行计算逻辑的结构化定义的变量。
执行子单元6044:用于遍历多变量中未确定计算层级的变量,对于未确定计算层级的变量中的当前遍历变量,如果它进行计算所依赖变量的计算层级都已确定,则将它的计算层级确定为第k+1计算层级,第k计算层级是它进行计算所依赖变量中计算层级最大的变量的计算层级;
判断调用子单元6046:用于判断多变量中各变量是否均确定了计算层级,如果判断为否,则重复调用执行子单元6044直至判断调用子单元6046判断多变量中各变量均已确定计算层级;如果判断为是,则第一确定子模块60结束操作。
其中,计算依赖关系确定单元602对于计算逻辑的结构化定义中存在嵌套的计算器定义的变量(例如,在上文列举的各种程序代码示例中,paramEssentials标签中的paramInputTypeCd属性值为varByFormula或varByAssertion则说明存在嵌套的计算器定义),需要进行相应的递归操作。
第二确定子模块62包括:
第一执行单元622:用于确定由所有发生变动的变量构成的第二变量清单(最初确定的发生变动的变量包括由于操纵条件变化直接导致变动的变量),遍历(可以以任意顺序进行遍历)多变量中的各变量的计算逻辑的结构化定义,如果多变量中的当前遍历变量进行计算所依赖变量包括第二变量清单中的至少一个变量,则确定多变量中的当前遍历变量属于待计算变量,并将其加入第一变量清单和第二变量清单,该第一变量清单由多变量中属于待计算变量的变量构成。
第二执行单元624:用于遍历(可以以任意顺序进行遍历)多变量中不属于第一变量清单的变量的计算逻辑的结构化定义,对于不属于第一变量清单的变量中的当前遍历变量,如果它进行计算所依赖变量包括第二变量清单中的至少一个变量,则确定它属于待计算变量,并将它加入第一变量清单和第二变量清单;
判断调用单元626:用于判断第二执行单元624是否确定出了属于待计算变量的变量,如果判断为是,则重复调用第二执行单元624直至判断调用单元626判断第二执行单元未确定出属于待计算变量的变量;如果判断为否,则第二确定子模块62结束操作。
在第一执行单元622和第二执行单元624的遍历过程中,如果当前遍历变量在变量计算逻辑的结构化定义中存在嵌套的计算器定义(在上文列举的各种程序代码示例中,paramEssentials标签中的paramInputTypeCd属性值为varByFormula或varByAssertion则说明存在嵌套的计算器定义),则需要对其进行递归。
在本发明实施例的一种实现方式中,计算模块506可以包括:
参数获取子模块:用于按照计算层级由小到大的顺序遍历第一变量清单中的各变量,对于第一变量清单中的当前遍历变量,根据其计算逻辑的结构化定义和计算所依赖变量的变量值获取路径获取其进行计算所依赖变量的值和在其计算逻辑的结构化定义中定义的常量计算参数;
计算子模块:用于将获取的进行计算所依赖变量的值和常量计算参数作为输入,调用相应的结构化定义的计算器,对第一变量清单中的当前遍历变量进行计算。
参见图7,图7是根据本发明实施例的一种基于变量的配置化计算逻辑的多变量计算装置,该多变量计算装置70包括:预配置模块702、配置正确性检查模块704、待计算变量确定模块706和计算模块708,其中,对于预配置模块702、待计算变量确定模块706和计算模块708的说明请参见图5所示实施例中的相应说明,此处不再赘述。其中,配置正确性检查模块704用于对多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义进行配置正确性检查,配置正确性检查包括:重复定义检查、必配项检查和配置值合法化检查。具体的检查内容请参见图4所示实施例中的相应描述,此处不再赘述。
本发明提供的基于变量的配置化计算逻辑的多变量计算方法和装置可以实现多变量按需次第计算,占用的计算资源少,数据处理效率高,并能在一定程度上降低系统开发和维护的复杂度和难度。
在本发明的一种实施例中,除了具有上述所有装置实施例中的技术特征之外,本发明的装置还具有数据获取模块,用于获取需要参与计算的自变量。所述自变量可以是系统开发中需要参与计算的变量,也可以是与环境相关的变量,例如环境温度、湿度、气压等,当然也可以是在其他工业生产中需要进行采集并进行数据处理的变量。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明的保护范围,因此依本发明权利要求的教导对上述实施例所作的等同变化,仍属于本发明权利要求所涵盖的范围内。
Claims (12)
1.一种基于变量的配置化计算逻辑的多变量计算方法,其特征在于,
预先对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义,并且所述多变量计算方法包括以下步骤:
步骤A:根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中各变量的计算依赖关系和计算层级以及所述多变量中的待计算变量;
步骤B:按照计算层级由小到大的顺序对所述待计算变量中的各变量进行以下处理:
根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所述待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定义的计算器对所述待计算变量中各变量进行计算;
其中,所述已知变量包括:所述多变量中未发生变动的自变量和根据变量自身的计算逻辑的结构化定义计算出结果的变量。
2.如权利要求1所述方法,其特征在于,所述方法还包括:
在对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义之后,在所述步骤A之前执行以下步骤:
对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义进行配置正确性检查,所述配置正确性检查包括:重复定义检查、必配项检查和配置值合法化检查。
3.如权利要求1所述方法,其特征在于,所述步骤A包括:
步骤A1:根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中各变量的计算依赖关系和计算层级;
步骤A2:根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中所有属于所述待计算变量的变量。
4.如权利要求3所述方法,其特征在于,所述步骤A1包括:
A11:解析所述多变量中各变量的计算逻辑的结构化定义以确定所述多变量中各变量的计算依赖关系;
A12:根据所述多变量中各变量的计算依赖关系将所述多变量中计算所依赖参数满足以下条件的变量的计算层级确定为第1计算层级,
其中所述条件为计算所依赖参数全为常量和/或自身未进行计算逻辑的结构化定义的变量;
A13:遍历所述多变量中未确定计算层级的变量,对于所述未确定计算层级的变量中的当前遍历变量,如果它进行计算所依赖变量的计算层级都已确定,则将它的计算层级确定为第k+1计算层级,第k计算层级是它进行计算所依赖变量中计算层级最大的变量的计算层级;
A14:判断所述多变量中各变量是否均确定了计算层级,如果判断为否,则重复步骤A13和A14;如果判断为是,则步骤A1结束。
5.如权利要求3或4所述方法,其特征在于,所述步骤A2包括:
A21:确定由所有发生变动的变量构成的第二变量清单,遍历所述多变量中的各变量的计算逻辑的结构化定义,如果所述多变量中的当前遍历变量进行计算所依赖变量包括所述第二变量清单中的至少一个变量,则确定所述多变量中的当前遍历变量属于所述待计算变量,并将其加入第一变量清单和所述第二变量清单,所述第一变量清单由所述多变量中属于所述待计算变量的变量构成;
A22:遍历所述多变量中不属于所述第一变量清单的变量的计算逻辑的结构化定义,对于所述不属于所述第一变量清单的变量中的当前遍历变量,如果它进行计算所依赖变量包括所述第二变量清单中的至少一个变量,则确定它属于所述待计算变量,并将它加入所述第一变量清单和所述第二变量清单;
A23:判断步骤A22是否确定出了属于所述待计算变量的变量,如果判断为是,则重复步骤A22和A23;如果判断为否,则步骤A2结束。
6.如权利要求5所述方法,其特征在于,所述步骤B包括:
按照所述计算层级由小到大的顺序遍历所述第一变量清单中的各变量,对于所述第一变量清单中的当前遍历变量,根据其计算逻辑的结构化定义和计算所依赖变量的变量值获取路径获取其进行计算所依赖变量的值和在其计算逻辑的结构化定义中定义的常量计算参数;
将所述获取的进行计算所依赖变量的值和常量计算参数作为输入,调用相应的所述结构化定义的计算器,对所述第一变量清单中的当前遍历变量进行计算。
7.一种基于变量的配置化计算逻辑的多变量计算装置,其特征在于,所述装置包括:
预配置模块:用于预先对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器进行结构化定义;
待计算变量确定模块:用于根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中各变量的计算依赖关系和计算层级以及所述多变量中的待计算变量;
计算模块:用于按照计算层级由小到大的顺序对所述待计算变量中的各变量进行以下处理:
根据所述待计算变量中各变量的计算逻辑的结构化定义以及已知变量的变量值获取路径获取所述待计算变量中各变量进行计算所依赖变量的值和所述待计算变量中各变量的计算逻辑的结构化定义中定义的常量计算参数,并调用所述结构化定义的计算器对所述待计算变量中各变量进行计算;
其中,所述已知变量包括:所述多变量中未发生变动的自变量和根据变量自身的计算逻辑的结构化定义计算出结果的变量。
8.如权利要求7所述装置,其特征在于,所述装置还包括:
配置正确性检查模块:用于对所述多变量中各变量的计算逻辑、已知变量的变量值获取路径和计算器的结构化定义进行配置正确性检查,所述配置正确性检查包括:重复定义检查、必配项检查和配置值合法化检查。
9.如权利要求7所述装置,其特征在于,所述待计算变量确定模块包括:
第一确定子模块:用于根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中各变量的计算依赖关系和计算层级;
第二确定子模块:用于根据所述多变量中各变量的计算逻辑的结构化定义确定所述多变量中所有属于所述待计算变量的变量。
10.如权利要求9所述装置,其特征在于,所述第一确定子模块包括:
计算依赖关系确定单元和计算层级确定单元,其中
所述计算依赖关系确定单元:用于解析所述多变量中各变量的计算逻辑的结构化定义以确定所述多变量中各变量的计算依赖关系;
所述计算层级确定单元包括:
确定子单元:用于根据所述多变量中各变量的计算依赖关系将所述多变量中计算所依赖参数满足以下条件的变量的计算层级确定为第1计算层级,
其中所述条件为计算所依赖参数全为常量和/或自身未进行计算逻辑的结构化定义的变量;
执行子单元:用于遍历所述多变量中未确定计算层级的变量,对于所述未确定计算层级的变量中的当前遍历变量,如果它进行计算所依赖变量的计算层级都已确定,则将它的计算层级确定为第k+1计算层级,第k计算层级是它进行计算所依赖变量中计算层级最大的变量的计算层级;
判断调用子单元:用于判断所述多变量中各变量是否均确定了计算层级,如果判断为否,则重复调用所述执行子单元直至所述判断调用子单元判断所述多变量中各变量均已确定计算层级;如果判断为是,则所述第一确定子模块结束操作。
11.如权利要求9或10所述装置,其特征在于,所述第二确定子模块包括:
第一执行单元:用于确定由所有发生变动的变量构成的第二变量清单,遍历所述多变量中的各变量的计算逻辑的结构化定义,如果所述多变量中的当前遍历变量进行计算所依赖变量包括所述第二变量清单中的至少一个变量,则确定所述多变量中的当前遍历变量属于所述待计算变量,并将其加入第一变量清单和所述第二变量清单,所述第一变量清单由所述多变量中属于所述待计算变量的变量构成;
第二执行单元:用于遍历所述多变量中不属于所述第一变量清单的变量的计算逻辑的结构化定义,对于所述不属于所述第一变量清单的变量中的当前遍历变量,如果它进行计算所依赖变量包括所述第二变量清单中的至少一个变量,则确定它属于所述待计算变量,并将它加入所述第一变量清单和所述第二变量清单;
判断调用单元:用于判断所述第二执行单元是否确定出了属于所述待计算变量的变量,如果判断为是,则重复调用所述第二执行单元直至所述判断调用单元判断所述第二执行单元未确定出属于所述待计算变量的变量;如果判断为否,则所述第二确定子模块结束操作。
12.如权利要求11所述装置,其特征在于,所述计算模块包括:
参数获取子模块:用于按照所述计算层级由小到大的顺序遍历所述第一变量清单中的各变量,对于所述第一变量清单中的当前遍历变量,根据其计算逻辑的结构化定义和计算所依赖变量的变量值获取路径获取其进行计算所依赖变量的值和在其计算逻辑的结构化定义中定义的常量计算参数;
计算子模块:用于将所述获取的进行计算所依赖变量的值和常量计算参数作为输入,调用相应的所述结构化定义的计算器,对所述第一变量清单中的当前遍历变量的进行计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210580155.8A CN103049665B (zh) | 2012-12-27 | 2012-12-27 | 一种基于变量的配置化计算逻辑的多变量计算方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210580155.8A CN103049665B (zh) | 2012-12-27 | 2012-12-27 | 一种基于变量的配置化计算逻辑的多变量计算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049665A CN103049665A (zh) | 2013-04-17 |
CN103049665B true CN103049665B (zh) | 2016-01-13 |
Family
ID=48062299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210580155.8A Active CN103049665B (zh) | 2012-12-27 | 2012-12-27 | 一种基于变量的配置化计算逻辑的多变量计算方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049665B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881272A (zh) * | 2014-02-27 | 2015-09-02 | 腾讯科技(深圳)有限公司 | 一种指标获取方法及装置 |
CN105700932B (zh) * | 2014-11-25 | 2019-02-05 | 财团法人资讯工业策进会 | 针对软件程序的变量推论系统及方法 |
CN106020818A (zh) * | 2016-05-16 | 2016-10-12 | 珠海格力电器股份有限公司 | 计算逻辑生成方法和装置 |
-
2012
- 2012-12-27 CN CN201210580155.8A patent/CN103049665B/zh active Active
Non-Patent Citations (2)
Title |
---|
C程序习题-使用结构体计算日期的天数【11.1】;厚德载物;《Chinaunix博客,http://blog.chinaunix.net/uid-20680669-id-147831.html》;20100825;第1-2页 * |
基于LabVIEW的电网调度运动故障监控系统设计与实现;王晓亮;《中国优秀硕士学位论文全文数据库 信息科技辑》;20070630;I140-362 * |
Also Published As
Publication number | Publication date |
---|---|
CN103049665A (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110380917B (zh) | 联邦学习系统的控制方法、装置、终端设备及存储介质 | |
CN110677433B (zh) | 一种网络攻击预测的方法、系统、设备及可读存储介质 | |
CN103049665B (zh) | 一种基于变量的配置化计算逻辑的多变量计算方法和装置 | |
EP2963553A1 (en) | System analysis device and system analysis method | |
CN102130906A (zh) | 基于随机Petri网的网络安全风险分析方法 | |
CN114662618B (zh) | 一种基于联邦学习的故障诊断方法、装置及相关设备 | |
CN115292206B (zh) | 软件漏洞检测方法、装置、电子设备及存储介质 | |
CN104320271A (zh) | 一种网络设备安全评估方法及装置 | |
EP2958023B1 (en) | System analysis device and system analysis method | |
CN111769987B (zh) | 基于大数据管理模型的网络信息安全测试系统及方法 | |
CN102624736B (zh) | 一种tl1命令校验方法及装置 | |
Boytsov et al. | Extending context spaces theory by predicting run-time context | |
CN106874243A (zh) | 基于字符串的公式处理方法及装置 | |
CN105577432A (zh) | 一种基于关联分析的网络丢包概率预测方法 | |
CN115767601A (zh) | 一种基于多维数据的5gc网元自动化纳管方法及装置 | |
CN112650737B (zh) | 数据处理方法、数据处理装置、存储介质和电子设备 | |
CN112085589B (zh) | 规则模型的安全性的确定方法、装置和服务器 | |
CN112596814A (zh) | 项目的集成打包方法、装置、设备、介质和程序产品 | |
Heiat et al. | A model for estimating efforts required for developing small-scale business applications | |
CN104298691A (zh) | 用于评估数据库索引的效率的方法和装置 | |
CN109558252A (zh) | 数据交互方法及装置 | |
CN110601890B (zh) | 一种网络性能分析方法、装置、设备及可读存储介质 | |
CN108984615A (zh) | 一种数据查询方法和系统、存储介质 | |
CN115829053B (zh) | 模型运行策略确定方法、装置、电子设备以及存储介质 | |
CN101576905B (zh) | 一种在信息检索中基于图中的块结构来计算网页结构图中的链接相似度的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |