Abstract 1 Introduction 2 Preliminaries and Algorithm Overview 3 Subroutine: 1D Minimum Cost Bipartite Matching with Penalties 4 Minimum-Cost Perfect Matching for Prism Graphs 5 Conclusion References

Exact Subquadratic Algorithm for Many-To-Many Matching on Planar Point Sets with Integer Coordinates

Seongbin Park ORCID Department of Computer Science and Engineering, POSTECH, Pohang, Republic of Korea    Eunjin Oh ORCID Department of Computer Science and Engineering, POSTECH, Pohang, Republic of Korea
Abstract

In this paper, we study the many-to-many matching problem on planar point sets with integer coordinates: Given two disjoint sets R,B[Δ]2 with |R|+|B|=n, the goal is to select a set of edges between R and B so that every point is incident to at least one edge and the total Euclidean length is minimized. In the general case that R and B are point sets in the plane, the best-known algorithm for the many-to-many matching problem takes O~(n2) time. We present an exact O~(n1.5logΔ) time algorithm for point sets in [Δ]2. To the best of our knowledge, this is the first subquadratic exact algorithm for planar many-to-many matching under bounded integer coordinates.

Keywords and phrases:
Edge cover, many-to-many matching, similarity, geometric matching
Copyright and License:
[Uncaptioned image] © Seongbin Park and Eunjin Oh; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Design and analysis of algorithms
; Theory of computation Computational geometry
Related Version:
Full Version: https://arxiv.org/abs/2604.16921
Funding:
Supported by Institute of Information & Communications Technology Planning & Evaluation (IITP) grant funded by the Korea government (MSIT) (No. RS-2024-00440239, Sublinear Scalable Algorithms for Large-Scale Data Analysis) and the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (No. RS-2024-00358505).
Editor:
Pierre Fraigniaud

1 Introduction

Measuring the similarity between two point sets is a fundamental problem in computational geometry and pattern recognition [1, 22, 23]. A widely used measure is the Earth Mover’s Distance (EMD), which captures the global distribution of point sets by finding an optimal correspondence [18, 19]. Formally, for two sets R and B of the same cardinality, the EMD is defined as the minimum cost of a perfect matching: minσ:RBrRrσ(r), where σ is a bijection. While EMD is effective at preserving the holistic structure of the sets, its definition is inherently restricted to cases where |R|=|B|. To accommodate sets of different cardinalities, one might consider pointwise heuristics such as the Chamfer distance: rRminbBrb+bBminrRbr. It provides a simple way to handle unequal set sizes as it treats each connection independently and sums |R|+|B| distances without any global coordination. However, this often fails to capture the underlying structural correspondence, as it lacks the “assignment” nature that makes EMD robust.

A more principled approach to handling different sized sets, instead of resorting to pointwise measures, is to generalize the matching framework of EMD itself. By relaxing the strict one-to-one matching requirement to a many-to-many correspondence, we arrive at the minimum link measure introduced by [7]. Formally, a many-to-many matching is a set of edges MR×B such that every point in RB is incident to at least one edge in M. The cost is the total weight (r,b)Mrb. The minimum link measure is the minimum cost of a many-to-many matching between R and B. This “setwise” approach preserves the global structural integrity of EMD by seeking an optimal set of edges that covers both sets simultaneously. As a single edge in M can satisfy the coverage requirement for points in both R and B, the minimum link measure maintains a mutual correspondence that is more stable and geometrically intuitive than independent pointwise distances.

In this paper, we consider the problem of computing a minimum-cost many-to-many matching, also called the minimum link measure, between two point sets in Euclidean space. This problem was originally introduced by Eiter and Mannila [7]. While an efficient, optimal algorithm exists for points on a line, the problem becomes significantly more difficult in higher dimensions. Even for planar point sets, the best-known exact algorithm still suffers from a quadratic bottleneck [3], mirroring the challenges found in various other geometric bipartite matching problems [11]. To bridge this gap, we consider the case where the inputs lie on an integer grid as an intermediate step toward the general planar case.

Our results.

In this paper, we present the first subquadratic-time exact algorithm for the many-to-many matching problem for point sets on an integer grid. Our main result is summarized in the following theorem.

Theorem 1.

Given two disjoint sets111With a slight modification, we can deal with the non-disjoint case without increasing the running time. R and B of points in [Δ]2={1,2,,Δ}×{1,2,,Δ}, we can compute a minimum-cost many-to-many matching between R and B in O~(n1.5logΔ) time,222The O~-notation hides polylogarithmic factors in n. where n=|R|+|B|.

A key technical challenge in achieving this bound is efficiently handling subproblems where points can be either matched to the opposite set or remain unmatched by paying a certain cost. To this end, we introduce the minimum-cost matching with penalties problem: Given two point sets R and B where each point pRB is associated with a real-valued penalty π(p)0, we seek a matching MR×B that minimizes (r,b)Mrb+pfree(M)π(p), where free(M) denotes the set of points in RB not incident to any edge in M. To the best of our knowledge, this problem has not been explicitly studied before. Although this can be solved in O(n3) time via standard reductions to the minimum-cost perfect matching problem for bipartite graphs, the cubic-time algorithm is too slow for our purpose. As a subroutine for our main algorithm, we provide an optimal algorithm for this penalty variant in one dimension, which we believe is of independent interest, stated as follows.

Theorem 2.

Given two disjoint sets R and B of points on a real line, where each point has a real-valued penalty, a minimum-cost matching with penalties can be computed in O(nlogn) time, where n=|R|+|B|.

Related works.

The study of the minimum-cost many-to-many matching problem was introduced by Eiter and Mannila [7]. They established that the problem is solvable in O(n3) time by reducing it to the minimum-cost perfect matching problem on graphs [7]. For the one-dimensional case where points lie on a real line, Colannino et al. [5] provided an optimal O(nlogn)-time algorithm, improving upon previous O(n2) results [6]. In the Euclidean plane, the best-known exact algorithm runs in O~(n2) time [3]. On the other hand, in higher dimensions, no non-trivial algorithm is known for this problem while an O(n3)-time algorithm can be obtained easily by reducing it to a minimum-cost perfect matching of a graph of complexity. Given the challenge of computing exact solutions in subquadratic time, several approximation algorithms have been explored. The Chamfer distance serves as a simple 2-approximation for the many-to-many matching cost [3]. Furthermore, (1+ε)-approximate solutions can be computed in (1/ε)O(d)nlogn time for d-dimensional Euclidean space, or any metric space with a constant doubling dimension [2, 4].

