4.1. 命令行调用 MindOpt

本节介绍如何使用 MindOpt 命令行工具来求解优化问题。使用前用户必须先设置环境变量后;有关环境变量设置的详细说明,请参阅 安装说明

MindOpt 的调用如下:

mindopt <filename> [options]
  • <filename>:MPS/LP 格式的优化问题。

  • options:参数设置。关于参数的详细介绍,请参阅 可选输入参数 一节。

4.1.1. 示例

以下为求解一个线性规划问题的示例:

cd <MDOHOME>/examples/data
mindopt afiro.mps

以下则为执行时的输出:

MindOpt Version 0.15.1 (Built: 20210819)
Copyright (c) 2020-2021 Alibaba Cloud.

Reader started. File  : ../data/afiro.mps
Reader terminated. Time : 0.001s
Checking license : /home/mindopt/mindopt/mindopt.lic
Your license will expire in 51 days.
Concurrent optimization started.
 - Num. threads       : 12
 - Num. optimizers    : 2
 - Registered optimizers.
   +                  : Simplex method (1 thread, enabled output)
   +                  : Interior point method (11 threads, disabled output)

Model summary.
 - Num. variables     : 32
 - Num. constraints   : 27
 - Num. nonzeros      : 83
 - Bound range        : [4.4e+01,5.0e+02]
 - Objective range    : [3.2e-01,1.0e+01]
 - Matrix range       : [1.1e-01,2.4e+00]

Presolver started.
Presolver terminated. Time : 0.000s

Simplex method started.

    Iteration       Objective       Dual Inf.     Primal Inf.     Time
            0    -5.21810e+02      0.0000e+00      4.1717e+02     0.00s
            4    -4.64753e+02      0.0000e+00      0.0000e+00     0.00s
Postsolver started.
Simplex method terminated. Time : 0.002s

Concurrent optimization terminated.
Optimizer summary.
 - Optimizer used     : Simplex method
 - Optimizer status   : OPTIMAL
 - Total time         : 0.006s

Solution summary.       Primal solution               Dual solution
 - Objective          : -4.6475314286e+02             -4.6475314286e+02
 - Norm               : 5.00e+02                      2.29e+00
 - Var. viol.         : 1.42e-14                      0.00e+00
 - Cons. viol.        : 0.00e+00                      5.55e-17

4.1.2. MPS/LP 输入文件

MindOpt 支持下列优化模型的储存格式:

这些格式最初是为(混合整数)线性规划问题设计的,现在已扩展到支持二次锥优化。相关的详细信息,请参考 MPS 格式LP 格式

Note

MindOpt 目前支持以下压缩文件格式:

即,MindOpt 可以直接读取 .mps.gz 文件和 .mps.bz2 文件。

Warning

  • LP 格式有严格的 命名规范,如:首字母不可为数字、句点或字母 eE。用户在使用 API (参考 接口的定义与调用规范) 输入变量名或约束名时,建议参考 LP命名规范

  • 若命名格式不合规范,则 MindOpt 会将命名改为默认命名。

4.1.3. 输入参数

用户可以透过以下命令来更改默认参数:

<param>=<value>:将参数 <param> 的数值修改为 <value>

例如,以下命令使 MindOpt 求解 afiro.mps,将优化方法 (“Method”) 更改为 原始单纯形法,并将迭代次数 (“SPX/MaxIterations”) 限制为 10000

mindopt afiro.mps Method=0 SPX/MaxIterations=10000

关于参数的细节,请参阅 可选输入参数 一节。