Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add SCIP Persistent Support #3200

Open
wants to merge 34 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e552439
Add first draft of SCIP persistent solving
Opt-Mucca Mar 18, 2024
6a14f10
Add SCIPPersistent to docs
Opt-Mucca Mar 18, 2024
c107909
Add SCIp to Github action scripts
Opt-Mucca Mar 19, 2024
e00ded8
Remove 5.0.0 specific version. Add conda to workflow
Opt-Mucca Mar 19, 2024
a0b6250
Standardise string formatting to fstring
Opt-Mucca Mar 19, 2024
d0816eb
Add parameter link to docstring
Opt-Mucca Mar 19, 2024
0e11f11
Remove redundant second objective sense check
Opt-Mucca Mar 19, 2024
068ec99
Clean up _post_solve with a helper function for status handling
Opt-Mucca Mar 19, 2024
63af6d8
Remove individual skip_test option
Opt-Mucca Mar 19, 2024
4075d9a
Update pyomo/solvers/plugins/solvers/scip_persistent.py
Opt-Mucca Mar 19, 2024
f55fcc5
Update from the black command
Opt-Mucca Mar 19, 2024
e2b49b2
Merge remote-tracking branch 'origin/main'
Opt-Mucca Mar 19, 2024
91eae7b
Fix typos
Opt-Mucca Mar 19, 2024
5ee2007
Replace trySol via more safe checkSol
Opt-Mucca Mar 19, 2024
f6ff092
Adds support for partial solution loading
Opt-Mucca Mar 20, 2024
e7ac980
Add error handling for setting non-linear objective
Opt-Mucca Mar 21, 2024
c90bb23
Merge branch 'main' into main
Opt-Mucca Apr 10, 2024
2540f65
Remove dual and rc loading for SCIP. Fix bug of ranged rows
Opt-Mucca Apr 19, 2024
9e5d944
Add safe con.body.constant check
Opt-Mucca Apr 19, 2024
f90dfad
Remove slack loading for SCIP
Opt-Mucca Apr 29, 2024
f703d1f
Remove dual loading test for SCIP
Opt-Mucca Apr 29, 2024
5c02d32
Remove slack for suffix in tests
Opt-Mucca Apr 29, 2024
8ebcf88
Remove TODO for nonlinear handling
Opt-Mucca Apr 29, 2024
236427f
Merge branch 'main' into main
mrmundt Apr 30, 2024
30d8cc6
Skip LP_trivial_constraints for SCIP persistent
Opt-Mucca Jun 13, 2024
8d787ae
Merge branch 'main' into main
Opt-Mucca Jun 13, 2024
30e5e65
Add transformation for add_cons with non float/int rhs e.g. np.int
Opt-Mucca Jun 13, 2024
9104a92
Add warning if type is converted. Tidy up logic
Opt-Mucca Jun 13, 2024
a0324af
Merge branch 'main' into main
blnicho Aug 6, 2024
cbcb96d
Merge branch 'main' into main
blnicho Oct 15, 2024
fecd201
Merge branch 'main' into main
mrmundt Oct 29, 2024
1a4663d
Merge branch 'main' into pr/3200
blnicho Nov 13, 2024
cadfe5c
Merge branch 'main' into main
blnicho Nov 19, 2024
f3f2d7c
Fix num. vars and cons from transformed. Silent warm start fail
Opt-Mucca Nov 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/workflows/test_branches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,12 @@ jobs:
|| echo "WARNING: Xpress Community Edition is not available"
python -m pip install --cache-dir cache/pip maingopy \
|| echo "WARNING: MAiNGO is not available"
if [[ ${{matrix.python}} == pypy* ]]; then
echo "skipping SCIP for pypy"
else
python -m pip install --cache-dir cache/pip pyscipopt \
|| echo "WARNING: SCIP is not available"
fi
if [[ ${{matrix.python}} == pypy* ]]; then
echo "skipping wntr for pypy"
else
Expand Down Expand Up @@ -373,7 +379,7 @@ jobs:
if test -z "${{matrix.slim}}"; then
PYVER=$(echo "py${{matrix.python}}" | sed 's/\.//g')
echo "Installing for $PYVER"
for PKG in 'cplex>=12.10' docplex gurobi xpress cyipopt pymumps scip; do
for PKG in 'cplex>=12.10' docplex gurobi xpress cyipopt pymumps scip pyscipopt; do
echo ""
echo "*** Install $PKG ***"
# conda can literally take an hour to determine that a
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/test_pr_and_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,12 @@ jobs:
|| echo "WARNING: Xpress Community Edition is not available"
python -m pip install --cache-dir cache/pip maingopy \
|| echo "WARNING: MAiNGO is not available"
if [[ ${{matrix.python}} == pypy* ]]; then
echo "skipping SCIP for pypy"
else
python -m pip install --cache-dir cache/pip pyscipopt \
|| echo "WARNING: SCIP is not available"
fi
if [[ ${{matrix.python}} == pypy* ]]; then
echo "skipping wntr for pypy"
else
Expand Down Expand Up @@ -405,7 +411,7 @@ jobs:
if test -z "${{matrix.slim}}"; then
PYVER=$(echo "py${{matrix.python}}" | sed 's/\.//g')
echo "Installing for $PYVER"
for PKG in 'cplex>=12.10' docplex gurobi xpress cyipopt pymumps scip; do
for PKG in 'cplex>=12.10' docplex gurobi xpress cyipopt pymumps scip pyscipopt; do
echo ""
echo "*** Install $PKG ***"
# conda can literally take an hour to determine that a
Expand Down
1 change: 1 addition & 0 deletions doc/OnlineDocs/reference/topical/solvers/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ Solver Interfaces
gurobi_direct.rst
gurobi_persistent.rst
xpress_persistent.rst
scip_persistent.rst
7 changes: 7 additions & 0 deletions doc/OnlineDocs/reference/topical/solvers/scip_persistent.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
SCIPPersistent
================

.. autoclass:: pyomo.solvers.plugins.solvers.scip_persistent.SCIPPersistent
:members:
:inherited-members:
:show-inheritance:
2 changes: 2 additions & 0 deletions pyomo/solvers/plugins/solvers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,7 @@
mosek_persistent,
xpress_direct,
xpress_persistent,
scip_direct,
scip_persistent,
SAS,
)
Loading