Теорема Сэвича. Совпадение классов NPS и PS — различия между версиями
Leugenea (обсуждение | вклад) м (→Определение) |
|||
Строка 3: | Строка 3: | ||
== Определение == | == Определение == | ||
{{Определение | {{Определение | ||
− | |definition='''Класс''' <tex>PS(PSPACE)</tex> {{---}} класс языков, разрешимых на детерминированной машине Тьюринга с использованием памяти полиномиального размера. | + | |definition='''Класс''' <tex>\mathrm{PS(PSPACE)}</tex> {{---}} класс языков, разрешимых на детерминированной машине Тьюринга с использованием памяти полиномиального размера. <br> |
− | <tex>PS=\bigcup\limits_{p(n) \in P} DSPACE(p(n))</tex> | + | <tex>\mathrm{PS}=\bigcup\limits_{p(n) \in \mathrm{P}} \mathrm{DSPACE(p(n))} </tex> |
}} | }} | ||
{{Определение | {{Определение | ||
− | |definition='''Класс''' <tex>NPS(NPSPACE)</tex> {{---}} класс языков, разрешимых на недетерминированной машине Тьюринга с использованием памяти полиномиального размера. | + | |definition='''Класс''' <tex>\mathrm{NPS(NPSPACE)}</tex> {{---}} класс языков, разрешимых на недетерминированной машине Тьюринга с использованием памяти полиномиального размера. <br> |
− | <tex>NPS=\bigcup\limits_{p(n) \in P} NSPACE(p(n))</tex> | + | <tex>\mathrm{NPS}=\bigcup\limits_{p(n) \in \mathrm{P}} \mathrm{NSPACE(p(n))}</tex> |
}} | }} | ||
− | == Связь класса | + | == Связь класса PS с другими классами теории сложности == |
{{Теорема | {{Теорема | ||
|statement = | |statement = | ||
− | <tex>P \subseteq PS</tex>. | + | <tex>\mathrm{P} \subseteq \mathrm{PS}</tex>. |
− | |proof = Рассмотрим любой язык <tex>L</tex> из <tex>P</tex>. Так как <tex>L \in P</tex>, то существует машина Тьюринга <tex>m</tex>, распознающая <tex>L</tex> за полиномиальное время. Это значит, что <tex>m</tex> не успеет использовать память, размер которой превосходит полиномиальное значение. Тогда любой язык из <tex>P</tex> принадлежит <tex>PS</tex>. | + | |proof = Рассмотрим любой язык <tex>L</tex> из <tex>\mathrm{P}</tex>. Так как <tex>L \in \mathrm{P}</tex>, то существует машина Тьюринга <tex>m</tex>, распознающая <tex>L</tex> за полиномиальное время. Это значит, что <tex>m</tex> не успеет использовать память, размер которой превосходит полиномиальное значение. Тогда любой язык из <tex>\mathrm{P}</tex> принадлежит <tex>\mathrm{PS}</tex>. |
}} | }} | ||
{{Теорема | {{Теорема | ||
|statement = | |statement = | ||
− | <tex>NP \subseteq PS</tex>. | + | <tex>\mathrm{NP} \subseteq \mathrm{PS}</tex>. |
− | |proof = Рассмотрим любой язык <tex>L</tex> из <tex>NP</tex>. Так как <tex>L \in NP</tex>, то существует программа-верификатор <tex>R(x,y)</tex>, что для каждого слова из <tex>L</tex> (и только для них) существует сертификат <tex>y</tex> полиномиальной длины, такой, что <tex>R</tex> допускает слово и сертификат. Тогда, чтобы проверить принадлежность слова языку, мы можем перебрать все сертификаты полиномиальной длины, а для этого необходим полиномиальный размер памяти. Тогда любой язык из <tex>NP</tex> принадлежит <tex>PS</tex>. | + | |proof = Рассмотрим любой язык <tex>L</tex> из <tex>\mathrm{NP}</tex>. Так как <tex>L \in \mathrm{NP}</tex>, то существует программа-верификатор <tex>R(x,y)</tex>, что для каждого слова из <tex>L</tex> (и только для них) существует сертификат <tex>y</tex> полиномиальной длины, такой, что <tex>R</tex> допускает слово и сертификат. Тогда, чтобы проверить принадлежность слова языку, мы можем перебрать все сертификаты полиномиальной длины, а для этого необходим полиномиальный размер памяти. Тогда любой язык из <tex>\mathrm{NP}</tex> принадлежит <tex>\mathrm{PS}</tex>. |
}} | }} | ||
Строка 29: | Строка 29: | ||
{{Теорема | {{Теорема | ||
|statement = | |statement = | ||
− | Для любой <tex>f(n) \ge \log n </tex> справедливо: <tex>NSPACE(f(n)) \subseteq DSPACE(f(n)^2)</tex>. <br> | + | Для любой <tex>f(n) \ge \log n </tex> справедливо: <tex>\mathrm{NSPACE}(f(n)) \subseteq \mathrm{DSPACE}(f(n)^2)</tex>. <br> |
То есть, если недетерминированная машина Тьюринга может решить проблему используя <tex>f(n)</tex> памяти, то существует детерминированная машина Тьюринга, которая решает эту же проблему, используя не больше, чем <tex>f(n)^2</tex> памяти. | То есть, если недетерминированная машина Тьюринга может решить проблему используя <tex>f(n)</tex> памяти, то существует детерминированная машина Тьюринга, которая решает эту же проблему, используя не больше, чем <tex>f(n)^2</tex> памяти. | ||
Строка 36: | Строка 36: | ||
Так как <tex>f(n) \ge \log n </tex>, то размер конфигурации составит <tex>O(f(n))</tex>. | Так как <tex>f(n) \ge \log n </tex>, то размер конфигурации составит <tex>O(f(n))</tex>. | ||
− | Пусть <tex>L \in NSPACE(f(n))</tex>. Тогда существует недетерминированная машина Тьюринга, распознающая этот язык.<br> | + | Пусть <tex>L \in \mathrm{NSPACE(f(n))}</tex>. Тогда существует недетерминированная машина Тьюринга, распознающая этот язык.<br> |
Рассмотрим функцию <tex>Reach(I, J, k)</tex>, вычисляющую возможность перехода из конфигурации <tex>I</tex> в конфигурацию <tex>J</tex> за максимум <tex>2^k</tex> переходов: | Рассмотрим функцию <tex>Reach(I, J, k)</tex>, вычисляющую возможность перехода из конфигурации <tex>I</tex> в конфигурацию <tex>J</tex> за максимум <tex>2^k</tex> переходов: | ||
Строка 65: | Строка 65: | ||
==Следствие== | ==Следствие== | ||
− | <tex>PS=NPS</tex> | + | <tex>\mathrm{PS}=\mathrm{NPS}</tex> |
=Вывод= | =Вывод= | ||
− | <tex>L \subseteq P \subseteq NP \subseteq PS = NPS</tex>. | + | <tex>\mathrm{L} \subseteq \mathrm{P} \subseteq \mathrm{NP} \subseteq \mathrm{PS} = \mathrm{NPS}</tex>. |
− | Известно, что <tex>L \neq PS </tex>. Так что хотя бы одно из рассмотренных включений {{---}} строгое, но неизвестно, какое. Принято считать, что все приведенные выше включения {{---}} строгие. | + | Известно, что <tex>\mathrm{L} \neq \mathrm{PS} </tex>. Так что хотя бы одно из рассмотренных включений {{---}} строгое, но неизвестно, какое. Принято считать, что все приведенные выше включения {{---}} строгие. |
=Источники= | =Источники= | ||
* Michael Sipser. Introduction to the theory of computation. | * Michael Sipser. Introduction to the theory of computation. |
Версия 20:00, 13 мая 2012
Содержание
Класс PS
Определение
Определение: |
Класс | — класс языков, разрешимых на детерминированной машине Тьюринга с использованием памяти полиномиального размера.
Определение: |
Класс | — класс языков, разрешимых на недетерминированной машине Тьюринга с использованием памяти полиномиального размера.
Связь класса PS с другими классами теории сложности
Теорема: |
. |
Доказательство: |
Рассмотрим любой язык | из . Так как , то существует машина Тьюринга , распознающая за полиномиальное время. Это значит, что не успеет использовать память, размер которой превосходит полиномиальное значение. Тогда любой язык из принадлежит .
Теорема: |
. |
Доказательство: |
Рассмотрим любой язык | из . Так как , то существует программа-верификатор , что для каждого слова из (и только для них) существует сертификат полиномиальной длины, такой, что допускает слово и сертификат. Тогда, чтобы проверить принадлежность слова языку, мы можем перебрать все сертификаты полиномиальной длины, а для этого необходим полиномиальный размер памяти. Тогда любой язык из принадлежит .
Теорема Сэвича
Теорема: |
Для любой справедливо: . То есть, если недетерминированная машина Тьюринга может решить проблему используя памяти, то существует детерминированная машина Тьюринга, которая решает эту же проблему, используя не больше, чем памяти. |
Доказательство: |
Рассмотрим машину Тьюринга с входной и рабочей лентой. Ее конфигурацию можно закодировать так: закодировать позицию и содержание рабочей ленты (займет памяти), позицию входной ленты (займет памяти). Так как , то размер конфигурации составит .Пусть Reach (I, J, k)
if (k = 0)
return (I
J) or (I = J);
else
for (Y) // перебор промежуточных конфигураций
if Reach(I, Y, k-1) and Reach(Y, J, k-1)
return true;
return false;
Эта функция имеет глубину рекурсии , на каждом уровне рекурсии использует памяти для хранения текущих конфигураций. Тогда всего функция использует памяти.Рассмотрим машину Тьюринга , распознающую язык . Эта машина может иметь конфигураций. Объясняется это следующим образом. Пусть имеет состояний и символов ленточного алфавита. Количество различных строчек, которые могут появиться на рабочей ленте . Головка на входной ленте может быть в одной из n позиций и в одной из на рабочей ленте. Таким образом, общее количество всех возможных конфигураций не превышает .Рассмотрим функцию, которая по заданному слову проверяет его принадлежность к языку : Check (x, L)
for (T) // перебор конфигураций, которые содержат допускающие состояния
if Reach(S, T,
)
return true;
return false;
Если слово принадлежит языку, то оно будет допущено, так как будут рассмотрены все возможные пути допуска. Это обеспечивается указанной нам глубиной рекурсии для функции В итоге функция . И если слово не допускается за шагов (количество всех возможных конфигураций), то оно уже гарантированно не может быть допущено. имеет глубину рекурсии , на каждом уровне рекурсии используется памяти. Тогда всего эта функция использует памяти. |
Следствие
Вывод
.
Известно, что
. Так что хотя бы одно из рассмотренных включений — строгое, но неизвестно, какое. Принято считать, что все приведенные выше включения — строгие.
Источники
- Michael Sipser. Introduction to the theory of computation.