Классы L и NL
- Это статья о классах языков для детерминированной машины Тьюринга. Статья о unix-утилите называется nl.
Класс языков L — множество языков, разрешимых на детерминированной машине Тьюринга с использованием [math]\displaystyle{ O(\log(n)) }[/math] дополнительной памяти для входа длиной n.
Класс языков NL — множество языков, разрешимых на недетерминированной машине Тьюринга с использованием [math]\displaystyle{ O(\log(n)) }[/math] дополнительной памяти для входа длиной n.
Примеры:
- [math]\displaystyle{ \{0^k1^k : k \ge 0\} \in L }[/math]
- Пусть язык [math]\displaystyle{ PATH = \{(G, s, t) : G }[/math] — ориентированный граф в котором есть путь от s до t[math]\displaystyle{ \} }[/math], тогда [math]\displaystyle{ PATH \in NL }[/math]
NL-полные задачи
Преобразователь, требующий логарифмической памяти — машина Тьюринга с тремя лентами: входной, доступной только на чтение, выходной, доступной только на запись и рабочей лентой, на которой может использоваться не более O(log(n)) ячеек.
Функция, вычисляемая таким преобразователем называется функцией, вычисляемой с логарифмической памятью.
Задача A логарифмически по памяти сводится к задаче B, если есть логарифмическая по памяти функция, при помощи которой задача А сводится к задаче В. Обозначается [math]\displaystyle{ A \le_L B }[/math]
Язык называется NL-полным если он принадлежит NL и любой язык из NL сводится к нему логарифмически по памяти.
Теорема:
- [math]\displaystyle{ (A \le_L B) \land (B \in L) \Rightarrow A \in L }[/math]
Следствие:
- Если NL-полный язык принадлежит L, то L = NL
Утверждение:
- PATH — NL-полная задача.
Следствие:
- [math]\displaystyle{ NL \subseteq P }[/math].
Теорема Иммермана
Класс coNL — языки, дополнения до которых лежат в NL.
Теорема Иммермана:
- NL = coNL
Литература
- Michael Sipser: «Introduction to the Theory of Computation»