买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于开放运算语言OpenCL并行的重叠社区检测方法_西安电子科技大学_201910648583.1 

申请/专利权人:西安电子科技大学

申请日:2019-07-18

公开(公告)日:2021-04-27

公开(公告)号:CN110535681B

主分类号:H04L12/24(20060101)

分类号:H04L12/24(20060101);G06F16/901(20190101);G06F16/906(20190101);G06Q50/00(20120101)

优先权:

专利状态码:有效-授权

法律状态:2021.04.27#授权;2019.12.27#实质审查的生效;2019.12.03#公开

摘要:本发明提出了一种基于开放运算语言OpenCL并行的量子粒子群算法的重叠社区检测方法,在保证检测正确率的基础上,提高检测效率,实现步骤为:配置开放运算语言OpenCL设备端;CPU主机端构建重叠社区结构的边图LG;CPU主机端构建共邻矩阵M;CPU主机端提取共邻矩阵M的特征值和特征向量;CPU主机端获取评价结果cost;CPU主机端构建网格Grid;OpenCL设备端编写不同的内核程序;OpenCL设备端基于量子粒子群算法并行计算和评价第t+1代粒子群的边图LG的重叠社区划分结果;CPU主机端构建非支配解集repnew;CPU主机端获取边图LG的重叠社区划分结果。

主权项:1.一种基于开放运算语言OpenCL并行的重叠社区检测方法,其特征在于,包括如下步骤:1配置开放运算语言OpenCL设备端:中央处理器CPU主机端通过PCIe总线与开放运算语言OpenCL设备端进行连接,并对开放运算语言OpenCL设备端进行配置,同时激活OpenCL设备端中的PN个工作项,PN∈[20,∞;2CPU主机端构建重叠社区结构的边图LG;2aCPU主机端构建以重叠社区成员为节点、以成员之间的关系为边且边数为N的图模型G,N>0;2bCPU主机端构建以图模型G中的边为边节点、以任意两条边存在的重合节点为边的边图LG;3CPU主机端构建共邻矩阵M;3aCPU主机端根据边图LG构建邻接矩阵A: 其中,Aij表示边图LG中第i个边节点与第j个边节点之间的关系,Aij=1,表示第i个边节点与第j个边节点之间有边相连,Aij=0,表示第i个边节点与第j个边节点之间无边相连;3bCPU主机端根据邻接矩阵A构建共邻矩阵M',并判断Aij=0是否成立,若是,将Mij'置0,否则,对Mij'加一,得到共邻矩阵M,其中,M'和M的表达式分别为: 其中,Mij'表示边图LG中第i个边节点与第j个边节点的共同邻居节点数,其中AirAjr表示第r个节点是否为边图LG中第i个边节点与第j个边节点的共同邻居节点,AirAjr=1,表示第r个节点是边图LG中第i个边节点与第j个边节点的共同邻居节点,AirAjr=0,表示第r个节点不是边图LG中第i个边节点与第j个边节点的共同邻居节点,Mij=Mij'+1×Aij;4CPU主机端提取共邻矩阵M的特征值和特征向量:CPU主机端对共邻矩阵M进行特征值分解,并对分解结果进行降序排列,得到N个特征值λ1,λ2,…,λN和N个特征值对应的特征向量V1,V2,…,VN;5CPU主机端获取评价结果cost:5aCPU主机端初始化量子粒子群算法的参数,包括迭代次数t=1、最大迭代次数T=200、粒子X'[t]的个数PN,粒子X'[t]的长度m2由激活标志h1的长度m和聚类中心h2的长度m拼接而成,m∈[10,N4],每个粒子X'[t]表征边图LG中的m'个被激活的社区聚类中心centerm',m'∈[2,m];5bCPU主机端对粒子群中包含社区个数少于2的粒子X'[t]进行修正,使其至少包含2个社区,得到修正后的PN个粒子X[t];5cCPU主机端计算特征向量V2中的每个值到每个粒子X[t]中m'个被激活的社区聚类中心centerm'的距离,并用V2中距离centerm'最近的值代替centerm',形成新的m'个被激活的社区聚类中心并计算边图LG中每一个边节点分别到每个粒子X[t]中的m'个被激活的社区聚类中心的谱方法加权距离,并将每个边节点分类到距离centerm'最近的社区中,得到每个粒子的长度为N的重叠社区划分结果assignment[t];5dCPU主机端构造多目标优化函数Evaluate,并通过Evaluate对PN个重叠社区划分结果assignment[t]进行评价,得到每个粒子的长度为2的评价结果向量cost[t];6CPU主机端构建网格Grid:CPU主机端根据PN个粒子的评价结果向量cost[t],对PN个粒子X[t]进行非支配排序,得到非支配解集rep,并通过非支配解集rep中所有非支配粒子的评价结果向量cost[t]构建包括10×10个小格子cell的网格Grid,其中rep中非支配粒子的个数小于等于20;7OpenCL设备端编写不同的内核程序:OpenCL设备端将基于量子粒子群算法,并通过网格Grid对单个粒子X[t]进行更新的过程编写为内核程序Kernel1,同时根据步骤5b的方法将对更新后的单个粒子X'[t+1]进行修正的过程编写为内核程序Kernel2,根据步骤5c的方法将对修正后的单个粒子X[t+1]进行重叠社区划分的过程编写为内核程序Kernel3,根据步骤5d的方法将对划分后的单个粒子X[t+1]进行评价的过程编写为内核程序Kernel4;8OpenCL设备端基于量子粒子群算法并行计算和评价第t+1代粒子群的边图LG的重叠社区划分结果:8aOpenCL设备端的PN个工作项并行执行内核程序Kernel1,实现对PN个粒子X[t]进行更新,得到更新后的PN个粒子X'[t+1];8bOpenCL设备端的PN个工作项并行执行内核程序Kernel2,实现对更新后的PN个粒子X'[t+1]进行修正,得到修正后的PN个粒子X[t+1];8cOpenCL设备端的PN个工作项并行执行内核程序Kernel3,实现对修正后的PN个粒子X[t+1]进行重叠社区划分,得到PN个粒子X[t+1]的重叠社区划分结果assignment[t+1];8dOpenCL设备端的PN个工作项,并行执行内核程序Kernel4,实现对修正后的PN个粒子X[t+1]的重叠社区划分结果assignment[t+1]进行评价,得到PN个粒子X[t+1]的评价结果向量cost[t+1];9CPU主机端构建非支配解集repnew:CPU主机端根据PN个粒子X[t+1]的评价结果向量cost[t+1],对PN个粒子X[t+1]进行非支配排序,得到非支配解集rep',并对非支配解集rep'与非支配解集rep进行合并,再对合并结果中的粒子进行非支配排序,得到非支配解集repnew;10CPU主机端获取边图LG的重叠社区划分结果:中央处理器CPU主机端判断t+1=T是否成立,若是,采用模块度公式对非支配解集repnew中每个粒子所代表的重叠社区划分结果进行评价,并输出检测正确率最大的重叠社区划分结果,否则,以非支配解集repnew中所有非支配粒子的评价结果向量cost[t]构建网格Gridnew,并令t=t+1,rep=repnew,Grid=Gridnew,并执行步骤8。

全文数据:

权利要求:

百度查询: 西安电子科技大学 基于开放运算语言OpenCL并行的重叠社区检测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。