python-3.x - 通过基于距离对位置进行聚类,以计算成本低廉的方式替代 VRP
问题描述
我有一个位置列表和一个车辆容量列表。我想对位置进行聚类,使聚类中的点数等于车辆的容量。此外,在形成集群时,我不希望集群中位置之间的距离超过阈值。
例如,我拥有的位置是:
points = array([[33. , 41. ],
[33.9693, 41.3923],
[33.6074, 41.277 ],
[34.4823, 41.919 ],
[34.3702, 41.1424],
[34.3931, 41.078 ],
[34.2377, 41.0576],
[34.2395, 41.0211],
[34.4443, 41.3499],
[34.3812, 40.9793]])
车辆容量如下:
capacities = [3, 4, 2]
集群中两个连续位置之间的最大距离应该小于 say 3 kms
。
即,如果位置 1->2->3->4 在集群中,则此距离限制适用于订单 1,2 和 2,3 和 3,4。
这个问题有什么解决办法吗?我不想使用vrpy
or ortools
。
解决方案
推荐阅读
- pandas - 如何在熊猫的聚合函数中创建查找列的频率
- laravel-5 - 在 Laravel 5.6 中为多对多关系编写迁移表
- node.js - 谷歌云异步处理返回 200
- django - supervisord 作为服务和敏感的环境变量
- select - 从 bigquery 输出中,供应商希望每行以分隔符结尾
- entity-framework-core - 禁用 EF Core 迁移验证查询
- javascript - 嵌套的 ReactiveForms 控件没有收到 ngSubmit 事件
- r - 当每一层都有一个变量时的ggplot2图例
- node.js - 从多个项目中的一个 mongodb 集合中获取数据
- php - Laravel - 我如何处理可变队列名称