[发明专利]一种Fedora系统组件复杂网络中的重叠社区检测方法有效
申请号: | 201710303329.9 | 申请日: | 2017-05-03 |
公开(公告)号: | CN107240028B | 公开(公告)日: | 2020-09-15 |
发明(设计)人: | 程久军;吴潇;黄震华;张长柱;秦鹏宇;陈向荣;杨阳;廖竞学;邵剑雨;尚铮;米浩 | 申请(专利权)人: | 同济大学 |
主分类号: | G06Q50/00 | 分类号: | G06Q50/00;G06F17/10 |
代理公司: | 上海科律专利代理事务所(特殊普通合伙) 31290 | 代理人: | 叶凤 |
地址: | 200092 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 fedora 系统 组件 复杂 网络 中的 重叠 社区 检测 方法 | ||
1.一种Fedora系统组件复杂网络中的重叠社区检测方法,其特征在于,根据Fedora系统组件中的RPM包依赖关系构造出复杂网络,在Fedora网络中,一个节点代表一个软件模块,不同的模块之间存在着依赖关系,如果两模块间存在依赖关系,则在两节点之间创建一条边,构造出一个网络;Fedora网络的节点互相协作完成复杂任务,构成了社区;
按如下参数配置生成合成网络:
节点个数n;平均度最大度kmax;混合度μ;与度分布关系τ1;与社区大小分布关系τ2;最小社区大小cmin;最大社区大小cmax;重叠节点个数On;节点重叠程度Om;
给出节点活跃度的相关定义和解析,在此基础上,将节点活跃度用于重叠社区扩展的目标函数,进行社区扩展及使用最大社团作为扩展种子的相关解析,给出基于节点活跃度的非对称社团扩展算法,实现重叠社区发现;
具体方法包括如下步骤:
步骤1,节点活跃度的定义与解析
节点活跃度的定义如下:
定义节点活跃度为一个与节点i相关联的实值vi∈[-1,1],vi是描述节点i在网络演化中快速创建或删除连接的内在能力并且是可变的;当vi0时,节点i的边有增加的趋势;当vi0时,节点i的边有减少的趋势;|vi|越大表示节点i在未来改变所在重叠社区的可能性越大;
解析过程如下:
在演化过程中,节点活跃度会影响节点边数即影响节点度ki的改变;设网络的演化表示为快照序列其中,每个快照gt视为一个静态网络gt(Vt,Et)(1≤t≤n),Vt和Et分别表示快照gt的节点集合和边集合;通过比较快照gt-1和gt和分析ki的变化,得到节点活跃度vi;节点适应度模型的所有节点的ki服从幂律度分布,则一个节点的ki随时间的演化由一个与适应度ηi的分布有关的动态指数β(ηi)决定,即:
其中,t表示网络的年龄,ti表示节点的年龄,m是网络中边数的改变量除以节点个数的改变量;βi(ηi)∈(0,1)是一个与适应度的分布ρ(ηi)及节点i的适应度ηi相关的指数;
将公式(4)中的β(ηi)改为α(vi(t)),其中α(·)表示一个节点活跃度的函数;
在一个快照中vi(t)=β(ηi),并对(4)进行变换,得到快照gt中节点i的活跃度为
其中,m≠0,sgn(·)是一个符号函数;在该公式中,节点i的变化速度ki(t)通过得到,即比较两个相邻快照中节点i的度;节点活跃度vi(t)为:
在公式(6)中,如果节点i满足规定其节点活跃度vi(t)=0;
网络的年龄必须总是大于节点的年龄,即tti;
公式(6)通过比较快照gt-1和gt推导出gt中的活跃度,而无法得到gt-1中的活跃度;当只有一个静态网络时,无法得到各节点的活跃度;对于快照序列无法得到g1中的节点活跃度,此时假设所有节点活跃度为同一个值;对进行分析时,利用快照索引τ∈{1,2,…,n}作为的年龄,每个节点第一次出现时所在的快照索引τi加1作为节点的年龄,即τi+1;
从公式(6)看出,当节点的边数改变量越大,活跃度越高;
步骤2中,利用节点活跃度,组合适应度函数与演化相似度,建立重叠社区扩展的目标函数,目标函数如下
其中,参数β∈[0,1];Win和Wout分别是重叠社区内部节点之间和内外节点之间的连接数;当前节点集合作为一个块n是块中的节点个数;随机块模型中的节点演化相似度ρi;
步骤3,分析了对重叠社区发现结果产生影响的种子和将其进行非对称性扩展:
第一步搜索当前快照gt中的所有最大社团,第二步是将这些社团作为种子进行扩展;
将一个种子记为S,则与其相邻的节点集合N表示为
其中,i是S中的一个节点,N(i)表示节点i的所有邻居节点;在每次扩展时,都从N中选择一个节点放入S中,即把它从集合N移动到集合S中;在每次从N中选择节点时,对公式(16)中的目标函数进行局部贪心优化,即从N中选择一个节点使得该节点放入S后函数f的取值最大;在每次选择之前,集合S的函数值为f(S);试探性地将N中的每个节点放入S,从而计算新的函数值与f(S)的差,即
fi=f(S∪{i})-f(S) (18)
集合N中的每个节点i都有一个fi值,从N中选择函数取值为正且取值最大的节点,即选择节点j并将它真正放入S中,
在将节点j放入S之后,需要对S的邻居节点集合N进行更新,从而保持与S的状态一致;重复上述过程,每次都选择一个节点放入集合S中从而优化目标函数;当无法再找到任何一个能优化公式(19)的节点时,扩展过程终止;此时,集合S所对应的目标函数值为局部最优值,S作为一个检测到的重叠社区;
步骤4,给出基于节点活跃度的非对称社团扩展的重叠社区发现算法:第1步:计算节点i的活跃度
当n=1时,节点i的活跃度为0;当n大于1时,计算得到节点i的活跃度vi;
第2步:把快照gt以参数k利用bron-kerbosch算法搜索得到种子,表示为bron-kerbosch(gi,k);
第3步:用启发式社团覆盖CCH方法过滤相似的种子,相似两种子之间的相对覆盖率小于阈值σ,只保留不同种子s,得到种子集合seeds;
第4步:对于每一个过滤后得到的种子s,作为初始节点集合,然后不断地从与其相邻的节点中寻找合适的节点放入集合,集合逐步扩展为社区c;
第5步:根据社区c和之前扩展得到的其他社区ci,两两计算出相对覆盖率relative-overlap(c,ci),如果相对覆盖率均小于阈值σ,则把社区c放入已找到的社区集合C,并且把s从seeds中删除;
第6步:计算社区c与种子集合seeds中剩余种子sj之间的相对覆盖率relative-overlap(c,sj),如果大于0,则把sj也从种子集合中删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同济大学,未经同济大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710303329.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:按键控制方法及装置
- 下一篇:一种用来均质化和分离样品的设备