I remember with pleasure and some surprise the two weeks that my high-school maths teacher took out of teaching advanced algebra to introduce us to the kind of logical puzzle where, for instance, you may be given: three last names, say Smith, Jones and Doe; three houses, painted white, red and blue respectively; and three first names, Alice, Barbara and Carol. You are told a carefully rationed set of facts — such as Alice had a quarrel with Mrs Smith and Carol admired her friend's blue house — and asked to connect first and last names and house colours. It turns out (although it is not part of high-school maths even today) that these are all special cases of one of the classic problems of computer science, the ‘K -SAT’ problem. This is a good example of the type of problem where the computer time required to arrive at a solution may explode exponentially with the number of variables, or the number of propositions one is asked to analyse. On page 133 of this issue, Monasson et al.1 present a new analysis of the K -SAT problem that throws light on when and why such computing tasks become prohibitive.
The K -SAT problem was the first to be assigned to the class of NP (nondeterministic polynomial time)-complete problems — those for which a potential solution can be verified in a reasonable amount of computer time; but the problem can cost exponential time to solve in the worst case. Thousands of computational problems from many different fields can be shown to be instances of the K- SAT problem. In fact, K- SAT problems are often used to benchmark the performance of search algorithms. These problems can always be put in a canonical form. There are usually N logical variables that may be given the values ‘true’ and ‘false’, and a set of M clauses, which are ‘or’ statements about the N variables. If the problem is pure K -SAT then these clauses connect K of the variables. For instance, in my little example above, the fact that there are three names translates into a three-‘or’ statement that the name can be Alice or Barbara or Carol. Then for the pure K -SAT problem one asks that the logical sum of all the clauses be true. Monasson et al.1 also consider the problem of determining the minimum number of clauses that need to be falsified — crossed out — to make the sum of the clauses true.
This is a preview of subscription content, access via your institution