SNP may refer to:
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 NP complexity class, as 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.