首页 / 专利库 / 软件 / 物化视图 / 一种基于自适应遗传算法的物化视图选择方法

一种基于自适应遗传算法物化视图选择方法

阅读:666发布:2020-05-25

专利汇可以提供一种基于自适应遗传算法物化视图选择方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于自适应遗传 算法 的 物化视图 选择方法,本发明输入带视图大小及 访问 频率 属性的基于同一个事实表及其维表的候选物化视图集,按照映射规则将其映射到多维数据格中的 节点 ,构建多维数据格模型并定义其下的物化视图的开销模型,然后利用二进制编码将基于多维数据格模型的候选物化视图集转换成 遗传算法 可以处理的0-1整型数组,最后引入自适应调整交叉概率和变异概率的机制来改进遗传算法,并利用改进的遗传算法求解物化视图选择问题,在求解大规模物化视图选择问题时,与没有采用自适应机制的遗传算法及采用贪心策略的传统算法相比,采用本发明所述的方法所得的结果较优,可以选择合适的视图进行物化,最小化物化视图的总开销。,下面是一种基于自适应遗传算法物化视图选择方法专利的具体信息内容。

1.一种基于自适应遗传算法物化视图选择方法,其特征在于,该方法具体包括以下步骤:
步骤(1):输入带视图大小及访问频率属性的基于同一个事实表及其维表的候选物化视图集,根据候选物化视图SQL定义语句中group-by子句所包含的分组属性,按照映射规则将其映射到多维数据格中的节点
映射规则定义如下:SQL定义语句中包含分组属性最多的视图对应于多维数据格中的根节点,对于候选物化视图集中的任意两个视图,两个视图分别设为a和b,如果a视图SQL定义语句中包含的分组属性是b视图SQL定义语句中包含的分组属性的真子集,那么a视图所对应的节点是b视图所对应节点的子节点,多维数据格模型中,除根节点没有父节点外,其它的节点有且仅有一个直接父节点;
步骤(2):计算多维数据格模型下的物化视图的总开销;
设Q为多维数据格模型中所有待物化的候选视图集,q为Q中的一个视图,fq(q)表示q所对应的查询频率,M为物化视图集,QueryCost(Q,M)为物化视图的查询开销,MaintenanceCost(M)为物化视图的维护开销,Storage(M)为物化视图的存储开销,TotalCost(Q,M)为物化视图的总开销,avgq∈Q{fq(q)}为视图查询频率的均值,α为比例系数,TotalCost(Q,M)=QueryCost(Q,M)+α×(MaintenanceCost(M)+Storage(M)),其中α=
0.5×avgq∈Q{fq(q)};
步骤(3):利用二进制编码将基于多维数据格模型的候选物化视图集转换成遗传算法可以处理的0-1整型数组,并将步骤(2)所得的物化视图总开销的倒数作为遗传算法中个体适应度的大小;
多维数据格模型中节点的编号对应于数组的索引,数组元素的值决定是否对视图进行物化,数组元素为1表示该元素索引所对应节点的视图需要物化,数组元素为0表示该元素索引所对应节点的视图不需要物化;
步骤(4):设定初始种群规模n、最大迭代次数max_number,根据步骤(3)所得的0-1整型数组,利用随机算法产生n个个体作为初始种群;
步骤(5):进行选择操作,通过筛选保留种群中适应度高的个体,淘汰种群中适应度低的个体;设Population为种群,k为种群中的个体,Fit(x)为个体x所对应的适应度,则个体x被选择进入下一代的概率ps的计算函数如下所示:

步骤(6):计算交叉概率pc,为种群中的每个个体随机生成一个0到1之间的判定值flag_c,如果flag_c的值小于等于pc,则该个体要进行两点交叉操作,否则该个体不用进行两点交叉操作,pc的计算公式如下所示:

Fitmax为种群中个体的最大适应度,Fitmin为种群中个体的最小适应度,Fitavg为种群中个体的平均适应度;
两点交叉操作的过程如下:
为两个要进行交叉操作的个体随机设置两个不同的交叉点,两个交叉点分别设为point1和point2,将两个个体point1和point2之间的基因码进行交换产生新的个体;
步骤(7):计算变异概率pm,为种群中的每个个体随机生成一个0到1之间的判定值flag_m,如果flag_m的值小于等于pm,则该个体要进行变异操作,否则该个体不用进行变异操作,pm的计算公式如下所示:

变异操作的过程如下:
为要进行变异操作的个体随机确定一个基因位,如果基因位上元素的值为0则将其变为1,如果基因位上元素的值为1则将其变为0;
步骤(8):重复步骤(5)、(6)、(7),至迭代次数达到步骤(4)所设定的最大迭代次数max_number,最终代种群中适应度最大的个体就是要求的最优解,将其解码后输出就是要选择进行物化的视图集。

