the M-by-N constraint matrix
the M-length constant/limit vector
the M-by-N cost/revenue matrix (second order component)
the N-length cost/revenue vector (first order component)
the initial basis (set of indices where x_i is in the basis)
Return l's complementary variable.
Return l's complementary variable.
whose complement
Return the dual solution vector (y).
Find a variable x_l to enter the basis.
Find a variable x_l to enter the basis. Determine the index of entering variable corresponding to column l. Neighter the variable nor its complement may be in the current basis. Return -1 to indicate no such column.
Show the flaw by printing the error message.
Show the flaw by printing the error message.
the method where the error occurred
the error message
Find the best variable x_k to leave the basis given that x_l is entering.
Find the best variable x_k to leave the basis given that x_l is entering. Determine the index of the leaving variable corresponding to row k using the Min-Ratio Rule. Return -1 to indicate no such row.
the entering variable (column)
Return the optimal objective function value (f(x) = 1/2 x q x + c x).
Return the optimal objective function value (f(x) = 1/2 x q x + c x).
the primal solution vector
Pivot on entry (k, l) using Gauss-Jordan elimination to replace variable x_k with x_l in the basis.
Pivot on entry (k, l) using Gauss-Jordan elimination to replace variable x_k with x_l in the basis.
the leaving variable (row)
the entering variable (column)
Return the primal solution vector (x).
There are M+N variables, N decision and M slack variables, of which, for each iteration, M are chosen for a Basic Feasible Solution (BFS).
There are M+N variables, N decision and M slack variables, of which, for each iteration, M are chosen for a Basic Feasible Solution (BFS). The the variables not in the basis are set to zero. Setting j to N will start with the slack variables in the basis (only works if b >= 0).
the offset to start the basis
the size of the basis
Show the current basis and tableau.
Run the simplex algorithm starting from the initial BFS and iteratively find a non-basic variable to replace a variable in the current basis so long as the objective improves.
Return the tableau (t).
the initial basis (set of indices where x_i is in the basis)
This class solves Quadratic Programming (QP) problems using the Quadratic Simplex Algorithm. Given a constraint matrix 'a', constant vector 'b', cost matrix 'q' and cost vector 'c', find values for the solution/decision vector x that minimize the objective function f(x), while satisfying all of the constraints, i.e.,
minimize f(x) = 1/2 x q x + c x subject to a x <= b, x >= 0
Creates an MM-by-NN simplex tableau. This implementation is restricted to linear constraints (a x <= b) and q being a positive semi-definite matrix. Pivoting must now also handle nonlinear complementary slackness
http://www.engineering.uiowa.edu/~dbricker/lp_stacks.html