Skip to content
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

Extract solving information #51

Open
Specy opened this issue Dec 2, 2024 · 2 comments
Open

Extract solving information #51

Specy opened this issue Dec 2, 2024 · 2 comments

Comments

@Specy
Copy link

Specy commented Dec 2, 2024

Hello! I'm building a linear programming learning tool that solves LP models in the web.

I've implemented different solvers to "just find a solution" but i also wanted to add a solver that shows step by step what's being done to find a solution.

I've implemented my my own version of the 2 step simplex algorithm but it's not really the best and sometimes doesn't work. I'm_ not too experienced in the algorithm to really find out what could be wrong so I was considering using alternatives and relp seems like the closest thing to what i need.

Before trying it out i wanted to ask a few questions:

  • Does the second step in the simplex solver do some "magic" under the hood that's not what you'd expect to see in the standard simplex algorithm?
  • Can i run step-by-step the execution of the simplex algorithm (i want to create a snapshot before/after pivoting, and know what variables are being used in the pivot) and extract the coefficient values of the constraint matrix and current variable assignments? I did see in the code that it seems like this is possible, just wanted to make sure

One more feature i wanted to add is changing the pivoting rule, which seems to be supported.

@vandenheuvel
Copy link
Owner

Hi @Specy, interesting project!

  • I'm not sure what you mean by "magic". The two-phase simplex is more of a "framework" than an algorithm, because there are so many choices one needs to make when implementing this in practice... E.g., how to maintain an inverse.
  • If you want to run the algorithm step by step, you'd re-implement the main methods of the first and second phase.

Hope that helps! If there is some smaller change I could make to make this easier for you to use, just let me know.

@Specy
Copy link
Author

Specy commented Dec 11, 2024

I'll let you know as soon as i have more time to work on the project! i'm currently busy with work and university, thanks for your help!

I'll keep this issue open for further comunications, unless you prefer other methods

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

No branches or pull requests

2 participants