Simple and efficient four-cycle counting on sparse graphs
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 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 requiring O(mδ̅(G)) time and O(n) space, where δ̅(G) ≤ O(√(m)) is the average degeneracy parameter introduced by Burkhardt, Faber Harris (2020). It has several practical improvements over previous algorithms; for example, it is fully deterministic, does not require any sorting of the adjacency list of the input graph, and avoids any expensive arithmetic in its inner loops. To the best of our knowledge, all previous efficient algorithms for C_4 counting have required Ω(m) space. The algorithm can also be adapted to count 4-cycles incident to each vertex and edge.
READ FULL TEXT