是否有办法让oplrun
获取特定的CPLEX参数,例如CPX_PARAM_LPMETHOD(线性编程方法)。在the reference here中,它由不同语言的各种名称调用:
C Name: CPX_PARAM_LPMETHOD
C++ Name: RootAlg
Java Name: RootAlg
.NET Name: RootAlg
InteractiveOptimizer: lpmethod
但是没有关于OPL或oplrun的参考。
是否可以在oplrun
会话中更改此参数?或者我必须使用这些其他语言/接口吗?
答案 0 :(得分:1)
execute
{
cplex.lpmethod=4;
}
然后你会在日志中看到
CPXPARAM_LPMethod 4
问候
答案 1 :(得分:1)
如果您只想更改特定参数,则在.mod文件中,您可以输入以下内容:
int myParameter = …;
在同一.mod文件中,您也可以使用
execute
{
cplex.lpmethod=myParameter;
}
然后在.dat文件中有一些默认值。
要在使用oplrun时将参数从运行更改为运行,可以使用以下命令行参数进行调用:
oplrun myModel.mod myData.dat -D myParameter=4
答案 2 :(得分:0)
使用oplrun command line options无法(直接)执行此操作。但是,您可以使用oplrun执行具有关联的settings file(.ops文件)的特定运行配置。例如:
oplrun [options] -p project-dir [run-configuration ...]
使用IDE设置单个参数时,参数的OPL名称存储在.ops文件中。例如,CPLEX参数CPX_PARAM_TILIMIT
在OPL中名为tiLimit
(有关详情,请参阅here)。
或者,您可以使用-e
oplrun选项导出您的OPL模型。然后,您可以使用CPLEX interactive运行它并使用参数文件或在命令行中设置它们(请参阅here了解语法)。
最后,您肯定可以使用CPLEX中提供的programming language APIs之一来完成同样的事情。这将提供最大程度的控制,但可能需要更多时间(取决于您对编程的舒适程度)。