The Reverse Cuthill-McKee (RCM) algorithm is a graph-based method for reordering sparse matrices, renowned for its effectiveness in minimizing matrix bandwidth and profile. This reordering enhances the efficiency of matrix operations, making RCM pivotal among reordering algorithms. In the context of executing the RCM algorithm, it is often necessary to select a starting node from the graph representation of the matrix. This selection allows the execution of BFS (Breadth-First Search) to construct the level structure. The choice of this starting node significantly impacts the algorithm's performance, necessitating a heuristic approach to identify an optimal starting node, commonly referred to as the RCM starting node problem. Techniques such as the minimum degree method and George-Liu (GL) algorithm are popular solutions. This paper introduces a novel algorithm addressing the RCM starting node problem by considering both the eccentricity and the width of the node during the run. Integrating this algorithm with the RCM algorithm, we introduce RCM++. Experimental results demonstrate that RCM++ outperforms existing RCM methods in major software libraries, achieving higher quality results with comparable computation time. This advancement fosters the further application and development of the RCM algorithm.The code related to this research has been made available at https://github.com/SStan1/RCM\_PP.git.
翻译:逆Cuthill-McKee(RCM)算法是一种基于图的稀疏矩阵重排序方法,以其有效减小矩阵带宽和轮廓而著称。该重排序过程提升了矩阵运算效率,使RCM在重排序算法中占据关键地位。在执行RCM算法时,通常需要从矩阵的图表示中选择起始节点,以便通过广度优先搜索(BFS)构建层级结构。起始节点的选择对算法性能具有显著影响,因此需要采用启发式方法寻找最优起始节点,这一问题常被称为RCM起始节点问题。最小度方法与George-Liu(GL)算法是该问题的常用解决方案。本文提出一种新颖算法,通过在运行过程中同时考虑节点的偏心距与宽度来解决RCM起始节点问题。将该算法与RCM算法集成后,我们提出了RCM++。实验结果表明,在计算时间相当的情况下,RCM++在主流软件库中优于现有RCM方法,获得了更高质量的结果。这一进展推动了RCM算法的进一步应用与发展。本研究所涉代码已发布于 https://github.com/SStan1/RCM\_PP.git。