Interface CpSolverResponseOrBuilder

  • All Superinterfaces:
    com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
    All Known Implementing Classes:
    CpSolverResponse, CpSolverResponse.Builder

    public interface CpSolverResponseOrBuilder
    extends com.google.protobuf.MessageOrBuilder
    • Method Detail

      • getStatusValue

        int getStatusValue()
         The status of the solve.
         
        .operations_research.sat.CpSolverStatus status = 1;
        Returns:
        The enum numeric value on the wire for status.
      • getStatus

        CpSolverStatus getStatus()
         The status of the solve.
         
        .operations_research.sat.CpSolverStatus status = 1;
        Returns:
        The status.
      • getSolutionList

        java.util.List<java.lang.Long> getSolutionList()
         A feasible solution to the given problem. Depending on the returned status
         it may be optimal or just feasible. This is in one-to-one correspondence
         with a CpModelProto::variables repeated field and list the values of all
         the variables.
         
        repeated int64 solution = 2;
        Returns:
        A list containing the solution.
      • getSolutionCount

        int getSolutionCount()
         A feasible solution to the given problem. Depending on the returned status
         it may be optimal or just feasible. This is in one-to-one correspondence
         with a CpModelProto::variables repeated field and list the values of all
         the variables.
         
        repeated int64 solution = 2;
        Returns:
        The count of solution.
      • getSolution

        long getSolution​(int index)
         A feasible solution to the given problem. Depending on the returned status
         it may be optimal or just feasible. This is in one-to-one correspondence
         with a CpModelProto::variables repeated field and list the values of all
         the variables.
         
        repeated int64 solution = 2;
        Parameters:
        index - The index of the element to return.
        Returns:
        The solution at the given index.
      • getObjectiveValue

        double getObjectiveValue()
         Only make sense for an optimization problem. The objective value of the
         returned solution if it is non-empty. If there is no solution, then for a
         minimization problem, this will be an upper-bound of the objective of any
         feasible solution, and a lower-bound for a maximization problem.
         
        double objective_value = 3;
        Returns:
        The objectiveValue.
      • getBestObjectiveBound

        double getBestObjectiveBound()
         Only make sense for an optimization problem. A proven lower-bound on the
         objective for a minimization problem, or a proven upper-bound for a
         maximization problem.
         
        double best_objective_bound = 4;
        Returns:
        The bestObjectiveBound.
      • getAdditionalSolutionsList

        java.util.List<CpSolverSolution> getAdditionalSolutionsList()
         If the parameter fill_additional_solutions_in_response is set, then we
         copy all the solutions from our internal solution pool here.
        
         Note that the one returned in the solution field will likely appear here
         too. Do not rely on the solutions order as it depends on our internal
         representation (after postsolve).
         
        repeated .operations_research.sat.CpSolverSolution additional_solutions = 27;
      • getAdditionalSolutions

        CpSolverSolution getAdditionalSolutions​(int index)
         If the parameter fill_additional_solutions_in_response is set, then we
         copy all the solutions from our internal solution pool here.
        
         Note that the one returned in the solution field will likely appear here
         too. Do not rely on the solutions order as it depends on our internal
         representation (after postsolve).
         
        repeated .operations_research.sat.CpSolverSolution additional_solutions = 27;
      • getAdditionalSolutionsCount

        int getAdditionalSolutionsCount()
         If the parameter fill_additional_solutions_in_response is set, then we
         copy all the solutions from our internal solution pool here.
        
         Note that the one returned in the solution field will likely appear here
         too. Do not rely on the solutions order as it depends on our internal
         representation (after postsolve).
         
        repeated .operations_research.sat.CpSolverSolution additional_solutions = 27;
      • getAdditionalSolutionsOrBuilderList

        java.util.List<? extends CpSolverSolutionOrBuilder> getAdditionalSolutionsOrBuilderList()
         If the parameter fill_additional_solutions_in_response is set, then we
         copy all the solutions from our internal solution pool here.
        
         Note that the one returned in the solution field will likely appear here
         too. Do not rely on the solutions order as it depends on our internal
         representation (after postsolve).
         
        repeated .operations_research.sat.CpSolverSolution additional_solutions = 27;
      • getAdditionalSolutionsOrBuilder

        CpSolverSolutionOrBuilder getAdditionalSolutionsOrBuilder​(int index)
         If the parameter fill_additional_solutions_in_response is set, then we
         copy all the solutions from our internal solution pool here.
        
         Note that the one returned in the solution field will likely appear here
         too. Do not rely on the solutions order as it depends on our internal
         representation (after postsolve).
         
        repeated .operations_research.sat.CpSolverSolution additional_solutions = 27;
      • getTightenedVariablesList

        java.util.List<IntegerVariableProto> getTightenedVariablesList()
         Advanced usage.
        
         If the option fill_tightened_domains_in_response is set, then this field
         will be a copy of the CpModelProto.variables where each domain has been
         reduced using the information the solver was able to derive. Note that this
         is only filled with the info derived during a normal search and we do not
         have any dedicated algorithm to improve it.
        
         If the problem is a feasibility problem, then these bounds will be valid
         for any feasible solution. If the problem is an optimization problem, then
         these bounds will only be valid for any OPTIMAL solutions, it can exclude
         sub-optimal feasible ones.
         
        repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
      • getTightenedVariables

        IntegerVariableProto getTightenedVariables​(int index)
         Advanced usage.
        
         If the option fill_tightened_domains_in_response is set, then this field
         will be a copy of the CpModelProto.variables where each domain has been
         reduced using the information the solver was able to derive. Note that this
         is only filled with the info derived during a normal search and we do not
         have any dedicated algorithm to improve it.
        
         If the problem is a feasibility problem, then these bounds will be valid
         for any feasible solution. If the problem is an optimization problem, then
         these bounds will only be valid for any OPTIMAL solutions, it can exclude
         sub-optimal feasible ones.
         
        repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
      • getTightenedVariablesCount

        int getTightenedVariablesCount()
         Advanced usage.
        
         If the option fill_tightened_domains_in_response is set, then this field
         will be a copy of the CpModelProto.variables where each domain has been
         reduced using the information the solver was able to derive. Note that this
         is only filled with the info derived during a normal search and we do not
         have any dedicated algorithm to improve it.
        
         If the problem is a feasibility problem, then these bounds will be valid
         for any feasible solution. If the problem is an optimization problem, then
         these bounds will only be valid for any OPTIMAL solutions, it can exclude
         sub-optimal feasible ones.
         
        repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
      • getTightenedVariablesOrBuilderList

        java.util.List<? extends IntegerVariableProtoOrBuilder> getTightenedVariablesOrBuilderList()
         Advanced usage.
        
         If the option fill_tightened_domains_in_response is set, then this field
         will be a copy of the CpModelProto.variables where each domain has been
         reduced using the information the solver was able to derive. Note that this
         is only filled with the info derived during a normal search and we do not
         have any dedicated algorithm to improve it.
        
         If the problem is a feasibility problem, then these bounds will be valid
         for any feasible solution. If the problem is an optimization problem, then
         these bounds will only be valid for any OPTIMAL solutions, it can exclude
         sub-optimal feasible ones.
         
        repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
      • getTightenedVariablesOrBuilder

        IntegerVariableProtoOrBuilder getTightenedVariablesOrBuilder​(int index)
         Advanced usage.
        
         If the option fill_tightened_domains_in_response is set, then this field
         will be a copy of the CpModelProto.variables where each domain has been
         reduced using the information the solver was able to derive. Note that this
         is only filled with the info derived during a normal search and we do not
         have any dedicated algorithm to improve it.
        
         If the problem is a feasibility problem, then these bounds will be valid
         for any feasible solution. If the problem is an optimization problem, then
         these bounds will only be valid for any OPTIMAL solutions, it can exclude
         sub-optimal feasible ones.
         
        repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
      • getSufficientAssumptionsForInfeasibilityList

        java.util.List<java.lang.Integer> getSufficientAssumptionsForInfeasibilityList()
         A subset of the model "assumptions" field. This will only be filled if the
         status is INFEASIBLE. This subset of assumption will be enough to still get
         an infeasible problem.
        
         This is related to what is called the irreducible inconsistent subsystem or
         IIS. Except one is only concerned by the provided assumptions. There is
         also no guarantee that we return an irreducible (aka minimal subset).
         However, this is based on SAT explanation and there is a good chance it is
         not too large.
        
         If you really want a minimal subset, a possible way to get one is by
         changing your model to minimize the number of assumptions at false, but
         this is likely an harder problem to solve.
        
         Important: Currently, this is minimized only in single-thread and if the
         problem is not an optimization problem, otherwise, it will always include
         all the assumptions.
        
         TODO(user): Allows for returning multiple core at once.
         
        repeated int32 sufficient_assumptions_for_infeasibility = 23;
        Returns:
        A list containing the sufficientAssumptionsForInfeasibility.
      • getSufficientAssumptionsForInfeasibilityCount

        int getSufficientAssumptionsForInfeasibilityCount()
         A subset of the model "assumptions" field. This will only be filled if the
         status is INFEASIBLE. This subset of assumption will be enough to still get
         an infeasible problem.
        
         This is related to what is called the irreducible inconsistent subsystem or
         IIS. Except one is only concerned by the provided assumptions. There is
         also no guarantee that we return an irreducible (aka minimal subset).
         However, this is based on SAT explanation and there is a good chance it is
         not too large.
        
         If you really want a minimal subset, a possible way to get one is by
         changing your model to minimize the number of assumptions at false, but
         this is likely an harder problem to solve.
        
         Important: Currently, this is minimized only in single-thread and if the
         problem is not an optimization problem, otherwise, it will always include
         all the assumptions.
        
         TODO(user): Allows for returning multiple core at once.
         
        repeated int32 sufficient_assumptions_for_infeasibility = 23;
        Returns:
        The count of sufficientAssumptionsForInfeasibility.
      • getSufficientAssumptionsForInfeasibility

        int getSufficientAssumptionsForInfeasibility​(int index)
         A subset of the model "assumptions" field. This will only be filled if the
         status is INFEASIBLE. This subset of assumption will be enough to still get
         an infeasible problem.
        
         This is related to what is called the irreducible inconsistent subsystem or
         IIS. Except one is only concerned by the provided assumptions. There is
         also no guarantee that we return an irreducible (aka minimal subset).
         However, this is based on SAT explanation and there is a good chance it is
         not too large.
        
         If you really want a minimal subset, a possible way to get one is by
         changing your model to minimize the number of assumptions at false, but
         this is likely an harder problem to solve.
        
         Important: Currently, this is minimized only in single-thread and if the
         problem is not an optimization problem, otherwise, it will always include
         all the assumptions.
        
         TODO(user): Allows for returning multiple core at once.
         
        repeated int32 sufficient_assumptions_for_infeasibility = 23;
        Parameters:
        index - The index of the element to return.
        Returns:
        The sufficientAssumptionsForInfeasibility at the given index.
      • hasIntegerObjective

        boolean hasIntegerObjective()
         Contains the integer objective optimized internally. This is only filled if
         the problem had a floating point objective, and on the final response, not
         the ones given to callbacks.
         
        .operations_research.sat.CpObjectiveProto integer_objective = 28;
        Returns:
        Whether the integerObjective field is set.
      • getIntegerObjective

        CpObjectiveProto getIntegerObjective()
         Contains the integer objective optimized internally. This is only filled if
         the problem had a floating point objective, and on the final response, not
         the ones given to callbacks.
         
        .operations_research.sat.CpObjectiveProto integer_objective = 28;
        Returns:
        The integerObjective.
      • getIntegerObjectiveOrBuilder

        CpObjectiveProtoOrBuilder getIntegerObjectiveOrBuilder()
         Contains the integer objective optimized internally. This is only filled if
         the problem had a floating point objective, and on the final response, not
         the ones given to callbacks.
         
        .operations_research.sat.CpObjectiveProto integer_objective = 28;
      • getInnerObjectiveLowerBound

        long getInnerObjectiveLowerBound()
         Advanced usage.
        
         A lower bound on the inner integer expression of the objective. This is
         either a bound on the expression in the returned integer_objective or on
         the integer expression of the original objective if the problem already has
         an integer objective.
         
        int64 inner_objective_lower_bound = 29;
        Returns:
        The innerObjectiveLowerBound.
      • getNumIntegers

        long getNumIntegers()
         Some statistics about the solve.
        
         Important: in multithread, this correspond the statistics of the first
         subsolver. Which is usually the one with the user defined parameters. Or
         the default-search if none are specified.
         
        int64 num_integers = 30;
        Returns:
        The numIntegers.
      • getNumBooleans

        long getNumBooleans()
        int64 num_booleans = 10;
        Returns:
        The numBooleans.
      • getNumConflicts

        long getNumConflicts()
        int64 num_conflicts = 11;
        Returns:
        The numConflicts.
      • getNumBranches

        long getNumBranches()
        int64 num_branches = 12;
        Returns:
        The numBranches.
      • getNumBinaryPropagations

        long getNumBinaryPropagations()
        int64 num_binary_propagations = 13;
        Returns:
        The numBinaryPropagations.
      • getNumIntegerPropagations

        long getNumIntegerPropagations()
        int64 num_integer_propagations = 14;
        Returns:
        The numIntegerPropagations.
      • getNumRestarts

        long getNumRestarts()
        int64 num_restarts = 24;
        Returns:
        The numRestarts.
      • getNumLpIterations

        long getNumLpIterations()
        int64 num_lp_iterations = 25;
        Returns:
        The numLpIterations.
      • getWallTime

        double getWallTime()
         The time counted from the beginning of the Solve() call.
         
        double wall_time = 15;
        Returns:
        The wallTime.
      • getUserTime

        double getUserTime()
        double user_time = 16;
        Returns:
        The userTime.
      • getDeterministicTime

        double getDeterministicTime()
        double deterministic_time = 17;
        Returns:
        The deterministicTime.
      • getGapIntegral

        double getGapIntegral()
         The integral of log(1 + absolute_objective_gap) over time.
         
        double gap_integral = 22;
        Returns:
        The gapIntegral.
      • getSolutionInfo

        java.lang.String getSolutionInfo()
         Additional information about how the solution was found. It also stores
         model or parameters errors that caused the model to be invalid.
         
        string solution_info = 20;
        Returns:
        The solutionInfo.
      • getSolutionInfoBytes

        com.google.protobuf.ByteString getSolutionInfoBytes()
         Additional information about how the solution was found. It also stores
         model or parameters errors that caused the model to be invalid.
         
        string solution_info = 20;
        Returns:
        The bytes for solutionInfo.
      • getSolveLog

        java.lang.String getSolveLog()
         The solve log will be filled if the parameter log_to_response is set to
         true.
         
        string solve_log = 26;
        Returns:
        The solveLog.
      • getSolveLogBytes

        com.google.protobuf.ByteString getSolveLogBytes()
         The solve log will be filled if the parameter log_to_response is set to
         true.
         
        string solve_log = 26;
        Returns:
        The bytes for solveLog.