Here [Breaking] means the change that may break valid user code, [Fix] - a bug fix.
- [New] Updated Gurobi to 12.0
- [New] CPLEXCallback: addLazy and addCut now support an optional parameter local, specifying if the added constraint is locally valid (value = 1) or globally valid (value = 0 - default)
- [Fix] Python: fixed an issue arising when inheriting from solver-specific callback classes
- [New] Python: Added
Constraint.to_string
andAMPLModel.add_constraint
- [New] Python: added parameter
import_entities
to the methodamplpy.AMPL.import_solution
to import entities added via AMPLS back to the amplpy model
- [New] Python: added parameter
keep_files
to the methodamplpy.AMPL.import_solution
that if set to true, keeps the exported row, col and NL files
- [[Fix]] Row and column files written to the temporary directory when exporting from AMPLAPI or amplpy are now removed
- [New] Added Python examples in python/examples
- [Fix] Python:
get_solution_dict
andgetSolutionDict
- [Fix] Gurobi: getting solution vector and objective bounds in callbacks at MIPSOL and MIPNODE
- [New] Added SolverAttributes::INT_NumIntegerVars
- [Fix] Various bug fixes
- [Breaking] ampls::CPLEXCallback is now using the generic callbacks. Note that multithreading is not disabled by default but implementation needs extra care.
- [Breaking] Solver and solver driver related errors in Python are now thrown as ampls.AMPLSolverException
- [Fix] Fixed python wrappers for AMPLModel.*etAMPLParameter and AMPLModel.getStatus
- [New] Added AMPLModel::infinity() and AMPLModel::negInfinity() to use when creating new entities with no bounds
- [Fix] A problem arising when replaying in AMPL new entities recorded with AMPLModel::record()
- [Fix] Mapping of callback information in BaseCallback::getValue()
-
[New] Added parameter to
AMPLModel::load()
andAMPLAPIInterface::exportModel<T>()
to specify options when loading the model. Necessary for options that involve the solver driver -
[Breaking] Renamed
BaseCallback::checkCanDo
tocanDo
-
Options handling:
- [Breaking] Renamed the function
AMPLModel::getIntOptionValue
toAMPLModel::getIntOption
- [New] Implemented
AMPLModel::getDoubleOption
andAMPLModel::getStringOption
- [Breaking] Renamed the function