### Counting and enumerating crossing-free geometric graphs

#### Abstract

We describe a framework for constructing data structures which allow fast counting and enumeration of 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 represent geometric graphs as source-sink paths in a directed acyclic graph.

The following 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$.

Moreover, after a preprocessing phase with the same time bounds as above, we can enumerate the respective classes efficiently. 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.

#### Full Text:

PDFDOI: http://dx.doi.org/10.20382/jocg.v8i1a4

ISSN: 1920-180X