Releases: scipopt/PySCIPOpt
v6.2.0 - Bugfixing, expression performance, new methods
Once again, thank you @Zeroto521 for the continued commitment to improve PySCIPOpt's performance, and thank you @pfetsch as well for the bugfixing and additions. Bugfixes on the SCIP side also cleared some old issues reported on PySCIPOpt.
What's Changed
- Add getMemUsed, getMemTotal, and getMemExternEstim methods by @Joao-Dionisio in #1189
- Remove incorrect Py_INCREF/DECREF on Model in catchEvent/dropEvent by @Joao-Dionisio in #1190
- Remove outdated warning about Makefile build system incompatibility by @Joao-Dionisio in #1192
- Avoid random order dependence of nonlinear expressions by @pfetsch in #1196
- Expose lp basis methods by @Joao-Dionisio in #1199
- Speed up
constant * Exprby @Zeroto521 in #1185 - Fix stubtest failures with mypy 1.20 by @Joao-Dionisio in #1202
- Deprecated
Term.ptrtupleand speed upTerm.__eq__by @Zeroto521 in #1184 - Feature: Expr and GenExpr support numpy unary func like
np.sinby @Zeroto521 in #1170 addConsIndicatordocumentation clarification by @Joao-Dionisio in #1208- Replace weakref.proxy with strong references for plugin self.model (#… by @Joao-Dionisio in #1194
- Raise error when
freeReoptSolveis called without reoptimization enabled by @Joao-Dionisio in #1209 - Feature:
ExprandGenExprsupport NumPy binary functions likenp.addby @Zeroto521 in #1203 - Add release automation script by @Joao-Dionisio in #1201
- Upgrade to SCIP 10.0.2 by @Joao-Dionisio in #1212
- Return
NotImplementedforExprandGenExproperators to simplify by @Zeroto521 in #1182 - release SOS1/SOS2 constraints after addition by @pfetsch in #1214
- Make
test_treemore robust by @Joao-Dionisio in #1216 - Interface
solveProbingLPWithPricing()by @Joao-Dionisio in #1215 - Trying to fix macOS wheels by @Joao-Dionisio in #1217
Full Changelog: v6.1.0...v6.2.0
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