ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

图算法之k-Core——在k-Core的结果子图中,每个顶点至少具有k的度数,且所有顶点都至少与该子图中的 k 个其他节点相连。

2021-04-16 10:33:05  阅读:267  来源: 互联网

标签:Core 核心 子图 算法 顶点 该子


图算法之k-Core

圈圈_Master 0.2152020.07.24 11:37:02字数 610阅读 4,851

  k-Core算法是一种用来在图中找出符合指定核心度的紧密关联的子图结构,在k-Core的结果子图中,每个顶点至少具有k的度数,且所有顶点都至少与该子图中的 k 个其他节点相连。k-Core通常用来对一个图进行子图划分,通过去除不重要的顶点,将符合逾期的子图暴露出来进行进一步分析。k-Core由于其线性的时间复杂度和符合直观认识的可解释性,在风控金融,社交网络和生物学上都具有较多的应用场景。

算法原理

 

 

  k-Core算法是一种子图挖掘算法,用于寻找一个图中符合指定核心度的顶点的集合,即要求每个顶点至少与该子图中的其他k个顶点相关联。如图1所示,分别对应1-Core,2-Core和3-Core,任何一个图,在不包含孤立顶点的情况下,都是1-Core的。

  图 1

  k-Core算法的过程也是非常简单的,一共分为两步,其实两步所做的内容是一样的,至于为什么要分两步执行同一个过程,可以自行思考一下。

Input:图G,核心度k
Step 1:将图G中度数小于k的顶点全部移除,得到子图G'。
Step 2:将图G'中度数小于k的顶点全部移除,得到新子图G''。该子图G''就是最终k-Core划分的结果子图。

  图2中我们给出了一个简单的3-Core子图划分的过程。

  图2. 求解3-Core的过程

算法应用

  k-core算法通常用来找出一个图中符合指定k核心度的子图,该子图在图中承担着核心的地位,核心度越高,子图越小,该子图对应的核心度也越大。从某种意义上来说核心度划分的子图在原图中承担着比较重要的角色,如图的起源和演化趋势追溯,图中介识别等。具体的应用场景有很多,大家可以参考一篇论文:k-core: Theories and applications

标签:Core,核心,子图,算法,顶点,该子
来源: https://www.cnblogs.com/bonelee/p/14665749.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有