(Ложь?) Доказательство вычислимости функции?

19

Рассмотрим функцию , которая возвращает 1, если n нулей последовательно появляются в π . Теперь кто-то дал мне доказательство того, что f ( n ) вычислимо:f(n)nπf(n)

Либо для всех n, появляется в π , либо am am 0 m появляется в π, а 0 m + 1 - нет. Для первой возможности f ( n ) : = 1 ; Для второго f ( n ) : = 1, если n m , иначе 0.0nπ0mπ0m+1f(n):=1f(n):=1nm

Автор утверждает, что это доказывает вычислимость , поскольку существует алгоритм для его вычисления.f(n)

Это доказательство правильно?

Майк Б.
источник
2
Вы можете использовать латекс в своих вопросах, чтобы сделать их более читабельными.
Дэйв Кларк
7
Аргумент правильный, но не конструктивный. Человек не дает вам ТМ, он дает вам две ТМ и говорит, что один из них вычисляет нужную вам функцию, но не знает, какая именно.
Каве
1
Ваша версия вычислима. Тем не менее, я неправильно прочитал и случайно нашел версию, которую я считаю неисчислимой. Единственное изменение: вместо ровно n нулей спросите, имеет ли π не более n нулей. Если это действительно так, я полагаю, что вы не можете подтвердить это, так как π имеет бесконечное число цифр и (кажется?) Повторение шаблона не происходит.
chazisop
Однажды я исправил страницу в Википедии, которая допустила ошибку, утверждая, что существование постоянной Чейтина доказало существование «неисчислимых целых чисел».
Джеффри Ирвинг
эти типы вопросов, как правило, на «тривиальных языках». но обратите внимание, что обычно небольшая переформулировка, например, где язык где m является (или 1-м) местоположением строки 0 k, или -1, если такой строки нет, может быть неразрешимой. см. также, как можно решить, что π имеет некоторую последовательность цифр? / Информатикаf(n,k)=mm0kπ
vzn

Ответы:

23

Подумайте об этом так, Майк: Это доказательство «разветвляется» на несколько возможных случаев, один из которых должен быть верным (используя закон исключенного среднего, который для каждого предложения либо p является истинным, либо ¬ p истинным). Но в конце каждой из этих веток вам всегда удается доказать, что функция f вычислима. Следовательно, независимо от того, какой из случаев действительно имеет место в реальной жизни, f должно быть вычислимо. (Однако точная причина, по которой f вычислима, будет отличаться в зависимости от ветви.)pp¬pff f

Райан Уильямс
источник
16

Верно. Это то же самое, что и следующее: определите как постоянную функцию x 0, если Бог существует, и x 1f(x)x0x1 если Бога не существует. Результирующая функция является постоянной функцией, поэтому вычислимой. То, что вы не можете сделать, это дать эту функцию, но сама функция вычислима.

Здесь одна из двух возможностей верна: либо существует такая , либо ее нет. Функция является либо постоянной функцией x 1, либо простой пороговой функцией, определенной с помощью m .mx1m

Михаэль Кадилхак
источник
4
Я хотел бы заменить « если Бог существует» с . :)PNP
Kaveh
Хорошо, извините за недоразумение, у меня нет проблем с неконструктивностью доказательства. Проблема в том, что мы (или, по крайней мере, я) не знаем, является ли вычислимой или нет. Почему нет необходимости доказывать это? m
Майк Б.
5
Нет смысла говорить о том, является ли целое число вычислимым или нет. Какое бы значение m ни принималось, есть машина Тьюринга, которая выводит его. Конечно, найти его может быть сложно, но это не сильно отличается от общей ситуации: найти алгоритмы сложно, что делает многих из нас занятыми.
Аарон Рот
Я до сих пор не понимаю. Какая машина Тьюринга могла бы вывести этот м? Мало того, что он должен показать, что появляется в π , больше, чем то, что он должен был бы проверить, что 0 m + 1 нет - и это проблема IMO. 0mπ0m+1
Майк Б.
Это конструктивный способ, о котором вы говорите. Если я дам вам машину , которая выдает такой , не нужен , чтобы убедить вас , что это правильные м , как это машина для outputing такого м (ну, машина , по крайней мере). Это то же самое, что и пример Бога (который, кстати, исходит от Sipser): если машина выдает 0 , ей не нужно убеждать вас, что Бога не существует. Это как раз тот случай. mmm0
Микаэль Кадилхак
14

Я думаю - и надеюсь - что каждый студент информатики сталкивается с этой проблемой, которая кажется парадоксом. Это очень хороший пример различия вычислимых в смысле TCS и вычислимых в практическом смысле.

Тогда я думал: «Да, если бы я знал ответ, он был бы явно вычислим. Но как узнать?» Хитрость заключается в том, чтобы избавить себя от иллюзии, что вы должны выяснить, имеет ли это свойство или нет. Потому что это, очевидно (читай: imho), не может быть сделано машиной Тьюринга (до тех пор, пока у нас нет больше знаний, чем о π ).ππ

Рассмотрим ваше определение вычислимости: мы говорим, что вычислимо (по Тьюрингу) тогда и только тогда, когда M T M : f M = f . То есть вам нужно только показать существование соответствующей машины Тьюринга, а не дать ее . То, что вы - мы - пытаемся сделать, - это вычислить машину Тьюринга, которая вычисляет требуемую функцию. Это намного сложнее!fMTM:fM=f

Основная идея доказательства такова: я даю вам бесконечный класс функций, все они вычислимы (чтобы показать; здесь тривиально). Затем я докажу, что функция, которую вы ищете, находится в этом классе (чтобы показать; здесь различие в регистре). QED

Рафаэль
источник
9

Да, верно, его вычислимо. Проблема в том, что ваша функция на самом деле не дает решения бесконечного семейства проблем, а способ (скажем) функции, вычисляющей решение проблемы остановки, - так что нет никаких проблем с вычислениями. Вместо этого вы представляете в форме функции какой-то один математический факт с конечным представлением - либо целое число, либо тот факт, что f является постоянно 1-й функцией

Можно кодировать Остановки проблемы в отдельных реальных числах, как постоянное Chaitan в , но целые числа всегда имеют конечные представления и поэтому могут быть закодированы как Тьюринг машины.Ω

Конечно, найти правильный алгоритм может быть сложной задачей. Но найти правильные алгоритмы обычно сложно!

Аарон Рот
источник
3

сообщение немного старое, но хотел опубликовать другой ответ.

Это неконструктивное доказательство (или аргумент) вычислимости. Это просто говорит о том, что функция должна существовать в некотором смысле, так как я могу представить ее (или, точнее, индексировать ее) в наборе (или вселенной) вычислимых функций. Однако он не создает ни саму машину (т.е. алгоритм), ни индекс (при условии эффективного перечисления вычислимых машин). Английская фраза « спасибо ни за что » кажется в этих случаях наиболее подходящей, например, следующая:

-- Look, I proved there is water somewhere! 

Now you can be happy, while dying from thirst!

Люди в истории математики довольно много спорили о реальной действительности (или диапазоне действия) и значении таких аргументов. Конечный результат состоит в том, что аргументы такого же типа вновь появляются в теоремах Гёделя о неполноте и восстанавливают это «предположение о замкнутой вселенной» .

Если вам не нравятся эти аргументы, я бы не стал вас винить.

Никос М.
источник