All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 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