In the UVic course, CSC 445: Operations Research: Linear Programming, I developed the program simplex.java for solving a linear program.
In brief, the program takes a linear program like so:
max.
s.t.
Converts it into a dictionary:
And uses the dictionary to perform operations that rearranges the basic variables (rows of the dictionary below
Since the non-basic variables are all subtracted in
The program tests the following before running the procedure above:
Feasibility: The program ensures that all linear programs are feasible, meaning that no basic variable is less than
Unboundedness: The program ensures that the linear program is not unbounded, ie. that