2.2. 变更日志¶
2.2.1. 0.25.0 版本¶
发布日期: 2023/08/08
更新摘要
提高了内点法求解的性能和稳定性。
提高了Python API性能。
提高了IIS算法稳定性。
新增了MILP IIS算法。
API 变更
新增的错误码:
MDO_INVALID_ARGUMENT (-3),MDO_IIS_NUMERIC (-30000),MDO_IIS_NO_SOLN (-3004),MDO_IIS_FEASIBLE (-3005).新增的属性:
C API:
MDO_INT_ATTR_ROW_IIS,MDO_INT_ATTR_COL_IIS.C++ API:
MDO_INT_ATTR::ROW_IIS,MDO_INT_ATTR::COL_IIS.Python API:
MDO_INT_PARAM.ROW_IIS,MDO_INT_ATTR.COL_IIS.JAVA API:
INT_ATTR::ROW_IIS,INT_ATTR::COL_IIS.更新 APIs:
C API:
Mdo_computeIIS.C++ API:
MdoModel::computeIIS.Python API:
MdoModel.compute_iis.JAVA API:
MdoModel::computeIIS.新的整型参数:
C API:
MDO_INT_PARAM_MIP_MAX_STALLING_NODES,MDO_INT_PARAM_MIP_MAX_SOLS,MDO_INT_PARAM_MIP_DETECT_DISCONNECTED_COMPONENTS,MDO_INT_PARAM_MIP_SOLUTION_POOL_SIZE,MDO_INT_PARAM_MIP_ALLOW_DUAL_PRESOLVE.C++ API:
MDO_INT_PARAM::MIP_MAX_STALLING_NODES,MDO_INT_PARAM_MIP_MAX_SOLS,MDO_INT_PARAM::MIP_DETECT_DISCONNECTED_COMPONENTS,MDO_INT_PARAM::MIP_SOLUTION_POOL_SIZE,MDO_INT_PARAM::MIP_ALLOW_DUAL_PRESOLVE.Python API:
MDO_INT_PARAM.MIP_MAX_STALLING_NODES,MDO_INT_PARAM.MIP_MAX_SOLS,MDO_INT_PARAM.MIP_DETECT_DISCONNECTED_COMPONENTS,MDO_INT_PARAM.MIP_SOLUTION_POOL_SIZE,MDO_INT_PARAM.MIP_ALLOW_DUAL_PRESOLVE.JAVA API:
INT_PARAM::MIP_MAX_STALLING_NODES,INT_PARAM_MIP_MAX_SOLS,INT_PARAM::MIP_DETECT_DISCONNECTED_COMPONENTS,INT_PARAM::MIP_SOLUTION_POOL_SIZE,INT_PARAM::MIP_ALLOW_DUAL_PRESOLVE.新的实数型参数:
C API:
MDO_REAL_PARAM_MIP_LINEARIZATION_BIG_M,MDO_REAL_PARAM_MIP_CUTOFF.C++ API:
MDO_REAL_PARAM::MIP_LINEARIZATION_BIG_M,MDO_REAL_PARAM::MIP_CUTOFF.Python API:
MDO_REAL_PARAM.MIP_LINEARIZATION_BIG_M,MDO_REAL_PARAM.MIP_CUTOFF.JAVA API:
REAL_PARAM::MIP_LINEARIZATION_BIG_M,REAL_PARAM::MIP_CUTOFF.Bug fixes
修复了SDK相关问题。
修复了删除约束的性能问题。
修复了读Mps/Lpf的问题。
2.2.2. 0.24.1 版本¶
发布日期: 2023/04/23
更新摘要
新增Linux ARM 和 Apple Silicon 安装包, 下载安装包
新增pip install安装Python库,详见 pip install MindOpt Python 库
提高了MILP求解器的性能。
数据脱敏的接口名修改为
--sanitize和--undo_sanitize,用法见 数据脱敏 。
2.2.3. 0.24.0 版本¶
发布日期: 2023/03/30
更新摘要
提高了MILP求解器的性能。正式发行版本。云鉴权账号全部开放使用权限,无需再申请特殊License。
提高了并发优化方法的性能。
重新设计了IPM中的Cholesky因式分解代码。
API 变更
新增一个命令行功能,用于数据脱敏,查看 数据脱敏 了解如何使用:
--desensitize用来脱敏优化问题的模型文件。通过移除变量名约束名这些带有业务信息的数据,仅留下看不出业务场景的数值数据。
--sensitize用来恢复脱敏的文件。新的整型参数:
C API:
MDO_INT_PARAM_MIP_AUTO_CONFIGURATION.C++ API:
MDO_INT_PARAM::MIP_AUTO_CONFIGURATION.Python API:
MDO_INT_PARAM.MIP_AUTO_CONFIGURATION.JAVA API:
MDO_INT_PARAM::MIP_AUTO_CONFIGURATION.新增的错误码:
MDO_MODEL_INVALID_CHAR_ATTR (-2014),MDO_MODEL_INVALID_ATTR_NAME (-2019).Bug fixes
修复
Mdo_loadProbAPI 的bug。修复LP writer 和 MPS writer的bug,并修复写GZ/BZ2压缩格式的bug。
修复一个关联
Mdo_copyMdl的bug。修复一个AMPL 应用 (
mindoptampl)的小bug。
2.2.5. 0.23.0 版本¶
发布日期: 2022/11/25
更新摘要
新增 半定规划(SDP) 相关的APIs,输入文件增加支持
dat-s格式。文档增加 .nl 格式文档描述,安装包examples的ampl文件夹中有.nl文件示例,可以用
mindoptampl filename.nl指令直接调用。修复一个 LPF reader 的小bug。
修复MILP求解的一些bug。
API 修改
更新 APIs:
C API:
Mdo_loadModel,Mdo_addRows,Mdo_addCols,Mdo_setColNames,Mdo_setRowNames,Mdo_readProb.C++ API:
MdoModel::readProb.Python API:
MdoModel.read_prob.JAVA API:
MdoModel::readProb.新增 APIs:
C API:
Mdo_addSymMat,Mdo_addSymMats,Mdo_replaceSymMatObjs,Mdo_replaceSymMatElements,Mdo_getRealAttrSymMat,Mdo_copyMdl.C++ API:
MdoModel::addSymMat,MdoModel::addSymMats,MdoModel::replaceSymMatObjs,MdoModel::replaceSymMatElements,MdoModel::getRealAttrSymMat,MdoModel::MdoModel.Python API:
MdoModel.add_sym_mat,MdoModel::add_sym_mats,MdoModel::replace_sym_mat_objs,MdoModel::replace_sym_mat_elements,MdoModel::get_real_attr_sym_mat,MdoModel::copy_model.JAVA API:
MdoModel::addSymMat,MdoModel::addSymMats,MdoModel::replaceSymMatObjs,MdoModel::replaceSymMatElements,MdoModel::getRealAttrSymMat,MdoModel::copyModel.新增错误码 error codes:
MDO_MODEL_INVALID_SYM_MAT_IDX (-2006),MDO_MODEL_INVALID_SYM_MAT_ROW_IDX (-2007),MDO_MODEL_INVALID_SYM_MAT_COL_IDX (-2008),MDO_MODEL_INVALID_REAL_ATTR_SYM_MAT (-2013).修改错误码 error codes:
MDO_LIB_FOLDER_NOT_FOUND (-12)is replaced byMDO_DLL_ERROR (-12)新增属性:
C API:
MDO_REAL_ATTR_SYM_MAT_PRIMAL_SOLN,MDO_REAL_ATTR_MIP_GAP_ABS,MDO_REAL_ATTR_MIP_GAP_REL.C++ API:
MDO_REAL_ATTR::SYM_MAT_PRIMAL_SOLN,MDO_REAL_ATTR::MIP_GAP_ABS,MDO_REAL_ATTR::MIP_GAP_REL.Python API:
MDO_REAL_ATTR.SYM_MAT_PRIMAL_SOLN,MDO_REAL_ATTR.MIP_GAP_ABS,MDO_REAL_ATTR.MIP_GAP_REL.JAVA API:
REAL_ATTR_SYM_MAT_PRIMAL_SOLN,REAL_ATTR_MIP_GAP_ABS,REAL_ATTR_MIP_GAP_REL
2.2.6. 之前版本¶
2.2.6.3. 0.20.0 版本¶
发布日期: 2022/08/31
更新摘要
新增了用于求解 混合整数线性规划(MILP) 问题的分支定界算法(branch-and-cut solver)。
新增对AMPL支持混合整数线性规划问题(MILP)的接口。
优化License校验。新的鉴权逻辑修改:
安装包优化:
Linux和macOS上安装脚本优化,运行时不需要加任何额外参数,脚本运行时会交互式确认安装路径,同时支持自定义路径,安装结束后自动配置环境变量,Windows重复安装会有提醒。
修复下列Bug:
优化了MdoEnv相关。
修复一个目标最大化相互的QPS reader的bug。
修复了一个objective scaling相关bug。
修复了与内点法相关的(Interior point method)的一个小问题。
修复一个对偶解输出的bug。
新增下列 API:
C API:
Mdo_relaxIntegrality.C++ API:
MdoModel::relaxIntegrality.Python API:
MdoModel.relax_integrality.JAVA API:
MdoModel.relaxIntegrality.
新的优化异常返回码:
MDO_ABORT_NODE_LIMIT(-9003),MDO_ABORT_STALLING_NODE_LIMIT(-9004),MDO_ABORT_SOLVER_NOT_AVAILABLE(-9012)。并且修改了一个返回码
MDO_ABORT_INVALID_METHOD的码值从 -9003 改为 -9011。
新的整数型参数:
String:
MIP/MaxNodes,MIP/RootParallelismC API: MDO_INT_PARAM_MIP_MAX_NODES, MDO_INT_PARAM_MIP_ROOT_PARALLELISM.
C++ API: MDO_INT_PARAM::MIP_MAX_NODES, MDO_INT_PARAM::MIP_ROOT_PARALLELISM.
Python API: MDO_INT_PARAM.MIP_MAX_NODES, MDO_INT_PARAM.MIP_ROOT_PARALLELISM.
JAVA API: MDO.INT_PARAM_MIP_MAX_NODES, MDO.INT_PARAM_MIP_ROOT_PARALLELISM.
新的实数型参数:
String:
MIP/IntegerTolerance,MIP/ObjectiveTolerance,MIP/GapAbs,MIP/GapRelC API: MDO_REAL_PARAM_MIP_INTEGER_TOLERANCE, MDO_REAL_PARAM_MIP_OBJECTIVE_TOLERANCE, MDO_REAL_PARAM_MIP_GAP_ABS, MDO_REAL_PARAM_MIP_GAP_REL
C++ API: MDO_REAL_PARAM::MIP_INTEGER_TOLERANCE, MDO_REAL_PARAM::MIP_OBJECTIVE_TOLERANCE, MDO_REAL_PARAM::MIP_GAP_ABS, MDO_REAL_PARAM::MIP_GAP_REL.
Python API: MDO_REAL_PARAM.MIP_INTEGER_TOLERANCE, MDO_REAL_PARAM.MIP_OBJECTIVE_TOLERANCE, MDO_REAL_PARAM.MIP_GAP_ABS, MDO_REAL_PARAM.MIP_GAP_REL.
JAVA API: MDO.REAL_PARAM_MIP_INTEGER_TOLERANCE, MDO.REAL_PARAM_MIP_OBJECTIVE_TOLERANCE, MDO.REAL_PARAM_MIP_GAP_ABS, MDO.REAL_PARAM_MIP_GAP_REL
AMPL接口中新的参数:
Integer parameters: mip_max_nodes, mip_root_parallelism.
Real parameters: mip_gap_abs, mip_gap_rel, mip_integer_tolerance, mip_objective_tolerance.
命令行工具的指令变化:
更新了指令:
- -disable_file_output (or -d): 关闭求解器的解的输出( .bas and .sol files)。新增了指令:
- -relax (or -r): 松弛问题中所有的整数性要求。
2.2.6.4. 0.19.0 版本¶
发布日期: 2022/04/10
更新摘要
单纯形法和内点法稳定性提升。
重新设计了 license 管理器。
对 AMPL interface 进行升级以支持 convex QP 问题。
修复下列Bug:
修复了一个与单纯形法有关的小问题。
修复了与并发优化方法 (concurrent optimization method) 有关的错误。
新增下列 API:
C API:
Mdo_createEnv,Mdo_freeEnv,Mdo_createMdlWithEnv,Mdo_deleteAllElements,Mdo_deleteAllQuadraticElements.C++ API:
MdoModel::deleteAllElements,MdoModel::deleteAllQuadraticElements.Python API:
MdoModel.delete_all_elements,MdoModel.delete_all_quadratic_elements.JAVA API:
MdoModel.deleteAllElements,MdoModel.deleteAllQuadraticElements.新增 C++/Python/JAVA 的类
MdoEnv来保存 MindOpt 的全局环境。这不是必要的,但如果创建了这个全局环境,那么它必须作为构造函数参数的一部分传递给MdoModel。
2.2.6.5. 0.16.0 版本¶
发布日期: 2022/01/30
更新摘要
单纯形法和内点法稳定性提升。
新增凸 二次规划(QP) (Convex QP)内点法。
修复API中的一些 bug (
Mdo_setElements)。新增下列 API:
C API:
Mdo_setQuadraticElements,Mdo_getQuadraticElements,Mdo_deleteQuadraticElements.C++ API:
MdoModel::setQuadraticElements,MdoModel::getQuadraticElements,MdoModel::deleteQuadraticElements.Python API:
MdoModel.set_quadratic_elements,MdoModel.get_quadratic_elements,MdoModel.delete_quadratic_elements.JAVA API:
MdoModel.setQuadraticElements,MdoModel.getQuadraticElements,MdoModel.deleteQuadraticElements.
新增参数名和属性名,如:
C API:
MDO_INT_PARAM_METHOD,MDO_INT_ATTR_MIN_SENSE等。C++ API:
MDO_INT_PARAM::METHOD,MDO_INT_ATTR::MIN_SENSE等。Python API:
MDO_STR_PARAM.METHOD,MDO_INT_ATTR.MIN_SENSE等。JAVA API:
MDO.INT_PARAM_METHOD,MDO.INT_ATTR_MIN_SENSE等。
2.2.6.7. 0.15.0 版本¶
发布日期: 2021/09/30
更新摘要
新增网络流单纯形法和多线程单纯形法。
单纯形法和内点法稳定性提升。
优化数据读取模块。
API 变更
- 新增下列 API:
C API:
Mdo_setStrAttr,Mdo_getStrAttr.C++ API:
MdoModel::setStrAttr,MdoModel::getStrAttr.Python API:
MdoModel.set_str_attr,MdoModel.get_str_attr.
新增下列整型参数:
EnableNetworkFlow、SPX/PrimalPricing、SPX/DualPricing。变更下列整型参数:
Presolve、Method。新增模型属性:
ProbName。新增返回错误码:
MDO_HOME_ENV_NOT_FOUND、MDO_LIB_FOLDER_NOT_FOUND。
2.2.6.8. 0.14.0 版本¶
发布日期: 2021/08/30
更新摘要
Simplex 和 IPM 算法性能提升。
新增 C/CPP/Python 的
IISAPI(试用)。新增对 Floating License 的支持(试用)。
新增 Python
quicksumAPI,并优化 Python API 的设计。新增
AMPL/Pyomo建模语言的接口和应用,以及相应的例子。新增对 Java API 的支持。
错误修复
API bug 修复。
2.2.6.9. 0.13.0 版本¶
发布日期: 2021/03/15
更新摘要
提升API功能,如:批次增加行与列等。
提升了单纯形法和内点法的性能和数值稳定性。
支持建模语言
PuLP。支持使用者自定义环境变量来指定许可证(license)文件的存放目录。
API 变更
添加了下列整数型参数:
"SPX/CrashStart"。变更了下列整数型属性:
"Spx/NumIters"改为"SPX/NumIters"。
2.2.6.13. 0.11.0 版本¶
发布日期: 2020/11/30
更新摘要
加入新的 C++ API 和 Python API。
加入了新的内点法和并发优化方法。
提升了单纯形法的性能和数值稳定性。
错误修复
修复了与输出解相关的错误。
修复了 LP reader 中的错误。
API 变更
添加了下列整数型參數:”IPM/MaxIterations”。
添加了下列实数型參數:”SolutionTime”、”IPM/PrimalTolerance”、”IPM/DualTolerance”、和”IPM/GapTolerance”。