OR-Tools:向最小成本流类添加约束?

Posted

技术标签:

【中文标题】OR-Tools:向最小成本流类添加约束?【英文标题】:OR-Tools: Adding a constraint to min cost flow class? 【发布时间】:2020-09-15 23:59:18 【问题描述】:

我正在尝试使用 or-tools 解决供应链网络流量问题。我有对弧的容量和需求的需求和供应节点。我已经设法使用 SolveMaxFlowWithMinCost() 获得了最佳结果。

但我正在尝试找到一个解决方案,其中每个需求节点只能由 1 个供应节点提供服务。无论如何我可以将此约束添加到模型中吗?

【问题讨论】:

【参考方案1】:

直觉反应是,您不能对最小成本流添加任何约束,也不能期望任何属性,如公平。一旦您这样做,您就可以将复杂性从多项式(最小成本流)更改为 NP 完全。

您可以尝试整数求解器(MPSOlver、CP-SAT),但性能会差很多。

您还可以尝试对最小成本流的输出进行后处理以修复分配。

最后一个想法,您可以使用最小成本流分配来限制 NP 求解器的模型(例如,仅保留出现在最小成本流中的弧)。

【讨论】:

谢谢 Laurent,我猜是这样。我在想是否有一些解决方法可以启用这种情况。但我认为后处理是目前的前进方向。

以上是关于OR-Tools:向最小成本流类添加约束?的主要内容,如果未能解决你的问题,请参考以下文章

Or-Tools CpSolver 获取最小和最大总和或绝对值

自定义约束OR-Tools //约束编程

最小成本流未优化路线

Google 用于 CVRP 的 OR-Tools,同时最小化全局跨度

Google OR-Tools:最小化总时间

OR-tools:根据python中另一个维度的积累添加一个维度(具体是每24小时使用的车辆成本)