Нижняя граница числа оракулов, требующих решения

9

Я столкнулся со следующим вопросом, который является легким упражнением (спойлер ниже).

Нам дают nэкземпляры проблемы остановки (т. е. ТМ ), и нам нужно решить, какие именно из них останавливаются на . То есть нам нужно вывести . Нам дан оракул для решения проблемы остановки, но мы должны использовать его минимальное количество раз.M1,...,Mnϵ{i:Mi halts on ϵ}

Нетрудно показать, что это можно сделать с помощью вызовов .log(n+1)

Мой вопрос: можем ли мы доказать нижнюю границу? Есть ли основания подозревать, что такую ​​границу будет очень трудно найти?

Ответ на сам вопрос (спойлер, наведите мышь):

Рассмотрим случай 3TMs. Мы можем построить ТМH2 это работает M1,M2,M3параллельно, и останавливается, если по крайней мере два из них останавливаются (в противном случае он застревает). Точно так же мы можем построить ТМH1это останавливает, если хотя бы один из них останавливается. Затем мы можем назвать оракула наH2, Если он останавливается, мы можем запустить машины параллельно и подождать, пока один из них остановится. Затем мы можем назвать оракула последним. Если оракул говорит «нет», то мы запускаем оракула наH1, Если он останавливается, мы запускаем машины до тех пор, пока он не остановится, а остановится только один. ЕслиH1не останавливается, то никто из них не останавливается. Расширяя это доn машины это просто.

Первое замечание по этому вопросу состоит в том, что, кажется, невозможно решить с помощью теоретико-информационных инструментов, поскольку мы в значительной степени полагаемся на нашу способность получать информацию, запустив машины без оракула.

Shaull
источник
@Kaveh - как писал Нил Янг, нам нужно вычислить точный набор остановочных машин.
Shaull

Ответы:

11

Результат можно найти в

Их доказательство фактически показывает, что ваша проблема не может быть решена с помощью менее log2nзапросы к любому наборуXне говоря уже о самой проблеме остановки. Для некоторых обозначений ваша проблема иногда обозначаетсяCnK или CnHALT (в зависимости от вашего любимого обозначения для проблемы остановки).

Для этого и многих связанных результатов, см. Также:

Джошуа Грохов
источник
10

РЕДАКТИРОВАТЬ: Аргумент, на который я ответил, не был неправильным, но он немного вводил в заблуждение, поскольку он только показал, что верхняя граница должна быть жесткой для некоторых n (что на самом деле тривиально, так как оно должно быть жестким, когда n=2 и предел 1).

Вот более точный аргумент. Это показывает, что если верхняя границаlog2n свободен для любого конкретного nтогда для всех n необходимое количество оракулов O(1),

(Конечно, это не O(1)так что верхняя граница никогда не бывает свободной! Но я на самом деле не доказываю это здесь, и, учитывая другой ответ на проблему, это не стоит того, чтобы ее преследовать.)

Рассмотрим проблему вычисления максимального выхода :

Учитывая n-кратного (M1,,Mn) машин Тьюринга, вычислите максимальную производительность (машин Тьюринга, которые останавливаются, если работают на ϵ). Если ни один из них не остановится, верните 0.

Как функция nнаихудшее число вызовов оракула, необходимое для вычисления этой функции, совпадает с числом, необходимым для определения, какой из nзаданные машины останавливаются. (Если я знаю, какие машины останавливаются, я могу легко вычислить максимальную производительность. И наоборот, если я хочу знать, какие машины останавливаются, следуя конструкции в формулировке задачи, я могу построить машины{Mi} (i=1,2,,n) где Mi работает все n отдавая машины параллельно, затем останавливается и выводится i если iиз них когда-либо останавливаются. Максимальный выходной скажет мне число, которое останавливается. Исходя из этого, я могу точно рассчитать, какая остановка.)

Теперь пусть n0 быть наименьшим целым n (если есть) так, чтобы выполнялось следующее:

С помощью C(n)=max{kZ: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, Базовые случаиnn0, которые держатся по определению 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, построить машину Mi что имитирует Q0 на этих машинах так:

TM Mi (на входе ϵ):

  1. Имитировать Q0 на n0 машины (M1,,Mn0), но вместо того, чтобы называть оракула, предположим, что оракул отвечает согласно oi,
  2. Это моделирование может не остановиться (например, если oi это не то, что на самом деле вернул бы оракул).
  3. Если симуляция останавливается, пусть hi быть максимальным выходом, который Q0 говорит будет дано.
  4. Ласточкин хвост все n0 машины (M1,,Mn0), Если один из них когда-либо выводитhi, остановка и вывод hi,

Теперь в данной последовательности n машины, замени первый n0 машины M1,,Mn0 этими n<n0 машины M1,,Mn, Вернуть значение, вычисленное путем повторения в этой последовательностиn(n0n)<nмашины. (Обратите внимание, что оракул не вызывается до повторного использования, поэтому оракул вызывается только после достижения базового варианта.)

Вот почему это вычисление верно. Дляi такой, что oi «правильный» ответ оракула Q0 на запросы, Mi остановится и даст правильный максимальный выход оригинала n0машины. Таким образом, максимальный выходn машины (M1,,Mn) по крайней мере, максимальный выход n0 машины (M1,,Mn0), С другой стороны, к шагу 4 нетMi может дать вывод, который больше, чем максимальный выход (M1,,Mn0), Таким образом, максимальный выходn машины (M1,,Mn) равно максимальному выходу n0машины, которые они заменяют. QED

Нил Янг
источник