A message-passing algorithm for counting short cycles in a graph is presented. For bipartite graphs, which are of particular interest in coding, the algorithm is capable of counting cycles of length g, g+2, \ldots, 2g-2, where g is the girth of the graph. For a general (non-bipartite) graph, cycles of length g, g+1, \ldots, 2g-1 can be counted. The algorithm is based on performing integer additions and subtractions in the nodes of the graph and passing extrinsic messages to adjacent nodes. The complexity of the proposed algorithm grows as O(g |E|2), where |E| is the number of edges in the graph. For sparse graphs, the proposed algorithm significantly outperforms the existing algorithms, tailored for counting em short cycles, in terms of computational complexity and memory requirements. We also discuss a more generic and basic approach of counting short cycles which is based on matrix multiplication, and provide a message-passing interpretation for such an approach. We then demonstrate that an efficient implementation of the matrix multiplication approach has essentially the same complexity as the proposed message-passing algorithm.

, , , , , ,
IEEE Transactions on Communications
Department of Systems and Computer Engineering

Karimi, M. (Mehdi), & Banihashemi, A. (2013). Message-passing algorithms for counting short cycles in a graph. IEEE Transactions on Communications, 61(2), 485–495. doi:10.1109/TCOMM.2012.100912.120503