In computational complexity theory, SNP (from Strict NP) is a complexity class containing a limited subset of NP based on its logical characterization in terms of graph-theoretical properties. It forms the basis for the definition of the class MaxSNP of optimization problems.
One characterization of the complexity class NP, shown by Ronald Fagin in 1974 and related to Fagin's theorem, is that it is the set of problems that can be reduced to properties of graphs expressible in existential second-order logic. This logic allows universal (∀) and existential (∃) quantification over vertices, but only existential quantification over sets of vertices and relations between vertices. SNP retains existential quantification over sets and relations, but only permits universal quantification over vertices.
SNP contains k-SAT, the boolean satisfiability problem (SAT) where the formula is restricted to conjunctive normal form and to at most k literals per clause, where k is fixed.
Suppose there is a problem in SNP characterized by a formula of the form "∃A p(A)" where A is some set or relation and p is a first-order predicate that can use it. One can define a corresponding optimization problem: to find the relation or set that maximizes the number of tuples or elements, respectively, that satisfy the predicate p. The class of all such function problems is called MaxSNP0 and was defined by Christos Papadimitriou and Mihalis Yannakakis in their 1988 paper "Optimization, approximation, and complexity classes."
Papadimitriou and Yannakakis go on to complete this class by defining MaxSNP, the class of all problems with an L-reduction (linear reduction, not log-space reduction) to problems in MaxSNP0, and show that it has a natural complete problem: given an instance of 3CNFSAT (the boolean satisfiability problem with the formula in conjunctive normal form and at most 3 literals per clause), find an assignment satisfying as many clauses as possible.
There is a fixed-ratio approximation algorithm to solve any problem in MaxSNP. In fact, for every problem in APX, the class of all problems approximable to within some constant ratio, there is a PTAS reduction to it from some problem in MaxSNP; that is, the closure of MaxSNP under PTAS reductions is APX.