mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 13:28:47 +00:00
re-enable fixed tabu
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
6b17862886
commit
f6e3c5ae79
|
@ -30,7 +30,7 @@ namespace sls {
|
||||||
|
|
||||||
void bv_fixed::init() {
|
void bv_fixed::init() {
|
||||||
|
|
||||||
return;
|
//return;
|
||||||
|
|
||||||
for (auto e : ctx.subterms())
|
for (auto e : ctx.subterms())
|
||||||
set_fixed(e);
|
set_fixed(e);
|
||||||
|
|
|
@ -318,8 +318,9 @@ namespace sls {
|
||||||
m_config.ucb_forget = p.walksat_ucb_forget();
|
m_config.ucb_forget = p.walksat_ucb_forget();
|
||||||
m_config.ucb_init = p.walksat_ucb_init();
|
m_config.ucb_init = p.walksat_ucb_init();
|
||||||
m_config.ucb_noise = p.walksat_ucb_noise();
|
m_config.ucb_noise = p.walksat_ucb_noise();
|
||||||
m_config.use_top_level_assertions = p.use_top_level_assertions_bv();
|
m_config.use_top_level_assertions = p.bv_use_top_level_assertions();
|
||||||
m_config.use_lookahead_bv = p.use_lookahead_bv();
|
m_config.use_lookahead_bv = p.bv_use_lookahead();
|
||||||
|
m_config.allow_rotation = p.bv_allow_rotation();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -659,13 +660,13 @@ namespace sls {
|
||||||
;
|
;
|
||||||
else if (allow_costly_flips(mt))
|
else if (allow_costly_flips(mt))
|
||||||
ctx.flip(v);
|
ctx.flip(v);
|
||||||
else if (true) {
|
else if (m_config.allow_rotation) {
|
||||||
sat::bool_var_set rotated;
|
m_rotated.reset();
|
||||||
unsigned budget = 100;
|
unsigned budget = 100;
|
||||||
bool rot = ctx.try_rotate(v, rotated, budget);
|
bool rot = ctx.try_rotate(v, m_rotated, budget);
|
||||||
if (rot)
|
if (rot)
|
||||||
++m_stats.m_rotations;
|
++m_stats.m_rotations;
|
||||||
CTRACE("bv", rot, tout << "rotated: " << rotated << "\n";);
|
CTRACE("bv", rot, tout << "rotated: " << m_rotated << "\n";);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,7 @@ namespace sls {
|
||||||
double ucb_noise = 0.1;
|
double ucb_noise = 0.1;
|
||||||
bool use_top_level_assertions = true;
|
bool use_top_level_assertions = true;
|
||||||
bool use_lookahead_bv = true;
|
bool use_lookahead_bv = true;
|
||||||
|
bool allow_rotation = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct stats {
|
struct stats {
|
||||||
|
@ -83,6 +84,7 @@ namespace sls {
|
||||||
vector<bool_info> m_bool_info;
|
vector<bool_info> m_bool_info;
|
||||||
expr_mark m_is_root;
|
expr_mark m_is_root;
|
||||||
unsigned m_touched = 1;
|
unsigned m_touched = 1;
|
||||||
|
sat::bool_var_set m_rotated;
|
||||||
|
|
||||||
std::ostream& display_weights(std::ostream& out);
|
std::ostream& display_weights(std::ostream& out);
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,8 @@ def_module_params('sls',
|
||||||
('dt_axiomatic', BOOL, True, 'use axiomatic mode or model reduction for datatype solver'),
|
('dt_axiomatic', BOOL, True, 'use axiomatic mode or model reduction for datatype solver'),
|
||||||
('track_unsat', BOOL, 0, 'keep a list of unsat assertions as done in SAT - currently disabled internally'),
|
('track_unsat', BOOL, 0, 'keep a list of unsat assertions as done in SAT - currently disabled internally'),
|
||||||
('random_seed', UINT, 0, 'random seed'),
|
('random_seed', UINT, 0, 'random seed'),
|
||||||
('use_top_level_assertions_bv', BOOL, False, 'use top-level assertions for BV lookahead solver'),
|
('bv_use_top_level_assertions', BOOL, False, 'use top-level assertions for BV lookahead solver'),
|
||||||
('use_lookahead_bv', BOOL, True, 'use lookahead solver for BV'),
|
('bv_use_lookahead', BOOL, True, 'use lookahead solver for BV'),
|
||||||
|
('bv_allow_rotation', BOOL, True, 'allow model rotation when repairing literal assignment'),
|
||||||
('str_update_strategy', UINT, 1, 'string update candidate selection: 0 - single character based update, 1 - subsequence based update')
|
('str_update_strategy', UINT, 1, 'string update candidate selection: 0 - single character based update, 1 - subsequence based update')
|
||||||
))
|
))
|
||||||
|
|
Loading…
Reference in a new issue