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

ENH: optimize: add HiGHS methods to linprog - continued #12043

Merged
merged 92 commits into from
Nov 15, 2020
Merged
Show file tree
Hide file tree
Changes from 86 commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
e4c7c2e
Merge commit '833998858d20c7fe6d06984126c9aa8bcb1eba6b' into fix-cons…
mckib2 May 5, 2020
8339988
Squashed 'scipy/optimize/_highs/' changes from aa767e057..c9beb5fb1
mckib2 May 5, 2020
d4043b4
Merge commit 'a89c73894039615d0f101e55ad88e124a5b5079d' into fix-cons…
mckib2 May 5, 2020
a89c738
Squashed 'scipy/optimize/_highs/' changes from c9beb5fb1..537df4885
mckib2 May 5, 2020
23ae283
Merge pull request #15 from mckib2/fix-constants
mdhaber May 5, 2020
d031525
Revert "Revert "ENH: optimize: add HiGHS methods to linprog""
mdhaber May 6, 2020
b99152d
MAINT: optimize: minor comment/doc tweaks
mdhaber May 5, 2020
bd9b868
Merge branch 'linprog_highs' into linprog_highs2
mdhaber May 6, 2020
f7efc91
Make const definitions implicit
mckib2 May 6, 2020
c30a99d
Squashed 'scipy/optimize/_highs/' changes from 537df4885..c75870233
mckib2 May 6, 2020
60841a1
Merge commit 'c30a99d067850a2c679ae27a3260bf72b48f0b0b' into option-v…
mckib2 May 6, 2020
adce5e1
Squashed 'scipy/optimize/_highs/' changes from c75870233..156090355
mckib2 May 6, 2020
d923be6
Merge commit 'adce5e1e8a7d6459feaa635210aae1cb88561156' into option-v…
mckib2 May 6, 2020
1588f86
Only check explicitly for message_level when validating options
mckib2 May 6, 2020
4214dcf
Merge pull request #5 from mckib2/option-validation
mckib2 May 6, 2020
5bf4c35
Merge commit 'af25572c9c130c256b7fa4fd2e33e2afc966e30c' into option-v…
mckib2 May 7, 2020
af25572
Squashed 'scipy/optimize/_highs/' changes from 156090355..af082b6b2
mckib2 May 7, 2020
25f4663
Change default message level to match that of HiGHS
mckib2 May 7, 2020
e6c9086
Merge pull request #6 from mckib2/option-validation
mckib2 May 7, 2020
e937ad8
Fix message_level checking and docs and unit tests; disallow experime…
mckib2 May 8, 2020
da8d6c5
Add back in missing message_level options
mckib2 May 8, 2020
4cfdf83
Merge pull request #16 from mckib2/cython3.0a4-fix
mdhaber May 9, 2020
a13684a
slack returns as array; message_level default is set to minimal in fu…
mckib2 May 13, 2020
5399dfc
Squashed 'scipy/optimize/_highs/' changes from af082b6b2..f9692fd4b
mckib2 May 14, 2020
1adf4a9
Merge commit '5399dfc223222782f5518703df088c668f2bb250' into slack-as…
mckib2 May 14, 2020
6d78b3e
Report crossover iterations; upstream changes
mckib2 May 14, 2020
c2f6eb9
Merge pull request #17 from mckib2/slack-as-array
mdhaber May 17, 2020
cd88321
MAINT: optimize: fix PEP8 issues
mdhaber May 18, 2020
9a375b9
Squashed 'scipy/optimize/_highs/' changes from f9692fd4b..7cb7b58a9
mckib2 May 21, 2020
2d23a10
Merge commit '9a375b96afad93aa42d0a6ed1a1dcd3c9743b714' into cython-r…
mckib2 May 21, 2020
251e631
Merge pull request #18 from mckib2/cython-review
mdhaber May 21, 2020
5dbb8fa
DOC: optimize: linprog HiGHS documentation fixes
mdhaber May 26, 2020
f55cfe5
Cython review response (#19)
mckib2 May 27, 2020
3397c6e
Presolve updates (#20)
mckib2 Jun 8, 2020
30b4ce6
DOC: optimize: show_options for method='highs', no callback for HiGHS
mdhaber Jun 12, 2020
7780321
DOC: optimize: show_options for method='highs', no callback for HiGHS
mdhaber Jun 12, 2020
e69a782
DOC: optimize: revert show_options/doc changes due to failing doc build
mdhaber Jun 12, 2020
c0d7d83
Revert "DOC: optimize: revert show_options/doc changes due to failing…
mdhaber Jun 12, 2020
bca7646
Merge remote-tracking branch 'upstream/master' into linprog_highs2
mdhaber Jun 12, 2020
69537ca
mdhaber responses (#21)
mckib2 Jun 13, 2020
e3a5d2c
Message level docs (#22)
mckib2 Jun 19, 2020
2baaaf0
Upstream 2020 07 07 (#23)
mckib2 Jul 9, 2020
edaac6a
Merge remote-tracking branch 'upstream/master' into linprog_highs2
mdhaber Jul 9, 2020
ef84408
Pytest error fix and MODEL_ERROR handling (#24)
mckib2 Jul 10, 2020
f4bb92c
DOC: optimize: remove manual references to linprog method documentation
mdhaber Jul 11, 2020
fffc206
MAINT: optimize: quick exit for invalid method
mdhaber Jul 12, 2020
2b3c0d9
DOC: optimize: 'Informally' -> 'Alternatively'
mdhaber Jul 12, 2020
54a1e4f
DOC: maint: replaced strings around method names in docstring
mdhaber Jul 12, 2020
7f5e830
MAINT: optimize: fix off-by-one in display/callback
mdhaber Jul 12, 2020
544628c
Ilayn responses (#25)
mckib2 Jul 12, 2020
81c3a45
Squashed 'scipy/optimize/_highs/' changes from 7cb7b58a9..65f382011 (…
mckib2 Jul 29, 2020
68b9f0e
Upstream 2020-08-19 (#35)
mckib2 Aug 20, 2020
78ad1ea
Squashed 'scipy/optimize/_highs/' changes from 7cb7b58a9..342b79a32 (…
mckib2 Aug 20, 2020
0688576
MAINT: optimize: fix PEP8 line lengths in linprog highs
mdhaber Aug 20, 2020
69de976
Merge branch 'linprog_highs2' of github.com:mdhaber/scipy into linpro…
mdhaber Aug 20, 2020
bbdbbfd
STY: optimize: more PEP8 fixes
mdhaber Aug 20, 2020
96b5eb4
STY: optimize: fixup linprog_highs PEP8 and a new typo fix
mdhaber Aug 20, 2020
555f244
MAINT: optimize: message_level options removed from HiGHS
mdhaber Aug 22, 2020
a15254c
DOC: optimize: try to fix method='highs' documentation gh-12264
mdhaber Aug 23, 2020
4a2c99a
DOC: optimize: followup attempt to fix linprog method='highs' documen…
mdhaber Aug 23, 2020
0e74dfb
DOC: optimize: followup attempt to fix linprog method='highs' documen…
mdhaber Aug 23, 2020
4b67717
DOC: optimize: try fixing linrog documentation indentation
mdhaber Aug 23, 2020
b3b3e2d
update HiGHS-cython; update linprog interface to convert user provide…
mckib2 Aug 23, 2020
fc7fc1b
DOC: optimize: more documentation adjustments
mdhaber Aug 23, 2020
b207a7e
DOC: optimize: fix references in highs documentation
mdhaber Aug 23, 2020
eb45f6b
DOC: optimize: fix linprog method='interior-point' documentation gh-1…
mdhaber Aug 23, 2020
fd1ef1b
DOC: optimize: fix linprog method='revised simplex' documentation gh-…
mdhaber Aug 23, 2020
322f140
Add missing pxd file
mckib2 Aug 23, 2020
a5db201
DOC: optimize: fix linprog method='simplex' documentation gh-12264
mdhaber Aug 23, 2020
9961d94
Fix warn default output; change to format strings
mckib2 Aug 23, 2020
0daeae3
Actually use format strings
mckib2 Aug 23, 2020
ee24762
TST: optimize: add sanity check on HiGHS solution
mdhaber Aug 23, 2020
4f9d68b
Merge pull request #7 from mdhaber/remove-int-options
mckib2 Sep 2, 2020
bc1f6a9
Remove options and add default simplex edge weight strategy
mckib2 Sep 2, 2020
dd83570
line length fix
mckib2 Sep 2, 2020
305e4ac
Merge pull request #37 from mckib2/remove-int-options
mdhaber Sep 2, 2020
b256d25
DOC: optimize: update user-facing linprog HiGHS documentation
mdhaber Sep 2, 2020
3de3bc6
DOC: optimize: separate linprog highs-ipm/highs-simplex method-specif…
mdhaber Sep 2, 2020
eb457ca
DOC: optimize: fix linprog highs-ipm/highs-simplex method-specific do…
mdhaber Sep 2, 2020
0c634df
MAINT: optimize: change highs-simplex name to highs-ds
mdhaber Sep 3, 2020
b40ccb7
DOC: optimize: fix long lines in linprog HiGHS documentation
mdhaber Sep 3, 2020
b4504fd
DOC: optimize: fix HiGHS dual simplex documentation
mdhaber Sep 3, 2020
1e8eab8
MAINT: optimize: select simplex edge strategy automatically by default
mdhaber Sep 3, 2020
ce396e0
Use None for default on edge strategy; fix seed in random lp genertor…
mckib2 Sep 4, 2020
8838a56
Merge pull request #40 from mckib2/mdhaber-review
mdhaber Sep 4, 2020
6fe416c
MAINT: optimize: remove method/edge method output, correct crossover …
mdhaber Sep 4, 2020
f7e901f
Merge branch 'master' into linprog_highs2
mdhaber Oct 4, 2020
4500f02
Merge branch 'master' into linprog_highs2
rgommers Nov 14, 2020
1906e3c
Remove list of options from docstring
mckib2 Nov 15, 2020
96880a5
Only add pxd files for HiGHS
mckib2 Nov 15, 2020
4aa07ec
Merge pull request #46 from mckib2/rgommers-responses
mdhaber Nov 15, 2020
94a4132
Merge branch 'master' into linprog_highs2
mdhaber Nov 15, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -272,3 +272,6 @@ scipy/optimize/_group_columns.c
scipy/optimize/cython_optimize/_zeros.c
scipy/optimize/cython_optimize/_zeros.pyx
scipy/optimize/lbfgsb/_lbfgsbmodule.c
scipy/optimize/_highs/cython/src/highs_wrapper.cxx
scipy/optimize/_highs/cython/src/mpswriter.cxx
scipy/optimize/_highs/cython/src/constants.cxx
5 changes: 5 additions & 0 deletions LICENSES_bundled.txt
Original file line number Diff line number Diff line change
Expand Up @@ -200,3 +200,8 @@ License:
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Name: HiGHS
Files: scipy/optimize/_highs/*
License: MIT
For details, see scipy/optimize/_highs/LICENCE
4 changes: 3 additions & 1 deletion benchmarks/benchmarks/optimize_linprog.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@

methods = [("interior-point", {"sparse": True}),
("interior-point", {"sparse": False}),
("revised simplex", {})]
("revised simplex", {}),
("highs-ipm", {}),
("highs-simplex", {})]
rr_methods = [_remove_redundancy, _remove_redundancy_dense,
_remove_redundancy_sparse]
presolve_methods = ['sparse', 'dense']
Expand Down
8 changes: 8 additions & 0 deletions doc/source/optimize.linprog-highs-ds.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.. _optimize.linprog-highs-ds:

linprog(method='highs-ds')
----------------------------------------

.. scipy-optimize:function:: scipy.optimize.linprog
:impl: scipy.optimize._linprog._linprog_highs_ds_doc
:method: highs-ds
8 changes: 8 additions & 0 deletions doc/source/optimize.linprog-highs-ipm.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.. _optimize.linprog-highs-ipm:

linprog(method='highs-ipm')
----------------------------------------

.. scipy-optimize:function:: scipy.optimize.linprog
:impl: scipy.optimize._linprog._linprog_highs_ipm_doc
:method: highs-ipm
8 changes: 8 additions & 0 deletions doc/source/optimize.linprog-highs.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.. _optimize.linprog-highs:

linprog(method='highs')
----------------------------------------

.. scipy-optimize:function:: scipy.optimize.linprog
:impl: scipy.optimize._linprog._linprog_highs_doc
:method: highs
2 changes: 1 addition & 1 deletion doc/source/optimize.linprog-interior-point.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ linprog(method='interior-point')
----------------------------------------

.. scipy-optimize:function:: scipy.optimize.linprog
:impl: scipy.optimize._linprog._linprog_ip
:impl: scipy.optimize._linprog._linprog_ip_doc
:method: interior-point
2 changes: 1 addition & 1 deletion doc/source/optimize.linprog-revised_simplex.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ linprog(method='revised simplex')
----------------------------------------

.. scipy-optimize:function:: scipy.optimize.linprog
:impl: scipy.optimize._linprog._linprog_rs
:impl: scipy.optimize._linprog._linprog_rs_doc
:method: revised_simplex
2 changes: 1 addition & 1 deletion doc/source/optimize.linprog-simplex.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ linprog(method='simplex')
----------------------------------------

.. scipy-optimize:function:: scipy.optimize.linprog
:impl: scipy.optimize._linprog._linprog_simplex
:impl: scipy.optimize._linprog._linprog_simplex_doc
:method: simplex
6 changes: 5 additions & 1 deletion scipy/optimize/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,8 +247,12 @@
optimize.linprog-simplex
rgommers marked this conversation as resolved.
Show resolved Hide resolved
optimize.linprog-interior-point
optimize.linprog-revised_simplex
optimize.linprog-highs-ipm
optimize.linprog-highs-ds
optimize.linprog-highs

The simplex method supports callback functions, such as:
The simplex, interior-point, and revised simplex methods support callback
functions, such as:

.. autosummary::
:toctree: generated/
Expand Down