Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/passagemath/sage-numerical-interactive-mip
Interactive mixed integer linear programming solver in Python by Peijun Xiao, Zeyi Wang, Yuan Zhou
https://github.com/passagemath/sage-numerical-interactive-mip
Last synced: about 1 month ago
JSON representation
Interactive mixed integer linear programming solver in Python by Peijun Xiao, Zeyi Wang, Yuan Zhou
- Host: GitHub
- URL: https://github.com/passagemath/sage-numerical-interactive-mip
- Owner: passagemath
- License: gpl-2.0
- Created: 2020-01-22T19:56:13.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-03T03:03:52.000Z (2 months ago)
- Last Synced: 2024-12-08T21:18:55.272Z (about 1 month ago)
- Language: Python
- Homepage:
- Size: 606 KB
- Stars: 1
- Watchers: 4
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
=====================================================================================
sage-numerical-interactive-mip: Interactive mixed integer linear programming solver
=====================================================================================.. image:: https://github.com/passagemath/sage-numerical-interactive-mip/workflows/Build%20and%20test%20Python%20package/badge.svg
:alt: [Build and test Python package]
:target: https://github.com/passagemath/sage-numerical-interactive-mip/actions/.. image:: https://readthedocs.org/projects/sage-numerical-interactive-mip/badge/?version=latest
:alt: [Documentation]
:target: https://sage-numerical-interactive-mip.readthedocs.io/en/latest/.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.3627400.svg
:target: https://doi.org/10.5281/zenodo.3627400.. intro
This package is an extension of SageMath's mixed integer linear programming
facilities described at
http://doc.sagemath.org/html/en/reference/numerical/index.htmlIt was written by Peijun Xiao, Zeyi Wang, and Yuan Zhou in 2015-2016 at UC Davis
for integration into SageMath.Parts of their work (improvements to
``sage.numerical.interactive_simplex_method`` and MIP backend methods)
that required changes to existing SageMath modules have already been
integrated into SageMath in various tickets, see meta-ticket
https://trac.sagemath.org/ticket/20302 (“Interactions with
``InteractiveLinearProgram`` and its dictionaries”).The module ``sage_numerical_interactive_mip.interactive_milp_problem``,
written by Peijun Xiao, provides the interactive MILP problem classes,
MILP tableau classes, and the cutting plane method. It is based on
commit 5a4e3508d95e95e4491efcb2cf16fbe25be60bec, dated August 24, 2016,
from the SageMath tree https://github.com/pgxiao/cutting-plane-method;
this work superseded an earlier effort (adding integer variables in
``interactive_simplex_method``) at
https://trac.sagemath.org/ticket/18805The modules ``sage_numerical_interactive_mip.clean_dictionary`` and
``sage_numerical_interactive_mip.backends.*_backend_dictionary``,
written by Zeyi (Aedi) Wang, provide a textbook view on a simplex basis
in a numerical solver. They are based on
https://trac.sagemath.org/ticket/18804The branches were rebased by Matthias Koeppe in January 2020 onto
SageMath version 9.1.beta1, then filtered using ``git filter-repo`` and
merged.How to use
==========This package uses the modularized distributions of portions of the Sage library
provided by the `passagemath `_ project.
No installation of SageMath is required.
Just install the package with ``pip`` and start using it::$ pip install sage-numerical-interactive-mip
$ ipython
In [1]: from sage_numerical_interactive_mip import *
In [2]: A = ([1, 1], [3, 1])
In [3]: b = (1000, 1500)
In [4]: c = (10, 5)
In [5]: P = InteractiveMILPProblem(A, b, c, ["C", "B"], variable_type=">=", integer_variables=True)
In [6]: P
The code comes with extensive
`documentation `_
and tests; see the docstrings in the modules.How to run the testsuite and build the HTML documentation
=========================================================Install ``tox`` with ``pip``, then run ``tox``.
This also builds the documentation in ``.tox/docs/tmp/html/index.html``.