- L (complexity)
-
In computational complexity theory, L (also known as LSPACE) is the complexity class containing decision problems which can be solved by a deterministic Turing machine using a logarithmic amount of memory space. Logarithmic space is sufficient to hold a constant number of pointers into the input and a logarithmic number of boolean flags and many basic logspace algorithms use the memory in this way.
L is a subclass of NL, which is the class of languages decidable in logarithmic space on a nondeterministic Turing machine. Using the construction of Savitch's theorem, one can see that NL is contained in the complexity class P of problems solvable in deterministic polynomial time. Thus L ⊆ NL ⊆ P. The inclusion of L into P can also be proved more directly: a decider using O(log n) space cannot use more than 2O(log n) = nO(1) time, because this is the total number of possible configurations.
Every non-trivial problem in L is complete under log-space reductions so weaker reductions are required to identify meaningful notions of L-completeness. These include NC1-reductions and DLOGTIME-reductions.
Important open problems include whether L = P, and whether L = NL.
The related class of function problems is FL. FL is often used to define logspace reductions.
A breakthrough October 2004 paper[1] by Omer Reingold showed that USTCON, the problem of whether there exists a path between two vertices in a given undirected graph, is in L, establishing that L = SL, since USTCON is SL-complete.
One consequence of this is a simple logical characterization of L: it contains precisely those languages expressible in first-order logic with an added commutative transitive closure operator (in graph theoretical terms, this turns every connected component into a clique).
L is low for itself, because it can simulate log-space oracle queries (roughly speaking, "function calls which use log space") in log space, reusing the same space for each query.
Use outside of complexity world
The main idea of logspace is that you can mostly count things up to a polynomial number using logspace and remember pointers to position of the input.
The logspace class is therefore useful to model computation where the input is too big to fit in the RAM of a computer. Long DNA sequences and databases are good examples of problems where only a constant part of the input will be in RAM at a given time and where we have pointers to compute the next part of the input to inspect, thus using only logarithmic memory.
References
- ^ Undirected ST-connectivity in Log-Space. Omer Reingold. Electronic Colloquium on Computational Complexity. No. 94.
- Christos Papadimitriou (1993). Computational Complexity (1st edition ed.). Addison Wesley. ISBN 0-201-53082-1. Chapter 16: Logarithmic space, pp.395–408.
- Michael Sipser (1997). Introduction to the Theory of Computation. PWS Publishing. ISBN 0-534-94728-X. Section 8.4: The Classes L and NL, pp.294–296.
- Michael R. Garey and David S. Johnson (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman. ISBN 0-7167-1045-5. Section 7.5: Logarithmic Space, pp.177–181.
See also
- L/poly, a nonuniform variant of L that captures the complexity of polynomial-size branching programs
Important complexity classes (more) Classes considered feasible Classes suspected to be infeasible UP • NP (NP-complete · NP-hard · co-NP · co-NP-complete) • AM • PH • PP • #P (#P-complete) • IP • PSPACE (PSPACE-complete)Classes considered infeasible Class hierarchies Families of complexity classes Categories:- Complexity classes
- Closure operators
Wikimedia Foundation. 2010.