文章目录
一、论文
- 名 称:K-SpecPart: Supervised Embedding Algorithms and Cut Overlay for Improved Hypergraph Partitioning
- 年 份:2024
- 会/刊:TCAD
二、作者
Ismail Bustany、Andrew B. Kahng、Ioannis Koutis、Bodhisatta Pramanik 和 Zhiang Wang
三、摘要
本文介绍了 K-SpecPart,一个用于多路划分的监督谱框架,它直接解决了现有最先进超图划分器所面临的两个局限性。现有的多级划分器通过构建多个逐渐变粗的超图层次来驱动每个层级上的切割改进。然而,多级划分器存在以下两个问题:1)超图粗化过程依赖于局部邻域结构,未能充分考虑超图的全局结构;2)改进启发式算法存在陷入局部最小值的风险。K-SpecPart 通过计算广义特征向量和监督降维技术生成顶点嵌入来解决这些问题。这些计算原语不仅速度快,而且生成的嵌入能够捕捉超图的全局结构特性,而这些特性并未被现有划分器显式考虑。
K-SpecPart 将顶点嵌入转换为多个划分解。与仅考虑最佳解的多级划分器不同,K-SpecPart 通过切割叠加聚类技术对多个解进行集成,这种方法通常能够利用计算成本较高的划分方法,例如整数线性规划(ILP)。K-SpecPart 利用标准划分器的输出作为监督提示,有效结合了成熟的多级划分技术与谱图理论及其他组合算法的优势。
K-SpecPart 显著扩展了作者之前在二分器 SpecPart(Bustany等人,ICCAD 2022)中首次出现的思想和算法。实验结果表明,K-SpecPart 在二分问题上相比 SpecPart 可将切割大小改善约15%;在多路划分问题上,当 K 较小时,改善可达约 20%,即使 K 增加到 128,仍可保持约 2% 的改善,超越了领先的划分器 hMETIS 和 KaHyPar 。
四、相关工作
4.1 研究现状
几十年来提出了许多超图划分器,包括 MLPart、PaToH、KaHyPar 和 hMETIS 等最先进的划分器,它们都遵循多级范式。另一条研究路线使用非监督谱聚类变体,但在实践中效果不佳。由于问题的计算复杂性,所有受实际运行时间限制的划分算法都不可避免地存在局限性,但不同类型的算法可能具有互补的优势。
4.2 技术介绍
4.2.1 超图划分
给定一个超图 H ,我们有:
- k 路划分: S = ∪ i = 1 k V i S=\cup_{i=1}^kV_i S=∪i=1kVi,其中 V i ∩ V j = ∅ V_i \cap V_j = \varnothing Vi∩Vj=∅
- 顶点集合权重: ∀ U ∈ V , ω ( U ) = ∑ v ∈ U ω ( v ) \forall U \in V,\; \omega(U)=\sum\limits_{v \in U} \omega(v) ∀U∈V,ω(U)=v∈U∑ω(v)
- 平衡因子 ϵ \epsilon ϵ :对于任意划分块 V i ∈ V V_i \in V Vi∈V , 0 ≤ 1 K − ϵ ≤ ω ( V i ) ω ( V ) ≤ 1 K + ϵ 0 \le \frac1K-\epsilon \le \frac{\omega(V_i)}{\omega(V)} \le \frac1K + \epsilon 0≤K1−ϵ≤ω(V)ω(Vi)≤K1+ϵ
- 割边: C u t H ( S ) = { e ∣ e ⊈ V i , ∀ V i ∈ V } Cut_H(S)=\{e|e\not\subseteq V_i ,\; \forall V_i \in V\} CutH(S)={e∣e⊆Vi,∀Vi∈V}
- 割边大小: C u t S i z e H ( S ) = ∑ e ∈ C u t H ( S ) ω ( e ) CutSize_H(S)=\sum\limits_{e \in Cut_H(S)}\omega(e) CutSizeH(S)=e∈CutH(S)∑ω(e)
超图划分问题就是寻找一个满足 ϵ \epsilon ϵ 平衡的 K 个划分,使得总的割边最小。
4.2.2 拉普拉斯矩阵、切割和特征向量
给定图 G ,拉普拉斯矩阵 L G L_G LG 定义如下:
L ( u , v ) = { − ω ( e u , v ) , u ≠ v − ∑ t ≠ u ω ( e t , u ) , u = v \begin{equation} L(u,v)= \begin{cases} -\omega(e_{u,v}) &, u \neq v \\ \\ -\sum\limits_{t \neq u}\omega(e_{t,u}) &, u=v \end{cases} \end{equation} L(u,v)=⎩ ⎨ ⎧−ω(eu,v)−t=u∑ω(et,u),u=v,u=v
令 x 为划分结果 S i = { V 0 , V i } S_i=\{V_0,V_i\} Si={V0,Vi} 的指示向量,其中, V i V_i Vi 表示第 i 个划分, V 0 V_0 V0 表示其他划分的集合, x i , j = { 1 ∣ A j ∣ , v i ∈ V j 0 , 其他 x_{i,j}=\begin{cases}\frac{1}{\sqrt{|A_j|}} &,v_i \in V_j \\ 0 &, 其他 \end{cases} xi,j={∣Aj∣10,vi∈Vj,其他 ,则有:
x i T L x i = C u t S i z e G ( S i ) ∣ V i ∣ \begin{equation} x_i^TLx_i=\frac{CutSize_G(S_i)}{|V_i|} \end{equation} xiTLxi=∣Vi∣CutSizeG(Si)
则比率切割 R(x) 可以定义为:
R ( x ) = ∑ i = 1 K x i T L x i = t r ( X T L X ) \begin{equation} R(x)=\sum\limits_{i=1}^Kx_i^TLx_i=tr(X^TLX) \end{equation} R(x)=i=1∑KxiTLxi=tr(XTLX)
所以,最小化比率切割可以转变为求 X T L X X^TLX XTLX 的最小的迹。对于 x T L x x^TLx xTLx,我们是求 L 的最小特征值,但是对于 X T L X X^TLX XTLX ,我们的目标就是求 K 个最小的特征值。
4.2.3 谱嵌入和划分
图嵌入是将 V 中的顶点映射到 m 维空间中的点。特别是,谱嵌入可以通过计算矩阵对
(
L
G
,
B
)
(L_G,B)
(LG,B) 的 m 个特征向量
X
∈
R
∣
V
∣
×
m
X \in R^{|V|×m}
X∈R∣V∣×m来完成,其中
L
G
L_G
LG 是一个图拉普拉斯矩阵,B 是一个半正定矩阵。广义特征值问题的形式为:
L
G
x
=
λ
B
x
\begin{equation} L_Gx=\lambda Bx \end{equation}
LGx=λBx
可以通过对 m 维空间中的点进行聚类,将嵌入转换为划分。谱嵌入已用于超图划分。在这种情况下,首先将超图 H 转换为图 G,然后使用
L
G
L_G
LG 计算谱嵌入。例如,[35] 中解决的特征值问题设置
B
=
D
w
B=D_w
B=Dw,其中
D
w
D_w
Dw 是包含正顶点权重的对角矩阵。在本文中,我们解决了更一般的问题,令 B 是一个图拉普拉斯矩阵。这使我们能够处理实践中所需的零顶点权重,并以自然的“图形”方式将先验监督信息编码到矩阵 B 中。
4.2.4 降维监督(LDA)
LDA 是一种用于降维的监督算法。LDA 的输入为:
- 一个矩阵 X N × M X^{N×M} XN×M,其中第 i 行 x i x_i xi 是一个 M 维空间中的点;
- 每个点 x i x_i xi 的类别标签,范围为 { 0 , ⋯ , K − 1 } \{0,\cdots,K−1\} {0,⋯,K−1}。
然后,LDA 的目标是将 X N × M X^{N×M} XN×M 转换为 X ~ N × m \tilde{X}^{N×m} X~N×m ,其中 m ( m < M ) m(m<M) m(m<M) 是目标维度,使得在 m 维空间中不同类别的点聚类尽可能分开,假设类别呈正态分布且类内协方差相等。从算法角度来看,LDA 在 O ( N M 2 ) \Omicron(NM^2) O(NM2) 时间内计算两个矩阵 S B M × M S_B^{M×M} SBM×M 和 S W M × M S^{M×M}_W SWM×M ,分别捕获类间方差和类内方差。然后,它计算矩阵 P M × m P^{M×m} PM×m ,包含 S W − 1 S B S^{−1}_W S_B SW−1SB 的 m 个最大特征向量,并让 X ~ = X P \tilde{X}=XP X~=XP。由于在我们的上下文中 m 是一个小常数,因此可以非常高效地计算 LDA 。
4.2.5 超图划分的 ILP 求解
【从这里就可以看出,这篇论文的算法不适合大规模的超图】
【哦,ILP 是用于初始划分,那没事了】
可以通过将问题表述为 ILP 来精确求解超图划分。为了将平衡超图划分表述为 ILP,对于每个块 V i V_i Vi,我们引入每个顶点 v 的整数 {0,1} 变量 x v , i x_{v,i} xv,i 和每个超边 e 的 y e , i y_{e,i} ye,i。设置 x v , i = 1 x_{v,i}=1 xv,i=1 表示顶点 v 在块 V i V_i Vi 中,设置 y e , i = 1 y_{e,i}=1 ye,i=1 表示超边 e 的所有顶点都在块 V i V_i Vi 中。然后定义以下约束,对于每个 0 ≤ i < K 0 \le i < K 0≤i<K:
- ∀ v ∈ V , ∑ j = 0 K − 1 x v , i = 1 \forall v \in V, \; \sum\limits_{j=0}^{K-1}x_{v,i}=1 ∀v∈V,j=0∑K−1xv,i=1【顶点必须属于唯一的划分块】
- ∀ e ∈ E ∧ v ∈ e , y e , i ≤ x v , i \forall e \in E \wedge v \in e, \; y_{e,i} \le x_{v,i} ∀e∈E∧v∈e,ye,i≤xv,i 【超边的所有顶点处于同一块时,超边才属于该块】
-
(
1
K
−
ϵ
)
∑
v
∈
V
ω
(
v
)
≤
∑
v
∈
V
i
ω
(
v
)
x
v
,
i
≤
(
1
K
+
ϵ
)
∑
v
∈
V
ω
(
v
)
(\frac1K - \epsilon)\sum\limits_{v\in V}\omega(v) \le \sum\limits_{v \in V_i}\omega(v)x_{v,i} \le (\frac1K + \epsilon)\sum\limits_{v\in V}\omega(v)
(K1−ϵ)v∈V∑ω(v)≤v∈Vi∑ω(v)xv,i≤(K1+ϵ)v∈V∑ω(v)【平衡约束,原论文公式第一项少了总的顶点权重
∑
v
∈
V
ω
(
v
)
\sum\limits_{v\in V}\omega(v)
v∈V∑ω(v) 】
目标是最大化未被切割的超边的总权重,即:
max ∑ e ∈ E ∑ i = 0 K − 1 ω ( e ) y e , i \begin{equation} \max \sum\limits_{e\in E}\sum\limits_{i=0}^{K-1}\omega(e)y_{e,i} \end{equation} maxe∈E∑i=0∑K−1ω(e)ye,i
五、研究方案
5.0 算法流程
我们将 K-SpecPart 视为一个用于改进给定划分实例解的通用框架实例。该框架包括三个模块:
- 顶点嵌入模块
顶点嵌入模块计算每个超图顶点到低维空间中点的映射。嵌入是通过监督算法计算的,使用 S i S_i Si 作为监督输入。目的是激励顶点嵌入以符合 S i S_i Si,从而保持在 S i S_i Si 的“邻域”内,但同时尊重超图的全局结构,因此有潜力改进 S i S_i Si 。 - 解提取模块
解提取模块计算多个不同的划分解 { S i , 1 , ⋯ , S i , δ } \{S_{i,1},\cdots,S_{i,\delta}\} {Si,1,⋯,Si,δ} 。 - 集成模块
该模块使用我们的割边叠加方法将给定解转换为 K 路划分的小实例,可以更可靠地使用更昂贵的划分算法。然后将该小问题实例的解“提升”到原始超图 H,并进一步优化以输出 S i + 1 S_{i+1} Si+1 。
5.1 监督式顶点嵌入
监督顶点嵌入模块接收超图 H(V, E) 和 K 路划分解 S h i n t S_{hint} Shint,并输出 m 维嵌入 X ∣ V ∣ × m X^{|V|×m} X∣V∣×m。在 K-SpecPart 中,我们使用监督谱嵌入算法,将监督信息 S h i n t S_{hint} Shint 编码到广义特征值问题中。图 2 展示了提示信息如何激励计算出与给定解 S h i n t S_{hint} Shint 在空间上保持一致的嵌入,同时也识别出可能改进解的争议顶点。
5.2.1 二路提示的嵌入
二路提示的嵌入算法与 SpecPart 中使用的算法相同,它包括两个主要步骤:
- 图构造:我们定义了嵌入算法使用的三个图:
- 团扩展图 G:这是一个加权团的叠加。对应于超边 e∈E 的团与 e 具有相同的顶点,边权重为 [1/|e|−1] 。【超边转为完全图】
- 权重平衡图 G w G_w Gw:这是一个用于捕获任意顶点权重并激励平衡切割的完全加权图。 G w G_w Gw 与超图 H 具有相同的顶点,任何两个顶点 u 和 v 之间都有权重为 ω ( u ) ⋅ ω ( v ) \omega(u)\cdot \omega(v) ω(u)⋅ω(v) 的边。
- 提示图 G h G_h Gh:这是在二分提示解 S b S_b Sb 定义的两个顶点集 V 0 V_0 V0 和 V 1 V_1 V1 上的完全无权二分图。
- 广义特征值问题和嵌入:给定二分划分解 S h i n t S_{hint} Shint,我们求解广义特征值问题 L G x = λ B x L_Gx = \lambda Bx LGx=λBx,其中 B = L G w + L G h B=L_{G_w}+L_{G_h} B=LGw+LGh,并计算前 m 个非平凡特征向量 X ∈ R ∣ V ∣ × m X \in R^{|V|×m} X∈R∣V∣×m 。我们使用 LOBPCG(一种迭代预处理特征求解器)求解 L G x = λ B x L_Gx = \lambda Bx LGx=λBx 。
5.2.2 多路提示的嵌入【多路就是多个二路的拼接】
从 K 路提示(K>2)生成 m 维嵌入的流程如图 4 所示。步骤如下:
- 嵌入的拼接:对于 K 路提示
S
h
i
n
t
S_{hint}
Shint(对应于 K 路划分解
{
V
0
,
⋯
,
V
K
−
1
}
\{V_0,\cdots,V_{K−1}\}
{V0,⋯,VK−1}),我们提取 K 个不同的二分划分解
S
b
i
,
i
=
0
,
⋯
,
K
−
1
S_{b_i},i=0,\cdots,K−1
Sbi,i=0,⋯,K−1,其中:
S b i = { V i , V − V i } \begin{equation} S_{b_i}=\bigg\{ V_i,V-V_i \bigg\} \end{equation} Sbi={Vi,V−Vi}
对于每个 S b i S_{b_i} Sbi,我们求解其广义问题实例。这生成 K 个不同的嵌入 X i ∈ R ∣ V ∣ × m X_i \in R^{|V|×m} Xi∈R∣V∣×m。然后将这些 K 个嵌入水平拼接以获得最终嵌入 X e m b ∈ R ∣ V ∣ × K ⋅ m X_{emb} \in R^{|V|×K \cdot m} Xemb∈R∣V∣×K⋅m,即:
X e m b = [ X 0 , X 1 , ⋯ , X K − 1 ] \begin{equation} X_{emb}=[X_0,X_1,\cdots,X_{K-1}] \end{equation} Xemb=[X0,X1,⋯,XK−1] - 监督降维:注意上述嵌入 X e m b X_{emb} Xemb 的维度为 K ⋅ m K \cdot m K⋅m 。然后,我们在 X e m b X_{emb} Xemb 上应用监督降维算法。如图 4 所示,我们使用 LDA 主要为了减少后续步骤的运行时间,同时也因为这第二次应用监督可能提高嵌入的质量。除了 X e m b X_{emb} Xemb ,LDA 还需要目标维度和 X e m b X_{emb} Xemb 中点的类别标签。我们选择 m 作为目标维度,并为顶点 v 分配标签 i 当且仅当 v ∈ V i v \in V_i v∈Vi。在计算中,我们使用 MultivariateStats.jl 包中的基于 Julia 的 LDA 实现。
5.2 从嵌入中提取解决方案
解提取模块的输入是超图 H、块数 K、平衡约束 ε 和嵌入 X e m b X_{emb} Xemb,输出是一组解 { S 0 , ⋯ , S δ − 1 } \{S_0,\cdots,S_{\delta−1}\} {S0,⋯,Sδ−1}。算法的主要思想是使用嵌入将 K 路超图划分问题简化为多个 K 路平衡树划分问题,这些树的边权重“总结”了超图的底层切割。算法的步骤如图 5 所示。
5.2.1 树生成
算法中的每个 S i S_i Si 都来自生成顶点集 V 的树。我们定义使用的树类型如下:
- 路径图:我们首先在顶点 V 上定义一个路径图,它出现在二分的 Cheeger 不等式证明中。令 X e m b i X_{emb_i} Xembi 为 X 的第 i 列。我们对 X e m b i X_{emb_i} Xembi 中的值进行排序,并让 o ( j ) o(j) o(j) 为排序后 X e m b X_{emb} Xemb 中的第 j 个位置的顶点。然后,我们将 V 上的路径图定义为 v o ( 1 ) , v o ( 2 ) , ⋯ , v o ( ∣ V ∣ ) v_{o(1)}, v_{o(2)},\cdots,v_{o(|V|)} vo(1),vo(2),⋯,vo(∣V∣)。
- 团扩展生成树:路径图可能不是团扩展图 G 的生成树。为了直接考虑连通性,我们使用一个反映 H 的连通性和嵌入中全局信息的加权图,这是在 K 路 Cheeger 不等式工作中使用的一个想法。具体来说,我们通过共计 ζ \zeta ζ 个循环替换 H 的每个超边 e 来形成图 G ^ \hat{G} G^。令 Y ∈ R ∣ V ∣ × d Y\in R^{|V|×d} Y∈R∣V∣×d 为嵌入矩阵。我们用 Y u Y_u Yu 表示包含顶点 u 嵌入的 Y 的行。我们通过设置 G ^ Y \hat{G}_Y G^Y 中每条边 e u v e_{uv} euv 的权重为 ∣ ∣ Y u − Y v ∣ ∣ 2 ||Y_u−Y_v||_2 ∣∣Yu−Yv∣∣2(即顶点在嵌入中的欧几里得距离)来构造 G ^ Y \hat{G}_Y G^Y 。使用 G ^ Y \hat{G}_Y G^Y ,我们构建两个生成树。
- 低拉伸生成树(LSST):生成树 T ^ \hat{T} T^ 的期望属性是尽可能忠实地保留 G ^ Y \hat{G}_Y G^Y 中的嵌入信息。因此,我们让 T ^ \hat{T} T^ 成为 G ^ Y \hat{G}_Y G^Y 的 LSST,按定义, G ^ Y \hat{G}_Y G^Y 中每个边 e u v e_{uv} euv 的权重 ω ( e u v ) \omega(e_{uv}) ω(euv) 在平均情况下,近似于 T ^ \hat{T} T^ 中顶点 u 和 v 的距离。我们使用 Alon 等人的 AKPW 算法计算 LSST 。AKPW 算法的输出取决于输入的顶点顺序。为了使结果不受原始超图 H 中顶点顺序的影响,我们使用由之前计算的最小非平凡特征向量诱导的顺序对 G ^ Y \hat{G}_Y G^Y 的顶点进行重新标记。这种顺序在产生包含略好切割的 LSST 方面具有优势。
- 最小生成树(MST):一个图可能包含多个不同的 LSST,每个 LSST 对 ω ( e u v ) \omega(e_{uv}) ω(euv) 的近似程度不同。已知 AKPW 算法在近似因子 f ( ∣ V ∣ ) f(|V|) f(∣V∣) 方面不是最优的;更复杂的算法存在,但它们远离实际应用。因此,我们也应用 Kruskal 算法计算 G ^ Y \hat{G}_Y G^Y 的最小生成树,作为计算 LSST 的易实现代理。相比于 AKPW 算法计算的树,MST 可能更好或者互补距离保持属性。
总结:我们计算 m 个路径图,并通过让 Y 覆盖 X e m b X_{emb} Xemb 的各列子集来生成 LSST 和 MST ,从而生成 t = 2 ( 2 m − 1 ) + m t=2(2^m−1)+m t=2(2m−1)+m 棵树。
补充:
- 最小生成树(MST):MST 的目标是找到一个生成树,使得树中所有边的权重之和最小。它关注的是整体边权重的最小化,而不考虑树中路径长度与原图路径长度的关系。例如,在构建一个通信网络时,若边权重代表铺设线路的成本,MST 可以帮助找到成本最低的连接所有节点的网络结构。
- 低拉伸生成树(Low-Stretch Spanning Tree):低拉伸生成树的目标是使得生成树中的路径长度对原图中路径长度的近似程度尽可能好,即拉伸因子(stretch factor)最小。拉伸因子衡量的是生成树中路径长度与原图中最短路径长度的比值。它更关注路径长度的近似性,而不是边权重的总和。例如,在设计一个近似算法来解决最短路径问题时,低拉伸生成树可以提供一个较好的近似结构。【简单一句话就是,低拉伸生成树中,每个顶点对的最短路径尽可能相似与原本图中的最短路径,而最小生成树中,任意两个顶点之间的路径可能比原本图中的最短路径长很多】
5.2.2 切割提纯
我们对给定的树簇中的每棵树 T 进行重新加权,以提纯 H 的切割结构,如下所示:
- 对于给定的树 T = ( V , E T ) T=(V, E_T) T=(V,ET),观察到移除 T 的一条边 e T e_T eT 会生成 V 的一个划分 S e T S_{e_T} SeT,从而生成原始超图 H 的一个划分。
- 我们使用超图 H 的 S e T S_{e_T} SeT 的割边大小对 T 中的每条边 e T ∈ E T e_T \in E_T eT∈ET 进行重新加权。
基于这种权重选择,我们有 C u t S i z e H ( S ) ≤ C u t S i z e T ( S ) CutSize_H(S) \le CutSize_T(S) CutSizeH(S)≤CutSizeT(S),并且由于 T 的构造, C u t S i z e T ( S ) CutSize_T(S) CutSizeT(S) 提供了 C u t S i z e H ( S ) CutSize_H(S) CutSizeH(S) 的代理。结合动态规划,可以通过计算 T 的最近公共祖先(LCA),在 O ( ∑ e ∣ e ∣ ) \Omicron(\sum\limits_{e}|e|) O(e∑∣e∣) 时间内计算 T 上的边权重,详情见算法 2 和我们的快速实现。我们使用图 6 中的例子来说明这个想法。
假设 T 以任意顶点为根。在图 6 的例子中,考虑超边 e = { v 1 , v 5 , v 9 } e=\{v_1, v_5, v_9\} e={v1,v5,v9}。其顶点的 LCA 是 v 7 v_7 v7 。然后,我们将标签 − ω ( e ) −\omega(e) −ω(e) 分配给这些连接点,其中 ω ( e ) \omega(e) ω(e) 是 e 的权重。更一般地,对于超边 e = { v i 1 , ⋯ , v i p } e=\{v_{i1},\cdots,v_{ip}\} e={vi1,⋯,vip},
- 按照 T 的后序遍历顺序排列其顶点,我们为 j = 2 , ⋯ , p j=2,\cdots,p j=2,⋯,p 的 p−1 个集合 { v i 1 , ⋯ , v i j } \{v_{i1},\cdots,v_{ij}\} {vi1,⋯,vij} 计算 LCA,并用适当的负倍数的 ω ( e ) \omega(e) ω(e) 对连接点进行标记。【递归进行的,两两顶点找 LCA ,权重不断叠加】
- 我们还将 ω ( e ) \omega(e) ω(e) 标签分配给 e 中的顶点。
- 所有其他顶点的标签为 0 。
对于树的任意边
e
T
e_T
eT,计算其下方的 sum-below-
e
T
e_T
eT(即
e
T
e_T
eT 下方的顶点标签的总和)。这将在所有属于
C
e
C_e
Ce 的边上产生
ω
(
e
)
\omega(e)
ω(e) ,其他地方为 0,从而正确地将超边 e 的权重分配到预期的边集
C
e
C_e
Ce 上(算法 2 的第 14–16 行)。为了计算所有树边上的总切割超边数,我们遍历超边,计算它们的连接点,并聚合关联的标签。然后,对于任意树边
e
T
e_T
eT,sum-below-
e
T
e_T
eT 将等于
C
u
t
S
i
z
e
H
(
S
e
T
)
CutSize_H(S_{e_T})
CutSizeH(SeT) 。通过在 T 上进行动态规划,这些总和可以在
O
(
∣
V
∣
)
\Omicron(|V|)
O(∣V∣) 时间内计算。
5.2.3 树划分
我们使用线性“树扫掠”方法和 METIS 对树进行划分。在研究中,我们发现仅使用 METIS 作为树划分器会导致 K=2、3 和 4 时平均切割大小分别恶化 3%、4% 和 3% 。
- K=2:给定一个切割提纯树 T,参考图 6,动态规划可以计算 T 上位于 e T e_T eT 下方的顶点总权重。因此,我们可以计算 S e T S_{e_T} SeT 的平衡切割目标值,并在树建议的 n−1 个切割中选择使目标最小化的 S e T S_{e_T} SeT。这种树扫掠算法从树中生成高质量的二分划分解。此外,我们使用 METIS 对边加权树进行平衡二分划分,顶点权重来自 H 。在某些情况下,这可以改进解。
- K>2:类似于 K=2 的情况,我们使用两种算法对树进行划分,生成两个可能不同的 K 路划分解。第一个算法是 METIS ,第二个算法将树的二分划分扩展到K路划分。为此,我们在 K−1 级递归应用二分算法。我们使用类似于 VILE(“very illegal”)的方法生成不平衡的划分解,然后使用 FM 算法优化解。具体来说,在计算树 e T e_T eT 的第 i 级二分划分解 S e T i S^i_{e_T} SeTi 时,二分划分解 S ( V i 0 , V i 1 ) S(V_{i0}, V_{i1}) S(Vi0,Vi1) 中块 V i 0 V_{i0} Vi0 的平衡约束为: ( 1 K − ϵ ) W ≤ ∑ v ∈ V i 0 ω ( v ) ≤ ( 1 K + ε ) W (\frac1K−\epsilon)W \le \sum\limits_{v∈V_{i0}}\omega(v) \le (\frac1K + ε )W (K1−ϵ)W≤v∈Vi0∑ω(v)≤(K1+ε)W。在获得第 i 级二分划分解 S e T i S^i_{e_T} SeTi 后,我们将 V i 0 V_{i0} Vi0 中的所有顶点标记为固定顶点,并将其权重设置为零。然后,我们继续进行第 i+1 级二分划分解 S e T i + 1 S^{i+1}_{e_T} SeTi+1 的计算。
5.2.4 细化
【可以认为,前面的步骤就是为了得到很多个较好的初始划分】
前一步骤解决了与 H 具有相同顶点集 V 的树上的平衡划分问题。注意到解的数量将大于树的数量,因为我们在每棵树上应用了不同的划分算法。然后将这些解转移到H,并使用 FM 算法对每个解进行进一步优化。
5.3 基于割边叠加的解决方案
该模块的输入是给定的 K 路划分实例和一组划分解。然后执行以下步骤:
- 割边叠加聚类:与广泛使用的 V 周期优化 [8] 相比,割边叠加聚类采用了类似于 Edge-Frequency Multi-Recombine 方法 [5] 的思想。V 周期优化取多级划分算法获得的最佳解,并通过多阶段优化反复改进它;相比之下,割边叠加聚类尝试通过组合一组划分解来揭示高质量的切割结构。我们首先选择 δ \delta δ 个最佳解。令 E 1 , ⋯ , E δ ⊂ E E_1,\cdots,E_{\delta} \subset E E1,⋯,Eδ⊂E 为这 δ \delta δ 个解中被切割的超边集。我们从 H 中移除这些集合并生成多个连通聚类。然后,我们执行多级划分器中标准的聚类收缩过程,生成聚类超图 H c ( V c , E c ) H_c(V_c, E_c) Hc(Vc,Ec)。根据构造, E c E_c Ec 由 E 1 ∪ ⋯ ∪ E δ E_1\cup \cdots \cup E_{\delta} E1∪⋯∪Eδ 组成,因此保证包含至少与 E i E_i Ei 中最佳切割一样好的解。
- 基于 ILP 的划分:通过割边叠加聚类得到的粗化超图 H c H_c Hc 通常只有几百个顶点和超边(在默认设置 δ = 5 \delta =5 δ=5 的情况下)。尽管即使这种小规模也可能会使精确优化算法的应用变得困难,但令人惊讶的是,ILP 公式通常可以找到最优解。在大多数情况下,我们的 ILP 生成的解比 δ \delta δ 个候选解中的任何一个都更好。我们使用 CPLEX 求解器 [47] 解决 ILP。我们发现开源 OR-Tools 包 [56] 显著更慢。在当前实现中,我们包含了一个参数 γ \gamma γ:当 H c H_c Hc 中的超边数量超过 γ \gamma γ 时,我们在 H c H_c Hc 上运行 hMETIS。这一步生成一个 K 路解 S′ 。
- 升迁和优化:前一步骤生成的解 S′ 被提升到 H,使用多级划分器使用的标准提升过程。最后,我们使用 FM 算法优化 H 以获得最终解 S。
六、实验结果
6.1 实验环境
- 运行环境:在配置 Intel Xeon E5-2650L, 1.70-GHz CPU, and 256-GB memory 的服务器上运行
- 测试用例:
- ISPD98 VLSI Circuit Benchmark Suite
- Titan23 Suite
- 实验参数:
- ϵ = 0.02 \epsilon = 0.02 ϵ=0.02
- K = { { 2 , 3 , 4 } , I S P D 98 { 2 , 3 , 4 } ∪ { 6 , 8 , 12 , 24 , 32 , 48 , 64 , 80 , 96 , 128 } , T i t a n 23 K=\begin{cases} \{2,3,4\} &, ISPD98 \\ \{2,3,4\} \cup \{6,8,12,24,32,48,64,80,96,128\} &, Titan23 \end{cases} K={{2,3,4}{2,3,4}∪{6,8,12,24,32,48,64,80,96,128},ISPD98,Titan23
6.2 实验结果
- ISPD98
【 K = { 2 , 3 , 4 } K=\{2,3,4\} K={2,3,4},左边是顶点不带权重,右边是顶点带权重】
【大部分情况下,都是 K-SpecPart 优于 KaHyPar 和 hMETIS 】
- Titan23
【 K = { 2 , 3 , 4 } K=\{2,3,4\} K={2,3,4}】
【大部分情况下,都是 K-SpecPart 优于 hMETIS 】
【 K = { 2 , 3 , 4 , 6 , 8 , 12 , 24 , 32 , 48 , 64 , 80 , 96 , 128 } K=\{2,3,4,6,8,12,24,32,48,64,80,96,128\} K={2,3,4,6,8,12,24,32,48,64,80,96,128}】
1)K-SpecPart 的运行时间随 K 的增大呈线性增长。
2)即使对于 K=128,K-SpecPart 仍实现了约 2% 的改善,但运行时间开销超过 60 倍。
七、结论
我们提出了K-SpecPart,这是一个通用的监督超图多路划分解改进框架。实验结果表明,与传统的多级划分器相比,K-SpecPart 在保持相当运行时间的同时,具有卓越的性能。SpecPart 和K-SpecPart 的发现表明,划分问题可能并不像之前认为的那样已经得到全面解决,仍有可能实现重大进展。K-SpecPart 可以集成到多级划分器的内部层级中;在每个层级上生成改进的解可能会进一步提升解的质量。此外,我们认为切割叠加聚类和基于 LDA 的嵌入生成具有独立价值,并且适合机器学习技术的应用。扩展 K-SpecPart 以处理连通性指标也将是一个有趣的未来研究方向。