K-Core算法是用于在图中寻找符合一定紧密关系条件的子图结构的算法,通常用于进行子图划分,去除不重要的结点。参考论文k-core: Theories and applications - ScienceDirect
K-Core就是图中的最小子图,子图中每个结点的度至少是k。而K-Shell由属于k-core但不属于(k+1)-core的结点和连边组成。比如,0-core就是整个图,因为每个结点的度都至少大于0;1-core就是把所有孤立结点丢掉,这样图中结点度都大于等于1. 0-shell就是那些孤立的结点组成的子图。
k-壳分解法(k-shell decomposotion)
将图中结点度为1的所有结点和对应的连边去掉后,新的网络中可能会有新的度为1的结点,把这些结点和边也去掉,重复操作,直到不再有度为1的结点为止。这种操作类似于剥去网络最外面一层壳,所以把所有去除的结点以及他们之间的连边称为网络的1-壳(1-shell)。网络中度为0的独立结点称为0-壳(0-shell)。在去除1-壳后的网络中,所有结点度都大于等于2,因此,接着把度为2的结点和对应连边去掉,直到不再有度为2的结点为止,则去除的结点和边称为2-壳(2-shell)。依此类推,直到网络中每个结点都划分到相应k-shell中,就得到网络的k-shell分解。
每个结点都唯一对应一个k-shell,这个k-shell中的结点的度一定大于等于k。但是注意,度相同的结点不一定属于同一个k-shell。并且,度大的结点既可能属于k值大的k-shell(最内层),可能能属于k值较小的shell(外层)。所以,度值大的未必就重要。
k-核分解(k-core decomposition)
去除网络中度数小于k的所有结点和连边,接着在新的图上去除度数小于k的结点,直到剩余结点度都大于等于k。依次取k=1,2……,就得到网络的k-核分解。(k+1)-核一定是k-核的子集。
总结
K-Core(K-核)就是所有大于等于K的K-Shell的并集;K-Crust(K-皮)就是所有小于等于K的K-shell的并集。
参考
- 网络科学导论。汪小帆等编著
- https://blog.csdn.net/ningyanggege/article/details/119540246
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)