跳到主要内容

Cliques & Cores 团与核算子集

算子类别:Cliques & Cores(团发现、核心分解与高凝聚结构分析)

算法数量:8 个

适用阶段:紧密群体发现、最大权重团识别、核心成员识别、网络骨架提取、核心-边缘层级分析、外围结构分析、核心临界节点识别、三角支撑结构分析

产品定位:为“网络中有哪些紧密小团体 / 谁处在核心层 / 剥离外围后剩下什么结构 / 哪些节点处于边缘或临界层 / 哪些关系具有更强三角支撑”提供团与核结构分析能力底座。


一、算子集概述​

Cliques & Cores 算子集聚焦于高度内聚子结构发现与核心-边缘层级分析,主要回答以下问题:

  1. 团结构发现

    • 网络中是否存在一组节点,任意两两之间都有直接连接?
    • 有哪些不能继续扩展的极大团?
    • 在考虑节点权重时,哪一个团的整体价值最高?
  2. 核心层级识别

    • 每个节点处于网络的第几层核心?
    • 指定 k 值下,网络中稳定保留下来的核心结构是什么?
    • 哪些节点属于核心,哪些节点属于外围?
  3. 核心-边缘结构分析

    • 某一层 k-shell 中包含哪些节点?
    • 外围 crust 结构是什么?
    • k-core 中哪些节点刚好处于临界支撑状态?
  4. 高阶凝聚结构分析

    • 哪些边受到足够多三角形支撑?
    • 网络中是否存在比 k-core 更强调局部闭合关系的稳定结构?
    • 哪些子图具备更强的关系可信度与结构鲁棒性?
  5. Clique、Core 与 Truss 的互补分析

    • Clique 强调完全连接,适合发现小而强的紧密群体
    • Core 强调最低连接约束,适合发现大规模稳定骨架
    • Truss 强调三角支撑,适合发现更高阶的凝聚关系结构

二、算子能力分类​

能力类型对应算子功能描述
极大团枚举find_cliques枚举图中所有极大团
最大权重团max_weight_clique寻找节点权重和最大的团
核心层级计算core_number计算每个节点的 core number
K-Core 提取k_core提取指定 k 的核心子图
K-Shell 提取k_shell提取指定核心层的壳层结构
K-Crust 提取k_crust提取核心数不高于指定 k 的外壳结构
K-Corona 提取k_corona提取 k-core 中度数恰为 k 的冠层结构
K-Truss 提取k_truss提取每条边具有足够三角支撑的高凝聚子图

三、通用输入输出约定​

  • 输入 G:NetworkX Graph / DiGraph

  • 常见输入参数:

    • nodes:指定必须包含的节点,适用于 find_cliques
    • weight:节点权重字段,适用于 max_weight_clique
    • k:核心阶数、壳层阶数、冠层阶数或 truss 阶数
    • core_number:可选的节点核心数结果,可用于加速部分核心类算法
  • 常见输出类型:

    • 团枚举类:iterator[list[node]]
    • 最大权重团类:团节点列表及权重值
    • 核分解类:dict[node → core_index]
    • 子图提取类:NetworkX Graph

四、算子详细说明​

1. find_cliques —— 极大团枚举​

功能说明 枚举图中所有极大团。极大团指的是:在当前节点集合中,任意两个节点之间都有边相连,并且无法再加入其他节点继续保持完全连接。

产品价值

  • 发现网络中最紧密的小群体
  • 支持识别完全互联的强关系结构
  • 适合用于强一致性、高排他性的小团体发现

典型场景

  • 社交网络熟人小圈子识别
  • 欺诈团伙发现
  • 完全协作小组识别
  • 蛋白质复合体分析
  • 高度一致用户群发现

适用与特性

  • 图类型:无向图
  • 输出:极大团节点列表迭代器
  • 注意:极大团不等于最大团,极大团可能有多个且规模不同
  • 复杂度:最坏情况指数级

2. max_weight_clique —— 最大权重团​

功能说明 在所有 clique 中寻找节点权重和最大的团。如果未指定权重,则节点权重通常按默认值处理,可退化为寻找规模意义上的高价值团。

产品价值

  • 不只关注团的规模,也关注团的总价值
  • 适合寻找“完全兼容且整体收益最高”的节点组合
  • 可用于强约束下的组合优化与高价值群体发现

典型场景

  • 高价值核心小组识别
  • 互相兼容的团队成员选择
  • 投资组合筛选
  • 广告渠道组合选择
  • 基因模块筛选

适用与特性

  • 图类型:无向图
  • 关键参数:weight
  • 输出:最大权重团节点列表及对应权重
  • 注意:最大权重团属于 NP-hard 问题,大规模图需谨慎使用

3. core_number —— 核心层级计算​

功能说明 计算每个节点的 core number。一个节点的 core number 表示它能够参与的最大 k-core 的 k 值。

直观理解:

  • core number 越大,节点越接近网络深层核心
  • core number 越小,节点越偏向外围或弱连接区域

产品价值

  • 识别节点处于网络核心还是边缘
  • 支持核心-边缘结构分析
  • 可作为网络稳定性、影响力和传播潜力分析的基础指标

典型场景

  • 核心用户识别
  • 核心设备识别
  • 核心论文或核心作者识别
  • 网络骨架分析
  • 传播潜力评估

适用与特性

  • 图类型:无向图 / 有向图
  • 输出:dict[node → core_index]
  • 复杂度:通常为 O(V + E)

4. k_core —— K-Core 核心子图提取​

功能说明 提取指定 k 值下的 k-core 子图。k-core 是所有节点度数至少为 k 的最大诱导子图,通常通过递归剥离低度节点得到。

产品价值

  • 提取网络中的稳定核心骨架
  • 移除低连接、边缘或噪声节点
  • 支持网络韧性、核心结构和主干结构分析

典型场景

  • 网络主干提取
  • 社交核心圈识别
  • 僵尸节点过滤
  • 供应链稳定结构分析
  • 知识网络核心主题识别

适用与特性

  • 图类型:无向图 / 有向图
  • 关键参数:k
  • 输出:k-core 子图
  • 复杂度:通常为 O(V + E)

5. k_shell —— K-Shell 壳层结构提取​

功能说明 提取指定 k 值对应的 k-shell。k-shell 通常表示 core number 等于 k 的节点组成的层级结构。

产品价值

  • 将网络按核心层级进行分层
  • 区分不同核心深度的节点群体
  • 支持核心、准核心、外围节点的层次化分析

典型场景

  • 用户层级分群
  • 网络核心层次可视化
  • 传播层级分析
  • 组织网络层级划分
  • 核心成员与准核心成员区分

适用与特性

  • 图类型:无向图 / 有向图
  • 关键参数:k
  • 输出:k-shell 子图
  • 特点:关注“正好处于某一核心层”的节点

6. k_crust —— K-Crust 外壳结构提取​

功能说明 提取核心层级不高于指定 k 的外壳结构。它常用于观察网络中较外围、较低核心层级的部分。

产品价值

  • 识别网络边缘结构
  • 支持外围节点、弱连接节点和低稳定结构分析
  • 可与 k-core 搭配,形成核心与外壳的对比分析

典型场景

  • 边缘用户分析
  • 低活跃节点筛选
  • 外围设备识别
  • 网络去噪前的边缘结构观察
  • 核心-边缘对比分析

适用与特性

  • 图类型:无向图 / 有向图
  • 关键参数:k
  • 输出:k-crust 子图
  • 特点:关注核心层级较低的外围结构

7. k_corona —— K-Corona 冠层结构提取​

功能说明 提取 k-core 中度数恰好为 k 的节点组成的结构。它可以理解为某一核心层中处于临界支撑状态的节点集合。

产品价值

  • 识别核心结构中的临界节点
  • 支持分析核心结构的稳定边界
  • 可用于判断核心层是否容易被破坏

典型场景

  • 网络脆弱性分析
  • 核心层边界节点识别
  • 传播网络临界节点发现
  • 组织结构稳定性分析
  • 基础设施网络风险评估

适用与特性

  • 图类型:无向图 / 有向图
  • 关键参数:k
  • 输出:k-corona 子图
  • 特点:关注 k-core 内“刚好满足 k 度约束”的节点

8. k_truss —— K-Truss 三角支撑子图​

功能说明 提取 k-truss 子图。k-truss 要求子图中的每条边至少被 k - 2 个三角形支撑,因此它比 k-core 更强调边的局部三角凝聚性。

产品价值

  • 发现具有强三角闭合关系的稳定群体
  • 比 core 更关注边的关系质量和局部支撑
  • 适合识别高可信、高内聚的关系结构

典型场景

  • 强社群发现
  • 欺诈团伙识别
  • 互信网络分析
  • 协作网络稳定群体发现
  • 高凝聚关系子图提取

适用与特性

  • 图类型:通常用于无向图
  • 关键参数:k
  • 输出:k-truss 子图
  • 特点:强调三角形支撑,适合高阶内聚结构分析

五、推荐使用指南​

1. 团结构发现​

  • 枚举所有极大团:find_cliques
  • 寻找权重最高的完全连接群体:max_weight_clique

2. 核心结构分析​

  • 计算每个节点的核心层级:core_number
  • 提取指定 k 的核心子图:k_core
  • 提取指定核心层壳层:k_shell
  • 提取外围外壳结构:k_crust
  • 提取核心临界冠层:k_corona

3. 高阶凝聚结构分析​

  • 提取三角支撑稳定子图:k_truss

4. 场景化选型建议​

  • 想找“彼此全部相连”的紧密小圈子:find_cliques
  • 想找总价值最高的完全互联组合:max_weight_clique
  • 想识别网络核心成员:core_number
  • 想提取网络主干结构:k_core
  • 想按核心层分层观察节点:k_shell
  • 想分析外围结构:k_crust
  • 想找核心层中的临界节点:k_corona
  • 想找三角关系支撑很强的稳定群体:k_truss

六、可直接回答的典型问题​

  • “网络中有哪些完全互联的小圈子?”
  • “所有极大团分别包含哪些节点?”
  • “在完全互相连接的前提下,哪组节点价值最高?”
  • “谁是网络中最核心的成员?”
  • “每个节点的核心层级是多少?”
  • “剥掉外围节点后,网络还剩下什么主干?”
  • “哪些节点属于某一层 k-shell?”
  • “哪些节点属于网络外围结构?”
  • “核心结构中哪些节点处于临界支撑状态?”
  • “哪些关系受到足够多三角形支撑?”
  • “这个节点是核心成员、准核心成员还是边缘节点?”
  • “这个网络的核心-边缘结构是否稳定?”

七、算子清单​

序号算子名称中文说明
1find_cliques枚举所有极大团
2max_weight_clique寻找最大权重团
3core_number计算节点核心层级
4k_core提取 K-Core 核心子图
5k_shell提取 K-Shell 壳层结构
6k_crust提取 K-Crust 外壳结构
7k_corona提取 K-Corona 冠层结构
8k_truss提取 K-Truss 三角支撑子图