Skip to content
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

Non-empty HSS for UNSAT instance has been built #5

Open
dmitrygusev opened this issue Jan 25, 2011 · 9 comments
Open

Non-empty HSS for UNSAT instance has been built #5

dmitrygusev opened this issue Jan 25, 2011 · 9 comments
Labels

Comments

@dmitrygusev
Copy link
Member

We have found several examples where non-empty HSS for UNSAT instances was built. This shouldn't happen according to Theorem 1 (assuming its correct). Here are the instances:

Until someone find an error in Theorem 1 we consider this is a bug in implementation.

@Tesseractic
Copy link

Please ask Vladimir Romanov to run these instances on his own implementation of the algorithm. If Romanov's implementation fails on these as well, it would seem more likely that there's a basic problem with the approach. On the other hand, if his program succeeds for these instances, we can have a little more confidence in the paper.

@dmitrygusev
Copy link
Member Author

It works on Romanov's implementation as it supposed to, the formula classified as UNSAT. I've just tried to run the test case with x1_16.shuffled.cnf.

Though Romanov's own implementation doesn't write complete log about what its doing. And I'm not familiar with its code enough to investigate whether the HS was built empty. I will ask him to verify this example by himself.

Our implementation also classifies these formulas as UNSAT, because while its searching satisfying set it reduces HS to elementary HS (this is also polynomial-time operation), and if the formula is SAT this will lead to satisfying set. If it won't be able to reduce HS to elementary one it will throw an EmptyStructureException - which will be interpreted in our implementation as UNSAT.

So the answer is still correct, though during finding the solution we have some contradiction to the theory.

@dmitrygusev
Copy link
Member Author

Vladimir Romanov confirmed that his own implementation also built non-empty HSS for x1_16.shuffled.cnf

@realazthat
Copy link

Are you guys working on any solution to this problem, or is it a done deal?

@dmitrygusev
Copy link
Member Author

It is more likely that the issue is not in the implementation, but in the filtration procedure as its defined in the article (http://romvf.wordpress.com/2011/01/19/open-letter/#comment-99):
"A shortcoming possibly exists in the filtration procedure which requires an amendment."

I know Vladimir Romanov works on this.

As for the implementation, I don't think I'll do any commits for this issue until we release a new version of the article where the fix will be introduced.

P.S.
I also tried to understand the structure of x1_16.shuffled.cnf and here is what I got (thanks to Luigi Salemi):

   ( 1 Xor  2 Xor 33)
   ( 1 Xor 22 Xor 40)
   ( 2 Xor  7 Xor 24)
   ( 3 Xor 18 Xor 35)
   ( 3 Xor 26 Xor 34)
   ( 4 Xor 17 Xor 44)
   ( 4 Xor 21 Xor 31)
   ( 5 Xor 13 Xor 16)
Not( 5 Xor 30 Xor 36)
   ( 6 Xor 27 Xor 35)
Not( 6 Xor 32 Xor 42)
   ( 7 Xor 17 Xor 43)
Not( 8 Xor 25 Xor 29)
   ( 8 Xor 37 Xor 42)
Not( 9 Xor 15 Xor 46)
   (-9 Or -16 Or  47)   ; CNF
   (-9 Or -16 Or -47)   ; CNF
   ( 9 Or  16 Or  48)   ; CNF
   ( 9 Or  16 Or -48)   ; CNF
   (10 Xor 12 Xor 41)
Not(10 Xor 32 Xor 33)
Not(11 Xor 14 Xor 39)
Not(11 Xor 15 Xor 34)
Not(12 Xor 20 Xor 30)
Not(13 Xor 14 Xor 24)
Not(18 Xor 22 Xor 43)
Not(19 Xor 20 Xor 38)
Not(19 Xor 21 Xor 31)
Not(23 Xor 26 Xor 44)
Not(23 Xor 27 Xor 28)
Not(25 Xor 37 Xor 40)
   (28 Xor 36 Xor 39)
   (29 Xor 38 Xor 45)
Not(41 Xor 45 Xor 46)

Every variable presents exactly in 8 clauses (in CNF) except for two irrelevant variables: 47 and 48 that were added to complete the formula to 3-SAT.

I also want to find smaller instance built with the same construction rules that will reproduce this issue, but I really don't have enough time for this right now.

@pete6
Copy link

pete6 commented Aug 21, 2011

It's August 21, more than 3 months (1/4 of a year) after this bug was discovered. Any progress?

@dmitrygusev
Copy link
Member Author

@pete6 I don't know, I haven't discussed this with Vladimir Romanov since that time.

@pete6
Copy link

pete6 commented Aug 22, 2011

You definitely should. Proving P=NP will make you McMillionares!!!!!

@dmitrygusev
Copy link
Member Author

Publication with the new version of this algorithm has been published today:

http://romvf.wordpress.com/2013/09/25/development-of-the-concept/

It is much simpler now (no more hyperstructures) and the part that caused this issue is now absent.

This issue will remain open, because it still applied to the previous publication.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants