距离值数组匹配问题:寻求最优匹配算法方案
数组距离值的最优匹配问题
问题背景
现有一组距离值source数组(示例:[1, 2, 1, 5, 2]),需与另一组target数组进行匹配,匹配需满足以下核心条件:
- 距离值可累加匹配
- 数组间可能存在条目缺失或额外条目
- 距离值允许成比例差异
匹配逻辑说明
匹配逻辑可通过图示直观理解:
- 第一类图示:第一行是source数组,第二行是target数组的某一匹配位置(黑色代表命中,黄色代表缺失,蓝色代表额外)
- 算法层面图示:绿色区块为匹配区域,宽度>1表示source存在缺失条目,高度>1表示target存在额外条目,区块数+1即为命中数
匹配示例结果
不同target数组的匹配结果如下:
- target数组
[2, 1, 5, 2]:5次命中,1条缺失 - target数组
[3, 5, 1, 1]:两种匹配结果,分别为4次命中、2条缺失、1条额外,以及3次命中、3条缺失、2条额外 - target数组
[2, 2, 6, 1, 1]:两种匹配结果,分别为3次命中、3条缺失、3条额外,以及4次命中、2条缺失、2条额外 - 比例缩放后的数组(如
[4, 2, 10, 4])与[2, 1, 5, 2]的匹配结果完全一致
核心需求
需要获取每个target数组的最优匹配结果,优先级为:命中数最多 > 缺失/额外条目最少。目前仅尝试了朴素方法(将source任意两行与target任意两行对齐),希望找到更优解决方案,同时方案需能容忍测量误差与不准确性。
内容的提问来源于stack exchange,提问作者Wolfgang Kluge
相关产品推荐
相关产品推荐