As EMD is a more classical setting, there are numerous results on computing the EMD between two points (also known as the minimum-cost perfect matching). By implementing the Hungarian algorithm [15] using a dynamic weighted nearest neighbor data structure [12], one can compute the exact EMD of two point sets in the plane in O~(n2) time [11]. While the exact bipartite matching problem in the plane suffers from a quadratic bottleneck, the problem becomes easier if there are constraints on the input points. For instance, if the points in B and R are drawn independently and identically from a fixed distribution that is not known to the algorithm, the exact EMD between B and R can be computed in O(n7/4logΦ) time, where Φ denotes the spread of BR (i.e, the ratio of the maximum distance to the minimum distance). If B and R come from [Δ]2, Sharathkumar [20] presented an O~(n1.5logΔ)-time algorithm.333The paper [20] states that their algorithm takes O(n1.5+δlog(nΔ)) time for a constant δ, but by replacing a nearest neighbor data structure used in this paper with the most recent one [12], the factor nδ can be replaced with polylogn.

2 Preliminaries and Algorithm Overview

In this section, we first describe an alternative view for the problem and then provide an overview of our algorithm. An alternative way is to view the many-to-many matching problem as a geometric graph problem. Consider a complete bipartite graph G=((R,B),E) with vertex set V=RB and with edge set E=R×B where the cost of an edge (r,b)E is the Euclidean distance rb between their endpoints. An edge cover of G is a subset of E such that every vertex of V is incident to at least one edge of it. The cost of an edge cover of G is defined as the sum of the costs of its edges. Then the many-to-many matching problem on R and B is equivalent to the problem of finding an edge cover of G with the minimum cost.

For a general graph with n vertices and m edges, a minimum-cost edge cover can be solved in O(n(nlogn+m)) time via a reduction to the minimum-cost perfect matching [8, 9, 13]. Since the complete bipartite graph G has complexity Θ(n2), we cannot use these graph algorithms directly to obtain a subquadratic-time algorithm. Nevertheless, as our approach extensively adapts several combinatorial principles from these classical algorithms, we introduce the following graph-theoretic terminology to be used throughout this paper.

Terminology for matching.

Let H be a bipartite graph with edge costs. A matching M in H is a set of pairwise vertex-disjoint edges, and its cost defined as the sum of its edge costs. A matching M in H is perfect if every vertex is incident to exactly one edge of M. A vertex of the graph is free (with respect to M) if no edge of M is incident to it. An alternating path (with respect to M) is a path in the graph that begins from a free vertex and whose edges alternately belong to M and not to M. An augmenting path (with respect to M) is an alternating path whose two endpoints are both free. Augmenting M along an augmenting path P by taking symmetric difference (MP) increases its cardinality by one. A matching M has maximum cardinality if no augmenting path exists. Classically, maximum-cardinality (or minimum-cost) matchings are computed by repeatedly augmenting M along paths with certain properties until none remain.

2.1 Reduction to the Min-Cost Perfect Matching

Figure 1: Illustration of the prism graph (right) of the original graph (left). The thick segments in the left figure show the min-cost many-to-many matching, and the thick segments in the right figure show the min-cost perfect matching.

In this section, we describe a reduction from the minimum-cost many-to-many matching problem to the minimum-cost perfect matching problem. While this is identical to the folklore reduction, we refer to the resulting graph as the prism graph for notational convenience. It preserves the original geometric embedding and induces independent vertex penalties.

Let R and B be two point sets in [Δ]2, and let G be the complete bipartite graph between R and B, where the cost of each edge is the Euclidean distance between its endpoints. The reduced instance is called the prism graph of G, denoted by G~=(V~,E~), with an associated edge cost c~:E~.

Prism graph.

The prism graph G~ is a two-layered bipartite graph consisting of an “upper” layer, which is the original graph G, and a “lower” layer, which is a mirrored copy G^ of G. For each vertex v in the upper layer, we add a link edge between v and its corresponding copy v^ in the lower layer. Note that G~ remains bipartite, as its vertex set can be partitioned into R{v^v^ is the copy of vB} and B{v^v^ is the copy of vR}. See Figure 1. For an edge e=(u,v) in G~, the cost c~(e) is defined as follows:

  • If u and v are both in the upper layer, c~(e)=uv.

  • If u and v are both in the lower layer, c~(e)=0.

  • If e is a link edge (v,v^), c~(e)=μ(v), where μ(v) is the distance from v to its nearest neighbor in the opposite set (R or B).

Note that an optimal edge cover M of G consists of disjoint stars. For a star of M of size larger than two, let c be the center of the star. Then for every vertex of the star other than c, its closest neighbor in the opposite set is c. Otherwise, we can reconnect it with its closest neighbor without violating the feasibility of the solution. This reduces the problem into the minimum-cost matching problem with penalties where the penalty of each point is μ(). The construction of the prism graph is based on this intuition. Matching a vertex via a link edge to the lower layer simulates leaving that vertex uncovered by the primary matching in the upper layer, instead paying the penalty of connecting it to its nearest neighbor.

The values μ(v) for all vRB can be computed in O(nlogn) time by constructing the Voronoi diagrams of R and B and using a planar point location data structure [14]. Although G~ has Θ(n2) edges in the worst case, we can store it using complexity of O(n) by maintaining only the vertices and the link edges explicitly. The edges in G and G^ can be represented implicitly as they form complete bipartite graphs.

The following lemma establishes the equivalence between the minimum-cost edge cover of G and the minimum-cost perfect matching of G~. For illustration, see Figure 1.

Lemma 3 ([3]).

Given a minimum-cost perfect matching M~ of G~, a minimum-cost edge cover of G can be computed in O(n) time.

Due to the lack of space, some proofs are omitted. The missing proofs can be found in the full version of this paper.

2.2 Overview of Our Algorithm

Due to Lemma 3, the problem reduces to computing a minimum-cost perfect matching of G~. The algorithm consists of two phases.

In the first phase, we compute an approximate perfect matching of G~ with its corresponding dual weights. We use the approximation algorithm of Bandyapadhyay et al. [3] which is based on the scaling algorithm [10], with dynamic additively weighted nearest-neighbor data structures [12] to obtain these dual weights in O~(n1.5logΔ) time.

