Теоремы о временной и ёмкостной иерархиях — различия между версиями
DrozdovVA (обсуждение | вклад) |
DrozdovVA (обсуждение | вклад) |
||
Строка 6: | Строка 6: | ||
<!--Понятно, что <tex>DSPACE(f(n)) \subseteq DSPACE(g(n))</tex>, поскольку программа, ограниченная по памяти функцией <tex>f</tex>, проходит ограничение <tex>g</tex>.<br /> --> | <!--Понятно, что <tex>DSPACE(f(n)) \subseteq DSPACE(g(n))</tex>, поскольку программа, ограниченная по памяти функцией <tex>f</tex>, проходит ограничение <tex>g</tex>.<br /> --> | ||
Для доказательства воспользуемся диагональным методом. | Для доказательства воспользуемся диагональным методом. | ||
− | <ref>Суть данного метода для набора множеств <tex>\{A_x\}</tex> заключается в построении нового множества <tex>B</tex> по принципу: <tex>x \in B \Leftrightarrow x \notin A_x</tex> | + | <ref>Суть данного метода для набора множеств <tex>\{A_x\}</tex> заключается в построении нового множества <tex>B</tex> по принципу: <tex>x \in B \Leftrightarrow x \notin A_x</tex> (в таком случае <tex>A_x \neq B</tex> для любого <tex>x</tex>). Аналогичный прием можно применять для набора функций <tex>\{f_i\}</tex> путем построения новой функции <tex>f':f'(x) \neq f_x(x)</tex>. Элементы <tex>f_x(x)</tex> иногда называют диагональными, поскольку находятся на диагонали таблицы «функция — аргумент». |
<br/> | <br/> | ||
{| class="wikitable" align="centre" | {| class="wikitable" align="centre" | ||
Строка 30: | Строка 30: | ||
|about=о временной иерархии | |about=о временной иерархии | ||
|id=time | |id=time | ||
− | |statement=Пусть даны две функции <tex>f</tex> и <tex>g</tex> такие, | + | |statement=Пусть даны две функции <tex>f</tex> и <tex>g</tex> такие, что <tex>\lim \limits_{n\rightarrow\infty} \frac{Sim(f(n))}{g(n)}=0</tex>, где <tex>Sim(n)</tex> — время симуляции <tex>n</tex> шагов одной машины Тьюринга на другой машине. Тогда <tex>DTIME(f(n)) \neq DTIME(g(n))</tex>. |
|proof=Доказательство аналогично доказательству [[Теоремы о временной и емкостной иерархиях#space|теоремы о емкостной иерархии]]. При этом в отличии от памяти, время работы машины Тьюринга меньше, чем время ее симуляции на другой машине, из-за чего на соотношение <tex>f</tex> и <tex>g</tex> поставлено более сильное условие. | |proof=Доказательство аналогично доказательству [[Теоремы о временной и емкостной иерархиях#space|теоремы о емкостной иерархии]]. При этом в отличии от памяти, время работы машины Тьюринга меньше, чем время ее симуляции на другой машине, из-за чего на соотношение <tex>f</tex> и <tex>g</tex> поставлено более сильное условие. | ||
Положим <tex>h(n)=Sim^{-1}(g(n))</tex>, где <tex>Sim^{-1}</tex> — обратная к времени симуляции функция, <tex>L=\{x\bigm|x(x)\Bigr|_{T\leq h(|x|)}\neq 1\}</tex>. Тогда: | Положим <tex>h(n)=Sim^{-1}(g(n))</tex>, где <tex>Sim^{-1}</tex> — обратная к времени симуляции функция, <tex>L=\{x\bigm|x(x)\Bigr|_{T\leq h(|x|)}\neq 1\}</tex>. Тогда: |
Версия 10:33, 5 июня 2012
Теорема (о емкостной иерархии): |
Пусть даны две функции и такие, что , тогда . |
Доказательство: |
Для доказательства воспользуемся диагональным методом.
[1]
|
Теорема (о временной иерархии): |
Пусть даны две функции и такие, что , где — время симуляции шагов одной машины Тьюринга на другой машине. Тогда . |
Доказательство: |
Доказательство аналогично доказательству теоремы о емкостной иерархии. При этом в отличии от памяти, время работы машины Тьюринга меньше, чем время ее симуляции на другой машине, из-за чего на соотношение и поставлено более сильное условие. Положим , где — обратная к времени симуляции функция, . Тогда:
|
Примечания
- ↑ Суть данного метода для набора множеств
- ↑ Вообще говоря, для корректного запуска с лимитом по памяти на функцию дополнительно накладывается условие конструируемости по памяти, то есть возможность вычислить значение функции по , используя не более памяти, однако часто это условие опускается.