0

我想在我的输出中包含求解时使用的 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 代码中找到等价物。

4

1 回答 1

2

似乎IloCP 脚本类不导出版本号。但是,我可以看到其他两种获取版本的方法:

选项 1:您可以从executeormain块实例化IloCP Java 类并使用该类的getVersion()功能:

execute {
   var cpo = IloOplCallJava("ilog.cp.IloCP", "<init>", "()Lilog/cp/IloCP");
   writeln(cpo.getVersion());
   cpo.end();
}

选项 2:IloCplex 脚本类确实提供了 getVersion() 函数。所以在一个main街区你可以做

main {
   writeln(cplex.getVersion());
   // or
   var cpx = new IloCplex();
   writeln(cpx.getVersion());
   cpx.end();
}

CP Optimizer 和 CPLEX 的版本号相同。

于 2019-05-05T20:43:36.323 回答