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