We consider the problem of counting 4-cycles ($C_4$) in a general undirected graph $G$ of $n$ vertices and $m$ edges (in bipartite graphs, 4-cycles are also often referred to as $\textit{butterflies}$). There have been a number of previous algorithms for this problem; some of these are based on fast matrix multiplication, which is attractive theoretically but not practical, and some of these are based on randomized hash tables. We develop a new simpler algorithm for counting $C_4$, which has several practical improvements over previous algorithms; for example, it is fully deterministic and avoids any expensive arithmetic in its inner loops. The algorithm can also be adapted to count 4-cycles incident to each vertex and edge. Our algorithm runs in $O(m\bar\delta(G))$ time and $O(n)$ space, where $\bar \delta(G) \leq O(\sqrt{m})$ is the $\textit{average degeneracy}$ parameter introduced by Burkhardt, Faber & Harris (2020).
翻译:我们考虑在具有n个顶点和m条边的一般无向图G中计数4-圈($C_4$)的问题(在二分图中,4-圈通常也被称为$\textit{蝴蝶}$)。此前已有多种针对该问题的算法:其中一些基于快速矩阵乘法,这在理论上具有吸引力但实际不可行;另一些则基于随机哈希表。我们开发了一种新的更简单的$C_4$计数算法,该算法在多个方面对先前算法进行了实践性改进:例如,它是完全确定性的,并且在其内循环中避免了任何昂贵的算术运算。该算法还可调整用于对每个顶点和每条边相关的4-圈进行计数。我们的算法运行时间为$O(m\bar\delta(G))$,空间复杂度为$O(n)$,其中$\bar \delta(G) \leq O(\sqrt{m})$是Burkhardt、Faber & Harris(2020)引入的$\textit{平均退化度}$参数。