mirror of
https://github.com/Z3Prover/z3
synced 2026-04-01 00:59:01 +00:00
Fix NLA optimization regression and relax restore_x
- Relax restore_x() to handle backup/current size mismatches: when backup is shorter (new columns added), call move_non_basic_columns_to_bounds() to find a feasible solution. - Fix 100x performance regression in nonlinear optimization: save LP optimum before check_nla and return it as bound regardless of NLA result, so opt_solver::check_bound() can validate via full re-solve with accumulated NLA lemmas. - Refactor theory_lra::maximize() into three helpers: max_with_lp(), max_with_nl(), and max_result(). - Add mk_gt(theory_var, impq const&) overload for building blockers from saved LP optimum values. - Add BNH multi-objective optimization test (7/7 sat in <1s vs 1/7 in 30s before fix). - Add restore_x test for backup size mismatch handling. Fixes #8890 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
bb11a56a67
commit
6d890fb026
8 changed files with 357 additions and 61 deletions
|
|
@ -542,6 +542,7 @@ X(Global, isolate_roots_bug, "isolate roots bug")
|
|||
X(Global, ite_bug, "ite bug")
|
||||
X(Global, lar_solver_feas, "lar solver feas")
|
||||
X(Global, lar_solver_inf_heap, "lar solver inf heap")
|
||||
X(Global, lar_solver_restore, "lar solver restore")
|
||||
X(Global, Lazard, "Lazard")
|
||||
X(Global, lcm_bug, "lcm bug")
|
||||
X(Global, le_bug, "le bug")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue