在这里寻求一些建议。有没有人知道一个好的地方开始研究在n维空间中的匹配算法。例如,任何约会网站都必须使用某种算法来匹配两个人。我读到的是,我们可以用一个点系统来映射一个人在n维数组中的特征。一旦我们拥有了一个人的所有(可用)特征,我们就可以在n维数组中的一个点上表示这个人。然后,匹配2个人就和在这个n维数组中找到两点之间的最短距离一样简单。有没有人对这种算法的实现有任何参考?用什么语言写这些东西最好?
最佳答案
如果你想为一个人找到最接近的匹配,宾利和沙莫斯在1976年第八届计算机理论年度学术研讨会上发表了一个多维分治方法:在o(n logn)时间内分治:Divide-and-conquer in multidimensional space。如果你拿不到副本,那么this也会有帮助。
然而,对于您的示例应用程序来说,实际找到最近的邻居似乎不是最大的问题—更棘手的是将输入映射到维度。例如,如果一个维度是“喜欢动物”,那么你会给那些喜欢猫狗但不能骑马的人什么价值?喜欢马、认为狗没问题、被猫惹恼、对金鱼矛盾的人呢?