Skip to content

Commit

Permalink
ENH: optimize: add HiGHS methods to linprog (scipy#12043)
Browse files Browse the repository at this point in the history
  • Loading branch information
mdhaber authored Nov 15, 2020
1 parent 47b132c commit 232092a
Show file tree
Hide file tree
Showing 278 changed files with 88,973 additions and 185 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -276,3 +276,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 @@ -35,7 +35,9 @@

methods = [("interior-point", {"sparse": True}),
("interior-point", {"sparse": False}),
("revised simplex", {})]
("revised simplex", {}),
("highs-ipm", {}),
("highs-simplex", {})]
rr_methods = [_remove_redundancy_svd, _remove_redundancy_pivot_sparse,
_remove_redundancy_pivot_dense, _remove_redundancy_id]
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
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
Loading

0 comments on commit 232092a

Please sign in to comment.