最小能耗优化云模型中的动态图挖掘方法(3)
时间:2015-10-21 10:21 文章来源:http://www.lunwenbuluo.com 作者:陈丽平a,郭鑫b 点击次数:
4.2算法基本思想
与传统频繁子图挖掘算法相比,动态图挖掘不仅需要考虑图搜索空间,而且还需考虑图的变化特征。在给定动态图数据库GDB与时间段te内,算法进行深度优先搜索,对于所有子搜索空间,首先得到频繁边与结点,然后进行边的扩展生成候选子图g,在生成完成后,计算候选图在GDB与时间段te内的动态支持度ESGDB(g|te),若ESGDB(g|te)大于等于最小支持度阈值,则g是频繁的,并继续深度优先搜索g的所有超图,若ESGDB(gIte)小于最小支持度,则g是非频繁,根据前面的定义,动态支持度满足Apriori性质,因此可知g的所有超图非频繁,则停止该次深度优先搜索,并返回到上一级搜索空间。在候选子图生成过程中,考虑到动态支持度的计算公式,在计算g动态支持度ESGDB(gIte)时,需要计算g的存在概率P((g.G)k),而对任意2个子图gt,且g^g,有ESGDB(gIU^ESGDB(gIU+ESGDB(g1IU,右边
是子图g动态支持度上限,而在搜索空间中,gi的支持度要先于g得到,因此可以利用先验知识来对候选子图进行裁剪操作。
在算法执行过程中,利用线性表随机访问与hash表快速查找的特性,设计一个基于线性表与hash表的图数据存储结构,将挖掘过程产生的数据存储保存起来,其中hash表存储频繁子图信息,线性表指向hash表。利用该结构可以快速存储频繁子图,也可以较快获得频繁子图,有利于图的快速匹配与候选子图的剪枝操作。
基于上述算法分析过程,本文采用MapReduce的分布式编程模型来设计动态图挖掘算法,并将算法应用于最小能耗优化云模型中,以达到系统能耗与性能的最优。主要包括如下3个阶段:
(1)并行扫描动态图数据库,得到边集合E_List与结点的集合V_List。
(2)串行构建基于哈希表结构的频繁边集FE_List与频繁1子图F1_List。
(3)并行挖掘频繁子图。
4.3算法设计
根据最小能耗优化云模型,选取一个计算结点作为主控结点。第一阶
段挖掘边集合E_List与结点的集合V_List,算法MEV(MiningEdgeandVertex)描述如下:
算法2MEV
输入动态图数据库GDB
输出边集合E_List与结点的集合V_List
(1)Map操作
扫描动态图数据库GDB,将图进行格式化<id,G>,其中,id为图标号,G为图字符串,分别统计结点与边的数量并作为中间分键值对<eIv,num>,并将此键值对发送到Reduce操作。
(2)Reduce操作
接受键值对并进行扫描操作,按节点与边的标识进行升序排列,将相同标识的结点与边进行合并,统计边与结点,以及边的权值,分别添加到边集合与结点的集合V_List中。
上述过程为并行执行过程,获得结点与边的效率较高,特别是在海量数据环境下,本文算法较传统算法效率提升显著。在得到所有的边与结点之后,通过一个串行算法获得频繁边集与频繁点集F1_List,由主控节点Driver随机选取一个计算结点来执行。算法GF1(GenerateFrequent1)执行过程如下:
算法3GF1
输入E_List与V_List,最小支持度s输出频繁边集与频繁点集F1_List
(1)构建图数据存储结构ArrayList<Pair<int,
string>>。
(2)扫描E_List与V_List,分别统计支持度计数,并根据最小支持度s,判断是否频繁,若频繁则将边与点添加到FE_List与F1_List中。
将得到的FE_List与F1_List进行排序,按支持度大小升序,若相同则按边的权值降序,并依次添加到图数据存储结构中。
在得到所有的频繁边与频繁点之后,进行候选子图的扩展,深度优先搜索其他频繁子图,直到产生所有的频繁子图,此过程为并行过程,并且需要扫描
动态图数据库。算法MFG(MiningFrequentGraph)执行过程如下:
算法4MFG
输入动态图数据库GDB,最小支持度s,
List、F1_List、时间段te
输出频繁子图集合FG_List
(1)Map操作
并行扫描GDB,将图存储到hash表中,将List与F1_List中频繁边与点对应的图id为键,频繁结点与边为值作为键值对发送到Reduce操作。
(2)Reduce操作
扫描键值对,获得频繁边与点,对边进行深度优先扩展生成候选子图,访问图数据存储结构与hash表计算其动态支持度,如果小于s则非频繁并返回上一层继续搜索,否则将其添加到FG_List中,并继续扩展点生成候选,若点的数量大于等于3,则需先判断,上限支持度进行剪枝,如果上限小于s,则非频繁,否则再计算其动态支持度。
5实验结果与分析
5.1实验环境与实验数据
实验验证任务分配算法、最小能耗优化云模型以及动态图挖掘算法的有效性与运行效率等。在学校工程实训中心搭建实验所需的软硬件环境,其中硬件环境如表3所示。
表3硬件配置
硬件名称硬件描述数量
2xE5560QC2.8Hz处理器,8GB
机架服务器PC3~8500DDR3内存,2x146GB10KB硬盘
高性能HS22刀片服务器,2x1
刀片服务器E5560QC2.8Hz处理器,8GBPC3~8500DDR3内存,2x146GB10KB硬盘10
光纤交换机中心存储光纤交换机含24x4GB端口,短波SFP模块2
存储阵列DS5300存储服务器,28TB光纤硬盘1
交换机Cisco6509,6电口交换机,双冗余电源1
将1台机架服务器作为主控结点,其他10台刀片服务器作为计算结点,通过光纤交换与存储陈列实现数据的快速存储与访问,可以满足海量数据挖掘的需求。
实验的软件环境为Linux操作系统,传统云平台环境是HadoopO.20.203与HadoopStudio,Java开发工具Eclipse,采用1.6.x版本,改进后的云计算环境是改进后的HadoopO.20.203,在其中加入了启发式搜索算法的中间件。
实验数据集分为人工模拟数据集与真实数据集2种。人工模拟数据集采用通用的图生成器来生成,可通过不同参数控制图的产生,并人为给每条边赋予一个权值并满足均值为m,方差为d2的正态分布。真实数据集采用NC/-//V化合物数据,可以从http://dtp.nci.nih.gov/上下载得到,对数据集进行预处理操作,将化合物的边与结点进行规范化命名以及根据化合物类别与边的属性添加边权值。
5.2实验设计与结果分析
实验共分为两部分,第一部分实验在模拟数据集上进行,首先生成不同规模的动态图数据库,生成参数设置为:GDB:MT40L500i22V6E6C0.2P0.5,数据规模为:D10,D15,D20,D25,D30,在最小能耗优化云与传统云平台中进行实验,在计算系统能耗时,需要对系统的运行情况进行监控,记录计算结点的数量、任务个数、执行时间等运行要素以得到系统空闲能耗与执行能耗,并最终得到平均能耗。实验结果如图3、图4所示。?
图3表示在传统云平台与最小能耗优化云中进行动态图挖掘的平均能耗对比,可以看出,最小能耗优化云的平均能耗要优于传统云平台,并且随着数据规模的增大,能耗优势愈明显。而能耗的优化并没有影响到算法在平台中的执行效率,图4给出了不同规模数据库在最小能耗云模型中的运行结果,从中可以看出,随着数据规模的增大,算法的加速性能越好,原因在于数据越多,所需的计算结点数量与计算任务也会越多,结点的空闲时间与消耗成本也会越少,可以充分发挥结点的计算性能,因此整个系统加速性能就越好。同时结点的数量也会影响到加速性能,结点数越多,系统计算性能越强,加速性能也就越好。
接着生成不同复杂程度的动态图数据库,主要调整动态图的边权值p使边的存在可能增加,生成参数设置为GDB:D10MT40L500i22V6,复杂度设置:CR1=E6C0.2P0.5,CR2=E7C0.3P0.6,CR3=E7C0.4P0.7,CR4=E8C0.5P0.8,CR5=E8C0.6P0.9。在最小能耗优化云与传统云平台中进行实验,平均能耗实验结果如图5所示。
从图5可知,随着边权值与图复杂程度的增加,系统的能耗也随之增加,这是由于边权值增加直接导致边的存在概率增加,候选子图在动态图数据库中的期望支持数也会增加,因此将会产生更多的频繁子图模式,所以算法需要更大的时间成本,导致了系统平均能耗的增加。同时图越复杂,计算结点的计算量会随之增加,如大量的子图同构测试等,因此系统的执行能耗与平均能耗也会增加。
第二部分实验在真实数据环境下测试最小能耗优化云模型与动态图挖掘算法。获取44000多个NCI4HV化合物数据并进行预处理操作,预处理后的化合物结构至少包含100个~200个结点与边。将所有数据分解成5个小的数据集,大小分别为5X103,6x103,8x103,10x103,14x103。在最小能耗优化云模型与传统云平台下进行实验,结果如图6所示。
从实验结果可以看出,在真实环境下,最小能耗优化云的能耗明显优于传统云计算平台,这是因为NCI4HV化合物为大图结构,结点与边的数量远大于模拟数据,因此在挖掘频繁子图模式时,需要更多的计算成本与消耗更多的系统资源,而最小能耗优化云模型能有效地对任务与资源的分配进行合理调配,在保证运行效率的前提下,最大程度减少了系统的能耗。将图6与图3、图5的实验结果进行对比可以发现,在数据量多的模拟数据集情况下,能耗反而远小于数据量少的真实数据集,这也正好验证了在复杂大图模式下的图挖掘需要付出更多的系统运行成本,消耗更多的系统资源。
6结束语
本文提出一种基于最小能耗优化的云模型与大规模动态图挖掘算法,该算法解决了海量图挖掘问题。为了改进传统云计算平台的任务随机调整策略,提出总消耗成本目标函数,并设计基于启发式的任务动态分配算法,以达到系统资源消耗的最小化。并且改进图挖掘串行执行方式,提出一种基于MapReduce的大规模动态图挖掘算法,提高了动态图挖掘效率。实验结果表明,该算法具有较高的运行效率,同时在一定程度上降低了系统能耗。下一步将继续优化最小能耗云模型与动态图挖掘算法,以进_步提升挖掘效率与降低系统能耗。同时可以扩展最小能耗云模型,并将其应用于其他数据类型的海量数据挖掘中。
- 论文部落提供核心期刊、国家级期刊、省级期刊、SCI期刊和EI期刊等咨询服务。
- 论文部落拥有一支经验丰富、高端专业的编辑团队,可帮助您指导各领域学术文章,您只需提出详细的论文写作要求和相关资料。
-
- 论文投稿客服QQ:
2863358778、
2316118108
-
- 论文投稿电话:15380085870
-
- 论文投稿邮箱:lunwenbuluo@126.com