2.2. 变更日志¶
2.2.1. V1.3.0¶
发布日期: 2024/07/24
- 更新摘要
新增参数
MIP/NumericFocus
用于控制MILP求解中检测和处理数值问题的关注程度。新增java/c# sdk的代码示例。
算法性能提升与bug修复。
2.2.2. V1.2.1¶
发布日期: 2024/05/10
- 更新摘要
新增参数
OutputFlag
,LogToConsole
,LogFile
用于控制输出日志。修复了部分 QP 问题求解时迭代次数过多的缺陷。
2.2.3. V1.2.0¶
发布日期: 2024/04/10
- 更新摘要
新增参数
PostScaling
。
2.2.4. V1.1.0¶
发布日期: 2024/01/30
- 更新摘要
MILP 与 QP 算法性能提升。
新增5个 MILP 可调参数。
新增参数
SolutionNumber
用于获取 MIP 求解中的多个次优解。新增
C#
API 及文档、示例。支持在
Julia
中通过JuMP
和AmplNLWriter.jl
调用 MindOpt。完善了 license 校验方案。
问题修复
修复了写 Lpf 的精度bug。
修复了并行求解时,求解时间报告不正确的bug。
修复了并行求解时,因迭代次数限制而导致所有求解任务终止的bug。
修复了单纯形法热启动相关的bug。
修复了 QP 问题求解中 dense column 数量统计的bug。
修复了 QP 问题求解中预处理方法的bug。
2.2.5. V1.0.1¶
发布日期: 2023/11/20
- 更新摘要
新增一种许可证类型,以支持在公有云上购买自定义时间的求解器授权。
算法性能提升与bug修复。
2.2.6. V1.0.0¶
发布日期: 2023/10/12
- 更新摘要
提供全新的 MindOpt SDK API 和相应的代码示例.
新增 MILP 的 热启动(warm start) 和 SOS约束 和 Indicator约束.
新增 MILP 的 IIS 求解功能,升级 LP 的 IIS 求解模块。
新增回调函数功能 (Callback).
输入文件增加支持
qps
格式。改进了并发优化方法 (concurrent optimization method) 的算法流程。
提供了线性规划问题的 primal-dual feasible solution.
算法性能提升与bug修复。
2.2.7. V0.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.8. V0.24.1¶
发布日期: 2023/04/23
更新摘要
新增Linux ARM 和 Apple Silicon 安装包, 下载安装包
新增pip install安装Python库,详见 方式一:通过 pip install 安装 (推荐)
提高了MILP求解器的性能。
数据脱敏的接口名修改为
--sanitize
和--undo_sanitize
,用法见 数据脱敏。
2.2.9. V0.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_loadProb
API 的bug。修复LP writer 和 MPS writer的bug,并修复写GZ/BZ2压缩格式的bug。
修复一个关联
Mdo_copyMdl
的bug。修复一个AMPL 应用 (
mindoptampl
)的小bug。
2.2.10. V0.23.1¶
发布日期: 2022/12/21
更新摘要
新增适配Apple M1芯片的安装包
2.2.11. V0.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.12. 之前版本¶
2.2.12.1. V0.20.2¶
发布日期: 2022/10/24
更新摘要
修复一些bug。
2.2.12.2. V0.20.1¶
发布日期: 2022/09/21
更新摘要
优化混合整数线性规划问题(MILP)的求解算法。
修复一些bug。
2.2.12.3. V0.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/RootParallelism
C 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/GapRel
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
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.12.4. V0.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.12.5. V0.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.12.6. V0.15.1¶
发布日期: 2021/10/30
更新摘要
修复网络流单纯形法中的一些 bug。
支持Python 3.10。
2.2.12.7. V0.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.12.8. V0.14.0¶
发布日期: 2021/08/30
更新摘要
Simplex 和 IPM 算法性能提升。
新增 C/CPP/Python 的
IIS
API(试用)。新增对 Floating License 的支持(试用)。
新增 Python
quicksum
API,并优化 Python API 的设计。新增
AMPL
/Pyomo
建模语言的接口和应用,以及相应的例子。新增对 Java API 的支持。
错误修复
API bug 修复。
2.2.12.9. V0.13.0¶
发布日期: 2021/03/15
更新摘要
提升API功能,如:批次增加行与列等。
提升了单纯形法和内点法的性能和数值稳定性。
支持建模语言
PuLP
。支持使用者自定义环境变量来指定许可证(license)文件的存放目录。
API 变更
添加了下列整数型参数:
"SPX/CrashStart"
。变更了下列整数型属性:
"Spx/NumIters"
改为"SPX/NumIters"
。
2.2.12.10. V0.12.1¶
发布日期: 2021/01/11
更新摘要
改进Python安装步骤。
支持Python 3.9。
改进内点法求解效率。
2.2.12.11. V0.12.0¶
发布日期: 2020/12/15
更新摘要
支持远程计算服务。
2.2.12.12. V0.11.1¶
发布日期: 2020/12/08
更新摘要
更新了输出方式并修复了一些小问题。
2.2.12.13. V0.11.0¶
发布日期: 2020/11/30
更新摘要
加入新的 C++ API 和 Python API。
加入了新的内点法和并发优化方法。
提升了单纯形法的性能和数值稳定性。
错误修复
修复了与输出解相关的错误。
修复了 LP reader 中的错误。
API 变更
添加了下列整数型參數:”IPM/MaxIterations”。
添加了下列实数型參數:”SolutionTime”、”IPM/PrimalTolerance”、”IPM/DualTolerance”、和”IPM/GapTolerance”。
2.2.12.14. V0.10.0¶
发布日期: 2020/09/02
更新摘要
改进了单纯形算法。
添加了新的 API 以将解和基输出到文件。
当使用命令行工具时将解和基输出到文件。
2.2.12.15. V0.9.1¶
发布日期: 2020/08/26
更新摘要
修复了与调试消息有关的错误。
修复了符号问题。
改进了许可证管理器。
2.2.12.16. V0.9.0¶
发布日期: 2020/08/14
更新摘要
这是 MindOpt 的第一个公开版本。