Counting and Enumerating Crossing-free Geometric Graphs
  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(2^nn^2)$ 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(c^nn^4)$ for some $c < 2.83929$. The number of crossing-free convex partitions can be computed in time $O(2^nn^4)$. The number of crossing-free perfect matchings can be computed in time $O(2^nn^4)$. The number of convex subdivisions can be computed in time $O(2^nn^4)$. The number of crossing-free spanning trees can be computed in time $O(c^nn^4)$ for some $c < 7.04313$. The number of crossing-free spanning cycles can be computed in time $O(c^nn^4)$ 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(2^nn^4)$ 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. 
Manuel Wettstein
cs.CG