cplex - 是否可以使用 OPL 简化表达式?
问题描述
我有一个很长的算术表达式,由许多操作数和括号组成,但只有两个操作,加法和乘法。可以使用 OPL 来最小化关键路径吗?
例如,给定表达式 (aa+bb)+(ab+ab)$,其关键路径包含一个 2 输入乘法和两个 2 输入加法,它输出 $(a+b)(a+b)$,其关键路径路径简化为 2 输入加法和 2 输入乘法?
另一个例子:a(b+c+d)+e 具有三个 2 输入加法的关键路径,并且乘法更改为表达式,例如: ab+aa+ac+d 具有 2 输入乘法的关键路径和两个 2 输入加法?
谢谢你。
解决方案
在 OPL 你可以写
using CP;
dvar int a in 0..10;
dvar int b in 0..10;
dvar int c in 0..10;
dvar int d in 0..10;
dvar int e in 0..10;
dexpr int expr=a*(b+c+d)+e;
subject to
{
expr==9;
}
推荐阅读
- javascript - *ngIf 不使用 eventListener 触发内部服务
- solaris - solaris 中的核心转储
- android - 为什么我从 Android 数据库中的选择查询中得到 Null ArrayList?
- flutter - Flutter Datatable Row, Column, Cell如何自定义边框?
- python - 使用 python cElementTree 快速检查大型 XML 中标签的存在
- sql - 将 HQL 转换为 SQL
- java - 如何解决java中的类型错误?
- c# - 客户端计算机上的 Wpf 应用程序崩溃
- java - 在 JENKINS 中使用 MAVEN 构建 WAR 时出错
- python - 如何在 python 中使用字符串动态更改我正在访问的类?