Là đầu vào, tôi có hai bộ điểm trong R N , thường là N lớn, ví dụ N = 40. Giả sử cả hai bộ có m phần tử:
S = s 1 ... s m
T = t 1 ... t m
Về mặt ngữ nghĩa, cả hai bộ đều bằng nhau, nhưng do nhiễu (dưới bất kỳ hình thức nào) trên các điểm R ^ N, các phần tử giống nhau về mặt ngữ nghĩa vẫn có khoảng cách lớn hơn 0.
Điều tôi muốn tìm là m tuples (s i , t j ) sao cho tổng khoảng cách (s i , t j ) được thu nhỏ và sao cho s k và t k xảy ra chính xác một lần trong tập các tuple cho k = 1 ... M. Về cơ bản (i, j) phải được chọn làm tháp trên bàn cờ không thể đánh nhau trong khi thu nhỏ khoảng cách tổng.
Nói cách khác, tôi muốn tìm một bản đồ một-một giữa S và T, 'là một loại bản đồ nhận dạng, nhưng mạnh đến nhiễu'. Chúng tôi giả định rằng thước đo khoảng cách là một dấu hiệu tốt về mức độ các yếu tố tương tự.
Về cơ bản tôi cần tìm một hoán vị 1 ... N, và do đó tôi nghĩ vấn đề này là NP-hard hoặc NP-perfect, vì nó 'cảm thấy' khá giống với TSP; tuy nhiên tôi chưa thể viết lại vấn đề TSP thành một tập hợp con của vấn đề của tôi ở đây.
Là vấn đề này thực tế có thể giải quyết cho N lớn? Có một tên cho vấn đề này? Điều gì sẽ là một giải pháp khả thi? Có tiêu chí nào khác có thể tốt hơn khoảng cách tổng hợp không?
Tôi nghĩ về một cách tiếp cận tham lam, hãy để D là một ma trận của các khoảng cách, 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.
Điều này không dẫn đến giải pháp tối ưu, nhưng tìm ra giải pháp. Đây sẽ là đặt cược tốt nhất của tôi? Tôi nên sử dụng mô phỏng ủ, hoặc nó là quá mức cần thiết?
PS: theo quan điểm của tôi, đây chỉ là một vấn đề nhỏ trong một vấn đề ML lớn hơn, tuy nhiên, tôi rất quan tâm đến nền tảng CS của nó.