python-3.x - OR-Tools:向最小成本流类添加约束?
问题描述
我正在尝试使用 or-tools 解决供应链网络流量问题。我有对弧的容量和需求的需求和供应节点。我已经设法使用 SolveMaxFlowWithMinCost() 获得了最佳结果。
但我正在尝试找到一个解决方案,其中每个需求节点只能由 1 个供应节点提供服务。无论如何我可以将此约束添加到模型中吗?
解决方案
直觉反应是,您不能对最小成本流添加任何约束,也不能期望任何属性,如公平。一旦你这样做了,你就将复杂性从多项式(最小成本流)更改为 NP 完全。
您可以尝试使用整数求解器(MPSOlver、CP-SAT),但性能会差很多。
您还可以尝试对最小成本流的输出进行后处理以修复分配。
最后一个想法,您可以使用最小成本流分配来限制 NP 求解器的模型(例如,仅保留出现在最小成本流中的弧线)。
推荐阅读
- javascript - Ionic Angular 应用程序中的双路由器状态
- javascript - 如何将 HTML 代码分配给 Vue.js 中的变量
- r - Plotly 条形图与串扰
- magento - Letsencrypt DST Root CA X3 Magento SOAP 服务客户端或服务器端的问题?
- git - 完成了用户存储库的 git 克隆,但看不到分支
- flutter - 容器构造完成后添加一个子容器
- django - request.data 每个变量的变化
- ionic-framework - 从 InAppBrowser IONIC 5 获取 JSON 数据
- javascript - react-select 默认值设置但未突出显示
- jquery - 仅保留文本字符串中的数字并用于计算总数