Bhowmick Sanjukta, Chen Tzu-Yi, Halappanavar Mahantesh
University of Nebraska, Omaha; PKI 1110 South 67th St; Omaha, Nebraska, 68182.
Pomona College; 185 E. Sixth St; Claremont, CA 91711.
J Parallel Distrib Comput. 2015 Feb 1;76:132-144. doi: 10.1016/j.jpdc.2014.10.006.
A graph is chordal if every cycle of length greater than three contains an edge between non-adjacent vertices. Chordal graphs are of interest both theoretically, since they admit polynomial time solutions to a range of NP-hard graph problems, and practically, since they arise in many applications including sparse linear algebra, computer vision, and computational biology. A maximal chordal subgraph is a chordal subgraph that is not a proper subgraph of any other chordal subgraph. Existing algorithms for computing maximal chordal subgraphs depend on dynamically ordering the vertices, which is an inherently sequential process and therefore limits the algorithms' parallelizability. In this paper we explore techniques to develop a scalable parallel algorithm for extracting a maximal chordal subgraph. We demonstrate that an earlier attempt at developing a parallel algorithm may induce a non-optimal vertex ordering and is therefore not guaranteed to terminate with a chordal subgraph. We then give a new algorithm that first computes and then repeatedly augments a spanning chordal subgraph. After proving that the algorithm terminates with a maximal chordal subgraph, we then demonstrate that this algorithm is more amenable to parallelization and that the parallel version also terminates with a maximal chordal subgraph. That said, the complexity of the new algorithm is higher than that of the previous parallel algorithm, although the earlier algorithm computes a chordal subgraph which is not guaranteed to be maximal. We experimented with our augmentation-based algorithm on both synthetic and real-world graphs. We provide scalability results and also explore the effect of different choices for the initial spanning chordal subgraph on both the running time and on the number of edges in the maximal chordal subgraph.
如果每个长度大于三的圈都包含非相邻顶点之间的一条边,那么这个图就是弦图。弦图在理论上很有趣,因为它们对于一系列NP难的图问题都有多项式时间解;在实践中也很有趣,因为它们出现在许多应用中,包括稀疏线性代数、计算机视觉和计算生物学。极大弦子图是一个弦子图,且不是任何其他弦子图的真子图。现有的计算极大弦子图的算法依赖于对顶点进行动态排序,这是一个固有的顺序过程,因此限制了算法的并行性。在本文中,我们探索开发一种可扩展的并行算法来提取极大弦子图的技术。我们证明了早期开发并行算法的尝试可能会导致非最优的顶点排序,因此不能保证以弦子图终止。然后我们给出一种新算法,该算法首先计算然后反复扩充一个生成弦子图。在证明该算法以极大弦子图终止后,我们接着证明该算法更适合并行化,并且并行版本也以极大弦子图终止。也就是说,新算法的复杂度高于之前的并行算法,尽管早期算法计算出的弦子图不能保证是极大的。我们在合成图和真实世界的图上对基于扩充的算法进行了实验。我们提供了可扩展性结果,并探讨了初始生成弦子图的不同选择对运行时间和极大弦子图中边的数量的影响。