summaryrefslogtreecommitdiffstats
path: root/src/sat
diff options
context:
space:
mode:
Diffstat (limited to 'src/sat')
-rw-r--r--src/sat/bsat/satSolver.c2
-rw-r--r--src/sat/bsat/satSolver.h8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/sat/bsat/satSolver.c b/src/sat/bsat/satSolver.c
index ac2202dc..d4726b81 100644
--- a/src/sat/bsat/satSolver.c
+++ b/src/sat/bsat/satSolver.c
@@ -967,7 +967,7 @@ static lbool sat_solver_search(sat_solver* s, ABC_INT64_T nof_conflicts, ABC_INT
int* levels = s->levels;
double var_decay = 0.95;
double clause_decay = 0.999;
- double random_var_freq = 0.02;
+ double random_var_freq = s->fNotUseRandom ? 0.0 : 0.02;
ABC_INT64_T conflictC = 0;
veci learnt_clause;
diff --git a/src/sat/bsat/satSolver.h b/src/sat/bsat/satSolver.h
index a33c7240..a67e829a 100644
--- a/src/sat/bsat/satSolver.h
+++ b/src/sat/bsat/satSolver.h
@@ -175,6 +175,7 @@ struct sat_solver_t
Sat_MmStep_t * pMem;
int fSkipSimplify; // set to one to skip simplification of the clause database
+ int fNotUseRandom; // do not allow random decisions with a fixed probability
int * pGlobalVars; // for experiments with global vars during interpolation
// clause store
@@ -228,6 +229,13 @@ static int sat_solver_set_runtime_limit(sat_solver* s, int Limit)
return nRuntimeLimit;
}
+static int sat_solver_set_random(sat_solver* s, int fNotUseRandom)
+{
+ int fNotUseRandomOld = s->fNotUseRandom;
+ s->fNotUseRandom = fNotUseRandom;
+ return fNotUseRandomOld;
+}
+
ABC_NAMESPACE_HEADER_END
#endif