2.2. Changelog

2.2.1. MindOpt 0.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.2. MindOpt 0.24.1

Release date: 2023/04/23

Release notes

2.2.3. MindOpt 0.24.0

Release date: 2023/03/30

Release notes

  • Improved the performance of MILP solver. A formal release version. Open to use.

  • Improved the performance of the concurrent optimization method.

  • Redesigned the Cholesky factorization code in IPM.

  • API changes

    • New comand-line function, see Sanitize Model Files for details:

      • --desensitize to desensitize optimize problem model files, by removing the names of variables and constraints so that only leave the numerical values of the model.

      • --sensitize to recover the model which has been desensitized.

    • New 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.

    • New error codes:

      • MDO_MODEL_INVALID_CHAR_ATTR (-2014), MDO_MODEL_INVALID_ATTR_NAME (-2019).

  • Bug fixes

    • Fixed a bug in API Mdo_loadProb .

    • Fixed a minor bug in MPS writer when GZ/BZ2 compression format is required.

    • Fixed a bug in LPF writer and MPS writer.

    • Fixed a bug related to Mdo_copyMdl .

    • Fixed a minor bug in the AMPL application ( mindoptampl ).

2.2.4. MindOpt 0.23.1

Release date: 2022/12/21

Release notes
  • Add the Installation package for Apple M1.

2.2.5. MindOpt 0.23.0

Release date: 2022/11/25

Release notes
  • Introduced new APIs for semidefinite optimization modeling.

  • Add introduction of .nl files, there are .nl file examples in ampl folder, you can use mindoptampl filename.nl to solve it.

  • Bug fixes

    • Fixed a minor bug in LPF reader.

    • Fixed bugs for MILP solver.

  • API changes

    • Updated 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.

    • New 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.

    • New 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 by MDO_DLL_ERROR (-12)

    • New attribute:

      • 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. Previous versions

2.2.6.1. MindOpt 0.20.2

Release date: 2022/10/24

Release notes
  • Bug fixes.

2.2.6.2. MindOpt 0.20.1

Release date: 2022/09/21

Release notes
  • Improved the performance of MILP.

  • Bug fixes.

2.2.6.3. MindOpt 0.20.0

Release date: 2022/08/31

Release notes

  • Introduced an experimental branch-and-cut solver for mixed-integer linear optimization.

  • Upgraded AMPL interface to support mixed-integer linear optimization.

  • Redesigned license manager.A new authentication logic modification:

  • Optimization problems with variables and constraints less than 300 can be solved without License authorization files (mindopt.lic or fl_client.ini);

  • Only LP and QP problems with variables and constraints greater than 300 need the License file. Please refer to License settings to get the License automatically.

  • Note: For the License of solving MILP problems, you need send us an email application, and then we will manually operate to grant permissions. The email is in Contact us .

  • Installation package optimization:

  • Optimize the .sh script for installing on Linux and macOS. No additional parameters need to be added. The script will interactively confirm the installation path and support custom paths. Environment variables will be automatically configured after installation, and reminders will be given when checked a repeated installation on Windows.

  • Bug fixes

    • Fixed a minor issue related to MdoEnv.

    • Fixed a bug related to QPS reader when the objective sense is of maximization.

    • Fixed a bug related to objective scaling method.

    • Fixed a minor bug in interior point method.

    • Fixed a bug related to the dual solution output.

  • API changes

    • New APIs:

    • C API: Mdo_relaxIntegrality.

    • C++ API: MdoModel::relaxIntegrality.

    • Python API: MdoModel.relax_integrality.

    • JAVA API: MdoModel.relaxIntegrality.

    • New optimization result codes:

    • MDO_ABORT_NODE_LIMIT (-9003), MDO_ABORT_STALLING_NODE_LIMIT (-9004), MDO_ABORT_SOLVER_NOT_AVAILABLE (-9012).

    • Revised optimization result code:

    • MDO_ABORT_INVALID_METHOD: Error code number was changed 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 parameters:

    • 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 AMPL interface:

      • Integer parameters: mip_max_nodes, mip_root_parallelism.

      • Real parameters: mip_gap_abs, mip_gap_rel, mip_integer_tolerance, mip_objective_tolerance.

  • Commandline tool changes:

    • Updated option:

    • --disable_file_output (or -d) : disable solution (.bas and .sol files) output.

    • New option:

    • --relax (or -r) : relax all integrality requirements in the problem.

2.2.6.4. MindOpt 0.19.0

Release date: 2022/04/10

