{'fraction_non_alphanumeric': 0.05656962121789498, 'fraction_numerical': 0.01951070802530295, 'mean_word_length': 3.600718793828892, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 14, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Bounds on the maximum multiplicity of some common geometric graphs

We obtain new lower and upper bounds for the maximum multiplicity of some weighted and, respectively, non-weighted common geometric graphs drawn on n points in the plane in general position (with no three points collinear): perfect matchings, spanning trees, spanning cycles (tours), and triangulations. (i) We present a new lower bound construction for the maximum number of triangulations a set of n points in general position can have. In particular, we show that a generalized double chain formed by two almost convex chains admits {\Omega}(8.65^n) different triangulations. This improves the bound {\Omega}(8.48^n) achieved by the double zig-zag chain configuration studied by Aichholzer et al. (ii) We present a new lower bound of {\Omega}(12.00^n) for the number of non-crossing spanning trees of the double chain composed of two convex chains. The previous bound, {\Omega}(10.42^n), stood unchanged for more than 10 years. (iii) Using a recent upper bound of 30^n for the number of triangulations, due to Sharir and Sheffer, we show that n points in the plane in general position admit at most O(68.62^n) non-crossing spanning cycles. (iv) We derive lower bounds for the number of maximum and minimum weighted geometric graphs (matchings, spanning trees, and tours). We show that the number of shortest non-crossing tours can be exponential in n. Likewise, we show that both the number of longest non-crossing tours and the number of longest non-crossing perfect matchings can be exponential in n. Moreover, we show that there are sets of n points in convex position with an exponential number of longest non-crossing spanning trees. For points in convex position we obtain tight bounds for the number of longest and shortest tours. We give a combinatorial characterization of the longest tours, which leads to an O(nlog n) time algorithm for computing them.


Introduction
Let P be a set of n points in the plane in general position, i. e., no three points lie on a common line. A geometric graph G = (P, E) is a graph drawn in the plane so that the vertex set consists of the points in P and the edges are drawn as straight line segments between the corresponding points in P . All graphs we consider in this paper are geometric graphs. We call a graph non-crossing if its edges intersect only at common endpoints.
Determining the maximum number of non-crossing geometric graphs on n points in the plane is a fundamental question in combinatorial geometry. We follow common conventions (see for instance [24]) and denote by pg(P ) the number of non-crossing geometric graphs that can be embedded over the planar point set P , and by pg(n) = max |P |=n pg(P ) the maximum number of non-crossing graphs an n-element point set can admit. Analogously, we introduce shorthand notation for the maximum number of triangulations, perfect matchings, spanning trees, and spanning cycles (i. e., Hamiltonian cycles); see Table 1. For example, tr(n) = O(f (n)) means that any nelement point set can have at most O(f (n)) triangulations, and tr(n) = Ω(g(n)) means that there exists some n-element point set that admits Ω(g(n)) triangulations.

Abbr.
Graph  In the past 30 years numerous researchers have tried to estimate these quantities. In a pivotal result, Ajtai et al. [2] showed that pg(n) = O(c n ) for an absolute, but very large constant c > 0. The constant c has been improved several times since then. The best bound today is c < 207.84, which follows from a combination of a result of Sharir and Sheffer [26] with a result of Hoffmann et al. [16]. Interestingly, this upper bound, as well as the currently best upper bounds for st(n), sc(n), and cf(n), are derived from an upper bound on the maximum number of triangulations, tr(n). This underlines the importance of the bound for tr(n) in this setting. For example, the best known upper bound for st(n) is the combination of tr(n) ≤ 30 n [26] with the ratio sc(n)/tr(n) = O * (4.879 n ) [16]; see also previous work [22,23,24,25]. To our knowledge, the only upper bound derived via a different approach is that for the number of perfect matchings by Sharir and Welzl [24], pm(n) = O(10.07 n ).
So far, we recalled various upper bounds on the maximum number of geometric graphs in certain classes. In this paper we mostly conduct our offensive from the other direction, on improving the corresponding lower bounds. Lower bounds for unweighted non-crossing graph classes were obtained in [1,8,15]. García, Noy, and Tejel [15] were the first to recognize the power of the double chain configuration in establishing good lower bounds for the number of matchings, triangulations, spanning cycles and trees. It was widely believed for some time that the double chain gives asymptotically the highest number of triangulations, namely Θ * (8 n ). This was until 2006, when Aichholzer et al. [1] showed that another configuration, the so-called double zig-zag chain, admits Θ * ( √ 72 n ) = Ω(8.48 n ) triangulations 1 . The double zig-zag chain consists of two flat copies of a zig-zag chain. A zig-zag chain is the simplest example of an almost convex polygon. Such polygons have been introduced and first studied by Hurtado and Noy [18]. In this paper we further exploit the power of almost convex polygons and establish a new lower bound tr(n) = Ω(8.65 n ). For matchings, spanning cycles, and plane graphs the double chain still holds the current record. Less studied are multiplicities of weighted geometric graphs. The weight of a geometric graph is the sum of its (Euclidean) edge lengths. This leads to the question: how many graphs of a certain type (e. g., matchings, spanning trees, or tours) with minimum or maximum weight can be realized on an n-element point set. The notation is analogous; see Table 2. Dumitrescu [9] showed that the longest and shortest matchings can have exponential multiplicity, 2 Ω(n) , for a point set in general position. Furthermore, the longest and shortest spanning trees can also have multiplicity of 2 Ω(n) . Both bounds count explicitly geometric graphs with crossings; however these minima are automatically non-crossing. The question for the maximum multiplicity for non-crossing geometric graphs remained open for most classes of geometric graphs. Since we lack any upper bounds that are better than those for the corresponding unweighted classes, the "Upper bound" column is missing from  Our results.
(I) A new lower bound, Ω(8.65 n ), for the maximum number of triangulations a set of n points can have. We first re-derive the bound given by Aichholzer et al. [1] with a simpler analysis, which allows us to extend it to more complex point sets. Our estimate might be the best possible for the type of construction we consider.
(II) A new lower bound, Ω(12.00 n ), for the maximum number of non-crossing spanning trees a set of n points can have. This is obtained by refining the analysis of the number of such trees on the "double chain" point configuration. The previous bound was Ω(10.42 n ). Our analysis of the construction improves also the lower bound for cycle-free non-crossing graphs due to Aichholzer et al. [1], from Ω(11.62 n ) to Ω(12.23 n ).
(III) A new upper bound, O(68.62 n ), for the number of non-crossing spanning cycles on n points in the plane. This improves the latest upper bound of O(70.22 n ) that follows from a combination of the results of Buchin et al. [6] and a recent upper bound tr(n) ≤ 30 n by Sharir and Sheffer [26].
(IV) New bounds on the maximum multiplicity of various weighted geometric graphs on n points (weighted by Euclidean length). We show that the maximum number of longest non-crossing perfect matchings, spanning trees, spanning cycles, as well as shortest tours are all exponential in n. We also derive tight bounds, as well as a combinatorial characterization of longest tours (with crossings allowed) over n points in convex position. This yields an O(n log n) algorithm to compute a longest tour for such sets.
The main results of this paper were presented at the 28th International Symposium on Theoretical Aspects of Computer Science (STACS) in March 2011, in Dortmund, Germany. An extended abstract (without all the proofs) appeared in the corresponding conference proceedings [13]. Since then we were able to further refine the analysis in two of our main theorems. In particular, we improved the bounds in Theorems 2 and 3.

Preliminaries
Asymptotics of multinomial coefficients. Denote by H(q) = −q log q − (1 − q) log(1 − q) the binary entropy function, where log stands for the logarithm in base 2. (By convention, 0 log 0 = 0.) For a constant 0 ≤ α ≤ 1, the following estimate can be easily derived from Stirling's formula for the factorial: We also need the following bound on the sum of binomial coefficients; see [5] for a proof and [10,11] for an application.
Define similarly the generalized entropy function of k parameters α 1 , . . . , α k , satisfying Clearly, H(q) = H 2 (q, 1 − q). Recall, the multinomial coefficient n n 1 , n 2 , . . . , n k = n! n 1 !n 2 ! . . . n k ! , where k i=1 n i = n, counts the number of distinct ways to permute a multiset of n elements, k of which are distinct, with n i , i = 1, . . . , k, being the multiplicities of each of the k distinct elements.
Assuming that n i = α i n, i = 1, . . . , k, for constants α 1 , . . . , α k , satisfying (3), again by using Stirling's formula for the factorial, one gets an expression analogous to (1): Notations and conventions. For a polygonal chain P , let |P | denote the number of vertices. If 1 < c 1 < c 2 are two constants, we frequently write Ω * (c n 2 ) = Ω(c n 1 ). A geometric graph G = (V, E) is called a (geometric) thrackle, if any two edges in E either cross or share a common endpoint; see e. g., [21].

Lower bound on the maximum number of triangulations
Hurtado and Noy [18] introduced the class P (n, k r ) of almost convex polygons. A simple polygon is in this class if it has n vertices, and it can be obtained from a convex r-gon by replacing each edge with a "flat" reflex chain having k interior vertices (thus there are r reflex chains altogether), such that any two vertices of the polygon can be connected by an internal diagonal unless they belong to the same reflex chain. For example, P (n, 0 r ) is the class of convex polygons with n = r vertices. Note that, for r ≥ 3 and k ≥ 0, every polygon in P (n, k r ) has n = r(k + 1) vertices, r of which are convex.
Following the notation from [18], we denote by t(n, k r ) the number of triangulations of a polygon P (n, k r ). According to [18,Theorem 3], In particular, . This estimate was used by Aichholzer et al. [1] to show that the double zig-zag chain has Ω(8.48 n ) triangulations.
Analogously we define the class P + (n, k r ) of almost convex (polygonal) chains. An x-monotone polygonal chain in this class has n = r(k + 1) + 1 vertices, and it can be obtained from an xmonotone convex chain with r + 1 vertices by replacing each edge with a "flat" reflex chain with k interior vertices, such that any two vertices of the chain can be connected by a segment lying above the chain unless they are incident to the same reflex chain. See Fig. 1 for a small example. To further simplify notation, we denote by P + (n, k r ) any polygonal chain in this class; note they are all equivalent in the sense that they have the same visibility graph. Note that the simple polygon bounded by an almost convex chain P + (n, k r ) and the segment between its two extremal vertices has Θ * (t(n, k r )) triangulations. In establishing our new lower bound for the maximum number of triangulations, we go through the following steps: We first describe the double zig-zag chain from [1] in our framework, and rederive the Ω * ( √ 72 n ) bound of [1] for the number of its triangulations. Our simpler analysis extends to some variants of the double zig-zag chain, and leads to a new lower bound on tr(n) = Ω(8.65 n ).
Two x-monotone polygonal chains L and U are said to be mutually visible if every pair of points, p ∈ L and q ∈ U , are visible from each other (that is, the segment pq crosses neither U nor L).
Let us call D(n, k r ) the generalized double chain of n points formed by the set of vertices in two mutually visible x-monotone chains, each with n/2 = r(k + 1) + 1 vertices, where the upper chain is a P + (n, k r ) and the lower chain is a horizontally reflected copy of P + (n, k r ), as in Fig. 1. Generalized double chains are a family of point configurations, containing, among others, the double chain and double zig-zag chain configurations. In particular, D(n, 1 r ) is the double zig-zag chain used by Aichholzer et al. [1]. Theorem 1. The point set D(n, 3 r ) with n = 8r + 2 points admits Ω(8.65 n ) triangulations. Consequently, tr(n) = Ω(8.65 n ).
Proof. The following estimate is used in all our triangulation bounds. Consider two mutually visible flat polygonal chains, L and U , with m vertices each (L is the lower chain and U is the upper chain). As in the proof of [15,Theorem 4.1], the region between the two chains consists of 2m − 2 triangles, such that exactly m − 1 triangles have an edge along L and the remaining m − 1 triangles have an edge adjacent to U . It follows that the number of distinct triangulations of this middle region is The old Ω(8.48 n ) lower bound in a new perspective. We estimate from below the number of triangulations of D(n, 1 r ) as follows. Recall that |L| = |U | = n/2 = 2r + 1. Include all edges of L and U in any of the triangulations we construct. Now construct different triangulations as follows. Independently select a subset of α 1 r short edges of conv(U ) and similarly, a subset of α 1 r short edges of conv(L). Here α 1 ∈ (0, 1) is a constant to be chosen later. According to (1), this can be done in r α 1 r = Θ(r −1/2 · 2 H(α 1 )r ) ways in each of the two chains. Include these edges in the triangulation. Observe that after adding these short edges the middle region between the (initial) chains L and U is sandwiched between two mutually visible shorter chains, say L ′ ⊂ L and U ′ ⊂ U , where Triangulate this middle regions in all of the possible ways, as outlined in the paragraph above (5). Let N denote the total number of triangulations of D(n, 1 r ) obtained in this way. By the above estimate, we have t(n, 1 r ) = Θ((2 √ 3) n ). Combining this with (5) and (6), By setting α 1 = 1/3, as in [1], this yields a = 6 √ 2 = 8.485 . . ., and N = Ω * (8.485 n ) = Ω(8.48 n ). Applying a similar analysis for a generalized double chain with reflex chains of length 3 implies Theorem 1. To simplify the presentation we describe the next step using almost convex polygonal chains with reflex chains of length 2. The next step: using D(n, 2 r ). Notice that in this case n = 6r + 2. In the upper chain U , each reflex chain of two points together with the two hull vertices next to it form a convex 4-chain, as viewed from below. In each such 4-chain, independently, we proceed with one of the following three choices: (0) we leave it unchanged; (1) we add one edge, so that the chain length is reduced by 1 (from 4 to 3); (2) we add two edges, so that the chain length is reduced by 2 (from 4 to 2). We refer to these changes and corresponding length reductions as reductions of type 0, 1 and 2, respectively. For i = 0, 1, 2, let a i count the number of distinct ways such reductions can be performed on a convex 4-chain of U . See Fig. 2(left). Clearly, we have a 0 = 1 and a 1 = a 2 = 2. For i = 0, 1, 2, make α i r reductions of type i in U , for some suitable (constant) values α i to be determined, with According to (4), choosing one of the three reduction types for each of the 4-chains in U can be done in Θ * 2 H 3 (α 0 ,α 1 ,α 2 )r distinct ways. Once a reduction type i has been chosen for a specific 4-chain, it can be implemented in a i distinct ways. It follows that the number of distinct resulting chains U ′ is So there are that many distinct chains U ′ which will occur. Proceed similarly for the lower chain L. Observe that once the α i are fixed, the two resulting sub-chains U ′ ⊂ U and L ′ ⊂ L have the same length Triangulate the middle part (between U ′ and L ′ ) in any of the possible ways, according to (5). Let N denote the total number of triangulations obtained in this way. Recall the estimate t(n, 2 r ) = Θ((2 5/3 ) n ), which yields t(3r, 2 r ) = Θ((2 5/3 ) 3r ) = Θ(2 5r ). By (5) and (7), we obtain The values 2 α 0 = α 1 = 0.4 and α 2 = 0.2 yield a = 8.617 . . ., and N = Ω * (8.617 n ) = Ω(8.61 n ).
Proof. Similarly to [9], instead of spanning trees, we count (spanning) forests formed by two trees. One of the trees is associated with the lower chain L and is called lower tree, while the other tree is associated with the upper chain U and is called upper tree. Since the two trees can be connected in at most O(n 2 ) ways, it suffices to bound from below the number of forests of two such trees.   3 shows an example. We count only special kinds of forests: no edge of the lower tree connects two vertices of the upper chain, and similarly, no edge of the upper tree connects two vertices of the lower chain. We call the connected components of the edges between U and L bridges. For the class of forests we consider, bridges are subtrees of the lower or the upper tree. A bridge is called an (i, j)-bridge if it has i vertices in L and j vertices in U . Every bridge is part of either the upper or the lower tree. In the first case we say that the bridge is oriented upwards and in the latter case that it is oriented downwards. Since edges cannot cross, the bridges have a natural left-to-right order. Fig. 3 shows four bridges, where the first bridge is an upward oriented (2, 2)-bridge. We consider only bridges (i, j), with 1 ≤ i, j ≤ z, for some fixed positive integer z. For z = 1, our analysis coincides with the one in [9], and we first re-derive the lower bound of Ω(10.42 n ) given there. Successive improvements are achieved by considering lager values of z.
Let m = n/2 be the number of points in each chain. The distribution of bridges is specified by a set of parameters α ij , to be determined later, where the number of (i, j)-bridges is α ij m. To simplify further expressions we introduce the following wildcard notation: A vertex is called a bridge vertex, if it is part of some bridge, and it is a tree vertex otherwise. We denote by α L m the number of bridge vertices along L, and by α U m the number of bridge vertices along U , we have To count the forests we proceed as follows. We first count the distributions of the vertices that belong to bridges on the lower (N L ) and upper chain (N U ). We then count the number of different ways in which the bridges can be realized (N bridges ) and the number of ways in which the bridges can be connected to the two trees (N links ). Finally, we estimate the number of the trees within the two chains (N trees ). All these numbers are parameterized by the variables α ij .
Consider the feasible locations of bridge vertices at the lower chain. We have m α L m ways to choose the bridge vertices that are in L. Every bridge vertex belongs to some (i, j)-bridge. The vertices of the bridges cannot interleave, thus we can describe the configuration of bridges by a sequence of (i, j) tuples that denotes the appearance of the α * * m bridges from left to right on L. There are α * * m α 11 m,α 12 m,...,αzzm such sequences. This give us a total of such "configurations" of bridge vertices along L.
We now determine how many options we have to place the bridge vertices on U . Since we have already specified the sequence of the (i, j)-bridges at the lower chain, all we can do is to select the bridge vertices in U . This gives possibilities for the configuration on U . We now study in how many ways the bridges can be added to the two trees. Since all bridges are subtrees, we can link one of the bridge vertices with the lower or upper tree. From this perspective the whole bridge acts like a super-node in one of the trees. The orientation of each bridge determines the tree it belongs to: upwards bridges to the upper tree, and downwards bridges to the lower tree. For every pair (i, j) we orient half of the (i, j)-bridges upwards and half of them downwards. To glue the bridges to the trees we have to specify a vertex that will be linked to one of the trees. Depending on the orientation of the (i, j)-bridge, we have i candidates for a downwards oriented bridge and j candidates for an upward oriented bridge. In total we have ways to link the bridges with the trees. Until now we have specified which vertices belong to which type of bridges, the orientation of the bridges, and the vertex where the bridge will be linked to its tree. It remains to count the number of ways to actually "draw" the bridges. Let us consider an (i, j)-bridge. All of its edges have to go from L to U and the bridge has to be a tree. The number of such trees equals the number of triangulations of a polygon with point set By deleting the edges along the horizontal lines y = 0 and y = 1, we define a bijection between these triangulations and the combinatorial types of (i, j)-bridges. The number of triangulations is now easy to express similarly to Equation If an edge differs from its predecessor at the top we write a 0, otherwise a 1. We obtain a bijection between the bridges and sequences with three 1s and two 0s.
Observe that the upper and the lower trees are trees on a convex point set. By considering the bridges as super-nodes, we treat the lower chain as a convex chain of n L vertices. Similarly, we think of the upper chain as a convex chain with n U vertices. We have (Notice that the bridges take away all of its vertices, except one, depending on the orientation.) Since the number of non-crossing spanning trees on an n-element convex point set equals Θ * ((27/4) n ) [14], the number of spanning trees within the two chains is given by To finish our analysis we have to find the optimal parameters α ij such that is maximized. Assume that we picked all α ij values, except one α uv , and let g uv (·) be the bound of (8) in terms of this only unspecified parameter. It can be observed that g uv ≡ g vu . Hence we can replace all occurrences of α uv in (8) with u > v by α vu . To solve the optimization problem we restrict ourselves to a few small values of z. Let us start with the case z = 1. Here our analysis coincides with the one in [9]. We have only one parameter α 11 , which maximizes (8) at 4/(4 + 3 √ 6) = 0.35 . . . and yields a lower bound of Ω(10.42 n ). A first improvement is achieved by considering z = 2. In this case (8) is bounded by Ω(11.61 n ), which is attained at α 11 = 0.18, α 12 = 0.055, α 22 = 0.032. For the next step z = 3, we obtain a lower bound of Ω(11.89 n ), attained at α 11 = 0.15, α 12 = 0.043, α 13 = 0.010, α 22 = 0.023, α 23 = 0.0085, and α 33 = 0.0040. The optimal solution for z = 4 are listed in Table 3. The induced bound equals Ω(12.00 n ). By further increasing z we get improved bounds. The best bound was computed for z = 8, namely Ω(12.0026 n ). The parameters realizing this bound can be found in Table 4. For larger z we were not able to complete the numeric computations and got stuck at a local maximum, whose induced bound was smaller than Ω(12.0026 n ). All optimization problems were solved with computer algebra software.
Cycle-free graphs. The same approach can be used to bound the number of cycle-free graphs (i. e., forests) on the double chain. To this end, we update Equation (8) by substituting the quantity N trees with N forests = Ω * 8.22469 n L +n U , which is obtained from the bound for the number of forests on a convex point set [14]. Since we picked the bridges such that they introduce no cycles, all graphs considered by our scheme are  Table 3: On the left: Parameters that attain the maximum Ω(12.00 n ) for st(D(n, 0 r )) for z = 4. On the right: Parameters that attain the maximum Ω(12.26 n ) for cf(D(n, 0 r )) for z = 4.  cycle-free graphs. When the super-node (that represents a bridge) is a singleton in the forest of the chain, the combined forest could be constructed by different gluings of that bridge. For this reason we have to ignore the possibilities that were covered by N links to avoid over-counting. Thus we end up with cf(D(n, 0 r )) = Ω * (N L · N U · N bridges · N forests ) .
For z = 2, our method yields the bound Ω(11.94 n ) attained at α 11 = 0.18, α 12 = 0.039, and α 22 = 0.021; and for z = 3 the bound Ω(12.16 n ) attained at α 11 = 0.12, α 12 = 0.031, α 13 = 0.0080, α 22 = 0.016, α 23 = 0.0061, and α 33 = 0.0031. The bound for z = 4, namely Ω(12.26 n ), is attained at the parameters listed in Table 3. The best bound was obtained for z = 9. In this case the parameters in Table 5 imply a bound of Ω(12.2618 n ). Numeric computations for larger numbers of z gave no improvement on the bound for cf(D(n, 0 r )). The previous best lower bound by Aichholzer et al. was Ω(11.62 n ).   Table 6: Bases of the asymptotic exponential bounds for the number of spanning trees st and the number of cycle-free graphs cf for the point set D(n, 0 r )) in terms of the parameter z.
Notice that our analysis relies on numeric computations. We were able to compute the optimal parameters up to z = 8 (for spanning trees) and up to z = 9 (for cycle-free graphs). Table 6 lists the computed bounds with respect to the chosen parameter z. No significant improvements can be expected by solving the induced maximizations problems for larger values of z.
For comparison, we compute an easy upper bound for both st(D(n, 0 r )) and cf(D(n, 0 r )). Every forest F on the double chain splits into three parts: the induced subgraph on L (F L ), the induced subgraph on U (F U ) and the remaining part given by the bridge edges (F B ). The graphs F L , F U , and F B are non-crossing forests. Since the number of forests on n points in convex position is O(8.225 n ), there are O(8.225 n ) different graphs F L ∪F U (we rounded up to avoid the O * notation). It remains to bound the number of graphs F B . Every graph counted in F B can be turned into a triangulation by deleting the "non-bridge vertices" and adding the appropriate edges on L and U . Let k be the number of bridge vertices on each chain. We have m k 2 ways to select the bridge vertices. By Equation (5) we have Θ * (4 k ) triangulations of the bridge vertices. In total we can bound the number of graphs F B from above by m k=0 m k 2 4 k . To bound the exponential growth of this sum we find the dominating summand. Notice that m Therefore the number of cycle-free non-crossing graphs on D(n, 0 r ) is bounded from above by O(n·3 n ·8.225 n ) = O(24.68 n ), which is also an upper bound for the number of non-crossing spanning trees on D(n, 0 r ).

Upper bound for the number of non-crossing spanning cycles
Newborn and Moser [20] asked what is the maximum number of non-crossing spanning cycles for n points in the plane, and they proved that Ω((10 1/3 ) n ) ≤ sc(n) ≤ O(6 n ⌊ n 2 ⌋!). The first exponential upper bound sc(n) ≤ 10 13n , obtained by Ajtai et al. [2], has been followed by a series of improved bounds, e. g., see [6,8,24]; a more comprehensive history can be found in [7]. The current best lower bound sc(n) ≥ 4.462 n is due to García et al. [15].  [6] cannot be improved much further, since they also present triangulations with Ω(2.0845 n ) spanning cycles. However, the approach of multiplying tr(n) with the maximum number of spanning cycles in a triangulation seems rather weak, since it potentially counts some spanning cycles many times.
Let C be a spanning cycle. We say that C has a support of x, and write supp(G) = x if C is contained in x triangulations of the point set.
Observe that a spanning cycle C will be counted supp(C) times in the preceding bound. To overcome this inefficiency, we use the concept of pseudo-simultaneously flippable edges (ps-flippable edges, for short), introduced in [16]. A set F of edges in a triangulation is ps-flippable if after deleting all edges in F , the bounded faces are convex and jointly tile the convex hull of the points. One can obtain a lower bound for the support of a spanning cycle C in terms of the number of ps-flippable edges that are not in C. The following two properties of ps-flippable edges derived in [16] are relevant to us: (i) Every triangulation on n points contains at least n 2 − 2 ps-flippable edges. (ii) Let C be a spanning cycle. Consider a triangulation T that contains C, and has a set F of ps-flippable edges. If j or more edges of F are not contained in C, then supp(C) ≥ 2 j .
We now use ps-flippable edges to improve the upper bound for the number of spanning cycles. Proof. Let P be a set of n points in the plane. Assume first that n is even. The exact value of sc(P ) is where the first sum is taken over all triangulations of P , and the second sum is taken over all spanning cycles contained in T . Consider a triangulation T over the point set P . By property (i), there is a set F of n/2 − 2 ps-flippable edges in T . We wish to bound the number of spanning cycles that are contained in T and use exactly k edges from F . The support of any such cycle is at least 2 |F |−k by property (ii). There are |F | k < n/2 k ways to choose k edges from F . Since n is even, every spanning cycle in T is the union of two disjoint perfect matchings in T . Instead of spanning cycles containing exactly k edges of F , we count the number of pairs of disjoint perfect matchings, M 1 and M 2 , that jointly contain exactly k edges of F . Assume, without loss of generality, that M 2 contains at least as many edges from F as M 1 . That is, M 1 contains at most k/2 edges from F , and M 2 at least k/2.
As observed by Buchin et al. [6], a plane graph with v vertices and e edges contains at most O((2e/v) v/4 ) perfect matchings. By Euler's formula, a triangulation on n points has at most 3n − 6 edges. Moreover, we know that both, M 1 and M 2 , have to avoid the |F | − k edges from F that were not selected, thus it is safe to remove |F | − k edges from the triangulation. Since After choosing M 1 , we know of at least k/2 edges of F which participate in M 2 (the edges that were chosen from F and do not participate in M 1 ). We can remove the endpoints of these edges (together with all incident edges). The resulting graph has at most n − k vertices. We can also remove all remaining edges of F and M 1 , since they cannot be in M 2 . It can be easily checked that overall we removed n − 2 − k/2 edges (recall that |M 1 | = n/2, and that it can hold at most k/2 edges of F ). Thus, given a matching M 1 , the number of candidates for M 2 is . We conclude that the number of spanning cycles containing exactly k edges of F is O n/2 k · (5 + 2k/n) (n/4) · 4n + k n − k When k is small, i. e., k ≤ an, for some a ∈ (0, 1/2), it is better to use the bound 30 n/4 instead (which bounds the total number of spanning cycles in T ). Substituting these bounds into (9) yields The maximum is attained for a ≈ 0.466908, which implies The upper bound sc(n) = O(68.62 n ) is immediate by substituting the upper bound tr(P ) < 30 n from [26] into the above expression. Finally, the case where n is odd can be handled as follows. Create a new point p outside of conv(P ), and put P ′ = P ∪ {p}. It can be shown that sc(P ) ≤ sc(P ′ ) by mapping every spanning cycle of P to a distinct spanning cycle of P ′ . Given a non-crossing cycle C of P , p can be connected to the two endpoints of some edge of C without crossings [17, Lemma 2.1]. We can then apply the above analysis for P ′ , obtaining the same asymptotic bound.

