一种面向多请求的科学工作流数据集存储方法与流程

文档序号:23705151发布日期:2021-01-23 12:51阅读:102来源:国知局
一种面向多请求的科学工作流数据集存储方法与流程

[0001]
本发明属于云存储领域,具体涉及一种面向多请求的科学工作流数据集存储方法。


背景技术:

[0002]
科学工作流系统是一种数据集密集型应用,主要通过对科学计算产生的海量数据进行数据分析、结果验证,然后按照整体研究流程将这些数据顺序的组织起来,形成一个自动化或者半自动化的流系统,在运行科学工作流任务期间通常会产生大量具有复杂依赖关系的中间数据集(中间结果)以及非中间数据集,中间数据集常常是科研工作不可或缺的数据集,这些中间数据集的数据集量庞大,需要在科学工作流管理过程中权衡这些中间数据集的存储以及删除,实现对数据集的管理。
[0003]
云环境的出现为科学工作流系统提供了一个相对较好的发展平台,云环境下科学工作流的花费主要包含两种,存储花费以及执行花费,前者主要为存储在云环境中的数据花费,后者主要为使用云计算资源执行程序生成数据所需要的花费。理论上所有的数据文件都可以进行存储,但是对于一些不经常访问的文件来说,完全存储就会造成资源浪费,一般会对中间数据集选择性存储,以降低云环境下科学工作流系统的总费用。中间数据集在删除后,再次访问该中间数据集时需要重新生成该中间数据集,而访问请求并不单一,同时访问多个中间数据集需要重新生成这些中间数据集,但是有些数据集依赖其他数据集生成,因此会重复生成一些中间数据集,使得云环境下科学工作流的花费较高。


技术实现要素:

