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 class
Contains the definitions for all the bop algorithm parameters and their default values.static enum
Defines 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.BuilderParent
Nested classes/interfaces inherited from class com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessageLite.InternalOneOfEnum
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
Fields inherited from class com.google.protobuf.GeneratedMessage
alwaysUseFieldBuilders, unknownFields
Fields inherited from class com.google.protobuf.AbstractMessage
memoizedSize
Fields inherited from class com.google.protobuf.AbstractMessageLite
memoizedHashCode
-
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
Compute estimated impact at each iteration when true; only once when false.double
HACK.int
Only try to decompose the problem when the number of variables is greater than the threshold.static BopParameters
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 } "];
com.google.protobuf.ByteString
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 } "];
static final com.google.protobuf.Descriptors.Descriptor
boolean
If true, find and exploit symmetries in proving satisfiability in the first problem.int
The first solutions based on guided SAT will work in chunk of that many conflicts at the time.boolean
Whether the solver should log the search progress to LOG(INFO).double
The max deterministic time given to the LP solver each time it is called.double
Maximum time allowed in deterministic time to solve a problem.int
The maximum number of time the LP solver will run to feasibility for pure feasibility problems (with a constant-valued objective function).long
Maximum number of backtracks times the number of variables in Local Search, ie. max num backtracks == max_number_of_backtracks_in_ls / num variables.int
The number of conflicts the SAT solver has to solve a random LNS subproblem for the quick check of infeasibility.int
The number of conflicts the SAT solver has to solve a random LNS subproblem.int
The number of conflicts the SAT solver has to generate a random solution.int
Maximum number of consecutive optimizer calls without improving the current solution.long
The maximum number of assignments the Local Search iterates on during one try.int
Abort the LS search tree as soon as strictly more than this number of constraints are broken.int
Maximum number of cascading decisions the solver might use to repair the current solution in the LS.double
Maximum time allowed in seconds to solve a problem.int
The number of solvers used to run Bop.int
The number of BopSolver created (thread pool workers) used by the integral solver to solve a decomposed problem.int
Number of tries in the random lns.int
Number of variables to relax in the exhaustive Large Neighborhood Search.com.google.protobuf.Parser
<BopParameters> boolean
Avoid exploring both branches (b, a, ...) and (a, b, ...).int
The seed used to initialize the random generator.double
Limit used to stop the optimization as soon as the relative gap is smaller than the given value.int
getSolverOptimizerSets
(int index) List of set of optimizers to be run by the solvers.int
List 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.boolean
Sort 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];
boolean
Whether we use the learned binary clauses in the Linear Relaxation.boolean
Use Large Neighborhood Search based on the LP relaxation.boolean
Use strong branching in the linear relaxation optimizer.boolean
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).boolean
Use the random Large Neighborhood Search instead of the exhaustive one.boolean
Whether we use sat propagation to choose the lns neighbourhood.boolean
If true, find and exploit the eventual symmetries of the problem.boolean
Whether we use an hash set during the LS to avoid exploring more than once the "same" state.boolean
Compute estimated impact at each iteration when true; only once when false.boolean
HACK.boolean
Only try to decompose the problem when the number of variables is greater than the threshold.boolean
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 } "];
boolean
If true, find and exploit symmetries in proving satisfiability in the first problem.boolean
The first solutions based on guided SAT will work in chunk of that many conflicts at the time.int
hashCode()
boolean
Whether the solver should log the search progress to LOG(INFO).boolean
The max deterministic time given to the LP solver each time it is called.boolean
Maximum time allowed in deterministic time to solve a problem.boolean
The maximum number of time the LP solver will run to feasibility for pure feasibility problems (with a constant-valued objective function).boolean
Maximum number of backtracks times the number of variables in Local Search, ie. max num backtracks == max_number_of_backtracks_in_ls / num variables.boolean
The number of conflicts the SAT solver has to solve a random LNS subproblem for the quick check of infeasibility.boolean
The number of conflicts the SAT solver has to solve a random LNS subproblem.boolean
The number of conflicts the SAT solver has to generate a random solution.boolean
Maximum number of consecutive optimizer calls without improving the current solution.boolean
The maximum number of assignments the Local Search iterates on during one try.boolean
Abort the LS search tree as soon as strictly more than this number of constraints are broken.boolean
Maximum number of cascading decisions the solver might use to repair the current solution in the LS.boolean
Maximum time allowed in seconds to solve a problem.boolean
The number of solvers used to run Bop.boolean
The number of BopSolver created (thread pool workers) used by the integral solver to solve a decomposed problem.boolean
Number of tries in the random lns.boolean
Number of variables to relax in the exhaustive Large Neighborhood Search.boolean
Avoid exploring both branches (b, a, ...) and (a, b, ...).boolean
The seed used to initialize the random generator.boolean
Limit used to stop the optimization as soon as the relative gap is smaller than the given value.boolean
Sort constraints by increasing total number of terms instead of number of contributing terms.boolean
optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
boolean
Whether we use the learned binary clauses in the Linear Relaxation.boolean
Use Large Neighborhood Search based on the LP relaxation.boolean
Use strong branching in the linear relaxation optimizer.boolean
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).boolean
Use the random Large Neighborhood Search instead of the exhaustive one.boolean
Whether we use sat propagation to choose the lns neighbourhood.boolean
If true, find and exploit the eventual symmetries of the problem.boolean
Whether we use an hash set during the LS to avoid exploring more than once the "same" state.protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
final boolean
static BopParameters.Builder
static BopParameters.Builder
newBuilder
(BopParameters prototype) protected BopParameters.Builder
newBuilderForType
(com.google.protobuf.AbstractMessage.BuilderParent parent) static BopParameters
parseDelimitedFrom
(InputStream input) static BopParameters
parseDelimitedFrom
(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParameters
parseFrom
(byte[] data) static BopParameters
parseFrom
(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParameters
parseFrom
(com.google.protobuf.ByteString data) static BopParameters
parseFrom
(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParameters
parseFrom
(com.google.protobuf.CodedInputStream input) static BopParameters
parseFrom
(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParameters
parseFrom
(InputStream input) static BopParameters
parseFrom
(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static BopParameters
parseFrom
(ByteBuffer data) static BopParameters
parseFrom
(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) static com.google.protobuf.Parser
<BopParameters> parser()
void
writeTo
(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, writeStringNoTag
Methods inherited from class com.google.protobuf.AbstractMessage
findInitializationErrors, getInitializationErrorString, hashFields, toString
Methods inherited from class com.google.protobuf.AbstractMessageLite
addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.google.protobuf.MessageLite
toByteArray, toByteString, writeDelimitedTo, writeTo
Methods 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:
internalGetFieldAccessorTable
in 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:
hasMaxTimeInSeconds
in 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:
getMaxTimeInSeconds
in 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:
hasMaxDeterministicTime
in 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:
getMaxDeterministicTime
in 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:
hasLpMaxDeterministicTime
in 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:
getLpMaxDeterministicTime
in 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:
hasMaxNumberOfConsecutiveFailingOptimizerCalls
in 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:
getMaxNumberOfConsecutiveFailingOptimizerCalls
in 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:
hasRelativeGapLimit
in 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:
getRelativeGapLimit
in 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:
hasMaxNumDecisionsInLs
in 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:
getMaxNumDecisionsInLs
in 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:
hasMaxNumBrokenConstraintsInLs
in 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:
getMaxNumBrokenConstraintsInLs
in 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:
hasLogSearchProgress
in 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:
getLogSearchProgress
in 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:
hasComputeEstimatedImpact
in 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:
getComputeEstimatedImpact
in 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:
hasPruneSearchTree
in 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:
getPruneSearchTree
in 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:
hasSortConstraintsByNumTerms
in 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:
getSortConstraintsByNumTerms
in 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:
hasUseRandomLns
in 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:
getUseRandomLns
in 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:
hasRandomSeed
in 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:
getRandomSeed
in 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:
hasNumRelaxedVars
in 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:
getNumRelaxedVars
in 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:
hasMaxNumberOfConflictsInRandomLns
in 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:
getMaxNumberOfConflictsInRandomLns
in 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:
hasNumRandomLnsTries
in 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:
getNumRandomLnsTries
in 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:
hasMaxNumberOfBacktracksInLs
in 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:
getMaxNumberOfBacktracksInLs
in 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:
hasUseLpLns
in 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:
getUseLpLns
in 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:
hasUseSatToChooseLnsNeighbourhood
in 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:
getUseSatToChooseLnsNeighbourhood
in 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:
hasMaxNumberOfConflictsForQuickCheck
in 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:
getMaxNumberOfConflictsForQuickCheck
in 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:
hasUseSymmetry
in 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:
getUseSymmetry
in 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:
hasExploitSymmetryInSatFirstSolution
in 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:
getExploitSymmetryInSatFirstSolution
in 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:
hasMaxNumberOfConflictsInRandomSolutionGeneration
in 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:
getMaxNumberOfConflictsInRandomSolutionGeneration
in 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:
hasMaxNumberOfExploredAssignmentsPerTryInLs
in 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:
getMaxNumberOfExploredAssignmentsPerTryInLs
in 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:
hasUseTranspositionTableInLs
in 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:
getUseTranspositionTableInLs
in 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:
hasUsePotentialOneFlipRepairsInLs
in 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:
getUsePotentialOneFlipRepairsInLs
in 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:
hasUseLearnedBinaryClausesInLp
in 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:
getUseLearnedBinaryClausesInLp
in 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:
hasNumberOfSolvers
in 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:
getNumberOfSolvers
in interfaceBopParametersOrBuilder
- Returns:
- The numberOfSolvers.
-
hasSynchronizationType
public boolean hasSynchronizationType()optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
- Specified by:
hasSynchronizationType
in interfaceBopParametersOrBuilder
- Returns:
- Whether the synchronizationType field is set.
-
getSynchronizationType
optional .operations_research.bop.BopParameters.ThreadSynchronizationType synchronization_type = 25 [default = NO_SYNCHRONIZATION];
- Specified by:
getSynchronizationType
in 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:
getSolverOptimizerSetsList
in 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:
getSolverOptimizerSetsOrBuilderList
in 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:
getSolverOptimizerSetsCount
in 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:
getSolverOptimizerSets
in 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:
getSolverOptimizerSetsOrBuilder
in 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:
hasDefaultSolverOptimizerSets
in 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:
getDefaultSolverOptimizerSets
in 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:
getDefaultSolverOptimizerSetsBytes
in 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:
hasUseLpStrongBranching
in 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:
getUseLpStrongBranching
in 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:
hasDecomposerNumVariablesThreshold
in 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:
getDecomposerNumVariablesThreshold
in 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:
hasNumBopSolversUsedByDecomposition
in 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:
getNumBopSolversUsedByDecomposition
in 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:
hasDecomposedProblemMinTimeInSeconds
in 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:
getDecomposedProblemMinTimeInSeconds
in 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:
hasGuidedSatConflictsChunk
in 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:
getGuidedSatConflictsChunk
in 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:
hasMaxLpSolveForFeasibilityProblems
in 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:
getMaxLpSolveForFeasibilityProblems
in interfaceBopParametersOrBuilder
- Returns:
- The maxLpSolveForFeasibilityProblems.
-
isInitialized
public final boolean isInitialized()- Specified by:
isInitialized
in interfacecom.google.protobuf.MessageLiteOrBuilder
- Overrides:
isInitialized
in classcom.google.protobuf.GeneratedMessage
-
writeTo
- Specified by:
writeTo
in interfacecom.google.protobuf.MessageLite
- Overrides:
writeTo
in classcom.google.protobuf.GeneratedMessage
- Throws:
IOException
-
getSerializedSize
public int getSerializedSize()- Specified by:
getSerializedSize
in interfacecom.google.protobuf.MessageLite
- Overrides:
getSerializedSize
in classcom.google.protobuf.GeneratedMessage
-
equals
- Specified by:
equals
in interfacecom.google.protobuf.Message
- Overrides:
equals
in classcom.google.protobuf.AbstractMessage
-
hashCode
public int hashCode()- Specified by:
hashCode
in interfacecom.google.protobuf.Message
- Overrides:
hashCode
in 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:
newBuilderForType
in interfacecom.google.protobuf.Message
- Specified by:
newBuilderForType
in interfacecom.google.protobuf.MessageLite
-
newBuilder
-
newBuilder
-
toBuilder
- Specified by:
toBuilder
in interfacecom.google.protobuf.Message
- Specified by:
toBuilder
in interfacecom.google.protobuf.MessageLite
-
newBuilderForType
protected BopParameters.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent) - Overrides:
newBuilderForType
in classcom.google.protobuf.AbstractMessage
-
getDefaultInstance
-
parser
-
getParserForType
- Specified by:
getParserForType
in interfacecom.google.protobuf.Message
- Specified by:
getParserForType
in interfacecom.google.protobuf.MessageLite
- Overrides:
getParserForType
in classcom.google.protobuf.GeneratedMessage
-
getDefaultInstanceForType
- Specified by:
getDefaultInstanceForType
in interfacecom.google.protobuf.MessageLiteOrBuilder
- Specified by:
getDefaultInstanceForType
in interfacecom.google.protobuf.MessageOrBuilder
-