8.1.3. IO 管理¶
此文件用于声明与模型控制相关的所有 API I/O 函数,包括
从文件中读取模型并将加载的模型写入文件。
重定向求解器日志。
支持的模型文件包括
MPS:文件扩展名必须为
.mps
、.mps.gz
或.mps.bz2
。LP:文件扩展名必须为
.lp
、.lp.gz
或lp.bz2
。.dat-s
格式。.nl
格式,可在 MindOpt 对接建模语言的模块mindoptampl
来调用,也支持命令行运行,详见 确认安装 mindoptampl 应用 。
与之相关的所有 API 函数。
示例
MdoMdl * model = NULL;
Mdo_createMdl(&model);
/* Set log */
Mdo_setLogToConsole(model, flag_LogToConsole);
Mdo_setLogFile(model, "logfile.log");
/* Read/write problem */
Mdo_readProb(model, "problem.mps");
Mdo_writeProb(model, "copy_problem.lp");
/* Solve */
Mdo_solveProb(model);
/* Write solution and basis */
Mdo_writeSoln(model, MY_FOLDER "basis.bas");
Mdo_writeSoln(model, MY_FOLDER "solution.sol");
/* Write/read optimization task */
const char * model_file = "./my_model.mdo";
const char * param_file = "./my_param.mdo";
const char * soln_file = "./my_soln.mdo";
Mdo_writeTask(model, model_file, MDO_YES, MDO_NO, MDO_NO);
Mdo_writeTask(model, param_file, MDO_NO, MDO_YES, MDO_NO);
Mdo_writeTask(model, soln_file, MDO_NO, MDO_NO, MDO_YES);
Mdo_readTask(model, model_file, MDO_YES, MDO_NO, MDO_NO);
Mdo_readTask(model, param_file, MDO_NO, MDO_YES, MDO_NO);
Mdo_readTask(model, soln_file, MDO_NO, MDO_NO, MDO_YES);
函数
-
MdoResult Mdo_readProb(MdoMdlPtr mdl, const char *filename)¶
此函数会从文件中读取优化问题。
- Parameters
mdl – 指向模型的指针。
filename – 一个可指定文件名的字符数组。
- Return
一个可指定函数状态的响应代码。
- See
Note
在该函数被调用后,之前加载的问题将被丢弃。
请注意,已输入模型的类型由文件后缀决定。有效后缀为
.mps(.bz2/.gz)
或.lp(.bz2/.gz)
或.dat-s
。
-
MdoResult Mdo_writeProb(const MdoMdlPtr mdl, const char *filename)¶
此函数会向文件写入优化问题。
- Parameters
mdl – 指向模型的指针。
filename – 一个可指定文件名的字符数组。
- Return
一个可指定函数状态的响应代码。
- See
Note
请注意,写的优化问题文件类型由文件后缀决定。有效后缀为
.mps(.bz2/.gz)
或.lp(.bz2/.gz)
。
-
MdoResult Mdo_writeSoln(const MdoMdlPtr mdl, const char *filename)¶
此函数会向文件写入最优解。
- Parameters
mdl – 指向模型的指针。
filename – 一个可指定文件名的字符数组。
- Return
一个可指定函数状态的响应代码。
Note
请注意,最优解的类型由文件后缀决定。有效后缀为
.sol
或.bas
。
-
MdoResult Mdo_readTask(MdoMdlPtr mdl, const char *filename, MdoBool read_model, MdoBool read_param, MdoBool read_soln)¶
此函数会从文件中加载优化模型任务。
- Parameters
mdl – 指向模型的指针。
filename – 一个可指定模型的字符数组。
read_model – 一个可指定是否应加载模型的布尔标志。
read_param – 一个可指定是否应加载参数的布尔标志。
read_soln – 一个可指定是否应加载解的布尔标志。
- Return
一个可指定函数状态的响应代码。
- See
Note
在该函数被调用后,之前加载的问题将被丢弃。
模型任务文件包括问题数据、参数设置和二进制格式的解。
-
MdoResult Mdo_writeTask(const MdoMdlPtr mdl, const char *filename, MdoBool write_model, MdoBool write_param, MdoBool write_soln)¶
此函数会向文件写入优化模型任务。
- Parameters
mdl – 指向模型的指针。
filename – 一个可指定文件名的字符数组。
write_model – 一个可指定是否应输出模型的布尔标志。
write_param – 一个可指定是否应输出参数的布尔标志。
write_soln – 一个可指定是否应输出解的布尔标志。
- Return
一个可指定函数状态的响应代码。
- See
Note
模型任务文件包括问题数据、参数设置和二进制格式的解。
-
MdoResult Mdo_setLogToConsole(MdoMdlPtr mdl, MdoBool flag)¶
此函数指定了是否应将日志打印到屏幕上。
- Parameters
mdl – 指向模型的指针。
flag – 一个可指定是否应将日志打印到屏幕上的标志。
-
MdoResult Mdo_setLogFile(MdoMdlPtr mdl, const char *filename)¶
此函数会将输出日志重定向到文件。
- Parameters
mdl – 指向模型的指针。
filename – 日志文件的路径。
-
MdoResult Mdo_setLogCallback(MdoMdlPtr mdl, void (*logcb)(const char *msg, void *userdata), void *userdata)¶
此函数会将输出日志重定向到用户定义的回调函数。
- param mdl
指向模型的指针。
- param logcb
用户定义的回调函数。
- param userdata
将传递到回调函数的用户定义数据。