【发布时间】:2023-03-18 15:44:02
【问题描述】:
我有以下优化问题,我可以通过“蛮力”解决,但我想知道是否有人已经实现了一个求解器,我可以用它来更快、更优雅地完成它。
我有两个不相交的整数列表。这些实际上是独一无二的,所以我可以说这是两组。一个是短的 (s) 约 S=90000 元素,另一个是长 (l) 约 L=2.5M 元素。我需要的是从l 中提取长度正好为S 的子集l2,以便s 和l2 的元素之间的总体距离在l 长度为@987654332 的所有子集中最小@。 s 和 l 的元素之间的成对距离只是它们差异的绝对值。
因此,如果s 和l 不是不相交的,并且l 是s 的超集,则生成的l2 将与s 完全相同。
由于数组很长,通过测试l 的各种子集来进行暴力破解是不切实际的。
是否有某种现有的优化库或其他包可以用来解决这个问题?
顺便说一句,测量两组之间的距离可能有不同的方法,我并不关心它是哪一种,只要它会为上述极端超集示例给出 0。
【问题讨论】:
-
这感觉有点类似于Boyer-Moore 字符串搜索的作用。不一样,但有共鸣。
标签: python algorithm optimization subset distance