三度图中最大独立集问题的高效算法
1. 分支规则介绍
在解决图的最大独立集问题时,为避免复杂的分支规则,引入了两种新的分支技术:基于“瓶子”(bottle)的分支和基于 4 - 环(4 - cycle)的分支。
1.1 基于“瓶子”的分支
设顶点
a
为度为 3 的顶点,其三个邻接顶点为
b
、
c
、
d
。若
c
和
d
相邻,则这四个顶点构成一个“瓶子”,记为
b - a - {c, d}
。
-
引理 4
:对于图
G
中的“瓶子”
b - a - {c, d}
,图
G
存在一个最大独立集
S
,使得
a ∈ S
或者
b ∈ S
。
-
证明
:若
b
不在最大独立集中,可直接从图中移除
b
。此时,
a
变为度为 2 的顶点且其两个邻接顶点相邻,这种情况下存在包含
a
的最大独立集。
-
分支规则
:基于“瓶子”
b - a - {c, d}
的分支,即要么将
a
包含在独立集中,要么将
b
包含在独立集中。
1.2 基于 4 - 环的分支
若图
G
中四个顶点
a
、
b
、
c
、
d
之间存在四条边
ab
、
bc
、
cd
和
da
,则称
abcd
构成一个 4 - 环。
-
引理 5
:对于图
G
中的 4 - 环
abcd
,图
G
的任意独立集
S
满足要么
a, c ∉ S
,要么
b, d ∉ S
。
-
证明
:由于独立集在 4 - 环中最多包含 2 个不相邻的顶点,所以该引理成立。
-
分支规则
:基于 4 - 环
abcd
的分支,即要么将
a
和
c
从独立集中排除,要么将
b
和
d
从独立集中排除。
2. 简单算法描述
算法
MIS(G)
用于解决图的最大独立集问题,其工作流程如下:
输入: 图 G
输出: 图 G 的最大独立集的大小
1. 如果 {G 有一个至多包含 15 个顶点的组件 P},返回 t + MIS(G - P),其中 t 是 P 中最大独立集的大小。
2. 否则,如果 {存在顶点 v ∈ V,其度 d(v) = 1 或 2},返回 1 + MIS(G ⋆(v))。
3. 否则,如果 {存在顶点 v, u ∈ V,使得 N[u] ⊆ N[v]},返回 MIS(G - {v})。
4. 否则,如果 {存在 2 - 3 结构或 3 - 3 结构},返回 2 + MIS(G ⋆ 2)。
5. 否则,如果 {存在 3 - 4 结构},返回 3 + MIS(G ⋆ 3)。
6. 否则,如果 {存在“瓶子” b - a - {c, d}},返回 max{1 + MIS(G - N[a]), 1 + MIS(G - N[b])}。
7. 否则,如果 {存在 4 - 环 abcd},返回 max{MIS(G - {a, c}), MIS(G - {b, d})}。
8. 否则,选择一个度最大的顶点 v,返回 max{MIS(G - {v}), 1 + MIS(G - N[v])}。
注意 :对该算法进行少量修改,即可直接输出最大独立集本身。
下面是该算法的 mermaid 流程图:
graph TD
A[输入图 G] --> B{G 有至多 15 个顶点的组件 P?}
B -- 是 --> C[返回 t + MIS(G - P)]
B -- 否 --> D{存在度为 1 或 2 的顶点 v?}
D -- 是 --> E[返回 1 + MIS(G ⋆(v))]
D -- 否 --> F{存在 N[u] ⊆ N[v] 的顶点 v, u?}
F -- 是 --> G[返回 MIS(G - {v})]
F -- 否 --> H{存在 2 - 3 或 3 - 3 结构?}
H -- 是 --> I[返回 2 + MIS(G ⋆ 2)]
H -- 否 --> J{存在 3 - 4 结构?}
J -- 是 --> K[返回 3 + MIS(G ⋆ 3)]
J -- 否 --> L{存在“瓶子” b - a - {c, d}?}
L -- 是 --> M[返回 max{1 + MIS(G - N[a]), 1 + MIS(G - N[b])}]
L -- 否 --> N{存在 4 - 环 abcd?}
N -- 是 --> O[返回 max{MIS(G - {a, c}), MIS(G - {b, d})}]
N -- 否 --> P[选最大度顶点 v]
P --> Q[返回 max{MIS(G - {v}), 1 + MIS(G - N[v])}]
3. 算法分析
为分析算法的时间复杂度,引入度量
r = sumv∈V (dv)
,其中
dv = max(0, d(v) - 2)
,
d(v)
是顶点
v
的度。当
r = 0
时,图仅包含度为 0、1 和 2 的顶点,最大独立集问题可在线性时间内解决。用
C(r)
表示图的度量为
r
时算法搜索树的最坏情况规模,并分析搜索树每个分支中度量
r
的减少量。
3.1 度量减少规则
-
移除度为
d (d ≥ 3)的顶点v时,v → d - 2。若v的所有邻接顶点度均大于 2,则N(v) → d,总共至少减少2d - 2。
3.2 相关引理
-
引理 6
:折叠度为 1 或 2 的顶点后,度量
r不会增加。 -
引理 7
:对于不含度为 1 或 2 顶点的图,折叠 2 - 3 结构、3 - 3 结构、3 - 4 结构或移除被支配顶点后,度量
r至少减少 4。-
证明
:在每种情况下,都会移除一个度为 3 的顶点(或更好的情况),因此
r至少减少 4。
-
证明
:在每种情况下,都会移除一个度为 3 的顶点(或更好的情况),因此
-
引理 8
:对于连通图
G,若G至少有x个度为 1 的顶点且图的度量至少为x,则迭代折叠度为 1 的顶点直到图中无度为 1 的顶点后,度量r至少减少x。 -
推论 1
:对于无连通路径组件的图
G,若有度为 1 的顶点,迭代折叠度为 1 的顶点可使r至少减少 1;若恰好有 2 个度为 1 的顶点,可使r至少减少 2。 -
引理 9
:对于简化图
G中的度为 3 的顶点v,移除N[v]后不会产生度为 0 的顶点、1 - 路径组件或 2 - 路径组件。 -
引理 10
:对于顶点数多于 8 的连通简化图
G中的度为 3 的顶点v,移除N[v]后,度量r至少减少 8。若图G的每个 3 - 环至少包含一个度 ≥ 4 的顶点,则移除N[v]后,度量r至少减少 10。 -
引理 11
:对于顶点数多于 8 的连通简化图
G中的度 ≥ 4 的顶点v,移除N[v]后,度量r至少减少 10。 -
引理 12
:对于顶点数多于 8 的连通简化图
G,若存在“瓶子”,算法MIS(G)基于“瓶子”分支的递归关系为:-
一般情况:
C(r) ≤ 2C(r - 8) -
若每个 3 - 环至少包含一个度 ≥ 4 的顶点:
C(r) ≤ 2C(r - 10)
-
一般情况:
-
引理 13
:对于顶点数多于 8 且无“瓶子”的连通简化图
G,若存在 4 - 环,算法MIS(G)基于 4 - 环分支的递归关系为:-
一般情况:
C(r) ≤ 2C(r - 8) -
若每个 3 - 环或 4 - 环至少包含一个度 ≥ 4 的顶点:
C(r) ≤ 2C(r - 10)
-
一般情况:
-
引理 14
:对于无“瓶子”和 4 - 环的简化图
G,若存在度 ≥ 4 的顶点,算法MIS(G)基于最大度顶点分支的递归关系为:C(r) ≤ C(r - 6) + C(r - 14) -
引理 15
:对于顶点数多于 15、无“瓶子”和 4 - 环的连通 3 - 正则图
G,算法MIS(G)的分支递归关系为:C(r) ≤ C(r - 10) + C(r - 16) + C(r - 20) + C(r - 24)
这些引理的证明和分析为算法的时间复杂度分析提供了基础,具体的证明过程在上述内容中已有详细阐述。通过对不同情况的度量减少分析,可以准确评估算法在各种图结构下的性能。在下半部分,我们将继续探讨算法的时间复杂度结论以及总结该算法的优势和应用。
4. 时间复杂度结论
在算法的所有情况中,最坏运行时间对应递归关系
C(r) ≤ C(r - 10) + C(r - 16) + C(r - 20) + C(r - 24)
。函数
f(x) = 1 - x^(-10) - x^(-16) - x^(-20) - x^(-24)
的唯一正根是
1.0884···
。如前文所述,
C(r) = O(1.0885^r)
满足该递归关系。因此,得出以下定理:
定理 1
:算法
MIS(G)
可以在
O*(1.0885^n)
时间内找到三度图中的最大独立集。
下面通过表格展示不同递归关系及其对应的时间复杂度情况:
| 情况描述 | 递归关系 | 时间复杂度 |
| — | — | — |
| 基于“瓶子”分支(一般情况) |
C(r) ≤ 2C(r - 8)
| - |
| 基于“瓶子”分支(3 - 环有≥4 度顶点) |
C(r) ≤ 2C(r - 10)
| - |
| 基于 4 - 环分支(一般情况) |
C(r) ≤ 2C(r - 8)
| - |
| 基于 4 - 环分支(3 - 环或 4 - 环有≥4 度顶点) |
C(r) ≤ 2C(r - 10)
| - |
| 无“瓶子”和 4 - 环,有≥4 度顶点分支 |
C(r) ≤ C(r - 6) + C(r - 14)
| - |
| 无“瓶子”和 4 - 环的 3 - 正则图分支 |
C(r) ≤ C(r - 10) + C(r - 16) + C(r - 20) + C(r - 24)
|
O*(1.0885^n)
|
5. 算法优势与应用
5.1 算法优势
- 分支规则简洁 :与大多数先前的算法不同,该算法不包含许多分支规则。使用基于“瓶子”和 4 - 环的两种新分支技术,避免了对局部结构的繁琐检查。这两种分支规则抓住了图中小循环的结构特性,使算法更加简单和实用。
- 可扩展性 :许多先前的算法可以应用这两种新的分支规则来简化描述和分析,说明该算法具有一定的可扩展性和通用性。
5.2 算法应用
-
最大独立集问题
:该算法可以直接用于解决三度图中的最大独立集问题,在
O*(1.0885^n)时间内找到最大独立集。 -
顶点覆盖问题
:该算法还意味着可以在
O*(1.0885^(2k)) = O*(1.1849^k)时间内判定度不超过 3 的图是否有大小至多为k的顶点覆盖。
以下是该算法应用场景的 mermaid 流程图:
graph LR
A[输入图 G] --> B{是否为三度图?}
B -- 是 --> C{求解最大独立集问题?}
C -- 是 --> D[使用 MIS(G)算法]
C -- 否 --> E{求解顶点覆盖问题?}
E -- 是 --> F[根据 MIS(G)算法判定]
B -- 否 --> G[不适用该算法]
综上所述,该算法通过引入新的分支技术,在解决三度图的最大独立集问题和相关的顶点覆盖问题上具有高效性和简洁性,为图论中的这些经典问题提供了一种新的解决方案。
超级会员免费看
24

被折叠的 条评论
为什么被折叠?



