Me gustaría encontrar las correspondencias óptimas entre dos sistemas de objetos basados en las distancias entre los objetos DENTRO de los dos sistemas. Así, la entrada del algoritmo serían dos matrices de distancia cuadradas que expresen las distancias de cada objeto de un sistema a cada uno de los otros objetos dentro del mismo sistema. Por ejemplo, si un sistema tiene objetos {Q, R, S} y el otro tiene objetos {A, B, C} entonces las dos matrices de distancia podrían tener el siguiente aspecto
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
lo que significa, por ejemplo, que la distancia del objeto R a S es 0,7. Cada objeto tiene una distancia de 0 a sí mismo, pero las distancias no tienen por qué satisfacer los supuestos de un espacio métrico. Sin embargo, se puede suponer que cada una de las matrices de distancia es simétrica, como en este ejemplo. El resultado del algoritmo sería un conjunto de correspondencias entre los objetos de los sistemas que minimiza la suma de las diferencias absolutas entre las distancias de los objetos correspondientes bajo la restricción de que ningún objeto de un sistema se corresponde con más de un objeto del otro sistema . En el ejemplo anterior, las correspondencias óptimas serían R<->A, Q<->C, y S<->B, lo que da como resultado una suma de disimilitudes entre distancias de:
|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
que es menor que cualquier otra forma consistente (no se permiten correspondencias de 2 a 1) de colocar los objetos en correspondencia. La salida, entonces, para el algoritmo, podría ser así:
Q R S
A 0 1 0
B 0 0 1
C 1 0 0
donde 1 significa que los objetos están colocados en correspondencias. Ya he desarrollado ( http://cognitrn.psych.indiana.edu/rgoldsto/pdfs/relalign.pdf ) un algoritmo iterativo de satisfacción de restricciones de redes neuronales para este problema, pero es demasiado lento y computacionalmente ineficiente para sistemas que contienen más de 20 o más objetos porque tiene una complejidad O(n^4). Parece que debería haber una solución algebraica lineal rápida para este problema. Hay un par de soluciones posiblemente relacionadas que no consigo que estén lo suficientemente relacionadas para mis necesidades. Por ejemplo, el "problema de la asignación" tiene una solución O(n^3) en la forma del "algoritmo húngaro", pero éste asume costes fijos para cada asignación, mientras que en el problema anterior el coste asociado a la asignación de A a Q, por ejemplo, depende de todas las demás asignaciones que se realicen porque estas otras asignaciones cambiarán las distancias entre los sistemas que se comparan. El problema también parece ser algo que podría manejarse con el Despliegue Multidimensional o el Análisis de Procrustes Generalizado, pero la diferencia clave en el problema actual es que no tenemos etiquetas que nos digan qué objetos de un sistema son los mismos que los del otro sistema - ¡eso es lo que estamos tratando de averiguar en primer lugar! Gracias por cualquier pista.