In the second phase, we leverage these dual weights to construct a sparse candidate subgraph G~cand of G~ containing an optimal perfect matching of G~. Here, a crucial property is that it is almost planar. Specifically, the upper layer of G~cand possesses a planar skeleton, meaning no two edges of G~cand cross unless their endpoints are collinear, and the lower layer of G~cand is a mirrored copy of its upper layer. We then compute the exact minimum-cost perfect matching of G~cand by applying a divide-and-conquer strategy on a balanced separator of this planar skeleton.

While this overall strategy comes from the subquadratic-time algorithm for the one-to-one setting on integer grids [20], we address two major technical hurdles unique to the many-to-many setting.

  • During the construction of G~cand and within the recursion step, we must efficiently solve subproblems where points can either be matched to the opposite set or left unmatched by paying a penalty. To handle this, we develop an O(nlogn)-time algorithm for the 1D minimum-cost matching problem with penalties (Section 3), replacing the simple greedy approach used for standard 1D perfect matching.

  • In the one-to-one setting [20], the candidate graph G~cand is strictly planar, allowing direct application of the separator-based algorithm in [17]. In our case, G~cand is not strictly planar. We overcome this by applying the balanced separator exclusively to the planar skeleton of G~cand (Section 4.2). A tricky part is to handle the vertices of G~cand not appearing on the planar skeleton. We address this using their 1D nature: these vertices are fully contained in the open intervals (edges) of the planar skeleton, which allows us to process them efficiently using our 1D matching subroutine.

In the following, some proofs and details are omitted due to page limits. All missing proofs and details can be found in the full version of this paper.

3 Subroutine: 1D Minimum Cost Bipartite Matching with Penalties

In this section, we prove Theorem 2, that is, we present an O(nlogn)-time algorithm for the 1D minimum-cost bipartite matching problem with penalties. As input, we are given two sets B and R lying on a horizontal line where each point pBR is associated with a penalty wp. For a matching MB×R between B and R, its cost c(M) is defined as (r,b)Mrb+p(RB)V(M)wp. That is, its cost is the total edge length of M plus the total penalty of the unmatched vertices. The goal is to compute a matching between R and B of minimum total cost.

To the best of our knowledge, there is no work explicitly studying the minimum-cost bipartite matching problem with penalties even for the one-dimensional case. However, there are several ways to address this problem. First, this problem reduces to the min-cost flow problem on planar directed graphs. Also, if points of BR have integer coordinates, and the penalties wp are all integers, then the resulting instance has integer costs. In this case, we can solve the problem in O~(nlogN) time, where N is the maximum of the maximum cost and the diameter of BR. However, the penalty wp can be an arbitrary real number in our case, which makes the aforementioned algorithm inapplicable in our setting. Another simple way is to use dynamic programming, which leads to an O(n2)-time algorithm. Since our main algorithm is based on this dynamic programming algorithm, we also describe it here.

3.1 Quadratic-Time DP Algorithm

Let be the line containing B and R. Without loss of generality, assume that is horizontal. For a point x, let Bx and Rx be the sets of points in B and R, respectively, lying to the left of x (including the points lying on x). For any point x and a positive integer k, we let Fx(k) denote the minimum matching cost with penalties between B¯x and Rx, where B¯x is the set obtained from Bx by adding k points at x with penalty . For a negative integer k, we let Fx(k) denote the minimum matching cost with penalties between Bx and R¯x, where R¯x is the set obtained from Rx by adding |k| points at x with penalty . Then the minimum matching cost between B and R is F(0). Therefore, the problem reduces to computing Fx() for all points x in and for all values k with nkn.

Lemma 4.

For any value k and any two points x and x of such that no point of RB lies between x and x (including x and x), we have Fx(k)=Fx(k)+|k|xx.

Thus it is sufficient to compute Fp(k) for all points pRB and all values nkn. But to avoid a degeneracy issue, for each point pRB, we compute Fp¯(k) for a conceptual point p¯ located infinitesimally to the right of p. For all distance calculations, we treat pp¯=0. As initialization, let x0 be any point lying strictly to the left of the first point in BR. Then Fx0(0)=0 and Fx0(k)= for any k0. Starting from this base case, we process the points of RB from left to right along . We show how to handle a point pRB. Without loss of generality, assume that pR. The other case can be handled symmetrically. Let p be the point of BR lying immediately to the left of p along , and let d=pp. Then we have the following recurrence relation. There are two possibilities: either p is matched with a blue point in B¯p¯, or p is not used in the matching by paying the penalty. We consider both cases, and take the one with minimum cost.

Fp¯(k)=min(Fp¯(k1)+|k1|dMatch p,Fp¯(k)+|k|d+wpPay Penalty) (1)

The recurrence relation immediately shows how to compute Fp¯() for all points pBR. Each table entry can be computed in O(1) time, yielding an overall running time of O(n2).

In the following, to make the description easier, we simply let Fp(k):=Fp¯(k) as the following analysis is based only on the recurrence relation (1).

3.2 Convexity of the Cost Function

In this subsection, we show that the function Fx() is convex for any fixed point x. We say f: is convex if f(i1)+f(i+1)2f(i) for every integer i. If f(i+1)= or f(i1)=, the inequality holds immediately. We let dom(f) be the set of integers k such that f(k) is finite. Let Δf(k):=f(k)f(k1).

Lemma 5.

The function Fx() is convex for any fixed point xRB.

Proof.

We use induction on the points of BR encountered from left to right. Let x0 be a point to the left of the leftmost point of BR. We define Fx0(0)=0 and Fx0(k)= for k0, which is trivially convex.

Let pBR be the current point and p be the previous point in BR{x0}. Let d=pp. Without loss of generality, assume that pB. By the induction hypothesis, Fp() is convex. Note that |k1|d is a convex function of k. Since the sum of two convex functions is also convex, Fp(k1)+|k1|d is convex. Similarly, Fp(k)+|k|d+wp is convex. Although the minimum of two convex functions is not convex in general, it is convex in our setting. This holds due to the following claim with f(k)=Fp(k)+|k|d.

Claim 6.

Let f: be a convex function. Then Fp(k):=min{f(k1),f(k)+w} is also convex for any value w.

Therefore, the lemma holds for any fixed point xRB.

As we showed in the proof of Claim 6, the following corollary holds.

Corollary 7.

Let k be the largest integer with Δf(k)wp. Then for kk, we have Fp(k)=f(k)+wp, and for k>k, we have Fp(k)=f(k1).

3.3 Near-Linear-Time Algorithm

In this subsection, we present an O(nlogn)-time algorithm for the 1D minimum-cost bipartite matching problem with penalties. For each pBR, let dom(Fp)=[Lp,Rp] be the maximal interval of integers for which Fp(k)<. By the recurrence, dom(Fx) is always a contiguous interval. Basically, we compute Fp(k) for all integers kdom(Fp) and all points pBR. By maintaining Fp(k) using a data structure for a fixed p, we show that Fp(k) can be computed in O(logn) time for all integers k for a fixed p assuming that we have Fp(), where p is the point of BR lying immediately to the left of p.

Representation of the cost function.

Fix x, and let ΔFx(k):=Fx(k)Fx(k1). We maintain Fx(0) and ΔFx(k) for all indices k. Note that they fully represent Fx(). To make the update efficiently, we store ΔFx() using two balanced binary search trees. Let Hx+ and Hx be two sets where

Hx+={ΔFx(k)0<kRx} and Hx={ΔFx(k)Lx<k0}.

Since Fx() is convex, ΔFx(k) is non-decreasing with respect to k. We maintain the two sets using two binary search trees Tx+ and Tx and offsets o+ and o. The offsets allow us to shift all stored values uniformly without updating each element explicitly. Each leaf of a tree of Tx+ (and Tx) corresponds to exactly one index k>0 (and k<0), and the leaf stores the value ΔFx(k)o+ (and ΔFx(k)o). Thus, the actual value of ΔFx(k) is obtained by adding the corresponding offset o+ or o. Each internal node additionally stores the size of its subtree and the sum of the stored values in its subtree (excluding the offset). Hence, the true sum of the values in any subtree can be obtained by adding the offset multiplied by the subtree size. The leaves of Tx+ (and Tx) are stored in increasing order of their indices k. Since Fx() is convex, the stored values are non-decreasing along this order. Therefore, Tx+ and Tx can be implemented as binary search trees augmented with subtree sizes and subtree sums, supporting insertion, deletion, and prefix-sum queries in O(logn) time. We call the tuple of Fx(0), o+, o, Tx+ and Tx the representation of Fx(). Here, since the roots store the size of the trees, we do not need to explicitly maintain dom(Fp).

Observation 8.

Given the representation of Fx(), we can compute Fx(k) for any integer k in O(logn) time.

Proof.

We show how to compute Fx(k) for any integer k>0. For k=0, we maintain Fx(0) explicitly, and for k<0, we can do this symmetrically. By telescoping, we have

Fx(k)=Fx(0)+i=1kΔFx(i).

Thus, it suffices to compute the prefix sum of the first k values in Hx+.

Since ΔFx(k) is non-decreasing in k, the values stored in Tx+ are already ordered by index. We augment each node of Tx+ with the size of its subtree and the sum of the stored values in its subtree (excluding the offset o+). Using standard binary search tree operations, we can retrieve the sum of the smallest k elements in Tx+ in O(logn) time. Adding this sum and the accumulated offset ko+ to Fx(0) yields Fx(k). Therefore, given the representation of Fx(), we can compute Fx(k) for any integer k in O(logn) time.

Update of the representation.

Assume that we are given the representation of Fp(), and we wish to compute the representation of Fp(), where p is the next point to the right of p on . We describe the case pB; the case pR is symmetric. Let d:=pp.

Step 1.

We first consider the transportation cost. Let f(k):=Fp(k)+|k|d. Thus, before handling the matching/penalty decision at p, we first transform the representation of Fp into the representation of f. For k>0, we have Δf(k)=ΔFp(k)+d, and for k0, we have Δf(k)=ΔFp(k)d. Hence, this update can be performed by increasing the offset o+ by d, and decreasing the offset o by d, while keeping the trees unchanged. Also, Fp(0) remains unchanged since |0|d=0. After this step, the representation corresponds to f().

Step 2.

We then find the largest integer k with Δf(k)wp by a binary search over the ordered trees Tp+ and Tp in O(logn) time. Since Δf(k) is non-decreasing in k, the threshold k can be found by searching for the largest index whose discrete derivative is at most wp. Recall that Fp(k)=min{f(k1),f(k)+wp} from (1). By Corollary 7, for kk, we have Fp(k)=f(k)+wp, and for k>k, we have Fp(k)=f(k1).

Step 3.

We now update the representation of f() to obtain that of Fp(). We first compute Fp(0). Since Fp(0)=min{f(1),f(0)+wp}, this value can be computed in O(logn) time using Observation 8.

We next determine the new discrete derivatives. For kk, both Fp(k) and Fp(k1) lie in the same case, and hence

ΔFp(k)=Fp(k)Fp(k1)=f(k)f(k1)=Δf(k).

For k>k+1, we have

ΔFp(k)=Fp(k)Fp(k1)=f(k1)f(k2)=Δf(k1).

At the boundary k=k+1, we have

ΔFp(k+1)=Fp(k+1)Fp(k)=f(k)(f(k)+wp)=wp.

Therefore, the sequence ΔFp() is obtained from Δf() by inserting the single value wp (minus the corresponding offset) at position k+1. As a result, all indices strictly larger than k are shifted by one position to the right.

Since the discrete derivatives are stored in a binary search tree, this transformation can be implemented by a single rank-based insertion at index k+1. If k<0, the insertion shifts the element originally at index 0 to index 1. Because index 0 belongs to Tp and index 1 belongs to Tp+, we must extract the maximum element from Tp and insert it as the minimum element in Tp+ (after adjusting the values with respect to the offsets for the two trees). All subtree sizes and subtree sums are updated along the search path. The insertion and any necessary boundary shifts take O(logn) time. Thus, the entire update from the representation of Fp() to that of Fp() takes O(logn) time.

Lemma 9.

Given the representation of Fp(), we can compute the representation of Fp() in O(logn) time.

We consider the points of BR from left to right. The initialization takes O(n) time, and each update takes O(logn) time. Therefore, the total running time is O(nlogn).

4 Minimum-Cost Perfect Matching for Prism Graphs

In this section, we present an exact algorithm for computing a minimum-cost perfect matching of the prism graph G~. To simplify the exposition, we identify the vertices in the upper layer of the prism graph G~ directly with the original points in R and B. Specifically, we let the upper layer vertex set be RB. We then define the lower layer as a mirrored copy of the upper layer, where each vertex vRB has a corresponding copy v^ in the lower layer.

