NL-полнота
Версия от 18:29, 8 апреля 2010; Ulyantsev (обсуждение | вклад)
В классе NL выделяют подкласс полных в этом классе задач.
Определение
Язык свести по Карпу к , притом сведение будет использовать логарифмическое количество памяти.
является -полным (NLC), если он принадлежит классу и любой другой язык из можноЯзык A является NL-полным (NLC), если он принадлежит классу NL и любой другой язык A' из NL можно свести по Карпу к A, притом сведение будет использовать логарифмическое количество памяти. То есть сведение не может сохранить входные данные, но может неограниченно писать на выходную ленту и читать со входной.
Теорема
Если в классе L существует такой язык , что он NL-полон, то NL = L.
Доказательство
Рассмотрим язык B
из класса NL. Для каждого слова x необходимо определять его принадлежность B используя лишь детерминированные выборы и O(log n) дополнительной памяти.Так как A NL-полон, то существует такая функция f
(использующая O(log n) дополнительной памяти), что .Используя логарифмическое количество памяти B сводится к языку A, который уже лежит в L.
Тонкость состоит в том, что мы не можем сохранить