mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
remove incremental mode from EUF, include statistics about restart vs propagation calls to sls
This commit is contained in:
parent
c7ea4964f2
commit
84447b7031
6 changed files with 17 additions and 123 deletions
|
@ -164,7 +164,7 @@ namespace smt {
|
|||
}
|
||||
|
||||
void theory_sls::run_guided_sls() {
|
||||
++m_num_guided_sls;
|
||||
++m_stats.m_num_guided_sls;
|
||||
m_smt_plugin->smt_phase_to_sls();
|
||||
m_smt_plugin->smt_units_to_sls();
|
||||
m_smt_plugin->smt_values_to_sls();
|
||||
|
@ -173,7 +173,7 @@ namespace smt {
|
|||
if (m_smt_plugin) {
|
||||
m_smt_plugin->sls_phase_to_smt();
|
||||
m_smt_plugin->sls_values_to_smt();
|
||||
if (m_num_guided_sls % 20 == 0)
|
||||
if (m_stats.m_num_guided_sls % 20 == 0)
|
||||
m_smt_plugin->sls_activity_to_smt();
|
||||
}
|
||||
}
|
||||
|
@ -192,21 +192,22 @@ namespace smt {
|
|||
m_smt_plugin->collect_statistics(st);
|
||||
else
|
||||
st.copy(m_st);
|
||||
st.update("sls-num-guided-search", m_stats.m_num_guided_sls);
|
||||
st.update("sls-num-restart-search", m_stats.m_num_restart_sls);
|
||||
}
|
||||
|
||||
void theory_sls::restart_eh() {
|
||||
if (m_parallel_mode || !m_smt_plugin)
|
||||
return;
|
||||
|
||||
if (ctx.m_stats.m_num_restarts >= m_threshold + 5) {
|
||||
m_threshold *= 2;
|
||||
if (ctx.m_stats.m_num_restarts >= m_restart_gap + 5) {
|
||||
m_restart_gap *= 2;
|
||||
m_smt_plugin->smt_units_to_sls();
|
||||
++m_stats.m_num_restart_sls;
|
||||
bounded_run(m_restart_ls_steps);
|
||||
if (m_smt_plugin)
|
||||
m_smt_plugin->sls_activity_to_smt();
|
||||
}
|
||||
m_difference_score = 0;
|
||||
m_difference_score_threshold = 1;
|
||||
}
|
||||
|
||||
void theory_sls::bounded_run(unsigned num_steps) {
|
||||
|
|
|
@ -50,15 +50,17 @@ namespace smt {
|
|||
namespace smt {
|
||||
|
||||
class theory_sls : public theory, public sls::smt_context {
|
||||
struct stats {
|
||||
unsigned m_num_guided_sls = 0;
|
||||
unsigned m_num_restart_sls = 0;
|
||||
};
|
||||
stats m_stats;
|
||||
model_ref m_model;
|
||||
sls::smt_plugin* m_smt_plugin = nullptr;
|
||||
unsigned m_trail_lim = 0;
|
||||
bool m_checking = false;
|
||||
bool m_parallel_mode = true;
|
||||
unsigned m_threshold = 1;
|
||||
unsigned m_difference_score = 0;
|
||||
unsigned m_difference_score_threshold = 0;
|
||||
unsigned m_num_guided_sls = 0;
|
||||
unsigned m_restart_gap = 1;
|
||||
unsigned m_restart_ls_steps = 100000;
|
||||
unsigned m_restart_ls_steps_inc = 10000;
|
||||
unsigned m_restart_ls_steps_max = 300000;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue