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

在 Java 中乘以/添加 Google OR 工具 IntVar 和常量

如何解决在 Java 中乘以/添加 Google OR 工具 IntVar 和常量

我目前开始使用 Java 中的 Google OR 工具 CP-Sat 求解器,并面临使用简单数学方程(包括常量和 OR-Tools 内部“Intvar”)的问题。

我的问题的一个小例子:

    // Variables
    Intvar a = model.newIntvar(0,5,"a");
    Intvar b = model.newIntvar(0,"b");
    int c = 1;

    // Constraint
    model.addEquality(a,a * c); // Cannot apply * with Intvar and int
    model.addEquality(a,a + b); // Cannot Apply + with Intvars
    
    // What I want to achieve
    model.addEquality(a,a * c + b);
    

我习惯了 Python,其中这些类型 - 问题并不真正存在,有一个简单的 model.Add(a == a * c + b) 完成了工作。

Also Or-Tools LinearExpr.sum 或 LinearExpr.term 根本没有帮助我。

有没有人用 Java 处理过 CP-Sat 优化问题并知道解决方法

解决方法

java 中没有运算符重载。 所以你被 LinearExpr 方法困住了。

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