Jump to content

Locally testable code

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Ylloh (talk | contribs) at 14:59, 13 October 2010 (added link to locally decodable codes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In theoretical computer science, a locally testable code is an error correcting code for which membership can be tested by a non-adaptive property testing algorithm. That is, locally testable codes have an efficient probabilistic algorithm that, based on its random bits, non-adaptively looks at few (e.g. a constant number of) positions of the message and can then determine with high probability whether the message is close to a codeword.

Locally testable codes have applications in average-case complexity and the design of probabilistically checkable proofs.

The related locally decodable codes are locally testable codes, which in addition allow to decode single bits of the string encoded by the codeword by only looking at few positions of the codeword.

Definition

A family of error-correcting codes Cn ⊆ {0, 1}n is locally testable with soundness s(δ) (where s(δ) < 1 for every δ > 0), and query complexity q(n) if there exists a non-adaptive oracle algorithm T (the tester) that on input 1n and given oracle access to a string y ∈ {0, 1}n satisfies the following:

  • Completeness: If y ∈ C, then Ty(1n) accepts with probability 1.
  • Soundness: If the Hamming distance between y and C is δn, then Ty(1n) accepts with probability at most s(δ).

In theoretical computer science, one is typically interested in locally testable codes whose query complexity is constant or at most logarithmic.

Examples

An example of a locally testable code is the Hadamard code. The Hadamard code is testable with 3 queries and soundness 1 - δ.