Тени разума. В поисках науки о сознании - страница 57
завершится по какой-либо совершенно посторонней причине и не даст нам доказательства того, что вычисление C>q(n) не завершается?». Если нам вдруг придется иметь дело с алгоритмом «A», который ведет себя подобным образом, то мы просто применим представленное в §2.5 обоснование к немного другому A — к такому, который зацикливается всякий раз, когда исходный «A» завершается по любой из упомянутых посторонних причин.
Q4. Судя по всему, каждое вычисление C>q в предложенной мною последовательности C>0, C>1, C>2, … является вполне определенным, тогда как при любом прямом переборе (численном или алфавитном) компьютерных программ ситуация, конечно же, была бы иной?
В самом деле, было бы весьма затруднительно однозначно гарантировать, что каждому натуральному числу q в нашей последовательности действительно соответствует некое рабочее вычисление C>q. Например, описанная в НРК последовательность машин Тьюринга T>q этому условию, конечно же, не удовлетворяет; см. НРК, с. 54. При определенных значениях q машину Тьюринга T>q можно назвать «фиктивной» по одной из четырех причин: ее работа никогда не завершается; она оказывается «некорректно определенной», поскольку представление числа n в виде двоичной последовательности содержит слишком много (пять или более) единиц подряд и, как следствие, не имеет интерпретации в данной схеме; она получает команду, которая вводит ее в нигде не описанное внутреннее состояние; или же по завершении работы она оставляет ленту пустой, т.е. не дает никакого численно интерпретируемого результата. (См. также Приложение А.) Для приведенного в §2.5 доказательства Гёделя—Тьюринга вполне достаточно объединить все эти причины в одну категорию под названием «вычисление не завершается». В частности, когда я говорю, что вычислительная процедура A «завершается» (см. также примечание [9]), я подразумеваю, что она «завершается» как раз в вышеупомянутом смысле (а потому не содержит неинтерпретируемых последовательностей и не оставляет ленту пустой), — иными словами, «завершиться» может только действительно корректно определенное рабочее вычисление. Аналогично, фраза «вычисление C>q(n) завершается» означает, что данное вычисление корректно завершается именно в этом смысле. При такой интерпретации соображение Q4 не имеет совершенно никакого отношения к представленному мною доказательству.
Q5. Не является ли мое рассуждение лишь демонстрацией неприменимости некоей частной алгоритмической процедуры (A) к выполнению вычисления C>q(n)? И каким образом оно показывает, что я справлюсь с задачей лучше, чем какая бы то ни было процедура A?
Оно и в самом деле вполне однозначно показывает, что мы справляемся с такого рода задачами гораздо лучше любого алгоритма. Поэтому, собственно, я и воспользовался в своем рассуждении приемом reductio ad absurdum. Пожалуй, в данном случае уместно будет привести аналогию. Читателям, вероятно, известно о евклидовом доказательстве невозможности отыскать наибольшее простое число, также основанном на reductio ad absurdum. Доказательство Евклида выглядит следующим образом. Допустим обратное: такое наибольшее простое число нам известно; назовем его p. Теперь рассмотрим число N, которое представляет собой сумму произведения всех простых чисел вплоть до p и единицы:
N = 2 × 3 × 5 × … × p + 1.
Число N, безусловно, больше p, однако оно не делится ни на одно из простых чисел 2, 3, 5, ..., p (поскольку при делении получаем единицу в остатке), откуда следует, что N либо и есть искомое наибольшее простое число, либо оно является составным, и тогда его можно разделить на простое число, большее p. И в том, и в другом случае мы находим простое число, большее p, что противоречит исходному допущению, заключавшемуся в том, что p есть наибольшее простое число. Следовательно, наибольшее простое число отыскать нельзя.
Такое рассуждение, основываясь на reductio ad absurdum, не просто показывает, что требуемому условию не соответствует некое частное простое число р, поскольку можно отыскать число больше него; оно показывает, что наибольшего простого числа просто не может существовать в природе. Аналогично, представленное выше доказательство Гёделя—Тьюринга не просто показывает, что нам не подходит тот или иной частный алгоритм А, оно демонстрирует, что в природе не существует алгоритма (познаваемо обоснованного), который был бы эквивалентен способности человека к интуитивному пониманию, которую мы применяем для установления факта незавершаемости тех или иных вычислений.