如何根据相似系数优化元素的顺序?

时间:2019-03-25 23:18:37

标签: algorithm grouping heuristics

我必须基于彼此之间的相似性(由系数表示)对元素序列进行重新排序,以使每个元素与其每个相邻元素最相似。我必须找到一种算法而不是代码。

示例包含10个元素,并为以下每对元素计算出相似系数:

enter image description here

可以在以下位置找到excel文件:https://1drv.ms/x/s!AtmZN4-kjgrPms99fqgaDwAS_F4uYw

我尝试过的:

  1. 找到系数最高的一对。在示例中:T3(左端)和T5(右端)为0.98
  2. 在左端和其余元素之间找到最大系数
  3. 在右端和其余元素之间找到最大系数
  4. 取2到3之间的最大值。
  5. 如果最大值为2,则在左侧添加与左端的最大系数相对应的元素。否则,在右边添加与右端最大系数相对应的元素
  6. 重复点2-6,直到没有元素。

这是结果:

enter image description here

结果还不错。我看到的缺点之一是,以与0.99> 0.01相同的方式考虑0.99> 0.98。

我考虑过的第二个选择是最大化所有邻居之间的系数之和,但真的不知道从哪里开始。尤其是当元素明显超过10个时。而且,这可能会导致更“平坦”的顺序,尽管总体上具有更好的相似性,但某些极端相似的元素却可以彼此远离放置。

对于这类问题真的很陌生,我很确定这对于现有解决方案来说应该是一个相当标准的问题。您能指出那些吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

经过研究,我发现我的问题可以被视为“旅行商问题”(TSP)。更多内容:https://en.wikipedia.org/wiki/Travelling_salesman_problem

要应用它,您可以在示例中将“元素”视为TSP中的“城市”,并将(1-相似系数)视为“距离”。