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

Материал из Викиконспекты
Перейти к: навигация, поиск

Формулировка

Теорема о емкостной иерархии утверждает, что для любых двух конструируемых по памяти функций f и g таких, что limnf(n)/g(n)=0, выполняется DSPACE(g(n)) ≠ DSPACE(f(n)).

Доказательство

Зафиксируем функции f и g.

Рассмотрим язык L={m,xm(m,x) не допускает, используя не более f(|m,x|) памяти } и докажем, что LDSPACE(f) и LDSPACE(g).

Допустим, что LDSPACE(f), тогда существует детерминированная машина Тьюринга m0 такая, что L(m0)=L.

Рассмотрим выход машины m0 на входе m0,x.

Пусть m0 допускает m0,x. Тогда m0,xL, но в L по определению не может быть пары m,x, которую допускает m. Таким образом, m0 не может допускать m0,x.

Если m0 не допускает m0,x, то m0,x не принадлежит языку L. Из определения это значит, что либо m0 допускает m0,x, либо не допускает, используя памяти больше f(|m0,x|). Но m0 выбрана таким образом, что на любом входе x она использует не более f(|x|) памяти. Получаем противоречие.

Следовательно, такой машины не существует. Таким образом, LDSPACE(f).

LDSPACE(g), так как языку L можно сопоставить машину Тьюринга m0, распознающую L и такую, что на любом входе m1,xL m0 будет работать аналогично m1. Если m1 завершила работу, используя не более f(|m1,x|) памяти, и не допустила, то m0 допускает m1,x. В другом случае не допускает. Любая такая машина использует памяти не более f(|m1,x|). По условию теоремы limnf(n)/g(n)=0, поэтому начиная с некоторого n, m1 будет использовать памяти не более g(|m1,x|).

Таким образом получили, что LDSPACE(g(n))DSPACE(f(n)). Следовательно, DSPACE(g(n))DSPACE(f(n)), что и требовалось доказать.