基于距离列表和容量拆分

2024-06-01 05:26:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有困难分裂的基础上,一个已知的秩序与次要标准除了距离。我尝试手动循环我的列表,并基于贪婪的方法对它们进行聚类。但它似乎效率低下,如果有一个更有效的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<;最大需求)小于指定的最大值。由于列表的顺序是给定的,所以我只根据点之间的距离而不是距离的完整矩阵进行拆分


Tags: 方法lt距离列表标准节点聚类dm