问题标签 [cp-optimizer]

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 回答
56 浏览

constraint-programming - 如何将两个元素放在同一个序列中?

我想强制 CP Optimizer 中的灵活作业车间示例模型,如果将特定模式/元素放在一个序列中,则后继者也必须放在相同的序列中,这意味着在这种情况下,两者都必须在相同的情况下完成机器。我怎样才能创建这样一个条件?预先感谢您的帮助!!

0 投票
1 回答
83 浏览

cplex - 如何定义序列相关约束?

我想对一个约束进行建模,我想说如果一个模式mode1被安排在另一个模式之前的序列上,mode2那么并行工作机器上的一个模式mode3(所以在另一个序列中)不能在mode1另一个序列结束之前启动。所以或多或少我想为此编写一个 if (before...) 块。它是如何正常工作的?

0 投票
1 回答
106 浏览

cplex - 我们如何在 OPL 中以编程方式检索 CP Optimizer 的软件版本号?

我想在我的输出中包含求解时使用的 CP Optimizer 版本(例如 12.9)。我正在处理在多个软件版本下解决的问题,因此在查看解决方案时查看使用了哪个版本会很有帮助。我不能只检查关于菜单,因为我将结果写入外部文件并在很长一段时间后查看它们。

有没有办法以编程方式检索 OPL 中的版本号?

我在提供的 Oplide 中使用 OPL。我找到了 .NET 接口的 CP.Version 属性(https://www.ibm.com/support/knowledgecenter/en/SSSA5P_12.9.0/ilog.odms.cpo.help/refdotnetcpoptimizer/html/P_ILOG_CP_CP_Version.htm),但我无法在 OPL 代码中找到等价物。

0 投票
3 回答
499 浏览

cplex - 是否可以在不转换模型的情况下使用 CPLEX-Engine 解决 CP 公式化问题?

我已经制定了一个灵活的作业车间问题作为 CP 模型,就像 CPLEX Optimization Studio 中建议的那样。问题正在运行并创建正确的计划。所以我的问题是,是否也有可能使用 CPLEX 引擎解决这个问题,而不将其转换为 MIP。这样我就可以比较两个引擎的结果。所以一般来说,是否可以在 CP 公式模型上运行 CPLEX-Engine,或者我是否必须为此创建单独的 MIP?

0 投票
1 回答
95 浏览

cplex - How is the lower bound that is displayed created?

my Flexible Job Shop Problem (CP) shows me a result of Best objective :423 (gap is 49,88%) and Best bound: 212. So my question is how is this bound created? Because In my case the lowest value that can be theoretical achived is in the area of about 400. Thank you in advance

0 投票
2 回答
611 浏览

cplex - 是否有使用 CPLEX 而不是 CP 的灵活作业车间问题的示例?

我是 CPLEX 的初学者,我想问一下是否有任何可用的示例可以修改灵活的作业车间示例,使其可以使用 CPLEX 而不是 CP 来解决?

0 投票
1 回答
457 浏览

cplex - 在主流程控制循环中使用 opl.end() 时如何修复错误

main我正在使用流控制块内的循环批量运行数以万计的测试。.dat循环的每次运行都会使用指定的数据文件和模型文件(与仅包含流控制块.mod的批处理运行程序文件分开)生成一个新的 OPL 模型。.modmain

.end()因为循环的每次运行都会创建一个新模型,所以当我不使用语句来关闭为每个测试创建的所有数据结构时,内存使用量会不断增加,直到最终导致 IDE 崩溃。虽然大多数数据结构都可以正常关闭,但我发现这opl.end();会使测试仪崩溃。

如何关闭 OPL 模型而不使测试仪崩溃?

我已经oplrun在 macOS 和 Windows 上尝试了 oplide 应用程序和命令行界面(尽管我最终需要在 Windows 上运行测试)。我正在使用 CPLEX Optimization Studio 12.9。

我使用以下方法创建对象:

当我完成后,我尝试使用以下方法关闭它们:


编辑以添加更多具体信息: 我正在使用我自己的模型运行 RCPSP 调度问题,该模型是内置示例的修改版本。

这是我正在使用的代码的精简版本。我创建了一个只包含这个批处理运行.mod程序文件的运行配置,模型文件和它引用的数据文件存储在其他地方:

这是输出应该是什么(通过注释掉该opl.end()行产生):

相反,它只记录以下输出:

然后弹出一个带有此错误消息的窗口:

Oplrun 进程没有响应,您必须重新启动运行配置。

0 投票
1 回答
159 浏览

java - 如何使用 CP Optimizer 为提货和送货操作建模容量限制?

我正在建模具有容量限制的调度问题。任务是安排一组必须由特定机器执行的操作。更具体地说,我有一组车辆和一组位置,车辆必须访问这些位置才能执行一些操作。每个位置最多可以处理一辆车,并且每辆车都有最大容量。有两种类型的操作:取货和送货操作。取货操作对应于正需求,而交付操作对应于负需求。任务是安排所有操作,同时尊重车辆的容量限制。

我想使用 CPLEX 的 CP 优化器,并且我正在使用 Java Eclipse 对其进行建模。

我尝试使用 cumul 函数表达式对此进行建模,因为我可以使用 StepAtStart 函数来指示操作开始时容量的增加。但是,该函数不模拟负值。

我已经尝试过这段代码,灵感来自 SchedRCPSP 示例。但我不能输入负值,也不能减去负需求的表达式。

这是正确的方法吗?有没有办法模拟车辆内货物的这种波动?我想建模一种方法来禁止违反容量限制的车辆的某些排列。

例如,如果我的车辆容量为 10 辆,初始装载量为 8 辆,以及两个操作 A 和 B(操作 A:在城市 1 提取 4 个单元。操作 B:在城市 2 交付 5 个单元)。我希望不允许排列(A->B),因为它违反了城市 1 车辆的容量限制。

0 投票
1 回答
974 浏览

optimization - CpoException:无法执行命令“cpoptimizer -angel”。请检查所需可执行文件的可用性

我在我的 Ubuntu 机器上安装了CPLEX Optimization Studiodocplex ,并且成功使用了模型模块。现在我必须使用CpoModel并且docplex.cp.model出现错误:

CpoException:无法执行命令“cpoptimizer -angel”。请检查所需可执行文件的可用性。

我不知道是怎么回事。因为我有学生许可证,所以我无法从IBM获得支持。

0 投票
1 回答
113 浏览

cplex - CPLEX-OPL:新界限为 0,添加新约束时无结果

我尝试在 CPLEX 12.8.0 上运行 MILP (OPL)。将此约束添加到模型并运行后,引擎日志如图所示,没有其他结果。我该如何解决这个问题?谢谢你。

引擎日志

已编辑。

这是我的模型,预拌混凝土分配问题。它类似于作业车间调度问题。

和数据。