martinlackner / abcvoting

Python implementations of approval-based committee (multi-winner) voting rules
https://abcvoting.readthedocs.io/
MIT License
32 stars 15 forks source link

add support for open-source ILP solver #18

Closed martinlackner closed 2 years ago

martinlackner commented 4 years ago

Currently only Gurobi is supported. It would be nice to also support an open source ILP solver such as GLPK or LP_Solve, possibly via PuLP (https://pythonhosted.org/PuLP/index.html)

martinlackner commented 4 years ago

https://www.cvxpy.org/ might be a good alternative to PuLP

DominikPeters commented 4 years ago

There is also https://www.scipopt.org/

lumbric commented 3 years ago

Support for CVXPY (and therefore also for CBC, GLPK_MI and Scip) has been partially added in #27. I'll continue the next step in new PRs to support all optimization methods via CVXPY.

This should be a comfortable way to support three opensource solvers by using CVXPY as common API. PuLP and Pyomo are alternatives to CVXPY - tbh, I'm not sure if favorable or not, but atm we are heading for CVXPY as interface. Gurobi will be still usable using the gurobipy inteface, adding support for other interfaces than CVXPY and gurobipy is not planned at the moment.

martinlackner commented 2 years ago

I am closing this issue, as it is largely resolved. The CBC solver is directly available via mip (https://www.python-mip.com) and can be installed via pip. CVXPY is work-in-progress, but generally appears to be less reliable.