Our strategy involves two main phases: computing an approximate minimum-cost perfect matching of G~ along with its associated dual weights, and utilizing these dual weights to derive the exact solution. We begin by establishing the properties of an approximate solution and the associated dual weights.

1-optimality.

Given a scaling factor θ>0, let G~θ=(V~,E~) denote the θ-scaled graph of G~ with the edge-cost function c~θ:E~0, defined as c~θ(e)=c~(e)/θ for all eE~. Let y(v) denote the dual weight of a vertex vV~. A matching M~ in G~θ and the associated dual weights y() are said to be 1-feasible if

y(u)+y(v) c~θ(e)+1for all e=(u,v)E~, (2)
y(u)+y(v) =c~θ(e)for all e=(u,v)M~. (3)

We refer to (2) and (3) as the 1-feasibility conditions. An edge e=(u,v)E~M~ is called admissible if y(u)+y(v)=c~θ(e)+1. The admissible graph of G~θ is the subgraph of G~θ consisting of all admissible edges and the edges in M~. If a matching M~ and dual weights y() satisfy the 1-feasibility conditions and M~ is a perfect matching, we call the pair (M~,y) 1-optimal. Sharathkumar and Agarwal [21] showed that a 1-optimal matching of G~θ provides an approximate minimum-cost perfect matching of G~ with an additive error ε of at most 3nθ.

We now outline our algorithm for computing an exact minimum-cost perfect matching of G~. First, we compute a 1-optimal matching M~1 and associated dual weights y() of G~θ using a scaling factor of θ=1/(nΔ33), following the procedure described in the full version of this paper. In Section 4.1, we utilize these dual weights to identify a set of eligible edges Eelig of the upper layer of G~ and exploit their geometric properties to construct a set P of non-crossing line segments having endpoints at BR. Using P, we systematically extract a sparse candidate subgraph G~cand of size O(n) that is guaranteed to contain a minimum-cost perfect matching of G~. Finally, Section 4.2 presents a divide-and-conquer algorithm to compute an exact optimal solution in G~cand by applying the planar separator theorem to the graph induced by P.

4.1 Construction of the Candidate Subgraph

We construct a candidate subgraph G~cand=(V~,E~cand) of G~ that is guaranteed to contain an optimal matching of G~. We begin by utilizing the 1-optimal matching M~1 and the 1-optimal dual weights of G~θ with a scaling factor of θ=1/(nΔ33) to characterize the eligible edges in the upper layer that can participate in an optimal solution. This characterization reveals a crucial geometric property of these edges. Using this property, we apply the technique of Sharathkumar [20] to construct a planar skeleton (planar straight-line graph) P. Finally, we use P to generate the set of candidate edges E~cand.

The overall construction comes from Sharathkumar [20]: It applies the approach to a Euclidean complete bipartite graph while we apply it to the upper layer of the prism graph G~. As the upper layer is a Euclidean complete bipartite graph, the analysis immediately follows from [20], but the detailed implementation should be tailored for our setting.

Eligible edge decomposition and its induced planar skeleton.

We define the scaled dual weight of a vertex vV~ as yθ(v)=θy(v). The following lemma establishes a lower bound on the sum of scaled dual weights for the edges participating in an optimal matching of G~.

Lemma 10.

Let yθ() be the scaled dual weights associated with a 1-optimal matching of G~θ using the scaling factor θ=1/(nΔ33). Let M~ be a minimum-cost perfect matching of G~. Then, for every edge (u,v)M~ in the upper layer,

yθ(u)+yθ(v)>uv2Δ33. (4)

The proof is same as the argument in [20] and is thus omitted. We define the set of eligible edges, denoted by Eelig, as the set of all edges in the upper layer of G~ satisfying the condition (4). Lemma 10 implies that for any optimal matching M~ of G~, all edges of M~ that belong to the upper layer are contained in Eelig. Therefore, even if we remove all non-eligible edges in the upper layer from the prism graph, the optimal solution remains the same.

The following lemma shows that if no four vertices of RB are collinear, then the graph obtained from the upper layer of the prism graph by removing all non-eligible edges is planar. Thus our main focus is to handle collinear points in the following.

Lemma 11 ([20]).

Let Q[Δ]2 be a set of points. Let a,b,c,dQ be four distinct points that are not collinear. If the line segments ab¯ and cd¯ intersect, then

ad+bc+1Δ32<ab+cd.

Therefore, for any two distinct edges (a,b) and (c,d) in Eelig such that their four endpoints are not collinear, the line segments ab¯ and cd¯ do not intersect.

We show that the non-crossing property enables us to compute an eligible edge decomposition P={(p1,q1),,(pk,qk)}, which is a set of non-crossing line segments, such that for every edge of Eelig, it is contained in a segment of P. Note that P induces a plane graph whose vertices come from RB.

Since the definition of eligible edges in our setting is identical to that in Sharathkumar [20], we can adopt their algorithm for computing the eligible edge decomposition. However, a minor technical hurdle arises in the initialization phase. It uses an approximate perfect matching M obtained from the first phase, but in our setting, an approximate matching we have is not necessarily perfect if we look at the upper layer only. More specifically, it first computes all point-line pairs (p,) with pRB such that contains an eligible edge incident to p. The number of such pairs is O(n). For a point pRB, one can compute all eligible edges incident to it in O(polylogn) time per edge using a dynamic weighted nearest neighbor data structure. However, it is possible that a single line contains many different eligible edges incident to p. Then a single line can be discovered multiple times, which leads to quadratic running time in the worst case. To avoid this, as initialization, it computes just one line for each point p in RB containing an eligible edge incident to p in O(npolylogn) time in total using M. Later, it considers each point p in BR one by one and computes all pairs (p,) such that is not found in the initialization. Even in this case, a single line can be discovered multiple times, but the total number of pairs (p,) found in this way is O(n), which leads to near-linear running time. The perfect matching M can be used in the initialization; since an edge (u,v) of M is eligible, its extension contains an eligible edge incident to u (and v). But we can perform this initialization using a dynamic weighted nearest-neighbor data structure, and this does not increase the overall running time. The full details of this modified construction are deferred to the full version of this paper.

Construction of the candidate subgraph.

We now construct the candidate edge set E~cand of size O(n) using the eligible edge decomposition P. As mentioned earlier, if no four points of RB are collinear, we can simply construct E~cand by adding all eligible edges (the edges of P), their mirrored edges in the lower layer, and all link edges between the layers. However, in the general case, the number of eligible edges can be Θ(n2), making it impossible to include all of them.

