Теорема о временной иерархии — различия между версиями
(→Доказательство) |
(→Доказательство) |
||
Строка 4: | Строка 4: | ||
Зафиксируем <math>f\,\!</math> и <math>g\,\!</math>. | Зафиксируем <math>f\,\!</math> и <math>g\,\!</math>. | ||
− | Рассмотрим язык < | + | Рассмотрим язык <tex>L = \{ \langle m,x \rangle \mid m( \langle m,x \rangle)</tex> не допускает, работая не более <tex> f(| \langle m,x \rangle |)\,\!</tex> времени <tex>\}\,\!</tex> . |
− | Пусть < | + | Пусть <tex>L \in DTIME(f)</tex>, тогда для него есть машина Тьюринга <tex>m_0\,\!</tex> такая, что <tex>L(m_0)=L\,\!</tex>. |
− | Рассмотрим < | + | Рассмотрим <tex>m_0( \langle m_0,x \rangle )\,\!</tex>. |
− | Пусть < | + | Пусть <tex>m_0\,\!</tex> допускает <tex> \langle m_0,x \rangle \,\!</tex>. Тогда <tex> \langle m_0,x \rangle \in L</tex>, в силу определения <tex>m_0\,\!</tex>. Но в <tex>L</tex> по определению не может быть пары <tex> \langle m_0,x \rangle \,\!</tex>, которую допускает <tex>m_0\,\!</tex>, так как <tex>m_0 \in DTIME(f)</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> допускает <tex> \langle m_0,x \rangle \,\!</tex>, либо не допускает, работая больше времени <tex>f(| \langle m_0,x \rangle |)\,\!</tex>. Но <tex>L \in DTIME(f)</tex>, поэтому <tex>m_0\,\!</tex> на любом входе <tex>x\,\!</tex> работает не более <tex>f(|x|)\,\!</tex> времени. Получаем противоречие. |
− | Следовательно такой машины не существует. Таким образом, < | + | Следовательно такой машины не существует. Таким образом, <tex>L \notin DTIME(f)</tex>. |
− | < | + | <tex>L \in DTIME(g)</tex>. Возьмеме такую машину Тьюринга <tex>m_1\,\!</tex>, которой дается на вход пара <math><m_2,x> \in L</math> и она симулирует нужное количество шагов машины <tex>m_2\,\!</tex> на входе <tex>x\,\!</tex>. Если <tex>m_2\,\!</tex> завершила работу и не допустила, то <tex>m_1\,\!</tex> допускает <tex><m_2,x>\,\!</tex>. В другом случае не допускает. <tex>m_1\,\!</tex> будет работать не более <tex>g(|<m_2,x>|)\,\!</tex> времени. |
− | Получается, что < | + | Получается, что <tex>L \in DTIME(g(n)) \setminus DTIME(f(n))</tex> и <tex>L \neq \empty</tex>. Следовательно, <tex>DTIME(g(n)) \neq DTIME(f(n))</tex> |
Теорема доказана. | Теорема доказана. |
Версия 17:46, 18 марта 2010
Формулировка
Теорема о временной иерархии утверждает, что для любых двух конструируемых по времени функций и таких, что , выполняется .
Доказательство
Зафиксируем
и .Рассмотрим язык
не допускает, работая не более времени .Пусть
, тогда для него есть машина Тьюринга такая, что .Рассмотрим
.Пусть
допускает . Тогда , в силу определения . Но в по определению не может быть пары , которую допускает , так как . Таким образом, получаем противоречие.Если
не допускает , то не принадлежит языку . Это значит, что либо допускает , либо не допускает, работая больше времени . Но , поэтому на любом входе работает не более времени. Получаем противоречие.Следовательно такой машины не существует. Таким образом,
.. Возьмеме такую машину Тьюринга , которой дается на вход пара и она симулирует нужное количество шагов машины на входе . Если завершила работу и не допустила, то допускает . В другом случае не допускает. будет работать не более времени.
Получается, что и . Следовательно,
Теорема доказана.