Why does Z3 use such operation in get_model() from Simplex? #5707
-
I have a question about the linear programming implemented in Z3. In src/math/lp/lar_solver.cpp, lar_solver::get_model(), the get_model() function fetches values from the model created by the tableau methods. The get_model() function contains the following code. Line 1172 in 0a7e003 In the context of QF_LIA, the value of each variable is stored in numeric_pair & rp. I want to know why each value is represented by a numeric pair of two rationals. Why the final value of each variable is computed by mpq x = rp.x + delta * rp.y; What does delta mean? |
Beta Was this translation helpful? Give feedback.
Answered by
NikolajBjorner
Dec 13, 2021
Replies: 1 comment 4 replies
-
the values in the tableau are of the form x + yepsilon, where epsilon is so small that |yepsilon| is smaller than any |x| value. To compute that epsilon we calculate the required delta. @levnach |
Beta Was this translation helpful? Give feedback.
4 replies
Answer selected by
yuffon
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
the values in the tableau are of the form x + yepsilon, where epsilon is so small that |yepsilon| is smaller than any |x| value. To compute that epsilon we calculate the required delta. @levnach