Instead, we select a restricted subset of eligible edges as follows. For each pair (p,q)P, let I be the set of points in RB lying on the open segment between p and q. For a minimum-cost perfect matching M~ of G~, any edge incident to a vertex vI must have its other endpoint in I{v^,p,q}. Consequently, for the endpoints p and q, there are four possible configurations based on whether p and q are matched with points in I. For each configuration, we can identify the specific edges of M~ incident to points in I in O(|I|log|I|) time without computing the entire matching. More specifically, let I{p,q} be the set of points matched with elements in I under M~. By solving the local matching problem for II, we extract the necessary edges to be included in E~cand, ensuring the total size remains O(n). For the local matching problem, since the vertices of II are collinear, the problem is restricted to one dimension. This problem reduces to the minimum-cost matching problem on II, where leaving a vertex unmatched incurs a penalty of μ(), where μ(v)=μ(v) for a vertex vI and μ(v)= for a vertex vI. Therefore, the local matching problem can be solved in O(|I|log|I|) time by Theorem 2. We do this for all the four configurations, and then take the union of the resulting edges. Then E~cand is defined as the union of all such edges in P, their mirrored edges in the lower layer, and all the link edges. Then the size of E~cand is O(n), and it can be computed in O(nlogn) time.

We show that E~cand contains a minimum-cost perfect matching of G~. For this, we use the following technical lemma justifying that focusing on the upper layer during the construction of E~cand is sufficient. We say a matching M is symmetric if an edge (u,v) in the upper layer is contained in M if and only if its mirrored edge (u^,v^) is contained in M.

Lemma 12.

Let H~ be a subgraph of G~ induced by edges in the upper layer, their mirrored edges in the lower layer, and all link edges. There exists a minimum-cost perfect matching M~ of H~ that is symmetric.

Proof.

Let M~ be an arbitrary minimum-cost perfect matching of H~. Let m be the number of edges in M~ that belong to the upper layer. Each such edge (u,v) covers one vertex in R and one in B. Because M~ is a perfect matching, any vertex in the upper layer not matched with a vertex in the upper layer must be matched to its corresponding copy in the lower layer via a link edge. This implies that exactly m vertices in the lower layer are not covered by link edges. To satisfy the perfect matching requirement, these m vertices must be matched to each other using m/2 edges in the lower layer.

Now, consider the cost of these m/2 edges. By construction, the cost of any edge in the lower layer is zero. Therefore, we can replace the existing lower-layer edges in M~ with the “mirrored” edges of the upper-layer matching without changing the total cost of the matching. This substitution results in a new perfect matching M that remains optimal and satisfies the symmetry condition: (u,v) is in M if and only if (u^,v^) is in M. Therefore, the lemma holds.

Lemma 13.

There exists a minimum-cost perfect matching M~ of G~ such that M~E~cand.

Proof.

Let M~ be a minimum-cost perfect matching of G~ such that (i) all edges of M~ belonging to the upper layer are contained in Eelig, and (ii) M~ is symmetric, which always exists by Lemma 10 and by Lemma 12.

To show that M~E~cand, we consider the eligible edge decomposition P. Every edge (u,v)M~ in the upper layer must be contained within some segment pq¯P. For each such segment, let I be the set of points of BR lying in the open interval between p and q. By the construction of P, any edge in M~ incident to a vertex in I must have its other endpoint in I{v^,p,q}. This local constraint implies that the matching within each segment pq¯ can be optimized independently based on the four possible configurations of the endpoints p and q. Since E~cand is constructed by taking the union of the optimal local matchings for all four configurations across all segments in P, it follows that the edges of M~ are included in E~cand. Thus, the subgraph of G~ induced by E~cand contains a minimum-cost perfect matching of G~.

Therefore, the candidate edge set E~cand can be computed in O~(n) time in total, and the problem reduces to computing a minimum-cost perfect matching on the subgraph G~cand of G~ induced by E~cand. For an illustration of G~cand, see Figure 2.

It is worth noting the structural distinction between our construction and the one-to-one setting addressed by Sharathkumar [20]. In the one-to-one case, for each segment (p,q)P, it is sufficient to consider at most two configurations of the endpoints p and q, which makes the resulting graph planar. This is because the difference between the numbers of points in R and of points in B restricts the possible configurations of p and q. In the many-to-many setting, however, this difference does not inherently reduce the number of configurations. Consequently, we must consider the union of local optimal matchings for all four configurations, which renders the resulting candidate graph G~cand non-planar.

4.2 Divide-and-Conquer Algorithm via Planar Separators

In this section, we present a divide-and-conquer algorithm to compute a minimum-cost perfect matching of the candidate graph G~cand=(V~,E~cand). Our algorithm recursively partitions G~cand into disjoint vertex sets by removing a subset of vertices. We first compute the optimal matching for the subgraph induced by the disjoint sets. Subsequently, in the conquer phase, we reintroduce the removed vertices and gradually update the matching to obtain a minimum-cost perfect matching of G~cand using augmenting paths.

We begin by recalling the planar separator theorem, which serves as the foundation for our graph partitioning strategy. Lipton and Tarjan [16] established the following result for planar graphs.

Theorem 14 ([16]).

Let H be a planar graph with nH vertices. The vertices of H can be partitioned in O(nH) time into three disjoint sets X,Y,S such that (i) no edge connects a vertex in X with a vertex in Y, (ii) |X|,|Y|2nH/3, and (iii) |S|22nH.

We call S a balanced separator of H. While G~cand is not necessarily planar, its inherent planar structure is derived from the eligible edge decomposition P. Let V(P) be the set of endpoints of the edges (segments) in P, and let G(P)=(V(P),P) be the planar skeleton defined by P, that is, it is the planar graph induced by the edges of P.

Figure 2: Illustration of the upper layer of G~cand (left), the planar skeleton G(P) (middle), and the candidate subgraph G~cand (right). Red squares and blue disks denote vertices in RB^ and vertices in BR^, respectively. In the upper layer of G~cand, the segment endpoints represent skeleton vertices, while intermediate points on the segments represent interior vertices. The green vertices in G(P) constitute the balanced separator of G(P), and those in G~cand form the prism separator S~.

