跳转至

图算法

PPoPP_2023_FASTBCC

双连通分量(BCC)的求解是图论中的基础问题,可以广泛应用于如平面性检验、中心性计算和网络分析等任务中。Hopcroft-Tarjan算法是串行求解BCC的经典算法,其时间复杂度\(O(n+m)\)与空间复杂度\(O(n)\)都在可接受的范围内,但由于其基于深度优先搜索(DFS)树框架,难以并行化。最初能够并行求解BCC的Tarjan-Vishkin算法可以基于任意生成树(AST)框架,但由于其使用了过多的额外空间\(O(m)\),没有被广泛采用。后续算法采用广度优先搜索(BFS)树框架对Tarjan-Vishkin算法进行改进,将额外空间降低到\(O(n)\),但由于BFS的特性,改进后的算法在直径较大的图中性能不佳。在该论文中,作者重新审视Hopcroft-Tarjan串行算法,提取出关键思想,结合了高效的并行单连通分量算法,实现了AST框架下使用\(O(n)\)额外空间的FAST-BCC算法。该算法流程简明,实现高效,在多种负载下均表现出较高的性能。

原论文 幻灯片

SPAA_2021_Parallel Shortest Paths

单源最短路(SSSP)问题是图论中的经典问题,对其理论与实现的研究都具有重大意义。目前,大部分并行SSSP算法基于Δ-Stepping,即以Δ为步长进行Dijkstra算法,并在子过程中进行Bellman-Ford算法。然而,超参数Δ的选择与图的结构、权重分布及具体实现相关,而且对性能的影响极大。在本文中,作者提出了惰性批量优先队列(LAB-PQ),并基于现有的并行SSSP算法,构建了新的Stepping算法框架,实现了超参数不敏感的并行SSSP算法。新算法在理论上具有较低复杂度,实现后在多种不同的负载下均表现出较高的性能。

原论文 幻灯片

HVC_2015_VSIDS

现代SAT求解器中普遍使用VSIDS方法及其变种作为启发式搜索的方法之一,该论文对这个方法的合理性给出了解释,对SAT问题的启发式搜索策略的选择具有指导性的意义。VSIDS方法是优先选择在最近推断过的子句中,出现次数多的变量,在后续的变量枚举时优先枚举。由于子句代表了变量之间的相关性,作者使用图论中的社区结构和桥接变量进行解释。VSIDS高效的原因主要包括:挑选高中心性的桥接变量、倾向于从较小的社区中选择变量和倾向于从最近的社区中选择变量。作者对VSIDS的有效性分析较为完备,对该论文进一步思考,社区结构性强的SAT问题具有良好的可分性,可以通过这种可分性提高SAT问题的并行性。

原论文 幻灯片