User:Creidieki/NL rewrite

In computational complexity theory, NL is a complexity class -- a group of all decision problems which can be solved with a certain amount of a certain resource. Intuitively, NL describes all problems of at most a certain difficulty. NL contains all problems which can be solved using a logarithmic amount of memory space, on a machine model called a nondeterministic Turing machine. The class NL contains comparatively "easy" or "tractable" problems, and is no more powerful than

NL is the smallest useful complexity class involving nondeterminstic space, and seems to exhibit several properties which the larger classes do not (see "Other classes using nondeterministic logspace", below).

Important results in complexity theory and algorithms allow us to relate this complexity class with other classes, telling us about the relative power of the resources involved, and allow us to study which problems can be solved with this resource. Unfortunately, like much of complexity theory, many important questions about NL are still open (see Open problems in computational complexity theory).

Definition of NL
NL is a class of decision problems, containing problems which have only a yes-or-no answer. Each problem in NL

Nondeterminism
Nondeterminstic Turing machines are allowed to "branch out" at each step of the computation, accepting an input whenever any possible path accepts. They are essentially allowed to perform "guess-and-check": if any of the machine's guesses work, the machine accepts.

Logarithmic space
Logarithmic space is enough

Important problems in NL
The "hardest" or "most expressive" problems in any complexity class are the problems which are complete for that class. Intuitively, if we have a machine which quickly solves a complete problem, we can use this to quickly solve any other problem in the class. These problems characterize the power and expressiveness of the complexity class.

Several problems are known to be NL-complete, including ST-Connectivity and 2-Satisfiability. ST-Connectivity is a problem where we are given a directed graph and two nodes $$S$$ and $$T$$ of the graph, and are asked to determine whether there is a path from node S to node T.

Other classes using nondeterministic logspace
NL is one of many complexity classes involving the resource of nondeterministic space. It is the smallest robust complexity class involving this resource, meaning that

There is a hierarchy of classes which allow a larger amount of the same resource. If we allow a polynomial amount of nondeterministic space, we have the class NPSPACE; allowing exponential amounts of nondeterministic space gives us the class NEXPSPACE. In these larger classes, the branching allowed by nondeterminism does not provide any advantage; it is known that these classes are equal to their deterministic counterparts, PSPACE and EXPSPACE (see Proof that PSPACE equals NPSPACE).