Ortools - VRP 允许违反约束

Ortools - VRP Allow for violation of constraint

ortool 的 vrp model 是否可以允许违反约束(有时称为软约束)?例如。假设每条路线应该在某个单元中获得最小体积 x,我可以配置 or-tools 这样它也会 return 我的游览受到并不总是满足这个限制的影响吗?

查看 penalties section 我的印象是,如果配置了 addDisjunction or-tools,如果这使得解决方案可行,将会放弃访问。然而,我手头的问题恰恰相反:访问不应该被放弃,相反,约束应该被违反,受到一些惩罚。

您应该创建一个 "Volume" 维度并在结束节点上使用:

void RoutingDimension::SetCumulVarSoftLowerBound(int64 index, int64 lower_bound, int64 coefficient);

参考:https://github.com/google/or-tools/blob/858fa626959f7e386153af82756384b79f983b5a/ortools/constraint_solver/routing.h#L2236-L2249