2.2. Change Log¶
2.2.1. V2.0.0¶
Released: 2024/10/24
Introduced
MATLAB
API along with documentation and examples.Supported QCP, MIQP and MIQCP modeling.
Add community edition license type.
Added new parameters
MIP/EnableLazyConstr
,NumericFocus
.
2.2.2. V1.3.0¶
Released: 2024/07/24
Added new parameters
MIP/NumericFocus
to set efforts spent on detecting and handling numerical that may occur.Added some examples about java/c# sdk.
Algorithm performance improvements and bug fixes.
2.2.3. V1.2.1¶
Released: 2024/05/10
Added new parameters
OutputFlag
,LogToConsole
,LogFile
are used to control output logs.Fixed the defect of too many iterations when solving some QP problems.
2.2.5. V1.1.0¶
Released: 2024/01/30
MILP and QP algorithm performance improvements.
Added 5 new tunable parameters for MILP.
Added new parameter
SolutionNumber
to retrieve multiple suboptimal solutions of MIP solving process.Introduced
C#
API along with documentation and examples.Support for invoking MindOpt in
Julia
usingJuMP
andAmplNLWriter.jl
packages.Refined the license verification scheme.
Bug fixes
Fix a precision bug in writing Lpf.
Fix a bug in reporting solution time for concurrent optimization.
Fix an iteration limit bug for concurrent optimization.
Fix a bug in hot-start for simplex method.
Fix a bug in counting dense columns for QP problems.
Fix a bug in preprocessing for QP problem.
2.2.6. V1.0.1¶
Released: 2023/11/20
Add a new license type to support the purchase of solver licenses for a custom time.
Algorithm performance improvements and bug fixes.
2.2.7. V1.0.0¶
Released: 2023/10/12
Introduce a new MindOpt SDK API and corresponding code examples
Add features like MILP’s warm start, SOS constraints and Indicator constraints
Add IIS solving functionality, and upgrade LP’s IIS solving module
Add Callback functionality
Add support for
qps
format for input filesImprove pipeline of concurrent optimization methods
Providing primal-dual feasible solution for LP
Algorithm performance improvements and bug fixes
2.2.8. V0.25.0¶
Release date: 2023/08/08
Improved the performance and the numerical stability of the interior point solver.
Improved the performance of Python API.
Improved the stability of the IIS algorithm.
Intorudced new IIS algorithm for MILP.
API changes
New error codes:
MDO_INVALID_ARGUMENT (-3)
,MDO_IIS_NUMERIC (-30000)
,MDO_IIS_NO_SOLN (-3004)
,MDO_IIS_FEASIBLE (-3005)
.New attributes:
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
.Updated APIs:
C API:
Mdo_computeIIS
.C++ API:
MdoModel::computeIIS
.Python API:
MdoModel.compute_iis
.JAVA API:
MdoModel::computeIIS
.New integer parameters:
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
.New real parameters:
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
Fixed an API bug related to SDP.
Fixed a performance issue related to row deletion.
Fixed a few bugs in MPS reader and LPF reader.
2.2.9. V0.24.1¶
Released: 2023/04/23
Add Linux ARM and Apple Silicon installation packages, Installer Download
Add pip install for Python library, see Method 1: Install via pip install (recommended)
Improve MILP solver performance
Rename data desensitization interface names as
--sanitize
and--undo_sanitize
, see Data Desensitization
2.2.10. V0.24.0¶
Released: 2023/03/30
Improve performance of the MILP solver. Official release version. All cloud authentication accounts are open to use, and there is no need to apply for a special license
Improve performance of concurrency optimization methods
Redesign code in IPM’s Cholesky factorization
API changes
Add a new command line function for data desensitization, see Data Desensitization for details:
--desensitize
is used to desensitize the model file of the optimization problem. By removing the data with business information such as variable names and constraint names, only the numerical data that cannot see the business scenario is left
--sensitize
is used to restore sensitized filesNew integer parameters:
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
Added error code:
MDO_MODEL_INVALID_CHAR_ATTR (-2014)
,MDO_MODEL_INVALID_ATTR_NAME (-2019)
Bug fixes
Fix the bug of
Mdo_loadProb
APIFix the bug of LP writer and MPS writer, and fix the bug of writing GZ/BZ2 compression format
Fix a bug related to
Mdo_copyMdl
Fix a minor bug in the AMPL application (
mindoptampl
)
2.2.12. V0.23.0¶
Released: 2022/11/25
Add Semi-Definite Programming (SDP) related APIs, add support for
dat-s
format for input filesAdd the .nl format documentation description. There are .nl file examples in the ampl folder of the installation package examples, which can be directly invoked with the
mindoptampl filename.nl
commandFix a small bug in LPF reader
Fix some bugs in MILP solution
API changes
Update 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
Add 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
Add 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)
Change error codes:
MDO_LIB_FOLDER_NOT_FOUND (-12)
is replaced byMDO_DLL_ERROR (-12)
Add properties:
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.13. Previous version¶
2.2.13.1. V0.20.2 (Released: 2022/10/24)¶
Fix some bugs
2.2.13.2. V0.20.1 (Released: 2022/09/21)¶
Optimize algorithms for solving mixed integer linear programming problems (MILP)
Fix some bugs
2.2.13.3. V0.20.0 (Released: 2022/08/31)¶
Add a branch-and-cut solver for solving Mixed-Integer Linear Programming (MILP) problems.
Add support for Mixed Integer Linear Programming (MILP) interfaces to AMPL.
Optimize license verification. New authentication logic modification:
For optimization problems with less than 300 variables and constraints, it can be solved without a license authorization file (mindopt.lic or fl_client.ini).
A license is only required to solve LP and QP problems with more than 300 variables and constraints. The license self-service application method that has been launched can obtain the authorization file. Please refer to License Setup.
Note: For the license of MILP-type problem solving, it is only supported to send us an email application, and then manually grant permissions. Please refer to the contact information provided in Contact Us.
Optimize installation package:
The installation script on Linux and macOS is optimized. No additional parameters are required when running the script. The installation path will be confirmed interactively when the script is running. It also supports custom paths. Environment variables are automatically configured after the installation is complete. Repeated Windows installations will remind you.
Fix the following bugs:
Optimize MdoEnv related
Fix a bug where the objective maximized mutual QPS readers
Fix a bug related to objective scaling
Fix a minor bug related to the Interior point method
Fix a bug in dual solution output
Add the following APIs:
C API:
Mdo_relaxIntegrality
C++ API:
MdoModel::relaxIntegrality
Python API:
MdoModel.relax_integrality
JAVA API:
MdoModel.relaxIntegrality
Add new exception return codes:
MDO_ABORT_NODE_LIMIT
(-9003),MDO_ABORT_STALLING_NODE_LIMIT
(-9004),MDO_ABORT_SOLVER_NOT_AVAILABLE
(-9012)And modify the code value of a return code
MDO_ABORT_INVALID_METHOD
from -9003 to -9011
New integer parameters:
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
New real parameter:
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
New parameters in the AMPL interface:
Integer parameters: mip_max_nodes, mip_root_parallelism
Real parameters: mip_gap_abs, mip_gap_rel, mip_integer_tolerance, mip_objective_tolerance
Command changes for command-line tools:
Update directive:
- -disable_file_output (or -d)
: Disable output of the solver’s solution (.bas and .sol files)New directives have been added:
- -relax (or -r)
: Relax all integerity requirements in the problem
2.2.13.4. V0.19.0 (Released 2022/04/10)¶
Improve stability of simplex method and interior point method
The license manager is redesigned
The AMPL interface is updated to support convex QP problems
Fix the following bugs:
Fix a minor bug related to the simplex method
Fix a bug related to the concurrent optimization method
Add the following APIs:
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
Add C++/Python/JAVA class
MdoEnv
to save MindOpt global environment. This is not necessary, but if this global environment is created then it must be passed toMdoModel
as part of the constructor parameters
2.2.13.5. V0.16.0 (Released 2022/01/30)¶
Improve stability of simplex method and interior point method
Add convex Quadratic Programming (QP) (Convex QP) interior point method
Fix some bugs in API (
Mdo_setElements
).Add the following APIs:
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
Add parameter names and attribute names, such as:
C API:
MDO_INT_PARAM_METHOD
,MDO_INT_ATTR_MIN_SENSE
, etc.C++ API:
MDO_INT_PARAM::METHOD
,MDO_INT_ATTR::MIN_SENSE
, etc.Python API:
MDO_STR_PARAM.METHOD
,MDO_INT_ATTR.MIN_SENSE
, etc.JAVA API:
MDO.INT_PARAM_METHOD
,MDO.INT_ATTR_MIN_SENSE
, etc.
2.2.13.6. V0.15.1 (Released 2021/10/30)¶
Fix some bugs in network flow simplex method
Python 3.10 is supported
2.2.13.7. V0.15.0 (Released 2021/09/30)¶
Add network flow simplex method and multithreaded simplex method
Improve stability of simplex method and interior point method
Optimize the data reading module
API changes
- Add the following API:
C API:
Mdo_setStrAttr
,Mdo_getStrAttr
C++ API:
MdoModel::setStrAttr
,MdoModel::getStrAttr
Python API:
MdoModel.set_str_attr
,MdoModel.get_str_attr
Add the following integer parameters:
EnableNetworkFlow
,SPX/PrimalPricing
,SPX/DualPricing
Change the following integer parameters:
Presolve
,Method
Add model properties:
ProbName
Add return error code:
MDO_HOME_ENV_NOT_FOUND
,MDO_LIB_FOLDER_NOT_FOUND
2.2.13.8. V0.14.0 (Released 2021/08/30)¶
Improve stability of simplex method and interior point method
Add
IIS
API for C/CPP/Python (beta)Add support for Floating License (Trial)
Add Python
quicksum
API, and optimize the design of Python APIAdd
AMPL
/Pyomo
modeling language interface and application, and corresponding examplesAdd support for Java API
BUG FIX
API bug fixes
2.2.13.9. V0.13.0 (Released 2021/03/15)¶
Improve API functions, such as adding rows and columns in batches, etc.
Improve performance and numerical stability for simplex and interior point methods
Support for the modeling language
PuLP
Support user-defined environment variables to specify the storage directory of license files
API changes
Add the following integer parameter:
"SPX/CrashStart"
Change the following integer properties:
"Spx/NumIters"
to"SPX/NumIters"
2.2.13.10. V0.12.1 (Released 2021/01/11)¶
Improve Python installation steps
Support Python 3.9
Improve the solution efficiency of interior point method
2.2.13.11. V0.12.0 (Released 2020/12/15)¶
Support for remote computing services
2.2.13.12. V0.11.1 (Released 2020/12/08)¶
Update the output method and fixed some minor issues
2.2.13.13. V0.11.0 (Released 2020/11/30)¶
Add new C++ API and Python API
Add new interior point method and concurrent optimization method
Improve performance and numerical stability of the simplex method
Bug fix
Fix a bug related to the output solution
Fix bugs in LP reader
API changes
Add the following integer parameter: “IPM/MaxIterations”
Add the following real parameters: “SolutionTime”, “IPM/PrimalTolerance”, “IPM/DualTolerance”, and “IPM/GapTolerance”
2.2.13.14. V0.10.0 (Released 2020/09/02)¶
Improve simplex algorithm
Add new API to output solution and basis to file
Output solutions and basis to file when using command line tools
2.2.13.15. V0.9.1 (Released 2020/08/26)¶
Fix a bug related to debug messages
Fix symbol issue
Improve license manager
2.2.13.16. V0.9.0 (Released 2020/08/14)¶
This is the first public release of MindOpt