8.1.6. 解管理

此文件用于声明与模型控制相关的所有 API I/O 函数,包括

  • 为加载的问题求解;

  • 获取和说明解的状态;

  • 填入解摘要报告。

函数

MdoResult Mdo_solveProb(MdoMdlPtr mdl)

此函数会为已加载的优化问题求解。

Parameters
  • mdl – 指向模型的指针。

Return

一个可指定函数状态的响应代码。

See

Mdo_displayResults(), Mdo_getStatus(), Mdo_explainResult()

void Mdo_displayResults(const MdoMdlPtr mdl)

此函数会显示当前求解器的结果,包括

  • 原始目标值和对偶目标值;

  • 变量界限和约束违反。

Parameters
  • mdl – 指向模型的指针。

MdoStatus Mdo_getStatus(const MdoMdlPtr mdl)

此函数会返回问题状态代码。

Parameters
  • mdl – 指向模型的指针。

Return

问题状态代码。

void Mdo_explainStatus(const MdoMdlPtr mdl, MdoStatus status, char *reason)

此函数会说明求解器状态代码的详情。具体来讲,如果 MindOpt 成功优化已加载的问题,用户可使用此函数填入解的状态。

Parameters
  • mdl – 指向模型的指针。

  • status – 需说明的求解器状态代码。

  • reason – 包含给定求解器状态代码说明的字符串。

Note

C 字符串的长度应设置为相对较大,例如,至少为 1024 个元素。

void Mdo_explainResult(const MdoMdlPtr mdl, MdoResult result, char *reason)

此函数会说明求解器结果代码的详情。具体来讲,如果 MindOpt 未能将已加载的问题优化至最佳,用户可使用此函数来填入结果代码的详情。

Parameters
  • mdl – 指向模型的指针。

  • result – 需说明的求解器结果代码。

  • reason – 包含给定求解器结果代码说明的字符串。

Note

C 字符串的长度应设置为相对较大,例如,至少为 1024 个元素。

MdoResult Mdo_computeIIS(MdoMdlPtr mdl, MdoI32 *num_rows, MdoI32 *idx_rows, MdoI32 *num_cols, MdoI32 *idx_cols)

此函数会计算至少包含一个 IIS(不可约不可行系统)的子系统。此子系统的基数应该很小。请注意,此问题应是不可行的。缓冲区数组 idx_rowsidx_cols 必须预先分配,并且它们的长度必须至少等于优化问题的行数和列数。

Parameters
  • mdl – 指向模型的指针。

  • num_rows – IIS 中涉及的约束数。

  • idx_rows – 包含 IIS 中涉及的所有约束的指针数组。

  • num_cols – IIS 中涉及的变量数。

  • idx_cols – 包含 IIS 中涉及的所有变量的指针数组。

Return

一个可指定函数状态的响应代码。

Note

这是一个实验性 API。