РЕДАКТИРОВАТЬ: Аргумент, на который я ответил, не был неправильным, но он немного вводил в заблуждение, поскольку он только показал, что верхняя граница должна быть жесткой для некоторых n (что на самом деле тривиально, так как оно должно быть жестким, когда n=2 и предел 1).
Вот более точный аргумент. Это показывает, что если верхняя границаlog2n
свободен для любого конкретного nтогда для всех n необходимое количество оракулов O(1),
(Конечно, это не O(1)так что верхняя граница никогда не бывает свободной! Но я на самом деле не доказываю это здесь, и, учитывая другой ответ на проблему, это не стоит того, чтобы ее преследовать.)
Рассмотрим проблему вычисления максимального выхода :
Учитывая n-кратного (M1,…,Mn) машин Тьюринга, вычислите максимальную производительность (машин Тьюринга, которые останавливаются, если работают на ϵ). Если ни один из них не остановится, верните 0.
Как функция nнаихудшее число вызовов оракула, необходимое для вычисления этой функции, совпадает с числом, необходимым для определения, какой из nзаданные машины останавливаются. (Если я знаю, какие машины останавливаются, я могу легко вычислить максимальную производительность. И наоборот, если я хочу знать, какие машины останавливаются, следуя конструкции в формулировке задачи, я могу построить машины{M′i} (i=1,2,…,n)
где M′i работает все n отдавая машины параллельно, затем останавливается и выводится i если iиз них когда-либо останавливаются. Максимальный выходной скажет мне число, которое останавливается. Исходя из этого, я могу точно рассчитать, какая остановка.)
Теперь пусть n0 быть наименьшим целым n (если есть) так, чтобы выполнялось следующее:
С помощью C(n)=max{k∈Z:2k<n} оракулов, можно вычислить максимальный выход nданные машины. (То есть верхняя граница не является жесткой дляn.)
очевидно n0>1, потому что C(1)=−1, По факту,n0>2 Также из-за C(2)=0, но неразрешимо вычислить максимальный выход 2данные машины (без оракулов). Теперь рассмотрим большеn:
Претензия: еслиn0 конечно, то для любого nможно рассчитать максимальный выход n данные машины в C(n0)оракулы (Обратите внимание, что еслиn0 конечно, то C(n0)=O(1).)
Доказательство. , Докажем это индукцией поn, Базовые случаиn≤n0, которые держатся по определению n0 а также C,
Позволять Q0 быть ТМ, который, учитывая любой n0 Машины Тьюринга, вычисляет максимальную производительность, используя только C(n0) призывает к оракулу.
Исправить любой n>n0, Учитывая любойn машины M1,…,Mn, рассчитайте максимальную мощность следующим образом.
Сосредоточиться на первом M1,…,Mn0машины. Рассмотрим бегQ0 на этих n0машины. Обратите внимание, чтоQ0 марки C(n0) призывает к оракулу, а есть только n′=2C(n0)возможные ответы оракула на эти звонки. Обратите внимание, что по определениюn′=2C(n0)<n0, Позволятьoi обозначить iй возможный ответ. Для каждогоi=1,…,n′, построить машину M′i
что имитирует Q0 на этих машинах так:
TM M′i (на входе ϵ):
- Имитировать Q0 на n0 машины (M1,…,Mn0), но вместо того, чтобы называть оракула, предположим, что оракул отвечает согласно oi,
- Это моделирование может не остановиться (например, если oi это не то, что на самом деле вернул бы оракул).
- Если симуляция останавливается, пусть hi быть максимальным выходом, который Q0 говорит будет дано.
- Ласточкин хвост все n0 машины (M1,…,Mn0), Если один из них когда-либо выводитhi, остановка и вывод hi,
Теперь в данной последовательности n машины, замени первый n0 машины M1,…,Mn0 этими n′<n0 машины M′1,…,M′n′, Вернуть значение, вычисленное путем повторения в этой последовательностиn−(n0−n′)<nмашины. (Обратите внимание, что оракул не вызывается до повторного использования, поэтому оракул вызывается только после достижения базового варианта.)
Вот почему это вычисление верно. Дляi такой, что oi «правильный» ответ оракула Q0 на запросы, M′i остановится и даст правильный максимальный выход оригинала n0машины. Таким образом, максимальный выходn′ машины (M′1,…,M′n′)
по крайней мере, максимальный выход n0 машины (M1,…,Mn0), С другой стороны, к шагу 4 нетM′i
может дать вывод, который больше, чем максимальный выход (M1,…,Mn0), Таким образом, максимальный выходn′ машины (M′1,…,M′n′)
равно максимальному выходу n0машины, которые они заменяют. QED