mirror of
https://github.com/Z3Prover/z3
synced 2025-08-26 04:56:03 +00:00
adding uhle/uhte for faster asymmetric branching
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
26bd784b1f
commit
da0aa71082
4 changed files with 221 additions and 57 deletions
|
@ -20,6 +20,7 @@ Revision History:
|
|||
#define SAT_ASYMM_BRANCH_H_
|
||||
|
||||
#include "sat/sat_types.h"
|
||||
#include "sat/sat_scc.h"
|
||||
#include "util/statistics.h"
|
||||
#include "util/params.h"
|
||||
|
||||
|
@ -30,21 +31,37 @@ namespace sat {
|
|||
class asymm_branch {
|
||||
struct report;
|
||||
|
||||
solver & s;
|
||||
solver & s;
|
||||
params_ref m_params;
|
||||
int64 m_counter;
|
||||
random_gen m_rand;
|
||||
unsigned m_calls;
|
||||
|
||||
// config
|
||||
bool m_asymm_branch;
|
||||
bool m_asymm_branch_all;
|
||||
int64 m_asymm_branch_limit;
|
||||
bool m_asymm_branch;
|
||||
bool m_asymm_branch_all;
|
||||
int64 m_asymm_branch_limit;
|
||||
|
||||
// stats
|
||||
unsigned m_elim_literals;
|
||||
unsigned m_elim_literals;
|
||||
|
||||
literal_vector m_pos, m_neg; // literals (complements of literals) in clauses sorted by discovery time (m_left in scc).
|
||||
literal_vector m_to_delete;
|
||||
|
||||
struct compare_left;
|
||||
|
||||
void sort(scc & scc, clause const& c);
|
||||
|
||||
bool uhle(scoped_detach& scoped_d, scc & scc, clause & c);
|
||||
|
||||
bool uhte(scc & scc, clause & c);
|
||||
|
||||
bool re_attach(scoped_detach& scoped_d, clause& c, unsigned new_sz);
|
||||
|
||||
bool process(clause & c);
|
||||
|
||||
bool process2(scc& scc, clause & c);
|
||||
|
||||
void process(clause_vector & c);
|
||||
|
||||
bool process_all(clause & c);
|
||||
|
@ -55,6 +72,8 @@ namespace sat {
|
|||
|
||||
bool propagate_literal(clause const& c, literal l);
|
||||
|
||||
void setup_big();
|
||||
|
||||
public:
|
||||
asymm_branch(solver & s, params_ref const & p);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue