-
-
Notifications
You must be signed in to change notification settings - Fork 491
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
Meta-ticket: Use Python optimization interfaces: CVXPY, SCIP, or-tools, PuLP, Pyomo, cylp... #26511
Comments
This comment has been minimized.
This comment has been minimized.
comment:2
This was in my plans for sage days84 at Olot, but i did not go further since then. Also, there is Numberjack, which seems pretty general. Looking quickly at the repositories, it seems that neither Numberjack nor PuLP were modified recently (though we could contact the authors to see if they have plans for the future). |
comment:3
I have the same feeling that PuLP has only minimal maintenance these days. Also, there is a significant effort in the OR community with Julia http://www.juliaopt.org/. |
comment:4
Andrew Mason commented by email: |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:7
Added Python-MIP |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:10
https://pypi.org/project/mip/ looks good. Too bad we can't use it because its license, Eclipse Public License 2.0, is used without a Secondary Licenses Notice that would make it instantly GPL-compatible. |
comment:11
Replying to @mkoeppe:
it's py3 only, by the way. W.r.t. licenses, maybe we can ask the authors for a fix? |
This comment has been minimized.
This comment has been minimized.
comment:12
Added info on cbcpy and glpk from fbissey in #28175. |
comment:13
Replying to @dimpase:
Good idea... please go ahead. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:17
Moving some tickets to 9.2. This is not a promise that I will be working on them. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@mkoeppe Hey, I am Vaibhav from IIT BHU. I was looking forward to working on this issue for GSoC. I contacted you earlier via the sage-gsoc group, where you pointed out literature by Vanderbei, which I have been studying. Can you point out which issue would be good to start working on here? Thanks! |
#35198 could be a good starting point |
I'm willing to contribute to this Project @mkoeppe Sir |
Try #31962 |
Sure Thanks @mkoeppe Sir |
I want to contribute on this project. I have knowledge about manifold. Guide me more about good issue to start. |
Hi @mkoeppe , I'd like to work on this section for GSoC/23. If it is okay, as my proof of concept on being able to contribute to this Meta-ticket, I'll be taking one of this issues: #15356 or #7300 as referenced in meta-ticket #20302. I have moderate experience in optimization (eg. Simplex Method, Integer optimization, etc) and its applied side via OR-Tools as I'm currently crediting an applied optimization course in my Data Science and Engineering degree at the Indian Institute of Science Education and Research Bhopal. 6+ years in Python. I currently have one PR with a positive review in SageMath: #35113 |
Hi @mkoeppe, I'm Zhongling Xu from UT-Austin ORIE program. I have experience in optimization (convex optimization, linear programming and integer programming) and Python development. I would like to contribute to the idea "Enhanced optimization solver interfaces for Sage", which aligns my knowledge and skill set. Could you guide me to some good issues to start with? Thanks! |
Hi @Carlxuzhl, thanks for your interest! To get started with the |
Thank you for the guidance! I will work on improving the documentation to get started. |
Hi @mkoeppe, I'd like to work on "Enhanced optimization solver interfaces for Sage" section for GSoC'24. I found this project aligns with my interest and technical skills because I am an incoming CS PhD student and my research focus on ML-based MILP solver and ML-based MILP instance generator. I am familiar with Python interface of SCIP, Gurobi and CPLEX. Could you please guide me on specific issues or tasks that I can start working on? |
The purpose of this ticket is to
SageMath status quo: Front end
add_constraint
,set_integer
,new_variable
etc. and then re-solve)solver_parameter
)sage.graphs
,sage.coding
,sage.combinat
, ...SageMath status quo: Back ends
SageMath tickets and tasks
OptionalExtension
problemsinteractivelp_backend.pyx
is implemented in Cython just because a Cython template was available)MixedIntegerLinearProgram
by PuLP frontend or Pyomo frontendRelated:
MixedIntegerLinearProgram
, its backends, andInteractiveLinearProgram
Key Python software (solver-independent)
Selection criteria for solver-independent interfaces:
cvxpy - Meta-ticket #33920
MathOptInterface.jl
or-tools - #33493
conv_opt - https://github.com/KarrLab/conv_opt
PuLP - https://github.com/coin-or/pulp
sage -pip install pulp
worksPyomo
sage -pip install pyomo
worksYAPOSIB - Python interface to COIN OSI, using Boost::Python
sage -i boost && sage -pip install yaposib
worksPython MIP (Mixed-Integer Linear Programming) Tools (new 2018)
PICOS - a user friendly Python API to several conic and integer programming solvers, very much like YALMIP or
CVX under MATLAB.
PAO
C, C++ solver abstractions
or-tools (#33493)
linear_solver
wrapperCOIN-OR OSI
Key Python software (solver-dependent)
The Python interfaces that target only one solver are usually careful in not having more restrictive licenses than the targeted solver.
scipy.optimize (vendors HiGHS)
highspy (pybind11-based interface to HiGHS)
Interfaces to GLPK
cylp
cbcpy (LGPL; new August 2019 according to https://pypi.org/project/cbcpy/; no activity since then)
Gurobi, CPLEX
python-qsoptex
SCIP, PySCIPOpt (now open source)
papilo
: Parallel Presolve for Integer and Linear Optimization (https://github.com/scipopt/papilo/) - LGPL licensesoplex
(dependency of scip)scipoptsuite
to 8.0.2 (now open source!)pyscipopt
(MIT license), add MIP backendscipsdp
gcg
,PyGCGOpt
Possible integration routes via Julia
MathOptInterface
- https://arxiv.org/pdf/2002.03447.pdfCC: a.mason@auckland.ac.nz @jiawei-wang-ucd @yuan-zhou @dimpase @dcoudert @sagetrac-tmonteil @kiwifb
Component: numerical
Issue created by migration from https://trac.sagemath.org/ticket/26511
The text was updated successfully, but these errors were encountered: