Acyclic and cyclic orientations of an undirected graph have been widely studied for their importance: an orientation is acyclic if it assigns a direction to each edge so as to obtain a directed acyclic graph (DAG) with the same vertex set; it is cyclic otherwise. As far as we know, only the enumeration of acyclic orientations has been addressed in the literature. In this paper, we pose the problem of efficiently enumerating all the cyclic orientations of an undirected connected graph with n vertices and m edges, observing that it cannot be solved using algorithmic techniques previously employed for enumerating acyclic orientations. We show that the problem is of independent interest from both combinatorial and algorithmic points of view, and that each cyclic orientation can be listed with Õ (m) delay time. Space usage is O(m) with an additional setup cost of O(n2) time before the enumeration begins, or O(mn) with a setup cost of Õ(m) time.
Conte, A., Grossi, R., Marino, A., & Rizzi, R. (2016). Enumerating cyclic orientations of a graph. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 9538, pp. 88–99). Springer Verlag. https://doi.org/10.1007/978-3-319-29516-9_8