Теоремы о временной и ёмкостной иерархиях
Версия от 17:06, 14 апреля 2012; DrozdovVA (обсуждение | вклад)
Эта статья находится в разработке!
Определение: |
Функция | называется конструируемой по памяти, если можно вычислить по , используя памяти не более .
Теорема (о емкостной иерархии): |
Пусть даны две конструируемые по памяти функции и такие, что , тогда . |
Доказательство: |
Для доказательства воспользуемся диагональным методом. Рассмотрим функцию и язык , где — ограничение на память, в случае достижения которого выполнение программы прерывается. Иначе говоря, — это язык программ, которые, если на вход подать саму программу, не возвращают 1 при условии ограничения на память . Докажем, что . Очевидно, что . Предположим теперь, что . Тогда существует программа , распознающая язык и использующая не более памяти. Т. к. , то . Будем считать, что (иначе добавим в программу пустые строки, искусственно увеличив её длину), тогда при вызове потребуется не более памяти. Выясним, принадлежит ли языку . Допустим, что , тогда , значит, по определению языка . Пусть теперь . Но тогда , следовательно, . Таким образом, язык не может быть из , следовательно, язык из найден. |
Определение: |
Функция | называется конструируемой по времени, если можно вычислить по за время не более .
Теорема (о временной иерархии): |
Пусть даны две конструируемые по времени функции и такие, что , тогда . |
Доказательство: |
Доказательство аналогично доказательству теоремы о емкостной иерархии. |