问题标签 [opl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
862 浏览

javascript - 在 cplex/opl 中初始化一个集合

我目前正在根据在 cplex 中实施的多容量批量大小问题在买方和供应商之间建立谈判。在一个小场景中,买方生产项目 1-4,而供应商负责供应项目 5-7。

我想做的是创建三组:

我现在的问题是,因为我对 cplex/opl 还很陌生,所以如何用相应的项目初始化集合,以便在我的模型中使用它们。我想我可以通过以下方式在内部初始化它们:

我对么?但是,我可以通过脚本和 for 循环以不同的方式初始化集合吗?

如前所述,最终我想要三组,前四项分配给买方操作,第 5-7 项分配给供应商操作,然后是关于所有这些的一组操作。

感谢您提前提供任何帮助。

0 投票
1 回答
1375 浏览

variables - 在 CPLEX 中,如何在 forall 循环语法中使用变量?

我想在 cplex forall 语法中使用变量,如下所示..

但是在我运行这个脚本之后,由于(j + 3)而出现了语法错误......我应该如何制作一个脚本来使用这个算法?

0 投票
1 回答
783 浏览

javascript - OPL 脚本中的幂函数

我正在尝试在 OPL 脚本中初始化一个矩阵(一个执行{}块)每个元素都必须设置为浮点幂(> 0)

脚本中无法识别 pow 函数,因此我尝试了 ^ 运算符......但这不是我所期望的:参考资料说“^ 表示 OPL 中的幂和脚本中的按位异或”

所以现在我只使用了一个 for() 循环,它可以工作但不接受浮动幂:

OPL 脚本中是否有 pow() 的等价物?我该怎么做?请注意,在脚本块之外无法识别 for() 块(执行{})

0 投票
1 回答
2702 浏览

mathematical-optimization - 线性规划中的求和和条件 - Cplex // OPL

是否有一种简单的方法可以将条件应用于 OPL 中的总和或解决此问题?

例如,是否可以执行以下操作:

我发现解决这个问题的唯一方法是扩展我的数据集以避免超出范围异常,但在我的情况下这没有任何意义,所以我想在之前的总和中应用一个条件。

0 投票
1 回答
380 浏览

java - 在 Java 中连接 Ilog OPL 元素失败

我对 Java OPL 接口相当陌生,我面临一个问题,即如何在 CPLEX 解决它之后获取决策变量的值。更具体地说,我有这个代码,它集成了一个 OPL 模型文件和一个数据文件:

现在这里的 sw 是从 cplex.solve() 步骤获得的“双”向量决策变量。但是它给了我一个错误说:

请帮助我确定这是声明错误还是我缺少一些 OPL 库(我只有 CPLEx 安装工具包中的 oplall.jar 文件)

问候,

普拉文

0 投票
1 回答
1422 浏览

c++ - 如何访问决策变量:OPL/Cplex && C++

我在我的 c++ 代码中使用 OPL/Cplex 库,

在我的 file.mod 中,我标记了这个决策变量: dvar int+ x[nodes][nodes][1..nb_max][lambdas];

现在我那个 Cplex 解决了我成功恢复目标值的模型如下:

我的问题是如何恢复多维数组“x”?我试过了

IloIntVar x = opl.getElement("x").asIntVar; IloIntVar xvar =x.get(0);//第一项

但出现以下错误!

错误:从“”转换为非标量类型“IloIntVar”请求错误:“IloIntVar 类”没有名为“get”的成员

我真的是OPL的初学者,在此先感谢!

0 投票
2 回答
2548 浏览

optimization - 在 CPLEX OPL 中关闭 Presolve 选项

有谁知道如何在 CPLEX 中禁用“presolve”?(不使用 Java、C++ 等)

我的 CPLEX 版本是 12.4,以防万一。

提前致谢,

0 投票
2 回答
2266 浏览

cplex - Cplex 约束中的求和

在 CPLEX OPL 中,如何在约束中写入 i(从 1 到 i-1)的总和?

另一个问题:如何输入 3 维矩阵?

提前谢谢了,

0 投票
1 回答
800 浏览

java - Java Cplex 结果与 IBM 优化工作室不同

我使用 OPL 在 IBM Optimization Studio 中实现了一个 LP 问题来创建模型。在验证模型后,我想将其放入 Java 中,以便为模拟目的编写参数脚本。我找到了使用以下代码在 Java 中使用我的 OLP 模型的最快方法:

现在的问题是,如果我在 IBM Optimization Studio 和 Java 中运行“myModel.mod”和“myData.dat”,我会得到非常不同的客观结果。

在 IBM 优化工作室中:

在 Java 中:

我查看了数据集和我的模型,甚至不可能达到小于 125 的目标(我使用极值来确保我的目标变量之一是 125,因此低于该值的任何东西都不可能)。

有谁知道为什么这些结果不同?与 IBM 相比,Java 的设置是否可能有所不同?我是否可以将我的 IBM 优化工作室设置导入 Java 来进行测试?

谢谢!

编辑:这里是 IBM Optimization studio 日志,我忘了包括那些。它确实显示了更多关于整数被截断的信息,但这是我对这两个程序的第一次体验,所以有人可以帮我找出问题所在或这一切意味着什么吗?

编辑 2:我发现我的矩阵 0..1 中的整数值没有被四舍五入为 0 或 1,而是被计为 0.932...如何强制 Java cplex 舍入我的整数?

已解决:它是“opl.convertAllIntVars();” 它将所有内容都转换为双打。我从示例代码中取出并删除了它,现在一切正常。

0 投票
1 回答
231 浏览

constraints - OPL 约束索引

我正在编写一个 OPL 模型,但不知道如何表达以下约束:

to集合中D_t_T所有的总和在哪里。q_ttT

- 更新 -

是的,只有 q[t] 和 v[t] 是变量。如果我将范围定义t如下,该建议是否也有效:

然后我的约束看起来:

也许还有一个更基本的问题:如何在以下表达式中表达 [t-1]: