Class ExtremalGeneralizedEigenvalueBySDP

    • Constructor Detail

      • ExtremalGeneralizedEigenvalueBySDP

        public ExtremalGeneralizedEigenvalueBySDP​(SymmetricMatrix A,
                                                  SymmetricMatrix B)
        Constructs the problem described in Section 3.2, d'Aspremont (2008), changed to a minimization problem.
        Parameters:
        A - the matrix A in eq. 10, reference [1]
        B - the matrix B in eq. 10, reference [1]
      • ExtremalGeneralizedEigenvalueBySDP

        public ExtremalGeneralizedEigenvalueBySDP​(SymmetricMatrix A,
                                                  SymmetricMatrix B,
                                                  boolean isMinimizationProblem)
        Constructs the problem described in Section 3.2, d'Aspremont (2008).
        Parameters:
        A - the matrix A in eq. 10, reference [1]
        B - the matrix B in eq. 10, reference [1]
        isMinimizationProblem - if true, eq. 10 in reference [1] is changed to a minimization problem
      • ExtremalGeneralizedEigenvalueBySDP

        public ExtremalGeneralizedEigenvalueBySDP​(SymmetricMatrix A,
                                                  SymmetricMatrix B,
                                                  int maxIterations,
                                                  double weightRank,
                                                  double weightCardinality,
                                                  double tol,
                                                  boolean isMinimizationProblem)
        Constructs the problem described in Section 3.2, d'Aspremont (2008).
        Parameters:
        A - the matrix A in eq. 10, reference [1]
        B - the matrix B in eq. 10, reference [1]
        maxIterations - the maximum number of iterations
        weightRank - the penalty weight for rank constraints
        weightCardinality - the penalty weight for cardinality constraints
        tol - the tolerance for rank and cardinality constraints
        isMinimizationProblem - if true, eq. 10 in reference [1] is changed to a minimization problem
    • Method Detail

      • computeOptimalPositions

        public Vector computeOptimalPositions​(int card)
        Computes the solution to the problem described in Section 3.2 in reference.
        Specified by:
        computeOptimalPositions in interface ExtremalGeneralizedEigenvalueSolver
        Parameters:
        card - the cardinality constraint, the number of non-zero elements in x, the solution
        Returns:
        vector x in eq. 10 in reference
        See Also:
        "Sections 4.4 and 4.5, reference [2]"
      • getLambda

        public double getLambda​(Vector x)
        Computes the value of the objective function in eq. 10, reference [1].
        Parameters:
        x - variable x in eq. 10, reference[1]
        Returns:
        maximum value of lambda such that det(lambda*B-A)=0.