基于纬度/经度的物流路径和离散算法

时间:2018-05-16 09:21:55

标签: algorithm cluster-analysis graph-algorithm hierarchical-clustering unsupervised-learning

所以,我正在尝试解决这个sku隔离和路由问题以便交付。 以下是这种情况:

有一个区域中心或交付起点,

输入:

  1. 客户的地理位置 - A(纬度,经度)对。
  2. 每位客户的输入订单数量。
  3. 问题:

    1. 我想为一个人提供不超过50个地点的路线(loc1 - > loc2 - > loc7 - > ... - > loc n)。
    2. 我想对这些路线进行聚类,以便知道要分配到某个区域的SKU数量。
    3. 我尝试过使用kmeans& hdbscan但它不支持最大簇大小。

      我能否以某种方式推断this smart solution在我的案例中起作用,我的看起来更加层次化。

1 个答案:

答案 0 :(得分:1)

声明:在2D空间中,一组点属于同一个集群,如果(并且仅限于)两个点 他们对OX的预测是聚集的,他们对OY的预测是聚集的。 enter image description here

在OX上,A,B,C,D的投影聚集在一起;在OY上,A,B,C,E的投影聚集在一起; 总的来说,A,B和C是聚集的。

确定在一维空间上聚集哪些点:

让我们在实轴上展开一些点。直觉上,有两点属于   如果他们被一个小距离隔开,那就是同一个集群。如果他们分开了   通过“大距离”,它们属于不同的群集。现在我们必须确定是什么   一个'大距离' 以及什么是'小距离' enter image description here

让我们对所有距离进行排序,并寻找阈值。   对于OX坐标为[0,1,3,4,14,15,16,19,29,30,31]的点集,距离   连续点之间将是[1,2,1,10,1,1,3,10,1,1]。排序时,同一组距离,   看起来像[1,1,1,1,1,1,2,3,10,10]。有一个3到10之间的阈值,所以我们将表示所有   距离< = 3为'小距离'以及所有其他距离'距离很远'。

我们如何选择阈值?通过区分两个相邻元素。在我们的   例如,10-3 = 7是大的差异。

如果有多个相等值的阈值,请选择   最右边的;选择最合适的阈值会导致距离很远,否则,   许多距离将被认为是大的,因此,将有许多群集。   但这取决于您的业务需求。您可以将30个位置分组为10个位置中的3个群集,   或者每组3个地点的10个集群。

如果排序的距离类似于[2,4,6,8,10](没有阈值候选者),那么选择一些百分位数   喜欢75%的人:前四分之一将是“大距离”,其他所有人 - “小距离”'

根据他们对OX的预测将点分组成集群:

现在我们知道如何聚类实数,让我们对点进行OX投影,然后将它们聚类。

让我们有以下几点,以及它们的OX坐标:   P1(101),P2(12),P3(201),P4(13),P5(202),P6(11),P7(102);

相同点,按其OX坐标排序:   P6(11),P2(12),P4(13),P1(101),P7(102),P3(201),P5(202);

接下来,我们将通过OY预测进行另一次分组。

观察1 :当点的索引被排序时,OX预测不是;当我们对OX投影进行排序时,   现在索引不会被排序。

观察2 :在使用OX投影进行聚类时,我们不应期望获得相同的   当我们使用OY投影聚类时的聚类。实际上,我们将交叉获得的结果。   聚类结果不同,因为点的OY坐标完全独立于其OX坐标。   因此,在OY轴上有一组完全不同的值。

确定实际的群集:

我们之前已经对OX和OY投影进行了一些聚类,获得了   不同分组的相同点。现在我们将交叉这些聚类,寻找共同点。

回到我们的第一张照片,在OX给出(A,B,C,D)聚类后聚类,在OY之后得到(A,B,C,E),   这些集合的交集将是(A,B,C) - 最终的集群。但这是一个简单的例子。

一般策略是在OX上进行聚类的carthesian产品,在OY上获得聚类。   对于carthesian产品的每个这样的元素,我们将与OX集群中的元素相交,并与OY集群上的元素相交。   如果我们在OX上有3个集群,在OY上有4个集群,那么这个carthesian产品将有12个元素。我们选择其中一个。   它是一对两个簇A和B:A是OX上的簇,B是OY上的簇。如果A和B有一些共同点,   那么这些点确实是一个集群。  enter image description here

在上面的例子中,从7点开始,我们只获得了一个集群。不太令人印象但我们   可以进一步加入邻居集群。我们不要忘记橙色片段代表的是小距离',   而黑色片段代表“大距离”#。在上图中,来自'群集' P1到集群   P5或P3 + P7,只有一个“大距离”#。从群集P3 + P7到群集P4,有两个大距离加   一小段距离。

免责声明:此程序将世界地图视为矩形(经线是永不相交的平行线)。   而且,它们看起来相距很远,而不是将1度和179度的经线视为彼此接近。   (它们之间的距离是178度,而不是2度)   但是,这不是一个问题,因为大多数时候,交付行为具有区域性,或者至多是国家级。   只要您的国家没有经过180经络,您就可以了。