Let G = (V,E) be a weighted undirected graph with vertex set V , edge set E and a weight function d. Thus, d(u, v) denotes the weight of any edge (u, v) ∈ E. A matching M ⊆ E is a collection of edges such that every node in V is incident to at most one edge in M . The matching is perfect if every node in V is incident to exactly one edge in M . The cost of the matching is given by ∑ (u,v)∈M d(u, v). The Euclidean Bipartite Matching Problem (EBM) is defined as follows: Given a set R of n red points and another set B of n blue points in the plane, let G = (R ⋃ B,E) be the complete weighted bipartite graph with the property that there exists an edge between two points if and only if they are of different colors. Moreover, for each u ∈ R and v ∈ B, the weight d(u, v) of the edge (u, v) is given by the euclidean distance between the points u and v. The objective is to find a perfect matching in this graph whose cost is minimum. The Euclidean Non-bipartite Matching Problem (ENM) can be defined similarly. Let V be a set of 2n points in the plane. Consider the complete weighted graph G = (V,E) where the weight d(u, v) of an edge is given by the euclidean distance between the points u and v. Compute a perfect matching in this graph with minimum cost.