public class LinearProgramming extends Object
LinearProgramming
class represents a data type for solving a
linear program of the form { max cx : Ax ≤ b, x ≥ 0 }, where A is a mbyn
matrix, b is an mlength vector, and c is an nlength vector. For simplicity,
we assume that A is of full rank and that b ≥ 0 so that x = 0 is a basic
feasible soution.
The data type supplies methods for determining the optimal primal and dual solutions.
This is a barebones implementation of the simplex algorithm. It uses Bland's rule to determing the entering and leaving variables. It is not suitable for use on large inputs.
This computes correct results if all arithmetic performed is without floatingpoint rounding error or arithmetic overflow. In practice, there will be floatingpoint rounding error and this implementation is not robust in the presence of such errors.
For additional documentation, see Section 6.5 Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
Constructor and Description 

LinearProgramming(double[][] A,
double[] b,
double[] c)
Determines an optimal solution to the linear program
{ max cx : Ax ≤ b, x ≥ 0 }, where A is a mbyn
matrix, b is an mlength vector, and c is an nlength vector.

Modifier and Type  Method and Description 

double[] 
dual()
Returns the optimal dual solution to this linear program

static void 
main(String[] args)
Unit tests the
LinearProgramming data type. 
double[] 
primal()
Returns the optimal primal solution to this linear program.

double 
value()
Returns the optimal value of this linear program.

public LinearProgramming(double[][] A, double[] b, double[] c)
A
 the mbyb matrixb
 the mlength RHS vectorc
 the nlength cost vectorIllegalArgumentException
 unless b[i] >= 0
for each i
ArithmeticException
 if the linear program is unboundedpublic double value()
public double[] primal()
public double[] dual()
public static void main(String[] args)
LinearProgramming
data type.args
 the commandline arguments