问题标签 [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.
java - 具有 Java 数据文件的 Cplex OPL 模型
我是 cplex 的新用户。我想使用 java 代码生成数据文件以在 cplex opl 模型中使用它。我应该在我的 opl 代码和我的 java 代码中插入什么命令,这样我才能做这样的事情。谢谢你。
cplex - 对计数标准偏差的约束始终为零
我目前正在尝试解决运动队的日程安排问题。我的决策变量声明为:
在这种特定情况下,范围从Games
哪里开始,从哪里开始。这形成了一个 20 x 2 的矩阵,表示每场比赛的球队。0..19
Teams
0..9
是一个 3 场比赛矩阵的示例,它显示第 3 队在第一场比赛中对阵第 7 队,然后是第 2 队对第 4 队,最后以第 9 队对第 1 队结束。
在我的限制条件下,我试图表达每支球队应该打接近相同数量的比赛。我表达这个约束的尝试如下:
我相信这个公式是合理的 - 但是,我觉得我遇到了某种未定义的行为,因为即使 CPLEX 说它返回[18, 18, 0, 0, 0, 0, 0, 0, 0]
9 个团队案例的“最佳”解决方案,约束也没有得到满足。
手工计算,我得到一个标准差7.59
,显然不小于 1。为了验证这一点,我将以下内容放在模型的结果数据部分:
这给出了以下输出:
这进一步证实了我写的关于约束的一些事情是不正确的。为了进一步调试这种情况,我使用了以下约束:
Wherefoo
被声明为一个整数数组[1, 100, 10000, 1000000, 100000000]
- 它的标准偏差绝对不小于 1。正如预期的那样,该模型被证明是不可行的,这表明标准偏差按预期工作,因此问题必须在我构建计数数组的方式。然后我尝试了以下约束:
我的理论是,如果标准偏差被处理为非零,那么这应该会使模型不可行。令我惊讶的是,该模型以上述相同的简单[18, 18, 0, ...]
解决方案通过。通过更改2.999...
为 3,模型不可行。因此,我得出结论,我计算的标准偏差在约束中评估为 0,但在搜索结束后,它在结果数据部分中被正确计算。
在这一点上,我确信问题源于我计算计数数组all(t in Teams) count(all(g in Games, s in 0..1) plays[g][s], t)
(playcounts
以上)。
此外,以下约束非常有效:
这使我相信问题在于all(t in Teams)...
约束的一部分。为了检验这个理论,我使用了以下约束:
理论上,这应该是一个多余的约束,因为返回的平凡解决方案以[18, 18, 0, ...]
. 令我惊讶的是,这创造了一个不可行的模型。即使用== 0
代替== 18
,该模型仍然不可行。因此,我想弄清楚这个数字在评估什么。为此,我添加了以下决策变量:
并将目标函数更改为:
具有以下约束:
这导致了一个具有最佳解决方案的模型。解决方案已a
设置为-9007199254740991
。如果我尝试使用minimize
此模型,则会发生相同的结果。
如果我尝试约束a
为非负数,那么 CPLEX 崩溃并带有### UNEXPECTED ERROR
.
最后,我的问题是:
- 我是否违反了 OPL 的某些规则并以我不应该的方式使用语句?
- 如果以上是肯定的,是否有一种合法、有效的方式来表达我正在寻找的约束?
- 如果以上都不是,那么为什么 OPL 无法计算我的约束中的标准偏差?
optimization - CPLEX 优化 - 在单台机器上规划一系列产品
这是我的问题。比方说,我有 10 种产品要打包。所有 10 种产品的包装都在同一条生产线/机器上完成。
不同产品之间有不同的设置时间。例如,从产品 1 到产品 2 的设置时间(您必须调整高度,并进行小清理)为 30 分钟。从产品 2 到产品 1(只需调整高度,无需清理),设置时间为 15 分钟。从产品 1 到产品 3,需要 5 分钟,以此类推。
我正在尝试最小化设置时间。
我该如何解决这个问题?我的实际问题有 100 种不同的产品(所以是 100 x 100 矩阵)
它与旅行推销员问题非常相似。不同之处在于,您不必绝对离开产品 1(或 TSP 中的城市 A),也无需在最后返回产品 1。
这是我过去使用的 TSP 代码。我可以修改它来解决我的问题吗?或者我还有其他方法可以做到吗?
谢谢!
ruby-on-rails - Ruby 初始化方法不会抛出错误数量的参数错误
我已经为我的 Rails 应用程序设置了 IRB。
我用过以下宝石
当我使用下面给出的初始化方法创建一个类时
现在,我称之为Test.new
它应该为错误数量的参数抛出错误,但它没有抛出。
这是屏幕截图,
这是我设置的heroku应用程序的链接。Heroku 演示应用
vector - 线性规划 / 向量 / opl / cplex
我希望有一个人可以帮助我。我在 cplex studio 中实现了以下最大化问题:
现在我想获得不止一个向量 pb。让我们说 k 个向量,每个向量都有 b 个元素。我引入了另一个变量 pbk[b][k],其中 k 给出了向量的数量。不幸的是,cplex 返回 k 次相同的向量。我还在 Gurobi 中实现了相同的模型,它返回 k 个不同的向量。
有谁知道如何在 cplex 中获得不同的向量?
谢谢!
optimization - dvar float+ 变量包含负解
我正在使用 IBM ILOG CPLEX 优化工作室解决线性规划问题。我的决策变量之一是 float+ 类型。我将其定义为
dvar 浮点+ A[P][G];
CPLEX 将此变量的解生成为其中一个元素为负数(等于 -4e-10)的矩阵。
这可能是什么原因?
cplex - 如何为 CPLEX OPL 定义搜索过程?
是否有使用 OPL 对问题进行建模并且模型指定搜索过程的示例(我尝试查找,但找不到任何示例)?我有兴趣了解如何准确指定搜索过程。我在 /examples 目录中找不到指定一个的 OPL 示例。
cplex - CPLEX 错误 1016:促销版
我在 CPLEX oplide 中编写了用于求解整数规划模型的代码,如下所示:
它显示 CPLEX 错误 1016:促销版本。超出问题大小限制。我将感谢您为我提供定位问题的想法。
optimization - 如何在网络服务器上运行 cplex 模型
我正在寻找一种方法来在专用于运行 LAN 上的 CPLEX 模型的机器上运行我的整数程序模型。目前,我使用命令行来运行 OPL 模型(在同一系统上)。如何在网络机器上运行我的 OPL 模型?
在此先感谢您的帮助
拉姆
matlab - Matlab 中的 Cplex 速度与 OPL
我在 OPL 工作室有一个优化模型。我决定在 Matlab 中使用 Cplex,因为它提供了更高的自由度。但不幸的是,我意识到 Matlab 比 OPL 慢得多。更具体地说,与 OPL 相比,Matlab 中的“根节点处理(b&c 之前)”花费的时间要长得多,而 Matlab 中的“并行 b&c,8 个线程”与 OPL studio 相同甚至更快。问题是什么。
有谁知道是什么问题?更重要的是,如何解决?谢谢