微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当 ORTOOLS

如何解决当 ORTOOLS

我对 Python 中的 OR-TOOLS 非常陌生。我已经制作了几个教程示例,但在尝试为我的问题建模时遇到了问题。

让我们看看我们有一个装箱问题,在这个问题中,我需要根据重量找到能容纳所有物品的最少的箱子。在这个典型的问题中,我们希望最小化使用的 bin 数量。但是假设我们有一个额外的目标:最大化垃圾箱的“质量”。问题是:要评估该 bin 的质量,我们需要调用一个非线性函数,该函数获取该 bin 中的项目并返回质量。我想我不能使用多目标方法使用 CP/SAT,因此我们可以对其进行建模,同时对两个目标进行加权。

我面临的问题如下:

我无法将“质量”设置为变量,因为这取决于 当前解决方(与垃圾箱关联的项目)

我该怎么做?分配回调?有可能吗?

解决方法

取决于“当前”解决方案不是问题。您可以添加一个“质量”变量,该变量取决于表示垃圾箱及其内容的变量的值,并使用求解器的原语来计算所需的数量。

这可能不适用于任何函数,但求解器的原语确实允许某些形式的非线性计算(仅作为示例,您可以计算 abs(x) 或 x^2,({{3} })).

因此,例如,您可以有一个质量变量来计算(使用的 bin 数量)^2。

一旦您获得了一种在求解器中有效的质量计算形式,您就可以返回使用其中一种方法来求解多个目标,例如加权和。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。