Class OptimizerFramework
java.lang.Object
org.drip.optimization.constrained.OptimizerFramework
public class OptimizerFramework
extends java.lang.Object
OptimizerFramework holds the Non Linear Objective Function and the Collection of Equality and the
Inequality Constraints that correspond to the Optimization Setup. It provides the following Functions:
- OptimizerFramework Constructor
- Retrieve the Rd To R1 Objective Function
- Retrieve the Array of Rd To R1 Equality Constraint Functions
- Retrieve the Array of Rd To R1 Inequality Constraint Functions
- Retrieve the Number of Equality Constraints
- Retrieve the Number of Inequality Constraints
- Indicate if the Optimizer Framework is Lagrangian
- Indicate if the Optimizer Framework is Unconstrained
- Indicate if the specified Fritz John Multipliers are compatible with the Optimization Framework
- Check the Candidate Point for Primal Feasibility
- Check for Complementary Slackness across the Inequality Constraints
- Check the Candidate Point for First Order Necessary Condition
- Check the Candidate Point for Second Order Sufficiency Condition
- Generate the Battery of Necessary and Sufficient Qualification Tests
- Retrieve the Array of Active Constraints
- Active Constraint Set Rank Computation
- Compare the Active Constraint Set Rank at the specified against the specified Rank
- Active Constraint Set Linear Dependence Check
- Compute the Along/Away "Naturally" Incremented Variates
- Check for Linearity Constraint Qualification
- Check for Linearity Independent Constraint Qualification
- Check for Mangasarian Fromovitz Constraint Qualification
- Check for Constant Rank Constraint Qualification
- Check for Constant Positive Linear Dependence Constraint Qualification
- Check for Quasi Normal Constraint Qualification
- Check for Slater Condition Constraint Qualification
- Generate the Battery of Regularity Constraint Qualification Tests
- Boyd, S., and L. van den Berghe (2009): Convex Optimization Cambridge University Press Cambridge UK
- Eustaquio, R., E. Karas, and A. Ribeiro (2008): Constraint Qualification for Nonlinear Programming Federal University of Parana
- Karush, A. (1939): Minima of Functions of Several Variables with Inequalities as Side Constraints University of Chicago Chicago IL
- Kuhn, H. W., and A. W. Tucker (1951): Nonlinear Programming Proceedings of the Second Berkeley Symposium University of California Berkeley CA 481-492
- Ruszczynski, A. (2006): Nonlinear Optimization Princeton University Press Princeton NJ
- Author:
- Lakshmi Krishnamurthy
-
Constructor Summary
Constructors Constructor Description OptimizerFramework(RdToR1 objectiveFunction, RdToR1[] equalityConstraintArray, RdToR1[] inequalityConstraintArray)
OptimizerFramework Constructor -
Method Summary
Modifier and Type Method Description boolean
activeConstraintLinearDependence(double[] variateArray, boolean positiveLinearDependenceCheck)
Active Constraint Set Linear Dependence Checkint
activeConstraintRank(double[] variateArray)
Active Constraint Set Rank Computationboolean
activeConstraintRankComparison(double[] variateArray, int rank)
Compare the Active Constraint Set Rank at the specified against the specified RankRdToR1[]
activeConstraints(double[] variateArray)
Retrieve the Array of Active Constraintsdouble[][]
alongAwayVariate(double[] variateArray)
Compute the Along/Away "Naturally" Incremented Variatesboolean
complementarySlacknessCheck(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray)
Check for Complementary Slackness across the Inequality ConstraintsRdToR1[]
equalityConstraintArray()
Retrieve the Array of Rd To R1 Equality Constraint FunctionsRdToR1[]
inequalityConstraintArray()
Retrieve the Array of Rd To R1 Inequality Constraint Functionsboolean
isCompatible(FritzJohnMultipliers fritzJohnMultipliers)
Indicate if the specified Fritz John Multipliers are compatible with the Optimization Frameworkboolean
isCPLDCQ(double[] variateArray)
Check for Constant Positive Linear Dependence Constraint Qualificationboolean
isCRCQ(double[] variateArray)
Check for Constant Rank Constraint Qualificationboolean
isFONC(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray)
Check the Candidate Point for First Order Necessary Conditionboolean
isLagrangian()
Indicate if the Optimizer Framework is Lagrangianboolean
isLCQ()
Check for Linearity Constraint Qualificationboolean
isLICQ(double[] variateArray)
Check for Linearity Independent Constraint Qualificationboolean
isMFCQ(double[] variateArray)
Check for Mangasarian Fromovitz Constraint Qualificationboolean
isQNCQ(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray)
Check for Quasi Normal Constraint Qualificationboolean
isSCCQ(double[] variateArray)
Check for Slater Condition Constraint Qualificationboolean
isSOSC(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray, boolean checkForMinima)
Check the Candidate Point for Second Order Sufficiency Conditionboolean
isUnconstrained()
Indicate if the Optimizer Framework is UnconstrainedNecessarySufficientConditions
necessarySufficientQualifier(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray, boolean checkForMinima)
Generate the Battery of Necessary and Sufficient Qualification Testsint
numEqualityConstraint()
Retrieve the Number of Equality Constraintsint
numInequalityConstraint()
Retrieve the Number of Inequality ConstraintsRdToR1
objectiveFunction()
Retrieve the Rd To R1 Objective Functionboolean
primalFeasibilityCheck(double[] variateArray)
Check the Candidate Point for Primal FeasibilityRegularityConditions
regularityQualifier(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray)
Generate the Battery of Regularity Constraint Qualification TestsMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
OptimizerFramework
public OptimizerFramework(RdToR1 objectiveFunction, RdToR1[] equalityConstraintArray, RdToR1[] inequalityConstraintArray) throws java.lang.ExceptionOptimizerFramework Constructor- Parameters:
objectiveFunction
- Rd To R1 Objective FunctionequalityConstraintArray
- Array of Rd To R1 Equality Constraint FunctionsinequalityConstraintArray
- Array of Rd To R1 Inequality Constraint Functions- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
-
Method Details
-
objectiveFunction
Retrieve the Rd To R1 Objective Function- Returns:
- The Rd To R1 Objective Function
-
equalityConstraintArray
Retrieve the Array of Rd To R1 Equality Constraint Functions- Returns:
- The Array of Rd To R1 Equality Constraint Functions
-
inequalityConstraintArray
Retrieve the Array of Rd To R1 Inequality Constraint Functions- Returns:
- The Array of Rd To R1 Inequality Constraint Functions
-
numEqualityConstraint
public int numEqualityConstraint()Retrieve the Number of Equality Constraints- Returns:
- The Number of Equality Constraints
-
numInequalityConstraint
public int numInequalityConstraint()Retrieve the Number of Inequality Constraints- Returns:
- The Number of Inequality Constraints
-
isLagrangian
public boolean isLagrangian()Indicate if the Optimizer Framework is Lagrangian- Returns:
- TRUE - The Optimizer Framework is Lagrangian
-
isUnconstrained
public boolean isUnconstrained()Indicate if the Optimizer Framework is Unconstrained- Returns:
- TRUE - The Optimizer Framework is Unconstrained
-
isCompatible
Indicate if the specified Fritz John Multipliers are compatible with the Optimization Framework- Parameters:
fritzJohnMultipliers
- The specified FJM Multipliers- Returns:
- TRUE - The specified Fritz John Multipliers are compatible with the Optimization Framework
-
primalFeasibilityCheck
public boolean primalFeasibilityCheck(double[] variateArray) throws java.lang.ExceptionCheck the Candidate Point for Primal Feasibility- Parameters:
variateArray
- The Candidate Rd Variate- Returns:
- TRUE - The Candidate Point has passed the Primal Feasibility Test
- Throws:
java.lang.Exception
- Thrown if the Input in Invalid
-
complementarySlacknessCheck
public boolean complementarySlacknessCheck(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray) throws java.lang.ExceptionCheck for Complementary Slackness across the Inequality Constraints- Parameters:
fritzJohnMultipliers
- The specified Fritz John MultipliersvariateArray
- The Candidate Rd Variate- Returns:
- TRUE - The Complementary Slackness Test passed
- Throws:
java.lang.Exception
- Thrown if the Input in Invalid
-
isFONC
public boolean isFONC(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray) throws java.lang.ExceptionCheck the Candidate Point for First Order Necessary Condition- Parameters:
fritzJohnMultipliers
- The specified Fritz John MultipliersvariateArray
- The Candidate Rd Variate- Returns:
- TRUE - The Candidate Point satisfied the First Order Necessary Condition
- Throws:
java.lang.Exception
- Thrown if the Input in Invalid
-
isSOSC
public boolean isSOSC(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray, boolean checkForMinima) throws java.lang.ExceptionCheck the Candidate Point for Second Order Sufficiency Condition- Parameters:
fritzJohnMultipliers
- The specified Fritz John MultipliersvariateArray
- The Candidate Rd VariatecheckForMinima
- TRUE - Check whether the Rd Variate corresponds to the SOSC Minimum- Returns:
- TRUE - The Candidate Point satisfies the Second Order Sufficiency Condition
- Throws:
java.lang.Exception
- Thrown if the Input in Invalid
-
necessarySufficientQualifier
public NecessarySufficientConditions necessarySufficientQualifier(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray, boolean checkForMinima)Generate the Battery of Necessary and Sufficient Qualification Tests- Parameters:
fritzJohnMultipliers
- The specified Fritz John MultipliersvariateArray
- The Candidate Rd VariatecheckForMinima
- TRUE - Check whether the Rd Variate corresponds to the SOSC Minimum- Returns:
- The Necessary and Sufficient Conditions Qualifier Instance
-
activeConstraints
Retrieve the Array of Active Constraints- Parameters:
variateArray
- The Rd Variate- Returns:
- The Array of Active Constraints
-
activeConstraintRank
public int activeConstraintRank(double[] variateArray) throws java.lang.ExceptionActive Constraint Set Rank Computation- Parameters:
variateArray
- The Candidate Rd Variate- Returns:
- The Active Constraint Set Rank
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
activeConstraintRankComparison
public boolean activeConstraintRankComparison(double[] variateArray, int rank) throws java.lang.ExceptionCompare the Active Constraint Set Rank at the specified against the specified Rank- Parameters:
variateArray
- The Candidate Rd Variaterank
- The specified Rank- Returns:
- TRUE - Active Constraint Set Rank matches the specified Rank
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
activeConstraintLinearDependence
public boolean activeConstraintLinearDependence(double[] variateArray, boolean positiveLinearDependenceCheck) throws java.lang.ExceptionActive Constraint Set Linear Dependence Check- Parameters:
variateArray
- The Candidate Rd VariatepositiveLinearDependenceCheck
- TRUE - Perform an Additional Positive Dependence Check- Returns:
- TRUE - Active Constraint Set Linear Dependence Check is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
alongAwayVariate
public double[][] alongAwayVariate(double[] variateArray)Compute the Along/Away "Naturally" Incremented Variates- Parameters:
variateArray
- The Candidate Rd Variate- Returns:
- The Along/Away "Natural" Incremented Variates
-
isLCQ
public boolean isLCQ()Check for Linearity Constraint Qualification- Returns:
- TRUE - Linearity Constraint Qualification is satisfied
-
isLICQ
public boolean isLICQ(double[] variateArray) throws java.lang.ExceptionCheck for Linearity Independent Constraint Qualification- Parameters:
variateArray
- The Candidate Rd Variate- Returns:
- TRUE - Linearity Independent Constraint Qualification is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
isMFCQ
public boolean isMFCQ(double[] variateArray) throws java.lang.ExceptionCheck for Mangasarian Fromovitz Constraint Qualification- Parameters:
variateArray
- The Candidate Rd Variate- Returns:
- TRUE - The Mangasarian Fromovitz Constraint Qualification is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
isCRCQ
public boolean isCRCQ(double[] variateArray) throws java.lang.ExceptionCheck for Constant Rank Constraint Qualification- Parameters:
variateArray
- The Candidate Rd Variate- Returns:
- TRUE - The Constant Rank Constraint Qualification is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
isCPLDCQ
public boolean isCPLDCQ(double[] variateArray) throws java.lang.ExceptionCheck for Constant Positive Linear Dependence Constraint Qualification- Parameters:
variateArray
- The Candidate Rd Variate- Returns:
- TRUE - The Constant Positive Linear Dependence Constraint Qualification is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
isQNCQ
public boolean isQNCQ(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray) throws java.lang.ExceptionCheck for Quasi Normal Constraint Qualification- Parameters:
fritzJohnMultipliers
- The specified Fritz John MultipliersvariateArray
- The Candidate Rd Variate- Returns:
- TRUE - The Quasi Normal Constraint Qualification is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
isSCCQ
public boolean isSCCQ(double[] variateArray) throws java.lang.ExceptionCheck for Slater Condition Constraint Qualification- Parameters:
variateArray
- The Candidate Rd Variate- Returns:
- TRUE - The Slater Condition Constraint Qualification is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
regularityQualifier
public RegularityConditions regularityQualifier(FritzJohnMultipliers fritzJohnMultipliers, double[] variateArray)Generate the Battery of Regularity Constraint Qualification Tests- Parameters:
fritzJohnMultipliers
- The specified Fritz John MultipliersvariateArray
- The Candidate Rd Variate- Returns:
- The Regularity Constraint Qualifier Instance
-