Weighted geometric graphs
In this section we derive bounds on the maximum multiplicity of various weighted geometric graphs (weighted by Euclidean length).

Longest perfect matchings
Let n be even, and consider perfect matchings on a set of n points in the plane. It is easy to construct n-element point sets (no three of which are collinear) with an exponential number of longest perfect matchings: [9] gives constructions with Ω(2 n/4 ) such matchings. Moreover, the same lower bound can be achieved with yet another restriction, convex position, imposed on the point set; see [9]. Here, we present constructions with an exponential number of maximum (longest) non-crossing perfect matchings. If we combine the maximum matchings of all copies of S 4 , then we obtain 2 n/4 non-crossing perfect matchings of P . All these matchings have the same length, which is at least n 4 · 4n = n 2 . We show that this is the maximum possible length of a non-crossing perfect matching of P . Let L be the set of the translated copies of points a and b; and let R be the set of the translated copies of points c and d. Then the diameter of L (resp., R) is at most 1, by construction. The length of any edge between L and R is at most 2n + 1, while all other edges have length at most 1. If a matching has k edges between L and R, then its length is at most k(2n + 1) + ( n 2 − k) = 2kn + n 2 , which is less than n 2 for k < n/2. Hence a maximum matching on P is a bipartite graph between L and R. To avoid crossings, every edge in such a bipartite graph must connect points in the same copy of S 4 .
If n is a multiple of 4 plus 2, the above construction is modified by adding a pair of points at distance 2n, placed horizontally above all copies of S 4 . This pair of points must be matched in any maximum non-crossing perfect matching of P . In both cases, P admits at least 2 ⌊n/4⌋ longest non-crossing perfect matchings, as required.

