1 :- module(dpllt_settings, [restart_policy/1,
2 static_syntax_analysis/1,
3 static_smt_symmetry_breaking/1,
4 luby_restart_unit_length/1,
5 glucose_restart_recent_lbds_threshold/1,
6 glucose_restart_margin_ratio/1,
7 glucose_restart_trail_threshold/1,
8 glucose_restart_stack_avg_factor/1,
9 discard_clause_greater_lbd/1,
10 discard_learned_clauses_frequency_constant/1,
11 discard_learned_clauses_constant_factor/1,
12 decision_heuristic/1,
13 bump_scores_for_bj_clause_only/1,
14 vsids_decay_value/1,
15 vsids_decay_frequency/1,
16 evsids_f_value/1]).
17
18 :- use_module(probsrc(preferences), [get_preference/2]).
19 :- use_module(probsrc(module_information), [module_info/2]).
20
21 :- module_info(group, dpllt).
22 :- module_info(description,'This module provides settings for the DPLL(T) solver.').
23
24 %:- dynamic static_smt_symmetry_breaking/1, static_syntax_analysis/1.
25
26 static_syntax_analysis(X) :- get_preference(dpllt_perform_static_analysis,X).
27 static_smt_symmetry_breaking(X) :- get_preference(dpllt_perform_symmetry_breaking,X).
28 %% Random Restarts
29 % Available restart policies: luby, glucose.
30 restart_policy(glucose).
31 % The length of a unit in the Luby sequence.
32 luby_restart_unit_length(32).
33 % The amount of conflict clauses to be considered "recent" in Glucose restarts. Small value leads to more restarts.
34 glucose_restart_recent_lbds_threshold(50).
35 % Do restart if defined proportion of recent LBDs average is greater than total average. Large value leads to less restarts.
36 glucose_restart_margin_ratio(0.8).
37 % The amount of conflicts to enable possible emptying of the recent LBD queue to favor SAT instances too.
38 glucose_restart_trail_threshold(5000).
39 % For factor f, the last stack size needs to be larger than f * recentSizes.avg() to empty the recent LBD queue.
40 glucose_restart_stack_avg_factor(1.4).
41 %%
42
43 %% Reducing Learned Clauses
44 % Maximum LBD score for learned clauses.
45 % Each learned clause is propagated at least once independent of its actual LBD score.
46 discard_clause_greater_lbd(5).
47 % Remove half of the learned clauses every "frequency_constant + constant_factor * x" conflicts.
48 discard_learned_clauses_frequency_constant(20000).
49 discard_learned_clauses_constant_factor(500).
50 %%
51
52 %% Decision Heuristic
53 % Available decision heuristics: vsids, evsids.
54 decision_heuristic(evsids).
55 bump_scores_for_bj_clause_only(true).
56 % Decision score s is updated by s/v.
57 vsids_decay_value(2).
58 % Amount of found conflicts when to decay scores.
59 vsids_decay_frequency(128).
60 % A value between 0 and 1. Decision score is updated by s + f^(-k).
61 evsids_f_value(0.9).
62 %%