mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
add API for setting variable activity
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e4c6dcd84c
commit
89bf2d4368
22 changed files with 125 additions and 1 deletions
|
@ -1619,6 +1619,12 @@ namespace sat {
|
|||
return tracking_assumptions() && m_assumption_set.contains(l);
|
||||
}
|
||||
|
||||
void solver::set_activity(bool_var v, unsigned act) {
|
||||
unsigned old_act = m_activity[v];
|
||||
m_activity[v] = act;
|
||||
m_case_split_queue.activity_changed_eh(v, act > old_act);
|
||||
}
|
||||
|
||||
bool solver::is_assumption(bool_var v) const {
|
||||
return is_assumption(literal(v, false)) || is_assumption(literal(v, true));
|
||||
}
|
||||
|
|
|
@ -387,6 +387,7 @@ namespace sat {
|
|||
char const* get_reason_unknown() const { return m_reason_unknown.c_str(); }
|
||||
bool check_clauses(model const& m) const;
|
||||
bool is_assumption(bool_var v) const;
|
||||
void set_activity(bool_var v, unsigned act);
|
||||
|
||||
lbool cube(bool_var_vector& vars, literal_vector& lits, unsigned backtrack_level);
|
||||
|
||||
|
|
|
@ -341,6 +341,15 @@ public:
|
|||
return result;
|
||||
}
|
||||
|
||||
void set_activity(expr* var, double activity) override {
|
||||
m.is_not(var, var);
|
||||
sat::bool_var v = m_map.to_bool_var(var);
|
||||
if (v == sat::null_bool_var) {
|
||||
throw default_exception("literal does not correspond to a Boolean variable");
|
||||
}
|
||||
m_solver.set_activity(v, activity);
|
||||
}
|
||||
|
||||
proof * get_proof() override {
|
||||
UNREACHABLE();
|
||||
return nullptr;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue