最大独立集(Maximum Independent Set, MIS):在无向图中选取两两不相邻的顶点且规模最大,常用“分支限界 + 上界着色 + 位集优化”,或在补图转化为最大团统一求解。

Description: Find a largest set of pairwise non-adjacent vertices (maximum independent set). NP-hard in general; branch-and-bound with bitset and heuristic ordering is common. Equivalent to maximum clique on the complement graph. Time: Exponential in worst case (practical with pruning/bitset)

展开阐述

  • 定义与背景

    • 独立集:任意两点之间无边的顶点子集;最大独立集要求规模全局最大。
    • 与相关概念:在补图中,独立集等价于团;因此 MIS 等价为补图上的最大团问题(见 071-图论-最大团)。
    • 应用场景:任务调度的互斥集合选择、频谱分配中的干扰规避、约束满足中的不相容变量子集优化。
  • 接口/数据结构(据实现习惯)

    • maximumIndependentSet(G):返回最大独立集的顶点集合(或大小),G 为无向简单图。
    • 图表示:
      • 用邻接位集(bitset/uint64 块)表示顶点邻接与候选集,支持按位与/与非的快速交并;
      • 稀疏场景可用邻接表,但需要小心上界估计与集合维护的常数。
    • 状态:当前独立集 C,与之不相邻的候选集 P(即 P 与 C 两两不相邻)。
  • 核心流程/要点(两路线:直接搜索 vs 补图最大团)

    1. 直接搜索(分支限界 + 上界)
      • 上界估计:对 P 做贪心着色或其他可行上界估计,得到 upper_bound(P);
      • 剪枝:若 |C| + upper_bound(P) ≤ |best|,则无望超过当前最优,剪枝;
      • 选择分支点 v ∈ P(常按度或着色顺序):递归“取 v”(C←C∪{v}, P←P∩非邻(v))与“不取 v”(P←P{v})。
    2. 补图转化(推荐统一框架)
      • 在补图 Ḡ 上运行最大团(同色界框架,参见 071-图论-最大团),可重用成熟实现;
      • 由最大团解在原图中直接得到最大独立集。
    3. 位集优化
      • 候选集与邻接操作用位集实现;结合按块统计与快速定位置位位,降低常数。
    4. 不变式
      • P 始终保证与 C 两两不相邻;回溯时需恢复集合语义。
  • 特例与结构性对偶(在二分图)

  • 复杂度与边界条件

    • 一般图:NP-难,最坏指数级;色界/主元/位集可显著加速中等规模实例;
    • 图要求:无向简单图;自环忽略;重边不影响独立性语义;
    • 规模与实现:位集块宽(如 64 位)与顶点上限相关;注意集合扫描顺序与缓存友好性。
  • 变体/扩展与关系

    • 最大团:补图互换(071-图论-最大团),共用搜索/上界框架;
    • 极大结构:若只需“不可再扩展”的集合而非最大规模,可参见极大团/极大独立集的枚举思路(见 070-图论-极大团)。
  • 正确性要点与直觉

    • 上界安全:着色数为“还能再放入的顶点数”的上界;剪枝不丢最优;
    • 对偶一致:补图最大团⇔原图最大独立集;在二分图上还满足与最小点覆盖/最大匹配的数量对偶。
  • 与相邻技术的对比与取舍建议

关联节点