Non-crossing spanning trees
For minimum spanning trees, [9] gives constructions for n-element point sets that admit Ω(2 n/4 ) such trees, and moreover, this lower bound can be attained with points in convex position. All these constructions give non-crossing spanning trees. For maximum spanning trees, [9] gives the following construction: start with two points, a and b, and suitably place the remaining n−2 points on the perpendicular bisector of segment ab. While this configuration admits Ω(2 n ) maximum noncrossing spanning trees (which have maximum weight over all spanning trees), it uses (a large number of) collinear points. Next we show that an exponential bound, Ω(2 n ), can be achieved without allowing collinear points, and moreover, with points in convex position.
Before proving the theorem we introduce some notation, which we will also use in Section 6. For a point set in convex position the span of an edge xy is the smallest number of convex hull edges one has to traverse when going from x to y along the convex hull (in clockwise or counterclockwise direction). The weight of a tree T , denoted as L(T ), is the sum of its edge lengths.
Proof of Theorem 5. Let P be the vertex set of a regular n-gon inscribed in a circle of unit radius. Let p ∈ P be an arbitrary element of P , and let S p be the star centered at p (consisting of segments connecting p to the other n − 1 points). We first prove a counterpart for spanning trees (Lemma 1) of Alon et al. [3,Lemma 2.2], established for non-crossing matchings. Our argument is similar to that used in [3].

