[Math] Distance between two metric spaces

metric-spacesmg.metric-geometry

I am given two metric spaces as two arrays of the same size. Each one is supposed to represent distance between vertices on a mesh in R^3. The meshes are assumed to have the same number of vertices and the correspondence betweeen the vertices is also given. Is there a way to find the a meaningful distance between these two matrices (other than the trivial ones)? I would like the distance be invariant under scaling : in other words if the first mesh's is just a scaling of the other mesh then I want the distance between the two corresponding metric spaces to be zero (even though the distances in the matrices have also been scaled).

I know that Hausdorff distance measures the distance between two sets in the same metric space but note here that my question is a little different so that notion is not exactly useful.

Thanks.

Best Answer

Firstly, if you just have pairwise distances rather than coordinates of points in $\mathbb{R}^3$, then you can attempt to embed the mesh into $\mathbb{R}^3$ using Isomap. Under certain conditions, such as if you have a triangulated convex polyhedron, the isometric embedding into $\mathbb{R}^3$ is unique up to isometries of $\mathbb{R}^3$.

After you embed your meshes $X, Y$ as finite labelled subsets of $\mathbb{R}^3$, the problem of finding the optimal scaling and isometry which minimises the error $\sum_i \lVert X_i - Y_i \rVert_2^2$ is called Procrustes analysis. After applying this isometry, you get a canonical (root-mean-square) distance between the sets $X, Y$.

The way that Procrustes analysis usually proceeds is to subtract the mean, then scale to have unit variance, and then use singular value decomposition to find the optimal orthogonal matrix transforming $X$ to match $Y$ as closely as possible. The last part is called the Kabsch algorithm.

Related Question