Efficient Enumeration of All Chordless Cycles in Graphs (original) (raw)

Efficient Enumeration of Chordless Cycles

arXiv: Data Structures and Algorithms, 2013

In a finite undirected simple graph, a {\it chordless cycle} is an induced subgraph which is a cycle. We propose two algorithms to enumerate all chordless cycles of such a graph. Compared to other similar algorithms, the proposed algorithms have the advantage of finding each chordless cycle only once. To ensure this, we introduced the concepts of vertex labeling and initial valid vertex triplet. To guarantee that the expansion of a given chordless path will always lead to a chordless cycle, we use a breadth-first search in a subgraph obtained by the elimination of many of the vertices from the original graph. The resulting algorithm has time complexity mathcalO(n+m)\mathcal{O}(n + m)mathcalO(n+m) in the output size, where nnn is the number of vertices and mmm is the number of edges.

Version 11.0 Fast Parallel Algorithm for Enumerating All Chordless Cycles in Graphs

2016

Finding chordless cycles is an important theoretical problem in the Graph Theory area. It also can be applied to practical problems such as discover which predators compete for the same food in ecologi-cal networks. Motivated by the problem of theoretical interest and also by its significant practical importance, we present in this pa-per a parallel algorithm for enumerating all the chordless cycles in undirected graphs, which was implemented in OpenCL.

Fast Parallel Algorithm for Enumerating All Chordless Cycles in Graphs

ArXiv, 2014

Finding chordless cycles is an important theoretical problem in the Graph Theory area. It also can be applied to practical problems such as discover which predators compete for the same food in ecological networks. Motivated by the problem of theoretical interest and also by its significant practical importance, we present in this paper a parallel algorithm for enumerating all the chordless cycles in undirected graphs, which was implemented in OpenCL.

Polynomial enumeration of chordless cycles on cyclically orientable graphs

2015

In a finite undirected simple graph, a chordless cycle is an induced subgraph which is a cycle. A graph is called cyclically orientable if it admits an orientation in which every chordless cycle is cyclically oriented. We propose an algorithm to enumerate all chordless cycles of such a graph. Compared to other similar algorithms, the proposed algorithm have the advantage of finding each chordless cycle only once in time complexity mathcalO(n2)\mathcal{O}(n^2)mathcalO(n2) in the input size, where nnn is the number of vertices.

Amortized tildeO(∣V∣)\tilde{O}(|V|)tildeO(V) -Delay Algorithm for Listing Chordless Cycles in Undirected Graphs

Lecture Notes in Computer Science, 2014

ABSTRACT Chordless cycles are very natural structures in undirected graphs, with an important history and distinguished role in graph theory. Motivated also by previous work on the classical problem of listing cycles, we study how to list chordless cycles. The best known solution to list all the CCC chordless cycles contained in an undirected graph G=(V,E)G = (V,E)G=(V,E) takes O(∣E∣2+∣E∣cdotC)O(|E|^2 +|E|\cdot C)O(E2+EcdotC) time. In this paper we provide an algorithm taking tildeO(∣E∣+∣V∣cdotC)\tilde{O}(|E| + |V |\cdot C)tildeO(E+VcdotC) time. We also show how to obtain the same complexity for listing all the PPP chordless ststst-paths in GGG (where CCC is replaced by PPP ).

A GPU-based parallel algorithm for enumerating all chordless cycles in graphs

arXiv: Distributed, Parallel, and Cluster Computing, 2014

In a finite undirected simple graph, a chordless cycle is an induced subgraph which is a cycle. We propose a GPU parallel algorithm for enumerating all chordless cycles of such a graph. The algorithm, implemented in OpenCL, is based on a previous sequential algorithm developed by the current authors for the same problem. It uses a more compact data structure for solution representation which is suitable for the memory-size limitation of a GPU. Moreover, for graphs with a sufficiently large amount of chordless cycles, the algorithm presents a significant improvement in execution time that outperforms the sequential method.

A general purpose algorithm for counting simple cycles and simple paths of any length

We describe a general purpose algorithm for counting simple cycles and simple paths 4 of any length on a (weighted di)graph on N vertices and M edges, achieving a time complexity of O(N + M + (L^ω + L∆) |S_L|). In this expression, |S_L| is the number of (weakly) connected induced subgraphs of G on at most L vertices, ∆ is the maximum degree of any vertex and ω is the exponent of matrix multiplication. We compare the algorithm complexity both theoretically and experimentally with most of the existing algorithms for the same task. These comparisons show that the algorithm described here is the best general purpose algorithm for the class of graphs where (1 + L^(ω−1)/∆ )|S_L| ≤ |Cycle_L|, with |Cycle_L| the total number of simple cycles of length at most L, including backtracks and self-loops. On Erdös-Rényi random graphs, we find empirically that this happens when the edge probability is larger than circa 4/N. In addition, we show that some real-world networks also belong to this class. Finally, the algorithm permits the enumeration of simple cycles and simple paths on networks where vertices are labeled from an alphabet on n letters with a time complexity of O(N + M + (n^L L^ω + ∆) |S_L|). A Matlab implementation of the algorithm proposed here is available for download.

Enumerating chordless circuits in directed graphs

2010

We introduce and discuss an algorithm using O(p) time and O(n(n + m)) space for enumerating the m > 0 chordless circuits in a digraph of order n and containing p chordless paths. Running it on random digraphs yields some statistical insight into its practical performance.

Generating Chordal Graphs Included in Given Graphs

IEICE Transactions on Information and Systems, 2006

Masashi KIYOMI †a) , Nonmember and Takeaki UNO †b) , Member SUMMARY A chordal graph is a graph which contains no chordless cycle of at least four edges as an induced subgraph. The class of chordal graphs contains many famous graph classes such as trees, interval graphs, and split graphs, and is also a subclass of perfect graphs. In this paper, we address the problem of enumerating all labeled chordal graphs included in a given graph. We think of some variations of this problem. First we introduce an algorithm to enumerate all connected labeled chordal graphs in a complete graph of n vertices. Next, we extend the algorithm to an algorithm to enumerate all labeled chordal graphs in a n-vertices complete graph. Then, we show that we can use, with small changes, these algorithms to generate all (connected or not necessarily connected) labeled chordal graphs in arbitrary graph. All our algorithms are based on reverse search method, and time complexities to generate a chordal graph are O(1), and also O(1) delay. Additionally, we present an algorithm to generate every clique of a given chordal graph in constant time. Using these algorithms we obtain combinatorial Gray code like sequences for these graph structures in which the differences between two consecutive graphs are bounded by a constant size.

Optimal Listing of Cycles and st-Paths in Undirected Graphs

Proceedings of the Twenty-Fourth Annual ACM-SIAM Symposium on Discrete Algorithms, 2013

Listing all the simple cycles (hereafter just called cycles) in a graph is a classical problem whose efficient solutions date back to the early 70s. For a graph with n vertices and m edges, containing η cycles, the best known solution in the literature is given by Johnson's algorithm [SIAM J. Computing, 1975] and takes O((η + 1)(m + n)) time. This solution is surprisingly not optimal for undirected graphs: to the best of our knowledge, no theoretically faster solutions have been proposed in almost 40 years.