State-of-the-art solvers for symmetry detection in combinatorial objects are becoming increasingly sophisticated software libraries. Most of the solvers were initially designed with inputs from combinatorics in mind (nauty, bliss, Traces, dejavu). They excel at dealing with a complicated core of the input. Others focus on practical instances that exhibit sparsity. They excel at dealing with comparatively easy but extremely large substructures of the input (saucy). In practice, these differences manifest in significantly diverging performances on different types of graph classes. We engineer a preprocessor for symmetry detection. The result is a tool designed to shrink sparse, large substructures of the input graph. On most of the practical instances, the overall running time improves significantly for many of the state-of-the-art solvers. At the same time, our benchmarks show that the additional overhead is negligible. Overall we obtain single algorithms with competitive performance across all benchmark graphs. As such the preprocessor bridges the disparity between solvers that focus on combinatorial graphs and large practical graphs. In fact, on most of the practical instances the combined setup significantly outperforms previous state-of-the-art.
翻译:在组合对象中进行对称检测的最先进的解决方案正在逐渐变得日益先进的软件库。大多数解决方案最初设计时有集成式集成式集成式集成式(导航、幸福、跟踪、德雅武)的投入。它们擅长处理复杂的输入核心。另一些则侧重于展示广度的实用实例。它们擅长处理相对简单但极大的投入子结构(系统化)。在实践中,这些差异表现在不同类型的图形类中的显著不同性能中表现出来。我们设计了一个用于对称检测的预处理器。结果是一个工具,旨在缩小输入图中稀疏的大型子结构。在大多数实际实例中,许多最新解析器的总体运行时间显著改善。与此同时,我们的基准显示,额外的间接成本微不足道。总体而言,我们获得了单一的算法,在所有基准图表中都具有竞争性的性能。这样的预处理器缩小了侧重于梳式图和大型实用图表的解算器之间的差异。事实上,大多数实际实例都组合了以前的状态。