哪种方法适合于基于接送地点的集群客户

时间:2019-07-02 01:52:13

标签: algorithm data-structures

有些人想从某个接送地点旅行至某个接送地点。所有提货地点均在城市A中,所有提货地点均在城市B中。其中A!=B。如何对人员进行聚类,以使开车到所有顾客提车和下车的总距离最小化。由于大多数汽车可容纳4人,因此需要充分利用每辆汽车的容量。每个组将分配给可以选择拒绝行程的汽车驾驶员,在这种情况下,它将被传递给下一个驾驶员。

1 个答案:

答案 0 :(得分:2)

有关此问题的答案,请参见:K-means algorithm variation with equal cluster size,以了解一种用于聚类为大小相等的簇的算法(在您的情况下为4)。

要处理“不同的城市”约束,请将每个客户定义为由他们在城市A的接送点和城市B的下车点组成的点元组,并将两个客户之间的距离定义为距离之和他们的接送地点之间的距离以及他们的下车地点之间的距离。元组列表的平均值将是由拾取位置的平均值和下车位置的平均值组成的元组。定义这两个函数应该足以实现K-means。

如果在一个城市中旅行给定距离所需的时间平均比在另一个城市中花费的时间长,那么您可能希望对两个城市的距离进行加权,因为那里的交通状况较差,或者您将在高峰时间或某个时间到达一个城市。