mirror of
https://github.com/Z3Prover/z3
synced 2026-05-23 18:39:38 +00:00
SMTS tree algorithms (#9250)
* Refactor parallel search tree to use global node selection (SMTS-style) instead of DFS traversal. Introduce effort-based prioritization, allow activation of any open node, and add controlled/gated expansion to prevent over-partitioning and improve load balancing. * clean up code * ablations * ablations2: effort * ablations2: activation * ablations3: more activations * ablations4: visit all nodes before splitting * throttle tree size min is based on workers not activated nodes * ablate random throttling * ablate nonlinear effort * clean up code * ablate throttle * ablate where add_effort is * reset * clean up a function and add comment --------- Co-authored-by: Ilana Shapiro <ilanashapiro@Ilanas-MBP.localdomain> Co-authored-by: Ilana Shapiro <ilanashapiro@Ilanas-MacBook-Pro.local> Co-authored-by: Ilana Shapiro <ilanashapiro@Ilanas-MBP.lan1>
This commit is contained in:
parent
c7879ed5ad
commit
ceb363d35d
3 changed files with 199 additions and 83 deletions
|
|
@ -96,7 +96,7 @@ namespace smt {
|
|||
public:
|
||||
batch_manager(ast_manager& m, parallel& p) : m(m), p(p), m_search_tree(expr_ref(m)) { }
|
||||
|
||||
void initialize();
|
||||
void initialize(unsigned initial_max_thread_conflicts = 1000); // TODO: pass in from worker defaults
|
||||
|
||||
void set_unsat(ast_translation& l2g, expr_ref_vector const& unsat_core);
|
||||
void set_sat(ast_translation& l2g, model& m);
|
||||
|
|
@ -106,7 +106,7 @@ namespace smt {
|
|||
|
||||
bool get_cube(ast_translation& g2l, unsigned id, expr_ref_vector& cube, node*& n);
|
||||
void backtrack(ast_translation& l2g, expr_ref_vector const& core, node* n);
|
||||
void split(ast_translation& l2g, unsigned id, node* n, expr* atom);
|
||||
void try_split(ast_translation& l2g, unsigned id, node* n, expr* atom, unsigned effort);
|
||||
|
||||
void collect_clause(ast_translation& l2g, unsigned source_worker_id, expr* clause);
|
||||
expr_ref_vector return_shared_clauses(ast_translation& g2l, unsigned& worker_limit, unsigned worker_id);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue