-
Notifications
You must be signed in to change notification settings - Fork 191
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gauss-Jordan Elimination seems to be incomplete #778
Comments
Hi, Nice observation! If you set I hope the above helped. Let me know if it did, then we can close this issue I hope! Cheers, Mate |
Hi Mate, thanks for the very quick reply, and sorry for my late answer.... Indeed, with The responsible in/pre-processing rule is Julian |
Yep that's it! Glad it's fixed. Closing :) |
While playing with XOR clauses and trying to use your Gauss-Jordan propagation implementation for XOR clauses in my own solver, I came across many examples, where the GJE seems to be incomplete. That is: For a given set of XOR clauses and given enqueued assignments, not all possible propagations are derived from the clauses right away.
Consider for instance the following minimal example, where no propagations are enqueued, and we merely give an inconsistent system of linear equations:
This corresponds to the system of linear equations
$x_1 + x_2 + x_3 + x_5 +1$
$x_1+x_2+x_4+x_6$
$x_3+x_6$
$x_4+x_5$ ,$1$ , so there is no solution.
and the sum of these polynomials is
Now, (the latest)
cryptominisat
(with and without options--autodisablegauss=0
and--minmatrixrows=0
) requires between 4 and 7 decisions to terminate; whereas I would expect it to require 0 decisions, as GJE should already produce the conflict right away.For my use case, I would very much like the implementation to be complete. I have played around with the configurations in
conf.gaussconf
, however did not succeed in substantially improving it. (The issue seems to be related to how binary XOR clauses are not put into matrices, but represented by two binary clauses.)So my question/issue is rather simple: Is it intended behaviour that GJE is (seemingly) incomplete, or am I just using wrong configurations?
(If necessary, I can also produce more complex examples with incomplete propagation.)
The text was updated successfully, but these errors were encountered: