Peeling and Nibbling the Cactus: Subexponential-Time Algorithms for Counting Triangulations and Related Problems (1603.07340v1)
Abstract: Given a set of $n$ points $S$ in the plane, a triangulation $T$ of $S$ is a maximal set of non-crossing segments with endpoints in $S$. We present an algorithm that computes the number of triangulations on a given set of $n$ points in time $n{(11+ o(1))\sqrt{n} }$, significantly improving the previous best running time of $O(2n n2)$ by Alvarez and Seidel [SoCG 2013]. Our main tool is identifying separators of size $O(\sqrt{n})$ of a triangulation in a canonical way. The definition of the separators are based on the decomposition of the triangulation into nested layers ("cactus graphs"). Based on the above algorithm, we develop a simple and formal framework to count other non-crossing straight-line graphs in $n{O(\sqrt{n})}$ time. We demonstrate the usefulness of the framework by applying it to counting non-crossing Hamilton cycles, spanning trees, perfect matchings, $3$-colorable triangulations, connected graphs, cycle decompositions, quadrangulations, $3$-regular graphs, and more.