Классы L, NL, coNL

Материал из Викиконспекты
Перейти к: навигация, поиск
Определение:
Класс [math]\mathrm{L}[/math] — множество языков, разрешимых на детерминированной машине Тьюринга с использованием [math]O(\log n)[/math] дополнительной памяти для входа длиной [math]n[/math]. [math]\mathrm{L} = \mathrm{DSPACE}(\log n)[/math].


Определение:
Класс [math]\mathrm{NL}[/math] — множество языков, разрешимых на недетерминированной машине Тьюринга с использованием [math]O(\log n)[/math] дополнительной памяти для входа длиной [math]n[/math]. [math]\mathrm{NL} = \mathrm{NSPACE}(\log n)[/math].


Определение:
Класс [math]\mathrm{coNL}[/math] — множество языков, дополнение до которых принадлежит [math]\mathrm{NL}[/math].
[math]\mathrm{coNL} = \{L\bigm| \overline{L} \in \mathrm{NL}\}[/math].


Теорема:
[math]\mathrm{L} \subseteq \mathrm{NL} \subseteq \mathrm{NP}.[/math]
Доказательство:
[math]\triangleright[/math]
  1. Детерминированная машина Тьюринга есть частный случай недетерминированной, поэтому [math]\mathrm{L} \subseteq \mathrm{NL}[/math].
  2. Число конфигураций машины, использующей [math]O(\log n)[/math] памяти не превышает [math]2^{O(\log n)} = n^{O(1)} = poly(n)[/math], а, следовательно, если машина завершает свою работу, то она это делает за [math]O(poly(n))[/math] времени. Следовательно, [math]\mathrm{NL} \subseteq \mathrm{NP}.[/math]
[math]\triangleleft[/math]