Теорема Бейкера — Гилла — Соловэя — различия между версиями
Строка 35: | Строка 35: | ||
** если принадлежность <tex>x</tex> множеству <tex>B</tex> была определена на предыдущем шаге, то она сохраняется; | ** если принадлежность <tex>x</tex> множеству <tex>B</tex> была определена на предыдущем шаге, то она сохраняется; | ||
** если принадлежность <tex>x</tex> множеству <tex>B</tex> не установлена ранее, то далее считаем, что <tex>x \not\in B</tex>. | ** если принадлежность <tex>x</tex> множеству <tex>B</tex> не установлена ранее, то далее считаем, что <tex>x \not\in B</tex>. | ||
− | Но <tex>M_i</tex> могла остановится раньше, чем за <tex>2^{n-1}</tex> шагов и вернуть какое-либо значение. | + | |
− | * если <tex>M_i</tex> приняла слово, то | + | Но <tex>M_i</tex> могла остановится раньше, чем за <tex>2^{n-1}</tex> шагов и вернуть какое-либо значение. Так как <tex>B</tex> строится с условием <tex>T(M_i, x) \ge 2^{n-1}</tex>, то решение машины о принадлежности слова должно быть неверным: |
− | * Если <tex>M_i</tex> отклонила слово, то выберем слово <tex>x</tex> длины <tex>n</tex>, принадлежность которого <tex>B</tex> еще не определено. | + | * если <tex>M_i</tex> приняла слово, то исключим из <tex>B</tex> все слова вида <tex>\{0,1\}^n</tex>; |
+ | * Если <tex>M_i</tex> отклонила слово, то выберем слово <tex>x</tex> длины <tex>n</tex>, принадлежность которого <tex>B</tex> еще не определено. Добавим <tex>x</tex> в <tex>B</tex>. Такое слово всегда найдется, так как на предыдущий шагах мы могли сделать не более, чем <tex>2^n-1</tex> запросов к оракулу (то есть добавить в <tex>B</tex> не более <tex>2^n-1</tex> слов длины <tex>n</tex>), а всего слов длины n <tex>2^n</tex>. | ||
Во множестве <tex>B</tex> на каждой стадии содержится конечное число элементов, так как на каждой стадии в <tex>B</tex> может быть добавлено не более чем <tex>2^{n-1}+1</tex> слов. | Во множестве <tex>B</tex> на каждой стадии содержится конечное число элементов, так как на каждой стадии в <tex>B</tex> может быть добавлено не более чем <tex>2^{n-1}+1</tex> слов. | ||
− | Предположим, что <tex>M_i</tex> отработала менее, чем за время <tex>2^{n-1}</tex>, | + | Рассмотрим построенное по описанному выше алгоритму множество <tex>B</tex>. Предположим, что <tex>M_i</tex> отработала менее, чем за время <tex>2^{n-1}</tex>, на слове <tex>1^n</tex>, где <tex>n</tex> определено для каждого <tex>i</tex> в алгоритме, описанном выше. Тогда |
*если <tex>M_i</tex> допускает слово <tex>1^n</tex>, то в <tex>B</tex> нет слова <tex>1^n</tex>; | *если <tex>M_i</tex> допускает слово <tex>1^n</tex>, то в <tex>B</tex> нет слова <tex>1^n</tex>; | ||
*если <tex>M_i</tex> отклоняет слово <tex>1^n</tex>, то в <tex>B</tex> содержится слово <tex>x</tex>, причем <tex>|x| = n</tex>. | *если <tex>M_i</tex> отклоняет слово <tex>1^n</tex>, то в <tex>B</tex> содержится слово <tex>x</tex>, причем <tex>|x| = n</tex>. | ||
− | + | ||
Следовательно, никакая машина <tex>M_i</tex> не может решить язык <tex>U_B</tex> за время меньшее <tex>2^{n-1}</tex>. | Следовательно, никакая машина <tex>M_i</tex> не может решить язык <tex>U_B</tex> за время меньшее <tex>2^{n-1}</tex>. | ||
}} | }} |
Версия 12:02, 30 апреля 2012
Теорема: |
Существуют такие оракулы и , что и . |
Доказательство: |
Существование оракула Рассмотрим PS-полный язык .
Существование оракула Пусть — произвольное множество, а . Ясно, что (легко написать программу, проверяющую сертификат). Построим такое множество , что .Рассмотрим последовательность машин Тьюринга , имеющих доступ к оракулу языка . Построение множества разделим на счетное стадий шагов. Будем строить так, чтобы на -й стадии было выполнено: . Очевидно, что это утверждение сильнее, чем .
Но могла остановится раньше, чем за шагов и вернуть какое-либо значение. Так как строится с условием , то решение машины о принадлежности слова должно быть неверным:
Во множестве на каждой стадии содержится конечное число элементов, так как на каждой стадии в может быть добавлено не более чем слов.Рассмотрим построенное по описанному выше алгоритму множество . Предположим, что отработала менее, чем за время , на слове , где определено для каждого в алгоритме, описанном выше. Тогда
|