让我们假设我们定期收到一组数字。这些数字是固定的间隔,比如一到一千。如果我在一段时间内收集这些数字,我该如何
例如,{790, 111, 432}
,{123, 121}
,{770, 123}
会导致
{790, 111, 432}
和{123, 770, 123}
{790, 111, 432, 770, 123, 121}
{770, 123, 121, 790, 111, 432}
)而{790, 111, 432}
,{123, 121}
,{770, 123}
,{770, 439, 98}
,{111, 432, 190}
会导致
{790, 111, 432, 190}
和{123, 770, 123, 439, 98}
{790, 111, 432, 190, 770, 439, 98, 123, 121}
{790, 111, 432, 190, 770, 123, 121, 439, 98}
{123, 770, 123, 439, 98, 790, 111, 432, 190}
...)第一个可能很容易。我试图创建一个距离矩阵,并从距离矩阵中绘制信息。我尝试的另一个想法是加载到HDFS,并运行Mahout谱聚类,但成效有限。我觉得必须使用一些聚类算法。任何帮助都会很棒。
第二个是一个更复杂的问题,我认为简单的改组数字不会起作用,因为存在概率因素。
用于解决这两个问题的正确工具/算法是什么?
答案 0 :(得分:2)
将其翻译成图论。制作有向加权图,其中顶点是数字,每个顶点连接到每个其他顶点,A - > B边上的权重是B在集合中跟随A的次数。现在的问题是在这个图中找到最高加权哈密顿路径,它基本上是一个非对称Travelling salesman problem。请注意,在TSP中,通常会找到最短路径而不是最长路径,但您可以通过否定所有权重来克服此问题,但我不确定负权重是否适用于所有算法。
我建议使用针对增量数据优化的ant colony optimization算法,但我不是图论专家。