说明书全文

一种基于自适应遗传算法物化视图选择方法

技术领域

[0001] 本发明属于数据仓库技术领域,具体涉及到一种基于自适应遗传算法的物化视图选择方法。

背景技术

[0002] 借助数据仓库及在线联机分析处理技术对数据进行全面、科学的管理和多度、深入的分析和挖掘己成为当今企业决策分析的必要手段。通过OLAP查询可以快速发现数据背后隐藏的信息以用来辅助决策,但是OLAP查询在执行过程中往往需要对大量的数据进行选择、连接及投影操作,这是一个非常耗时的过程。为了实现快速联机分析处理操作,可以引入物化视图来解决这个问题。
[0003] 通过物化视图,数据仓库的性能可以成倍提高,它也构成了实现OLAP在线分析的重要手段。不过物化视图的引入又会带来新的问题,一方面保存物化视图需要额外的存储空间,另一方面物化视图的维护操作也成为了一个亟待解决的问题。特别是对包含海量数据的物化视图,随着原始数据的变化,物化视图中的汇总信息会与原始数据出现不一致,导致物化视图失效,此时物化视图就需要根据原始数据的变化,刷新其数据,保持与原始数据的一致性,对于基于海量数据的物化视图,维护开销是非常大的。物化视图选择问题就是如何选择合适的视图进行物化,最小化其总开销。
[0004] 物化视图选择问题已经被证明为NP完全问题,如果候选物化视图的个数为n,那么总共有2n种选择方案。采用枚举算法显然可以求得最优解,不过该算法开销太大,采用贪心算法求解往往得到局部最优解,而遗传算法适用于求解NP完全问题,经过有限次数的迭代可以获得问题的近似最优解甚至是最优解。

发明内容

[0005] 本发明针对现有技术的不足,提供了一种基于自适应遗传算法的物化视图选择方法。
[0006] 本发明一种基于自适应遗传算法的物化视图选择方法,具体包括以下步骤:
[0007] 步骤(1).输入带视图大小及访问频率属性的基于同一个事实表及其维表的候选物化视图集,根据候选物化视图SQL定义语句中group-by子句所包含的分组属性,按照映射规则将其映射到多维数据格中的节点
[0008] 映射规则定义如下:SQL定义语句中包含分组属性最多的视图对应于多维数据格中的根节点,对于候选物化视图集中的任意两个视图,两个视图分别设为a和b,如果a视图SQL定义语句中包含的分组属性是b视图SQL定义语句中包含的分组属性的真子集,那么a视图所对应的节点是b视图所对应节点的子节点,多维数据格模型中,除根节点没有父节点外,其它的节点有且仅有一个直接父节点;
[0009] 步骤(2).计算多维数据格模型下的物化视图的总开销;
[0010] 设Q为多维数据格模型中所有待物化的候选视图集,q为Q中的一个视图,fq(q)表示q所对应的查询频率,M为物化视图集,QueryCost(Q,M)为物化视图的查询开销,MaintenanceCost(M)为物化视图的维护开销,Storage(M)为物化视图的存储开销,TotalCost(Q,M)为物化视图的总开销,avgq∈Q{fq(q)}为视图查询频率的均值,α为比例系数,TotalCost(Q,M)=QueryCost(Q,M)+α×(MaintenanceCost(M)+Storage(M)),其中α=0.5×avgq∈Q{fq(q)}。
[0011] 步骤(3).利用二进制编码将基于多维数据格模型的候选物化视图集转换成遗传算法可以处理的0-1整型数组,并将步骤(2)所得的物化视图总开销的倒数作为遗传算法中个体适应度的大小;
[0012] 多维数据格模型中节点的编号对应于数组的索引,数组元素的值决定是否对视图进行物化,数组元素为1表示该元素索引所对应节点的视图需要物化,数组元素为0表示该元素索引所对应节点的视图不需要物化。
[0013] 步骤(4).设定初始种群规模n、最大迭代次数max_number,根据步骤(3)所得的0-1整型数组,利用随机算法产生n个个体作为初始种群;
[0014] 步骤(5).进行选择操作,通过筛选保留种群中适应度高的个体,淘汰种群中适应度低的个体;设Population为种群,k为种群中的个体,Fit(x)为个体x所对应的适应度,则个体x被选择进入下一代的概率ps的计算函数如下所示:
[0015]
[0016] 步骤(6).计算交叉概率pc,为种群中的每个个体随机生成一个0到1之间的判定值flag_c,如果flag_c的值小于等于pc,则该个体要进行两点交叉操作,否则该个体不用进行两点交叉操作,pc的计算公式如下所示:
[0017]
[0018] Fitmax为种群中个体的最大适应度,Fitmin为种群中个体的最小适应度,Fitavg为种群中个体的平均适应度;
[0019] 两点交叉操作的过程如下:
[0020] 为两个要进行交叉操作的个体随机设置两个不同的交叉点,两个交叉点分别设为point1和point2,将两个个体point1和point2之间的基因码进行交换产生新的个体。
[0021] 步骤(7).计算变异概率pm,为种群中的每个个体随机生成一个0到1之间的判定值flag_m,如果flag_m的值小于等于pm,则该个体要进行变异操作,否则该个体不用进行变异操作,pm的计算公式如下所示:
[0022]
[0023] 变异操作的过程如下:
[0024] 为要进行变异操作的个体随机确定一个基因位,如果基因位上元素的值为0则将其变为1,如果基因位上元素的值为1则将其变为0。
[0025] 步骤(8).重复步骤(5)、(6)、(7),至迭代次数达到步骤(4)所设定的最大迭代次数max_number,最终代种群中适应度最大的个体就是要求的最优解,将其解码后输出就是要选择进行物化的视图集。
[0026] 本发明提出的方法根据候选物化视图集构建多维数据格模型,综合考虑物化视图的查询、维护及存储开销,给出确切的度量函数量化总开销,并将其作为遗传算法中判断个体适应度大小的依据,确定合理有效的自适应调整交叉概率及变异概率的机制,使得遗传算法在求解物化视图选择问题时,搜索速度快且不会过早收敛。在求解大规模物化视图选择问题时,与没有采用自适应机制的遗传算法及采用贪心策略的传统算法相比,采用本发明所述的方法所得的结果较优,可以选择合适的视图进行物化,最小化物化视图的总开销。附图说明
[0027] 图1基于自适应遗传算法的物化视图选择方法的步骤图;
[0028] 图2多维数据格模型图;
[0029] 图3自适应遗传算法求解流程图

