Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Pulp interface xpress py (coin-or#560)
* Add an alias for the Xpress command line solver. * Implement a solver that uses the XPRESS Python API. * Added XPRESS_PY solver to tests * Fix casting of control value: last attempt should change a string. * Fix checking for flush messages. * Mention warmstart support in documentation. * Support warmstart also for non-MIP. * Fix handling of infeasible cases. If there is no solution then `getlpsol()` and/or `getmipsol()` will raise an exception. * Expect that `XPRESS_PY` errors on duplicate names. * Map XPRESS exceptions to PulpSolverError. * Formatted xpress_api.py to pass PR checks * Add support SOS constraints. * Fixed handling of SOS constraints. - There was a typo in the code that handles SOS. - If there are SOS constraints, then the model is a MIP from XPRESS' point of view. - In the console we should use `LPOPTIMIZE` and `MIPOPTIMIZE` rather than `MINIM`/`MAXIM` followed by `GLOBAL`. The latter approach seems to have problems with models that contain SOSs but no integer variables. * Adapt expected results for `XPRESS_CMD`. This interface is an alias for `XPRESS` and thus behaves the same. * Get back things that were list during rebase. * Fix formatting. * Remove unused argument. * Rename `_xprs` attribute to `solverModel` to align with documentation. * Split `_solve()` into `callSolver()` and `findSolutionValues()`. This aligns the code with the documentation. * Align solution proocess to documentation. Solving a model is now performed in three steps: - self.buildSolverModel() - self.callSolver() - self.findSolutionValues() This aligns the code to the way how adding 3rd party solvers is documented. * Change definition of alias. * Fix some problems that the reviewer found. Co-authored-by: Chris Brown <[email protected]>
- Loading branch information