Изменения

Перейти к: навигация, поиск

Теорема о ёмкостной иерархии

2112 байт добавлено, 23:51, 31 января 2019
м
Дмитрий Мурзин переименовал страницу Теорема о емкостной иерархии в Теорема о ёмкостной иерархии: Ёфикация
== Формулировка ==
'''Теорема о емкостной иерархии''' утверждает, что для любых двух [[Конструируемая по памяти функция|конструируемых по памяти функций]] <mathtex>f</mathtex> и <mathtex>g</mathtex> таких, что <mathtex> \lim_lim \limits_{n \rightarrow \infty} f(n)/g(n) = 0</mathtex>, выполняется <math>'''DSPACE'''(''g''(''n'')) \&ne ; '''DSPACE'''(''f''(''n''))</math>.
== Доказательство ==
Зафиксируем функции <mathtex>f</mathtex> и <mathtex>g</mathtex>.
Рассмотрим язык <mathtex>L = \{ <\langle m,x> \rangle \mid m(<\langle m,x>\rangle )</mathtex> не допускает, используя не более <mathtex> f(<|\langle m,x\rangle|)</tex>) памяти <tex>\}</mathtex> и докажем, что <tex>L \notin DSPACE(f)</tex> и <tex>L \in DSPACE(g)</tex> .
Пусть Допустим, что <mathtex>L \in DSPACE(f)</mathtex>, тогда для него есть существует детерминированная машина тьюринга Тьюринга <tex>m_0</tex> такая, что <mathtex>L(m_0)=L</mathtex>.
Рассмотрим выход машины <mathtex>m_0(<m_0,x>)</mathtex>. на входе <mathtex>m_0</math> не может допускать <math><\langle m_0,x></math> в силу определения. Если бы она допускала, то <math><m_0,x> \in L</math>. Получили противоречие. Если <math>m_0</math> не допускает <math><m_0,x>rangle</mathtex>, то она допускает, используя больше памяти. Следовательно такой машины не существует.
Пусть <mathtex>m_0</tex> допускает <tex>\langle m_0,x\rangle</tex>. Тогда <tex>\langle m_0,x\rangle \in L</tex>, но в <tex>L </tex> по определению не может быть пары <tex>\langle m,x\in DSPACE(g)rangle</mathtex>, так как можно проэмулировать которую допускает <mathtex>m</mathtex>. Таким образом, <tex>m_0</tex> не может допускать <tex>\langle m_0,x\rangle</tex>.
ПолучаетсяЕсли <tex>m_0</tex> не допускает <tex>\langle m_0,x\rangle</tex>, то <tex>\langle m_0,x\rangle</tex> не принадлежит языку <tex>L</tex>. Из определения это значит, что либо <tex>m_0</tex> допускает <mathtex>L \in DSPACElangle m_0,x\rangle</tex>, либо не допускает, используя памяти больше <tex>f(g(n|\langle m_0,x\rangle|)) \ DSPACE(</tex>. Но <tex>m_0</tex> выбрана таким образом, что на любом входе <tex>x</tex> она использует не более <tex>f(n)|x|)</mathtex>памяти. Получаем противоречие.
Теорема доказанаСледовательно, такой машины не существует. Таким образом, <tex>L \notin DSPACE(f)</tex>. <tex>L \in DSPACE(g)</tex>, так как языку <tex>L</tex> можно сопоставить машину Тьюринга <tex>m_0</tex>, распознающую <tex>L</tex> и такую, что на любом входе <tex>\langle m_1,x\rangle \in L</tex> <tex>m_0</tex> будет работать аналогично <tex>m_1</tex>. Если <tex>m_1</tex> завершила работу, используя не более <tex>f(|\langle m_1,x\rangle|)</tex> памяти, и не допустила, то <tex>m_0</tex> допускает <tex>\langle m_1,x\rangle</tex>. В другом случае не допускает. Любая такая машина использует памяти не более <tex>f(|\langle m_1,x\rangle|)</tex>. По условию теоремы <tex>\lim \limits_{n \rightarrow \infty} f(n)/g(n) = 0</tex>, поэтому начиная с некоторого <tex>n</tex>, <tex>m_1</tex> будет использовать памяти не более <tex>g(|\langle m_1,x\rangle|)</tex>. Таким образом получили, что <tex>L \in DSPACE(g(n)) \setminus DSPACE(f(n))</tex>. Следовательно, <tex>DSPACE(g(n)) \neq DSPACE(f(n))</tex>, что и требовалось доказать.

Навигация