Class ILPConstraint

java.lang.Object
org.drip.optimization.canonical.ILPConstraint
All Implemented Interfaces:
LinearConstraint
Direct Known Subclasses:
ChvatalGomoryCut

public class ILPConstraint
extends java.lang.Object
implements LinearConstraint
ILPConstraint holds the Constraint Matrix LHS and Constraint Array RHS for an Integer Linear Program Ax lte B, where A is Zm x n, B is Zm, and x is Z+n. The References are:

  • Burdet, C. A., and E. L. Johnson (1977): A Sub-additive Approach to Solve Linear Integer Programs Annals of Discrete Mathematics 1 117-143
  • Chvatal, V. (1973): Edmonds Polytopes in a Hierarchy of Combinatorial Problems Discrete Mathematics 4 (4) 305-337
  • Gomory, R. E. (1958): Outline of an Algorithm for Integer Solutions to Linear Programs Bulletin of the American Mathematical Society 64 (5) 275-278
  • Kelley, J. E. (1960): The Cutting Plane Method for Solving Convex Problems Journal for the Society of the Industrial and Applied Mathematics 8 (4) 703-712
  • Letchford, A. N. and A. Lodi (2002): Strengthening Chvatal-Gomory Cuts and Gomory Fractional Cuts Operations Research Letters 30 (2) 74-82


Author:
Lakshmi Krishnamurthy
  • Constructor Details

    • ILPConstraint

      public ILPConstraint​(int[][] aGrid, int[] bArray) throws java.lang.Exception
      ILPConstraint Constructor
      Parameters:
      aGrid - "A" Constraint Grid
      bArray - "b" Constraint Array
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
  • Method Details

    • aGrid

      public int[][] aGrid()
      Retrieve "A" Grid
      Returns:
      A Grid
    • bArray

      public int[] bArray()
      Retrieve "b" Array
      Returns:
      b Array
    • constraintCount

      public int constraintCount()
      Description copied from interface: LinearConstraint
      Retrieve the Constraint Count
      Specified by:
      constraintCount in interface LinearConstraint
      Returns:
      Constraint Count
    • dimension

      public int dimension()
      Description copied from interface: LinearConstraint
      Retrieve the Variate Dimension
      Specified by:
      dimension in interface LinearConstraint
      Returns:
      Variate Dimension
    • validate

      public boolean validate​(int[] variateArray)
      Validate the Variate Input
      Parameters:
      variateArray - The Input Variate Array
      Returns:
      TRUE - The Input Variate successfully Validated
    • verify

      public boolean verify​(int[] variateArray) throws java.lang.Exception
      Verify if the Variate Array satisfies the Constraint
      Parameters:
      variateArray - The Input Variate Array
      Returns:
      TRUE - The Variate Array satisfies the Constraint
      Throws:
      java.lang.Exception - Thrown if the Verification cannot be done
    • chvatalGomoryCut

      public ChvatalGomoryCut chvatalGomoryCut​(double[] lambdaArray)
      Generate a Chvatal-Gomory Cut
      Parameters:
      lambdaArray - The Lambda Array
      Returns:
      The Chvatal-Gomory Cut
    • strengthenedChvatalGomoryCut

      public StrengthenedChvatalGomoryCut strengthenedChvatalGomoryCut​(double[] lambdaArray, int t)
      Generate a Strengthened Chvatal-Gomory Cut
      Parameters:
      lambdaArray - The Lambda Array
      t - Strengthening Integer
      Returns:
      The Chvatal-Gomory Cut
    • burdetJohnsonCut

      public BurdetJohnsonCut burdetJohnsonCut​(double[] lambdaArray)
      Generate a Burdet-Johnson Cut
      Parameters:
      lambdaArray - The Lambda Array
      Returns:
      The Burdet-Johnson Cut
    • strengthenedBurdetJohnsonCut

      public StrengthenedBurdetJohnsonCut strengthenedBurdetJohnsonCut​(double[] lambdaArray, R1ToR1 r1ToR1Increasing)
      Generate a Strengthened Burdet-Johnson Cut
      Parameters:
      lambdaArray - The Lambda Array
      r1ToR1Increasing - R1 To R1 Increasing Function
      Returns:
      The Strengthened Burdet-Johnson Cut