Package com.google.ortools.sat
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 Summary
Modifier and Type Method Description booleangetAllSolutionsWereFound()This will be true iff the solver was asked to find all solutions to a satisfiability problem (or all optimal solutions to an optimization problem), and it was successful in doing so.doublegetBestObjectiveBound()Only make sense for an optimization problem.doublegetDeterministicTime()double deterministic_time = 17;longgetNumBinaryPropagations()int64 num_binary_propagations = 13;longgetNumBooleans()Some statistics about the solve.longgetNumBranches()int64 num_branches = 12;longgetNumConflicts()int64 num_conflicts = 11;longgetNumIntegerPropagations()int64 num_integer_propagations = 14;longgetNumLpIterations()int64 num_lp_iterations = 25;longgetNumRestarts()int64 num_restarts = 24;doublegetObjectiveValue()Only make sense for an optimization problem.doublegetPrimalIntegral()double primal_integral = 22;longgetSolution(int index)A feasible solution to the given problem.intgetSolutionCount()A feasible solution to the given problem.java.lang.StringgetSolutionInfo()Additional information about how the solution was found.com.google.protobuf.ByteStringgetSolutionInfoBytes()Additional information about how the solution was found.java.util.List<java.lang.Long>getSolutionList()A feasible solution to the given problem.longgetSolutionLowerBounds(int index)Advanced usage.intgetSolutionLowerBoundsCount()Advanced usage.java.util.List<java.lang.Long>getSolutionLowerBoundsList()Advanced usage.longgetSolutionUpperBounds(int index)repeated int64 solution_upper_bounds = 19;intgetSolutionUpperBoundsCount()repeated int64 solution_upper_bounds = 19;java.util.List<java.lang.Long>getSolutionUpperBoundsList()repeated int64 solution_upper_bounds = 19;java.lang.StringgetSolveLog()The solve log will be filled if the parameter log_to_response is set to true.com.google.protobuf.ByteStringgetSolveLogBytes()The solve log will be filled if the parameter log_to_response is set to true.CpSolverStatusgetStatus()The status of the solve.intgetStatusValue()The status of the solve.intgetSufficientAssumptionsForInfeasibility(int index)A subset of the model "assumptions" field.intgetSufficientAssumptionsForInfeasibilityCount()A subset of the model "assumptions" field.java.util.List<java.lang.Integer>getSufficientAssumptionsForInfeasibilityList()A subset of the model "assumptions" field.IntegerVariableProtogetTightenedVariables(int index)Advanced usage.intgetTightenedVariablesCount()Advanced usage.java.util.List<IntegerVariableProto>getTightenedVariablesList()Advanced usage.IntegerVariableProtoOrBuildergetTightenedVariablesOrBuilder(int index)Advanced usage.java.util.List<? extends IntegerVariableProtoOrBuilder>getTightenedVariablesOrBuilderList()Advanced usage.doublegetUserTime()double user_time = 16;doublegetWallTime()double wall_time = 15;Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder
isInitializedMethods inherited from interface com.google.protobuf.MessageOrBuilder
findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
-
Method Details
-
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.
-
getSolutionLowerBoundsList
java.util.List<java.lang.Long> getSolutionLowerBoundsList()Advanced usage. If the problem has some variables that are not fixed at the end of the search (because of a particular search strategy in the CpModelProto) then this will be used instead of filling the solution above. The two fields will then contains the lower and upper bounds of each variable as they were when the best "solution" was found.
repeated int64 solution_lower_bounds = 18;- Returns:
- A list containing the solutionLowerBounds.
-
getSolutionLowerBoundsCount
int getSolutionLowerBoundsCount()Advanced usage. If the problem has some variables that are not fixed at the end of the search (because of a particular search strategy in the CpModelProto) then this will be used instead of filling the solution above. The two fields will then contains the lower and upper bounds of each variable as they were when the best "solution" was found.
repeated int64 solution_lower_bounds = 18;- Returns:
- The count of solutionLowerBounds.
-
getSolutionLowerBounds
long getSolutionLowerBounds(int index)Advanced usage. If the problem has some variables that are not fixed at the end of the search (because of a particular search strategy in the CpModelProto) then this will be used instead of filling the solution above. The two fields will then contains the lower and upper bounds of each variable as they were when the best "solution" was found.
repeated int64 solution_lower_bounds = 18;- Parameters:
index- The index of the element to return.- Returns:
- The solutionLowerBounds at the given index.
-
getSolutionUpperBoundsList
java.util.List<java.lang.Long> getSolutionUpperBoundsList()repeated int64 solution_upper_bounds = 19;- Returns:
- A list containing the solutionUpperBounds.
-
getSolutionUpperBoundsCount
int getSolutionUpperBoundsCount()repeated int64 solution_upper_bounds = 19;- Returns:
- The count of solutionUpperBounds.
-
getSolutionUpperBounds
long getSolutionUpperBounds(int index)repeated int64 solution_upper_bounds = 19;- Parameters:
index- The index of the element to return.- Returns:
- The solutionUpperBounds at the given index.
-
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
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
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. 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. 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. 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.
-
getAllSolutionsWereFound
boolean getAllSolutionsWereFound()This will be true iff the solver was asked to find all solutions to a satisfiability problem (or all optimal solutions to an optimization problem), and it was successful in doing so. TODO(user): Remove as we also use the OPTIMAL vs FEASIBLE status for that.
bool all_solutions_were_found = 5;- Returns:
- The allSolutionsWereFound.
-
getNumBooleans
long getNumBooleans()Some statistics about the solve.
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()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.
-
getPrimalIntegral
double getPrimalIntegral()double primal_integral = 22;- Returns:
- The primalIntegral.
-
getSolutionInfo
java.lang.String getSolutionInfo()Additional information about how the solution was found.
string solution_info = 20;- Returns:
- The solutionInfo.
-
getSolutionInfoBytes
com.google.protobuf.ByteString getSolutionInfoBytes()Additional information about how the solution was found.
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.
-