NL-полнота — различия между версиями
Ulyantsev (обсуждение | вклад) |
Assaron (обсуждение | вклад) (→Определение) |
||
Строка 2: | Строка 2: | ||
===Определение=== | ===Определение=== | ||
+ | Язык <tex dpi="100">A</tex> является <tex dpi="100">NL</tex>-полным ('''NLC'''), если он принадлежит классу <tex dpi="100">NL</tex> и любой другой язык <tex dpi="100">A'</tex> из <tex dpi="100">NL</tex> можно [[сведение по Карпу|свести по Карпу]] к <tex dpi="100">A</tex>, притом сведение будет использовать логарифмическое количество памяти. | ||
Язык <tex>A</tex> является <tex>NL</tex>-полным ('''NLC'''), если он принадлежит классу <tex>NL</tex> и любой другой язык <tex>A'</tex> из <tex>NL</tex> можно [[сведение по Карпу|свести по Карпу]] к <tex>A</tex>, притом сведение будет использовать логарифмическое количество памяти. | Язык <tex>A</tex> является <tex>NL</tex>-полным ('''NLC'''), если он принадлежит классу <tex>NL</tex> и любой другой язык <tex>A'</tex> из <tex>NL</tex> можно [[сведение по Карпу|свести по Карпу]] к <tex>A</tex>, притом сведение будет использовать логарифмическое количество памяти. |
Версия 18:40, 8 апреля 2010
В классе NL выделяют подкласс полных в этом классе задач.
Определение
Язык свести по Карпу к , притом сведение будет использовать логарифмическое количество памяти.
является -полным (NLC), если он принадлежит классу и любой другой язык из можноЯзык свести по Карпу к , притом сведение будет использовать логарифмическое количество памяти.
является -полным (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.
Тонкость состоит в том, что мы не можем сохранить