Class BopParameters
java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
com.google.ortools.bop.BopParameters
- All Implemented Interfaces:
BopParametersOrBuilder,com.google.protobuf.Message,com.google.protobuf.MessageLite,com.google.protobuf.MessageLiteOrBuilder,com.google.protobuf.MessageOrBuilder,Serializable
@Generated
public final class BopParameters
extends com.google.protobuf.GeneratedMessage
implements BopParametersOrBuilder
Contains the definitions for all the bop algorithm parameters and their default values. NEXT TAG: 42Protobuf type
operations_research.bop.BopParameters- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classContains the definitions for all the bop algorithm parameters and their default values.static enumDefines how the different solvers are synchronized during the search.Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessage
com.google.protobuf.GeneratedMessage.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>, BuilderT extends com.google.protobuf.GeneratedMessage.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessage.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessage.FieldAccessorTable, com.google.protobuf.GeneratedMessage.GeneratedExtension<ContainingT extends com.google.protobuf.Message, T>, com.google.protobuf.GeneratedMessage.UnusedPrivateParameter Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessage
com.google.protobuf.AbstractMessage.BuilderParentNested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessageLite.InternalOneOfEnum -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intFields inherited from class com.google.protobuf.GeneratedMessage
alwaysUseFieldBuilders, unknownFieldsFields inherited from class com.google.protobuf.AbstractMessage
memoizedSizeFields inherited from class com.google.protobuf.AbstractMessageLite
memoizedHashCode -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleanCompute estimated impact at each iteration when true; only once when false.doubleHACK.intOnly try to decompose the problem when the number of variables is greater than the threshold.static BopParametersoptional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];com.google.protobuf.ByteStringoptional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];static final com.google.protobuf.Descriptors.DescriptorbooleanIf true, find and exploit symmetries in proving satisfiability in the first problem.intThe first solutions based on guided SAT will work in chunk of that many conflicts at the time.booleanWhether the solver should log the search progress to LOG(INFO).doubleThe max deterministic time given to the LP solver each time it is called.doubleMaximum time allowed in deterministic time to solve a problem.intThe maximum number of time the LP solver will run to feasibility for pure feasibility problems (with a constant-valued objective function).longMaximum number of backtracks times the number of variables in Local Search, ie. max num backtracks == max_number_of_backtracks_in_ls / num variables.intThe number of conflicts the SAT solver has to solve a random LNS subproblem for the quick check of infeasibility.intThe number of conflicts the SAT solver has to solve a random LNS subproblem.intThe number of conflicts the SAT solver has to generate a random solution.intMaximum number of consecutive optimizer calls without improving the current solution.longThe maximum number of assignments the Local Search iterates on during one try.intAbort the LS search tree as soon as strictly more than this number of constraints are broken.intMaximum number of cascading decisions the solver might use to repair the current solution in the LS.doubleMaximum time allowed in seconds to solve a problem.intThe number of solvers used to run Bop.intThe number of BopSolver created (thread pool workers) used by the integral solver to solve a decomposed problem.intNumber of tries in the random lns.intNumber of variables to relax in the exhaustive Large Neighborhood Search.com.google.protobuf.Parser<BopParameters> booleanAvoid exploring both branches (b, a, ...) and (a, b, ...).intThe seed used to initialize the random generator.doubleLimit used to stop the optimization as soon as the relative gap is smaller than the given value.intgetSolverOptimizerSets(int index) List of set of optimizers to be run by the solvers.intList of set of optimizers to be run by the solvers.List of set of optimizers to be run by the solvers.getSolverOptimizerSetsOrBuilder(int index) List of set of optimizers to be run by the solvers.List<? extends BopSolverOptimizerSetOrBuilder> List of set of optimizers to be run by the solvers.booleanSort constraints by increasing total number of terms instead of number of contributing terms.optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];booleanWhether we use the learned binary clauses in the Linear Relaxation.booleanUse Large Neighborhood Search based on the LP relaxation.booleanUse strong branching in the linear relaxation optimizer.booleanWhether we keep a list of variable that can potentially repair in one flip all the current infeasible constraints (such variable must at least appear in all the infeasible constraints for this to happen).booleanUse the random Large Neighborhood Search instead of the exhaustive one.booleanWhether we use sat propagation to choose the lns neighbourhood.booleanIf true, find and exploit the eventual symmetries of the problem.booleanWhether we use an hash set during the LS to avoid exploring more than once the "same" state.booleanCompute estimated impact at each iteration when true; only once when false.booleanHACK.booleanOnly try to decompose the problem when the number of variables is greater than the threshold.booleanoptional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];booleanIf true, find and exploit symmetries in proving satisfiability in the first problem.booleanThe first solutions based on guided SAT will work in chunk of that many conflicts at the time.inthashCode()booleanWhether the solver should log the search progress to LOG(INFO).booleanThe max deterministic time given to the LP solver each time it is called.booleanMaximum time allowed in deterministic time to solve a problem.booleanThe maximum number of time the LP solver will run to feasibility for pure feasibility problems (with a constant-valued objective function).booleanMaximum number of backtracks times the number of variables in Local Search, ie. max num backtracks == max_number_of_backtracks_in_ls / num variables.booleanThe number of conflicts the SAT solver has to solve a random LNS subproblem for the quick check of infeasibility.booleanThe number of conflicts the SAT solver has to solve a random LNS subproblem.booleanThe number of conflicts the SAT solver has to generate a random solution.booleanMaximum number of consecutive optimizer calls without improving the current solution.booleanThe maximum number of assignments the Local Search iterates on during one try.booleanAbort the LS search tree as soon as strictly more than this number of constraints are broken.booleanMaximum number of cascading decisions the solver might use to repair the current solution in the LS.booleanMaximum time allowed in seconds to solve a problem.booleanThe number of solvers used to run Bop.booleanThe number of BopSolver created (thread pool workers) used by the integral solver to solve a decomposed problem.booleanNumber of tries in the random lns.booleanNumber of variables to relax in the exhaustive Large Neighborhood Search.booleanAvoid exploring both branches (b, a, ...) and (a, b, ...).booleanThe seed used to initialize the random generator.booleanLimit used to stop the optimization as soon as the relative gap is smaller than the given value.booleanSort constraints by increasing total number of terms instead of number of contributing terms.booleanoptional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];booleanWhether we use the learned binary clauses in the Linear Relaxation.booleanUse Large Neighborhood Search based on the LP relaxation.booleanUse strong branching in the linear relaxation optimizer.booleanWhether we keep a list of variable that can potentially repair in one flip all the current infeasible constraints (such variable must at least appear in all the infeasible constraints for this to happen).booleanUse the random Large Neighborhood Search instead of the exhaustive one.booleanWhether we use sat propagation to choose the lns neighbourhood.booleanIf true, find and exploit the eventual symmetries of the problem.booleanWhether we use an hash set during the LS to avoid exploring more than once the "same" state.protected com.google.protobuf.GeneratedMessage.FieldAccessorTablefinal booleanstatic BopParameters.Builderstatic BopParameters.BuildernewBuilder(BopParameters prototype) protected BopParameters.BuildernewBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent) static BopParametersparseDelimitedFrom(InputStream input) static BopParametersparseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParametersparseFrom(byte[] data) static BopParametersparseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParametersparseFrom(com.google.protobuf.ByteString data) static BopParametersparseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParametersparseFrom(com.google.protobuf.CodedInputStream input) static BopParametersparseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParametersparseFrom(InputStream input) static BopParametersparseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParametersparseFrom(ByteBuffer data) static BopParametersparseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static com.google.protobuf.Parser<BopParameters> parser()voidwriteTo(com.google.protobuf.CodedOutputStream output) Methods inherited from class com.google.protobuf.GeneratedMessage
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, newFileScopedGeneratedExtension, newInstance, newMessageScopedGeneratedExtension, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTagMethods inherited from class com.google.protobuf.AbstractMessage
findInitializationErrors, getInitializationErrorString, hashFields, toStringMethods inherited from class com.google.protobuf.AbstractMessageLite
addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeToMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.google.protobuf.MessageLite
toByteArray, toByteString, writeDelimitedTo, writeToMethods inherited from interface com.google.protobuf.MessageOrBuilder
findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
-
Field Details
-
MAX_TIME_IN_SECONDS_FIELD_NUMBER
public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER- See Also:
-
MAX_DETERMINISTIC_TIME_FIELD_NUMBER
public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER- See Also:
-
LP_MAX_DETERMINISTIC_TIME_FIELD_NUMBER
public static final int LP_MAX_DETERMINISTIC_TIME_FIELD_NUMBER- See Also:
-
MAX_NUMBER_OF_CONSECUTIVE_FAILING_OPTIMIZER_CALLS_FIELD_NUMBER
public static final int MAX_NUMBER_OF_CONSECUTIVE_FAILING_OPTIMIZER_CALLS_FIELD_NUMBER- See Also:
-
RELATIVE_GAP_LIMIT_FIELD_NUMBER
public static final int RELATIVE_GAP_LIMIT_FIELD_NUMBER- See Also:
-
MAX_NUM_DECISIONS_IN_LS_FIELD_NUMBER
public static final int MAX_NUM_DECISIONS_IN_LS_FIELD_NUMBER- See Also:
-
MAX_NUM_BROKEN_CONSTRAINTS_IN_LS_FIELD_NUMBER
public static final int MAX_NUM_BROKEN_CONSTRAINTS_IN_LS_FIELD_NUMBER- See Also:
-
LOG_SEARCH_PROGRESS_FIELD_NUMBER
public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER- See Also:
-
COMPUTE_ESTIMATED_IMPACT_FIELD_NUMBER
public static final int COMPUTE_ESTIMATED_IMPACT_FIELD_NUMBER- See Also:
-
PRUNE_SEARCH_TREE_FIELD_NUMBER
public static final int PRUNE_SEARCH_TREE_FIELD_NUMBER- See Also:
-
SORT_CONSTRAINTS_BY_NUM_TERMS_FIELD_NUMBER
public static final int SORT_CONSTRAINTS_BY_NUM_TERMS_FIELD_NUMBER- See Also:
-
USE_RANDOM_LNS_FIELD_NUMBER
public static final int USE_RANDOM_LNS_FIELD_NUMBER- See Also:
-
RANDOM_SEED_FIELD_NUMBER
public static final int RANDOM_SEED_FIELD_NUMBER- See Also:
-
NUM_RELAXED_VARS_FIELD_NUMBER
public static final int NUM_RELAXED_VARS_FIELD_NUMBER- See Also:
-
MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_LNS_FIELD_NUMBER
public static final int MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_LNS_FIELD_NUMBER- See Also:
-
NUM_RANDOM_LNS_TRIES_FIELD_NUMBER
public static final int NUM_RANDOM_LNS_TRIES_FIELD_NUMBER- See Also:
-
MAX_NUMBER_OF_BACKTRACKS_IN_LS_FIELD_NUMBER
public static final int MAX_NUMBER_OF_BACKTRACKS_IN_LS_FIELD_NUMBER- See Also:
-
USE_LP_LNS_FIELD_NUMBER
public static final int USE_LP_LNS_FIELD_NUMBER- See Also:
-
USE_SAT_TO_CHOOSE_LNS_NEIGHBOURHOOD_FIELD_NUMBER
public static final int USE_SAT_TO_CHOOSE_LNS_NEIGHBOURHOOD_FIELD_NUMBER- See Also:
-
MAX_NUMBER_OF_CONFLICTS_FOR_QUICK_CHECK_FIELD_NUMBER
public static final int MAX_NUMBER_OF_CONFLICTS_FOR_QUICK_CHECK_FIELD_NUMBER- See Also:
-
USE_SYMMETRY_FIELD_NUMBER
public static final int USE_SYMMETRY_FIELD_NUMBER- See Also:
-
EXPLOIT_SYMMETRY_IN_SAT_FIRST_SOLUTION_FIELD_NUMBER
public static final int EXPLOIT_SYMMETRY_IN_SAT_FIRST_SOLUTION_FIELD_NUMBER- See Also:
-
MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_SOLUTION_GENERATION_FIELD_NUMBER
public static final int MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_SOLUTION_GENERATION_FIELD_NUMBER- See Also:
-
MAX_NUMBER_OF_EXPLORED_ASSIGNMENTS_PER_TRY_IN_LS_FIELD_NUMBER
public static final int MAX_NUMBER_OF_EXPLORED_ASSIGNMENTS_PER_TRY_IN_LS_FIELD_NUMBER- See Also:
-
USE_TRANSPOSITION_TABLE_IN_LS_FIELD_NUMBER
public static final int USE_TRANSPOSITION_TABLE_IN_LS_FIELD_NUMBER- See Also:
-
USE_POTENTIAL_ONE_FLIP_REPAIRS_IN_LS_FIELD_NUMBER
public static final int USE_POTENTIAL_ONE_FLIP_REPAIRS_IN_LS_FIELD_NUMBER- See Also:
-
USE_LEARNED_BINARY_CLAUSES_IN_LP_FIELD_NUMBER
public static final int USE_LEARNED_BINARY_CLAUSES_IN_LP_FIELD_NUMBER- See Also:
-
NUMBER_OF_SOLVERS_FIELD_NUMBER
public static final int NUMBER_OF_SOLVERS_FIELD_NUMBER- See Also:
-
SYNCHRONIZATION_TYPE_FIELD_NUMBER
public static final int SYNCHRONIZATION_TYPE_FIELD_NUMBER- See Also:
-
SOLVER_OPTIMIZER_SETS_FIELD_NUMBER
public static final int SOLVER_OPTIMIZER_SETS_FIELD_NUMBER- See Also:
-
DEFAULT_SOLVER_OPTIMIZER_SETS_FIELD_NUMBER
public static final int DEFAULT_SOLVER_OPTIMIZER_SETS_FIELD_NUMBER- See Also:
-
USE_LP_STRONG_BRANCHING_FIELD_NUMBER
public static final int USE_LP_STRONG_BRANCHING_FIELD_NUMBER- See Also:
-
DECOMPOSER_NUM_VARIABLES_THRESHOLD_FIELD_NUMBER
public static final int DECOMPOSER_NUM_VARIABLES_THRESHOLD_FIELD_NUMBER- See Also:
-
NUM_BOP_SOLVERS_USED_BY_DECOMPOSITION_FIELD_NUMBER
public static final int NUM_BOP_SOLVERS_USED_BY_DECOMPOSITION_FIELD_NUMBER- See Also:
-
DECOMPOSED_PROBLEM_MIN_TIME_IN_SECONDS_FIELD_NUMBER
public static final int DECOMPOSED_PROBLEM_MIN_TIME_IN_SECONDS_FIELD_NUMBER- See Also:
-
GUIDED_SAT_CONFLICTS_CHUNK_FIELD_NUMBER
public static final int GUIDED_SAT_CONFLICTS_CHUNK_FIELD_NUMBER- See Also:
-
MAX_LP_SOLVE_FOR_FEASIBILITY_PROBLEMS_FIELD_NUMBER
public static final int MAX_LP_SOLVE_FOR_FEASIBILITY_PROBLEMS_FIELD_NUMBER- See Also:
-
-
Method Details
-
getDescriptor
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() -
internalGetFieldAccessorTable
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()- Specified by:
internalGetFieldAccessorTablein classcom.google.protobuf.GeneratedMessage
-
hasMaxTimeInSeconds
public boolean hasMaxTimeInSeconds()Maximum time allowed in seconds to solve a problem. The counter will starts as soon as Solve() is called.
optional double max_time_in_seconds = 1 [default = inf];- Specified by:
hasMaxTimeInSecondsin interfaceBopParametersOrBuilder- Returns:
- Whether the maxTimeInSeconds field is set.
-
getMaxTimeInSeconds
public double getMaxTimeInSeconds()Maximum time allowed in seconds to solve a problem. The counter will starts as soon as Solve() is called.
optional double max_time_in_seconds = 1 [default = inf];- Specified by:
getMaxTimeInSecondsin interfaceBopParametersOrBuilder- Returns:
- The maxTimeInSeconds.
-
hasMaxDeterministicTime
public boolean hasMaxDeterministicTime()Maximum time allowed in deterministic time to solve a problem. The deterministic time should be correlated with the real time used by the solver, the time unit being roughly the order of magnitude of a second. The counter will starts as soon as SetParameters() or SolveWithTimeLimit() is called.
optional double max_deterministic_time = 27 [default = inf];- Specified by:
hasMaxDeterministicTimein interfaceBopParametersOrBuilder- Returns:
- Whether the maxDeterministicTime field is set.
-
getMaxDeterministicTime
public double getMaxDeterministicTime()Maximum time allowed in deterministic time to solve a problem. The deterministic time should be correlated with the real time used by the solver, the time unit being roughly the order of magnitude of a second. The counter will starts as soon as SetParameters() or SolveWithTimeLimit() is called.
optional double max_deterministic_time = 27 [default = inf];- Specified by:
getMaxDeterministicTimein interfaceBopParametersOrBuilder- Returns:
- The maxDeterministicTime.
-
hasLpMaxDeterministicTime
public boolean hasLpMaxDeterministicTime()The max deterministic time given to the LP solver each time it is called. If this is not enough to solve the LP at hand, it will simply be called again later (and the solve will resume from where it stopped).
optional double lp_max_deterministic_time = 37 [default = 1];- Specified by:
hasLpMaxDeterministicTimein interfaceBopParametersOrBuilder- Returns:
- Whether the lpMaxDeterministicTime field is set.
-
getLpMaxDeterministicTime
public double getLpMaxDeterministicTime()The max deterministic time given to the LP solver each time it is called. If this is not enough to solve the LP at hand, it will simply be called again later (and the solve will resume from where it stopped).
optional double lp_max_deterministic_time = 37 [default = 1];- Specified by:
getLpMaxDeterministicTimein interfaceBopParametersOrBuilder- Returns:
- The lpMaxDeterministicTime.
-
hasMaxNumberOfConsecutiveFailingOptimizerCalls
public boolean hasMaxNumberOfConsecutiveFailingOptimizerCalls()Maximum number of consecutive optimizer calls without improving the current solution. If this number is reached, the search will be aborted. Note that this parameter only applies when an initial solution has been found or is provided. Also note that there is no limit to the number of calls, when the parameter is not set.
optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;- Specified by:
hasMaxNumberOfConsecutiveFailingOptimizerCallsin interfaceBopParametersOrBuilder- Returns:
- Whether the maxNumberOfConsecutiveFailingOptimizerCalls field is set.
-
getMaxNumberOfConsecutiveFailingOptimizerCalls
public int getMaxNumberOfConsecutiveFailingOptimizerCalls()Maximum number of consecutive optimizer calls without improving the current solution. If this number is reached, the search will be aborted. Note that this parameter only applies when an initial solution has been found or is provided. Also note that there is no limit to the number of calls, when the parameter is not set.
optional int32 max_number_of_consecutive_failing_optimizer_calls = 35;- Specified by:
getMaxNumberOfConsecutiveFailingOptimizerCallsin interfaceBopParametersOrBuilder- Returns:
- The maxNumberOfConsecutiveFailingOptimizerCalls.
-
hasRelativeGapLimit
public boolean hasRelativeGapLimit()Limit used to stop the optimization as soon as the relative gap is smaller than the given value. The relative gap is defined as: abs(solution_cost - best_bound) / max(abs(solution_cost), abs(best_bound)).
optional double relative_gap_limit = 28 [default = 0.0001];- Specified by:
hasRelativeGapLimitin interfaceBopParametersOrBuilder- Returns:
- Whether the relativeGapLimit field is set.
-
getRelativeGapLimit
public double getRelativeGapLimit()Limit used to stop the optimization as soon as the relative gap is smaller than the given value. The relative gap is defined as: abs(solution_cost - best_bound) / max(abs(solution_cost), abs(best_bound)).
optional double relative_gap_limit = 28 [default = 0.0001];- Specified by:
getRelativeGapLimitin interfaceBopParametersOrBuilder- Returns:
- The relativeGapLimit.
-
hasMaxNumDecisionsInLs
public boolean hasMaxNumDecisionsInLs()Maximum number of cascading decisions the solver might use to repair the current solution in the LS.
optional int32 max_num_decisions_in_ls = 2 [default = 4];- Specified by:
hasMaxNumDecisionsInLsin interfaceBopParametersOrBuilder- Returns:
- Whether the maxNumDecisionsInLs field is set.
-
getMaxNumDecisionsInLs
public int getMaxNumDecisionsInLs()Maximum number of cascading decisions the solver might use to repair the current solution in the LS.
optional int32 max_num_decisions_in_ls = 2 [default = 4];- Specified by:
getMaxNumDecisionsInLsin interfaceBopParametersOrBuilder- Returns:
- The maxNumDecisionsInLs.
-
hasMaxNumBrokenConstraintsInLs
public boolean hasMaxNumBrokenConstraintsInLs()Abort the LS search tree as soon as strictly more than this number of constraints are broken. The default is a large value which basically disable this heuristic.
optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];- Specified by:
hasMaxNumBrokenConstraintsInLsin interfaceBopParametersOrBuilder- Returns:
- Whether the maxNumBrokenConstraintsInLs field is set.
-
getMaxNumBrokenConstraintsInLs
public int getMaxNumBrokenConstraintsInLs()Abort the LS search tree as soon as strictly more than this number of constraints are broken. The default is a large value which basically disable this heuristic.
optional int32 max_num_broken_constraints_in_ls = 38 [default = 2147483647];- Specified by:
getMaxNumBrokenConstraintsInLsin interfaceBopParametersOrBuilder- Returns:
- The maxNumBrokenConstraintsInLs.
-
hasLogSearchProgress
public boolean hasLogSearchProgress()Whether the solver should log the search progress to LOG(INFO).
optional bool log_search_progress = 14 [default = false];- Specified by:
hasLogSearchProgressin interfaceBopParametersOrBuilder- Returns:
- Whether the logSearchProgress field is set.
-
getLogSearchProgress
public boolean getLogSearchProgress()Whether the solver should log the search progress to LOG(INFO).
optional bool log_search_progress = 14 [default = false];- Specified by:
getLogSearchProgressin interfaceBopParametersOrBuilder- Returns:
- The logSearchProgress.
-
hasComputeEstimatedImpact
public boolean hasComputeEstimatedImpact()Compute estimated impact at each iteration when true; only once when false.
optional bool compute_estimated_impact = 3 [default = true];- Specified by:
hasComputeEstimatedImpactin interfaceBopParametersOrBuilder- Returns:
- Whether the computeEstimatedImpact field is set.
-
getComputeEstimatedImpact
public boolean getComputeEstimatedImpact()Compute estimated impact at each iteration when true; only once when false.
optional bool compute_estimated_impact = 3 [default = true];- Specified by:
getComputeEstimatedImpactin interfaceBopParametersOrBuilder- Returns:
- The computeEstimatedImpact.
-
hasPruneSearchTree
public boolean hasPruneSearchTree()Avoid exploring both branches (b, a, ...) and (a, b, ...).
optional bool prune_search_tree = 4 [default = false];- Specified by:
hasPruneSearchTreein interfaceBopParametersOrBuilder- Returns:
- Whether the pruneSearchTree field is set.
-
getPruneSearchTree
public boolean getPruneSearchTree()Avoid exploring both branches (b, a, ...) and (a, b, ...).
optional bool prune_search_tree = 4 [default = false];- Specified by:
getPruneSearchTreein interfaceBopParametersOrBuilder- Returns:
- The pruneSearchTree.
-
hasSortConstraintsByNumTerms
public boolean hasSortConstraintsByNumTerms()Sort constraints by increasing total number of terms instead of number of contributing terms.
optional bool sort_constraints_by_num_terms = 5 [default = false];- Specified by:
hasSortConstraintsByNumTermsin interfaceBopParametersOrBuilder- Returns:
- Whether the sortConstraintsByNumTerms field is set.
-
getSortConstraintsByNumTerms
public boolean getSortConstraintsByNumTerms()Sort constraints by increasing total number of terms instead of number of contributing terms.
optional bool sort_constraints_by_num_terms = 5 [default = false];- Specified by:
getSortConstraintsByNumTermsin interfaceBopParametersOrBuilder- Returns:
- The sortConstraintsByNumTerms.
-
hasUseRandomLns
public boolean hasUseRandomLns()Use the random Large Neighborhood Search instead of the exhaustive one.
optional bool use_random_lns = 6 [default = true];- Specified by:
hasUseRandomLnsin interfaceBopParametersOrBuilder- Returns:
- Whether the useRandomLns field is set.
-
getUseRandomLns
public boolean getUseRandomLns()Use the random Large Neighborhood Search instead of the exhaustive one.
optional bool use_random_lns = 6 [default = true];- Specified by:
getUseRandomLnsin interfaceBopParametersOrBuilder- Returns:
- The useRandomLns.
-
hasRandomSeed
public boolean hasRandomSeed()The seed used to initialize the random generator. TODO(user): Some of our client test fail depending on this value! we need to fix them and ideally randomize our behavior from on test to the next so that this doesn't happen in the future.
optional int32 random_seed = 7 [default = 8];- Specified by:
hasRandomSeedin interfaceBopParametersOrBuilder- Returns:
- Whether the randomSeed field is set.
-
getRandomSeed
public int getRandomSeed()The seed used to initialize the random generator. TODO(user): Some of our client test fail depending on this value! we need to fix them and ideally randomize our behavior from on test to the next so that this doesn't happen in the future.
optional int32 random_seed = 7 [default = 8];- Specified by:
getRandomSeedin interfaceBopParametersOrBuilder- Returns:
- The randomSeed.
-
hasNumRelaxedVars
public boolean hasNumRelaxedVars()Number of variables to relax in the exhaustive Large Neighborhood Search.
optional int32 num_relaxed_vars = 8 [default = 10];- Specified by:
hasNumRelaxedVarsin interfaceBopParametersOrBuilder- Returns:
- Whether the numRelaxedVars field is set.
-
getNumRelaxedVars
public int getNumRelaxedVars()Number of variables to relax in the exhaustive Large Neighborhood Search.
optional int32 num_relaxed_vars = 8 [default = 10];- Specified by:
getNumRelaxedVarsin interfaceBopParametersOrBuilder- Returns:
- The numRelaxedVars.
-
hasMaxNumberOfConflictsInRandomLns
public boolean hasMaxNumberOfConflictsInRandomLns()The number of conflicts the SAT solver has to solve a random LNS subproblem.
optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];- Specified by:
hasMaxNumberOfConflictsInRandomLnsin interfaceBopParametersOrBuilder- Returns:
- Whether the maxNumberOfConflictsInRandomLns field is set.
-
getMaxNumberOfConflictsInRandomLns
public int getMaxNumberOfConflictsInRandomLns()The number of conflicts the SAT solver has to solve a random LNS subproblem.
optional int32 max_number_of_conflicts_in_random_lns = 9 [default = 2500];- Specified by:
getMaxNumberOfConflictsInRandomLnsin interfaceBopParametersOrBuilder- Returns:
- The maxNumberOfConflictsInRandomLns.
-
hasNumRandomLnsTries
public boolean hasNumRandomLnsTries()Number of tries in the random lns.
optional int32 num_random_lns_tries = 10 [default = 1];- Specified by:
hasNumRandomLnsTriesin interfaceBopParametersOrBuilder- Returns:
- Whether the numRandomLnsTries field is set.
-
getNumRandomLnsTries
public int getNumRandomLnsTries()Number of tries in the random lns.
optional int32 num_random_lns_tries = 10 [default = 1];- Specified by:
getNumRandomLnsTriesin interfaceBopParametersOrBuilder- Returns:
- The numRandomLnsTries.
-
hasMaxNumberOfBacktracksInLs
public boolean hasMaxNumberOfBacktracksInLs()Maximum number of backtracks times the number of variables in Local Search, ie. max num backtracks == max_number_of_backtracks_in_ls / num variables.
optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];- Specified by:
hasMaxNumberOfBacktracksInLsin interfaceBopParametersOrBuilder- Returns:
- Whether the maxNumberOfBacktracksInLs field is set.
-
getMaxNumberOfBacktracksInLs
public long getMaxNumberOfBacktracksInLs()Maximum number of backtracks times the number of variables in Local Search, ie. max num backtracks == max_number_of_backtracks_in_ls / num variables.
optional int64 max_number_of_backtracks_in_ls = 11 [default = 100000000];- Specified by:
getMaxNumberOfBacktracksInLsin interfaceBopParametersOrBuilder- Returns:
- The maxNumberOfBacktracksInLs.
-
hasUseLpLns
public boolean hasUseLpLns()Use Large Neighborhood Search based on the LP relaxation.
optional bool use_lp_lns = 12 [default = true];- Specified by:
hasUseLpLnsin interfaceBopParametersOrBuilder- Returns:
- Whether the useLpLns field is set.
-
getUseLpLns
public boolean getUseLpLns()Use Large Neighborhood Search based on the LP relaxation.
optional bool use_lp_lns = 12 [default = true];- Specified by:
getUseLpLnsin interfaceBopParametersOrBuilder- Returns:
- The useLpLns.
-
hasUseSatToChooseLnsNeighbourhood
public boolean hasUseSatToChooseLnsNeighbourhood()Whether we use sat propagation to choose the lns neighbourhood.
optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];- Specified by:
hasUseSatToChooseLnsNeighbourhoodin interfaceBopParametersOrBuilder- Returns:
- Whether the useSatToChooseLnsNeighbourhood field is set.
-
getUseSatToChooseLnsNeighbourhood
public boolean getUseSatToChooseLnsNeighbourhood()Whether we use sat propagation to choose the lns neighbourhood.
optional bool use_sat_to_choose_lns_neighbourhood = 15 [default = true];- Specified by:
getUseSatToChooseLnsNeighbourhoodin interfaceBopParametersOrBuilder- Returns:
- The useSatToChooseLnsNeighbourhood.
-
hasMaxNumberOfConflictsForQuickCheck
public boolean hasMaxNumberOfConflictsForQuickCheck()The number of conflicts the SAT solver has to solve a random LNS subproblem for the quick check of infeasibility.
optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];- Specified by:
hasMaxNumberOfConflictsForQuickCheckin interfaceBopParametersOrBuilder- Returns:
- Whether the maxNumberOfConflictsForQuickCheck field is set.
-
getMaxNumberOfConflictsForQuickCheck
public int getMaxNumberOfConflictsForQuickCheck()The number of conflicts the SAT solver has to solve a random LNS subproblem for the quick check of infeasibility.
optional int32 max_number_of_conflicts_for_quick_check = 16 [default = 10];- Specified by:
getMaxNumberOfConflictsForQuickCheckin interfaceBopParametersOrBuilder- Returns:
- The maxNumberOfConflictsForQuickCheck.
-
hasUseSymmetry
public boolean hasUseSymmetry()If true, find and exploit the eventual symmetries of the problem. TODO(user): turn this on by default once the symmetry finder becomes fast enough to be negligeable for most problem. Or at least support a time limit.
optional bool use_symmetry = 17 [default = false];- Specified by:
hasUseSymmetryin interfaceBopParametersOrBuilder- Returns:
- Whether the useSymmetry field is set.
-
getUseSymmetry
public boolean getUseSymmetry()If true, find and exploit the eventual symmetries of the problem. TODO(user): turn this on by default once the symmetry finder becomes fast enough to be negligeable for most problem. Or at least support a time limit.
optional bool use_symmetry = 17 [default = false];- Specified by:
getUseSymmetryin interfaceBopParametersOrBuilder- Returns:
- The useSymmetry.
-
hasExploitSymmetryInSatFirstSolution
public boolean hasExploitSymmetryInSatFirstSolution()If true, find and exploit symmetries in proving satisfiability in the first problem. This feature is experimental. On some problems, computing symmetries may run forever. You may also run into unforseen problems as this feature was not extensively tested.
optional bool exploit_symmetry_in_sat_first_solution = 40 [default = false];- Specified by:
hasExploitSymmetryInSatFirstSolutionin interfaceBopParametersOrBuilder- Returns:
- Whether the exploitSymmetryInSatFirstSolution field is set.
-
getExploitSymmetryInSatFirstSolution
public boolean getExploitSymmetryInSatFirstSolution()If true, find and exploit symmetries in proving satisfiability in the first problem. This feature is experimental. On some problems, computing symmetries may run forever. You may also run into unforseen problems as this feature was not extensively tested.
optional bool exploit_symmetry_in_sat_first_solution = 40 [default = false];- Specified by:
getExploitSymmetryInSatFirstSolutionin interfaceBopParametersOrBuilder- Returns:
- The exploitSymmetryInSatFirstSolution.
-
hasMaxNumberOfConflictsInRandomSolutionGeneration
public boolean hasMaxNumberOfConflictsInRandomSolutionGeneration()The number of conflicts the SAT solver has to generate a random solution.
optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];- Specified by:
hasMaxNumberOfConflictsInRandomSolutionGenerationin interfaceBopParametersOrBuilder- Returns:
- Whether the maxNumberOfConflictsInRandomSolutionGeneration field is set.
-
getMaxNumberOfConflictsInRandomSolutionGeneration
public int getMaxNumberOfConflictsInRandomSolutionGeneration()The number of conflicts the SAT solver has to generate a random solution.
optional int32 max_number_of_conflicts_in_random_solution_generation = 20 [default = 500];- Specified by:
getMaxNumberOfConflictsInRandomSolutionGenerationin interfaceBopParametersOrBuilder- Returns:
- The maxNumberOfConflictsInRandomSolutionGeneration.
-
hasMaxNumberOfExploredAssignmentsPerTryInLs
public boolean hasMaxNumberOfExploredAssignmentsPerTryInLs()The maximum number of assignments the Local Search iterates on during one try. Note that if the Local Search is called again on the same solution it will not restart from scratch but will iterate on the next max_number_of_explored_assignments_per_try_in_ls assignments.
optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];- Specified by:
hasMaxNumberOfExploredAssignmentsPerTryInLsin interfaceBopParametersOrBuilder- Returns:
- Whether the maxNumberOfExploredAssignmentsPerTryInLs field is set.
-
getMaxNumberOfExploredAssignmentsPerTryInLs
public long getMaxNumberOfExploredAssignmentsPerTryInLs()The maximum number of assignments the Local Search iterates on during one try. Note that if the Local Search is called again on the same solution it will not restart from scratch but will iterate on the next max_number_of_explored_assignments_per_try_in_ls assignments.
optional int64 max_number_of_explored_assignments_per_try_in_ls = 21 [default = 10000];- Specified by:
getMaxNumberOfExploredAssignmentsPerTryInLsin interfaceBopParametersOrBuilder- Returns:
- The maxNumberOfExploredAssignmentsPerTryInLs.
-
hasUseTranspositionTableInLs
public boolean hasUseTranspositionTableInLs()Whether we use an hash set during the LS to avoid exploring more than once the "same" state. Note that because the underlying SAT solver may learn information in the middle of the LS, this may make the LS slightly less "complete", but it should be faster.
optional bool use_transposition_table_in_ls = 22 [default = true];- Specified by:
hasUseTranspositionTableInLsin interfaceBopParametersOrBuilder- Returns:
- Whether the useTranspositionTableInLs field is set.
-
getUseTranspositionTableInLs
public boolean getUseTranspositionTableInLs()Whether we use an hash set during the LS to avoid exploring more than once the "same" state. Note that because the underlying SAT solver may learn information in the middle of the LS, this may make the LS slightly less "complete", but it should be faster.
optional bool use_transposition_table_in_ls = 22 [default = true];- Specified by:
getUseTranspositionTableInLsin interfaceBopParametersOrBuilder- Returns:
- The useTranspositionTableInLs.
-
hasUsePotentialOneFlipRepairsInLs
public boolean hasUsePotentialOneFlipRepairsInLs()Whether we keep a list of variable that can potentially repair in one flip all the current infeasible constraints (such variable must at least appear in all the infeasible constraints for this to happen).
optional bool use_potential_one_flip_repairs_in_ls = 39 [default = false];- Specified by:
hasUsePotentialOneFlipRepairsInLsin interfaceBopParametersOrBuilder- Returns:
- Whether the usePotentialOneFlipRepairsInLs field is set.
-
getUsePotentialOneFlipRepairsInLs
public boolean getUsePotentialOneFlipRepairsInLs()Whether we keep a list of variable that can potentially repair in one flip all the current infeasible constraints (such variable must at least appear in all the infeasible constraints for this to happen).
optional bool use_potential_one_flip_repairs_in_ls = 39 [default = false];- Specified by:
getUsePotentialOneFlipRepairsInLsin interfaceBopParametersOrBuilder- Returns:
- The usePotentialOneFlipRepairsInLs.
-
hasUseLearnedBinaryClausesInLp
public boolean hasUseLearnedBinaryClausesInLp()Whether we use the learned binary clauses in the Linear Relaxation.
optional bool use_learned_binary_clauses_in_lp = 23 [default = true];- Specified by:
hasUseLearnedBinaryClausesInLpin interfaceBopParametersOrBuilder- Returns:
- Whether the useLearnedBinaryClausesInLp field is set.
-
getUseLearnedBinaryClausesInLp
public boolean getUseLearnedBinaryClausesInLp()Whether we use the learned binary clauses in the Linear Relaxation.
optional bool use_learned_binary_clauses_in_lp = 23 [default = true];- Specified by:
getUseLearnedBinaryClausesInLpin interfaceBopParametersOrBuilder- Returns:
- The useLearnedBinaryClausesInLp.
-
hasNumberOfSolvers
public boolean hasNumberOfSolvers()The number of solvers used to run Bop. Note that one thread will be created per solver. The type of communication between solvers is specified by the synchronization_type parameter.
optional int32 number_of_solvers = 24 [default = 1];- Specified by:
hasNumberOfSolversin interfaceBopParametersOrBuilder- Returns:
- Whether the numberOfSolvers field is set.
-
getNumberOfSolvers
public int getNumberOfSolvers()The number of solvers used to run Bop. Note that one thread will be created per solver. The type of communication between solvers is specified by the synchronization_type parameter.
optional int32 number_of_solvers = 24 [default = 1];- Specified by:
getNumberOfSolversin interfaceBopParametersOrBuilder- Returns:
- The numberOfSolvers.
-
hasSynchronizationType
public boolean hasSynchronizationType()optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];- Specified by:
hasSynchronizationTypein interfaceBopParametersOrBuilder- Returns:
- Whether the synchronizationType field is set.
-
getSynchronizationType
optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];- Specified by:
getSynchronizationTypein interfaceBopParametersOrBuilder- Returns:
- The synchronizationType.
-
getSolverOptimizerSetsList
List of set of optimizers to be run by the solvers. Note that the i_th solver will run the min(i, solver_optimizer_sets_size())_th optimizer set. The default is defined by default_solver_optimizer_sets (only one set).
repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;- Specified by:
getSolverOptimizerSetsListin interfaceBopParametersOrBuilder
-
getSolverOptimizerSetsOrBuilderList
List of set of optimizers to be run by the solvers. Note that the i_th solver will run the min(i, solver_optimizer_sets_size())_th optimizer set. The default is defined by default_solver_optimizer_sets (only one set).
repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;- Specified by:
getSolverOptimizerSetsOrBuilderListin interfaceBopParametersOrBuilder
-
getSolverOptimizerSetsCount
public int getSolverOptimizerSetsCount()List of set of optimizers to be run by the solvers. Note that the i_th solver will run the min(i, solver_optimizer_sets_size())_th optimizer set. The default is defined by default_solver_optimizer_sets (only one set).
repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;- Specified by:
getSolverOptimizerSetsCountin interfaceBopParametersOrBuilder
-
getSolverOptimizerSets
List of set of optimizers to be run by the solvers. Note that the i_th solver will run the min(i, solver_optimizer_sets_size())_th optimizer set. The default is defined by default_solver_optimizer_sets (only one set).
repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;- Specified by:
getSolverOptimizerSetsin interfaceBopParametersOrBuilder
-
getSolverOptimizerSetsOrBuilder
List of set of optimizers to be run by the solvers. Note that the i_th solver will run the min(i, solver_optimizer_sets_size())_th optimizer set. The default is defined by default_solver_optimizer_sets (only one set).
repeated .operations_research.bop.BopSolverOptimizerSet solver_optimizer_sets = 26;- Specified by:
getSolverOptimizerSetsOrBuilderin interfaceBopParametersOrBuilder
-
hasDefaultSolverOptimizerSets
public boolean hasDefaultSolverOptimizerSets()optional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];- Specified by:
hasDefaultSolverOptimizerSetsin interfaceBopParametersOrBuilder- Returns:
- Whether the defaultSolverOptimizerSets field is set.
-
getDefaultSolverOptimizerSets
optional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];- Specified by:
getDefaultSolverOptimizerSetsin interfaceBopParametersOrBuilder- Returns:
- The defaultSolverOptimizerSets.
-
getDefaultSolverOptimizerSetsBytes
public com.google.protobuf.ByteString getDefaultSolverOptimizerSetsBytes()optional string default_solver_optimizer_sets = 33 [default = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } "];- Specified by:
getDefaultSolverOptimizerSetsBytesin interfaceBopParametersOrBuilder- Returns:
- The bytes for defaultSolverOptimizerSets.
-
hasUseLpStrongBranching
public boolean hasUseLpStrongBranching()Use strong branching in the linear relaxation optimizer. The strong branching is a what-if analysis on each variable v, i.e. compute the best bound when v is assigned to true, compute the best bound when v is assigned to false, and then use those best bounds to improve the overall best bound. This is useful to improve the best_bound, but also to fix some variables during search. Note that using probing might be time consuming as it runs the LP solver 2 * num_variables times.
optional bool use_lp_strong_branching = 29 [default = false];- Specified by:
hasUseLpStrongBranchingin interfaceBopParametersOrBuilder- Returns:
- Whether the useLpStrongBranching field is set.
-
getUseLpStrongBranching
public boolean getUseLpStrongBranching()Use strong branching in the linear relaxation optimizer. The strong branching is a what-if analysis on each variable v, i.e. compute the best bound when v is assigned to true, compute the best bound when v is assigned to false, and then use those best bounds to improve the overall best bound. This is useful to improve the best_bound, but also to fix some variables during search. Note that using probing might be time consuming as it runs the LP solver 2 * num_variables times.
optional bool use_lp_strong_branching = 29 [default = false];- Specified by:
getUseLpStrongBranchingin interfaceBopParametersOrBuilder- Returns:
- The useLpStrongBranching.
-
hasDecomposerNumVariablesThreshold
public boolean hasDecomposerNumVariablesThreshold()Only try to decompose the problem when the number of variables is greater than the threshold.
optional int32 decomposer_num_variables_threshold = 30 [default = 50];- Specified by:
hasDecomposerNumVariablesThresholdin interfaceBopParametersOrBuilder- Returns:
- Whether the decomposerNumVariablesThreshold field is set.
-
getDecomposerNumVariablesThreshold
public int getDecomposerNumVariablesThreshold()Only try to decompose the problem when the number of variables is greater than the threshold.
optional int32 decomposer_num_variables_threshold = 30 [default = 50];- Specified by:
getDecomposerNumVariablesThresholdin interfaceBopParametersOrBuilder- Returns:
- The decomposerNumVariablesThreshold.
-
hasNumBopSolversUsedByDecomposition
public boolean hasNumBopSolversUsedByDecomposition()The number of BopSolver created (thread pool workers) used by the integral solver to solve a decomposed problem. TODO(user): Merge this with the number_of_solvers parameter.
optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];- Specified by:
hasNumBopSolversUsedByDecompositionin interfaceBopParametersOrBuilder- Returns:
- Whether the numBopSolversUsedByDecomposition field is set.
-
getNumBopSolversUsedByDecomposition
public int getNumBopSolversUsedByDecomposition()The number of BopSolver created (thread pool workers) used by the integral solver to solve a decomposed problem. TODO(user): Merge this with the number_of_solvers parameter.
optional int32 num_bop_solvers_used_by_decomposition = 31 [default = 1];- Specified by:
getNumBopSolversUsedByDecompositionin interfaceBopParametersOrBuilder- Returns:
- The numBopSolversUsedByDecomposition.
-
hasDecomposedProblemMinTimeInSeconds
public boolean hasDecomposedProblemMinTimeInSeconds()HACK. To avoid spending too little time on small problems, spend at least this time solving each of the decomposed sub-problem. This only make sense if num_bop_solvers_used_by_decomposition is greater than 1 so that the overhead can be "absorbed" by the other threads.
optional double decomposed_problem_min_time_in_seconds = 36 [default = 0];- Specified by:
hasDecomposedProblemMinTimeInSecondsin interfaceBopParametersOrBuilder- Returns:
- Whether the decomposedProblemMinTimeInSeconds field is set.
-
getDecomposedProblemMinTimeInSeconds
public double getDecomposedProblemMinTimeInSeconds()HACK. To avoid spending too little time on small problems, spend at least this time solving each of the decomposed sub-problem. This only make sense if num_bop_solvers_used_by_decomposition is greater than 1 so that the overhead can be "absorbed" by the other threads.
optional double decomposed_problem_min_time_in_seconds = 36 [default = 0];- Specified by:
getDecomposedProblemMinTimeInSecondsin interfaceBopParametersOrBuilder- Returns:
- The decomposedProblemMinTimeInSeconds.
-
hasGuidedSatConflictsChunk
public boolean hasGuidedSatConflictsChunk()The first solutions based on guided SAT will work in chunk of that many conflicts at the time. This allows to simulate parallelism between the different guiding strategy on a single core.
optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];- Specified by:
hasGuidedSatConflictsChunkin interfaceBopParametersOrBuilder- Returns:
- Whether the guidedSatConflictsChunk field is set.
-
getGuidedSatConflictsChunk
public int getGuidedSatConflictsChunk()The first solutions based on guided SAT will work in chunk of that many conflicts at the time. This allows to simulate parallelism between the different guiding strategy on a single core.
optional int32 guided_sat_conflicts_chunk = 34 [default = 1000];- Specified by:
getGuidedSatConflictsChunkin interfaceBopParametersOrBuilder- Returns:
- The guidedSatConflictsChunk.
-
hasMaxLpSolveForFeasibilityProblems
public boolean hasMaxLpSolveForFeasibilityProblems()The maximum number of time the LP solver will run to feasibility for pure feasibility problems (with a constant-valued objective function). Set this to a small value, e.g., 1, if fractional solutions offer useful guidance to other solvers in the portfolio. A negative value means no limit.
optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];- Specified by:
hasMaxLpSolveForFeasibilityProblemsin interfaceBopParametersOrBuilder- Returns:
- Whether the maxLpSolveForFeasibilityProblems field is set.
-
getMaxLpSolveForFeasibilityProblems
public int getMaxLpSolveForFeasibilityProblems()The maximum number of time the LP solver will run to feasibility for pure feasibility problems (with a constant-valued objective function). Set this to a small value, e.g., 1, if fractional solutions offer useful guidance to other solvers in the portfolio. A negative value means no limit.
optional int32 max_lp_solve_for_feasibility_problems = 41 [default = 0];- Specified by:
getMaxLpSolveForFeasibilityProblemsin interfaceBopParametersOrBuilder- Returns:
- The maxLpSolveForFeasibilityProblems.
-
isInitialized
public final boolean isInitialized()- Specified by:
isInitializedin interfacecom.google.protobuf.MessageLiteOrBuilder- Overrides:
isInitializedin classcom.google.protobuf.GeneratedMessage
-
writeTo
- Specified by:
writeToin interfacecom.google.protobuf.MessageLite- Overrides:
writeToin classcom.google.protobuf.GeneratedMessage- Throws:
IOException
-
getSerializedSize
public int getSerializedSize()- Specified by:
getSerializedSizein interfacecom.google.protobuf.MessageLite- Overrides:
getSerializedSizein classcom.google.protobuf.GeneratedMessage
-
equals
- Specified by:
equalsin interfacecom.google.protobuf.Message- Overrides:
equalsin classcom.google.protobuf.AbstractMessage
-
hashCode
public int hashCode()- Specified by:
hashCodein interfacecom.google.protobuf.Message- Overrides:
hashCodein classcom.google.protobuf.AbstractMessage
-
parseFrom
public static BopParameters parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException - Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static BopParameters parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException - Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static BopParameters parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException - Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static BopParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException - Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static BopParameters parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException - Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static BopParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException - Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
- Throws:
IOException
-
parseFrom
public static BopParameters parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException - Throws:
IOException
-
parseDelimitedFrom
- Throws:
IOException
-
parseDelimitedFrom
public static BopParameters parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException - Throws:
IOException
-
parseFrom
public static BopParameters parseFrom(com.google.protobuf.CodedInputStream input) throws IOException - Throws:
IOException
-
parseFrom
public static BopParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException - Throws:
IOException
-
newBuilderForType
- Specified by:
newBuilderForTypein interfacecom.google.protobuf.Message- Specified by:
newBuilderForTypein interfacecom.google.protobuf.MessageLite
-
newBuilder
-
newBuilder
-
toBuilder
- Specified by:
toBuilderin interfacecom.google.protobuf.Message- Specified by:
toBuilderin interfacecom.google.protobuf.MessageLite
-
newBuilderForType
protected BopParameters.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent) - Overrides:
newBuilderForTypein classcom.google.protobuf.AbstractMessage
-
getDefaultInstance
-
parser
-
getParserForType
- Specified by:
getParserForTypein interfacecom.google.protobuf.Message- Specified by:
getParserForTypein interfacecom.google.protobuf.MessageLite- Overrides:
getParserForTypein classcom.google.protobuf.GeneratedMessage
-
getDefaultInstanceForType
- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageLiteOrBuilder- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageOrBuilder
-