The reverse search technique has been recently introduced by the authors for efficient enumeration of vertices of polyhedra and arrangements. In this paper, we develop this idea in a general framework and show its broader applications to various problems in operations research, combinatorics, and geometry. In particular, we propose new algorithms for listing (i) all triangulations of a set of n points in the plane, (ii) all cells in a hyperplane arrangement in Rd, (iii) all spanning trees of a graph, (iv) all Euclidean (noncrossing) trees spanning a set of n points in the plane, (v) all connected induced subgraphs of a graph, and (vi) all topological orderings of an acyclic graph. Finally, we propose a new algorithm for the 0-1 integer programming problem which can be considered as an alternative to the branch-and-bound algorithm.
Avis, D., & Fukuda, K. (1996). Reverse search for enumeration. Discrete Applied Mathematics, 65(1–3), 21–46. https://doi.org/10.1016/0166-218X(95)00026-N