News for hackers. Stuff that matters.
Re:Kissat SAT Solver by PaulHoule on Thursday July 30, 2020 @02:47PM (#24001603)
SAT is the prototypical NP-complete problem.
Re:Kissat SAT Solver by agency on Thursday July 30, 2020 @06:57PM (#24003731)
And indeed I think the reduction of NP problems to SAT is pretty intuitively understandable, at least at a hand-wavy level. If a decision problem is in NP, then given some candidate solution to the problem we can verify it in polynomial time. If you imagine a computer implementing this decision algorithm, and you squint your eyes, you can imagine it as a huge boolean satisfiability problem. The program takes some input (as bits aka boolean variables) and the program is run in the circuitry of the computer which at the bottom is effectively doing boolean algebra with logic gates and such. And so if you can solve SAT in polynomial time, then you can run it on this instance of SAT (the instantiation of the verifier for this NP problem) and find out if there's any input to that NP problem that satisfies it. Obviously there's a lot more work to make it formal.
Re:Kissat SAT Solver by maweki on Thursday July 30, 2020 @06:57PM (#24003737)
While it is true, if you follow current research, most people in the field seem to be on a great hunt for hard SAT instances where no known heuristic really helps. As of yet this hunt has not been successful.
Re:Kissat SAT Solver by jlokier on Thursday July 30, 2020 @09:05PM (#24004609)
A hard SAT problem:

Let nonce be 32 boolean inputs, representing numbers from 0..2^32-1.

Let other_bits and difficulty be a collection of constant boolean inputs, in the following expression.

Let f(other_bits, nonce, diff) be the boolean logic circuit used in Bitcoin mining, for a recent candidate block.

Roughly speaking, f combines nonce with other_bits to make a bit string, performs SHA-256 on the bit string, then SHA-256 on that, and then checks if the leading diff number of bits are zero.

Folding in the constants, f reduces to a boolean logic circuit with 32 inputs and 1 output, g(nonce) = result.

The SAT problem: Does there exist a value of nonce for which g(nonce) = 1?

If you can solve this quickly, you just sped up Bitcoin mining by a factor 2^32 iterations, which is a lot. You can take this further as well.

I don't know of any SAT solver heuristic which really helps with this.

Re:Kissat SAT Solver by nightcracker on Thursday July 30, 2020 @09:23PM (#24004685)
This SAT instance is huge, which makes it hard. But you haven't shown that it is a harder SAT instance than a random one of its size.

It's all about the difficulty vs the size of the instance.

Re:Kissat SAT Solver by jlokier on Saturday August 01, 2020 @04:51PM (#24023809)
To the best of my knowledge, the example has no known heuristics for finding a solution that are significantly faster than brute force.

That puts it in the hardest class of instances for its size (subject to available knowledge), because all instances can be solved by brute force.

Re:Kissat SAT Solver by orlp on Sunday August 02, 2020 @12:25PM (#24029606)
A SAT solver might very well have optimizations that make it end up running in 2^200 on average instead of what brute force would give.

The problem is, since the instance is so large, we don't know what happens. No one has ever ran one to completion.

So no, it's not in the hardest class of instances for its size. Its difficulty is unknown.

Re:Kissat SAT Solver by new2628 on Friday July 31, 2020 @04:22AM (#24006774)
You can encode as moderately large (low hundreds of clauses/variables) SAT instances questions of Ramsey-theory and other unsolved combinatorics and those instances will not be solved by any heuristic.
Re:Kissat SAT Solver by tgflynn on Thursday July 30, 2020 @11:40PM (#24005418)
> As of yet this hunt has not been successful.

How current is your information ?

I think I've seen random instances in some of the more recent SAT competitions with only a few thousand variables that have not been solved. That said in theory there should be 100 variable instances that are too hard to solve but I haven't seen any really hard instances that small.

Re:Kissat SAT Solver by maweki on Friday July 31, 2020 @04:48AM (#24006897)
I was in Lissabon Last year at the SAT conference and that was my main takeway, though my field of research is only adjacent.

One paper was about creating random sat instances where the probability of unsat ist 50/50 and as it turned out: none of those instances was hard.

You can always craft hard instances to defeat a specific heuristic. But crafting one that is hard for all of them is the problem.