助力集算法优化与网格划分器性能对比分析
助力集算法的改进
在图划分领域,不同的图划分库在性能上存在显著差异。以kmetis为例,其平均边割达到126.4,无论是边割还是平衡性方面,这个数值都非常高。而pmetis、无不平衡设置的Jostle以及Party的旧实现(绿色菱形)在边割上表现相似,Party的新实现(黑色圆圈)计算出的解差异更小(通常相同),平均边割达到100.9。从资源消耗来看,对于100x100网格,Jostle计算结果所需时间最长,其次是Metis和Party;Metis所需内存最多,其次是Jostle和Party。
值得注意的是,如果仅使用原始图对这些库进行比较,它们的排名会有所不同。Metis(kmetis和pmetis)以及允许1%和3%不平衡的Jostle性能会变差,而无不平衡的Jostle和Party表现会更好,得出的结论也会不同。
助力集(Helpful-Set,HS)启发式算法用于局部优化,基于理论观察来寻找规则图二分宽度的上界。它在Party库中作为Kerninghan-Lin(KL)风格启发式算法的替代方案。与KL算法类似,HS启发式算法基于局部搜索,从给定的初始二分开始,通过局部重排来减少边割。但不同的是,它不仅迁移单个顶点,还迁移顶点集。
算法流程如下:
1. 搜索l - 助力集,即从V0或V1中选取的节点子集,将其移动到另一个分区时可使边割减少l。
2. 若找到l - 助力集,将其移动,然后寻找平衡集,该平衡集能消除移动l - 助力集造成的不平衡,且边割增加不超过l - 1。
3. 若找到平衡集,将其移动,边割至少减少1,重复上述过程,直到无法进一步改进。
由于运行时间的
超级会员免费看
订阅专栏 解锁全文
1万+

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



