Class SOCPSectorExposure

  • All Implemented Interfaces:
    Function<Vector,​Double>, RealScalarFunction

    public class SOCPSectorExposure
    extends SOCPPortfolioConstraint
    Transforms a sector exposure constraint into the compact SOCP form.

    The sector exposure constraint is: \[ \sum_{j\in S_i}|w_j^0+x_j|\leq u_i,\quad i=1,\ldots,k, \] where \(S_i\) is the \(i\)th section indicator. By letting \(\bar{y}=|x+w^{0}|\), the sector exposure constraint can be written as: \[ \sum_{j\in S_i}\bar{y}_{j}\leq u_i, i=1,\cdots,k. \] And it is equivalent to: \[ ||0||_{2}\leq -\sum_{j\in S_{i}}\bar{y}_{j}+u_{i},\; i=1,\cdots,k. \] As a result the standard SOCP form of the sector exposure constraints can be written as: \[ ||0||_{2}\leq -\sum_{j\in S_{i}}\bar{y}_{j}+u_{i}\Longleftrightarrow ||A_{i}^{\top}z+C_{i}||_{2}\leq b^{\top}_{i}z+d_{i},\quad i=1,\cdots,k\\ A_{i}^{\top}=0_{1\times n},\; C_{i}=0,\; b_{i}=-\sum_{j\in S_{i}}e_{j},\; d_{i}=u_{i},\; z=\bar{y}, \] where \(e_{j}\) is a \(n\) dimensional vector whose \(j\)th entry is \(1\) and the other entries are \(0\).
    See Also:
    "Reformulate the Portfolio Optimization Problem as a Second Order Cone Programming Problem, Version 7."
    • Constructor Detail

      • SOCPSectorExposure

        public SOCPSectorExposure​(Vector w_0,
                                  Vector[] S,
                                  Vector u,
                                  double epsilon)
        Constructs a sector exposure constraint.
        Parameters:
        w_0 - the initial position
        S - the sector indicators
        u - the sector exposures
        epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0
      • SOCPSectorExposure

        public SOCPSectorExposure​(Vector w_0,
                                  Vector[] S,
                                  Vector u)
        Constructs a sector exposure constraint.
        Parameters:
        w_0 - the initial position
        S - the sector indicators
        u - the sector exposures
    • Method Detail

      • 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