[0004]
为了解决现有技术中存在的上述问题,本发明提供了一种面向多请求的科学工作流数据集存储方法。本发明要解决的技术问题通过以下技术方案实现:
[0005]
本发明实施例提供的一种面向多请求的科学工作流数据集存储方法,包括:
[0006]
获取当前时间前科学工作流执行任务时产生的数据集,所述数据集包括起始数据集以及中间数据集;
[0007]
基于所述数据集之间的依赖关系,建立工作流表示模型;
[0008]
基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略;
[0009]
计算每一个存储策略对应的存储代价;
[0010]
获取当前时间的包含多个访问请求的请求列表;
[0011]
将所述访问请求进行希尔排序,获得排序列表;
[0012]
在所述工作流表示模型中确定所述排序列表对应的待访问中间数据集的生成顺序;
[0013]
按照所述生成顺序,计算在每个存储策略下生成所述待访问中间数据集时的总再生代价;
[0014]
针对每个存储策略,基于该存储策略对应的存储代价以及总再生代价,计算该存储策略的总代价;
[0015]
确定总代价最小的存储策略为最优存储策略;
[0016]
按照所述最优存储策略对应的数据集的存储状态,对所述数据集进行存储;
[0017]
其中,所述存储状态包括:已存储和未存储。
[0018]
可选的,所述基于所述数据集之间的依赖关系,建立工作流表示模型的步骤包括:
[0019]
将所述科学工作流执行的每个任务作为预设的有向无环图的节点,每个任务包括输入数据集以及输出数据集;
[0020]
从第一个节点至最后一个节点中的任一当前节点,将所述当前数据集作为所述有向无环图的当前节点的输入,将依赖所述当前数据集生成的中间数据集作为所述当前节点的输出,将当前任务的执行时间作为当前数据集与依赖该当前数据集生成的中间数据集之间的连接权值,获得工作流表示模型。
[0021]
可选的,所述基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略的步骤包括:
[0022]
在所述工作流表示模型中从起始数据集至最后一个数据集的每一个路径,将每个路径上的数据集在所述工作流表示模型中不同的存储状态,按照所述数据集在所述工作流表示模型中的依赖顺序组成存储策略。
[0023]
可选的,在所述基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略的步骤包括:
[0024]
将数据集按照其存储状态转换为二进制数;
[0025]
将每个数据集转化后的二进制数按照数据集的依赖顺序排列,获得转化为二进制串的多个存储策略。
[0026]
可选的,所述计算每一个存储策略对应的存储代价的步骤,包括:
[0027]
针对每个存储策略,使用存储代价计算公式计算该存储策略对应的存储代价;
[0028]
其中,存储代价计算公式为:
[0029][0030][0031]
其中,n表示总数据集个数,i表示数据集的序号,d表示数据集集合,d={d
0
,d
1
,

,d
n
},t表示数据集的存储时间长度,x表示数据集的存储状态集合,x={x
0
,x
1
,

,x
n
},d
i
表示第i个数据集,x
i
表示d
i
的存储状态,s
i
表示数据集d
i
的大小,当x
i
=1时,表示数据集d
i
存储,当x
i
=0时,表示数据集d
i
未存储,p
s
是常数表示云存储价格,s
i
,t,x
i
则可以通过第一次运行程序时获取得到。
[0032]
可选的,所述按照所述排序列表中待访问中间数据集的生成顺序,计算在每个存储策略下生成所述待访问中间数据集的总再生代价的步骤,包括:
[0033]
基于所述工作流表示模型中所述待访问中间数据集的前驱数据集,使用代价计算公式计算在每个存储策略下生成所述待访问中间数据集的总再生代价;
[0034]
代价计算公式为:
[0035]
[0036][0037][0038]
其中,ζ
r
(l,τ|x)表示在每个存储策略下生成待访问中间数据集的总再生代价,l表示在存储时间长度t内所有请求列表的总集合,l={l
1
,l
2
,l
3
,

,l
m
},m表示请求列表的总数,l
i
表示第i个请求列表,τ表示数据集的生成时间的总集合,τ={τ
1

2
,


n
},τ
i
表示数据集d
i
的生成时间,x={x
1
,x
2
,x
3
,

,x
n
},x表示工作流中数据集的存储状态集合,x
i
=0表示数据集被删除,x
i
=1表示数据集d
i
被存储,j
k
表示排序后的访问请求的下标,k表示排序后的访问请求的序号,γ(l
i
)表示l
i
中的访问请求进行排序后,访问请求的下标组成的列表,表示生成请求访问对应数据集的再生代价,表示数据集的生成时间,表示计算l
i
中第k个数据集的再生代价时,数据集d
h
所对应的存储状态,表示γ(l
i
)中第k个访问请求或第k个访问请求对应的数据集,表示在生成第k+1个数据集时,将数据集d
h
更新为存储状态,h表示preset(j
k
)内的值,p
r
为常数,表示云环境下的计算价格,preset(j
k
)表示数据集的前驱节点的下标集合,r(d
h
)表示访问请求访问数据集d
h
的再生代价。
[0039]
可选的,所述针对每个存储策略,基于该存储策略对应的存储代价以及所述总再生代价,计算该存储策略的总代价的步骤包括:
[0040]
针对每个存储策略,将该存储策略对应的存储代价以及该存储策略的总再生代价求和,确定总代价。
[0041]
可选的,所述针对每个存储策略,将该存储策略对应的存储代价以及该存储策略的总再生代价求和,确定总代价的步骤,包括:
[0042]
针对每个存储策略,将该存储策略对应的存储代价以及该存储策略的总再生代价使用总代价公式求和,确定总代价;
[0043]
其中,所述总代价计算公式为:
[0044]
ζ(d,x,t,l)=ζ
s
(d,t|x)+ζ
r
(l,τ|x)
[0045]
其中,ζ(d,x,t,l)表示总代价,ζ
s
(d,t|x)表示存储代价,ζ
r
(l,τ|x)表示总再生代价,d表示数据集集合,d={d
0
,d
1
,

,d
n
},x={x
1
,x
2
,x
3
,

,x
n
}表示工作流中数据集的存储状态,x
i
=0表示数据集被删除,x
i
=1表示数据集被存储,t表示数据集的存储时间长度,l表示在存储时间长度t内所有请求列表的总集合,l={l
1
,l
2
,l
3
,

,l
m
},m表示请求列表的总数,τ表示数据集的生成时间的总集合,τ={τ
1

2
,


n
},m表示请求列表的总数。
[0046]
可选的,所述确定总代价最小的存储策略为最优存储策略的步骤,包括:
[0047]
利用遗传算法,确定总成本最小的存储策略;
[0048]
将总代价最小的存储策略确定为最优存储策略。
[0049]
可选的,所述利用遗传算法,确定总成本最小的存储策略的步骤包括:
[0050]
获取遗传算法的种群;
[0051]
将所述种群初始化后进编码,得到多个染色个体,每个染色个体的位值与总数据
集个数相同,每个染色个体对应一个二进制串的存储策略;
[0052]
将总代价最小作为染色个体的适应度,重复执行使用计算算子对每个染色个体进行操作,获得总代价最小的染色个体,并产生新的染色个体加入所述种群直至达到截止条件;
[0053]
当达到截止条件时,将总代价最小的染色个体对应的存储策略确定为总代价最小的存储策略。
[0054]
本发明实施例通过一种面向多请求的科学工作流数据集存储方法,通过工作流的数据集构建工作流表示模型,确定对个存储策略,当多请求访问访问多个数据集时,对多个访问请求进行希尔排序,然后根据排序后的访问请求在工作流表示模型中的数据集的生成顺序,分别计算在每个存储策略下多个访问请求访问的数据集的再生代价以及每个存储策略对应的存储代价,计算每个存储策略的总代价,按照总代价最小的存储策略对应的数据集的存储状态,对数据集进行存储。因此本发明可以在多访问请求访问多个数据集时,降低云环境下科学工作流的花费。
[0055]
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
[0056]
图1是本发明实施例提供的一种面向多请求的科学工作流数据集存储方法的流程图;
[0057]
图2a是本发明实施例提供的工作流表示模型的结构示意图;
[0058]
图2b是本发明实施例提供的工作流数据关系依赖图;
[0059]
图3a是本发明实施例提供的多个访问请求对应的多个数据集的结构示意图;
[0060]
图3b是本发明实施例提供的按生成顺序生成数据集的过程示意图;
[0061]
图4是本发明实施例提供的遗传算法求解的流程图。
具体实施方式
[0062]
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
[0063]
实施例一
[0064]
如图1所示,本发明实施例提供的一种面向多请求的科学工作流数据集存储方法,包括:
[0065]
s1,获取当前时间前科学工作流执行任务时产生的数据集。
[0066]
其中,所述数据集包括起始数据集以及中间数据集;
[0067]
s2,基于数据集之间的依赖关系,建立工作流表示模型;
[0068]
其中,依赖关系是指数据集生成时,依赖的数据集与自身的关系。
[0069]
参考图2a,图2a为含有9个数据集的非线性科学工作流任务获取的科学工作流任务执行产生的中间数据集。根据数据集之间的依赖关系,得到工作流表示模型,工作流表示模型为有向无环图。在图2a中,d
i
表示第i个数据集,箭头表示数据集之间的依赖关系,d
0
指向d
1
表示d
0
生成d
1
,d
1
指向d
2
、d
3
、d
4
,表示d
1
生成数据集d
2
、d
3
、d
4

