Skip to content
This repository has been archived by the owner on Sep 22, 2022. It is now read-only.

Is this project still going? It would be great to have a robust LP solver for Rust #1

Open
ronniec95 opened this issue Jul 27, 2020 · 3 comments

Comments

@ronniec95
Copy link

ronniec95 commented Jul 27, 2020

Have you looked at integrating parallelisation via:
https://gitlab.com/lappsufrn/MulticoreParallelSimplex

explained in

Pdf Paper

And of course better pivot selection Langrangian or others?

@ztlpn
Copy link
Owner

ztlpn commented Jul 27, 2020

Hi @ronniec95 and thanks for your interest in the project! Right now I'm not actively working on it - I've implemented most of the tricks that I wanted to experiment with and reached satisfactory performance for my use cases. But of course I'm open to bug reports and contributions.

With regards to pivot selection - which algorithms do you have in mind? Right now pivot is selected using steepest descent + Harris rule for both primal and dual simplex. A possible robustness improvement would be to implement tricks from this paper.

Parallelizing the solver would be a great project and probably a good fit for Rust and the rayon library, but again, not something that I have time to do right now.

@ronniec95
Copy link
Author

That's a shame. I'm not a Simplex expert unfortunately but I can in my spare time try to implement the robustness logic you noted. That's more useful than the parallelization immediately but that would be great to have too.

@ztlpn
Copy link
Owner

ztlpn commented Jul 28, 2020

Here is what seems to be the standard benchmark for simplex LP solvers: http://plato.asu.edu/ftp/lpsimp.html. It consists of 40 hard problems and minilp is currently able to solve 18 of them. Which is good but below the capabilities of established solvers. So yes, any improvement that allows to solve more problems from that set will be nice to have.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants