K-Means 根据驾驶时间聚类美国地址列表

K-Means Clustering a list of US addresses based on drive time

我有 8 名旅行顾问需要访问美国大陆的 155 个团队。有没有办法使用 k-means 聚类根据驾驶时间找到最佳的 8 个区域?我看到已经为其他数据集实施了一些方法,但它们不是基于驾驶时间。我需要如何操作我的数据集才能使其可用?

提前感谢您的任何反馈。我绝不是一个伟大的编码员,我在大学时只参加了一些入门课程。

我认为您正在寻找 "path planning" 而不是集群。 The traveling salesman problem 想到

如果您想使用聚类来查找各个区域,您应该找到每个位置相对于某个全局框架的坐标。一个例子是使用纬度和经度坐标。创建一个数组 X 那就是 155x2 其中每一行都是一个包含列 lat,long 的目的地然后简单地 运行 matlab's kmeans

[idx,C] = kmeans(X,8);

应该能很好地工作。这应该足以让你开始。

此方法的一个问题是它将按地理位置对网站进行分组。这并不总是与最短旅行时间相同。例如,

distance from (site A, site B) = 0.5 miles
distance from (site A, site C) = 2.0 miles

但从 A-B 出发需要绕过一条河,实际行驶距离为 10 英里,而 A-C 实际上是 2.5 英里,显然 A-C 是更好的选择,但使用单靠全局位置不会考虑到这一点

这看起来更像是一个整数优化问题。它与集群无关。

让我想起 Murat Köksalan 和 Sakine Batun 的案例研究 "Assigning Regions to Sales Representatives [SRs] at Pfizer Turkey",INFORMS Transactions on Education 9(2),第 70-71 页,2009 年 1 月。http://pubsonline.informs.org/doi/abs/10.1287/ited.1090.0021ca

我最近在MOOC中解决了一个简化版的问题。

"Since the SRs have to visit the MDs in their offices, it is important to minimize the total distance traveled by the SRs. This is the objective function. Each SR has an office in a certain brick, called their "center brick”。我们将计算 SR 行进的总距离,作为 SR 领土内中心 brick 与所有其他砖块之间距离的总和。”

您可以针对某些条件对其进行优化。我不能在这里提供更多细节,因为它非常复杂。