一种数据分析模型中组件的排序方法及装置与流程

文档序号:17590715发布日期:2019-05-03 21:47阅读:160来源:国知局
一种数据分析模型中组件的排序方法及装置与流程

本申请涉及工业控制技术领域,特别涉及一种数据分析模型中组件的排序方法及装置。



背景技术:

工业大数据分析平台将数据预处理、数据统计、机器学习等算法封装为多个通用的组件,保证用户可以在工业大数据分析平台中,通过拖拽的方式选择组件,并通过连线的方式,将组件组成大数据分析模型。

虽然,在工业大数据分析平台中可以完成大数据分析模型的构建,但是却未能确定大数据分析模型中各个组件的执行顺序。因此,如何确定大数据分析模型中各个组件的执行顺序成为问题。



技术实现要素:

为解决上述技术问题,本申请实施例提供一种数据分析模型中组件的排序方法及装置,以达到完成对组件的执行顺序的确定,并保证组件的执行顺序的准确性的目的,技术方案如下:

一种数据分析模型中组件的排序方法,包括:

获取目标数据分析模型;

根据所述目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,作为目标执行序列;

按照所述目标执行序列,对所述目标数据分析模型中的各个组件进行模拟运行;

若模拟运行的结果中存在未成功运行的组件,则根据模拟运行的结果调整所述目标执行序列,并将所述目标执行序列替换为调整后的目标执行序列,并返回执行按照所述目标执行序列,对所述目标数据分析模型进行模拟运行的步骤,直至对所述目标数据分析模型进行模拟运行的结果为所有组件均成功运行;

将所述目标执行序列作为待使用执行序列。

优选的,根据所述目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,作为目标执行序列,包括:

根据所述目标数据分析模型中组件间的连线关系,从所述目标数据分析模型中无上游组件且未被遍历过的组件中选取一个,作为头组件;

判断队列中是否存在组件,若不存在,将所述头组件作为第一个组件,写入所述队列中,若存在,则将所述头组件排列在所述队列中最后一个组件之后,写入所述队列中;

从所述头组件开始,采用递归查询的方式,依次查找所述头组件所属分支中各个组件是否存在下游组件;

若不存在,则返回执行根据所述目标数据分析模型中组件间的连线关系,从所述目标数据分析模型中无上游组件且未被遍历过的组件中选取一个,作为头组件的步骤,直至遍历完所述目标数据分析模型中所有组件;

若存在,则判断所述队列中是否已存在所述下游组件;

若否,将所述下游组件排列在所述队列中最后一个组件之后,写入所述队列中;

将所述队列中的组件的排列顺序,作为所述目标执行序列。

优选的,若所述头组件所属分支中组件存在n个输出引脚,所述n为不小于2的整数,则查找所述头组件所属分支中组件是否存在下游组件,包括:

按照设定顺序,查找所述头组件所属分支中组件的各个输出引脚下是否存在下游组件。

优选的,根据模拟运行的结果调整所述目标执行序列,包括:

将模拟运行的结果为成功运行的组件,按照所述目标执行序列中的先后顺序,依次写入已成功运行队列中;

将模拟运行的结果为未成功运行的组件,按照所述目标执行序列中的先后顺序,依次写入未成功运行队列中;

依次判断所述未成功运行队列中未被遍历过的组件的上游组件是否已成功运行;

若是,则将上游组件已成功运行的组件排列在所述已成功运行队列中最后一个组件之后,写入所述已成功运行队列中;

若否,则返回执行依次判断所述未成功运行队列中未被遍历过的组件的上游组件是否已成功运行的步骤,直至遍历完所述未成功运行队列中的所有组件;

将所述已成功运行队列中的组件的排序结果,调整所述目标执行序列。

一种数据分析模型中组件的排序装置,包括:

获取模块,用于获取目标数据分析模型;

第一确定模块,用于根据所述目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,作为目标执行序列;

模拟运行模块,用于按照所述目标执行序列,对所述目标数据分析模型中的各个组件进行模拟运行;

调整模块,用于若模拟运行的结果中存在未成功运行的组件,则根据模拟运行的结果调整所述目标执行序列,并将所述目标执行序列替换为调整后的目标执行序列,并返回执行所述模拟运行模块,直至对所述目标数据分析模型进行模拟运行的结果为所有组件均成功运行;

第二确定模块,用于将所述目标执行序列作为待使用执行序列。

优选的,所述第一确定模块,具体用于:

根据所述目标数据分析模型中组件间的连线关系,从所述目标数据分析模型中无上游组件且未被遍历过的组件中选取一个,作为头组件;

判断队列中是否存在组件,若不存在,将所述头组件作为第一个组件,写入所述队列中,若存在,则将所述头组件排列在所述队列中最后一个组件之后,写入所述队列中;

从所述头组件开始,采用递归查询的方式,依次查找所述头组件所属分支中各个组件是否存在下游组件;

若不存在,则返回执行根据所述目标数据分析模型中组件间的连线关系,从所述目标数据分析模型中无上游组件且未被遍历过的组件中选取一个,作为头组件的步骤,直至遍历完所述目标数据分析模型中所有组件;

若存在,则判断所述队列中是否已存在所述下游组件;

若否,将所述下游组件排列在所述队列中最后一个组件之后,写入所述队列中;

将所述队列中的组件的排列顺序,作为所述目标执行序列。

优选的,若所述头组件所属分支中组件存在n个输出引脚,所述n为不小于2的整数,则所述第一确定模块查找所述头组件所属分支中组件是否存在下游组件的过程,具体包括:

按照设定顺序,查找所述头组件所属分支中组件的各个输出引脚下是否存在下游组件。

优选的,所述调整模块,具体用于:

将模拟运行的结果为成功运行的组件,按照所述目标执行序列中的先后顺序,依次写入已成功运行队列中;

将模拟运行的结果为未成功运行的组件,按照所述目标执行序列中的先后顺序,依次写入未成功运行队列中;

依次判断所述未成功运行队列中未被遍历过的组件的上游组件是否已成功运行;

若是,则将上游组件已成功运行的组件排列在所述已成功运行队列中最后一个组件之后,写入所述已成功运行队列中;

若否,则返回执行依次判断所述未成功运行队列中未被遍历过的组件的上游组件是否已成功运行的步骤,直至遍历完所述未成功运行队列中的所有组件;

将所述已成功运行队列中的组件的排序结果,调整所述目标执行序列。

与现有技术相比,本申请的有益效果为:

在本申请中,获取目标数据分析模型,并根据所述目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,完成对组件的执行顺序的静态排序,在完成静态排序的基础上,按照目标执行序列,对目标数据分析模型中的各个组件进行模拟运行,验证目标执行序列的准确性,并根据模拟运行的结果调整目标执行序列,完成对目标执行序列的修正,在修正之后,将所述目标执行序列替换为调整后的目标执行序列,并返回执行按照所述目标执行序列,对所述目标数据分析模型进行模拟运行的步骤,直至所述目标数据分析模型进行模拟运行的结果为所有组件均成功运行,并将能保证所有组件均成功运行的目标执行序列作为待使用执行序列,完成对组件的执行顺序的确定,并保证组件的执行顺序的准确性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请提供的数据分析模型中组件的排序方法的一种流程图;

图2是本申请提供的目标数据分析模型的一种举例示意图;

图3是本申请提供的目标执行序列的一种举例示意图;

图4是本申请提供的调整后的目标执行序列的一种举例示意图;

图5是本申请提供的数据分析模型中组件的排序装置的一种逻辑结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种数据分析模型中组件的排序方法,包括:获取目标数据分析模型;根据所述目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,作为目标执行序列;按照所述目标执行序列,对所述目标数据分析模型中的各个组件进行模拟运行;根据模拟运行的结果调整所述目标执行序列,并将所述目标执行序列替换为调整后的目标执行序列,并返回执行按照所述目标执行序列,对所述目标数据分析模型进行模拟运行的步骤,直至所述目标数据分析模型进行模拟运行的结果为所有组件均成功运行;将所述目标执行序列作为待使用执行序列。在本申请中,能够完成组件的执行顺序的确定,并保证组件的执行顺序的准确性。

接下来对本申请实施例公开的数据分析模型中组件的排序方法进行介绍,请参见图1,可以包括:

