3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-03 01:40:22 +00:00

use variable id as level, separate cut-set updates, add missing reset in pdd

This commit is contained in:
Nikolaj Bjorner 2020-01-08 02:15:45 -08:00
parent 55554215ac
commit 57846e50fa
8 changed files with 158 additions and 126 deletions

View file

@ -353,7 +353,7 @@ namespace sat {
/**
assign levels to variables.
use s.def_level as a primary source for the level of a variable.
use variable id as a primary source for the level of a variable.
secondarily, sort variables randomly (each variable is assigned
a random, unique, id).
*/
@ -365,7 +365,7 @@ namespace sat {
for (unsigned i = 0; i < nv; ++i) var2id[i] = i;
shuffle(var2id.size(), var2id.c_ptr(), s.rand());
for (unsigned i = 0; i < nv; ++i) id2var[var2id[i]] = i;
for (unsigned i = 0; i < nv; ++i) vl[i] = std::make_pair(s.def_level(i), var2id[i]);
for (unsigned i = 0; i < nv; ++i) vl[i] = std::make_pair(i, var2id[i]);
std::sort(vl.begin(), vl.end());
for (unsigned i = 0; i < nv; ++i) l2v[i] = id2var[vl[i].second];