除了距离之外,我在基于已知订单和次要标准进行拆分时遇到问题。我试图手动遍历我的列表并基于贪婪的方法对它们进行聚类。但似乎效率低下,如果有一个更高效的scipy
包可以做同样的事情而且有人可以指向我,那将非常感激。
所以我有一个指定顺序的节点列表。
list_of_nodes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我有一个距离列表,其中包含节点之间的距离。
distanceList = [d_01, d_12, d_23, d_34, d_45, d_56, d_67, d_78, d_89]
最后,我有一个需求清单,其中包含每个节点的需求。
demandList = [dm_0, dm_1, dm_2, dm_3, dm_4, dm_51, dm_6, dm_7, dm_8, dm_9]
我希望能够拆分此列表,以便将某个最大距离和最大需求的节点组合在一起。
groups = [0, 0, 0, 0, 0, 0, 0, 1, 1, 1]
组列表指示节点7,8,9属于它们的距离(例如,d_78 + d_89 <最大距离)并且它们的需求(例如,dm_7 + dm_8 + dm_9 <最大需求)小于指定的最大值。 。由于给出了列表的顺序,我只根据点之间的距离而不是完整的距离矩阵进行分割。