org.apache.commons.math3.optim.linear

## Class LinearConstraint

- java.lang.Object
- - org.apache.commons.math3.optim.linear.LinearConstraint

- All Implemented Interfaces:
    Serializable

      public class LinearConstraint
      extends Object
      implements Serializable

  A linear constraint for a linear optimization problem.

  A linear constraint has one of the forms:

  - c1x1 + ... cnxn = v
  - c1x1 + ... cnxn <= v
  - c1x1 + ... cnxn >= v
  - l1x1 + ... lnxn + lcst = r1x1 + ... rnxn + rcst
  - l1x1 + ... lnxn + lcst <= r1x1 + ... rnxn + rcst
  - l1x1 + ... lnxn + lcst >= r1x1 + ... rnxn + rcst
  The ci, li or ri are the coefficients of the constraints, the xi are the coordinates of the current point and v is the value of the constraint.
  Since:
    2.0
  Version:
    $Id: LinearConstraint.java 1416643 2012-12-03 19:37:14Z tn $
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private RealVector` | `coefficients` Coefficients of the constraint (left hand side).
    `private Relationship` | `relationship` Relationship between left and right hand sides (=, <=, >=).
    `private static long` | `serialVersionUID` Serializable version identifier.
    `private double` | `value` Value of the constraint (right hand side).

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LinearConstraint(double[] lhsCoefficients, double lhsConstant, Relationship relationship, double[] rhsCoefficients, double rhsConstant)` Build a constraint involving two linear equations.
    `LinearConstraint(double[] coefficients, Relationship relationship, double value)` Build a constraint involving a single linear equation.
    `LinearConstraint(RealVector lhsCoefficients, double lhsConstant, Relationship relationship, RealVector rhsCoefficients, double rhsConstant)` Build a constraint involving two linear equations.
    `LinearConstraint(RealVector coefficients, Relationship relationship, double value)` Build a constraint involving a single linear equation.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object other)`
    `RealVector` | `getCoefficients()` Gets the coefficients of the constraint (left hand side).
    `Relationship` | `getRelationship()` Gets the relationship between left and right hand sides.
    `double` | `getValue()` Gets the value of the constraint (right hand side).
    `int` | `hashCode()`
    `private void` | `readObject(ObjectInputStream ois)` Deserialize the instance.
    `private void` | `writeObject(ObjectOutputStream oos)` Serialize the instance.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### serialVersionUID

          private static final long serialVersionUID

      Serializable version identifier.
      See Also:
        Constant Field Values

    - #### coefficients

          private final transient RealVector coefficients

      Coefficients of the constraint (left hand side).

    - #### relationship

          private final Relationship relationship

      Relationship between left and right hand sides (=, <=, >=).

    - #### value

          private final double value

      Value of the constraint (right hand side).

  - ### Constructor Detail

    - #### LinearConstraint

          public LinearConstraint(double[] coefficients,
                          Relationship relationship,
                          double value)

      Build a constraint involving a single linear equation.

      A linear constraint with a single linear equation has one of the forms:

      - c1x1 + ... cnxn = v
      - c1x1 + ... cnxn <= v
      - c1x1 + ... cnxn >= v
      Parameters:
        `coefficients` - The coefficients of the constraint (left hand side)
        `relationship` - The type of (in)equality used in the constraint
        `value` - The value of the constraint (right hand side)

    - #### LinearConstraint

          public LinearConstraint(RealVector coefficients,
                          Relationship relationship,
                          double value)

      Build a constraint involving a single linear equation.

      A linear constraint with a single linear equation has one of the forms:

      - c1x1 + ... cnxn = v
      - c1x1 + ... cnxn <= v
      - c1x1 + ... cnxn >= v
      Parameters:
        `coefficients` - The coefficients of the constraint (left hand side)
        `relationship` - The type of (in)equality used in the constraint
        `value` - The value of the constraint (right hand side)

    - #### LinearConstraint

          public LinearConstraint(double[] lhsCoefficients,
                          double lhsConstant,
                          Relationship relationship,
                          double[] rhsCoefficients,
                          double rhsConstant)

      Build a constraint involving two linear equations.

      A linear constraint with two linear equation has one of the forms:

      - l1x1 + ... lnxn + lcst = r1x1 + ... rnxn + rcst
      - l1x1 + ... lnxn + lcst <= r1x1 + ... rnxn + rcst
      - l1x1 + ... lnxn + lcst >= r1x1 + ... rnxn + rcst
      Parameters:
        `lhsCoefficients` - The coefficients of the linear expression on the left hand side of the constraint
        `lhsConstant` - The constant term of the linear expression on the left hand side of the constraint
        `relationship` - The type of (in)equality used in the constraint
        `rhsCoefficients` - The coefficients of the linear expression on the right hand side of the constraint
        `rhsConstant` - The constant term of the linear expression on the right hand side of the constraint

    - #### LinearConstraint

          public LinearConstraint(RealVector lhsCoefficients,
                          double lhsConstant,
                          Relationship relationship,
                          RealVector rhsCoefficients,
                          double rhsConstant)

      Build a constraint involving two linear equations.

      A linear constraint with two linear equation has one of the forms:

      - l1x1 + ... lnxn + lcst = r1x1 + ... rnxn + rcst
      - l1x1 + ... lnxn + lcst <= r1x1 + ... rnxn + rcst
      - l1x1 + ... lnxn + lcst >= r1x1 + ... rnxn + rcst
      Parameters:
        `lhsCoefficients` - The coefficients of the linear expression on the left hand side of the constraint
        `lhsConstant` - The constant term of the linear expression on the left hand side of the constraint
        `relationship` - The type of (in)equality used in the constraint
        `rhsCoefficients` - The coefficients of the linear expression on the right hand side of the constraint
        `rhsConstant` - The constant term of the linear expression on the right hand side of the constraint

  - ### Method Detail

    - #### getCoefficients

          public RealVector getCoefficients()

      Gets the coefficients of the constraint (left hand side).
      Returns:
        the coefficients of the constraint (left hand side).

    - #### getRelationship

          public Relationship getRelationship()

      Gets the relationship between left and right hand sides.
      Returns:
        the relationship between left and right hand sides.

    - #### getValue

          public double getValue()

      Gets the value of the constraint (right hand side).
      Returns:
        the value of the constraint (right hand side).

    - #### equals

          public boolean equals(Object other)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### writeObject

          private void writeObject(ObjectOutputStream oos)
                            throws IOException

      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

      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

Copyright (c) 2003-2013 Apache Software Foundation