We apply the planar separator theorem to G(P) to induce a separation of G~cand. Let X,Y,S be a partition of V(P) obtained by applying Theorem 14 to G(P), where S is a balanced separator of G(P). Let X^,Y^ and S^ denote the mirrored sets of X,Y and S, respectively, in the lower layer. We make the following observation regarding the sizes of these sets.

Observation 15.

Let V^(P) be the mirrored set of V(P) in the lower layer. Then, |XX^|,|YY^|2/3(|V(P)|+|V^(P)|), and |SS^|22(|V(P)|+|V^(P)|)1/2.

Using the partition (X,Y,S) of V(P), we partition the vertex set of G~cand into X~,Y~ and S~ with XX~,YY~ and SS~ as follows. For this, it suffices to partition the vertices of G~cand contained in the open segments of P. We call such vertices interior vertices. For each interior vertex v of G~cand, we assign it to the set based on the endpoints of the segment of P containing v. Specifically, if the segment of P containing v has an endpoint in X (in Y), we put v and v^ to X~ (to Y~). Otherwise, both endpoints of the segment are contained in S. In this case, we put v and v^ to S~. Here, notice that no segment of P has endpoints both in X and Y since S separates X and Y.

Lemma 16.

No edge in E~cand connects a vertex in X~ to a vertex in Y~.

Proof.

We prove this by examining the three types of edges e in E~cand. In the first case that e belongs to the upper layer, every eligible edge in the upper layer is contained in a segment s in P. If an endpoint of s is contained in X (or in Y), both endpoints of e are in X~ (or Y~), or one belongs to X~ (or Y~) and the other to S~. If both endpoints of s are contained in S, both endpoints of e are contained in S~. Thus in any case, the lemma holds.

In the other cases, the lemma holds due to the symmetric construction of E~cand following Lemma 12. Specifically, a vertex vBR and its copy v^ belong to the same set among X~,Y~ and S~. Therefore, in the case that e belongs to the lower layer, or e is a link edge, the lemma holds immediately. We refer to S~ as the prism separator of G~cand. We classify each vertex of the prism separator S~ into two types. We call a vertex of SS^ a skeleton vertex of S~ and a vertex of S~(SS^) an interior vertex of S~. See Figure 2.

Divide-and-Conquer Algorithm.

We now present a detailed divide-and-conquer algorithm for computing a minimum-cost perfect matching of G~cand. The algorithm first computes the partition (X~,Y~,S~) of the vertex set in linear time and recursively finds minimum-cost perfect matchings for the subgraphs induced by X~ and Y~. Note that the subgraph induced by X~ (and Y~) has a perfect matching due to its prism structure. Since no edges connect X~ and Y~, the union of their optimal matchings is a minimum-cost perfect matching for the subgraph induced by X~Y~. To obtain the optimal matching for the entire graph, one might consider extending this matching by adding all vertices of the separator S~ one by one using the following lemma. Here, a minimum-cost maximum-cardinality matching is defined as the matching with the minimum total cost among all matchings of maximum possible cardinality.

Lemma 17 ([17]).

Let H be a graph with nH vertices and mH edges associated with edge costs, and let v be a vertex of H. Given a minimum-cost maximum-cardinality matching of H{v}, a minimum-cost maximum-cardinality matching of H can be computed in O(mHlognH) time.

However, a naive application of Lemma 17 to all vertices in S~ would take O(|S~|nlogn) time, which is inefficient since |S~| can be as large as Θ(n). To address this, we observe that S~ consists of O(n) skeleton vertices and a potentially large number of interior vertices. Our strategy is to handle the skeleton vertices using Lemma 17, while the interior vertices are handled efficiently by exploiting their 1D nature and pre-computed optimal matchings.

The algorithm processes the subgraph G~ of G~cand in each recursive step as follows. Using the subgraph of G(P) induced by V(P)V(G~), we compute a balanced separator S and a partition (X~,Y~,S~) of G~. As mentioned earlier, we compute a minimum-cost perfect matching of X~Y~ in linear time. Now consider the internal vertices of S~. We decompose them into subsets such that each subset consists of the internal vertices lying on the same segment of P. For each subset W, we retrieve its optimal matching of WW^ using the pre-computed 1D matching from Section 4.1, where W^ is the copy of W in the lower layer. An optimal matching of WW^ can be obtained from a minimum-cost matching of W with penalties, which can be found in near-linear time. Since no edge of G~ connects two vertices from different subsets, the union M of the all these matchings is a minimum-cost maximum-cardinality matching of X~Y~{internal vertices of S~}. Finally, we reintroduce the O(n) skeleton vertices of S~ into the matching using Lemma 17, where n=|V(G~)V(P)|. We iteratively apply Lemma 17 for each skeleton vertex of S~ to update M~. In this way, each recursion step takes O~(|V(G~)|n) time in total.

In the base case that the number of (skeleton) vertices of V(P)V(G~) is O(1), we compute a minimum-cost maximum-cardinality matching of the (non-skeleton) vertices of V(G~)V(P) using their 1D nature in O~(|V(G~)|) time. Then we reintroduce the O(1) skeleton vertices with Lemma 17. This takes O~(|V(G~)|) time in total.

Complexity Analysis.

To bound the overall time complexity, let η=O(n) be the number of vertices of V(P). At depth d of the recursion, let Hd,1,Hd,2, denote the disjoint subgraphs, where each Hd,i contains md,i edges and ηd,i skeleton vertices along with their copies. By Theorem 14 and Observation 15, the number of skeleton vertices shrinks by a factor of at least 2/3 per level, yielding ηd,i(2/3)dη. Furthermore, since the subgraphs at any depth are edge-disjoint, imd,i|E~cand|=O(n).

In the conquer phase, merging the sub-solutions for Hd,i requires O(ηd,i) augmentations. Since each augmentation takes O(md,ilogn) time by Lemma 17, the total time for depth d is:

iO(ηd,imd,ilogn)O((2/3)dηlogn)imd,iO((2/3)dn1.5logn).

Because 2/3<1, the time for each level decreases geometrically. The total running time of the divide-and-conquer algorithm is thus dominated by the root level, which is O(n1.5logn).

Overall complexity and proof of Theorem 1.

We compute an approximate matching and its dual weights for the scaled graph with a suitable scaling factor in O~(n1.5logΔ) time. The candidate graph can be computed in O(nlogn) time, and the divide-and-conquer algorithm takes O(n1.5logn) time. Therefore, the total time complexity of our algorithm remains O~(n1.5logΔ).

5 Conclusion