步骤s11、获取目标数据分析模型。

本实施例中,可以在目标数据分析模型构建完成之后,由处理器自动获取目标数据分析模型。或者,由用户输入目标数据分析模型至处理器。

其中,目标数据分析模型由多个组件(如,输入组件、算法组件或输出组件)及组件间的连线组成。

步骤s12、根据所述目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,作为目标执行序列。

在步骤s11获取到目标数据分析模型后,可以确定出目标数据分析模型中组件间的连线关系,在此基础上,可以根据目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列。

组件间的执行顺序序列,可以理解为:各个组件的执行顺序组成的序列。

步骤s13、按照所述目标执行序列,对所述目标数据分析模型中的各个组件进行模拟运行。

按照所述目标执行序列,对所述目标数据分析模型中的各个组件进行模拟运行,验证各个组件是否能正常运行。

按照所述目标执行序列,对所述目标数据分析模型中的各个组件进行模拟运行,会输出模拟运行的结果。模型运行的结果包括各个组件是否正确运行的结果。

步骤s14、若模拟运行的结果中存在未成功运行的组件,则根据模拟运行的结果调整所述目标执行序列,并将所述目标执行序列替换为调整后的目标执行序列,并返回执行步骤s13,直至所述目标数据分析模型进行模拟运行的结果为所有组件均成功运行。

若模拟运行的结果中存在未成功运行的组件,则需要根据模拟运行的结果调整目标执行序列,并将目标执行序列替换为调整后的目标执行序列,并返回执行步骤s13,直至对所述目标数据分析模型进行模拟运行的结果为所有组件均成功运行。

步骤s15、将所述目标执行序列作为待使用执行序列。

将对所述目标数据分析模型进行模拟运行的结果为所有组件均成功运行时对应的目标执行序列作为待使用执行序列,使得按照待使用执行序列能够保证目标数据分析模型中的各个组件均能成功运行。

在本申请中,获取目标数据分析模型,并根据所述目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,完成对组件的执行顺序的静态排序,在完成静态排序的基础上,按照目标执行序列,对目标数据分析模型中的各个组件进行模拟运行,验证目标执行序列的准确性,并根据模拟运行的结果调整目标执行序列,完成对目标执行序列的修正,在修正之后,将所述目标执行序列替换为调整后的目标执行序列,并返回执行按照所述目标执行序列,对所述目标数据分析模型进行模拟运行的步骤,直至所述目标数据分析模型进行模拟运行的结果为所有组件均成功运行,并将能保证所有组件均成功运行的目标执行序列作为待使用执行序列,完成对组件的执行顺序的确定,并保证组件的执行顺序的准确性。

在本申请的另一个实施例中,对前述实施例中步骤s12、根据所述目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,作为目标执行序列进行介绍,可以包括:

a11、根据所述目标数据分析模型中组件间的连线关系,从所述目标数据分析模型中无上游组件且未被遍历过的组件中选取一个,作为头组件。

上游组件,可以理解为:在两个组件的连线方向上,处于上游的组件。

a12、判断队列中是否存在组件。

若不存在,将所述头组件作为第一个组件,写入所述队列中,若存在,则将所述头组件排列在所述队列中最后一个组件之后,写入所述队列中。

a13、从所述头组件开始,采用递归查询的方式,依次查找所述头组件所属分支中各个组件是否存在下游组件。

若存在,则执行步骤a14;若不存在,则返回执行步骤a11,直至遍历完所述目标数据分析模型中所有组件。

下游组件,可以理解为:在两个组件的连线方向上,处于下游的组件。

需要说明的是,若所述头组件所属分支中组件存在n个输出引脚,所述n为不小于2的整数,则查找所述头组件所属分支中组件是否存在下游组件,可以包括:

按照设定顺序,查找所述头组件所属分支中组件的各个输出引脚下是否存在下游组件。

设定顺序可以根据需要进行设置。具体可以为从左至右的顺序,或者,从右至左的顺序。

a14、判断所述队列中是否已存在所述下游组件。

若否,则执行步骤a15。

a15、将所述下游组件排列在所述队列中最后一个组件之后,写入所述队列中。

a16、将所述队列中的组件的排列顺序,作为所述目标执行序列。

在本实施例中,现举例对步骤a11-a16进行说明。例如,目标数据分析模型为图2所示的模型,根据图2所示的目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,作为目标执行序列的过程,可以包括:

查找所有输入组件,即图2中的输入组件1、输入组件2、输入组件3;

循环每个输入组件,递归寻找其下游组件,若该组件有2个输出引脚(如算法组件3),则先递归寻找左边引脚,再递归寻找右边引脚,依次将其下游组件找出,并放入队列中,若组件重复,则不放入,直到所有输入组件都完成递归。由此可得到目标执行序列,如图3所示。

更为具体地,确定目标执行序列的过程:

a.将输入组件1加入队列,执行顺序为1;

b.找到输入组件1的下游组件“算法组件1”,将算法组件1加入队列,执行顺序为2;

c.找到算法组件1的下游组件“算法组件2”,将算法组件2加入队列,执行顺序为3;

d.找到算法组件2的下游组件“算法组件3”,将算法组件3加入队列,执行顺序为4;

e.找到算法组件3左侧引脚的下游组件“算法组件5”,将算法组件5加入队列,执行顺序为5;找到算法组件5的下游组件“输出组件1”,将输出组件1加入队列,执行顺序为6;

f.采用递归算法,回到算法组件3的右侧引脚,找到下游组件“算法组件6”,将算法组件6加入队列,执行顺序为7;找到算法组件6的下游组件“输出组件2”,将输出组件2加入队列,执行顺序为8;

g.找到第二个输入组件“输入组件2”,将其加入队列,执行顺序为9;

h.找到输入组件2的下游组件“算法组件4”,将其加入队列,执行顺序为10;

i.找到算法组件4的下游组件“算法组件3”,但算法组件3已经在队列中,不再重复添加;递归查找算法组件3的下游组件,包含算法组件5、输出组件1、算法组件6、输出组件2,但这些组件都已经在队列中,不再重复添加;

j.找到最后一个输入组件“输入组件3”,将其加入队列,执行顺序为11。

在本申请的另一个实施例中,对前述实施例中根据模拟运行的结果调整所述目标执行序列的过程进行介绍,具体可以包括:

b11、将模拟运行的结果为成功运行的组件,按照所述目标执行序列中的先后顺序,依次写入已成功运行队列中。

b12、将模拟运行的结果为未成功运行的组件,按照所述目标执行序列中的先后顺序,依次写入未成功运行队列中。

b13、依次判断所述未成功运行队列中未被遍历过的组件的上游组件是否已成功运行。

本实施例中,可以从已成功运行队列中查找是否存在未成功运行队列中未被遍历过的组件的上游组件,若存在,则说明未成功运行队列中未被遍历过的组件的上游组件已成功运行。

若是,则执行步骤b14;若否,则返回执行步骤b13,直至遍历完所述未成功运行队列中的所有组件。

b14、将上游组件已成功运行的组件排列在所述已成功运行队列中最后一个组件之后,写入所述已成功运行队列中。

b15、将所述已成功运行队列中的组件的排序结果,调整所述目标执行序列。

本实施例中,仍以前述实施例中图2所示的模板数据分析模型及图3示出的目标执行序列为例,对步骤b11-b15的过程进行说明,具体如下:

a.首先模拟运行输入组件1,可以成功运行,将输入组件1写入已成功运行队列中;

b.模拟运行算法组件1,其上游组件输入组件1已运行,可以成功运行,将算法组件1写入已成功运行队列中;

c.模拟运行算法组件2,其上游组件算法组件1已运行,可以成功运行,将算法组件2写入已成功运行队列中;

d.模拟运行算法组件3,其上游组件为算法组件2、算法组件4,由于算法组件4未运行,因此算法组件3无法运行,将无法运行的组件加入到一个未成功运行队列中,后续每运行完一个算法组件,均到未成功运行队列中检查,是否有组件已经可以运行;

e.模拟运行算法组件5、输出组件1、算法组件6、输出组件2,均由于上游组件未运行,加入到未成功运行队列中;

