Creative Commons Attribution 3.0 Unported license
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(2^n n^2) 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.
@InProceedings{marx_et_al:LIPIcs.SoCG.2016.52,
author = {Marx, D\'{a}niel and Miltzow, Tillmann},
title = {{Peeling and Nibbling the Cactus: Subexponential-Time Algorithms for Counting Triangulations and Related Problems}},
booktitle = {32nd International Symposium on Computational Geometry (SoCG 2016)},
pages = {52:1--52:16},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-009-5},
ISSN = {1868-8969},
year = {2016},
volume = {51},
editor = {Fekete, S\'{a}ndor and Lubiw, Anna},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.SoCG.2016.52},
URN = {urn:nbn:de:0030-drops-59445},
doi = {10.4230/LIPIcs.SoCG.2016.52},
annote = {Keywords: computational geometry, triangulations, exponential-time algorithms}
}