3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-16 07:45:27 +00:00

Cuber fixes. Added March_CU heuristics

This commit is contained in:
Miguel Neves 2017-10-06 16:10:05 -07:00
parent 133f376172
commit 4d91169118
6 changed files with 130 additions and 59 deletions

View file

@ -73,6 +73,7 @@ namespace sat {
double m_max_score;
unsigned m_max_hlevel;
unsigned m_min_cutoff;
bool m_preselect;
unsigned m_level_cand;
double m_delta_rho;
unsigned m_dl_max_iterations;
@ -86,9 +87,10 @@ namespace sat {
m_alpha = 3.5;
m_max_score = 20.0;
m_min_cutoff = 30;
m_preselect = false;
m_level_cand = 600;
m_delta_rho = (double)0.9995;
m_dl_max_iterations = 32;
m_delta_rho = (double)0.99995;
m_dl_max_iterations = 2;
m_tc1_limit = 10000000;
m_reward_type = ternary_reward;
m_cube_cutoff = 0;
@ -289,7 +291,10 @@ namespace sat {
double get_rating(bool_var v) const { return m_rating[v]; }
double get_rating(literal l) const { return get_rating(l.var()); }
bool select(unsigned level);
void sift_up(unsigned j);
//void sift_up(unsigned j);
void heap_sort();
void heapify();
void sift_down(unsigned j, unsigned sz);
double init_candidates(unsigned level, bool newbies);
std::ostream& display_candidates(std::ostream& out) const;
bool is_unsat() const;
@ -301,6 +306,8 @@ namespace sat {
double heule_schur_score(literal l);
void heule_unit_scores();
double heule_unit_score(literal l);
void march_cu_scores();
double march_cu_score(literal l);
double l_score(literal l, svector<double> const& h, double factor, double sqfactor, double afactor);
// ------------------------------------
@ -460,6 +467,7 @@ namespace sat {
void do_double(literal l, unsigned& base);
void double_look(literal l, unsigned& base);
void set_conflict() { TRACE("sat", tout << "conflict\n";); m_inconsistent = true; }
//void set_conflict() { TRACE("sat", tout << "conflict\n";); printf("CONFLICT\n"); m_inconsistent = true; }
bool inconsistent() { return m_inconsistent; }
unsigned scope_lvl() const { return m_trail_lim.size(); }
@ -544,7 +552,8 @@ namespace sat {
void collect_statistics(statistics& st) const;
double literal_occs(literal l);
double literal_occs(literal l);
double literal_big_occs(literal l);
};
}