Package org.drip.optimization.canonical
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 Summary
Constructors Constructor Description ILPConstraint(int[][] aGrid, int[] bArray)
ILPConstraint Constructor -
Method Summary
Modifier and Type Method Description int[][]
aGrid()
Retrieve "A" Gridint[]
bArray()
Retrieve "b" ArrayBurdetJohnsonCut
burdetJohnsonCut(double[] lambdaArray)
Generate a Burdet-Johnson CutChvatalGomoryCut
chvatalGomoryCut(double[] lambdaArray)
Generate a Chvatal-Gomory Cutint
constraintCount()
Retrieve the Constraint Countint
dimension()
Retrieve the Variate DimensionStrengthenedBurdetJohnsonCut
strengthenedBurdetJohnsonCut(double[] lambdaArray, R1ToR1 r1ToR1Increasing)
Generate a Strengthened Burdet-Johnson CutStrengthenedChvatalGomoryCut
strengthenedChvatalGomoryCut(double[] lambdaArray, int t)
Generate a Strengthened Chvatal-Gomory Cutboolean
validate(int[] variateArray)
Validate the Variate Inputboolean
verify(int[] variateArray)
Verify if the Variate Array satisfies the ConstraintMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
ILPConstraint
public ILPConstraint(int[][] aGrid, int[] bArray) throws java.lang.ExceptionILPConstraint Constructor- Parameters:
aGrid
- "A" Constraint GridbArray
- "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 interfaceLinearConstraint
- Returns:
- Constraint Count
-
dimension
public int dimension()Description copied from interface:LinearConstraint
Retrieve the Variate Dimension- Specified by:
dimension
in interfaceLinearConstraint
- 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.ExceptionVerify 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
Generate a Chvatal-Gomory Cut- Parameters:
lambdaArray
- The Lambda Array- Returns:
- The Chvatal-Gomory Cut
-
strengthenedChvatalGomoryCut
Generate a Strengthened Chvatal-Gomory Cut- Parameters:
lambdaArray
- The Lambda Arrayt
- Strengthening Integer- Returns:
- The Chvatal-Gomory Cut
-
burdetJohnsonCut
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 Arrayr1ToR1Increasing
- R1 To R1 Increasing Function- Returns:
- The Strengthened Burdet-Johnson Cut
-