论文部分内容阅读
社团划分在生物、医疗等方面有着举足轻重的作用,但是随着数据规模的扩大,经典的串行算法已经不能满足人们的需要,为了能够适应大规模数据的发展和信息化时代的到来,社团划分算法的并行化研究变得十分迫切。随着并行化计算的快速发展,并行计算已变得可能,尤其是MapReduce编程模型的应用给并行计算带来了极大的方便性。本文首先对谱平分法进行了优化,然后在MapReduce编程模型上实现了对谱平分法的并行化。MapReduce是Google的一个开源编程模型,相对于传统的并行计算模型来说,MapReduce对底层的细节进行隐藏和封装,极大地方便了用户进行并行程序的设计和实现。在使用MapReduce进行并行编程的时候,用户不需要考虑实现细节和消息传递等细节,只需要集中精力处理自己的并行任务。谱平分法是社团划分的一种经典算法,根据拉普拉斯矩阵的特征值和特征向量以及聚集性的关系进行社团划分。但是,对于海量数据的处理显得有些力不从心。随着数据规模的扩大,时间复杂度已经到了无法忍受的地步。为了解决这个问题,本文首先用Canopy和Lanczos算法对谱平分法进行优化,使谱平分法在运行效率上有了一定的提高。为了进一步提高算法的效率,本文在MapReduce编程模型上实现了优化的谱平分法的并行化,运行速度上有了更进一步的提高。实验分析表明,优化的谱平分法在社团划分问题上,准确率与优化前的谱平分算法基本保持一致。在算法执行速度和收敛性上,优化的谱平分法明显有了一定的提高。优化的谱平分法并行化后,随计算节点增多,算法的并行效率逐步上升,进一步表明并行算法在大规模数据上优越性。概括来说本文的主要工作和创新点主要包括以下三个方面:(1)提出了一种优化的谱平分法,首先在计算特征值和特征向量的时候引入了Lanczos,可以很快的求出满足条件的特征值;然后在最后对新样本空间进行聚类的时候,为了能够快速且比较准确的找到初始聚类中心,引入了Canopy算法,在初始化的时候将网络数据粗略的划分为若干了比较紧凑的子集,有利于初始聚类中心的选取,进而提高收敛速度。(2)考虑复杂网络的海量数据规模和MapReduce编程模型的特点,对数据的存储进行调整,通过对数据的合理分片和优化部署,实现负载的均衡和效率的提高。(3)将优化后的谱平分法使用MapReduce编程模型进行实现,通过实验数据,验证本文对优化的谱平分法并行化后的高效性。