52BbParaParamSet::BbParaParamSet(
65 "# Control output of subtree log [Default value: FALSE]",
68 "OutputTabularSolvingStatus",
69 "# Control output of tabular solving statues [Default value: TRUE]",
72 "DeterministicTabularSolvingStatus",
73 "# Control output of tabular solving status using deterministic time (only valid when Deterministic = TRUE) [Default value: FALSE]",
77 "# Use root node cuts in ParaInstance, that is, the instance data for solvers has the root node cuts of the original problem. [Default value: FALSE]",
81 "# Indicate if subproblem information (in ParaDiffSubproblem) includes local cuts generated by solvers or not. TRUE means it is included. [Default value: TRUE]",
84 "TransferConflictCuts",
85 "# Indicate if subproblem information (in ParaDiffSubproblem) includes conflict cuts generated by a solver s or not. TRUE means it is included. [Default value: FALSE]",
89 "# Indicate if subproblem information (in ParaDiffSubproblem) includes conflicts generated by a solver s or not. TRUE means it is included. [Default value: TRUE]",
92 "TransferBranchStats",
93 "# Indicate if subproblem information (in ParaDiffSubproblem) includes branching status generated by a solver s or not. TRUE means it is included. [Default value: TRUE]",
96 "TransferVarValueStats",
97 "# Indicate if subproblem information (in ParaDiffSubproblem) includes var-value status generated by a solver s or not. TRUE means it is included. [Default value: FALSE]",
100 "TransferBendersCuts",
101 "# Indicate if subproblem information (in ParaDiffSubproblem) includes benders cuts generated by a solver s or not. TRUE means it is included. [Default value: FALSE]",
104 "CheckEffectOfRootNodePreprocesses",
105 "# Check effect of root node preprocesses. [Default value: FALSE]",
109 "# Control whether or not all open nodes are collected to load coordinator after ramp-up. [Default value: TRUE]",
113 "# Control to run for proving or not. [Default value: FALSE]",
116 "SetAllDefaultsAfterRacing",
117 "# Set all parameter values to default after racing. [Default value: FALSE]",
120 "DistributeBestPrimalSolution",
121 "# Control if the best primal solution is distributed or not. [Default value: TRUE]",
124 "LightWeightRootNodeProcess",
125 "# Control if light weight root node processing is applied. [Default value: FALSE]",
128 "RacingStatBranching",
129 "# Control if racing status branching is applied. [Default value: TRUE]",
132 "IterativeBreakDown",
133 "# Control if iterative break down is applied. [Default value: FALSE]",
136 "NoPreprocessingInLC",
137 "# Control if preprocessing is disabled in LoadCoordinator. [Default value: FALSE (enabled)]",
140 "NoUpperBoundTransferInRacing",
141 "# Disable transfer of upper bound to the other solvers in racing. [Default value: FALSE (transfer)]",
144 "MergeNodesAtRestart",
145 "# Merge nodes at restart or not. [Default value: FALSE]",
148 "NChangeIntoCollectingModeNSolvers",
149 "# Control whether or not to NChangeIntoCollectingMode to the number of solvers/2 [Default value: FALSE]",
152 "EventWeightedDeterministic",
153 "# Enable event weighted deterministiv run (each event has its weight of deterministic time) [Default value: FALSE]",
156 "NoSolverPresolvingAtRoot",
157 "# Disable presolving at root node, for distributed memory version this should be set to FALSE [Default value: FALSE (enable presolving)]",
160 "NoSolverPresolvingAtRootDefaultSet",
161 "# Disable presolving at root and set default parameter settings: for distributed memory version this should be set to FALSE [Default value: FALSE (enable presolving)]",
164 "NoAggressiveSeparatorInRacing",
165 "# Disable aggressive separator settings in racing [Default value: TRUE]",
168 "AllBoundChangesTransfer",
169 "# Transfer bound changes not only for branching variables, but for all variables. [Default value: TRUE]",
172 "NoAllBoundChangesTransferInRacing",
173 "# Disable transfer of all bound changes when the stage is in racing, even if AllBoundChangesTransfer=TRUE [Default value: FALSE]",
177 "# Break the first subtree [Default value: FALSE]",
180 "InitialNodesGeneration",
181 "# Run to generate initial nodes [Default value: FALSE]",
185 "# Restart racing ramp-up, when primal solution was updated in racing [Default value: FALSE]",
188 "CheckFeasibilityInLC",
189 "# Check solution feasiblity in LoadCoordinator [Default value: FALSE]",
192 "ControlCollectingModeOnSolverSide",
193 "# collection mode can be controlled on solver side [Default value: FALSE]",
197 "# Clean up run for reducing check-pointing file [Default value: FALSE]",
201 "# Test dual bound gain in Solver [Default value: FALSE]",
204 "GenerateReducedCheckpointFiles",
205 "# The parallel solver is used only to generate reduced checkpoint files. [Default value: FALSE]",
208 "OutputPresolvedInstance",
209 "# Output presolved instance. This is useful to verify the instance data at restart [Default value: FALSE]",
212 "CommunicateTighterBoundsInRacing",
213 "# Communicate tighter bounds of variables in racing. [Default value: TRUE]",
216 "KeepRacingUntilToFindFirstSolution",
217 "# Keep racing until first feasible solution was found. [Default value: FALSE]",
220 "AllowTreeSearchRestart",
221 "# Allow tree restart in solver [Default value: FALSE]",
224 "OmitInfeasibleTerminationInRacing",
225 "# Omit infeasible terminations during racing [Default value: FALSE]",
228 "WaitTerminationOfThreads",
229 "# In case of racing termination wait for all threads to terminate [Default value: TRUE]",
232 "EnhancedFinalCheckpoint",
233 "# Enhanced checkpoint files are created, in which more nodes than normal checkpoint are included [Default value: FALSE]",
238 "RampUpPhaseProcess",
239 "# Ramp-up phase process: 0 - normal process, 1 - racing process, 2 - rebuild tree after racing, 3 - self-split process [Default value: 2]",
244 "NChangeIntoCollectingMode",
245 "# Number of nodes in LoadCoordinator to decide to change into collection mode [Default value: 1][0, INT_MAX]",
251 "# Node transfer mode: 0 : best estimate node transfer, 1 : best bound node transfer [Default value: 1]",
256 "MinNumberOfCollectingModeSolvers",
257 "# Minimum number of Solvers that can be in collection mode. [Default value: 1]",
262 "MaxNumberOfCollectingModeSolvers",
263 "# Maximum number of Solvers that can be in collection mode : -1 : no limit, 0 : half of the number of Solvers, n > 0 : n [Default value: 0]",
268 "SolverOrderInCollectingMode",
269 "# The order to send request messages in collection mode: -1 : no ordering, 0 : ordered by best dual bound value, 1 : ordered by number of nodes left, 2 : choose alternatively the best bound and the number of nodes orders [Default value: 0]",
274 "RacingRampUpTerminationCriteria",
275 "# Racing ramp-up termination criteria : 0 : stop at the number of nodes left reached, 1 : stop at time limit, 2: : stop at the Solver with the best dual bound value has a certain number of nodes, 3 : adaptive(node first), 4 : adaptive (time first): [Default value: 4]",
280 "StopRacingNumberOfNodesLeft",
281 "# The number of nodes left in a solver to stop racing : [1, INT_MAX]: [Default value: 300]",
286 "NumberOfNodesKeepingInRootSolver",
287 "# The number of nodes left in the root solver to stop keeping nodes. 0: no keeping nodes : [0, INT_MAX]: [Default value: 0]",
292 "NumberOfInitialNodes",
293 "# The number of nodes left in all solvers to stop generating initial nodes : [1, INT_MAX]: [Default value: 300]",
298 "MaxNRacingParamSetSeed",
299 "# The maximum number of seeds for racing parameter set : [1, INT_MAX]: [Default value: 64]",
304 "TryNVariablegOrderInRacing",
305 "# The number of variable order tries in racing ramp-up : [1, INT_MAX]: [Default value: 100]",
310 "TryNBranchingOrderInRacing",
311 "# The number of branching order tries in racing ramp-up : [1, INT_MAX]: [Default value: 100]",
316 "NEvaluationSolversToStopRacing",
317 "# The number of evaluation solvers to stop racing. ( -1 stops at all of the solvers, 0 stop at half of the solvers ) : [-1, INT_MAX]: [Default value: -1]",
322 "NMaxCanditatesForCollecting",
323 "# The maximum number of candidates to be in collection mode solvers, when system goes in to collecting mode : [1, INT_MAX]: [Default value: 10]",
328 "NSolverNodesStartBreaking",
329 "# The number of nodes left in a solver to start breaking. : [0, INT_MAX]: [Default value: 0: no breaking]",
335 "# The number of nodes left in the system to stop breaking. : [0, INT_MAX]: [Default value: 0: no breaking]",
340 "NTransferLimitForBreaking",
341 "# The maximum number of nodes transferred from a solver, when system is in breaking mode. : [1, INT_MAX]: [Default value: 100]",
347 "# Stop solving mode if number of solved nodes is less than NStopSolvingMode. 0 means to no stop solving. [Default: 3][-1, INT_MAX]",
353 "# Number of nodes collected once to load coordinator. The value -1 means all. 0 means # solvers * 5. [Default: 0][-1, INT_MAX]",
358 "AggressivePresolveDepth",
359 "# Depth to try presolving in the other solvers. Offset value will be added. -1: no aggressive presolving. [Default: -1][-1, INT_MAX]",
364 "AggressivePresolveStopDepth",
365 "# Depth to stop aggressive presolving. This value is only valid for AggressivePresolveDepth > 0. [Default: 8][1, INT_MAX]",
370 "BigDualGapSubtreeHandling",
371 "# Big dual gap subtree handling. 0 : throw away, 1 : send back to load coordinator [Default: 0][0, 1]",
376 "InstanceTransferMethod",
377 "# Instance data transfer method. 0 : on memory, 1 : by file, 2 : by original data [Default: 0][0, 2]",
383 "# Disable transfer and keep nodes depth from sub-MIP root less than this value. [Default: -1][-1, INT_MAX]",
388 "NoAlternateSolving",
389 "# Alternate solving is prohibited when the specified value is greater than zero. If the number of nodes left is less than the value, alternate solving is performed. [Default: 100][0, INT_MAX]",
394 "NNodesTransferLogging",
395 "# The number of nodes transferred is logged when the specified value greater than zero. The specified value indicates the frequency for the logging. [Default: 0][0, INT_MAX]",
400 "NIdleSolversToTerminate",
401 "# The number of idle solvers to terminate forcibly. Value < 0 means no termination depending of the number of idle solvers. [Default: -1][-1, INT_MAX]",
406 "FinalCheckpointNSolvers",
407 "# The maximum number of solvers whose nodes are collected at the final checkpoint. The value = -1 means all solvers nodes are collected. [Default: 10][-1, INT_MAX]",
412 "NMergingNodesAtRestart",
413 "# The number of nodes trying to merge at restart. -1 : that to try to merge all nodes. [Default: -1][-1, INT_MAX]",
418 "NBoundChangesOfMergeNode",
419 "# How many number of bound changes in a subproblem is needed to be merged. -1 : set automatically. 0 : everything. [Default: -1][-1, INT_MAX]",
424 "NNodesToKeepInCheckpointFile",
425 "# Number of the best nodes to keep in checkpoint file, that is not be processed. This parameter is only valid in restarting with checkpoint file. [Default: 0][0, INT_MAX]",
430 "NMaxRacingBaseParameters",
431 "# Maximum number of racing base parameter configurations. File started from 1 to NMaxRacingBaseParameters. [Default: 0][0, 99999]",
436 "NBoundChangesForTransferNode",
437 "# Number of bound changes needed to transfer a branch node. -1 : no restrictions. [Default: -1][-1, 99999]",
442 "OmitTerminationNSolutionsInRacing",
443 "# Omit racing termination until the number of incumbent solutions is obtained. 1 : at least one feasible solution is needed. [Default: 0][0, 99999]",
448 "NEagerToSolveAtRestart",
449 "# Number of best nodes, which are eager to be solved at restart. 0 : all nodes. [Default: 0][0, 99999]",
454 "SelfSplitTreeDepth",
455 "# depth of branch-and-bound to open nodes for self-split [Default value: 0]",
460 "LightWeightNodePenartyInCollecting",
461 "# The number of light weight nodes in collecting mode, which can be considered as one heavy weight node [Default value: 10]",
466 "EnhancedCheckpointInterval",
467 "# Specify an interval to create checkpoint files. It is specified by the number of solvers, in which open nodes are collected. [Default value: 10]",
476 "MultiplierForCollectingMode",
477 "# Multiplier for mp in collection mode. When the number of good nodes becomes greater than mp * NChangeIntoCollectingMode, stop collecting [Default value: 2.0][1.0, DBL_MAX]",
482 "MultiplierToDetermineThresholdValue",
483 "# Multiplier for mth to determine threshold value. When the number of nodes left greater than mth * (meanRootNodeTime/ (meanNodeTime except root)), a Solver starts sending nodes in collection mode [Default: 1.5][1.0, DBL_MAX]",
488 "BgapCollectingMode",
489 "# Value boundgap_p to identify good nodes, (bound value of a node - best bound value )/ (best bound value ) < gap_p is treated as good node. [Default: 0.4][0.0,1.0]",
494 "MultiplierForBgapCollectingMode",
495 "# Define when a Solver in collection mode leaves it: (the solver's best dual bound value - g.b.d.b.v )/g.b.d.b.v > gap_p* (MultiplierForBgapCollectingMode) [Default:10.0][1.0, 10.0]",
500 "ABgapForSwitchingToBestSolver",
501 "# Define when a Solver in collection mode leaves it: when the absolute dual gap to the best solver is greater than this value and the best solver is not in collection mode (Don't set 0.0) [Default:1.0][0.0, DBL_MAX]",
506 "BgapStopSolvingMode",
507 "# Define when a solver is stopped and all generated nodes except the root nodes are discarded, when ( its local best dual bound value - LC.b.d.b.v ) / LC.b.d.b.v > BgapStopSolvingMode. [Default: 0.33][0.0, 10.0]",
512 "StopRacingTimeLimit",
513 "# The time limit until racing is stopped. [Default: 720.0] [1.0, DBL_MAX]",
518 "StopRacingTimeLimitMultiplier",
519 "# An extending time limit multiplier in case nodes left is less than stop-racing number of nodes left. [Default: 50.0] [1.0, DBL_MAX]",
524 "StopRacingNumberOfNodesLeftMultiplier",
525 "# The multiplier for the limit of the number of nodes left to stop racing. [Default: 20.0] [1.0, DBL_MAX]",
531 "# Timelimit for empty node pool. When node pool stays empty longer than this time, then the number of collection mode solvers will be increased. [Default: 10.0] [1.0, DBL_MAX]",
536 "TabularSolvingStatusInterval",
537 "# Time interval inbetween output of tabular solving status log [Default: 5.0] [0.0, DBL_MAX]",
542 "RatioToApplyLightWeightRootProcess",
543 "# If the ratio between idle solvers divided by the total number of solvers is smaller than this parameter, then the light weight root node process is applied. [Default: 0.5] [0.0, 1.0]",
548 "MultiplierForBreakingTargetBound",
549 "# Solvers, which have the best dual bound nodes less than (the global best dual bound * this multiplier), become target of breaking solvers. [Default: 1.03] [1.0, DBL_MAX]",
554 "FixedVariablesRatioInMerging",
555 "# Ratio of fixed variables when merging open nodes. [Default: 0.9] [0.0, 1.0]",
560 "AllowableRegressionRatioInMerging",
561 "# Permissible regression ratio of dual bound value in merging. [Default: 0.0] [0.0, 1.0]",
566 "CountingSolverRatioInRacing",
567 "# Ratio of status notified solvers required to determine the winner in racing. Note: a solver with a specific setting sometimes has a hard time to solve a root node and cannot send status message to the load coordinator. [Default: 0.5] [0.0, 1.0]",
572 "ProhibitCollectOnceMultiplier",
573 "# When the racing winner has nodes less than (the number of Solvers)*(this value), CollectOnce should be prohibited. [Default: 0.0] [0.0, DBL_MAX]",
578 "TNodesTransferLogging",
579 "# Log the number of transferred nodes in the specified time interavl. Logging is turned off when the specified value is nonpositive. . [Default: 2.0][-1.0, DBL_MAX]",
584 "RandomNodeSelectionRatio",
585 "# Frequency to select a node randomly from node pool in load coordinator. [Default: 0.2][0.0, 1.0]",
590 "DualBoundGainBranchRatio",
591 "# Branch if the dual bound gain is less than average of the that multiplied by this value. [Default: 0.5][0.0, 3.0]",
596 "CollectingModeInterval",
597 "# If the time interval between collection mode is less than this time, increase the number of collecting nodes. Negative value: no dynamic adjust. NOT set 0.0. [Default: 10.0][-1.0, DBL_MAX]",
602 "RestartInRampDownThresholdTime",
603 "# Threshold time to restart in ramp-down phase. -1.0: no restart. Do not set a positive value less than 1.0. [Default: -1.0][-1.0, DBL_MAX]",
608 "RestartInRampDownActiveSolverRatio",
609 "# (EXPERIMENTAL: CURRENTLY UNUSED PARAMETER) Ratio of active solvers ratio to restart in ramp-down phase. Restart if the active solvers ratio less than this value keeps until the threshold time. [Default: 0.7][0.01, 0.99]",
614 "HugeImbalanceThresholdTime",
615 "# Threshold time to detect huge imbalance. -1.0: no detect. NOT set 0.0. [Default: -1.0][-1.0, DBL_MAX]",
620 "HugeImbalanceActiveSolverRatio",
621 "# Active solvers ratio to detect huge imbalance. If the active solvers ratio less than the value keeps until the threshold time, detect huge imbalance. [Default: 0.9][0.01, 0.99]",
626 "TimeStopSolvingMode",
627 "# Candidate of stop solving mode: Node computing time less than this value. The value less than 0 means to not stop solving by this criterion. [Default: -1][-1.0, DBL_MAX]",
632 "NoTransferThresholdReductionRatio",
633 "# Reduction ratio for threshold value of no node transfer. [Default: 1.0][0.0, 1.0]",
638 "EnhancedCheckpointStartTime",
639 "# Start time to collect open nodes for enhanced checkpoint files. [Default: 36000.0][0.0, DBL_MAX]",
648 "SolverSettingsForInitialPresolving",
649 "# Solver parameter settings filename that is applied at initial presolving in LoadCoordinator. Empty name use default settings. [Default: ]",
652 "SolverSettingsAtRootNode",
653 "# Solver parameter settings filename that is applied at root node solving (including presolving in load coordinator). Empty name use default settings. [Default: ]",
656 "SolverSettingsExceptRootNode",
657 "# Solver parameter settings filename that is applied at all nodes solving except root node. Empty name use default settings. [Default: ]",
660 "SolverSettingsAtRacing",
661 "# Solver parameter settings filename that is applied at racing stage. Empty name use default settings. [Default: ]",
681 std::cout <<
"Input error in file <" << filename
682 <<
"> [RacingStatBranching = TRUE] needs to be [RampUpPhaseProcess = 1 or 2] and [CollectOnce = TRUE]"
Parameter set for UG framework.
Base class of communicator object.
bool getBoolParamValue(int param)
get bool parameter value
virtual void read(ParaComm *comm, const char *filename)
read ParaParams from file
void setBoolParamValue(int param, bool value)
set bool parameter value
void setIntParamValue(int param, int value)
set int parameter value
int getIntParamValue(int param)
get int parameter value
static ScipParaCommTh * comm
static const int BreakFirstSubtree
static const int NoAllBoundChangesTransferInRacing
static const int KeepRacingUntilToFindFirstSolution
static const int NoSolverPresolvingAtRootDefaultSet
static const int ProhibitCollectOnceMultiplier
static const int StopRacingTimeLimitMultiplier
static const int OutputPresolvedInstance
static const int NEagerToSolveAtRestart
static const int DualBoundGainTest
static const int TryNBranchingOrderInRacing
static const int LightWeightRootNodeProcess
static const int CollectingModeInterval
static const int SolverOrderInCollectingMode
static const int NTransferLimitForBreaking
static const int MergeNodesAtRestart
static const int NumberOfNodesKeepingInRootSolver
static const int NStopBreaking
static const int NodeTransferMode
static const int NMaxCanditatesForCollecting
static const int NSolverNodesStartBreaking
static const int MaxNumberOfCollectingModeSolvers
static const int TransferBendersCuts
static const int NoUpperBoundTransferInRacing
static const int TransferBranchStats
static const int RacingRampUpTerminationCriteria
static const int NMaxRacingBaseParameters
static const int SolverSettingsExceptRootNode
static const int InitialNodesGeneration
static const int MinNumberOfCollectingModeSolvers
static const int UseRootNodeCuts
static const int StopRacingTimeLimit
static const int EventWeightedDeterministic
static const int TNodesTransferLogging
static const int TryNVariablegOrderInRacing
static const int LogSubtreeInfo
static const int NoAggressiveSeparatorInRacing
static const int HugeImbalanceThresholdTime
static const int EnhancedCheckpointStartTime
static const int ABgapForSwitchingToBestSolver
static const int MultiplierForBreakingTargetBound
static const int FinalCheckpointNSolvers
static const int SolverSettingsForInitialPresolving
static const int ProvingRun
static const int TransferVarValueStats
static const int NBoundChangesForTransferNode
static const int NNodesToKeepInCheckpointFile
static const int InstanceTransferMethod
static const int CollectOnce
static const int LogSolvingStatus
static const int MaxNRacingParamSetSeed
static const int NBoundChangesOfMergeNode
static const int TransferConflicts
static const int CheckFeasibilityInLC
static const int TransferConflictCuts
static const int CheckEffectOfRootNodePreprocesses
static const int RatioToApplyLightWeightRootProcess
static const int NChangeIntoCollectingModeNSolvers
static const int TimeStopSolvingMode
static const int NoPreprocessingInLC
static const int RestartInRampDownThresholdTime
static const int RandomNodeSelectionRatio
static const int TransferLocalCuts
static const int AggressivePresolveDepth
static const int ControlCollectingModeOnSolverSide
static const int NoAlternateSolving
static const int BigDualGapSubtreeHandling
static const int AggressivePresolveStopDepth
static const int GenerateReducedCheckpointFiles
static const int SolverSettingsAtRacing
static const int OmitInfeasibleTerminationInRacing
static const int TimeToIncreaseCMS
static const int EnhancedCheckpointInterval
static const int RampUpPhaseProcess
static const int RestartRacing
static const int NNodesTransferLogging
static const int BgapStopSolvingMode
static const int BgapCollectingMode
static const int LightWeightNodePenartyInCollecting
static const int NCollectOnce
static const int NStopSolvingMode
static const int StopRacingNumberOfNodesLeftMultiplier
static const int RacingStatBranching
static const int RestartInRampDownActiveSolverRatio
static const int AllowTreeSearchRestart
static const int DualBoundGainBranchRatio
static const int NIdleSolversToTerminate
static const int NChangeIntoCollectingMode
static const int MultiplierToDetermineThresholdValue
static const int SolverSettingsAtRootNode
static const int AllBoundChangesTransfer
static const int HugeImbalanceActiveSolverRatio
static const int NoTransferThresholdReductionRatio
static const int DeterministicTabularSolvingStatus
static const int OutputTabularSolvingStatus
static const int OmitTerminationNSolutionsInRacing
static const int LogTasksTransfer
static const int EnhancedFinalCheckpoint
static const int NoSolverPresolvingAtRoot
static const int NEvaluationSolversToStopRacing
static const int TabularSolvingStatusInterval
static const int NumberOfInitialNodes
static const int WaitTerminationOfThreads
static const int DistributeBestPrimalSolution
static const int NMergingNodesAtRestart
static const int StopRacingNumberOfNodesLeft
static const int IterativeBreakDown
static const int MultiplierForBgapCollectingMode
static const int CountingSolverRatioInRacing
static const int TagTrace
static const int KeepNodesDepth
static const int AllowableRegressionRatioInMerging
static const int SelfSplitTreeDepth
static const int MultiplierForCollectingMode
static const int FixedVariablesRatioInMerging
static const int SetAllDefaultsAfterRacing
static const int CommunicateTighterBoundsInRacing
Base class of communicator for UG Framework.