f.模拟运行输入组件2,可以成功运行,将输入组件2写入已成功运行队列中;

g.模拟运行算法组件4,其上游组件为输入组件2、输入组件3,由于输入组件3未运行,算法组件4无法运行,加入到未成功运行队列中;

h.模拟运行输入组件3,可以成功运行,将输入组件3写入已成功运行队列中;

i.至此,已经循环到队列末尾,但未成功运行队列中还有组件存在,包含算法组件3、算法组件5、输出组件1、算法组件6、输出组件2、算法组件4。遍历未成功运行队列中每个组件,检查其全部上游组件是否均已成功运行,发现算法组件4可以运行,将算法组件4写入已成功运行队列中;

j最后,算法组件3、算法组件5、输出组件1、算法组件6、输出组件2,都相继可以成功运行,所有组件都已完成模拟运行。

最终得出已成功运行队列中的组件的排序结果,如图4所示。

接下来对本申请提供的数据分析模型中组件的排序装置进行介绍,下文介绍的数据分析模型中组件的排序装置与上文介绍的数据分析模型中组件的排序方法可相互对应参照。

请参见图5,数据分析模型中组件的排序装置包括:获取模块11、第一确定模块12、模拟运行模块13、调整模块14和第二确定模块15。

获取模块11,用于获取目标数据分析模型。

第一确定模块12,用于根据所述目标数据分析模型中组件间的连线关系,确定所述目标数据分析模型中组件间的执行顺序序列,作为目标执行序列。

模拟运行模块13,用于按照所述目标执行序列,对所述目标数据分析模型中的各个组件进行模拟运行。

调整模块14,用于若模拟运行的结果中存在未成功运行的组件,则根据模拟运行的结果调整所述目标执行序列,并将所述目标执行序列替换为调整后的目标执行序列,并返回执行所述模拟运行模块13,直至对所述目标数据分析模型进行模拟运行的结果为所有组件均成功运行。

第二确定模块15,用于将所述目标执行序列作为待使用执行序列。

本实施例中,所述第一确定模块,具体可以用于:

根据所述目标数据分析模型中组件间的连线关系,从所述目标数据分析模型中无上游组件且未被遍历过的组件中选取一个,作为头组件;

判断队列中是否存在组件,若不存在,将所述头组件作为第一个组件,写入所述队列中,若存在,则将所述头组件排列在所述队列中最后一个组件之后,写入所述队列中;

从所述头组件开始,采用递归查询的方式,依次查找所述头组件所属分支中各个组件是否存在下游组件;

若不存在,则返回执行根据所述目标数据分析模型中组件间的连线关系,从所述目标数据分析模型中无上游组件且未被遍历过的组件中选取一个,作为头组件的步骤,直至遍历完所述目标数据分析模型中所有组件;

若存在,则判断所述队列中是否已存在所述下游组件;

若否,将所述下游组件排列在所述队列中最后一个组件之后,写入所述队列中;

将所述队列中的组件的排列顺序,作为所述目标执行序列。

本实施例中,若所述头组件所属分支中组件存在n个输出引脚,所述n为不小于2的整数,则所述第一确定模块查找所述头组件所属分支中组件是否存在下游组件的过程,具体可以包括:

按照设定顺序,查找所述头组件所属分支中组件的各个输出引脚下是否存在下游组件。

本实施例中,所述调整模块,具体可以用于:

将模拟运行的结果为成功运行的组件,按照所述目标执行序列中的先后顺序,依次写入已成功运行队列中;

将模拟运行的结果为未成功运行的组件,按照所述目标执行序列中的先后顺序,依次写入未成功运行队列中;

依次判断所述未成功运行队列中未被遍历过的组件的上游组件是否已成功运行;

若是,则将上游组件已成功运行的组件排列在所述已成功运行队列中最后一个组件之后,写入所述已成功运行队列中;

若否,则返回执行依次判断所述未成功运行队列中未被遍历过的组件的上游组件是否已成功运行的步骤,直至遍历完所述未成功运行队列中的所有组件;

将所述已成功运行队列中的组件的排序结果,调整所述目标执行序列。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

以上对本申请所提供的一种数据分析模型中组件的排序方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1