入力として、私はR Nに2セットのポイントを持っています。通常、大きなNの場合、たとえばN = 40です。両方のセットにm個の要素があるとします。
S = s 1 ... s m
T = t 1 ... t m
意味的には両方のセットは等しいですが、R ^ Nポイントの(あらゆる種類の)ノイズにより、意味的に同じであるはずの要素の距離は0よりも大きくなります。
私が見つけたいのはmのタプル(s i、t j)で、距離の合計(s i、t j)が最小化され、k = 1のタプルのセットでs kとt kが1回だけ発生します。 ... m 基本的に(i、j)は、合計距離を最小限に抑えながら、互いにぶつからないチェス盤の塔として選択する必要があります。
言い換えれば、SとTの間の「アイデンティティマップのようなものですが、ノイズに対してロバスト」な1対1のマップを見つけたいのです。距離の測定は、類似した要素の類似性を示す良い指標であると想定しています。
基本的に私は1 ... Nの順列を見つける必要があります。したがって、この問題はTSPに非常に似ているため、NP困難またはNP完全のどちらかであると思います。ただし、TSPの問題をここでの問題のサブセットに書き換えることはできません。
この問題は、大きなNに対して現実的に解決できますか?この問題に名前はありますか?実現可能な解決策は何でしょうか?合計距離よりも優れている可能性のある別の基準はありますか?
私は貪欲なアプローチを考えました、Dを距離の行列としましょう、d ij = distance(s i、t j)。
T = {}
while D is not empty:
(i,j) = argmin-(i,j) dij
append (i,j) to T
set row i and column j to infinity.
これは最適な解決策にはなりませんが、解決策を見つけます。これが私の最善の策でしょうか?シミュレーテッドアニーリングを使用する必要がありますか、それとも過剰ですか?
PS:私の観点からは、これは大きなMLの問題の小さな問題ですが、CSの背景に非常に興味があります。