Lemma 1. A longest non-crossing spanning tree on P has weight L(S p ).
Proof. Write n = 2k if n is even, or n = 2k + 1 if n is odd. Consider an arbitrary non-crossing spanning tree T of P . Notice that the span of any edge is an integer between 1 and k. For i = 1, . . . , k, let N i denote the number of edges of T whose span is at least i. We need the following claim.

Proof of Claim:
The claim trivially holds for N i ≤ 1, so we can assume that N i ≥ 2. One can easily check (since T is non-crossing) that there exist two edges p 1 p 2 and p 3 p 4 in T (where p 2 could coincide with p 3 ), each of span at least i, with the following properties: (a) p 1 , p 2 , p 3 , p 4 appear in this (clockwise) order on the circle, and (b) no other edge of T with span at least i has an endpoint among the points between p 1 and p 2 or between p 3 and p 4 . There are at least i − 1 points on each of the two open circular arcs defined by p 1 p 2 and p 3 p 4 . Hence all edges of T with span at least i are induced by at most n − 2(i − 1) points. Since this set of edges forms a forest, it has no more than n − 2(i − 1) − 1 = n − 2i + 1 elements, as required.
To finalize the proof of the lemma, we show that L(T ) ≤ L(S p ). For i = 1, . . . , k, let ℓ i denote the (Euclidean) length of an edge with span i. Note that ℓ 1 < ℓ 2 < . . . < ℓ k , and define ℓ 0 = 0. Put also N k+1 = 0, and observe that the number of edges of span i is equal to N i − N i+1 . Consider first the case n = 2k + 1. Straightforward algebraic manipulation gives Similarly, for n = 2k we get This concludes the proof of the lemma.
To finalize the proof of Theorem 5, it remains to show that P admits Ω(2 n ) non-crossing spanning trees of weight L(S p ). Denote the points in P by p 1 , p 2 , . . . , p n in clockwise order. We construct a family of non-crossing spanning trees on P . Start each tree with the same edge T := p 1 p 2 . Repeatedly augment T with one edge at a time, such that the clockwise arc spanned by the latest edge increases by one, either from its "left" (encode this choice by 0), or from its "right" endpoint (encode this choice by 1). Notice that regardless of the choice, the latest edge has always the same length. As a result, the clockwise arc spanning the new tree T now includes one more point: either its right endpoint moves clockwise by one position, or its left endpoint moves counterclockwise by one position. After n − 2 steps, T is a non-crossing spanning tree of P . If n = 2k + 1, the sequence of edge lengths (including the first edge, p 1 p 2 ) is ℓ 1 , . . . , ℓ k−1 , ℓ k , ℓ k−1 , . . . , ℓ 1 .
In both cases, the weight of each tree is L(S p ). All 0-1 sequences of length n − 2 yield different trees, so there are at least 2 n−2 longest non-crossing spanning trees, as required. This completes the proof of Theorem 5.

Longest non-crossing tours
We show here that the maximum number of longest non-crossing spanning cycles is also exponential in n. In the next section we also show that the maximum number of shortest non-crossing spanning cycles on n points is exponential in n (Theorem 7). Proof. Since we are counting non-crossing tours, we have sc max (n) = O(68.62 n ) by Theorem 3. It remains to show the lower bound. For every k ∈ N, we construct a set Q of 4k + 1 points that admits 2 k = Ω(2 n/4 ) longest non-crossing tours. We start by constructing an auxiliary set P of 2k points. The auxiliary point set P may contain collinear triples, however our final set Q does not. Recall that two segments cross if and only if their relative interiors intersect. We construct P = {c i , x i : i = 1, 2, . . . , k} with the following properties: (i) for every x i , the farthest point in P is c i ; (ii) the perfect matching M = {c i x i : i = 1, 2, . . . , k} is non-crossing; and (iii) the convex hull of P is conv(P ) = (x 1 , c 1 , c 2 , . . . , c k ).
Note that property (i) implies that M is the maximum matching of P .
For k ∈ N, let α = π 3k . We construct P = {c i , x i : i = 1, 2, . . . , k} iteratively. During the iterative process, we maintain the properties that Initially, let c 1 = (0, 0), x 1 = (2, 0), and x 2 = (2 − 1 k , 0). Let ℓ 1 be a ray emitted by x 1 and incident to c 1 . Refer to Fig. 6. If c i , x i and x i+1 are already defined, we construct points c i+1 and x i+2 (in the last iteration, only c i+1 ) as follows. Let ℓ i+1 be a ray emitted by x i+1 such that ∠( ℓ i+1 , ℓ i ) = α. Compute the intersections of ray ℓ i+1 with the circle centered at x i of radius |x i c i | and the circle centered at x i+1 of radius |x i+1 c i |. Let c i+1 ∈ ℓ i+1 be the midpoint of the segment between these two intersection points. This choice guarantees that |x i+1 c i+1 | > |x i+1 c j | and |x j c i+1 | < |x j c j | for all j ≤ i. Now let x i+2 ∈ c i+1 x i+1 be a point at distance at most 1 k from x i+1 such that we have |x i+2 c i+1 | > |x i+2 c j | for all j ≤ i. This completes the description of P .
Note that |x i x i+1 | ≤ 1 k for i = 1, . . . , k − 1, and so the points x 1 , . . . , x k lie in a disk of diameter 1. Hence, for every point x i , the farthest point in P is in {c j : j = 1, . . . , k}. By the above construction, the farthest point from x i in {c j : j = 1, . . . , k} is c i . This proves that P has property (i). It is easy to verify that P has properties (ii) and (iii), as well.
We now construct the point set Q based on P . Let δ > 0 be a sufficiently small constant. For every segment c i x i we construct a skinny deltoid ∆ i = (a i , b i , c i , d i ), see Fig. 6, such that a i ∈ c i x i is at distance δ from x i , we have |b i c i | = |c i d i | = δ, and |a Every non-crossing tour of Q visits the convex hull vertices in the cyclic order determined by conv(Q). We obtain a non-crossing tour by replacing some edges of conv(Q) with non-crossing paths visiting the points lying in the interior of conv(Q). If we replace either edge b i c i or c i d i with the path (b i , a i , c i ) or (c i , a i , d i ), respectively, for every i = 1, 2, . . . , k, then we obtain a tour. Let H be the set of 2 k tours obtained in this way. These tours are non-crossing, since for every i, we exchange an edge of ∆ i with a path lying in ∆ i , and the deltoids ∆ i are interior disjoint. The tours in H have the same length, It remains to show that this length is maximal. Note that a non-crossing tour cannot have an edge between two non-consecutive vertices of conv(Q). Hence, every edge that intersects the interior of conv(Q) must be incident to some point a i lying in the interior of conv(Q). Each a i is incident to two edges of a tour: The total length of these two edges is at most 2|a i c i |, which is attained if a i is connected to b i , c i , or d i . In any other case, it is less than 2|a i c i | − kδ if δ > 0 is sufficiently small. The total length the edges on the boundary of the convex hull is less than |conv(Q)|. So any non-crossing tour in which some point a i is not connected to b i , c i or to c i , d i must have length less than L. This implies sc max (n) = Ω(2 n/4 ).
To obtain the asserted bound, we use a skinny hexagon (instead of deltoid ∆ i ) with five equidistant vertices on a circle centered at a i . We now have four possible ways to insert each a i into the tour, which implies sc max (n) = Ω(4 n/6 ) = Ω(2 n/3 ).
Typically for the longest matching, spanning tree or spanning cycle, one expects to see many crossings. Somewhat surprisingly, we show that this is not always the case. Corollary 1. For every even n ≥ 2, there exists an n-element point set (in general position) whose longest perfect matching is non-crossing.
Proof. For every k ≥ 1, consider the set {a i , c i : i = 1, 2, . . . , k} of 2k points, and its perfect matching {a i c i : i = 1, 2, . . . , k} in the proof of Theorem 6. This is the longest perfect matching (over all perfect matchings of the point set, crossing or non-crossing), and moreover, it is noncrossing.

