Class SOCPLinearSectorNeutrality
- java.lang.Object
-
- dev.nm.solver.multivariate.constrained.convex.sdp.socp.problem.portfoliooptimization.SOCPPortfolioConstraint
-
- tech.nmfin.portfoliooptimization.socp.constraints.SOCPLinearSectorNeutrality
-
- All Implemented Interfaces:
Function<Vector,Double>
,RealScalarFunction
public class SOCPLinearSectorNeutrality extends SOCPPortfolioConstraint
A sector neutrality means that the sum of weights for given sectors are zero. \[ \sum_{j \in S_i} y_j = 0, \quad i = 1, \ldots, k \] where \(S_i\)'s represent the given \(k\) sectors.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class dev.nm.solver.multivariate.constrained.convex.sdp.socp.problem.portfoliooptimization.SOCPPortfolioConstraint
SOCPPortfolioConstraint.ConstraintViolationException, SOCPPortfolioConstraint.Variable
-
Nested classes/interfaces inherited from interface dev.nm.analysis.function.Function
Function.EvaluationException
-
-
Field Summary
Fields Modifier and Type Field Description static double
DEFAULT_EPSILON
-
Constructor Summary
Constructors Constructor Description SOCPLinearSectorNeutrality(Vector[] S)
Creates a sector neutrality constraint.SOCPLinearSectorNeutrality(Vector[] S, double epsilon)
Creates a sector neutrality constraint.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
areAllConstraintsSatisfied(Vector y)
Checks whether all SOCP constraints represented by this portfolio constraint are satisfied.int
dimensionOfDomain()
Get the number of variables the function has.int
dimensionOfRange()
Get the dimension of the range space of the function.Double
evaluate(Vector y)
Evaluate the function f at x, where x is from the domain.-
Methods inherited from class dev.nm.solver.multivariate.constrained.convex.sdp.socp.problem.portfoliooptimization.SOCPPortfolioConstraint
generalConstraints, getVariables, linearEqualities, linearInequalities, newSOCPGeneralConstraints, newSOCPLinearEqualities, newSOCPLinearInequalities
-
-
-
-
Field Detail
-
DEFAULT_EPSILON
public static final double DEFAULT_EPSILON
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SOCPLinearSectorNeutrality
public SOCPLinearSectorNeutrality(Vector[] S)
Creates a sector neutrality constraint.- Parameters:
S
- the sector indicators;S[i].get(j) == 1
if asset \(j\) is in sector \(S_i\); 0 otherwise
-
SOCPLinearSectorNeutrality
public SOCPLinearSectorNeutrality(Vector[] S, double epsilon)
Creates a sector neutrality constraint.- Parameters:
S
- the sector indicators;S[i].get(j) == 1
if asset \(j\) is in sector \(S_i\); 0 otherwiseepsilon
- a precision parameter: when a number |x| ≤ ε, it is considered 0
-
-
Method Detail
-
areAllConstraintsSatisfied
public boolean areAllConstraintsSatisfied(Vector y) throws SOCPPortfolioConstraint.ConstraintViolationException
Description copied from class:SOCPPortfolioConstraint
Checks whether all SOCP constraints represented by this portfolio constraint are satisfied.- Specified by:
areAllConstraintsSatisfied
in classSOCPPortfolioConstraint
- Parameters:
y
- a portfolio solution or allocation; the asset weights- Returns:
true
if and only if all SOCP constraints are satisfied- Throws:
SOCPPortfolioConstraint.ConstraintViolationException
-
evaluate
public Double evaluate(Vector y)
Description copied from interface:Function
Evaluate the function f at x, where x is from the domain.- Parameters:
y
- x- Returns:
- f(x)
-
dimensionOfDomain
public int dimensionOfDomain()
Description copied from interface:Function
Get the number of variables the function has. For example, for a univariate function, the domain dimension is 1; for a bivariate function, the domain dimension is 2.- Returns:
- the number of variables
-
dimensionOfRange
public int dimensionOfRange()
Description copied from interface:Function
Get the dimension of the range space of the function. For example, for a Rn->Rm function, the dimension of the range is m.- Returns:
- the dimension of the range
-
-