改进对索引“映射”的优化

计算科学 优化 算法 机器学习 复杂 组合学
2021-12-23 06:57:39

我有两张表可供使用,一张是工作数据集,一张是参考数据集。每个数据集都有两列,假设这些是字段 A 和 B。我想将参考数据集中的行与工作数据集中“最近”的行相关联。工作数据集中的行比参考数据集中的行多,我会将参考数据集中的所有行与工作数据集中的某些行匹配。

我可以将参考和工作数据集中两行之间的距离定义为:

di,j=(Aw(i)Ar(j))2+(Bw(i)Br(j))2

Aw,Ar,Bw,Br工作和参考数据集中的 A 和 B 列有明显的符号。

换句话说,我想最小化工作数据集中行的所有排列(与参考数据集中的行数相同)参考数据集中的一行与工作数据集中的一行之间的距离总和。

除了对所有排列进行强力检查外,我不知道如何进行。

这个问题是组合的。随机方法呢:遗传算法,群...

你能暗示一些开始的想法吗?

谢谢!

1个回答

如果我对问题的解释正确,那么任务就是分配给每个j在列索引集中J距离矩阵的一个索引xj从行索引集I 使得xj都是不同的jd(xj,j)是最小的。

这可以作为许多约束求解器的组合约束满足问题提出。参见例如
http://en.wikipedia.org/wiki/Constraint_programming
http://argo.matf.bg.ac.rs/publications/2010/alldiff-smt2010.pdf
http://www-circa.mcs。 st-and.ac.uk/Preprints/alldiff-paper.pdf

问题是否易于处理取决于从数据集导出的距离矩阵的结构和大小。