算法-找到移动距离最小的点



该算法的目的是找到最优相遇点,使所有人走过的距离最小。

详细说明-

考虑下面的线,每个人在不同的点到第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,这当然是较低的距离,因此是最优解

最新更新