Class SimplexTableau

java.lang.Object
org.apache.commons.math3.optimization.linear.SimplexTableau
All Implemented Interfaces:
Serializable

@Deprecated class SimplexTableau extends Object implements Serializable
Deprecated.
As of 3.1 (to be removed in 4.0).
A tableau for use in the Simplex method.

Example:

   W |  Z |  x1 |  x2 |  x- | s1 |  s2 |  a1 |  RHS
 ---------------------------------------------------
  -1    0    0     0     0     0     0     1     0   <= phase 1 objective
   0    1   -15   -10    0     0     0     0     0   <= phase 2 objective
   0    0    1     0     0     1     0     0     2   <= constraint 1
   0    0    0     1     0     0     1     0     3   <= constraint 2
   0    0    1     1     0     0     0     1     4   <= constraint 3
 
W: Phase 1 objective function
Z: Phase 2 objective function
x1 & x2: Decision variables
x-: Extra decision variable to allow for negative values
s1 & s2: Slack/Surplus variables
a1: Artificial variable
RHS: Right hand side

Since:
2.0
  • Field Details

    • NEGATIVE_VAR_COLUMN_LABEL

      private static final String NEGATIVE_VAR_COLUMN_LABEL
      Deprecated.
      Column label for negative vars.
      See Also:
    • DEFAULT_ULPS

      private static final int DEFAULT_ULPS
      Deprecated.
      Default amount of error to accept in floating point comparisons (as ulps).
      See Also:
    • CUTOFF_THRESHOLD

      private static final double CUTOFF_THRESHOLD
      Deprecated.
      The cut-off threshold to zero-out entries.
      See Also:
    • serialVersionUID

      private static final long serialVersionUID
      Deprecated.
      Serializable version identifier.
      See Also:
    • f

      private final LinearObjectiveFunction f
      Deprecated.
      Linear objective function.
    • constraints

      private final List<LinearConstraint> constraints
      Deprecated.
      Linear constraints.
    • restrictToNonNegative

      private final boolean restrictToNonNegative
      Deprecated.
      Whether to restrict the variables to non-negative values.
    • columnLabels

      private final List<String> columnLabels
      Deprecated.
      The variables each column represents
    • tableau

      private transient RealMatrix tableau
      Deprecated.
      Simple tableau.
    • numDecisionVariables

      private final int numDecisionVariables
      Deprecated.
      Number of decision variables.
    • numSlackVariables

      private final int numSlackVariables
      Deprecated.
      Number of slack variables.
    • numArtificialVariables

      private int numArtificialVariables
      Deprecated.
      Number of artificial variables.
    • epsilon

      private final double epsilon
      Deprecated.
      Amount of error to accept when checking for optimality.
    • maxUlps

      private final int maxUlps
      Deprecated.
      Amount of error to accept in floating point comparisons.
  • Constructor Details

    • SimplexTableau

      SimplexTableau(LinearObjectiveFunction f, Collection<LinearConstraint> constraints, GoalType goalType, boolean restrictToNonNegative, double epsilon)
      Deprecated.
      Build a tableau for a linear problem.
      Parameters:
      f - linear objective function
      constraints - linear constraints
      goalType - type of optimization goal: either GoalType.MAXIMIZE or GoalType.MINIMIZE
      restrictToNonNegative - whether to restrict the variables to non-negative values
      epsilon - amount of error to accept when checking for optimality
    • SimplexTableau

      SimplexTableau(LinearObjectiveFunction f, Collection<LinearConstraint> constraints, GoalType goalType, boolean restrictToNonNegative, double epsilon, int maxUlps)
      Deprecated.
      Build a tableau for a linear problem.
      Parameters:
      f - linear objective function
      constraints - linear constraints
      goalType - type of optimization goal: either GoalType.MAXIMIZE or GoalType.MINIMIZE
      restrictToNonNegative - whether to restrict the variables to non-negative values
      epsilon - amount of error to accept when checking for optimality
      maxUlps - amount of error to accept in floating point comparisons
  • Method Details

    • initializeColumnLabels

      protected void initializeColumnLabels()
      Deprecated.
      Initialize the labels for the columns.
    • createTableau

      protected RealMatrix createTableau(boolean maximize)
      Deprecated.
      Create the tableau by itself.
      Parameters:
      maximize - if true, goal is to maximize the objective function
      Returns:
      created tableau
    • normalizeConstraints

      public List<LinearConstraint> normalizeConstraints(Collection<LinearConstraint> originalConstraints)
      Deprecated.
      Get new versions of the constraints which have positive right hand sides.
      Parameters:
      originalConstraints - original (not normalized) constraints
      Returns:
      new versions of the constraints
    • normalize

      private LinearConstraint normalize(LinearConstraint constraint)
      Deprecated.
      Get a new equation equivalent to this one with a positive right hand side.
      Parameters:
      constraint - reference constraint
      Returns:
      new equation
    • getNumObjectiveFunctions

      protected final int getNumObjectiveFunctions()
      Deprecated.
      Get the number of objective functions in this tableau.
      Returns:
      2 for Phase 1. 1 for Phase 2.
    • getConstraintTypeCounts

      private int getConstraintTypeCounts(Relationship relationship)
      Deprecated.
      Get a count of constraints corresponding to a specified relationship.
      Parameters:
      relationship - relationship to count
      Returns:
      number of constraint with the specified relationship
    • getInvertedCoefficientSum

      protected static double getInvertedCoefficientSum(RealVector coefficients)
      Deprecated.
      Get the -1 times the sum of all coefficients in the given array.
      Parameters:
      coefficients - coefficients to sum
      Returns:
      the -1 times the sum of all coefficients in the given array.
    • getBasicRow

      protected Integer getBasicRow(int col)
      Deprecated.
      Checks whether the given column is basic.
      Parameters:
      col - index of the column to check
      Returns:
      the row that the variable is basic in. null if the column is not basic
    • dropPhase1Objective

      protected void dropPhase1Objective()
      Deprecated.
      Removes the phase 1 objective function, positive cost non-artificial variables, and the non-basic artificial variables from this tableau.
    • copyArray

      private void copyArray(double[] src, double[] dest)
      Deprecated.
      Parameters:
      src - the source array
      dest - the destination array
    • isOptimal

      boolean isOptimal()
      Deprecated.
      Returns whether the problem is at an optimal state.
      Returns:
      whether the model has been solved
    • getSolution

      protected PointValuePair getSolution()
      Deprecated.
      Get the current solution.
      Returns:
      current solution
    • divideRow

      protected void divideRow(int dividendRow, double divisor)
      Deprecated.
      Subtracts a multiple of one row from another.

      After application of this operation, the following will hold:

      minuendRow = minuendRow - multiple * subtrahendRow
      Parameters:
      dividendRow - index of the row
      divisor - value of the divisor
    • subtractRow

      protected void subtractRow(int minuendRow, int subtrahendRow, double multiple)
      Deprecated.
      Subtracts a multiple of one row from another.

      After application of this operation, the following will hold:

      minuendRow = minuendRow - multiple * subtrahendRow
      Parameters:
      minuendRow - row index
      subtrahendRow - row index
      multiple - multiplication factor
    • getWidth

      protected final int getWidth()
      Deprecated.
      Get the width of the tableau.
      Returns:
      width of the tableau
    • getHeight

      protected final int getHeight()
      Deprecated.
      Get the height of the tableau.
      Returns:
      height of the tableau
    • getEntry

      protected final double getEntry(int row, int column)
      Deprecated.
      Get an entry of the tableau.
      Parameters:
      row - row index
      column - column index
      Returns:
      entry at (row, column)
    • setEntry

      protected final void setEntry(int row, int column, double value)
      Deprecated.
      Set an entry of the tableau.
      Parameters:
      row - row index
      column - column index
      value - for the entry
    • getSlackVariableOffset

      protected final int getSlackVariableOffset()
      Deprecated.
      Get the offset of the first slack variable.
      Returns:
      offset of the first slack variable
    • getArtificialVariableOffset

      protected final int getArtificialVariableOffset()
      Deprecated.
      Get the offset of the first artificial variable.
      Returns:
      offset of the first artificial variable
    • getRhsOffset

      protected final int getRhsOffset()
      Deprecated.
      Get the offset of the right hand side.
      Returns:
      offset of the right hand side
    • getNumDecisionVariables

      protected final int getNumDecisionVariables()
      Deprecated.
      Get the number of decision variables.

      If variables are not restricted to positive values, this will include 1 extra decision variable to represent the absolute value of the most negative variable.

      Returns:
      number of decision variables
      See Also:
    • getOriginalNumDecisionVariables

      protected final int getOriginalNumDecisionVariables()
      Deprecated.
      Get the original number of decision variables.
      Returns:
      original number of decision variables
      See Also:
    • getNumSlackVariables

      protected final int getNumSlackVariables()
      Deprecated.
      Get the number of slack variables.
      Returns:
      number of slack variables
    • getNumArtificialVariables

      protected final int getNumArtificialVariables()
      Deprecated.
      Get the number of artificial variables.
      Returns:
      number of artificial variables
    • getData

      protected final double[][] getData()
      Deprecated.
      Get the tableau data.
      Returns:
      tableau data
    • equals

      public boolean equals(Object other)
      Deprecated.
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Deprecated.
      Overrides:
      hashCode in class Object
    • writeObject

      private void writeObject(ObjectOutputStream oos) throws IOException
      Deprecated.
      Serialize the instance.
      Parameters:
      oos - stream where object should be written
      Throws:
      IOException - if object cannot be written to stream
    • readObject

      private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException
      Deprecated.
      Deserialize the instance.
      Parameters:
      ois - stream from which the object should be read
      Throws:
      ClassNotFoundException - if a class in the stream cannot be found
      IOException - if object cannot be read from the stream