com.google.ortools.sat.CpSolverResponseOrBuilder Maven / Gradle / Ivy
The newest version!
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: ortools/sat/cp_model.proto
package com.google.ortools.sat;
public interface CpSolverResponseOrBuilder extends
// @@protoc_insertion_point(interface_extends:operations_research.sat.CpSolverResponse)
com.google.protobuf.MessageOrBuilder {
/**
*
* The status of the solve.
*
*
* .operations_research.sat.CpSolverStatus status = 1;
* @return The enum numeric value on the wire for status.
*/
int getStatusValue();
/**
*
* The status of the solve.
*
*
* .operations_research.sat.CpSolverStatus status = 1;
* @return The status.
*/
com.google.ortools.sat.CpSolverStatus getStatus();
/**
*
* 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;
* @return A list containing the solution.
*/
java.util.List 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;
* @return The count of solution.
*/
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;
* @param index The index of the element to return.
* @return The solution at the given index.
*/
long getSolution(int index);
/**
*
* 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;
* @return The objectiveValue.
*/
double getObjectiveValue();
/**
*
* 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;
* @return The bestObjectiveBound.
*/
double getBestObjectiveBound();
/**
*
* 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;
* @return A list containing the solutionLowerBounds.
*/
java.util.List 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;
* @return The count of solutionLowerBounds.
*/
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;
* @param index The index of the element to return.
* @return The solutionLowerBounds at the given index.
*/
long getSolutionLowerBounds(int index);
/**
* repeated int64 solution_upper_bounds = 19;
* @return A list containing the solutionUpperBounds.
*/
java.util.List getSolutionUpperBoundsList();
/**
* repeated int64 solution_upper_bounds = 19;
* @return The count of solutionUpperBounds.
*/
int getSolutionUpperBoundsCount();
/**
* repeated int64 solution_upper_bounds = 19;
* @param index The index of the element to return.
* @return The solutionUpperBounds at the given index.
*/
long getSolutionUpperBounds(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;
*/
java.util.List
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;
*/
com.google.ortools.sat.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;
*/
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;
*/
java.util.List extends com.google.ortools.sat.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;
*/
com.google.ortools.sat.IntegerVariableProtoOrBuilder getTightenedVariablesOrBuilder(
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;
* @return A list containing the sufficientAssumptionsForInfeasibility.
*/
java.util.List 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;
* @return The count of sufficientAssumptionsForInfeasibility.
*/
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;
* @param index The index of the element to return.
* @return The sufficientAssumptionsForInfeasibility at the given index.
*/
int getSufficientAssumptionsForInfeasibility(int index);
/**
*
* 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;
* @return The allSolutionsWereFound.
*/
boolean getAllSolutionsWereFound();
/**
*
* Some statistics about the solve.
*
*
* int64 num_booleans = 10;
* @return The numBooleans.
*/
long getNumBooleans();
/**
* int64 num_conflicts = 11;
* @return The numConflicts.
*/
long getNumConflicts();
/**
* int64 num_branches = 12;
* @return The numBranches.
*/
long getNumBranches();
/**
* int64 num_binary_propagations = 13;
* @return The numBinaryPropagations.
*/
long getNumBinaryPropagations();
/**
* int64 num_integer_propagations = 14;
* @return The numIntegerPropagations.
*/
long getNumIntegerPropagations();
/**
* double wall_time = 15;
* @return The wallTime.
*/
double getWallTime();
/**
* double user_time = 16;
* @return The userTime.
*/
double getUserTime();
/**
* double deterministic_time = 17;
* @return The deterministicTime.
*/
double getDeterministicTime();
/**
* double primal_integral = 22;
* @return The primalIntegral.
*/
double getPrimalIntegral();
/**
*
* Additional information about how the solution was found.
*
*
* string solution_info = 20;
* @return The solutionInfo.
*/
java.lang.String getSolutionInfo();
/**
*
* Additional information about how the solution was found.
*
*
* string solution_info = 20;
* @return The bytes for solutionInfo.
*/
com.google.protobuf.ByteString
getSolutionInfoBytes();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy