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 Check
    int activeConstraintRank​(double[] adblVariate)
    Active Constraint Set Rank Computation
    boolean activeConstraintRankComparison​(double[] adblVariate, int iRank)
    Compare the Active Constraint Set Rank at the specified against the specified Rank
    RdToR1[] activeConstraints​(double[] adblVariate)
    Retrieve the Array of Active Constraints
    double[][] alongAwayVariate​(double[] adblVariate)
    Compute the Along/Away "Naturally" Incremented Variates
    boolean complementarySlacknessCheck​(FritzJohnMultipliers fjm, double[] adblVariate)
    Check for Complementary Slackness across the Inequality Constraints
    RdToR1[] equalityConstraint()
    Retrieve the Array of R^d To R^1 Equality Constraint Functions
    RdToR1[] inequalityConstraint()
    Retrieve the Array of R^d To R^1 Inequality Constraint Functions
    boolean isCompatible​(FritzJohnMultipliers fjm)
    Indicate if the specified Fritz John Multipliers are compatible with the Optimization Framework
    boolean isCPLDCQ​(double[] adblVariate)
    Check for Constant Positive Linear Dependence Constraint Qualification
    boolean isCRCQ​(double[] adblVariate)
    Check for Constant Rank Constraint Qualification
    boolean isFONC​(FritzJohnMultipliers fjm, double[] adblVariate)
    Check the Candidate Point for First Order Necessary Condition
    boolean isLagrangian()
    Indicate if the Optimizer Framework is Lagrangian
    boolean isLCQ()
    Check for Linearity Constraint Qualification
    boolean isLICQ​(double[] adblVariate)
    Check for Linearity Independent Constraint Qualification
    boolean isMFCQ​(double[] adblVariate)
    Check for Mangasarian Fromovitz Constraint Qualification
    boolean isQNCQ​(FritzJohnMultipliers fjm, double[] adblVariate)
    Check for Quasi Normal Constraint Qualification
    boolean isSCCQ​(double[] adblVariate)
    Check for Slater Condition Constraint Qualification
    boolean isSOSC​(FritzJohnMultipliers fjm, double[] adblVariate, boolean bCheckForMinima)
    Check the Candidate Point for Second Order Sufficiency Condition
    boolean isUnconstrained()
    Indicate if the Optimizer Framework is Unconstrained
    NecessarySufficientConditions necessarySufficientQualifier​(FritzJohnMultipliers fjm, double[] adblVariate, boolean bCheckForMinima)
    Generate the Battery of Necessary and Sufficient Qualification Tests
    int numEqualityConstraint()
    Retrieve the Number of Equality Constraints
    int numInequalityConstraint()
    Retrieve the Number of Inequality Constraints
    RdToR1 objectiveFunction()
    Retrieve the R^d To R^1 Objective Function
    boolean primalFeasibilityCheck​(double[] adblVariate)
    Check the Candidate Point for Primal Feasibility
    RegularityConditions regularityQualifier​(FritzJohnMultipliers fjm, double[] adblVariate)
    Generate the Battery of Regularity Constraint Qualification Tests

    Methods 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.Exception
      OptimizationFramework Constructor
      Parameters:
      rdToR1Objective - The R^d To R^1 Objective Function
      aRdToR1EqualityConstraint - The Array of R^d To R^1 Equality Constraint Functions
      aRdToR1InequalityConstraint - The Array of R^d To R^1 Inequality Constraint Functions
      Throws:
      java.lang.Exception - Thrown if the Inputs are Invalid
  • Method Details

    • objectiveFunction

      public RdToR1 objectiveFunction()
      Retrieve the R^d To R^1 Objective Function
      Returns:
      The R^d To R^1 Objective Function
    • equalityConstraint

      public RdToR1[] 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

      public RdToR1[] 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

      public boolean isCompatible​(FritzJohnMultipliers fjm)
      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.Exception
      Check 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.Exception
      Check for Complementary Slackness across the Inequality Constraints
      Parameters:
      fjm - The specified Fritz John Multipliers
      adblVariate - The Candidate R^d Variate
      Returns:
      TRUE - The Complementary Slackness Test passed
      Throws:
      java.lang.Exception - Thrown if the Input in Invalid
    • isFONC

      public boolean isFONC​(FritzJohnMultipliers fjm, double[] adblVariate) throws java.lang.Exception
      Check the Candidate Point for First Order Necessary Condition
      Parameters:
      fjm - The specified Fritz John Multipliers
      adblVariate - 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.Exception
      Check the Candidate Point for Second Order Sufficiency Condition
      Parameters:
      fjm - The specified Fritz John Multipliers
      adblVariate - The Candidate R^d Variate
      bCheckForMinima - 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 Multipliers
      adblVariate - The Candidate R^d Variate
      bCheckForMinima - TRUE - Check whether the R^d Variate corresponds to the SOSC Minimum
      Returns:
      The Necessary and Sufficient Conditions Qualifier Instance
    • activeConstraints

      public RdToR1[] activeConstraints​(double[] adblVariate)
      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.Exception
      Active 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.Exception
      Compare the Active Constraint Set Rank at the specified against the specified Rank
      Parameters:
      adblVariate - The Candidate R^d Variate
      iRank - 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.Exception
      Active Constraint Set Linear Dependence Check
      Parameters:
      adblVariate - The Candidate R^d Variate
      bPositiveLinearDependenceCheck - 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.Exception
      Check 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.Exception
      Check 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.Exception
      Check 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.Exception
      Check 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

      public boolean isQNCQ​(FritzJohnMultipliers fjm, double[] adblVariate) throws java.lang.Exception
      Check for Quasi Normal Constraint Qualification
      Parameters:
      fjm - The specified Fritz John Multipliers
      adblVariate - 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.Exception
      Check 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

      public RegularityConditions regularityQualifier​(FritzJohnMultipliers fjm, double[] adblVariate)
      Generate the Battery of Regularity Constraint Qualification Tests
      Parameters:
      fjm - The specified Fritz John Multipliers
      adblVariate - The Candidate R^d Variate
      Returns:
      The Regularity Constraint Qualifier Instance