Tours
In this section we derive estimates on the maximum multiplicity of the shortest (minimum) and, respectively, the longest (maximum) Hamiltonian tour on n points (crossings allowed). While the shortest tour has the non-crossing attribute for free, the longest tour typically has crossings.

Shortest tours
Theorem 7. Let sc min (n) denote the maximum number of shortest tours that an n-element point set can have.
(i) For points in convex position, there is exactly one shortest spanning cycle, i. e., sc min (n) = 1.
Proof. (i) It is well known (and easy to prove) that a shortest tour of a convex point set does not admit any crossings, thus the vertices have to be visited in clockwise or counterclockwise order.
(ii) Consider now a set S of n points in general position. Since any minimum tour of S is a non-crossing spanning cycle of S, by Theorem 3 we have sc min (n) ≤ sc(n) = O(68.62 n ). A lower bound of 2 ⌊n/3⌋ is given by the following construction. Assume first that n is a multiple of 3. Consider an isosceles triangle ∆abc with sides ε, ε and ε/4, see n/3 rotated copies of ∆ along a circle of unit radius, as in Fig. 7 (right). If ε is small enough, the shortest tour of S must visit the three vertices in each copy of ∆ in their order along the circle. We can assume w.l.o.g. that the groups (copies) are visited in clockwise order. Then the first point visited in each group is (a rotated copy of) a. Since each group of three points can be minimally traversed in two ways, a, b, c, or a, c, b, the number of shortest tours is 2 n/3 . The construction can be easily modified for any n, by removing one or two points from one of the groups.

Longest tours for points in convex position
In the following we give tight bounds for the number of maximum tours on n points in convex position (allowing crossings) and outline how to compute such tours efficiently. The result for odd n seems to have been first discovered by Ito et al. [19]. Nevertheless we present our own simpler proof here for completeness. Theorem 8. Let tc max (n) denote the maximum number of longest tours that an n-element point set in convex position can have. For n odd we have tc max (n) = 1 and the (unique) longest tour is a thrackle. For n even we have tc max (n) = n/2.
Proof. Let P be a set of n points in convex position. Assume that n = 2k if n is even, and n = 2k−1 if n is odd. We pick an orientation for every possible tour arbitrarily. According to this orientation we denote an edge xy of a tour as x → y if x is the predecessor of y in the tour. We call two edges x → y and u → v parallel if they are disjoint (including their endpoints) and the segments xu and yv are disjoint. For instance, the edges a 3 → a 2 and b 2 → b 3 in Fig. 8(b) are parallel. Two disjoint edges that are not parallel are called anti-parallel. We say two vertices of P are consecutive if they define a convex hull edge. To prove the theorem we first prove three simple observations.