Release notes

  • Improved the performance of the Simplex method.

  • Redesigned license manager.

  • Upgraded AMPL interface to support convex QP problems.

  • Bug fixes

    • Fixed a minor issue related to the Simplex method.

    • Fixed a bug related to concurrent optimization method.

  • API changes

    • New 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.

    • A new C++/Python/JAVA class MdoEnv to hold the MindOpt global environment is now added. This environment is not required. However, if this global environment is created, then it must be passed to MdoModel as part of the constructor arguments.

2.2.6.5. MindOpt 0.16.0

Release date: 2022/01/30

Release notes

  • Improved the performance and stability of both Simplex method and interior point method.

  • Introduced interior point method for convex QP.

  • Bug fixes

    • Fixed a few bugs related to API and AMPL interface.

    • Fixed a bug thread safety IIS computation.

    • Fixed a bug related to thread safety.

    • Improved the design of Python API.

  • API changes

    • New 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.

    • New alias for parameters and attributes, for example:

    • 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.6.6. MindOpt 0.15.1

Release date: 2021/10/30

Release notes

  • Fixed minor bugs in Simplex method and interior point method.

  • Supported Python 3.10.

2.2.6.7. MindOpt 0.15.0

Release date: 2021/09/30

Release notes

  • Introduced network Simplex method and multi-threading Simplex method.

  • Improved the performance and stability of both Simplex method and interior point method.

  • Improved the reader.

  • API changes

    • New parameters.

      • EnableNetworkFlow

      • SPX/PrimalPricing

      • SPX/DualPricing

    • Updated parameters.

      • Presolve

      • Method

    • New error codes:

      • MDO_HOME_ENV_NOT_FOUND

      • MDO_LIB_FOLDER_NOT_FOUND

    • New string attribute:

      • ProbName

    • New APIs:

    • C API: Mdo_setStrAttr, Mdo_getStrAttr

    • C++ API: MdoModel::setStrAttr, MdoModel::getStrAttr

    • Python API: MdoModel.set_str_attr, MdoModel.get_str_attr

2.2.6.8. MindOpt 0.14.0

Release date: 2021/08/30

Release notes

  • Introduced AMPL interface.

  • Introduced PYOMO interface.

  • Intrudiced JAVA API.

  • Introduced floating license manager (experimental).

  • Introduced a new API for IIS computation (experimental).

  • Improved the performance of both Simplex method and interior point method.

  • Redesigned Python API.

  • Fixed an API bug related to row deletions and column deletions.

  • Fixed an API bug while inputting rows (resp. columns) without row names (resp. column names).

  • Fixed an API bug while retrieving the LHS value of the constraint matrix.

2.2.6.9. MindOpt 0.13.0

Release date: 2021/03/15

Release notes

  • Improved the overall design of API.

  • Fixed a few bugs.

  • Improved the performance of the interior point solver related to dense column handling.

  • Introduced the following attribute:

    • IPM/NumIters: return the number of interior point iterations.

2.2.6.10. MindOpt 0.12.1

Release date: 2021/01/11

Release notes

  • Improved the performance of the interior point solver.

  • Simplified the installation process for Python.

  • Supported Python 3.9.

  • Fixed a few bugs.

2.2.6.11. MindOpt 0.12.0

Release date: 2020/12/15

Release notes

  • Introduced remote computing service

2.2.6.12. MindOpt 0.11.1

Release date: 2020/12/08

Release notes

  • Fixed a few bugs about the solution output.

2.2.6.13. MindOpt 0.11.0

Release date: 2020/11/30

Release notes

  • Introduced C++ API and Python API.

  • Introduced an interior point method and a concurrent optimization method.

  • Redesigned the simplex method to improve the performance and the numerical stability.

Bug fixes

  • Fixed a bug related to the solution output.

  • Fixed a bug in LP reader.

API changes - The following integer attribute was added: “IPM/MaxIterations”. - The following real attributes were added: “SolutionTime”, “IPM/PrimalTolerance”, “IPM/DualTolerance”, “IPM/GapTolerance”.

2.2.6.14. MindOpt 0.10.0

Release date: 2020/09/02

Release notes

  • Improved the simplex method.

  • Add APIs and Commandline options for the writing the solution and basis to files.

2.2.6.15. MindOpt 0.9.1

Release date: 2020/08/26

Release notes

  • Fixed errors related to debugging messages.

  • Fixed the symbol problem.

  • Improved license manager.

2.2.6.16. MindOpt 0.9.0

Release date: 2020/08/14

Release notes

  • the first release to public.