Class OptimizationFramework
java.lang.Object
org.drip.optimization.constrained.OptimizationFramework
public class OptimizationFramework
extends java.lang.Object
OptimizationFramework holds the Non Linear Objective Function and the Collection of Equality and
the Inequality Constraints that correspond to the Optimization Setup. The References are:
- 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 OptimizationFramework(RdToR1 rdToR1Objective, RdToR1[] aRdToR1EqualityConstraint, RdToR1[] aRdToR1InequalityConstraint)
OptimizationFramework Constructor -
Method Summary
Modifier and Type Method Description boolean
activeConstraintLinearDependence(double[] adblVariate, boolean bPositiveLinearDependenceCheck)
Active Constraint Set Linear Dependence Checkint
activeConstraintRank(double[] adblVariate)
Active Constraint Set Rank Computationboolean
activeConstraintRankComparison(double[] adblVariate, int iRank)
Compare the Active Constraint Set Rank at the specified against the specified RankRdToR1[]
activeConstraints(double[] adblVariate)
Retrieve the Array of Active Constraintsdouble[][]
alongAwayVariate(double[] adblVariate)
Compute the Along/Away "Naturally" Incremented Variatesboolean
complementarySlacknessCheck(FritzJohnMultipliers fjm, double[] adblVariate)
Check for Complementary Slackness across the Inequality ConstraintsRdToR1[]
equalityConstraint()
Retrieve the Array of R^d To R^1 Equality Constraint FunctionsRdToR1[]
inequalityConstraint()
Retrieve the Array of R^d To R^1 Inequality Constraint Functionsboolean
isCompatible(FritzJohnMultipliers fjm)
Indicate if the specified Fritz John Multipliers are compatible with the Optimization Frameworkboolean
isCPLDCQ(double[] adblVariate)
Check for Constant Positive Linear Dependence Constraint Qualificationboolean
isCRCQ(double[] adblVariate)
Check for Constant Rank Constraint Qualificationboolean
isFONC(FritzJohnMultipliers fjm, double[] adblVariate)
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[] adblVariate)
Check for Linearity Independent Constraint Qualificationboolean
isMFCQ(double[] adblVariate)
Check for Mangasarian Fromovitz Constraint Qualificationboolean
isQNCQ(FritzJohnMultipliers fjm, double[] adblVariate)
Check for Quasi Normal Constraint Qualificationboolean
isSCCQ(double[] adblVariate)
Check for Slater Condition Constraint Qualificationboolean
isSOSC(FritzJohnMultipliers fjm, double[] adblVariate, boolean bCheckForMinima)
Check the Candidate Point for Second Order Sufficiency Conditionboolean
isUnconstrained()
Indicate if the Optimizer Framework is UnconstrainedNecessarySufficientConditions
necessarySufficientQualifier(FritzJohnMultipliers fjm, double[] adblVariate, boolean bCheckForMinima)
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 R^d To R^1 Objective Functionboolean
primalFeasibilityCheck(double[] adblVariate)
Check the Candidate Point for Primal FeasibilityRegularityConditions
regularityQualifier(FritzJohnMultipliers fjm, double[] adblVariate)
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
-
OptimizationFramework
public OptimizationFramework(RdToR1 rdToR1Objective, RdToR1[] aRdToR1EqualityConstraint, RdToR1[] aRdToR1InequalityConstraint) throws java.lang.ExceptionOptimizationFramework Constructor- Parameters:
rdToR1Objective
- The R^d To R^1 Objective FunctionaRdToR1EqualityConstraint
- The Array of R^d To R^1 Equality Constraint FunctionsaRdToR1InequalityConstraint
- The Array of R^d To R^1 Inequality Constraint Functions- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
-
Method Details
-
objectiveFunction
Retrieve the R^d To R^1 Objective Function- Returns:
- The R^d To R^1 Objective Function
-
equalityConstraint
Retrieve the Array of R^d To R^1 Equality Constraint Functions- Returns:
- The Array of R^d To R^1 Equality Constraint Functions
-
inequalityConstraint
Retrieve the Array of R^d To R^1 Inequality Constraint Functions- Returns:
- The Array of R^d To R^1 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:
fjm
- The specified FJM Multipliers- Returns:
- TRUE - The specified Fritz John Multipliers are compatible with the Optimization Framework
-
primalFeasibilityCheck
public boolean primalFeasibilityCheck(double[] adblVariate) throws java.lang.ExceptionCheck the Candidate Point for Primal Feasibility- Parameters:
adblVariate
- The Candidate R^d 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 fjm, double[] adblVariate) throws java.lang.ExceptionCheck for Complementary Slackness across the Inequality Constraints- Parameters:
fjm
- The specified Fritz John MultipliersadblVariate
- The Candidate R^d Variate- Returns:
- TRUE - The Complementary Slackness Test passed
- Throws:
java.lang.Exception
- Thrown if the Input in Invalid
-
isFONC
Check the Candidate Point for First Order Necessary Condition- Parameters:
fjm
- The specified Fritz John MultipliersadblVariate
- The Candidate R^d 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 fjm, double[] adblVariate, boolean bCheckForMinima) throws java.lang.ExceptionCheck the Candidate Point for Second Order Sufficiency Condition- Parameters:
fjm
- The specified Fritz John MultipliersadblVariate
- The Candidate R^d VariatebCheckForMinima
- TRUE - Check whether the R^d 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 fjm, double[] adblVariate, boolean bCheckForMinima)Generate the Battery of Necessary and Sufficient Qualification Tests- Parameters:
fjm
- The specified Fritz John MultipliersadblVariate
- The Candidate R^d VariatebCheckForMinima
- TRUE - Check whether the R^d Variate corresponds to the SOSC Minimum- Returns:
- The Necessary and Sufficient Conditions Qualifier Instance
-
activeConstraints
Retrieve the Array of Active Constraints- Parameters:
adblVariate
- The R^d Variate- Returns:
- The Array of Active Constraints
-
activeConstraintRank
public int activeConstraintRank(double[] adblVariate) throws java.lang.ExceptionActive Constraint Set Rank Computation- Parameters:
adblVariate
- The Candidate R^d Variate- Returns:
- The Active Constraint Set Rank
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
activeConstraintRankComparison
public boolean activeConstraintRankComparison(double[] adblVariate, int iRank) throws java.lang.ExceptionCompare the Active Constraint Set Rank at the specified against the specified Rank- Parameters:
adblVariate
- The Candidate R^d VariateiRank
- 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[] adblVariate, boolean bPositiveLinearDependenceCheck) throws java.lang.ExceptionActive Constraint Set Linear Dependence Check- Parameters:
adblVariate
- The Candidate R^d VariatebPositiveLinearDependenceCheck
- 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[] adblVariate)Compute the Along/Away "Naturally" Incremented Variates- Parameters:
adblVariate
- The Candidate R^d 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[] adblVariate) throws java.lang.ExceptionCheck for Linearity Independent Constraint Qualification- Parameters:
adblVariate
- The Candidate R^d Variate- Returns:
- TRUE - Linearity Independent Constraint Qualification is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
isMFCQ
public boolean isMFCQ(double[] adblVariate) throws java.lang.ExceptionCheck for Mangasarian Fromovitz Constraint Qualification- Parameters:
adblVariate
- The Candidate R^d 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[] adblVariate) throws java.lang.ExceptionCheck for Constant Rank Constraint Qualification- Parameters:
adblVariate
- The Candidate R^d 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[] adblVariate) throws java.lang.ExceptionCheck for Constant Positive Linear Dependence Constraint Qualification- Parameters:
adblVariate
- The Candidate R^d Variate- Returns:
- TRUE - The Constant Positive Linear Dependence Constraint Qualification is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
isQNCQ
Check for Quasi Normal Constraint Qualification- Parameters:
fjm
- The specified Fritz John MultipliersadblVariate
- The Candidate R^d 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[] adblVariate) throws java.lang.ExceptionCheck for Slater Condition Constraint Qualification- Parameters:
adblVariate
- The Candidate R^d Variate- Returns:
- TRUE - The Slater Condition Constraint Qualification is satisfied
- Throws:
java.lang.Exception
- Thrown if the Inputs are Invalid
-
regularityQualifier
Generate the Battery of Regularity Constraint Qualification Tests- Parameters:
fjm
- The specified Fritz John MultipliersadblVariate
- The Candidate R^d Variate- Returns:
- The Regularity Constraint Qualifier Instance
-