该算法的目的是找到最优相遇点,使所有人走过的距离最小。
详细说明-
考虑下面的线,每个人在不同的点到第0个位置的x轴(想象x-y轴)。每个点表示他到第0个位置的距离。
|
---30-------15-----10--------5----0----6-----------20-----------40-----50--
|
现在找到一个算法,找到每个人必须旅行的点,并聚集在一起,使旅行的总距离最小。
注意-我想找到中位数/平均值,并不总是工作。选择离第0个位置最近的点怎么样?也不总是这样。
有什么想法吗?
假设所有位置都在一个维度上(即只沿一个轴),最优解是所有位置的中位数。
中位数是这样定义的:一半的值大于中位数,一半的值小于中位数。如果样本数据中的元素按一定顺序递增,则中位数和算术平均值相等。例如,考虑数据样本{1,2,3,4}。平均值是2.5,中位数也是。然而,当我们考虑一个不能按算术方式增加的样本时,例如{1,2,4,8,16}},中位数和算术平均值可能会有显著差异。在这种情况下,算术平均值是6.2,中位数是4。一般来说,平均值可以与样本中的大多数值有很大的差异,并且可以比它们中的大多数值大或小。来源:https://en.wikipedia.org/wiki/Arithmetic_mean
在上面的例子中,
-
与平均值的总距离(6.2)作为解= 23.2中位数值(4)作为解的总距离= 21,这当然是较低的距离,因此是最优解