In
computational complexity theory
In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and explores the relationships between these classifications. A computational problem ...
, a sparse language is a
formal language
In logic, mathematics, computer science, and linguistics, a formal language is a set of strings whose symbols are taken from a set called "alphabet".
The alphabet of a formal language consists of symbols that concatenate into strings (also c ...
(a set of
strings) such that the
complexity function, counting the number of strings of length ''n'' in the language, is bounded by a
polynomial
In mathematics, a polynomial is a Expression (mathematics), mathematical expression consisting of indeterminate (variable), indeterminates (also called variable (mathematics), variables) and coefficients, that involves only the operations of addit ...
function of ''n''. They are used primarily in the study of the relationship of the complexity class
NP with other classes. The
complexity class
In computational complexity theory, a complexity class is a set (mathematics), set of computational problems "of related resource-based computational complexity, complexity". The two most commonly analyzed resources are time complexity, time and s ...
of all sparse languages is called SPARSE.
Sparse languages are called ''sparse'' because there are a total of 2
''n'' strings of length ''n'', and if a language only contains polynomially many of these, then the proportion of strings of length ''n'' that it contains rapidly goes to zero as ''n'' grows. All
unary languages are sparse. An example of a nontrivial sparse language is the set of binary strings containing exactly ''k'' 1 bits for some fixed ''k''; for each ''n'', there are only
strings in the language, which is bounded by ''n''
''k''.
Relationships to other complexity classes
* SPARSE contains TALLY, the class of
unary languages, since these have at most one string of any one length.
* Although not all languages in
P/poly are sparse, there is a
polynomial-time Turing reduction from any language in P/poly to a sparse language.
* Fortune showed in 1979 that if any sparse language is
co-NP-complete, then
P = NP. Mahaney used this to show in 1982 that if any sparse language is
NP-complete, then P = NP (this is
Mahaney's theorem). A simpler proof of this based on left-sets was given by Ogihara and Watanabe in 1991. Mahaney's argument does not actually require the sparse language to be in NP (because the existence of an NP-hard sparse set implies the existence of an NP-complete sparse set), so there is a sparse
NP-hard set if and only if P = NP.
* Further,
E ≠
NE if and only if there exist sparse languages in NP that are not in P.
* There is a
Turing reduction
In computability theory, a Turing reduction from a decision problem A to a decision problem B is an oracle machine that decides problem A given an oracle for B (Rogers 1967, Soare 1987) in finitely many steps. It can be understood as an algorithm ...
(as opposed to the
Karp reduction from Mahaney's theorem) from an NP-complete language to a sparse language if and only if
.
* In 1999, Jin-Yi Cai and D. Sivakumar, building on work by Ogihara, showed that if there exists a sparse
P-complete problem, then
L =
P.
[Jin-Yi Cai and D. Sivakumar. Sparse hard sets for P: resolution of a conjecture of Hartmanis. ''Journal of Computer and System Sciences'', volume 58, issue 2, pp.280–296. 1999. ]
At Citeseer
/ref>
References
External links
* Lance Fortnow
Lance Jeremy Fortnow (born August 15, 1963) is a computer scientist known for major results in Computational complexity theory, computational complexity and interactive proof systems. Since 2019, he has been at the Illinois Institute of Technology ...
Favorite Theorems: Small Sets
April 18, 2006.
* William Gasarch
Sparse Sets (Tribute to Mahaney)
June 29, 2007.
* {{CZoo, SPARSE, S#sparse
Formal languages
Computational complexity theory