稀疏語言

在计算复杂性理论里面, 稀疏语言是一种形式语言 (一堆字串的集合字串)，并且这语言内长度为n的字串个数，被一个n的多项式所限制住。 这种语言主要被用来研究NP这类语言与其他种类语言的关系。包含所有稀疏语言的复杂度类被称作SPARSE。
稀疏语言会被叫做稀疏的原因是因为，对任何语言，长度为n的字串可能性个数总共有2ⁿ个，而如果某特定语言只有包含这一些字串里面的多项式个数个，那这语言所包含字串的比例会随着n的成长很快的减少。 所有一元语言都是稀疏语言。一个稀疏语言比较不单纯的例子是，某个语言包含所有恰有k个1(k是某个常数)的二进制字串，; 对任何长度n, 这个语言仅包含个字串, 而这个数字则被nᵏ给限制住。

与其他语言的关系

SPARSE包含了TALLY(包含所有一元语言的复杂度类)，因为TALLY里面每一种长度的字串至多只有一个。虽然并非所有的P/poly语言都是稀疏语言，但对任何在P/poly里面的语言均存在一个将之转换为稀疏语言的多项式时间变换。 在1979年，Fortune 证明若任何稀疏语言是co-NP-完全，则P = NP； Mahaney在1982年利用这个证明了如果任何稀疏语言是NP-完全, 则 P = NP (这就是Mahaney's theorem). 在1991年， Ogihara和Osamu提出一个基于left-sets的比较简单的证明。 EXPTIME ≠ NEXPTIME 当且仅当存在任何属于NP的稀疏语言不属于P。 在1999年，基于之前Ogihara的证明，Jin-Yi Cai和D. Sivakumar证明出若存在任何稀疏语言是P-完全 问题，则L = P.