【问题标题】:How to change CPLEX parameters in oplrun?如何更改 oplrun 中的 CPLEX 参数?
【发布时间】:2017-07-06 07:56:39
【问题描述】:

有没有办法让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 会话中更改此参数?还是我必须使用这些其他语言/界面?

【问题讨论】:

    标签: command-line-interface cplex ibm-ilog-opl


    【解决方案1】:

    在.mod中你可以写

    execute
    {
      cplex.lpmethod=4;
    }
    

    然后你会在日志中看到

    CPXPARAM_LPMethod                                4
    

    问候

    【讨论】:

      【解决方案2】:

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

      int myParameter = …;
      

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

      execute
      {
        cplex.lpmethod=myParameter;
      }
      

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

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

      oplrun myModel.mod myData.dat -D myParameter=4
      

      【讨论】:

        【解决方案3】:

        使用 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 交互式运行它并使用参数文件或在命令行本身中设置它们(有关语法,请参阅 here)。

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

        【讨论】:

        • 2012 年 IBM developerWorks 论坛上的 here 也回答了这个问题。
        猜你喜欢
        • 2022-09-24
        • 1970-01-01
        • 1970-01-01
        • 2022-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-16
        • 1970-01-01
        相关资源
        最近更新 更多