In this paper, we presented an exact O~(n1.5logΔ)-time algorithm for the many-to-many matching problem on planar point sets with integer coordinates. Our approach relies on a reduction to perfect matching on a prism graph, a scaling framework, and a planar separator-based divide-and-conquer strategy.

Extending this framework to non-integer coordinates or higher dimensions (d3) poses fundamental challenges. In particular, our framework relies on Lemma 11. In continuous domains, the additive error in the inequality in Lemma 11 is no longer bounded, and thus it seems hard to apply our framework to continuous domains. For higher dimensions, geometric graphs lack planarity, preventing the use of a balanced vertex separator of O(n) size. Moreover, in higher dimensions, maintaining the dynamic weighted nearest-neighbor data structures required in the scaling step becomes substantially more difficult. We leave the problem of designing a subquadratic-time algorithm for many-to-many matching on higher dimensions or continuous domains as an open problem.

References

  • [1] Helmut Alt, Kurt Mehlhorn, Hubert Wagener, and Emo Welzl. Congruence, similarity, and symmetries of geometric objects. Discrete & Computational Geometry, 3(3):237–256, 1988. doi:10.1007/BF02187910.
  • [2] Shinwoo An, Eunjin Oh, and Jie Xue. Approximation algorithms for the geometric multimatching problem. In Proceedings of the 57th Annual ACM Symposium on Theory of Computing (STOC 2025), pages 2317–2328, 2025. doi:10.1145/3717823.3718147.
  • [3] Sayan Bandyapadhyay, Anil Maheshwari, and Michiel Smid. Exact and approximation algorithms for many-to-many point matching in the plane. In Proceedings on the 32nd International Symposium on Algorithms and Computation (ISAAC 2021), volume 212 of LIPIcs, pages 44:1–44:14, 2021. doi:10.4230/LIPIcs.ISAAC.2021.44.
  • [4] Sayan Bandyapadhyay and Jie Xue. An O(nlogn)-time approximation scheme for geometric many-to-many matching. In Proceedings of the 40th International Symposium on Computational Geometry (SoCG 2024), pages 12:1–12:15, 2024. doi:10.4230/LIPIcs.SOCG.2024.12.
  • [5] Justin Colannino, Mirela Damian, Ferran Hurtado, Stefan Langerman, Henk Meijer, Suneeta Ramaswami, Diane L. Souvaine, and Godfried Toussaint. Efficient many-to-many point matching in one dimension. Graphs and Combinatorics, 23:169–178, 2007. doi:10.1007/S00373-007-0714-3.
  • [6] Justin Colannino and Godfried Toussaint. A faster algorithm for computing the link distance between two point sets on the real line. Technical report, Technical Report SOCS-TR-2005.5, McGill University, School of Computer Science, 2005.
  • [7] Thomas Eiter and Heikki Mannila. Distance measures for point sets and their computation. Acta Informatica, 34(2):109–133, 1997. doi:10.1007/S002360050075.
  • [8] Michael L. Fredman and Robert Endre Tarjan. Fibonacci heaps and their uses in improved network optimization algorithms. Journal of the ACM, 34(3):596–615, 1987. doi:10.1145/28869.28874.
  • [9] Harold N. Gabow. A data structure for nearest common ancestors with linking. ACM Trans. Algorithms, 13(4):45:1–45:28, 2017. doi:10.1145/3108240.
  • [10] Harold N. Gabow and Robert Endre Tarjan. Faster scaling algorithms for network problems. SIAM Journal on Computing, 18(5):1013–1036, 1989. doi:10.1137/0218069.
  • [11] Akshaykumar Gattani, Sharath Raghvendra, and Pouyan Shirzadian. A robust exact algorithm for the Euclidean bipartite matching problem. Proceedings of the 37th Annual Conference on Neural Information Processing Systems (NeurIPS 2023), 36:51706–51718, 2023.
  • [12] Haim Kaplan, Wolfgang Mulzer, Liam Roditty, Paul Seiferth, and Micha Sharir. Dynamic planar voronoi diagrams for general distance functions and their algorithmic applications. Discrete & Computational Geometry, 64(3):838–904, 2020. doi:10.1007/S00454-020-00243-7.
  • [13] Judith Keijsper and Rudi Pendavingh. An efficient algorithm for minimum-weight bibranching. Journal of Combinatorics Theory, Series B, 73(2):130–145, 1998. doi:10.1006/JCTB.1998.1817.
  • [14] David G. Kirkpatrick. Optimal search in planar subdivisions. SIAM Journal on Computing, 12(1):28–35, 1983. doi:10.1137/0212002.
  • [15] Harold W Kuhn. The hungarian method for the assignment problem. Naval research logistics quarterly, 2(1-2):83–97, 1955.
  • [16] Richard J Lipton and Robert Endre Tarjan. A separator theorem for planar graphs. SIAM Journal on Applied Mathematics, 36(2):177–189, 1979.
  • [17] Richard J. Lipton and Robert Endre Tarjan. Applications of a planar separator theorem. SIAM Journal on Computing, 9(3):615–627, 1980. doi:10.1137/0209046.
  • [18] Qin Lv, Moses Charikar, and Kai Li. Image similarity search with compact data structures. In Proceedings of the 13th ACM International Conference on Information and Knowledge Management (CIKM 2004), pages 208–217, 2004. doi:10.1145/1031171.1031213.
  • [19] David Mumford. Mathematical theories of shape: Do they model perception? In Geometric methods in computer vision, volume 1570, pages 2–10, 1991.
  • [20] R. Sharathkumar. A sub-quadratic algorithm for bipartite matching of planar points with bounded integer coordinates. In Proceedings of the 29th Annual Symposium on Computational Geometry (SoCG 2013), pages 9–16, 2013. doi:10.1145/2462356.2480283.
  • [21] R. Sharathkumar and Pankaj K. Agarwal. Algorithms for the transportation problem in geometric settings. In Proceedings of the 23rd Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2012), pages 306–317, 2012. doi:10.1137/1.9781611973099.29.
  • [22] Ranjith Unnikrishnan and Martial Hebert. Measures of similarity. In Proceedings of the 7th IEEE Workshops on Applications of Computer Vision (WACV/MOTION 2005), volume 1, pages 394–394. IEEE, 2005.
  • [23] Remco C. Veltkamp and Michiel Hagedoorn. State of the art in shape matching. Principles of visual information retrieval, pages 87–119, 2001. doi:10.1007/978-1-4471-3702-3_4.