ПРЕДЕЛЫ ДОКАЗУЕМОГО
Мы привыкли думать о математике как о царстве абсолютной истины. Это последний бастион, крепость, где дважды два всегда четыре, а доказательство, однажды найденное, стоит нерушимо, как гранитная скала. И вдруг в начале двадцатого века в этой крепости происходит тектонический сдвиг, который по своей разрушительной силе для человеческого высокомерия сравним разве что с гелиоцентрической системой Коперника или теорией эволюции Дарвина. Оказывается, математика не только не всесильна, но и принципиально, фатально неполна. В ней есть истины, которые невозможно доказать, и задачи, которые невозможно решить никаким, даже самым фантастическим компьютером. Речь идет о теоремах Гёделя и их логическом продолжении - работах Тьюринга и Чейтина, которые раз и навсегда очертили пределы доказуемого и вычислимого.
История этого переворота началась с грандиозного замысла. На рубеже XIX–XX веков величайшие умы, такие как Дэвид Гильберт, мечтали превратить всю математику в непротиворечивую формальную систему. Идея была красива и проста: мы берем конечный набор аксиом, четкие правила вывода - и любой математический факт рано или поздно будет либо доказан, либо опровергнут. Математика должна была стать замкнутой, идеальной конструкцией, где не останется места неясностям и недоказуемым догадкам. Гильберт призывал коллег с пафосом: «Мы должны знать, мы будем знать!». И в воздухе витало предчувствие скорой победы, казалось, что остались лишь технические детали.
И тут в 1931 году 25-летний австрийский логик Курт Гёдель опубликовал работу, которая обрушила этот карточный домик одной блестящей и невероятно изящной идеей. Он показал: в любой достаточно богатой формальной системе (а к таковым относится, например, обычная арифметика) обязательно найдется утверждение, которое истинно, но которое невозможно доказать в рамках этой системы. Более того, эту систему нельзя использовать, чтобы доказать её собственную непротиворечивость - для этого потребовались бы средства, более мощные, чем она сама, что делает задачу бесконечной, ускользающей, словно горизонт. В чем же заключалась его гениальная ересь? Гёдель придумал способ, как заставить математические формулы говорить о самих себе. Он сопоставил каждому символу, каждой формуле и каждой последовательности формул (то есть доказательству) уникальное число - так называемый гёделевский номер. Это был хитрый прием, превративший утверждения о числах в утверждения о самих утверждениях. Затем он сконструировал предложение, которое, если перевести на человеческий язык, звучит как: «Данное утверждение недоказуемо». Если предположить, что оно ложно, то оно окажется доказуемым, а значит, система будет содержать ложное утверждение, то есть будет противоречивой. Если же оно истинно, то мы именно это и утверждаем - его нельзя доказать. Система, если она непротиворечива, не может его доказать, но вынуждена признать его истинность, если мы смотрим на неё со стороны, из внешнего, мета-уровня.
Этот результат был по-настоящему шокирующим для сообщества. Мы привыкли, что истина и доказуемость - это одно и то же, что математическое доказательство - это и есть единственный легитимный способ установления истины. Гёдель же продемонстрировал зияющую пропасть между этими понятиями. Он показал, что существует огромный континент математических истин, который в принципе недоступен для формальных доказательств. Возникла любопытная ситуация: сообщество разделилось. Одни, подобно Гильберту, пытались искать лазейки, надеялись, что можно расширить систему или что Гёдель ошибся. Другие, как Герман Вейль, приняли это с горьким смирением, понимая, что математика перестала быть просто стенографией божественного разума и стала продуктом человеческих, ограниченных конструкций. Доказательство Гёделя не оставило камня на камне от программы формализма. Каждое новое добавление аксиомы, расширяющее систему, приводит лишь к тому, что в ней появляется новое, столь же недоказуемое утверждение. Эта неполнота является не недостатком, а неотъемлемым свойством.
Однако Гёдель показал пределы доказательств, но не дал нам простого критерия, как отличить доказуемое от недоказуемого. Этот шаг сделал Алан Тьюринг, который перевел проблему из мира статичных формул в мир динамичных вычислительных процессов. В 1936 году он представил свою знаменитую абстрактную машину - простейшее устройство, способное выполнять любой алгоритм, какой только можно вообразить. И на этом базисе он сформулировал проблему останова. Представьте, что вам дали программу и набор исходных данных. Можно ли, не запуская программу, заранее точно сказать, завершится ли она когда-нибудь или будет работать вечно, уйдя в бесконечный цикл? Интуиция подсказывает: а почему бы и нет? Напишем анализатор, который просматривает код и определяет, есть ли в нем опасные циклы.
Тьюринг доказал, что такой анализатор невозможен в принципе. Его аргумент - это классический образец диагонального метода, того самого, которым Кантор доказал несчетность вещественных чисел. Если бы существовала программа-оракул, которая решает проблему остановки, мы бы могли с её помощью сконструировать новую программу, которая работает ровно наоборот: останавливается, если оракул говорит «не остановится», и уходит в бесконечность, если оракул говорит «остановится». Подставив эту новую программу в качестве аргумента для самой себя, мы приходим к логическому парадоксу, который разрушает исходное предположение. Проблема остановки (ее еще называют проблема останова) - это первая, самая известная, но далеко не единственная алгоритмически неразрешимая задача. Их множество: проблема эквивалентности алгоритмов, проблема вывода в логике предикатов, проблема распознавания изоморфизма графов - все эти задачи невозможно решить одним универсальным алгоритмом.
И вот здесь происходит удивительное соединение идей Гёделя и Тьюринга. С одной стороны, теоремы Гёделя о неполноте можно рассматривать как частный случай проблемы останова: не существует алгоритма, который бы перебирал все возможные доказательства и определял, какие утверждения истинны, потому что этот алгоритм столкнулся бы с задачей, аналогичной проблеме останова. С другой стороны, Тьюринг в своем доказательстве по сути переоткрыл гёделевскую идею самореференции, только на языке машинных состояний. Они нашли одну и ту же фундаментальную границу с двух разных сторон: Гёдель - со стороны логики и языка, Тьюринг - со стороны вычислений и алгоритмов. Оба пришли к выводу, что существуют принципиальные, неустранимые пределы того, что мы можем знать и что мы можем вычислить. Гёдель показал, что истина всегда больше доказательства; Тьюринг показал, что вопросы, на которые можно ответить, всегда шире вопросов, которые может решить машина. Это не технический дефект, который можно исправить более мощным процессором или хитроумным кодом. Это свойство самой реальности, такое же фундаментальное, как скорость света или постоянная Планка. Мы живем в мире, где есть вещи, которые мы знаем, но не можем доказать, и есть вопросы, на которые мы точно знаем ответ, но не можем получить его механическим путем.
Но и на этом история не заканчивается. Грегори Чейтин, ученик знаменитого алгоритмиста Марвина Минского, пошел еще дальше, связав неполноту Гёделя с теорией информации и теорией сложности . Он ввел понятие алгоритмической сложности (или сложности по Колмогорову) - это длина самой короткой программы, которая может сгенерировать данную последовательность . Например, последовательность «01010101...» имеет низкую сложность, потому что ее можно описать простой программой: «печатать 0, потом 1, повторять N раз». А вот случайная последовательность, вроде результатов подбрасывания монетки, имеет высокую сложность - ее нельзя сжать, для нее не существует короткого описания.
Чейтин задался вопросом: а можно ли доказать, что некоторая конкретная последовательность является сложной? И получил удивительный результат, который стал вариантом теоремы Гёделя. Он показал, что для любой формальной системы существует некое число L (зависящее от этой системы), такое что утверждение «сложность данной последовательности больше L» невозможно доказать в рамках этой системы, даже если оно истинно . Проще говоря, в любой достаточно мощной математической теории можно доказать сложность лишь ограниченного набора объектов. Как только мы встречаем объект, сложность которого превышает некий порог, мы не можем формально подтвердить его сложность; нам остается лишь верить, что он действительно сложен. Это означает, что случайность и сложность, которые мы интуитивно чувствуем, во многом остаются за пределами формального познания.
В чем же практическая и философская значимость этих открытий для нас, далеких от математической логики людей? Во-первых, это смирение. Научный прогресс неумолим, но у него есть потолок, и этот потолок - не просто технические трудности, а фундаментальные законы логики и информации. Мы никогда не сможем создать машину, которая решает все проблемы, и никогда не напишем учебник, который содержит доказательства всех истин. Во-вторых, это освобождение. Если мы не можем формализовать всё, значит, всегда останется место для творчества, интуиции и живого мышления, которые принципиально не алгоритмизуемы. Искусственный интеллект, каким бы мощным он ни стал, никогда не сможет полностью заменить человеческий разум, потому что разум способен видеть истины, которые находятся за пределами формальных систем. В-третьих, это напоминание о том, что любая модель, которую мы строим - будь то экономическая теория, психологическая концепция или компьютерный симулятор - является лишь приближением, которое имеет свои границы применимости. Теоремы Гёделя и Тьюринга - это не проклятие и не приговор. Это скорее пересмотр контракта между человеком и Вселенной: мы соглашаемся на то, что не можем всё знать и всё вычислить, но именно это незнание и делает процесс познания бесконечным и вечно увлекательным. Мы ищем истину не для того, чтобы запереть её в клетку аксиом, а для того, чтобы каждый раз, подходя к новому горизонту, видеть, что за ним простираются новые, не исследованные земли.
Продолжение следует.