Observation (a): The longest tour does not contain a pair of anti-parallel edges.
Suppose the longest tour does contain anti-parallel edges x → y and u → v. We delete both edges and construct a new tour by adding x → u and y → v and re-orienting the part of the old tour between u and y. The new tour is longer since in a convex quadrilateral the sum of the diagonals exceeds the sum of two opposing side lengths.

Observation (b):
In a longest tour with parallel edges x → y and u → v, the vertices x, u and the vertices y, v are consecutive. In particular, a longest tour contains no triplet of pairwise parallel edges.
Assume that there exists a vertex w "in between" x and u with predecessor w ′ . Then the edge w ′ → w would determine a pair of anti-parallel edges with either x → y or u → v, in contradiction to Observation (a). By a similar argument one can show that y and v have to be consecutive.

Observation (c):
The span of every edge in a longest tour is at least k − 1. Suppose, to the contrary, that the longest tour contains an edge x → y with span at most k − 2. By the pigeonhole principle there is at least one edge u → v that does not cross x → y. Due to Observation (b), uv has to be an edge of span at least n−k. Let {L, R} be the partition of P \{x, y} induced by x → y (that is, points left and right relative to x → y). Assume further that |R| > |L|, that is, {u, v} ⊆ R. By Observation (b), a longest tour cannot contain three pairwise parallel edges. Hence, in the longest tour the points in R \ {u} have to have a successor from L ∪ {x}. But, again due to the pigeonhole principle, this is impossible, since |R| − 1 ≥ k − 1, but |L| + 1 ≤ k − 2.
We now proceed with the proof of Theorem 8. Assume first that n = 2k − 1 is odd. Due to observation (c), the longest tour does not have any edge of span at most k − 2, hence the span of every edge is k − 1, which is the largest possible span for n odd. This determines the longest geometric tour. For every vertex we have only two possible edges with span k − 1, hence the longest tour is unique. Now assume that n = 2k is even. Notice that we have to use at least one edge of span k, since otherwise (using edges with span k − 1 only) there would be two anti-parallel edges. Assume that a longest tour contains the edge a 1 → b 1 of span k. Let a 2 denote the predecessor of a 1 , and b 2 denote the successor of b 1 in the longest tour. The edges a 2 → a 1 and b 1 → b 2 need to have span k − 1. There are two possibilities for the relative position of a 2 a 1 and b 2 b 1 . In case they cross, all outgoing edges from the vertices on the arc between a 1 and b 1 (in cyclic order of P , opposite from a 2 and b 2 ) have to cross b 1 → b 2 . This yields a contradiction by the pigeonhole principle (see Fig. 8(a)). Thus we can assume that a 2 and b 2 are located on opposite sides of a 1 → b 1 , as in Fig. 8(b). We extend the partial tour step by step, choosing new edges a i+1 → a i , b i → b i+1 with span k − 1 appropriately. If we would use an edge with span k we would "close" the spanning cycle before all vertices have been visited. We stop after we found n − 1 edges and add the final edge b n/2 → a n/2 with span k. To see that this scheme works correctly, notice that the edges added in every step form a pair of parallel edges with span k − 1, which "rotates" around P . The construction can be characterized by the location of the edges with span k. Since a 1 and b n/2 are consecutive, as well as a n/2 and b 1 , we have at most n/2 choices to select these two edges.
If P is the vertex set of a regular n-gon, then P has n/2 longest tours by rotational symmetry. The 5 longest tours for n = 10 are depicted in Fig. 9. As an immediate algorithmic corollary of Theorem 8, the longest tours on a set of n points in convex position can be computed in O(n log n) time. If n is odd and the convex polygon P = p 0 , p 1 , . . . , p n−1 is given, the tour can be computed in O(n) time: start with i = 0, and iteratively set i ← i+ n−1 2 , where the indices are taken modulo n. If n is even, we have n/2 candidates for the longest tour. Given a candidate, we can construct the next candidate by exchanging only 4 edges of the tour. Thus, after computing the weight of the first candidate, all other candidates can be evaluated in O(1) per tour. As in the case of odd n, we can compute the longest tours in O(n) time if the cyclic order of P is given, and in O(n log n) time otherwise.

Conclusion
Our investigations leave some questions open: 1. We used a special point configuration, D(n, 3 r ), to prove a new lower bound on tr(n), the maximum number of triangulations. The question arises if this (or a similar) configuration could also give better lower bounds for other quantities we studied, such as cf(n), st(n), or sc(n). However, no analysis for other geometric graph classes has been done so far, not even for the simpler-to-analyze double zig-zag chain D(n, 1 r ),.
2. While for the maximum number of triangulations, the upper and lower bounds are reasonably close, this is not the case for non-crossing spanning cycles. Recall that the current best lower bound, offered by the double chain configuration is Ω(4.462 n ), and our new upper bound is only O(68.62 n ). Most likely, the lower bound is closer to the truth, however the arguments are missing to justify this belief. Clearly a large gap remains to be covered.
3. Is it possible to obtain upper bounds for the maximum multiplicity of weighted configurations, better than those for the corresponding unweighted structures? For example, is sc max (n) significantly smaller than sc(n), or pm min (n) significantly smaller than pm(n)?
4. For points in convex position, we devised an O(n log n)-time algorithm for computing the longest tour. However, for points in general position it is not known whether this problem is NPhard. Barvinok et al. [4] showed that the problem is solvable in O(n) time under the L 1 metric [4]. On the negative side, they also show that the problem is NP-complete under the L 2 metric for points in 3-space. Nothing is known about the complexity of computing the longest non-crossing spanning tour, spanning path, perfect matching or spanning tree. However, constant ratio approximations are available for the last three problems; see [3,12].