3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

add parameter lp_settings.m_gomory_simplify

This commit is contained in:
Lev Nachmanson 2023-12-27 08:33:51 -10:00 committed by Lev Nachmanson
parent 5796e8899f
commit 0728b81e9e
5 changed files with 6 additions and 2 deletions

View file

@ -328,7 +328,7 @@ public:
if (m_t.is_empty())
return report_conflict_from_gomory_cut();
TRACE("gomory_cut", print_linear_combination_of_column_indices_only(m_t.coeffs_as_vector(), tout << "gomory cut: "); tout << " >= " << m_k << std::endl;);
if (some_int_columns)
if (lia.lra.settings().m_gomory_simplify && some_int_columns)
simplify_inequality();
m_dep = nullptr;

View file

@ -198,7 +198,7 @@ namespace lp {
if (r == lia_move::undef) lra.move_non_basic_columns_to_bounds();
if (r == lia_move::undef && should_hnf_cut()) r = hnf_cut();
if (r == lia_move::undef && should_gomory_cut()) r = gomory(*this).get_gomory_cuts(1);
if (r == lia_move::undef && should_gomory_cut()) r = gomory(*this).get_gomory_cuts(2);
if (r == lia_move::undef) r = int_branch(*this)();
if (settings().get_cancel_flag()) r = lia_move::undef;

View file

@ -32,4 +32,5 @@ void lp::lp_settings::updt_params(params_ref const& _p) {
report_frequency = p.arith_rep_freq();
m_simplex_strategy = static_cast<lp::simplex_strategy_enum>(p.arith_simplex_strategy());
m_nlsat_delay = p.arith_nl_delay();
m_gomory_simplify = p.arith_gomory_simplify();
}

View file

@ -187,6 +187,7 @@ private:
random_gen m_rand;
public:
bool m_gomory_simplify = false;
void updt_params(params_ref const& p);
bool enable_hnf() const { return m_enable_hnf; }
unsigned nlsat_delay() const { return m_nlsat_delay; }
@ -214,6 +215,7 @@ public:
bool backup_costs = true;
unsigned column_number_threshold_for_using_lu_in_lar_solver = 4000;
unsigned m_int_gomory_cut_period = 4;
bool m_gomory_simpliy = false;
unsigned m_int_find_cube_period = 4;
private:
unsigned m_hnf_cut_period = 4;