Skip to content

Linear programme solver that uses the simplex method. Has advanced features and shows full working.

License

Notifications You must be signed in to change notification settings

fusion809/simplex

Repository files navigation

Simplex method solver

This repository contains a webpage I have written to solve linear programmes using the simplex method.

As of 19 November 2020 this solver:

  • Prints messages indicating whether the solution is:
    • Permanently degenerate.
    • Permanently infeasible.
    • Unbounded.
  • Prints the final solution, including decision variable values, dual variable values and objective function value.
  • Mentions whether a problem has alternate solutions and lists them.
  • Shows extensive working.
  • Uses USQ's MAT2200 simplex tableau layout (not sure the formal name for this layout).
  • Can perform sensitivity analysis, including:
    • The adding of new constraint(s).
    • The changing of objective function coefficient(s).
    • The change in resource value(s) (the right-hand side of constraints).
    • Constraint left-hand side change(s).
    • The adding of new variable(s).
  • Allows the user to enter the problem in either matrix form or non-matrix form.

Shortcomings include:

  • Poor performance. For really big problems this solver is very slow (taking several seconds). Performance has been improved to an extent by reducing redundancy. Any optimizations will be welcome.
  • Does not solve integer programming problems (BB.js is an attempt at this, but it was abandoned due to the complexity of the recursion required).
  • While the original problem can be entered in non-matrix form, sensitivity analysis can only be performed with changes to the problem entered in matrix form.