Классическая вычислимость и признаки индетерминизма1
А. М. Анисов
abstract. Converse to the common belief, the theory of classic deterministic computability allow ambiguous interpretations as it is shown in this paper. It is due to the uncertainty of the theory's fundamental notions of finiteness and natural series. Actually focus is made on effects of the emergence and development of the non-standard analysis on the theory of computability.
Распространенное в научном сообществе представление о вычислении как о жестко детерминированной последовательности шагов, выполняемых согласно точному предписанию (алгоритму), не охватывает всех аспектов идеи вычислимости. Подобно тому как попытки избежать фаталистических выводов из доктрины детерминизма привели к созданию новой ветви логики — многозначной логике, — так и теория вычислимости нуждается в обобщениях, допускающих недетерминированные вычисления. Это важно не только в плане развития самой теории, но, в еще большей степени, в аспекте приложений теории вычислимости к моделированию реальности. В последнее время предпринимаются усилия по созданию вычислительных концепций тех или иных сфер реальности или даже всего универсума в целом. Если при этом пользоваться только стандартной теорией детерминированной вычислимости, картина реальности также окажется полностью детерминированной, со всеми вытекающими отсюда неприятными философскими следствиями. В таких условиях задача построения альтернативных теорий вычислимости, допускающих в той или иной форме элементы индетерминизма, становится особенно актуальной.
Однако в философских исследованиях в нашей стране и за рубежом идея недетерминированной вычислимости не находит
хРабота выполнена при поддержке РГНФ, грант № 07-03-00203a.
заметного применения. Причина, по-видимому, заключается в том, что философы либо довольствуются традиционной теорией детерминированной вычислимости, либо объявляют решаемые ими задачи принципиально невычислимыми. Так, в философии ИИ уже долгое время идет дискуссия между сторонниками и противниками вычислительного подхода. Первые возлагают надежды на компьютеры нетрадиционной архитектуры (параллельные машины, клеточные автоматы, квантовые компьютеры и др.), вторые не без оснований указывают, что подобные компьютеры не выводят нас за границы классической вычислимости. Например, хотя квантовые вычисления в ряде случаев оказываются эффективнее вычислений по Тьюрингу, они не выходят за границы класса стандартных вычислимых функций. Согласно выдающемуся математику и физику Р. Пенроузу, «все, что в принципе можно получить с помощью квантового компьютера, можно в принципе получить и с помощью соответствующей машины Тьюринга, снабженной генератором случайных чисел» [8, с. 546].
1 Теория классической МНР-вычислимости
Как известно, аксиоматический метод задания теорий состоит в принятии ряда утверждений в качестве аксиом с последующим выведением следствий из них. Теория при таком подходе представляет собой множество высказываний, замкнутое относительно выводимости. Существует альтернативный метод получения теорий, когда исходят не из высказываний, а из некоторого строго заданного набора объектов, с которыми разрешается проводить точно определенные операции. Это так называемый генетический метод построения теорий. При построении теорий вычислимости, как правило, используют генетический метод. Мы кратко рассмотрим основные элементы варианта теории классической вычислимости или эффективной вычислимости, изложенной в книге [7], с несущественными отличиями от первоисточника. Эта генетическая теория весьма подходит для наших целей. Исходными объектами здесь являются натуральные числа, а операции с ними осуществляет просто устроенный логический компьютер, все допустимые действия которого будут строго описаны. Множество натуральных чисел (т.е. множе-
ство целых положительных чисел, к которому добавлено число 0) обозначим через N.
Идеальный компьютер, с которым нам предстоит работать, называется машиной с неограниченными регистрами (МНР); его также называют адресной машиной (RAM). МНР содержит бесконечное число регистров или ячеек памяти, обозначаемых через Ri,R2,R3 ...,Rn,... Каждый из регистров Ri в любой момент времени содержит некоторое натуральное число, обозначаемое через переменную ri. Кроме того, имеется пишущая головка, которая, перемещаясь от регистра к регистру, может изменять содержимое регистра, выполняя некоторые команды или инструкции. Графически МНР изображена на приведенном рисунке.
Команды, или инструкции, выполняемые пишущей головкой, очень просты и сводятся к следующим типам.
Команда обнуления. Для каждого п > 0 может быть выполнена команда обнуления Z(п). Команда Z(п) заменяет содержимое регистра ^ на 0 и не затрагивает содержимое других регистров. Действие МНР в ответ на команду Z(п) обозначим через гп := 0 (читается «гп становится 0» или «гп присваивается 0»).
Команда прибавления единицы. Для каждого п > 0 выполняется команда 5(п). Результат применения команды состоит в увеличении на 1 содержимого регистра Rn. Другие регистры не затрагиваются. В этом случае пишем гп := гп + 1.
Команда переадресации. Для всех т,п > 0 имеется команда (т,п). Ответом МНР на эту команду является замена содержимого регистра Rn содержимым регистра Rm, т.е. перенос числа гт в регистр Rn. Другие регистры (включая Rm) не затрагиваются. Результат (т,п) записываем как гп := гт. (В действи-
тельности эта команда избыточна и в МНР-вычислениях без нее можно обойтись.)
Команда условного перехода. Для всех т > 0, п > 0 и ц > 0 имеется команда 3(т,п,д). Встретив эту команду в программе, МНР сравнивает содержимое регистров Кт и Кп. Если гт = гп, то МНР переходит к выполнению команды ц; если команда с номером ц отсутствует, МНР завершает работу. Если же гт = гп, МНР переходит к выполнению следующей по порядку команды программы (если таковая имеется; в противном случае МНР останавливается).
На этом перечень типов МНР-команд закончен. Команды первых трех типов называются арифметическими.
Вычисления на МНР-машине начинаются с начальной конфигурации — последовательности чисел Т\, г2,Гз,..., содержащихся в соответствующих регистрах К\, К2, Кз ... до вычисления. При этом предполагается, что в каждой начальной конфигурации содержится лишь конечное количество отличных от нуля чисел, включая случай, когда таких чисел вообще нет (тогда VI = 0 для всех г > 1). Отсюда вытекает, что либо во всех регистрах содержатся одни нули, либо существует п > 1 такое, что в регистре Кп содержится число гп = 0, тогда как в бесконечной последовательности регистров Кп+1,Кп+2, ••• содержатся одни нули.
МНР-программа — это конечная непустая последовательность команд (инструкций) /1, /2,..., 1п перечисленных выше типов.
Примером МНР-программы будет следующий набор команд
1. 3(1, 2, 6)
2. Б(2)
3. Б(3)
4. 3(1,2,6)
5. . (1, 1, 2)
6. Т(3,1)
МНР начинает выполнение программы с первой команды (это всегда инструкция /1). Выполнив очередную команду /^, если она не последняя и не была командой условного перехода, МНР переходит к выполнению команды /^+1, расположенной ниже в наборе команд. Если выполняемая команда оказалась командой условного перехода 3(гт,гп,д) и гт = гп, то опять-таки МНР выполняет следующую по порядку команду (если таковая существует). Если же гт = гп, МНР переходит к выполнению команды с номером д. МНР-вычисление останавливается тогда и только тогда, когда либо нет следующей команды в наборе команд (выполнена последняя инструкция /п в последовательности /1, /2,..., /п), либо при выполнении команды условного перехода требуется перейти на команду, номер которой отсутствует в последовательности инструкций /1, /2,..., /п. Например, выполнение команды 3(1,1, 0) обязательно приведет к остановке машины, а выполнение команды 3(1,1,1) в любой ситуации вернет вычисление к первой инструкции /1.
В случае остановки вычислений содержимое Г1,Г2,Гз,... регистров К1, К2, Кз ... называется заключительной конфигурацией. В заключительной конфигурации лишь конечное количество регистров могут содержать ненулевые значения. Разумеется, вычисления не обязательно заканчиваются.
Пусть п — программа и Г1,Г2,Гз,... — начальная конфигурация. Через п(г1,г2,гз,...) будем обозначать вычисления по программе п с начальной конфигурацией п, Г2,Гз,...; запись п(г1, Г2, гз,...) I означает, что вычисление п на входе п, Г2, Гз,... в конце концов останавливается; запись п(г1, Г2, Гз,...) | означает, что вычисление п на входе Г1,Г2 ,Гз,... никогда не останавливается. Часто говорят, что останавливающееся вычисление сходится, а никогда не останавливающееся — расходится.
Так как начальная конфигурация может, по определению, содержать лишь конечное количество отличных от нуля членов, будем использовать выражение вида п(х1,х2,..., хп) с индивидными переменными Х1,Х2,... ,хп для указания на то, что программа п может применяться к любой начальной конфигурации, в которой регистры Кп+1, Кп+2,... содержат одни нули. Отсюда содержание регистров К1 , . . . , Кп может быть любым, что оправдывает применение в записи индивидных переменных
по натуральным числам. Запись вида п(а\,а2,...,ап) означает, что п применяется к конкретной начальной конфигурации т1, т2,..., гп, 0, 0, 0,... В этом случае а1, а2,..., ап играют роль индивидных констант. Конечно, должно быть разрешено и смешанное применение индивидных переменных и индивидных констант. Например, п(у,г,Ь,х,а), где (применяя привычные обозначения) у,г,х — переменные, а Ь,а — константы. Индивидные переменные и индивидные константы назовем термами. Для термов будем использовать обозначения Ь, Ь\,Ь2,... ,Ьп,... Это позволяет применять наиболее общую форму записи п(Ь\,Ь2,... ,Ьп), где каждый терм Ьг (1 < г < п) является либо переменной, либо константой, а порождаемые выражением ... ,Ьп начальные конфигурации объеденены общим условием Тп+1 = 0, Тп+2 = 0,...
Та же самая программа п, т. е. та же самая последовательность команд, может применяться к начальным конфигурациям любой длины. Поэтому при п = т записи п(Ь1,Ь2,... ,Ьп) и п(Ь1,Ь2,... ,Ьт) правомерны. Это означает, что начальная конфигурация готовится независимо от программы.
Предположим, / (Ь1,Ь2,..., Ьп) — функция (тотальная или частичная), определенная на натуральных числах. Точнее, область определения Оот(/) функции /(Ь1,Ь2,... ,Ьп) представляет собой декартово произведение множеств х Б2 х ... х 0п, где Бг = N, если Ьг является индивидной переменной, и Бг = {п}, если Ьг есть индивидная константа, обозначающая конкретное натуральное число п. Что означает выражение «функция /(Ь1,Ь2,..., Ьп) вычислима на МНР»? Естественно представлять себе вычисление значения /(т1, Т2,..., Тп) для конкретных натуральных чисел Т1,Т2,... ,тп как выполнение некоторой программы п с начальной конфигурацией Т1, Т2,..., Тп, 0, 0, 0,..., т.е вычисление п(т1,т2,..., Тп). Если такое вычисление останавливается, условимся считать результатом вычислений содержимое регистра Rl. Содержимое других регистров тогда будет содержать избыточную информацию. Если п(т1, Т2,..., Тп) I и после остановки Т1 = Ь, то пишем п(т1, Т2,..., Тп) I Ь и говорим, что вычисление п(т1, Т2,..., тп) сходится к Ь. Если /(п, Т2,..., тп) = Ь и п(т1, Т2,..., тп) I Ь, то ясно, что программа п правильно вычисляет значение функции / на аргументах Т1,Т2,..., тп. В случае,
если / — частичная функция, значение которой не определено на Г1,Г2,... ,гп, то программа, вычисляющая /, не должна сходиться к какому-либо числу. Следовательно, должно иметь место п(г1, Г2,..., гп) Дадим теперь точное определение.
ОПРЕДЕЛЕНИЕ 1. Программап(Ь1,Ь2,... ,Ьп) МНР-вычисляет / (Ь1,Ь2,... , ¿п), если для всех < г1,г2,...,гп > из Бот(/) и для каждого Ь € N выполняются следующие утверждения: во-первых, п(г1,г2,... ,гп) I Ь тогда и только тогда, когда /(г1, г2,..., гп) = Ь, и, во-вторых, п(г1, г2,..., гп) | тогда и только тогда, когда значение /(п, Г2,..., гп) не определено.
По определению, функция /(¿1^2,... ^п) является МНР-вычислимой, если существует программа п(Ь1,Ь2,... ,Ьп), которая МНР -вычисляет /(¿1^2,... , ¿п).
Вернемся к первому и пока единственному примеру МНР-программы п-. Какую функцию она вычисляет? Ответ зависит от длины начальной конфигурации, подаваемой на вход п-. Оказывается, если положить п-(х,у), то это будет двухместная функция Ь, заданная следующим образом:
( х — у, если х > у
в противном случае значение не определено
Иными словами, эта частичная функция осуществляет вычитание на множестве натуральных чисел. Взяв п-(х), получим вычисление тотальной тождественной функции Ь(х) = х. Аналогично разбирается случай п-(х,у, г), который снова дает частичную функцию Ь(х,у,г):
{(х — у) + г, если х > у }
г, если х = у. в противном случае значение не определено
Однако дальнейшее увеличение длины начальной конфигурации к новым функциям не приводит, так как программа п- в ходе выполнения затрагивает только три первых регистра. В результате п-(х, у, г) и п-(х, у, г,х1,х2,..., хп) вычисляют одну и ту же функцию, так что получаем либо Ь(х, у, г) = Ь(х, у, г,х1,х2,..., хп), либо обе эти функции не определены.
Пусть R(xl,x2,...,хп) — числовой п-местный предикат и /я(х1 ,х2,... ,хп,с1,с2,... ,ст) (здесь п > 1 и т > 0) — тотальная числовая п-местная функция2, определенная следующим образом: для любых натуральных Т1,Т2,... ,тп
1, если R(т1,т2,... ,тп) истинно
/я (Т1,Т2,...,Тп,С1,С2,...,Ст) = < п ч
' 0, если R(т1,т2,... ,тп)
ложно
Функция /я(х1,х2,..., хп, С1, С2,..., ст) называется характеристической функцией предиката R(xl,x2,... ,хп). Предикат R(xl,X2,... ,хп) называется разрешимым,, если какая-либо его характеристическая функция /я(х1,х2,..., хп, С1,С2,..., Ст) МНР-вычислима.
Предположим, для предиката R(xl,x2,... ,хп) нашлась следующая частичная функция /я(х1,х2,..., хп, С1,С2,..., Ст), оказавшаяся МНР-вычислимой:
1, если R(т1, т2,... ,тп) истинно
/я(Т1,Т2, . . . ,Тп,С1,С2, . . . ,Ст) = <
не определена, если R(т1, т2,..., тп)ложно
Тогда назовем предикат R(xl,x2,... ,хп) полуразрешимым. В теории МНР-вычислимости доказано, что всякий разрешимый предикат полуразрешим, но обратное неверно.
Наконец, возможен случай, когда предикат R(xl,x2,... ,хп) не является ни разрешимым, ни полуразрешимым; в таком случае предикат R(xl,x2,..., хп) неразрешим.
Примеры разрешимых, полуразрешимых и неразрешимых предикатов хорошо известны. Так, после надлежащей кодировки (гёделизации) формул и конечных последовательностей формул языков классических исчислений высказываний и предикатов и формальной арифметики предикат на множестве гёделевых номеров формул логики высказываний Тавтология(т) окажется
2Напомним, что местность предиката или функции определяется числом свободных индивидных переменных.
разрешимым, предикат на множестве гёделевых номеров пер-вопорядковых формул Общезначима(х) — полуразрешимым, но не разрешимым, и предикат на множестве гёделевых номеров арифметических формул Истинна(х) — неразрешимым.
Значение введенных понятий и конструкций заключается в следующем. Оказалось, что все попытки уточнить понятие вычислимости приводят к эквивалентным результатам. Так, понятие МНР-вычислимости эквивалентно любому другому уточненному понятию вычислимости. В частности, понятию вычислимости на так называемых машинах Тьюринга. Опираясь на этот факт, А.Чёрч выдвинул до сих пор никем не опровергнутый тезис, носящий его имя, согласно которому все, что вычислимо с интуитивной точки зрения, вычислимо и в смысле уточненного понятия вычислимости, и, наоборот, все, что вычислимо в уточненном смысле, вычислимо и интуитивно. Видимо, интуитивное понятие вычислимости сформировалось в математике и логике так, что оно не допускало двусмысленных толкований. Поэтому разнообразные и порой очень не похожие друг на друга уточнения этого понятия и оказались эквивалентными.
Следствием тезиса Чёрча является вывод: любая функция / будет вычислима тогда и только тогда, когда она МНР-вычислима. Таким образом, результаты любого вычисления могут быть повторены на МНР-машине. Например, вычисления любого физически существующего компьютера может повторить (своими средствами) МНР-машина. На самом деле МНР-компьютер мощнее всех существующих в мире компьютеров вместе взятых! Ведь он обладает бесконечной памятью и не имеет никаких ограничений по времени выполнения программ, в отличие от реальных компьютеров, существенно ограниченных по памяти и времени.
Развертывание генетической теории МНР-вычислимости состоит в эффективном построении требуемых объектов и доказательстве утверждений о них. Скажем, приведенные утверждения о связанных с разрешимостью свойствах доказываются в этой теории в виде теорем. И не только в ней. После соответствующих переформулировок аналоги этих теорем доказуемы и в других теориях классической вычислимости, поскольку при всем разнообразии подходов к эффективной вычислимости все они оказались эквивалентными в смысле совпадения определя-
емых в них классов вычислимых функций. А согласно тезису Чёрча вообще все не только имеющиеся, но и будущие теории эффективной вычислимости приведут к этому же классу. Для нас эти общеизвестные в логическом сообществе факты послужат основанием для рассмотрения вопроса о детерминизме лишь в отношении теории МНР-вычислимости, поскольку если тут есть проблемы с детерминизмом, то они так или иначе возникнут и в других эквивалентных ей теориях эффективной вычислимости.
2 Детерминированны ли МНР-вычисления?
Следуя идеям Марио Бунге, выдвинутым в книге [2], определим детерминизм как принцип, согласно которому все существующее, во-первых, чем-то однозначно обусловлено и, во-вторых, во всем полностью определенно. Отсюда недетерминизм означает либо неоднозначную обусловленность, либо неполную определенность, или и то, и другое вместе. Крайней формой недетерминизма является индетерминизм — допущение существования чего-либо ничем не обусловленного или полностью неопределенного.
МНР-программы г(Ь1,Ь2,..., Ьп) останавливающиеся на любом входе (любой начальной конфигурации) длины п, естественно считаются примерами детерминированных вычислений, однозначно ведущих к полностью определенной заключительной конфигурации за строго определенное число шагов. Программы, не отанавливающиеся на некоторых начальных конфигурациях, должны быть признаны недетерминированными. Порождаемые ими расходящиеся вычисления не определены в отношении их результата. Однако даже в них расходящиеся вычисления (не говоря уже о сходящихся) однозначно обусловлены начальной конфигурацией и конкретным набором команд программы. При той же начальной конфигурации и том же наборе команд на любых двух МНР-машинах будут порождаться одинаковые последовательности шагов вычислений. Различной, с классической точки зрения, может быть разве что скорость работы МНР-компьютеров, и только. Что касается индетерминизма, то стандартные представления об эффективной вычислимости полностью исключают этот феномен.
При решении некоторых задач (моделирование зависящих от случайностей физических процессов, творческой деятельности, игровых ситуаций и т.д.) возникает потребность в заканчивающихся недетерминированных вычислениях. На практике предпочитают обходиться лишь имитацией недетерминизма, прибегая к вычислению очередного значения последовательности псевдослучайных чисел, которые в действительности появляются друг за другом однозначно предсказуемым образом.
Рассмотрим пример программы на Паскале, которая псевдослучайным образом осуществляет перестановку множества чисел 0... 65535. Последовательно получаем fatum(0) = 13849, fatum(1) = 39022, fatum(2) = 64195,..., fatum(3915) = 0,..., fatum(9541) = 2, ..., fatum(33870) = 65535,..., fatum(39496) = 1,..., fatum(64195) = 7896 и т.д., что создает впечатление случайности результатов (подробнее см. [4, с. 127-130]), тогда как на самом деле вычисления детерминированы и результаты однозначно предсказуемы. Разумеется, функцию fatum можно воспроизвести средствам и МНР, позаботившись о том, чтобы при i > 65535 эта функция (как и в программе на Паскале) не имела значения.
var i : word; {word : 0 ... 65535} functionfatum(i : word) : word; const
mult = 25173; addi = 13849; modul = 65536; begin
fatum := (mult*i + addi)modmodul;
end; begin
WriteLn(/Порождение псевдослучайного числа по введенному числу ');
WriteLn(/Введите —1 < i < 65536. Выход за интервал завершает программу '); Repeat
WriteLn; Readln(i);
W riteLn(f atum(i));
UntilFalse;
end.
В рассматриваемом примере и в аналогичных случаях мы сталкиваемся с мнимым недетерминизмом. Другое дело, если встроить в вычислительный процесс числа, действительно появляющиеся случайно. В простейшей ситуации можно подбрасывать монету, и, отождествив цифру с нулем, а герб с единицей (или наоборот), получать случайно ноль или единицу и затем вручную вводить полученное число в компьютер. Если указанный ввод влияет на ход последующих компьютерных вычислений, мы получим действительно недетерминированный вычислительный процесс, результат которого заранее не предсказуем. В принципе ничто не мешает встроить в компьютер настоящий генератор случайных, а не псевдослучайных, чисел, автоматизировав тем самым ввод таких чисел в исполняемую программу. Описанную разновидность недетерминизма можно назвать статистическим недетерминизмом.
Статистический недерминизм в действительности не расширяет класс вычислимых функций. Неопределенность имеется лишь в отношении входных данных — начальная конфигурация задается случайным образом. Сами же МНР-вычисления остаются детерминированными, и только в ситуации расхождения вычислений вновь возникает недетерминизм, как об этом уже было сказано. Строго говоря, введение генератора случайных чисел в МНР-компьютер потребует расширения языка МНР-программирования, поскольку возникнет необходимость в командах, считывающих случайные числа и передающих их в программу. Но это несущественное расширение. Момент ввода в исполняемую программу случайного числа или нескольких случайных чисел следует рассматривать как формирование новой начальной конфигурации. Иными словами, выполнение программы n(ti,t2,... ,tn) может сопровождаться появлением случайных чисел только в регистрах R\,..., Rn. Такое появление будет означать переход к обычному детерминированному на каждом очередном шаге вычислению некоторой функции, вплоть до следующего ввода случайного числа. Обобщение понятия начальной конфигурации (например, начальные конфигурации с разрывами, начинающиеся не с первого регистра, и т. д.) приве-
дет только к лишним сложностям, но ничего в плане увеличения вычислительной мощности не даст.
В действительности статистический недетерминизм ближе к детерминизму, чем к индетерминизму. Появление в регистрах случайных чисел позволяет осуществлять хотя бы вероятностные предсказания, и в этом определенное сходство с детерминированными процессами, обеспечивающими возможность однозначных предсказаний. Но изначальная ситуация с формированием начальных конфигураций фактически индетерминиро-вана, ибо неопределенна и ничем не обусловлена внутри теории МНР-вычислимости. Фигурально выражаясь, для МНР-компьютера она как бы падает с небес в виде почти что чуда. МНР-вычисление начинается только тогда, когда «чудо» непостижимым для теории образом свершится. Представим наблюдателя, следящего за работой МНР-машины. После того как вычисления начались, все действия компьютера детерминированы и потому однозначно предсказуемы наблюдателем. А вот до того ситуация недетерминирована. Если начальные конфигурации формируются с использованием генератора случайных чисел, то имеет место статистический недетерминизм и возможность осуществления наблюдателем вероятностных предсказаний. Если же формирование начальных конфигураций не обусловлено даже вероятностно, ситуация с ними полностью не определена и потому вообще не предсказуема. Здесь наблюдатель не может сказать ничего определенного и будет вынужден ждать появления неизвестно какой начальной конфигурации.
Таким образом, классическая трактовка МНР-вычислимости связана с тремя типами недетерминизма. В ней не только принимается недетерминизм в «мягкой» форме неопределенности
„ 3
итогового результата вычислений и случайности появления начальных конфигураций, но и допускается «жесткий» недетерминизм в виде настоящего элемента индетерминизма, имеющего место в силу неопределенности и необусловленности процесса получения начальных конфигураций без генератора случайных чисел. Если бы МНР-машины были воплощены в мате-
3Кстати говоря, сложившееся понятие алгоритма как полностью детерминированного предписания по однозначному решению задач исключает возможность неостанавливающихся вычислений.
рии, то им был бы присущ еще один тип недетерминизма, связанный с возможностью неправильной работы: такие компьютеры могли бы завершать вычисления раньше времени, могли бы зависать, неверно выполнять команды и т.д. Однако в теории МНР-вычислимости ничего подобного не может случиться в принципе.
3 МНР-вычислимость в нестандартном универсуме
Под нестандартным универсумом понимается модель арифметики, в которой наряду с обычными конечными имеются бесконечно большие с внешней точки зрения натуральные числа. Бесконечные объекты — это те, которые не являются конечными. А какие объекты конечны? Имеется два наиболее распространенных определения конечного множества. Согласно первому определению, конечным1 называется множество, кардинал которого является натуральным числом. Сами натуральные числа тогда естественно также считать конечными, независимо от того, являются они множествами или имеют другую природу. Согласно второму определению, множество будет конечным2, если его нельзя взаимнооднозначно отобразить ни на какое его собственное подмножество.
Применяя первое определение конечного множества внутри нестандартного универсума получаем, что множество натуральных чисел М является конечным, даже если \М\ = N, где N £ Будучи элементом теоретико-множественной раз-
ности между нестандартным и стандартным универсумами натуральных чисел, такое число N внешне бесконечно, но внутри нестандартного универсума — это обычное конечное натуральное число в ряду всех других натуральных чисел. Более того, множество всех подмножеств 2м внешне бесконечного множества М с внутренней точки зрения также останется конечным, так как |2м | = 2м, где 2м снова конечное натуральное число из №Если нестандартный универсум № внешне счетен, то внешне счетно и множество М. Тогда множество 2м внешне несчетно. Тем не менее внутри нест|анд|артного универсума 2м все равно конечно в силу равенства |2м 1 = 2м — различие между счетным и несчетным пропадает.
В любом случае ни М, ни 2м нельзя средствами универсума взаимнооднозначно отобразить ни на какое собственное их подмножество, ибо для К С М, К = М имеем в нестандартном универсуме \К\ = Ь, где Ь < N. Тогда и 2Ь < 2м. Это означает, что первое определение конечного влечет второе, точно так же, как и в стандартном универсуме. Поэтому далее в этом разделе конечное будет означать конечное 1.
Говоря о стандартном и нестандартном универсумах чисел, мы следовали принятому современному словоупотреблению. Однако, если считать универсум натуральных чисел изначальным (а не полученным как производный объект внутри более мощной теории, например, теории множеств), то становится не понятным, что представляет собой стандартный универсум, почему он непременно должен быть изоморфен ординалу и из аксиоматической теории множеств ZF. С тем же основанием за исходный можно взять универсум №.
Как скажется такой выбор на идее МНР-вычислимости? Очевидно, что теперь в регистрах МНР-компьютера может находиться любое число из №, что ряд регистров должен быть последовательно пронумерован числами из №, что начальные конфигурации могут быть любой стандартной или нестандартной длины, что в командах необходимо разрешить использовать какие угодно числа из №, а число самих команд в программах также может измеряться любым числом из №. Соответственно число шагов в сходящихся вычислениях должно равняться некоторому числу из №, тогда как расходящиеся вычисления будут по числу шагов превышать любое наперед заданное число из
Отсюда следует, что расходящееся вычисление «внутри» натурального ряда № невозможно, например, невозможно вычисление с бесконечным числом шагов, соответствующих стандартному ряду 1, 2, 3,... Всякое МНР-вычисление либо завершится на некотором шаге п £ №, либо продолжится за границы любого п £ №. Иными словами, ряд № надлежит рассматривать как настоящий ряд натуральных чисел, а вычислимость на нем должна осуществляться без всяких индетерминированных аномалий. Это позволяет сохранить все ранее данные определения, в том числе связанные с проблемой разрешимости.
Конечно, не все так просто. Предвижу недоумения, вызванные вопросом: как все-таки проводимое последовательно, шаг за шагом (начиная с первого), вычисление может «выскочить» за границы стандартного универсума N и оказаться в области N^N7 Нет ли здесь явного индетерминизма, подобного индетерминизму тезиса о творении из ничего? Уклончиво отвечу, что постулированная МНР-вычислимость в универсуме № со столь необычными свойствами, по-видимому, все же не ведет к противоречиям, если принимать необходимые меры предосторожности.
Например, нет никаких оснований сомневаться, что если программа п(т1 ,Т2,..., тп) для любых Т1,Т2,... ,тп € N останавливается за некоторое т € N шагов, то все ее действия в нестандартном универсуме будут точно такими же, как и в стандартном. А если на вход такой программы п подать числа из N*\N — что будет тогда? Или, если вычисления по программе п(т1, Т2,..., тп) для конкретных Т1,Т2,... ,тп € N расходятся в стандартном универсуме N то будут ли они расходиться и в нестандартном универсуме №7
Обстоятельное обсуждение теории МНР-вычислимости в нестандартных универсумах находятся за рамками данной работы. Ограничимся лишь одним аспектом этой теории, касающимся проблемы совместимости стандартных и нестандартных вычислений. Будем рассматривать только такие МНР-программы, длина которых равна п для некоторого п € N. Иными словами, это будут программы стандартной длины. Примем следующую аксиому совместимости.
АКСИОМА. Для всякой програмы п стандартной длины и любых Т1,Т2,...,тп € N если п(т1,т2,... ,тп) Т в N то п(Т1,Т2,...,Тп) Т в
Аксиома совместимости утверждает, что всякое расходящееся при данном входе вычисление в стандартном универсуме останется расходящимся и в нестандартном универсуме при том же входе. Это весьма правдоподобное утверждение, но можно ли его доказать? Как уже отмечалось, симметричное высказывание «Для всякой програмы п стандартной длины и любых Т1, Т2,...,Тп € N если п(Т1,Т2, ..., Тп) | в N то п(Т1,Т2, ..., Тп) | в №» в доказательстве не нуждается, настолько оно очевидно.
Назовем предикат Р (х1,х2,..., хп) С N х N х ... х N (п раз ) стандартным, если утверждение < Т1,Т2,... ,гп > £ Р означает, что п,г2,... ,гп £ N. Проще говоря, на вход стандартного предиката разрешено подавать только п-ки стандартных чисел.
Между МНР-вычислимостью в стандартном и нестандартном универсумах имеется значительное различие в вычислительной мощи, как показывает следующая теорема.
ТЕОРЕМА 2. Всякий полуразрешимый в N стандартный предикат Р(х1,х2,..., хп) разрешим в №.
Доказательство. Рассмотрим МНР-программу пр(х1 ,х2,..., хп,в1,в2,..., 0т), вычисляющую в N соответствующую частичную функцию /р(х1,х2,... ,хп, 01,02,...,0т) (напомним, что п > 0 и т > 0). Это будет стандартная программа, имеющая стандартную длину, скажем I £ N в которой все константы начальных конфигураций (если они вообще имеются) являются стандартными числам и 01,02,..., 0т £ N. Преобразуем программу пр следующим образом. Во-первых, освободим от операций регистр Еп+т+1. Для этого в командах из пр увеличим на единицу все упоминания о регистрах, если их номер г > п + т + 1. Получим программу пр. Во-вторых, заменим в пр все ссылки ц в командах условного перехода на 3д: ■](1,],о) заменяется командой .](%,], 3ц). Например, если в пр имелась команда .](%,], 10), то в пр* она должна быть заменена командой .](%,], 30). Возникнет промежуточная программа пр**. В-третьих, найдем наибольший номер тт упоминаемого в программе пр* регистра. Затем перед каждой командой из пр* вставим две: либо 3(п + т + 1, тт + 1, 31 + 2) и Б(тт + 1), если п + т + 1 = тт + 1, либо 3(п + т + 1, тт + 2, 31 + 2) и Б(тт + 2), если п + т + 1 = тт + 1. В любом случае годится второй вариант 3 (п + т + 1, тт + 2, 31 + 2) и Б (тт + 2), им и воспользуемся. В результате число команд вырастет втрое и станет равным 31. Обозначим полученную программу через пр**. Наконец, в-четвертых, допишем к концу пр*** еще две команды: 31 + 1. 3(1,1, 0) и 31 + 2. Z(1). Это и будет итоговая программа пр .
Программа п**** останавливается на любом входе х1 ,х2,...,
хп ,01,02,... ,0т, ст+1. Действительно , из построений видно, что программа п*р**(х1,х2,..., хп, с1,с2,..., ст, ст+1) осуществляет вычисления по исходной программе п , используя разве что другие регистры. Операции условного перехода .](п+т+1, тт+ 2, 31 + 2) и увеличения на единицу 5(тт + 2) содержимого регистра Ктт+2 на эти исходные вычисления никак не влияют, если не достигнуто равенство тп+т+1 = ттт+2. Если равенство тп+т+1 = ттт+2 получено, переход к последней команде Z(1) с номером 31 + 2 обнулит первый регистр и закончит вычисления. В противном случае продолжится выполнение вычислений в со-ответствиии с предписаниями п . Если эти вычисления закончатся раньше, чем будет получено равенство тп+т+1 = ттт+2, в первом регистре будет содержаться единица. Таким образом, либо вычисление остановится из-за пр(х1,х2,..., хп, 01,02,..., ст) либо остановится из-за достижения равенства тп+т+1 = ттт+2. Но указанное равенство будет непременно достигнуто в том случае, если имеет место пр(х1,х2,..., хп, 01,02,..., ст) Т.
В стандартном универсуме N вычисления по программе прр**(х1,х2,..., хп, с1,02,..., ст, ст+1) не приведут к чему-то интересному. Другое дело нестандартный универсум №. Достаточно взять в качестве константы ст+1 нестандартное 'число N € чтобы получить разрешающую предикат
Р (х1,х2,... ,хп) процедуру. Если п-ка < т1,т2,...,тп > € Р, то Т1,Т2,... ,тп € N (так как предикат Р стандартен) и вычисление прр**(т1, Т2,..., тп, 01,02,..., ст, N закончится с результатом Т1 = 1 на каком-то шаге к, где к € N. Если же < Т1, Т2,..., тп > € Р, то вновь Т1,Т2,... ,тп € N по причине стандартности Р и пр(т1, Т2,..., тп, 01,02,..., ст) Т в N. В силу аксиомы совместимости п р (т1, Т2,... ,тп, 01, 02,..., ст) Т верно и для №. Однако вычисление прр**(т1, Т2,..., тп, 01,02,..., ст, N в этом случае закончится по достижению равенства N = ттт+2, причем с Т1 = 0. Это и дает МНР-вычислимость искомой характеристической функции /р(х1,х2,..., хп, 01,02,..., ст, N стандартного предиката Р(х1,х2,... ,хп), что и требовалось. Q.E.D.
В частности, в нестандартном универсуме будет разрешим упоминавшийся выше классически полуразрешимый, но не разрешимый предикат на множестве гёделевых номеров первопо-рядковых формул Общезначима(х).
4 МНР-вычислимость в уличенном универсуме
Термин «уличенный универсум» (a witnessed universe) взят из книги [3] в переводе с английского А.Г. Драгалина. В самом общем смысле он означает большой, но все же конечный в классическом измерении универсум, который изнутри рассматривается как бесконечный. Ситуация обратная в сравнении с нестандартным универсумом: в последнем внешне бесконечное внутри оказывается конечным, а в уличенном универсуме, наоборот, внешне конечное предстает как внутренне бесконечное. Построим конкретный уличенный универсум в форме арифметики с конкретными конечными и бесконечными числами.
Пусть La = {+, х,+ , 0} — язык арифметики. Будем говорить, что формула арифметическая, если все ее дескриптивные символы принадлежат языку La. Следующие аксиомы обычны.
1. 0 = x+ (число 0 не имеет предшествующего элемента);
2. x+ = y+ ^ x = y (функция + взаимнооднозначна);
3. x + 0 = x;
4. x + y+ = (x + y)+ (A3 и A4 — рекурсивное определение сложения через 0 и +);
5. x х 0 = 0;
6. x х y+ = (x х y) + x (A5 и A6 — рекурсивное определение умножения через 0,+ и +);
7. (A(0) & Vx(A(x) ^ A(x+))) ^ VxA(x), где — арифметическая формула (схема аксиом индукции; пункт об ариф-метичности необходим, как будет видно из дальнейшего).
Следующие аксиомы сформулированы в расширенном языке L = LaU{F, T, f}, где F и T — одноместные предикатные символы для выражения неарифметических свойств «быть конечным (финитным) числом» и «быть бесконечным (трансфинитным) числом», а f — функция с достаточно быстрым ростом значений.
8. F(0) (разумеется, 0 — конечное число);
9. Е(х) — Е(х+) (если х конечно, то и следующее за х число х+ также конечно; поскольку А9 — не арифметическая формула, нельзя индукцией доказать, что все числа конечны);
10. Т(х) — Т(х+) (аналогично А9: если х бесконечно, то и х+ бесконечно);
11. Е(х) — —Т(х) (конечные числа не являются бесконечными; по контрапозиции ——Т(х) — —Е(х) и снятию двойного отрицания имеем Т(х) — —Е(х), т.е. бесконечные числа не конечны);
12. Е(х) VТ(х) (каждое число либо конечно, либо бесконечно);
13. /(0) = 0++++++++++ = 10;
14. /(х+) = /(х)10, где /(х)10 равно по определению /(х) х / (х) х / (х) х / (х) х / (х) х / (х) х / (х) х / (х) х / (х) х / (х) (заметим, что нам не потребовалось общее определение степени ху);
15. Т(/(10)) (/(10) — конкретное бесконечное число).
Построенная теория противоречива, но противоречие достигается за огромное число шагов, которое в нашей аксиоматике считается бесконечным. Так как доказательство — это конечная последовательность формул4, классическое выведение противоречия не является доказательством в нашем смысле, поэтому в этом понимании данная теория является непротиворечивым расширением арифметики.
Заменяя аксиомы 13-15 утверждением
13' . Зх(Т(х)),
получим классически непротиворечивую теорию. Действительно, пусть N — бесконечное число, существование которого утверждается, т.е. ТN). Поскольку теоремами являются —Т(0), —Т(1),..., —Т(п),..., имеем теоремы 0 < N, 1 < N,... ,п < N ...
4Отметим, что формулы, оперирующие бесконечными числами, могут оставаться конечными в смысле нашей теории, как это имеет место в аксиоме 15.
Но для каждого п цепочка утверждений 0 < М, 1 < N,... ,п < N непротиворечива. Значит, по теореме компактности, непротиворечива и вся теория. Эта теория, однако, будет ^-противоречивой ввиду теоремы —Ух—Т(х).
Число /(10) — это единица с десятью миллиардами нулей. Даже записать такое число вручную в одиночку невозможно. Но это возможно с помощью современной вычислительной техники. Однако на самом деле здесь мы принимаем сокращенную запись числа /(10). Собственно говоря, выражение «/(10)» — не что иное, как еще большее сокращение (в отличие от предыдущего, легко реализуемое вручную) записи рассматриваемого числа. Каноническое представление /(10) в виде
0+++...+++
невозможно, поскольку потребует значков + больше, чем частиц в Метагалактике (в которой, по уверениям физиков, содержится примерно 1080 — 1 с 80-ю нулями — частиц ([9, с. 113]).
Да и времени для канонического представления потребуется несусветно много. В самом деле, в году примерно 31536000 секунд. Наша Метагалактика, опять же по уверениям физиков, существует примерно 10 миллиардов лет (особая точность нам в этом случае не нужна). Стало быть, от так называемого «Большого взрыва» прошло что-то около 315360 х 1012 секунд (315 квадрильонов 360 триллионов секунд). Даже если бы мы с момента этого взрыва располагали устройством, записывающим по 1012 (по триллиону) значков + в секунду (что само по себе невероятно), мы имели бы на сегодняшний день лишь 315360 х 1012 х 1012 = 315360 х 1024 значков, то есть в десятичной записи — число 315360 с последующими 24 нулями. А нам необходимо получить десять миллиардов нулей! Сколько же еще ждать? Эти рассуждения показывают, что построенная здесь арифметика связана с космологией.
Космологические ограничения должны быть наложены и на теорию МНР-вычислимости в уличенном универсуме. В классическом случае допускалась двоякого рода бесконечность: актуально бесконечное число регистров и потенциальная бесконечность числа шагов вычислений и помещаемых в регистры чисел. Аналогичным образом, уличенная теория МНР-вычислимости в рассматриваемом конкретном варианте предполагает внутренне актуально бесконечную ленту регистров К1,К2,Яз,...
Rf(10). Потенциальная бесконечность чисел и шагов вычислений моделируется их физической реализуемостью: числа до 1080 будут физически реализуемы. Быть может, и гораздо большие числа, скажем, 101000, тоже найдут физическую интерпретацию. Но нет никакой надежды записать в регистры начальную конфигурацию с актуально бесконечными числами или добраться в ходе МНР-вычислений до таких чисел, хотя в нашем уличенном универсуме они все же существуют. Обозначим описанную модель уличенного универсума через U.
Сравнивая, как и в случае нестандартной вычислимости, уличенную вычислимость с классической, приходим к очевидному выводу, что МНР-вычислимость в U значительно слабее классической. Для подтверждения сказанного приведем следующую теорему.
ТЕОРЕМА 3. Всякий разрешимый в N предикат P(xi,x2,-.., xn) неразрешим в U.
Доказательство. Ясно, что числа в окрестности f (10), не говоря уже о больших числах, даже не могут быть записаны в регистры уличенного МНР-компьютера. Q.E.D.
Например, разрешимое в N свойство гёделевых номеров формул логики высказываний Тавтология(х) будет неразрешимым в U по причине неограниченного роста этих номеров в N. Тем не менее МНР-вычислимость в U превосходит все мыслимые возможности реальных компьютеров.
Литература
[1] Анисов А.М. Вычислительная метамодель реальности и проблема истины // Логические исследования. Вып. 13. М., 2006.
[2] Бунге М. Причинность. Место принципа причинности в современной науке. М., 1962.
[3] Вопенка П. Математика в альтернативной теории множеств. М., 1983.
[4] Грогоно П. Программирование на языке Паскаль. М., 1982.
[5] Девис М. Прикладной нестандартный анализ. М., 1980.
[6] Драгалин А.Г. Конструктивная теория доказательств и нестандартный анализ. М., 2003.
[7] Катленд Н. Вычислимость. Введение в теорию рекурсивных функций. М., 1983.
[8] Пенроуз Р. Тени разума: в поисках науки о сознании. Москва — Ижевск, 2005.
[9] Хокинг С. От большого взрыва до черных дыр. М., 1990.