Command-line options
All command-line options follow the format-option-name=value for valued options or -option-name/-no-option-name for boolean flags.
Main options
Verbosity level controlling output detail
0: Silent mode (no output)1: Some output (default)2: Detailed output with statistics
Validate DIMACS header during parsingEnable with
-strict, disable with -no-strictCore solver options
Variable activity decay factorRange:
(0, 1) (exclusive)Controls how quickly variable activities decay. Higher values (closer to 1) decay more slowly, maintaining variable priorities longer.Clause activity decay factorRange:
(0, 1) (exclusive)Controls how quickly clause activities decay. Affects learned clause deletion strategy.Random variable selection frequencyRange:
[0, 1]Probability of choosing a random variable instead of using the activity heuristic. Set to 0 to disable randomization.Random seed for variable selectionUsed when
rnd-freq > 0 or rnd-init is enabled.Conflict clause minimization mode
0: No minimization1: Basic minimization2: Deep minimization (default)
Phase saving level
0: No phase saving1: Limited phase saving2: Full phase saving (default)
Randomize initial variable activitiesWhen enabled, variables start with small random activity values instead of zero.
Use Luby restart sequenceEnable Luby restart sequence instead of geometric sequence. Luby restarts provide theoretical guarantees.
Base restart intervalRange:
[1, INT32_MAX]Number of conflicts before first restart.Restart interval increase factorRange:
[1, ∞)For geometric restarts (when Luby is disabled), multiply restart interval by this factor.Garbage collection memory fractionRange:
(0, ∞)Trigger garbage collection when wasted memory exceeds this fraction of total memory.Minimum learned clause limitLower bound on the number of learned clauses to keep.
Preprocessing options
These options are only available when using
SimpSolver (the simplifying solver).Enable preprocessingMaster switch for all preprocessing. Disable with
-no-pre to skip variable elimination.Perform variable eliminationEnable bounded variable elimination during preprocessing.
Shrink clauses by asymmetric branchingMore aggressive preprocessing that can reduce clause sizes.
Check if clauses are already implied
Clause growth limit for eliminationAllow variable elimination to increase total clause count by this amount.
Resolvent clause length limitRange:
[-1, INT32_MAX] (-1 means no limit)Variables are not eliminated if resulting resolvent exceeds this length.Subsumption check size limitRange:
[-1, INT32_MAX] (-1 means no limit)Skip subsumption checks against clauses larger than this.Garbage collection fraction during simplificationSeparate GC threshold used during preprocessing phase.
Programmatic configuration
You can configure the solver through the API by setting public member variables:Option categories
Options are organized into logical categories:- Search heuristics
- Restart policy
- Clause learning
- Preprocessing
Control how the solver makes branching decisions:
var-decay: Variable activity decayrnd-freq: Random decision frequencyphase-saving: Remember previous assignmentsrnd-init: Randomize initial activities
Best practices
Default settings work well for most problems. Only adjust options if you have specific performance issues or domain knowledge.
When to adjust options
- Industrial instances: Increase
phase-savingto 2 (default) for structured problems - Random instances: Try
phase-saving = 0and increasedrnd-freq - Large problems: Increase
gc-fracto reduce GC overhead - Memory-constrained: Decrease
gc-fracandmin-learnts
Debugging configurations
Increase verbosity to understand solver behavior:- Problem statistics
- Simplification results
- Search progress
- Restart and deletion events
Related topics
Resource limits
Set CPU and memory constraints
Preprocessing
Deep dive into simplification techniques