Counting and Enumerating Crossing-free Geometric Graphs (1604.05350v1)
Abstract: We describe a framework for counting and enumerating various types of crossing-free geometric graphs on a planar point set. The framework generalizes ideas of Alvarez and Seidel, who used them to count triangulations in time $O(2nn2)$ where $n$ is the number of points. The main idea is to reduce the problem of counting geometric graphs to counting source-sink paths in a directed acyclic graph. The following new results will emerge. The number of all crossing-free geometric graphs can be computed in time $O(cnn4)$ for some $c < 2.83929$. The number of crossing-free convex partitions can be computed in time $O(2nn4)$. The number of crossing-free perfect matchings can be computed in time $O(2nn4)$. The number of convex subdivisions can be computed in time $O(2nn4)$. The number of crossing-free spanning trees can be computed in time $O(cnn4)$ for some $c < 7.04313$. The number of crossing-free spanning cycles can be computed in time $O(cnn4)$ for some $c < 5.61804$. With the same bounds on the running time we can construct data structures which allow fast enumeration of the respective classes. For example, after $O(2nn4)$ time of preprocessing we can enumerate the set of all crossing-free perfect matchings using polynomial time per enumerated object. For crossing-free perfect matchings and convex partitions we further obtain enumeration algorithms where the time delay for each (in particular, the first) output is bounded by a polynomial in $n$. All described algorithms are comparatively simple, both in terms of their analysis and implementation.