GSoC

86 views
Skip to first unread message

Ratmir Mugattarov

unread,
Apr 3, 2022, 8:28:58 PM4/3/22
to sage-gsoc
Hello Sage team!
I am interested in working on "Enhanced optimization solver interfaces for Sage" idea for GSoC project.

Is here the right place to connect with mentor?
Do I need to contribute to the Sage project before applying to GSoC?

I have been working with linear optimisation via python interface for some time. 
I used PuLP earlier, currently I am using Pyomo for building an optimiser of the flow through the graph in general form, using free solvers cbc and glpk. 
I am familiar with MathProg (subset of AMPL), representing non-linear constraints in linear form and individual solver settings.

I want to learn more about linear and non-linear solvers, python interface libraries, and work on integration solvers with sage

My second interest is legislation, I am ok with going through and interpreting the licensing rules and untangling licence non-compatibility issues if required.

I have read a developer guide as David advised to other students here.
What should I do next to apply for GSoC?
Can I get in touch with potential mentor and discuss further details?

Thank you
Kindest regards
Ratmir

Matthias Köppe

unread,
Apr 15, 2022, 5:55:08 AM4/15/22
to sage-gsoc
This is the right place. 

In https://trac.sagemath.org/ticket/26511 I have collected various facts about solver interfaces.
The next step for the GSoC application is to find a project of suitable scope and describe it in some detail.

Useful for Sage would be several things:
- Providing new backends for our frontend class MixedIntegerLinearProgram. Using PuLP or Pyomo (which you mentioned) would make sense, but my current favorite is CVXPY. It has a very active user/developer community, and the way it gives access to expression trees could be very useful.
- For a more detailed interface to CBC, we would like to use CyLP -- there are several issues (https://github.com/coin-or/CyLP/issues) that need help with. (Requires Cython)
- Currently we have no interface in Sage to nonlinear programming (except for a very rudimentary SDP class). 
- In Sage, we are interested in representing optimization problems with exact rational/algebraic data and to find exact solutions. One idea to represent such problems is to use a standard modeling system (for example CVXPY) and to use symbolic parameters instead of the constants. After solving a numerical approximation of the problem to optimality with the numerical solver, sometimes one may be able to reconstruct an exact solution and an exact optimality certificate.
Reply all
Reply to author
Forward
0 new messages