Computing noncrossing geometric graphs on finite point sets that are in some sense ‘compatible’ is an active area of research in computational geometry. The study of compatible graphs is motivated by applications to shape animation and simultaneous graph drawing [5, 14].
Let and be finite point sets, each containing points in the plane labelled from 1 to . Let and be two noncrossing geometric graphs spanning and , respectively. and are called compatible, if for every face in , there exists a corresponding face in with the same clockwise ordering of the vertices on its boundary as in . It is necessary, but not sufficient, that and represent the same connected -vertex graph . Given a pair of labelled point sets, it is natural to ask whether they have compatible graphs, and if so, to produce one such pair, . The question can also be restricted to specific graph classes such as paths, trees, triangulations, and so on; previous work (described below) has concentrated on compatible triangulations. Compatible triangulations of polygons are also of interest, which motivated us to examine compatible paths inside simple polygons.
In this paper we examine the problem of computing compatible paths on labelled point sets. Equivalently, we seek a permutation of the labels that corresponds to a noncrossing (plane) path in and in . Figures 1(a)–(b) show a positive instance of this problem, and Figures 1(c)–(d) depict an affirmative answer.
Hui and Schaefer  proved the problem to be NP-complete. In this paper we develop some fast polynomial-time algorithms to solve this problem under some restricted scenarios.
Our results. We describe a quadratic-time dynamic programming algorithm that either finds compatible paths for two simple polygons, where the paths are restricted to remain inside the closed polygons, or reports that no such paths exist. For the more limited case of two point sets in convex position, we give a linear-time algorithm to find compatible paths (if they exist). A linear-time algorithm for convex point sets was also briefly outlined by Hui and Schaefer . We were not aware of this result during the preparation of the conference version  of this paper. For two general point sets, we give an -time algorithm to find compatible monotone paths (if they exist).
Saalfeld  first introduced compatible triangulations of labelled point sets, which he called “joint” triangulations. In Saalfeld’s problem, each point set is enclosed inside an axis-aligned rectangle, and the goal is to compute compatible triangulations (possibly using Steiner points). Although not every pair of labelled point sets admit compatible triangulations, Saalfeld showed that one can always construct compatible triangulations using (possibly an exponential number of) Steiner points.
Aronov et al.  proved that Steiner points are always sufficient and sometimes necessary to compatibly triangulate two polygons when the vertices of the polygons are labelled in clockwise order. Babikov et al.  extended the bound to polygonal regions (i.e., polygons with holes), where the holes are also labelled ‘compatibly’ (with the same clockwise ordering of labels). The holes may be single points, so this includes Saalfeld’s “joint triangulation” problem. Pach et al.  gave an lower bound on the number of Steiner points in such scenarios.
Lubiw and Mondal  proved that finding the minimum number of Steiner points is NP-hard for the case of polygonal regions. The complexity status is open for the case of polygons, and also for point sets. Testing for compatible triangulations without Steiner points may be an easier problem. Aronov et al.  gave a polynomial-time dynamic programming algorithm to test whether two polygons admit compatible triangulations without Steiner points. But testing whether there are compatible triangulations without Steiner points is open for polygonal regions, as well as for point sets.
The compatible triangulation problem seems challenging even for unlabelled point sets (i.e., when a bijection between and can be chosen arbitrarily). Aichholzer et al.  conjectured that every pair of unlabelled point sets (with the same number of points on the convex hull) admit compatible triangulations without Steiner points. So far, the conjecture has been verified only for point sets with at most three interior points.
Let be a complete geometric graph on a point set . Let be the intersection graph of the edges of , i.e., each edge of corresponds to a vertex in , and two vertices are adjacent in if and only if the corresponding edges in properly cross (i.e., the open line segments intersect). Every plane triangulation on has edges, where is the number of points on the convex hull of , and thus corresponds to a maximum independent set in . In fact, belongs to the class of well-covered graphs. (A graph is well covered if every maximal independent set of the graph has the same cardinality). A rich body of research attempts to characterize well-covered graphs [7, 15]. Deciding whether two point sets, and , admit compatible triangulations is equivalent to testing whether and have a common independent set of size .
2 Paths in Polygons and Convex Point Sets
In this section we describe algorithms to find compatible paths on simple polygons and convex point sets. By compatible paths on polygons, we mean: given two polygons, find two compatible paths on the vertices of the polygons that are constrained to be non-exterior to the polygons. (See Figures 3(a)–(b).) Note that convex point sets correspond to a special case, where the polygons are the convex hulls.
2.1 Negative Instances
Not every two convex point sets admit compatible paths, e.g., 5-point sets where the points are labelled (1,2,3,4,5) and (1,3,5,2,4), resp., in counterclockwise order.
In this section we show that for every , there exist two convex labelled point sets, each containing points, that do not admit compatible trees. Note that this also rules out the existence of compatible paths.
Let and be point sets in convex position, each containing points labelled by . If they admit a compatible tree that is not a star, then there exists a partition such that such that and are interval sets for both and .
Suppose that and admit a compatible tree , which is not a star. Then has an edge between two vertices of degree two or higher. The deletion of decomposes into two subtrees, say and , each with at least two vertices. The vertex sets of and , resp., correspond to an interval set in and .
For every integer , there exist two sets, and , each of labelled points in convex position, such that and do not admit any compatible tree.
For , let and be point sets labelled and , respectively, in counterclockwise order (Figure 2). If a compatible star exists, then the four leaves would appear in the same counterclockwise order in both and (by the definition of compatibility). However, the two convex sets have distinct counterclockwise 4-tuples. If there is a compatible tree that is not a star, then by Claim 1, a 2-element set is an interval set for both and . However, all five consecutive pairs along the convex hull of are nonconsecutive in the convex hull of . Therefore, and do not admit any compatible tree.
For , we can construct and analogously. Let be labelled in counterclockwise order. For , let be the sequence of labels in congruent to modulo 5 in increasing order. Now let be labelled by the concatenation of the sequences in counterclockwise order.
If a compatible star exists, then the leaves would appear in the same counterclockwise order in both and (by the definition of compatibility). However, the both neighbors of a vertex in are different from the two neighbors in , consequently and do not share any counterclockwise -tuple. If there is a compatible tree that is not a star, then by Claim 1, there is a partition into interval sets, where . However, and cannot partition any subset of 5 consecutive elements in sequence , similarly to the case when . Consequently, and do not admit any compatible tree.
We first give a quadratic-time dynamic programming algorithm for simple polygons, and then a linear time algorithm for convex point sets.
We begin with two properties of any noncrossing path that visits all vertices of a simple polygon. Let be a simple polygon with vertices in some order (so the vertices have labels . Let be a label sequence corresponding to a noncrossing path that lies inside and visits all vertices of . Define an interval on to be a sequence of labels that appear consecutively around the boundary of (in clockwise or counterclockwise order). For example, in Figure 3(a), one interval is . Define an interval set on to be the unordered set of elements of an interval.
The set of labels of every prefix of is an interval set on . Furthermore, if the prefix does not contain all the labels, then the last label of the prefix corresponds to an endpoint of the interval.
We proceed by induction on , the length of the prefix, with the base case being obvious. So assume the first labels form an interval set corresponding to interval . Let be the -th element of . Suppose vertex is not contiguous with the interval on . Let and be the two neighbors of around the polygon . Then and do not belong to , and so the path must visit both of them after . But then the subpath between and crosses the edge of the path that arrives at , contradicting the assumption that the path is noncrossing. Thus vertex must appear just before or after , forming a longer interval with as an endpoint of the interval.
If is an interval on and does not start or end in , then the labels of appear in the same order in and in (either clockwise or counterclockwise). Note that the labels need not appear consecutively in .
Consider three labels that appear in this order in . Assume, for a contradiction, that these labels appear in a different order in and suppose, without loss of generality, that they appear in the order in . Let be the last label of . Because does not lie in , the order of vertices around is . See, e.g., Figure 4 where . Then the subpath of from to crosses the subpath from to , a contradiction.
2.2.1 An -time dynamic programming algorithm
Let , be two -vertex simple polygons with labelled vertices. Let (resp., ) be the vertex of (resp., ) with the label .
Two vertices of a polygon are visible if the straight line segment connecting the vertices lies entirely inside the polygon. We precompute the visibility graph of each polygon in time  such that later we can answer any visibility query in constant time.
Notation for our dynamic programming algorithm will be eased if we relabel so that polygon has labels in clockwise order. For each label and each length let denote the interval on of vertices that starts at and proceeds clockwise. Define similarly, but proceed counterclockwise from . Define and similarly. Note that goes from to (index addition modulo ).
We say that a path traverses interval (where or ), if the path is noncrossing, lies inside , visits exactly the vertices of and ends at . We make a similar definition for a path to traverse an interval .
Our algorithm will solve subproblems where is a label from to , is a length from to , and and take on the values or . This subproblem records whether there is a path that traverses and a path with the same sequence of labels that traverses . If this is the case, we say that the two intervals are compatible. Observe that and have compatible paths if and only if is true for some .
We initialize by setting to TRUE for all , and then solve subproblems in order of increasing . In order for intervals and to be compatible, the intervals of length formed by deleting the last label, , must also be compatible, with an appropriate choice of direction (cw or ccw) on those intervals. There are two choices in and two in . We try all four combinations. For a particular combination to ‘work’ (i.e., yield compatible paths for the original length intervals), we need the last labels of the length intervals to match, and we need appropriate visibility edges in the polygons for the last edge of the paths.
We give complete details for . See Figure 5. (The other four possibilities are similar.) Deleting label from gives and . Let be the vertex following in clockwise order around and let be the other endpoint of (in practice, for efficiency, we would store with the subproblem). Deleting label from gives and . The two possibilities for and are shown by blue dash-dotted and red dotted lines in Figures 5(a) and (b), respectively. We set TRUE if any of the following four sets of conditions hold:
Conditions for and : and .
Conditions for and : and sees in and . Note that the last edge of the path in must be which is why we impose the visibility condition.
Conditions for and : and sees in and .
Conditions for and : and sees in and sees in and .
Since there are a quadratic number of subproblems, each taking constant time to solve, this algorithm runs in time , which proves:
Given two -vertex polygons, each with points labelled from to in some order, one can find a pair of compatible paths or determine that none exist in time.
2.2.2 A linear-time algorithm for convex point sets
In this section we assume that the input is a pair of convex point sets , along with their convex hulls.
Given a label , we first define a greedy construction to compute compatible paths starting at . The output of the construction is an ordered sequence of labels. Using Claim 2 we keep track of the intervals in and corresponding to . Initially contains the label . Each subsequent step attempts to add a new label to , maintaining intervals in and . Suppose the intervals corresponding to the current are and in and respectively. Let and be the labels of the vertices just before and just after interval on the boundary of . Similarly, let and be the labels of the vertices just before and just after interval on the boundary of . If , then we add and to in arbitrary order. Otherwise, if there is one label in common between the two sets, we add that label to . Finally, if there are no common labels, then the construction ends. Let be a maximal sequence constructed as above.
and have compatible paths starting at label if and only if includes all labels.
If and have compatible paths with label sequence starting at label then by Claim 2 every prefix of corresponds to an interval in and in , and we can build in exactly the same order as .
For the other direction, we claim to construct noncrossing paths in and corresponding to . Observe that when we add one or two labels to , we can add the corresponding vertices to our paths because the point sets are convex, so every edge is allowable. Furthermore, the paths constructed in this way are noncrossing because the greedy construction of always maintains intervals in and . Hence the new edges are outside the convex hull of the paths so far.
Lemma 1 allows us to find compatible paths (if they exist) in time by trying each label as the initial label of the path. In order to improve this to linear time, we first argue that when does not provide compatible paths, then we need not try any of its other labels as the initial label.
If has length less than , then no label in can be the starting label for compatible paths of and .
Suppose that there are compatible paths with label sequence starting at a label in . Let be the first label that appears in but not in . Let and be the intervals corresponding to in and respectively. By Claim 2 the prefix of before corresponds to intervals, say and on and , respectively. Then and (by our assumption that is the first label of not in ). Since the vertex with label must be adjacent to on the boundary of and to on the boundary of , and does not appear in , therefore the vertex with label must be adjacent to on the boundary of and to on the boundary of . But then our construction would add label to .
We will use Lemma 2 to show that we can eliminate some labels entirely when is found to have length less than . Suppose does not include all labels. Let and be the intervals on and , respectively, corresponding to the set of labels of . Let and be the labels that appear at the endpoints of .
Suppose and have compatible paths (of length ) with label sequence . Then by Lemma 1 the initial and final label of lie outside of . Furthermore, by Claim 3, the set of labels of must appear consecutively and in the same order around and around (either clockwise or counterclockwise). Our algorithm checks whether and have the same ordered lists of labels. If not, then there are no compatible paths.
So suppose that and have the same ordered lists of labels. Then the endpoints of must have labels and . We will now reduce to a smaller problem by discarding all internal vertices of and . Let and be the point sets formed from and , respectively, by deleting the vertices with labels in .
Suppose is a label appearing in . and have compatible paths with initial label if and only if and have compatible paths with initial label .
If and have compatible paths (of length ) with initial label , then we claim that deleting from those paths the vertices with labels in yields compatible paths of and with initial label . It suffices to show that if we delete one vertex from a noncrossing path on points in convex position then the resulting path is still noncrossing. The two edges incident to the point to be deleted form a triangle, and the new path will use the third side of the triangle. Since the points are in convex position, the triangle is empty of other points, and so the new edge does not cross any other edge of the path.
For the other direction, suppose that is a label sequence of compatible paths of and with initial label . Suppose without loss of generality that label comes before label in . Construct a sequence by adding the labels of after in in the order that they appear in , e.g., see Figure 6. It remains to show that the corresponding paths in and are noncrossing. This follows from the fact that in both and the added points appear consecutively around the convex hull following the point with label .
We can now prove the main result of this section.
Given two sets of points in convex position (along with their convex hulls) each with points labelled from to , one can find a pair of compatible paths or determine that none exist in linear time.
The algorithm is as described above. At each stage we try some label to be the initial label of compatible paths, by computing using the greedy construction. If has length we are done. Otherwise if has length 1 or 2, then we have ruled out the labels in as initial labels. Finally, if has length less than and at least 3 then we test whether the intervals corresponding to in and have the same ordering, and if they do, then we apply the reduction described above and recurse on the smaller instance as justified by Lemma 3.
The running time of the algorithm is determined by the length of all the -sequences we compute. Define a -sequence to be ‘long’ or ‘short’ depending on whether it contains at least three labels or not. Every long sequence of length reduces the number of points by and requires time. Thus, long sequences take time in total. Computing any short sequence takes time. Since for each label, we compute at most once, the short sequences also take time in total.
3 Monotone Paths in General Point Sets
In this section we examine arbitrary point sets in general position, but we restrict the type of path.
Let be a point set in general position. An ordering of the points of is called monotone if there exists some line such that the orthogonal projection of the points on yields the order . A monotone path is a path that corresponds to a monotone ordering. Note that every monotone path is noncrossing.
Two points sets and each labelled have compatible monotone paths if there is an ordering of the labels that corresponds to a monotone path in and a monotone path in . To decide whether compatible monotone paths exist, we can enumerate all the monotone orderings of , and for each of them check in linear time whether it determines a monotone path in .
A method for enumerating all the monotone orderings of a point set was developed by Goodman and Pollack:
Theorem 4 (Goodman and Pollack )
Let be a line not orthogonal to any line determined by two points of . Starting with , rotate the line through counter-clockwise about a fixed point. Projecting the points onto as it rotates gives all the possible monotone orderings of . There are orderings, and each successive ordering differs from the previous one by a swap of two elements adjacent in the ordering.
Furthermore, the sequence of swaps that change each ordering to the next one can be found in time by sorting the lines (determined by all pairs of points) by their slopes.
This gives a straight-forward time algorithm to find compatible monotone paths, since we can generate the monotone orderings of in constant time per ordering, and check each one for monotonicity in in linear time.
We now present a more efficient time algorithm. For ease of notation, relabel the points so that the order of points along is . As the line rotates, let , where , be the monotone orderings of , and let be the corresponding swap sequence. Similarly, let be the monotone orderings of and let be the corresponding swap sequence (Figure 7). We need to find whether there exist some and such that . As noted above, and have size and can be computed in time .
Recall that the inversion number, of a permutation is the number of pairs that are out of order. It is easy to see that the inversion numbers of the ’s progress from to and back again. In particular, for . Our algorithm will compute the inversion numbers of the ’s, which also have some structure. Let be the inversion number of . Note that we can compute in time—sorting algorithms can be modified to do this .
For all , , differs from by , and can be computed from in constant time.
is formed by swapping one pair of adjacent elements in . If this swap moves a smaller element after a larger one then . Otherwise, it is .
The main idea of our algorithm is as follows. If , then they must have the same inversion number, . There is one value of in the range that gives this inversion number, namely . There is also one value of in the second half of the range that gives this inversion number, but we can ignore the second half of the range based on the following:
If there exist such that , then there is such a pair with in the first half of the index range, i.e., .
The second half of each list of orderings contains the reversals of the orderings in the first half . Thus if there is a match then the reversals of the two orderings also provide a match, say , and either or is in the first half of the index range.
Our plan is to iterate through the orderings for . Since each ordering differs from the previous one by a single swap, we can update from one to the next in constant time. For each , we will check if is equal to , i.e., for each , we will compute the following four things:
, , , and
, which is the Hamming distance—i.e., the number of mismatches—between and
If we find a with then we output and as compatible monotone paths. Otherwise, we declare that no compatible monotone paths exist. Correctness of this algorithm follows from Remark 1 and the discussion above:
and have compatible monotone paths if and only if for some , .
We now give the details of how to perform the above computations. For we will compute everything directly, and for each successive , we will show how to update efficiently. We initialize the algorithm at by computing and in time, in time, and in linear time.
Now consider an update from to . As already mentioned, differs from by one swap of adjacent elements, so we can update in constant time. By Lemma 4, differs from by and we can compute it in constant time. This also means that differs from by one swap of adjacent elements, so we can update it in constant time.
Finally, we can update the Hamming distance in a two-step process as the two orderings change. When we update from to , two positions in the list change, and we can compare them to the same positions in to update from to obtain the number of mismatches between and . When we update to , two positions in this list change, and we can compare them to the same positions in to update to . This two-step process takes constant time.
In total, we spend time on initialization and constant time on each of updates, for a total of time. We thus obtain the following theorem.
Given two point sets, each containing points labelled from to , one can find a pair of compatible monotone paths or determine that none exist in time.
In this paper we gave some fast polynomial-time algorithms to find compatible paths (if they exist) on a given pair of labelled point sets under some constraints on the paths or the point sets. An interesting direction for future research would be to extend our linear-time algorithm to point sets that determine nested convex hulls. Since the problem is NP-complete  in general, it would also be interesting to examine fixed-parameter tractable algorithms.
We thank the organizers of the Fields Workshop on Discrete and Computational Geometry, held in July 2017 at Carleton University. E. Arseneva is supported in part by the SNF Early Postdoc Mobility grant P2TIP2-168563 and by F.R.S.-FNRS; A. Biniaz, K. Jain, A. Lubiw, and D. Mondal are supported in part by NSERC.
-  (2003) Towards compatible triangulations. Theoretical Computer Science 296 (1), pp. 3–13. Cited by: §1.1.
-  (1993) On compatible triangulations of simple polygons. Computational Geometry 3, pp. 27–35. Cited by: §1.1, §1.1.
-  (2018) Compatible paths on labelled point sets. In Proceedings of the 30th Canadian Conference on Computational Geometry (CCCG), pp. 54–60. Cited by: Compatible Paths on Labelled Point Sets††thanks: A preliminary version of the paper was presented at the 30th Canadian Conference on Computational Geometry (CCCG) , §1.
-  (1997) Constructing piecewise linear homeomorphisms of polygons with holes. In Proceedings of the 9th Canadian Conference on Computational Geometry (CCCG), Cited by: §1.1.
-  (2009) Compatible embedding for 2D shape animation. IEEE Transactions on Visualization and Computer Graphics 15 (5), pp. 867–879. Cited by: §1.
-  (2009) Introduction to algorithms, 3rd edition. MIT Press. Cited by: §3.
-  (2017) On well-covered pentagonalizations of the plane. Discrete Applied Mathematics 224, pp. 91–105. External Links: Cited by: §1.1.
-  (1980) On the combinatorial classification of nondegenerate configurations in the plane. Journal of Combinatorial Theory, Series A 29 (2), pp. 220–235. Cited by: §3, Theorem 4.
-  (1989) An optimal visibility graph algorithm for triangulated simple polygons. Algorithmica 4 (1-4), pp. 141–155. Cited by: §2.2.1.
-  (20042004) Paired pointset traversal. In Proceedings of the 15th International Symposium on Algorithms and Computation (ISAAC), R. Fleischer and G. Trippen (Eds.), LNCS, Vol. 3341, pp. 534–544. External Links: Cited by: §1, §1, §4.
-  (2017) On compatible triangulations with a minimum number of Steiner points. In Proceedings Canadian Conference on Computational Geometry (CCCG), pp. 101–106. Note: http://arxiv.org/abs/1706.09086 Cited by: §1.1.
-  (1996) Applications of the crossing number. Algorithmica 16 (1), pp. 111–117. Cited by: §1.1.
-  (1987) Joint triangulations and triangulation maps. In Proceedings of the Third Annual Symposium on Computational Geometry (SoCG), pp. 195–204. Cited by: §1.1.
-  (2004) High quality compatible triangulations. Engineering with Computers 20 (2), pp. 147–156. Cited by: §1.
-  (1997) The structure of well-covered graphs and the complexity of their recognition problems. J. Comb. Theory, Ser. B 69 (2), pp. 230–233. External Links: Cited by: §1.1.