public interface CpSolverResponseOrBuilder
extends com.google.protobuf.MessageOrBuilder
Modifier and Type | Method and Description |
---|---|
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.
|
int |
getAdditionalSolutionsCount()
If the parameter fill_additional_solutions_in_response is set, then we
copy all the solutions from our internal solution pool here.
|
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.
|
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.
|
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.
|
double |
getBestObjectiveBound()
Only make sense for an optimization problem.
|
double |
getDeterministicTime()
double deterministic_time = 17; |
double |
getGapIntegral()
The integral of log(1 + absolute_objective_gap) over time.
|
long |
getInnerObjectiveLowerBound()
Advanced usage.
|
CpObjectiveProto |
getIntegerObjective()
Contains the integer objective optimized internally.
|
CpObjectiveProtoOrBuilder |
getIntegerObjectiveOrBuilder()
Contains the integer objective optimized internally.
|
long |
getNumBinaryPropagations()
int64 num_binary_propagations = 13; |
long |
getNumBooleans()
int64 num_booleans = 10; |
long |
getNumBranches()
int64 num_branches = 12; |
long |
getNumConflicts()
int64 num_conflicts = 11; |
long |
getNumFixedBooleans()
int64 num_fixed_booleans = 31; |
long |
getNumIntegerPropagations()
int64 num_integer_propagations = 14; |
long |
getNumIntegers()
Some statistics about the solve.
|
long |
getNumLpIterations()
int64 num_lp_iterations = 25; |
long |
getNumRestarts()
int64 num_restarts = 24; |
double |
getObjectiveValue()
Only make sense for an optimization problem.
|
long |
getSolution(int index)
A feasible solution to the given problem.
|
int |
getSolutionCount()
A feasible solution to the given problem.
|
java.lang.String |
getSolutionInfo()
Additional information about how the solution was found.
|
com.google.protobuf.ByteString |
getSolutionInfoBytes()
Additional information about how the solution was found.
|
java.util.List<java.lang.Long> |
getSolutionList()
A feasible solution to the given problem.
|
java.lang.String |
getSolveLog()
The solve log will be filled if the parameter log_to_response is set to
true.
|
com.google.protobuf.ByteString |
getSolveLogBytes()
The solve log will be filled if the parameter log_to_response is set to
true.
|
CpSolverStatus |
getStatus()
The status of the solve.
|
int |
getStatusValue()
The status of the solve.
|
int |
getSufficientAssumptionsForInfeasibility(int index)
A subset of the model "assumptions" field.
|
int |
getSufficientAssumptionsForInfeasibilityCount()
A subset of the model "assumptions" field.
|
java.util.List<java.lang.Integer> |
getSufficientAssumptionsForInfeasibilityList()
A subset of the model "assumptions" field.
|
IntegerVariableProto |
getTightenedVariables(int index)
Advanced usage.
|
int |
getTightenedVariablesCount()
Advanced usage.
|
java.util.List<IntegerVariableProto> |
getTightenedVariablesList()
Advanced usage.
|
IntegerVariableProtoOrBuilder |
getTightenedVariablesOrBuilder(int index)
Advanced usage.
|
java.util.List<? extends IntegerVariableProtoOrBuilder> |
getTightenedVariablesOrBuilderList()
Advanced usage.
|
double |
getUserTime()
double user_time = 16; |
double |
getWallTime()
The time counted from the beginning of the Solve() call.
|
boolean |
hasIntegerObjective()
Contains the integer objective optimized internally.
|
findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
int getStatusValue()
The status of the solve.
.operations_research.sat.CpSolverStatus status = 1;
CpSolverStatus getStatus()
The status of the solve.
.operations_research.sat.CpSolverStatus status = 1;
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;
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;
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;
index
- The index of the element to return.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;
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;
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;
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;
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;
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;
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;
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. Warning: if you didn't set keep_all_feasible_solutions_in_presolve, then these domains might exclude valid feasible solution. Otherwise for a feasibility problem, all feasible solution should be there. Warning: For an optimization problem, these will correspond to valid bounds for the problem of finding an improving solution to the best one found so far. It might be better to solve a feasibility version if one just want to explore the feasible region.
repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
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. Warning: if you didn't set keep_all_feasible_solutions_in_presolve, then these domains might exclude valid feasible solution. Otherwise for a feasibility problem, all feasible solution should be there. Warning: For an optimization problem, these will correspond to valid bounds for the problem of finding an improving solution to the best one found so far. It might be better to solve a feasibility version if one just want to explore the feasible region.
repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
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. Warning: if you didn't set keep_all_feasible_solutions_in_presolve, then these domains might exclude valid feasible solution. Otherwise for a feasibility problem, all feasible solution should be there. Warning: For an optimization problem, these will correspond to valid bounds for the problem of finding an improving solution to the best one found so far. It might be better to solve a feasibility version if one just want to explore the feasible region.
repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
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. Warning: if you didn't set keep_all_feasible_solutions_in_presolve, then these domains might exclude valid feasible solution. Otherwise for a feasibility problem, all feasible solution should be there. Warning: For an optimization problem, these will correspond to valid bounds for the problem of finding an improving solution to the best one found so far. It might be better to solve a feasibility version if one just want to explore the feasible region.
repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
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. Warning: if you didn't set keep_all_feasible_solutions_in_presolve, then these domains might exclude valid feasible solution. Otherwise for a feasibility problem, all feasible solution should be there. Warning: For an optimization problem, these will correspond to valid bounds for the problem of finding an improving solution to the best one found so far. It might be better to solve a feasibility version if one just want to explore the feasible region.
repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
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;
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;
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;
index
- The index of the element to return.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;
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;
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;
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;
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;
long getNumBooleans()
int64 num_booleans = 10;
long getNumFixedBooleans()
int64 num_fixed_booleans = 31;
long getNumConflicts()
int64 num_conflicts = 11;
long getNumBranches()
int64 num_branches = 12;
long getNumBinaryPropagations()
int64 num_binary_propagations = 13;
long getNumIntegerPropagations()
int64 num_integer_propagations = 14;
long getNumRestarts()
int64 num_restarts = 24;
long getNumLpIterations()
int64 num_lp_iterations = 25;
double getWallTime()
The time counted from the beginning of the Solve() call.
double wall_time = 15;
double getUserTime()
double user_time = 16;
double getDeterministicTime()
double deterministic_time = 17;
double getGapIntegral()
The integral of log(1 + absolute_objective_gap) over time.
double gap_integral = 22;
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;
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;
java.lang.String getSolveLog()
The solve log will be filled if the parameter log_to_response is set to true.
string solve_log = 26;
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;
Copyright © 2025. All rights reserved.