Классы L, NL, coNL. NL-полнота задачи о достижимости — различия между версиями
м |
м (→NL-полнота) |
||
Строка 31: | Строка 31: | ||
Докажем, что <tex>CONN \in \mathrm{NL}</tex>. | Докажем, что <tex>CONN \in \mathrm{NL}</tex>. | ||
− | Для доказательства необходимо предъявить алгоритм для недетерминированной машины Тьюринга, который использует конечное число переменных, каждая из которых занимает <tex> O(\log n) </tex> памяти, где <tex> n </tex> | + | Для доказательства необходимо предъявить алгоритм для недетерминированной машины Тьюринга, который использует конечное число переменных, каждая из которых занимает <tex> O(\log n) </tex> памяти, где <tex> n </tex> — размер входа для задачи и за время порядка <tex> O(poly(n)) </tex> решает эту задачу. |
Алгоритм | Алгоритм | ||
Строка 47: | Строка 47: | ||
Необходимо по данной задаче из <tex>\mathrm{NL}</tex> построить тройку <tex> \langle G, s, t \rangle </tex>, решение задачи <tex>CONN</tex> для которой будет эквивалентно решению данной задачи. | Необходимо по данной задаче из <tex>\mathrm{NL}</tex> построить тройку <tex> \langle G, s, t \rangle </tex>, решение задачи <tex>CONN</tex> для которой будет эквивалентно решению данной задачи. | ||
− | Любая машина Тьюринга, которая принимает некоторый язык <tex> | + | Любая машина Тьюринга, которая принимает некоторый язык <tex>L</tex> из <tex>\mathrm{NL}</tex>, использует не более чем логарифмическое количество ячеек на рабочей ленте, и таким образом возможных мгновенных описаний этой машины Тьюринга <tex> O(poly(n)) </tex>. Каждому возможному мгновенному описанию машины Тьюринга будет соответствовать некоторая вершина в <tex> G </tex>, а каждому переходу из этого описания в другое (которых в недетерминированной машине Тьюринга конечное число) {{---}} ребро в графе <tex> G </tex>. За вершину <tex> s </tex> принимается вершина, соответствующая начальному состоянию машины, а из каждой вершины, соответствующей некоторому допускающему состоянию, добавляется переход в выделенную вершину <tex> t </tex>. |
− | Очевидно, что для любого слова из языка <tex> | + | Очевидно, что для любого слова из языка <tex>L</tex>, то есть принимаемого данной машиной Тьюринга, будет существовать путь из <tex> s </tex> в <tex> t </tex> в построенном графе <tex> G </tex>. А если для некоторого слова не из <tex>L</tex> в <tex> G </tex> существует путь из <tex> s </tex> в <tex> t </tex>, то он соответствует некоторой корректной последовательности переходов в изначальной машине, таким образом слово должно было приниматься этой недетерминированной машиной. |
Такое построение графа <tex> G </tex> по данной машине Тьюринга можно выполнить с использованием конечного числа переменных, которые будут перебирать всевозможные мгновенные состояния машины (их <tex> O(poly(n)) </tex>, потому переменная, перебирающая его занимает <tex> O(\log n) </tex> памяти), переходы из него и проверка возможности перехода. | Такое построение графа <tex> G </tex> по данной машине Тьюринга можно выполнить с использованием конечного числа переменных, которые будут перебирать всевозможные мгновенные состояния машины (их <tex> O(poly(n)) </tex>, потому переменная, перебирающая его занимает <tex> O(\log n) </tex> памяти), переходы из него и проверка возможности перехода. |
Версия 13:03, 2 июня 2012
Определение: |
Класс | — множество языков, разрешимых на детерминированной машине Тьюринга с использованием дополнительной памяти для входа длиной .
Определение: |
Класс | — множество языков, разрешимых на недетерминированной машине Тьюринга с использованием дополнительной памяти для входа длиной .
Определение: |
Класс | — множество языков, дополнение до которых принадлежит .
Теорема: |
Доказательство: |
1. Детерминированная машина Тьюринга есть частный случай недетерминированной, поэтому 2. Число конфигураций машины, использующей . памяти не превышает , а, следовательно, машина завершает свою работу за времени. Следовательно, |
NL-полнота
Определение: |
Язык | называют -полным, если и .
Теорема: |
Задача существования пути между двумя заданными вершинами в данном графе NL-полна. |
Доказательство: |
Задача : в графе G путь из s в t .Докажем, что . Для доказательства необходимо предъявить алгоритм для недетерминированной машины Тьюринга, который использует конечное число переменных, каждая из которых занимает памяти, где — размер входа для задачи и за время порядка решает эту задачу.Алгоритм 1. Начиная с вершины недетерминированно переходим в одну из вершин, смежных с ней. (Очевидно, для этого необходимо конечное число переменных)2. Проверяем, правда ли, что текущая вершина совпадает с . Если это так, возвращает TRUE.3. Отдельно считаем количество пройденных вершин. Как только это число превышает количество вершин в графе, возвращаем FALSE, так как посетили некоторую вершину дважды. Таким образом в каждый момент алгоритму достаточно хранить текущую вершину, количество посещенных вершин, финальную вершину и некоторое число вспомогательных переменных, для совершения переходов. Все эти переменные принимают значения не более, чем максимальный номер вершины, то есть как раз занимают памяти.Теперь докажем, что любая задача из класса сводится к задаче с использованием не более чем логарифмической памяти.Необходимо по данной задаче из построить тройку , решение задачи для которой будет эквивалентно решению данной задачи.Любая машина Тьюринга, которая принимает некоторый язык из , использует не более чем логарифмическое количество ячеек на рабочей ленте, и таким образом возможных мгновенных описаний этой машины Тьюринга . Каждому возможному мгновенному описанию машины Тьюринга будет соответствовать некоторая вершина в , а каждому переходу из этого описания в другое (которых в недетерминированной машине Тьюринга конечное число) — ребро в графе . За вершину принимается вершина, соответствующая начальному состоянию машины, а из каждой вершины, соответствующей некоторому допускающему состоянию, добавляется переход в выделенную вершину .Очевидно, что для любого слова из языка Такое построение графа , то есть принимаемого данной машиной Тьюринга, будет существовать путь из в в построенном графе . А если для некоторого слова не из в существует путь из в , то он соответствует некоторой корректной последовательности переходов в изначальной машине, таким образом слово должно было приниматься этой недетерминированной машиной. по данной машине Тьюринга можно выполнить с использованием конечного числа переменных, которые будут перебирать всевозможные мгновенные состояния машины (их , потому переменная, перебирающая его занимает памяти), переходы из него и проверка возможности перехода. |
Теорема Иммермана
Теорема: | ||||||
Доказательство: | ||||||
Решим задачу : в графе G нет пути из s в t . Очевидно, что этот язык является дополнением языка . Чтобы показать, что , придумаем недетерминированый алгоритм, использующий памяти, который проверяет, достижима ли вершина из .Определим = { существует путь из в длиной }. Другими словами это множество всех вершин, достижимых из не более чем за шагов. Обозначим за . Если , где , то не существует путь из в в графе , то есть .
| ||||||