具体实施方式

[0030] 本发明所提供的一种基于自适应遗传算法的物化视图选择方法的具体实施方式主要分3步(如图1所示):
[0031] (1)输入带视图大小及访问频率属性的基于同一个事实表及其维表的候选物化视图集,根据候选物化视图SQL定义语句中group-by子句所包含的分组属性,按照映射规则将其映射到多维数据格中的节点,构建多维数据格模型(如图2所示)并定义其下物化视图的开销模型;(2)利用二进制编码将基于多维数据格模型的候选物化视图集转换成遗传算法可以处理的0-1整型数组,节点的编号对应于数组的索引,数组元素的值决定是否对视图进行物化;(3)利用自适应调整交叉概率和变异概率的机制来改进遗传算法,并利用改进的遗传算法求解物化视图选择问题。
[0032] 为叙述方便,定义相关符号如下:
[0033] Q:多维数据格模型中所有待物化的候选视图集。
[0034] M:物化视图集。
[0035] q:Q中的一个视图查询。
[0036] fq(q):q所对应的查询频率。
[0037] qt(q,M):在物化视图集M已经存在的情况下,q查询所需的查询开销。
[0038] fm(v):物化视图v的维护频率。
[0039] mt(v,M):在物化视图集M存在的情况下,物化视图v所需的维护开销。
[0040] s(v):物化视图v所对应的存储开销。
[0041] QueryCost(Q,M):在Q和M确定的情况下,物化视图的查询开销。
[0042] MaintenanceCost(M):在M确定的情况下,物化视图的维护开销。
[0043] StorageCost(M):在M确定的情况下,物化视图的存储开销。
[0044] TotalCost(Q,M):在Q和M确定的情况下,物化视图的总开销。
[0045] α:比例系数,确定物化视图的维护开销在总开销中的比重。
[0046] β:比例系数,确定物化视图的存储开销在总开销中的比重。
[0047] Fit(x):个体x的适应度。
[0048] ps:选择概率。
[0049] pc:交叉概率。
[0050] pm:变异概率。
[0051] Fitmax:整个种群中个体适应度的最大值。
[0052] Fitmin:整个种群中个体适应度的最小值。
[0053] Fitavg:整个种群中个体适应度的平均值。
[0054] (1)构建多维数据格模型及相应的开销模型
[0055] 输入带视图大小及访问频率属性的候选物化视图集,根据候选物化视图SQL定义语句中group-by子句所包含的分组属性与多维数据格模型中节点的映射规则,构建相应的多维数据格模型。在多维数据格模型已经建立的条件下,物化视图的总开销度量函数定义如下:
[0056] TotalCost(Q,M)=QueryCost(Q,M)+α×(MaintenanceCost(M)+StorageCost(M))[0057] 其中比例系数α的定义如下:
[0058] α=0.5×avgq∈Q{fq(q)}
[0059] 其中查询开销QueryCost(Q,M)的度量函数定义如下:
[0060]
[0061] 其中维护开销MaintenanceCost(M)的度量函数定义如下:
[0062]
[0063] 其中存储开销StorageCost(M)的度量函数定义如下:
[0064]
[0065] (2)问题转换
[0066] 利用二进制编码将基于多维数据格模型的候选物化视图集转换成遗传算法可以处理的0-1整型数组,节点的编号对应于数组的索引,数组元素的值决定是否对视图进行物化,数组元素为1表示该元素索引所对应节点的视图需要物化,数组元素为0表示该元素索引所对应节点的视图不需要物化。
[0067] 在遗传算法求解过程中,个体的适应度越大,其进入下一代的机会就越大,当种群循环迭代终止时,此时种群中适应度最大的个体就是所求的最优解。为了能使遗传算法求解物化视图选择问题,这里将物化视图总开销的倒数作为遗传算法中个体适应度的大小,物化视图总开销越小,适应度越大,这样遗传算法迭代结束时,适应度最大的个体所对应的物化视图的总开销最小。
[0068] (3)自适应遗传算法求解物化视图选择问题
[0069] 设定初始种群规模n、最大迭代次数max_number,根据物化视图集转换后的0-1整型数组,利用随机算法产生n个个体作为初始种群;
[0070] 进行选择操作,通过筛选保留种群中适应度高的个体,淘汰种群中适应度低的个体;设Population为种群,k为种群中的个体,则个体x被选择进入下一代的概率ps的计算函数如下所示:
[0071]
[0072] 计算交叉概率pc,为种群中的每个个体随机生成一个0到1之间的判定值flag_c,如果flag_c的值小于等于pc,则该个体要进行两点交叉操作,否则该个体不用进行两点交叉操作,pc的计算公式如下所示:
[0073]
[0074] 两点交叉操作的过程如下:
[0075] 为两个要进行交叉操作的个体随机设置两个不同的交叉点,两个交叉点分别设为point1和point2,将两个个体point1和point2之间的基因码进行交换产生新的个体。
[0076] 计算变异概率pm,为种群中的每个个体随机生成一个0到1之间的判定值flag_m,如果flag_m的值小于等于pm,则该个体要进行变异操作,否则该个体不用进行变异操作,pm的计算公式如下所示:
[0077]
[0078] 变异操作的过程如下:
[0079] 为要进行变异操作的个体随机确定一个基因位,如果基因位上元素的值为0则将其变为1,如果基因位上元素的值为1则将其变为0。
[0080] 重复进行选择操作,计算交叉概率pc,交叉操作,计算变异概率pm,变异操作,至迭代次数达到最大迭代次数max_number,最终代种群中适应度最大的个体就是要求的最优解,将其解码后输出就是要选择进行物化的视图集。
[0081] 以上算法的具体实现过程如图3所示。
[0082] 本发明所提供的一种基于自适应遗传算法的物化视图选择方法由四个功能模组成,它们分别是构建多维数据格模块、度量总开销模块、问题转换模块以及自适应遗传算法求解模块。
[0083] 构建多维数据格模块根据候选物化视图SQL定义语句中group-by子句所包含的分组属性,按照映射规则将带视图大小及访问频率属性的候选物化视图集映射到多维数据格中的节点。
[0084] 度量总开销模块根据实际情况的需要,确定物化视图的查询开销、维护开销以及存储开销在总开销中的比重,计算总开销的度量值。
[0085] 问题转换模块利用二进制编码将基于多维数据格模型的候选物化视图集转换成遗传算法可以处理的0-1整型数组,并将度量总开销模块所得的物化视图总开销的倒数作为遗传算法中个体适应度的大小,节点的编号对应于数组的索引,数组元素的值决定是否对视图进行物化,数组元素为1表示该元素索引所对应节点的视图需要物化,数组元素为0表示该元素索引所对应节点的视图不需要物化。
[0086] 自适应遗传算法求解模块利用自适应调整交叉概率和变异概率的机制来改进遗传算法,并利用改进后的遗传算法求解问题转换后的物化视图选择问题。
[0087] 本发明可用于数据仓库中物化视图的选择,选择合适的视图进行物化,使得物化视图的总开销最小化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