[0070]
参考图2b,图2b是含有9个数据集非线性科学工作流数据集依赖图,基于图2a工作
流模型图,以任务执行时间作为连接权值,省去中间的任务表示,构建得到数据集依赖关系图,该图可以表示工作流表示模型中的数据集的依赖关系。
[0071]
s3,基于数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略;
[0072]
s4,计算每一个存储策略对应的存储代价;
[0073]
s5,获取当前时间的多个访问请求;
[0074]
s6,将访问请求进行希尔排序,获得排序列表;
[0075]
可以理解,针对多请求访问按照数据依赖关系,对多个请求进行希尔排序,构造多请求之间的生成顺序,得到一个的排序列表。
[0076]
参考图3a以及图3b,当数据集d3,d5,d7,d8的四个访问请求同时到达时,按照图3b中步骤一至步骤五的顺序,先对访问请求进行排序,然后按照次序逐一生成,生成方式与单请求访问相同。同时访问的多个数据集如果未存储,会重新生成。在生成过程中已生成的数据集会暂时保存,用以生成之后访问请求访问的数据集。
[0077]
s7,在工作流表示模型中确定所述排序列表对应的待访问中间数据集的生成顺序;
[0078]
s8,按照生成顺序,计算在每个存储策略下生成待访问中间数据集的再生代价;
[0079]
s9,针对每个存储策略,基于该存储策略的存储代价以及再生代价,计算该存储策略的总代价;
[0080]
s10,确定总代价最小的存储策略为最优存储策略;
[0081]
s11,按照最优存储策略对应的数据集的存储状态,对所述数据集进行存储。
[0082]
其中,所述存储状态包括:已存储和未存储。
[0083]
本发明实施例通过一种面向多请求的科学工作流数据集存储方法,通过工作流的数据集构建工作流表示模型,确定对个存储策略,当多请求访问访问多个数据集时,对多个访问请求进行希尔排序,然后根据排序后的访问请求在工作流表示模型中的数据集的生成顺序,分别计算在每个存储策略下多个访问请求访问的数据集的再生代价以及每个存储策略对应的存储代价,计算每个存储策略的总代价,按照总代价最小的存储策略对应的数据集的存储状态,对数据集进行存储。因此本发明可以在多访问请求访问多个数据集时,降低云环境下科学工作流的花费。
[0084]
实施例二
[0085]
作为本发明可选的一种实施例,上述s2的步骤包括:
[0086]
步骤a:将所述科学工作流执行的每个任务作为预设的有向无环图的节点,每个任务包括输入数据集以及输出数据集;
[0087]
步骤b:从第一个节点至最后一个节点中的任一当前节点,将所述当前数据集作为所述有向无环图的当前节点的输入,将依赖所述当前数据集生成的中间数据集作为所述当前节点的输出,将当前任务的执行时间作为当前数据集与依赖该当前数据集生成的中间数据集之间的连接权值,获得工作流表示模型。
[0088]
参考图2b,由于使用有向无环图的形式将数据集之间按照数据依赖关系组织起来,因此数据集之间以任务相连接,每个任务包括输入数据和输出数据,每个任务至少都包含一个输出与一个输出。程序的输入可以是多个,也可以是单个数据。此后进一步将工作流模型图抽象,数据之间相互连接的数据工作流表示模型,以任务执行的时间作为连接权值,
表示数据之间的派生关系,省去了中间的任务表示。
[0089]
实施例三
[0090]
作为本发明可选的一种实施例,上述s3的步骤包括:
[0091]
在所述工作流表示模型中从起始数据集至最后一个数据集的每一个路径,将每个路径上的数据集在所述工作流表示模型中不同的存储状态,按照所述数据集在所述工作流表示模型中的依赖顺序组成存储策略。
[0092]
实施例四
[0093]
作为本发明可选的一种实施例,在所述基于所述数据集在所述工作流表示模型中的不同的存储状态,确定多个存储策略的步骤包括:
[0094]
步骤a:将数据集按照其存储状态转换为二进制数;
[0095]
步骤b:将每个数据集转化后的二进制数按照数据集的依赖顺序排列,获得转化为二进制串的多个存储策略。
[0096]
实施例五
[0097]
作为本发明可选的一种实施例,所述计算每一个存储策略的存储代价的步骤,包括:
[0098]
针对每个存储策略,使用存储代价计算公式计算该存储策略的存储代价;
[0099]
其中,存储代价计算公式为:
[0100][0101][0102]
其中,n表示总数据集个数,i表示数据集的序号,d表示数据集集合,d={d
0
,d
1
,

,d
n
},t表示数据集的存储时间长度,x表示数据集的存储状态集合,x={x
0
,x
1
,

,x
n
},d
i
表示第i个数据集,x
i
表示d
i
的存储状态,s
i
表示数据集d
i
的大小,当x
i
=1时,表示数据集d
i
存储,当x
i
=0时,表示数据集d
i
未存储。
[0103]
实施例六
[0104]
作为本发明可选的一种实施例,上述s8的步骤包括:
[0105]
基于所述工作流表示模型中所述待访问中间数据集的前驱数据集,使用代价计算公式计算在每个存储策略下生成所述待访问中间数据集的总再生代价;
[0106]
代价计算公式为:
[0107][0108][0109][0110]
其中,ζ
r
(l,τ|x)表示在每个存储策略下生成待访问中间数据集的总再生代价,l表示在存储时间长度t内所有请求列表的总集合,l={l
1
,l
2
,l
3
,

,l
m
},m表示请求列表的总数,l
i
表示第i个请求列表,τ表示数据集的生成时间的总集合,τ={τ
1

2
,


n
},τ
i
表示数据集d
i
的生成时间,x={x
1
,x
2
,x
3
,

,x
n
},x表示工作流中数据集的存储状态集合,x
i
=0表示数据集被删除,x
i
=1表示数据集d
i
被存储,j
k
表示排序后的访问请求的下标,k表示排
序后的访问请求的序号,γ(l
i
)表示l
i
中的访问请求进行排序后,访问请求的下标组成的列表,表示生成请求访问对应数据集的再生代价,表示数据集的生成时间,表示计算l
i
中第k个数据集的再生代价时,数据集d
h
所对应的存储状态,表示γ(l
i
)中第k个访问请求或第k个访问请求对应的数据集,表示在生成第k+1个数据集时,将数据集d
h
更新为存储状态,h表示preset(j
k
)内的值,p
r
为常数,表示云环境下的计算价格,preset(j
k
)表示数据集的前驱节点的下标集合,r(d
h
)表示访问请求访问数据集d
h
的再生代价。
[0111]
再生数据集需要对计算资源的调度,通过已有的数据集来生成未存储的数据集,因此计算代价同样与存储策略有关;
[0112][0113]
其中,r(d
i
)表示生成d
i
数据的再生代价,已存储的数据不需要通过再生便可直接访问,而访问未存储的数据,需要计算再生代价。
[0114]
可以理解,若要生成某个存储的中间数据集,有多种生成路径,这些路径代表生成中间数据的方式,通过已经存储的数据集,以及生成路径,便可以生成所需要的中间数据集。最差的方法是无论哪个节点都从初始数据集生成,这样找出需要生成的节点即可,但是这种做法无疑对资源造成了极大的浪费,因此寻找最节约资源的生成路径就显得比较重要。而最短生成路径无疑是找到所需要生成节点的必备前驱节点,而具体的方法便是,找出所需要生成节点的前驱节点,若前驱节点已经存储则停止,否则继续向前寻找前驱节点。这样做的好处是从目标节点(待访问数据集)向前搜索,找到生成该目标节点所需的前驱节点,不会造成资源浪费,而且路径也是最短的。
[0115]
假设待访问数据集为d
i
,这个找到d
i
的前驱节点的集合称为preset(i),这样单个数据集的再生代价公式如下:
[0116]
r(d
i
)=p
r
·
τ
i
+∑
h∈preset(i)
[r(d
h
)
·
(1-x
h
)]
[0117]
在该公式中,τ
i
表示每个数据集生成时间,对应有向无环图中的指向d
i
边的权,r(d
i
)表示生成d
i
单个数据集的再生代价,d
i
表示第i个数据集,p
r
为云环境下计算资源的计费单价,τ
i
表示每个数据集的生成时间,preset(i)表示数据集d
i
的前驱节点下标的集合,h则表示在preset(i)集合中的值,x
h
表示数据d
h
的存储状态,d
h
表示下标为h的数据集,r(d
h
)表示再生数据集d
h
的再生代价。
[0118]
针对多请求访问,多个访问请求进行希尔排序,构造多访问请求之间的生成顺序,之后可以采取暂存储的策略,对请求列表中排列靠前的访问请求对应在数据集生成之后,对该数据集进行暂存储,用以作为生成后面请求的输入,由此可得下述公式:
[0119][0120]
将上述单个的再生代价公式与上述公式整合,得到下述公式:
[0121]
[0122][0123]
此外生成代价与单独生成每个数据集时的生成时间以及访问次数有关,因此总代价计算公式为,
[0124][0125]
其中,ζ
r
(l,τ|x)表示在每个存储策略下生成待访问中间数据集的总再生代价,l表示在存储时间长度t内所有请求列表的总集合,l={l
1
,l
2
,l
3
,

,l
m
},m表示请求列表的总数,l
i
表示第i个请求列表,τ表示数据集的生成时间的总集合,τ={τ
1

2
,


n
},τ
i
表示数据集d
i
的生成时间,x={x
1
,x
2
,x
3
,

,x
n
},x表示工作流中数据集的存储状态集合,x
i
=0表示数据集被删除,x
i
=1表示数据集d
i
被存储,j
k
表示排序后的访问请求的下标,k表示排序后的访问请求的序号,γ(l
i
)表示l
i
中的访问请求进行排序后,访问请求的下标组成的列表,表示生成请求访问对应数据集的再生代价,表示数据集的生成时间,表示计算l
i
中第k个数据集的再生代价时,数据集d
h
所对应的存储状态,表示γ(l
i
)中第k个访问请求或第k个访问请求对应的数据集,表示在生成第k+1个数据集时,将数据集d
h
更新为存储状态,h表示preset(j
k
)内的值,p
r
为常数,表示云环境下的计算价格,preset(j
k
)表示数据集的前驱节点的下标集合,r(d
h
)表示访问请求访问数据集d
h
的再生代价。
[0126]
实施例七
[0127]
作为本发明可选的一种实施例,上述s9的步骤包括:
[0128]
将每个存储策略下生成所述目标中间数据集的再生代价求和,得到总再生代价。
[0129]
实施例八
[0130]
作为本发明可选的一种实施例,上述将每个存储策略下生成所述目标中间数据集的再生代价求和,得到总再生代价的步骤包括:
[0131]
针对每个存储策略,将该存储策略对应的存储代价以及该存储策略的总再生代价使用总代价公式求和,确定总代价;
[0132]
其中,所述总代价计算公式为:
[0133]
ζ(d,x,t,l)=ζ
s
(d,t|x)+ζ
r
(l,τ|x)
[0134]
d表示数据集集合,d={d
0
,d
1
,

,d
n
},x={x
1
,x
2
,x
3
,

,x
n
}表示工作流中数据集的存储状态,x
i
=0表示数据集被删除,x
i
=1表示数据集被存储,t表示数据集的存储时间长度,l表示在存储时间长度t内所有请求列表的总集合,l={l
1
,l
2
,l
3
,

,l
m
},m表示请求列表的总数,τ表示数据集的生成时间的总集合,τ={τ
1

2
,


n
},m表示请求列表的总数。
[0135]
可以理解,云环境下科学工作流系统的代价主要为两种,存储代价与再生代价,这两者都与存储策略相关。在确定了计算方式之后,每种存储策略都对应一个存储代价以及再生总代价,两者求和为存储策略的总代价。
[0136]
可以理解,每次访问可能存在多个访问请求,每次访问的所有访问请求将以请求列表形式存储在访问记录中。
[0137]
实施例九
[0138]
作为本发明可选的一种实施方式,上述s10的步骤包括:
[0139]
步骤a:利用遗传算法,确定总成本最小的存储策略;
[0140]
步骤b:将总代价最小的存储策略确定为最优存储策略。
[0141]
实施例十
[0142]
作为本发明可选的一种实施方式,所述确定总代价最小的存储策略为最优存储策略的步骤包括:
[0143]
步骤a:获取遗传算法的种群;
[0144]
步骤b:将所述种群初始化后进编码,得到多个染色个体,每个染色个体的位值与总数据集个数相同,每个染色个体对应一个二进制串的存储策略;
[0145]
步骤c:将总代价最小作为染色个体的适应度,重复执行使用计算算子对每个染色个体进行操作,获得总代价最小的染色个体,并产生新的染色个体加入所述种群直至达到截止条件;
[0146]
步骤d:当达到截止条件时,将总代价最小的染色个体对应的存储策略确定为总代价最小的存储策略。
[0147]
通过总代价计算可以获知每一个存储策略都对应一个总代价,因此解空间的大小对应的是存储策略的数目,确定总代价最小的存储策略就可以转换为如下形式:
[0148]
minζ(d,x,t,l)
[0149]
s.t.x={x
1
,x
2
,x
3
,

,x
n
}∈{0,1}
n
[0150]
d={d
1
,d
2
,d
3
,

,d
n
}
[0151]
t∈(0,+∞)
[0152]
解空间(种群空间)便对应各种存储策略是一串由0和1组成的串,科学工作流数据除了初始数据必须存储,其他数据都可以进行选择性存储,因此随着工作流规模的变大,因此一个n数据集的工作流,总的存储策略数为2
n-1
,解空间的复杂度为2
n-1
;由于存储策略x形式的特殊性,是的每种存储策略都类似于二进制串,因此我们可以利用穷举的算法将整个过程进行计算,最后找到其中的最优解。通过对最后对每种存储策略都调用计算模型来计算对应代价,最后寻找最小代价以及所对应的存储策略;使用进化遗传解决最小代价,简化计算,得到最优策略以及最小代价,由于解空间的复杂度非常高,随着工作流中数据集数目的增大,解空间中的解的个数会迅速增长,而科学研究中数据规模往往非常大,关系复杂,因此解空间的复杂度会迅速增加;采用遗传算法解决对应问题,同样由于存储的特殊性,每种存储状态都与进化算法的编码一样,可以节省编码解码过程,可以很方便地使用进化算法解决问题。
[0153]
种群中人口(染色个体)的本质是存储策略,即二进制串,算法就可以省去编码与解码的过程。其中x
i
表示一种存储策略。其中存在一些节点(数据集)确定存储,即对应的存储策略中对应位置始终为1,这些节点不参与计算算子变化,种群中人口对应二进制串长度为总节点数减去已存储的节点数;
[0154]
采用总成本作为适应度,f(0)={f
0
,f
1
,f
2
,

,f
n
},其中f
i
表示第i种存储策略对应的适应度,f
i
=ζ(d,x
i
,t,l)。通过经典遗传算法来求解整个过程。
[0155]
计算算子分为交叉算子,变异算子以及选择算子,其中交叉算子采用单点交叉对种群中两个人口编码进行交叉,产生新的编码作为新一代种群中的人口。采用变异算子使
得种群中的人口随机变异,若某个人口变异,则其所对应的编码中的一位随机从0变为1,或1变为0。此外选择算子通过轮盘赌的策略,以适应度作为标准,挑选出代价较小的人口,并随机产生新人口补充种群。迭代停止条件,最小代价保持不变或者迭代次数达到上限,在确定最优存储策略的过程中采用精英保留策略保证方法收敛,由于遗传算法本质上是一种随机搜索,并不能保证解的收敛性,因此对于遗传算法采用精英保留策略,来保证整个求解过程的收敛性。
[0156]
参考图4,图4为遗传算法求解的示例图,过程为:初始化种群,然后进行适应度计算,使用选择,交叉,变异等操作算子对种群进行更新,直到最优值保持不变,或者迭代次数达到限制时,输出最优个体。
[0157]
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0158]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0159]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0160]
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0161]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
[0162]
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求
中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
[0163]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1