mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 03:45:51 +00:00
no calling cut_solver when there are bounded columns
Signed-off-by: Lev Nachmanson <levnach@hotmail.com> use special bounds inf find_cube for x+y, x-y Signed-off-by: Lev Nachmanson <levnach@hotmail.com> bug fixes in column patching, add stats to patching, restructure int_solver Signed-off-by: Lev Nachmanson <levnach@hotmail.com> comment out m_old_values from int_solver Signed-off-by: Lev Nachmanson <levnach@hotmail.com> avoid calling pivot_fixed_vars_from_basis() in int_solver Signed-off-by: Lev Nachmanson <levnach@hotmail.com> fix the return value from path_nbasic_columns Signed-off-by: Lev Nachmanson <levnach@hotmail.com> fix the return value from path_nbasic_columns Signed-off-by: Lev Nachmanson <levnach@hotmail.com> work in patch_columns Signed-off-by: Lev Nachmanson <levnach@hotmail.com> work on int_solver check() Signed-off-by: Lev Nachmanson <levnach@hotmail.com> exit from find_free_interval() when l >= u Signed-off-by: Lev Nachmanson <levnach@hotmail.com> experiment with branching on nbasic columns Signed-off-by: Lev Nachmanson <levnach@hotmail.com> remove m_old_values Signed-off-by: Lev Nachmanson <levnach@hotmail.com> add rounding to patch_columns Signed-off-by: Lev Nachmanson <levnach@hotmail.com> qflia Signed-off-by: Lev Nachmanson <levnach@hotmail.com> patch all columns, round non-patched, branch or basic columns Signed-off-by: Lev Nachmanson <levnach@hotmail.com> refactor int_solver::check() Signed-off-by: Lev Nachmanson <levnach@hotmail.com> restore move_non_basic_columns_to_bounds() after a failure in find_cube() Signed-off-by: Lev Nachmanson <levnach@hotmail.com> optimize gomory cuts search Signed-off-by: Lev Nachmanson <levnach@hotmail.com> produce gomory cuts without moving columns to bounds Signed-off-by: Lev Nachmanson <levnach@hotmail.com> call find_feasible_solution() after moving columns Signed-off-by: Lev Nachmanson <levnach@hotmail.com> alway move colums to bounds before gomory cut Signed-off-by: Lev Nachmanson <levnach@hotmail.com> merge from best branch Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
7e82ab595e
commit
c04bcb411d
13 changed files with 341 additions and 276 deletions
|
@ -116,7 +116,7 @@ public :
|
|||
|
||||
unsigned j;
|
||||
void analyze() {
|
||||
for (auto c : m_row) {
|
||||
for (const auto & c : m_row) {
|
||||
if ((m_column_of_l == -2) && (m_column_of_u == -2))
|
||||
break;
|
||||
analyze_bound_on_var_on_coeff(c.var(), c.coeff());
|
||||
|
@ -225,7 +225,7 @@ public :
|
|||
int strict = 0;
|
||||
mpq total;
|
||||
lp_assert(is_zero(total));
|
||||
for (auto p : m_row) {
|
||||
for (const auto& p : m_row) {
|
||||
bool str;
|
||||
total -= monoid_min(p.coeff(), p.var(), str);
|
||||
if (str)
|
||||
|
@ -233,7 +233,7 @@ public :
|
|||
}
|
||||
|
||||
|
||||
for (auto p : m_row) {
|
||||
for (const auto &p : m_row) {
|
||||
bool str;
|
||||
bool a_is_pos = is_pos(p.coeff());
|
||||
mpq bound = total / p.coeff() + monoid_min_no_mult(a_is_pos, p.var(), str);
|
||||
|
@ -250,14 +250,14 @@ public :
|
|||
int strict = 0;
|
||||
mpq total;
|
||||
lp_assert(is_zero(total));
|
||||
for (auto p : m_row) {
|
||||
for (const auto &p : m_row) {
|
||||
bool str;
|
||||
total -= monoid_max(p.coeff(), p.var(), str);
|
||||
if (str)
|
||||
strict++;
|
||||
}
|
||||
|
||||
for (auto p : m_row) {
|
||||
for (const auto& p : m_row) {
|
||||
bool str;
|
||||
bool a_is_pos = is_pos(p.coeff());
|
||||
mpq bound = total / p.coeff() + monoid_max_no_mult(a_is_pos, p.var(), str);
|
||||
|
@ -279,7 +279,7 @@ public :
|
|||
unsigned j;
|
||||
mpq bound = -m_rs.x;
|
||||
bool strict = false;
|
||||
for (auto p : m_row) {
|
||||
for (const auto& p : m_row) {
|
||||
j = p.var();
|
||||
if (j == static_cast<unsigned>(m_column_of_u)) {
|
||||
u_coeff = p.coeff();
|
||||
|
@ -308,7 +308,7 @@ public :
|
|||
unsigned j;
|
||||
mpq bound = -m_rs.x;
|
||||
bool strict = false;
|
||||
for (auto p : m_row) {
|
||||
for (const auto &p : m_row) {
|
||||
j = p.var();
|
||||
if (j == static_cast<unsigned>(m_column_of_l)) {
|
||||
l_coeff = p.coeff();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue