3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-27 08:28:44 +00:00

variations on unit-walk

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-02-13 17:43:15 -08:00
parent 83f0fd5cc2
commit 5cdfa7cd1c
9 changed files with 163 additions and 154 deletions

View file

@ -1812,7 +1812,7 @@ namespace sat {
unsigned lookahead::do_double(literal l, unsigned& base) {
unsigned num_units = 0;
if (!inconsistent() && dl_enabled(l)) {
if (!inconsistent() && dl_enabled(l) && get_config().m_lookahead_double) {
if (get_lookahead_reward(l) > m_delta_trigger) {
if (dl_no_overflow(base)) {
++m_stats.m_double_lookahead_rounds;
@ -2013,6 +2013,7 @@ namespace sat {
}
bool lookahead::backtrack(literal_vector& trail, svector<bool> & is_decision) {
m_cube_state.m_backtracks++;
while (inconsistent()) {
if (trail.empty()) return false;
if (is_decision.back()) {
@ -2033,6 +2034,7 @@ namespace sat {
void lookahead::update_cube_statistics(statistics& st) {
st.update("lh cube cutoffs", m_cube_state.m_cutoffs);
st.update("lh cube conflicts", m_cube_state.m_conflicts);
st.update("lh cube backtracks", m_cube_state.m_backtracks);
}
double lookahead::psat_heur() {