0

有没有办法让我们oplrun采用特定的 CPLEX 参数,例如 CPX_PARAM_LPMETHOD(线性编程方法)。在此处的参考资料中,它被不同语言的各种名称调用:

C Name: CPX_PARAM_LPMETHOD

C++ Name: RootAlg

Java Name: RootAlg

.NET Name: RootAlg

InteractiveOptimizer: lpmethod 

但是没有关于 OPL 或 oplrun 的参考。

是否可以在oplrun会话中更改此参数?还是我必须使用这些其他语言/界面?

4

3 回答 3

1

如果您只有一个想要更改的特定参数,在 .mod 文件中您可以有类似的内容:

int myParameter = …;

在同一个 .mod 文件中,您还可以使用

execute
{
  cplex.lpmethod=myParameter;
}

然后你的 .dat 文件中有一些默认值。

要在使用 oplrun 时将该参数从 run 更改为 run,您可以使用以下命令行参数调用它:

oplrun myModel.mod myData.dat -D myParameter=4
于 2018-09-11T21:33:35.113 回答
1

在 .mod 你可以写

execute
{
  cplex.lpmethod=4;
}

然后你会在日志中看到

CPXPARAM_LPMethod                                4

问候

于 2017-07-09T16:15:50.857 回答
0

使用 oplrun command line options无法(直接)执行此操作。但是,您可以使用 oplrun 执行具有关联设置文件(.ops 文件)的特定运行配置。例如:

oplrun [options] -p project-dir [run-configuration ...]

当您使用 IDE 设置单个参数时,参数的 OPL 名称存储在 .ops 文件中。例如,CPLEX 参数在 OPLCPX_PARAM_TILIMIT中命名(有关更多信息,请参见此处)。tiLimit

-e或者,您可以使用oplrun 选项导出您的 OPL 模型。然后,您可以使用 CPLEX 交互式运行它并使用参数文件或在命令行本身中设置它们(有关语法,请参见此处)。

最后,您当然可以使用CPLEX 中可用的一种编程语言 API来完成同样的事情。这将提供最多的控制,但可能需要更多时间(取决于您对编程的舒适程度)。

于 2017-07-06T21:47:06.517 回答