[发明专利]一种基于边不稳定度的社区发现系统及方法有效
申请号: | 201611150384.0 | 申请日: | 2016-12-14 |
公开(公告)号: | CN106599187B | 公开(公告)日: | 2020-06-16 |
发明(设计)人: | 王雷;王新晨;李涵 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F16/28 | 分类号: | G06F16/28;G06Q50/00 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;顾炜 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 不稳定 社区 发现 系统 方法 | ||
1.一种基于边不稳定度的社区发现系统,其特征在于包括:边不稳定度计算模块、基于边不稳定度的Fast Unfolding社区发现模块、基于边不稳定度的GN社区发现模块和结果整合模块;其中:
边不稳定度计算模块:接收函数调用图的结构数据,计算函数调用图的节点稳定度和边不稳定度,并将计算结果保存入文件中,供后续社区发现模块使用;所述边不稳定度由节点的稳定度决定;节点的稳定度定义为节点的入度与节点度的比值,有向边的不稳定度定义为源点的稳定度与终点的稳定度之差;节点的稳定度表现为,稳定度高的节点具有入度较出度相对更大的特点,函数调用图中这样的节点将更不易把改变扩散到其他节点处,因此称节点稳定性较大,由稳定性大的节点指向稳定性小的节点的边就具有较大的不稳定度,因为它容易把改变扩散出去;
基于边不稳定度的Fast Unfolding社区发现模块:根据边不稳定度计算模块的计算结果,采用改进的Fast Unfolding的算法,即在Fast Unfolding的算法中加入边不稳定度决定性,使得社区的划分根据参数大小而受边不稳定度的影响,得到社区划分结果E1并保存入文件中,为后续操作提供数据;
基于边不稳定度的GN社区发现模块:根据边不稳定度的计算结果,采用改进的基于边不稳定度的GN算法,即在GN算法的算法中计算边介数改为计算边不稳定度,在社区发现的过程中使用边不稳定度寻找合适的划分,得到社区划分结果E2并保存入文件中,为后续操作提供数据;
结果整合模块:将社区划分结果E1和E2,合并成一个待处理结果E,扫描该结果,综合考量各个节点的社区信息和节点信息,对于两次划分结果不一致的节点,进行社区的微调,最后得到函数调用图基于边不稳定度的社区发现结果;
所述边不稳定度计算模块中,
节点的稳定度计算公式如下:
其中和是节点ni的入度和出度,Si的值介于0到1之间,当Si越大时,意味着节点ni的出度越小;
边的不稳定度计算公式如下:
Iij=Si-Sj
其中Si和Sj分别是节点ni和nj的节点稳定度,当Iij越大时,对应的边会将改变更快的扩展出去;
所述基于边不稳定度的Fast Unfolding社区发现模块具体步骤如下:
(1)计算网络中每条边的不稳定度,从边不稳定度计算模块的结果中提取边不稳定度结果,加入到函数调用图中相应边的属性中;
(2)初始化网络节点,每个节点均为一个社区,所以初始状态下函数调用图中社区数目与节点数相同;对于每个节点,随机将其归入其任一邻居节点中,计算模块度增量ΔQ和边不稳定度增量ΔI,对于某归一化参数α,取使得α×ΔQ+(1-α)×ΔI获得最大值的划分方案,作为本次划分的最后结果,所有节点均获得新的社区划分或者维持原有划分不变,根据节点的划分结果,得到新的社区信息,即所有属于同一划分的节点都属于同一社区;
(3)将步骤(2)得到的所有社区抽象为新的节点,重复步骤(2)的操作,直到没有新的划分可以得到正的综合增量α×ΔQ+(1-α)×ΔI时,此时网络中所有节点的划分便结束,且所有节点均有确定的社区信息,将社区信息相同的节点并入同一社区,便得到社区划分结果E1,最后保存到文件中;
所述基于边不稳定度的GN社区发现模块具体步骤如下:
(1)计算函数调用图中每条边的不稳定度,从边不稳定度计算模块的结果中提取边不稳定度结果,加入到网络中相应边的属性中;
(2)对网络中的节点按照边不稳定度降序排列;
(3)对于排列好的边,每次移除一定数量的边,直到函数调用图中的弱联通子图数目增加,并计算网络模块度增量,记录当前的状态;
(4)重复步骤(3),直至网络中所有边都被移除,回溯寻找每一次执行步骤(3)后,网络的模块度以及相应的弱联通子图信息,选出模块度最大的一次划分,则此次划分得到所有弱联通子图便是网络的最佳社区划分结果,即每一个弱联通子图都是一个社区,至此得到函数调用图的社区划分结果E2,保存到文件中;
所述结果整合模块中,进行社区的微调,最后得到函数调用图基于边不稳定度的社区发现结果如下:在划分结果E1中,节点ni和nj属于不同社区,而划分结果E2中此二节点属于同一社区,则根据它们各自带有的额外信息进行判断,以决定采用E1还是E2的方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611150384.0/1.html,转载请声明来源钻瓜专利网。