I would like to find the optimal correspondences between two systems of objects based on the distances between objects WITHIN the two systems. So, the input to the algorithm would be two square distance matrices which express the distances of every object from one system to every other object within the same system. For example, if one system has objects {Q, R, S} and the other has objects {A, B, C} then the two distance matrices might look like:
Q R S
Q 0 .5 .2
R .5 0 .7
S .2 .7 0
A B C
A 0 .8 .4
B .8 0 .3
C .4 .3 0
meaning, for example, that the distance of object R to S is 0.7. Every object has a distance of 0 to itself, but the distances need not satisfy the assumptions of a metric space. However, each of the distance matrices can be assumed to be symmetric as in this example. The output of the algorithm would be a set of correspondences between objects in the systems that minimizes the sum of the absolute differences between the distances of corresponding objects under the constraint that no object in one system corresponds to more than one object in the other system. In the example above, the optimal correspondences would be R<->A, Q<->C, and S<->B, which results in a sum of dissimilarities between distances of:
|0.4-0.5| + |0.8-0.7| for the distance relations that R and A enter into. E.g. dist(R,Q)=.5 and dist(A,C)=.4
+
|0.2-0.3| + |0.5-0.4| for the distance relations that Q and C enter into.
+
|0.3-0.2| + |0.7-0.8| for the distance relations that S and B enter into.
=
0.6
which is lower than any other consistent (no 2-to-1 correspondences allowed) way of placing the objects in correspondence. The output, then, for the algorithm, might look like:
Q R S
A 0 1 0
B 0 0 1
C 1 0 0
where 1 means that the objects are placed into correspondences. I have already developed (http://cognitrn.psych.indiana.edu/rgoldsto/pdfs/relalign.pdf) an iterative neural network constraint satisfaction algorithm for this problem, but it is far too slow and computationally inefficient for systems that contain more than 20 or so objects because it has O(n^4) complexity. It feels like there should be a fast linear algebraic solution to this problem. There are a couple of possibly related solutions that I can’t seem to get to be related enough for my needs. For example, the “assignment problem” has a O(n^3) solution in the form of the “Hungarian algorithm” but this assumes fixed costs for each assignment, whereas in the above problem the cost associated with assigning A to Q, for example, depends on all of the other assignments being made because these other assignments will change which distances between systems are being compared. The problem also seems like something that might be handled with Multidimensional Unfolding or Generalized Procrustes Analysis, but the key difference in the current problem is that we don’t have labels that tell us which objects from one system are the same as which objects in the other system — that’s what we’re trying to figure out in the first place! Thanks for any leads.