Class OptimizationProblem

    • Field Detail

      • EPSILON

        public static final double EPSILON
        Some value to represent a very small number
        See Also:
        Constant Field Values
      • MINIMIZE

        public static final int MINIMIZE
        Static constant for the type "minimization"
        See Also:
        Constant Field Values
      • MAXIMIZE

        public static final int MAXIMIZE
        Static constant for the type "maximization"
        See Also:
        Constant Field Values
    • Constructor Detail

      • OptimizationProblem

        public OptimizationProblem()
        Creates an empty optimization problem.
      • OptimizationProblem

        public OptimizationProblem​(int type)
        Creates an empty optimization problem of the given type.
        Parameters:
        type - the type of the problem; either OptimizationProblem.MINIMIZE or OptimizationProblem.MAXIMIZE.
    • Method Detail

      • setTargetFunction

        public void setTargetFunction​(Term targetFunction)
        Sets the target function of this problem.
        Parameters:
        targetFunction - a term.
      • isTargetLinear

        public boolean isTargetLinear()
        Checks whether the target function is linear.
        Returns:
        "true" if the target function is linear.
      • resolveAbsoluteValues

        public void resolveAbsoluteValues()
        Resolves all occurrences of absolute values "abs(X)" by
        • replacing "abs(X)" by a new variable "TMPABS"
        • adding constraints "TMPABS - X>= 0" and "TMPABS + X >= 0" (yielding "TMPABS <= abs(X)")
        • introducing a new variable "TMPABSB"
        • adding constraints "X+PENALTY*TMPABSB - TMPABS >= 0" and "-X-TMPABSB*PENALTY - TMPABS >= -PENALTY" (yielding "TMPABS >= abs(X)")
        • adding constraints "TMPABSB<=1"
      • convertToLpFormat

        public String convertToLpFormat()
        Converts the this optimization problem into a string in the commonly used LP-format for mixed integer linear programming.
        Returns:
        A string representing this problem in LP-format
      • convertToCplexLpFormat

        public String convertToCplexLpFormat()
        Converts the this optimization problem into a string in the commonly used CPLEX LP-format for mixed integer linear programming.
        Returns:
        A string representing this problem in CPLEX LP-format
      • setType

        public void setType​(int type)
        Sets the type of this problem, either OptimizationProblem.MINIMIZE or OptimizationProblem.MAXIMIZE.
        Parameters:
        type - the type of this problem.
      • setPenalty

        public void setPenalty​(int penalty)
        Sets the penalty for violated minimum.
        Parameters:
        penalty - some penalty
      • getType

        public int getType()
        Returns the type of this problem.
        Returns:
        the type of this problem.
      • getTargetFunction

        public Term getTargetFunction()
        Returns the target function of this problem.
        Returns:
        the target function of this problem.