Releases: scipopt/PySCIPOpt
v6.1.0 - Bugfixing, matrix and expression performance, better stubs
This was a very active month. Thank you to @Zeroto521 for all your work on improving PySCIPOpt's performance, and thank you, @jonathanberthias, for the introduction and continued support of type stubs. Thank you to all the others who helped during this time, either with PRs or by reporting bugs.
Several of the repo's oldest issues have been addressed (for the curious, #1150, #993, #1161, #1151, #1132).
PySCIPOpt is entering a new phase, with more people contributing and becoming active participants in the repo. Makes me very happy; it's a sign of a vibrant community. This does increase the maintenance effort, so if you would like to help in that regard, please contact me by email (joao.goncalves.dionisio@gmail.com).
What's Changed
- Raise error when fundamental callback is not implemented by @Joao-Dionisio in #1123
- Restore Linux ARM64 wheel builds (manylinux_2_28_aarch64) by @Joao-Dionisio in #1126
- Check Existence of lib when building using custom scip installation by @gtjusila in #1127
- fix: set proper include and lib paths for building within conda by @mdealencar in #1125
- Appeal for volunteers and IISfinder documentation fixes by @Joao-Dionisio in #1122
- enablepricing default set to True by @Joao-Dionisio in #1137
- Update stubs for latest changes by @jonathanberthias in #1140
- Run
stubtestto check stubs are complete by @jonathanberthias in #1141 - Speed up
MatrixExpr.sum(axis=...)viaquicksumby @Zeroto521 in #1135 - Store IIS result in PyiisfinderExec() by @Joao-Dionisio in #1146
- Automating the generation of type stubs by @Joao-Dionisio in #1142
- Use real parameter names in stubs by @jonathanberthias in #1145
- fix lotsizing_lazy example by @Joao-Dionisio in #1150
- use new event in primal dual recipe by @Joao-Dionisio in #1160
- Fixes potentially outdated value of getVal by @mmghannam in #993
- Add setTracefile() method for structured optimization progress loggingAdd settracefile api by @MySweetEden in #1158
- Speed up
Constant @ MatrixExprby @Zeroto521 in #1159 - Increase minimum numpy version to 1.19.0 by @Joao-Dionisio in #1162
- Speed up
MatrixExpr.add.reduceviaquicksumby @Zeroto521 in #1157 - BUG: can't call
getValfromGenExprby @Zeroto521 in #1148 - Fix segfault when calling getSolTime on infeasible model's solution by @Joao-Dionisio in #1167
- Fix free transform segfault by @Joao-Dionisio in #1161
- API: use
__array_ufunc__as numpy ufunc enter by @Zeroto521 in #1163 - BUG: numpy 1.16 doesn't support
@np.vectorizedecorator syntax by @Zeroto521 in #1164 - BUG: Raise
NotImplementedErrorforMatrixExprCons.__eq__by @Zeroto521 in #1171 - DEP: remove
__next__from Expr by @Zeroto521 in #1169 - Improve stub generating script and add disabled-by-default workflow for regenerating stubs by @Joao-Dionisio in #1152
- Add
getPrimalDualIntegral()from C API by @justinokamoto in #1174 - API: Set
__array_priority__forMatrixExprandMatrixExprConsby @Zeroto521 in #1172 - Change
addConsLocal(),addConsNode()to accept ExprCons by @Joao-Dionisio in #1151 - Extend Functionality to Use the Presolver Plugin and Add a Tutorial by @fvz185 in #1076
- improve chgReoptObjective performance by @a-schmitt in #1178
- DEP: remove
_is_number(Expr)from expr.pyi file by @Zeroto521 in #1168 abs(abs(x))should returnabs(x)rather thanabs(abs(x))by @Zeroto521 in #1176- Speed up
Expr * Exprby @Zeroto521 in #1175 - API:
Model.getSolValsupportsMatrixExprby @Zeroto521 in #1183 - getTermsQuadractic correctly returns linear terms by @Joao-Dionisio in #1132
- Release 6.1.0 by @Joao-Dionisio in #1181
New Contributors
- @mdealencar made their first contribution in #1125
- @MySweetEden made their first contribution in #1158
- @justinokamoto made their first contribution in #1174
- @fvz185 made their first contribution in #1076
- @a-schmitt made their first contribution in #1178
Full Changelog: v6.0.0...v6.1.0
v6.0.0 - Support for SCIP 10
We’re excited to announce a new release of PySCIPOpt adding compatibility with SCIP 10, the latest major version 🚀
The main features include support for finding IIS (Irreducible Infeasible Systems), and the possibility to solve your problem in Exact mode, without floating point precisions. You can now also use the writeStatisticsJson to get the run statistics in a json format.
Here is a list of changes:
Added
- Added support for IIS - Irreducible Inconsistent Subsystems
- Added 4 new events: TYPECHANGED, IMPLTYPECHANGED, DUALBOUNDIMPROVED, GAPUPDATED.
- Support for new implied integrality
- Wrapped varIsBinary(), varIsIntegral(), varIsImpliedIntegral(), varIsNonImpliedIntegral(), varGetImplType()
- Interfaced some exact SCIP methods
- wrapped SCIPprintStatisticsJson
Fixed
Changed
Removed
- Removed methods chgAndConsCheckFlagWhenUpgr, chgAndConsRemovableFlagWhenUpgr
v5.7.1
To correct mismatch between PyPi and Github versions.
v5.7.0
What's Changed
- Initialize stubs by @jonathanberthias in #1073
- Add back lost v5.6.0 changes by @mmghannam in #1080
- BUG: small patch to
_VarArraywhile inputting a matrix with length > 1 by @Zeroto521 in #1060 - BUG: change the type of
@result fromMatrixVariabletoMatrixExprby @Zeroto521 in #1059 - Add changelog entry for new stubs by @jonathanberthias in #1081
- API:
addMatrixConsIndicatorsupportsExprConsby @Zeroto521 in #1047 - Feature: Speed up
MatrixVariable.sum(axis=None)viaquicksumby @Zeroto521 in #1078 - Fix binary operations between
GenExprandMatrixExprby @jonathanberthias in #1071 - Use a dependency-group for testing by @jonathanberthias in #1082
- TST: test
matrix.sumcosting time by @Zeroto521 in #1085 - BUG: MatrixExpr can't be compared with Expr by @Zeroto521 in #1069
- attempt to fix pipelines by @Joao-Dionisio in #1087
- Fix pipelines by @Joao-Dionisio in #1088
- This is the one by @Joao-Dionisio in #1090
- Variables in exponent with basis other than e by @Joao-Dionisio in #1091
- Use optional dependencies instead of dependency groups by @jonathanberthias in #1093
- Allow to run integration tests on-demand by @jonathanberthias in #1095
- Specify test dependencies in requirements.txt files by @jonathanberthias in #1094
- Expose NODETYPE by @Joao-Dionisio in #1096
- Feature:
MatrixVariablesupports numpy broadcast feature by @Zeroto521 in #1092 - Fix dependencies installation when building wheels by @jonathanberthias in #1100
- Add wrappers for methods used in node selection by @mmghannam in #1099
- Fix the case of returning none from the nodeselect callback by @mmghannam in #1102
- Detect SCIP installation in conda environment if SCIPOPTDIR is not defined by @mmghannam in #1103
- Add the hybrid estimate in C-SCIP as an example by @mmghannam in #1104
- Update GH Actions macOS runner, update cibuildwheel for Python 3.14 build by @mkoeppe in #1105
- update setup.py w.r.t. SCIP 10 by @pfetsch in #1106
- Add three functions for variables by @pfetsch in #1107
- Update stubs with node selection methods by @jonathanberthias in #1101
- Some variable stubs by @Joao-Dionisio in #1110
- Manage benders subproblems memory in the master scip instance by @mmghannam in #1111
New Contributors
- @jonathanberthias made their first contribution in #1073
Full Changelog: v5.6.0...v5.7.0
v5.6.0
What's Changed
- release candidate by @Joao-Dionisio in #987
- Add support for knapsack constraints by @Joao-Dionisio in #975
- Fix some typos in the documentation by @Joao-Dionisio in #995
- Add missing numerical access functions by @chrhansk in #996
- Add feastol numerics checks by @Joao-Dionisio in #997
- Remove bogus execute permission and shebang line from sudoku example by @musicinmybrain in #1008
- Add venv instructions by @Joao-Dionisio in #1007
- Require binary variables in logical constraints by @Joao-Dionisio in #1005
- Fix tutorial model by @aapeliv in #1012
- Support for AND-constraints by @Joao-Dionisio in #980
- Feature: new method
addMatrixConsIndicatorby @Zeroto521 in #1024 - Feature: Matrix
summethod supports arguments inputting by @Zeroto521 in #1025 - Documentation Suggestions for build.rst and lp.pxi by @gtjusila in #1026
- Add SCIPvarMarkRelaxationOnly by @Joao-Dionisio in #1023
- Interface SCIPgetNLPBranchCands by @Joao-Dionisio in #1029
- Add getConsVals by @Joao-Dionisio in #1033
- Recipe for getting local constraints by @Joao-Dionisio in #1014
- Make pipeline more verbose by @Joao-Dionisio in #1037
- Add enableDebugSol following discussion on mailing list by @Joao-Dionisio in #1013
- Fix pipeline by @Joao-Dionisio in #1042
- Add getVarPseudocostScore and getVarPseudocost by @sirenard in #1041
- Fix debug command by @Joao-Dionisio in #1027
- API:
addMatrixConssupportsExprConsby @Zeroto521 in #1036 - Add getNBranchings and getNBranchingsCurrentRun by @sirenard in #1049
- BUG:
_VarArraycan't handleMatrixVarby @Zeroto521 in #1044
New Contributors
- @musicinmybrain made their first contribution in #1008
- @aapeliv made their first contribution in #1012
- @Zeroto521 made their first contribution in #1024
Full Changelog: v5.5.0...v5.6.0
v5.5.0
What's Changed
- Antonia errors after using the tutorial by @Opt-Mucca in #960
- Add getLinearConsIndicator by @Opt-Mucca in #961
- Fix minor typos in docstring and separator documentation by @Joao-Dionisio in #963
- add parameter set and get functions for lpi by @lidingxu in #965
- More LPI functions and optimality check by @lidingxu in #967
- Fixed bug when accessing matrix variable attributes by @Joao-Dionisio in #970
- update github actions by @Joao-Dionisio in #976
- Update INSTALL.md by @Joao-Dionisio in #974
- Don't run tests on draft PRs by @Joao-Dionisio in #979
- Add access functions for row duals by @chrhansk in #986
- Add deactivatePricer by @Joao-Dionisio in #973
- Fix master compatibility by @DominikKamp in #988
New Contributors
Full Changelog: v5.4.1...v5.5.0
v5.4.1
v5.4.0
What's Changed
- Add node cutoff by @Joao-Dionisio in #953
- Update README with usage request by @Joao-Dionisio in #952
- Add major / minor / tech versions by @Opt-Mucca in #956
- Added option for getting Lhs, Rhs of nonlinear constraints by @Joao-Dionisio in #935
- Fix syntax highlighting in README by @mmghannam in #958
- New matrix variable functionality by @Joao-Dionisio in #957
Full Changelog: v5.3.0...v5.4.0
v5.3.0
What's Changed
- Update steps to update documentation by @mmghannam in #925
- Primal-dual evolution event handler recipe by @Joao-Dionisio in #916
- Add _createConsBasicLinear by @Joao-Dionisio in #917
- solve problem with multi-threads by @liangbug in #918
- Allow writeProblem to write to stdout by @Joao-Dionisio in #926
- Added categorical data example by @Joao-Dionisio in #932
- Updates mac script to use precompiled version by @Opt-Mucca in #933
- Correct output redirection by @DominikKamp in #929
- Generic indicator names by @Joao-Dionisio in #930
- Add transformed option to getVarDict by @Joao-Dionisio in #934
- Fixed categorical data example #932 by @Jiunixo in #939
- add support for [get|set]HeurTiming by @pfetsch in #940
- Don't run extensive tests on every PR by @mmghannam in #943
- Added utility interface to SCIP for copyLargeNeighborhoodSearch and its prerequisites by @stefanmaak in #942
- Add type to loop variables only by @Joao-Dionisio in #947
- Mt/release 5 3 0 by @Opt-Mucca in #950
New Contributors
- @DominikKamp made their first contribution in #929
- @Jiunixo made their first contribution in #939
- @stefanmaak made their first contribution in #942
Full Changelog: v5.2.1...v5.3.0
v5.2.1
What's Changed
- Add parser to read SCIP statistics by @Joao-Dionisio in #859
- Relax stage for checking getObjVal, getVal by @Joao-Dionisio in #872
- Move doc generation to separate workflow by @mmghannam in #877
- Strong Branching by @Opt-Mucca in #873
- Adds bipartite graph function by @Opt-Mucca in #874
- Add release guide by @mmghannam in #878
- Fix path where version is loaded by @mmghannam in #879
- Expand getStatistics to allow unbounded, infeasible, and user-interrupted problems by @Joao-Dionisio in #871
- Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows by @dependabot in #886
- Add prototype for utils functions by @Joao-Dionisio in #880
- Migrate to Readthedocs and Sphinx by @Opt-Mucca in #890
- Add readthedocs.yaml by @Opt-Mucca in #891
- Remove import pyscipopt by @Opt-Mucca in #892
- Add pyscipopt as docu requirement by @Opt-Mucca in #893
- Update README with new docs. Move CONTRIBUTING to docs by @Opt-Mucca in #894
- Easier way to attach event handlers by @mmghannam in #895
- Add list of contributors by @Opt-Mucca in #897
- Add documentation for event handlers by @mmghannam in #898
- Update recommended version. We're currently on 9.1.0 by @Opt-Mucca in #899
- Change min requirement again by @Opt-Mucca in #900
- Change docstring style to numpydocs by @Opt-Mucca in #901
- Add dislcaimer. Remove incorrect warning by @Opt-Mucca in #902
- Remove duplicate entry in CHANGELOG by @Joao-Dionisio in #903
- Update README.md by @Joao-Dionisio in #904
- Update tutorial to include parameter emphasis and setting by @Joao-Dionisio in #909
- Change theme of documentation by @Opt-Mucca in #911
- Add sphinxcontrib.jquery for new theme by @Opt-Mucca in #912
- Update theme by @Opt-Mucca in #913
- Add comments from dominik by @Opt-Mucca in #914
- Update to 5.2.0 by @Opt-Mucca in #920
New Contributors
- @dependabot made their first contribution in #886
Full Changelog: v5.1.1...v5.2.1