在2DNxN矩阵中,每个点代表地图的一个区域随机区域的客户数量需要由随机区域的客户服务中心数量提供服务每个客户服务中心最多可提供M个工作岗位所有客户的数量必须小于或等于客户服务中心的总能力。所有客户必须分配到任何服务中心,哈密顿距离是成本(客户只能向服务中心上、左、下和右移动)如何分配客户以使总成本最小化我在寻找一个方向,如果这是一个众所周知的问题或至少是伪代码。

最佳答案

我认为您可以使用mincost/maxflow算法来处理这个问题。按如下方式创建图形:
创建M + K + 2节点;M客户节点,K客户服务中心节点(csc节点)、源和汇。
创建从源到csc节点的K边,成本K且容量等于每个csc可以服务的客户数量。
创建从0客户节点到接收器的M边,每个边的容量M和成本1
创建从0csc节点到K * M客户节点的K边,每个节点的容量等于M且成本等于csc和客户之间的距离。
在网络上运行MinCost/MaxFlow算法(1)如果最大流量值等于V = M + K + 2, E = M + K + M*K,那么您可以用产生的(最小)成本为所有客户服务。
c - 寻找有效的聚类算法-LMLPHP
这种情况的解决方案是M
c - 寻找有效的聚类算法-LMLPHP

关于c - 寻找有效的聚类算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49473128/

10-10 14:01