3

在 ortool 的vrp 模型中是否有可能允许违反约束(有时称为软约束)?例如,假设每条路线应该x在某个单位中获取最小数量,我可以配置 or-tools 以便它也会返回我的旅行,但并不总是满足这个约束吗?

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

4

1 回答 1

2

您应该创建一个“体积”维度并在端节点上使用:

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

于 2020-03-23T08:54:07.597 回答