
Полная версия
P не равно NP: Доказательство, которое математики не поймут
3.4. Почему эти подходы не решили проблему P vs NP
Итак, мы рассмотрели три великих попытки вернуть субъекта в математику. Брауэр сказал: математика — это деятельность ума, а не склад платонических объектов. Марков сказал: математика — это деятельность алгоритма, а не созерцание истин. Мартин-Лёф сказал: доказательство — это программа, и если программа не компилируется, то у вас нет доказательства. Казалось бы, после таких заявлений проблема P vs NP должна была рассыпаться сама собой, как карточный домик под порывом ветра.
Не рассыпалась. Почему?
Каждый из трёх подходов совершил один и тот же подвиг: он вернул в математику различие между «построено» и «угадано». И каждый из трёх подходов совершил одну и ту же ошибку: он не различил «построено быстро» и «построено медленно». А проблема P vs NP — это именно о скорости.
Брауэр великолепно расправился с неконструктивными доказательствами существования. Он сказал: предъявите объект. Предъявите метод. Не можете — вы не математик, вы метафизик. Но он ничего не сказал о том, сколько времени должно занимать это предъявление. Интуиционистское доказательство существования может быть экспоненциально сложным — и с точки зрения Брауэра это нормально. Главное, что оно конструктивно. Главное, что объект строится, а не угадывается. А то, что строительство займёт время жизни Вселенной, — это уже не математический вопрос, а инженерный [87].
Марков пошёл дальше: он формализовал конструктивность через понятие алгоритма. Алгоритм либо есть, либо нет. Если есть — объект существует. Если нет — извините. Но Марков, как и Брауэр, не различал быстрые и медленные алгоритмы. Алгоритм полного перебора, работающий экспоненциальное время, — это с точки зрения конструктивной математики Маркова полноценный алгоритм. Он строит объект. Он доказывает существование. То, что его выполнение требует астрономического числа шагов, никого не волнует. Конструктивная математика гарантирует существование построения, но не гарантирует, что это построение можно дождаться [76].
Мартин-Лёф встроил конструктивность в синтаксис. В его теории типов нельзя доказать существование, не предъявив программу. Но — опять то же самое — теория типов ничего не говорит о сложности этой программы. Вы можете написать программу, которая перебирает все возможные сертификаты, пока не найдёт подходящий. Тип у такой программы будет правильный. Компилятор пропустит. Теорема доказана. А то, что программа работает экспоненциально долго, — это проблема hardware, а не mathematics [86].
Три великих революции. Три героических попытки. И один и тот же дефект: слепота к ресурсу. Слепота ко времени. Слепота к тому, что построение построению рознь, и что построение за экспоненциальное время — это практически та же фикция, что и платоническое существование, только растянутая во времени настолько, что никто не доживёт до её завершения.
Почему все три подхода проигнорировали время? Ответ прост и обиднее, чем хотелось бы: потому что время — это не математическая категория. По крайней мере, не математическая в том смысле, какой вкладывают в это слово математики.
В платоническом мире времени нет. Объекты не возникают и не исчезают. Они просто есть — всегда были и всегда будут. В таком мире вопрос «сколько времени займёт построение?» бессмыслен — потому что само понятие «займёт время» предполагает процесс, а процесс предполагает время, а время предполагает субъекта, который ждёт [88].
Математика, изгнавшая субъекта, изгнала и время. У неё нет часов. У неё есть только логическая выводимость: из A следует B, и не важно, сколько шагов вывода потребовалось. Теорема, доказанная за миллион страниц, и теорема, доказанная за три строчки, равноправны. Алгоритм, работающий экспоненциальное время, и алгоритм, работающий линейное время, — оба алгоритмы, и оба «существуют» в платоническом смысле.
Проблема P vs NP — это бунт времени против вечности. Это крик реальности о том, что ресурсы конечны. Это напоминание о том, что математика делается живыми людьми, у которых есть дедлайны, гранты и продолжительность жизни. И ответить на этот крик бессубъектная математика не может — потому что в её языке нет слова «успеть» [89].
Чтобы решить проблему P vs NP, недостаточно различать «построено» и «угадано». Нужно различать «построено быстро» и «построено медленно». Нужна не просто конструктивная математика, а эффективно конструктивная математика. Математика, в которой существование без предъявления эффективного метода — это не существование. Математика, в которой экспоненциальный алгоритм — это не алгоритм, а издевательство над словом «алгоритм».
Брауэр, Марков и Мартин-Лёф сделали первый шаг. Они сказали: предъявите метод. Но они не сказали: предъявите метод, который работает за полиномиальное время. Они не сказали этого, потому что сами ещё не до конца освободились от платонического мышления. Они всё ещё верили, что метод — это да или нет, а не быстро или медленно. Они всё ещё не видели разницы между «можно построить» и «можно построить до завтрака» [90].
Гуманитарный метод, который мы излагаем в этой книге, делает второй шаг. Он говорит: мало предъявить метод. Метод должен быть однозначным — то есть на каждом шагу должно быть ясно, что делать, без перебора вариантов и угадывания. Метод должен быть наблюдаемым — элементарное действие должно быть действием, а не фантазией. И только такой метод превращает желание в потребность, а задачу — в теорию.
Иными словами, гуманитарный метод добавляет к конструктивности требование полиномиальности, не называя его полиномиальностью. Однозначность метода — это и есть критерий, который отсекает экспоненциальный перебор. Перебор — это не метод, это отсутствие метода, замаскированное под метод.
Три великих альтернативных подхода не решили проблему P vs NP, потому что они решали другую проблему. Они решали проблему конструктивности — и решили её блестяще. Но проблема P vs NP — это не проблема конструктивности. Это проблема эффективной конструктивности. Это проблема ресурса. Это проблема времени.
А время возвращается в математику только вместе с субъектом. Потому что только субъект знает, что значит «ждать». Только субъект знает, что значит «не успеть». Только субъект различает «алгоритм» и «алгоритм, который я запущу и дождусь результата».
Три богатыря остановились в шаге от финиша. Они построили мост между математикой и программированием — но не перешли по нему. Они всё ещё оглядывались на платонический мир, где время не имеет значения. Гуманитарный метод переходит мост до конца. И на той стороне — математика, в которой P не равно NP не потому, что мы это доказали, а потому, что это следует из самого определения метода.
3.5. Необходимость более глубокого основания: субъект и осознание
Мы перебрали всех героев. Брауэр хотел вернуть в математику ум, но не объяснил, что это такое. Марков хотел заменить ум алгоритмом, но не заметил, что алгоритмы бывают экспоненциальными и, следовательно, бесполезными. Мартин-Лёф построил математику, в которой доказательство компилируется, но компилятору всё равно, займёт ли выполнение программы секунду или тепловую смерть Вселенной.
Все трое споткнулись об одно и то же: они пытались починить математику, оставаясь внутри неё. Они меняли аксиомы, переопределяли логику, вводили новые формальные системы — но они не спрашивали, кто будет всем этим пользоваться. А без ответа на этот вопрос любая формальная система — хоть классическая, хоть интуиционистская, хоть типовая — остаётся игрой в символы. Игры могут быть красивыми, увлекательными, даже полезными. Но они не решают проблему P vs NP. Потому что эта проблема — не о символах. Эта проблема — о том, кто эти символы пишет и кто ждёт результата.
Общий дефект всех трёх подходов: они пытались решить проблему субъекта без субъекта. Они хотели, чтобы математика стала честной, конструктивной, осмысленной — но они не хотели впускать в неё живого человека с его ограниченным временем, с его потребностью в результате, с его желанием осознать, что он сделал. Они построили прекрасные формальные системы — и оставили их пустыми, как дома без жильцов.
Здесь мы подходим к центральному пункту, который отделяет гуманитарный метод от всех предыдущих попыток. Марков и Мартин-Лёф заменили субъекта алгоритмом. Это был колоссальный прогресс по сравнению с платонизмом, где субъекта не было вообще. Но это была замена одного неживого на другое.
Алгоритм — это не субъект. Алгоритм не устаёт. Алгоритм не хочет кушать. Алгоритму не нужно домой, к семье. Алгоритм может работать экспоненциальное время и не жаловаться. Алгоритму всё равно, закончится ли вычисление через секунду или через миллиард лет. У алгоритма нет желаний. У алгоритма нет потребностей. У алгоритма нет осознания.
Субъект — это не просто исполнитель инструкций. Субъект — это тот, кто ставит цель. Тот, кто хочет результата. Тот, кто ограничен во времени и в ресурсах. Тот, кто страдает, когда метод не находится. Тот, кто радуется, когда осознаёт, что он сделал.
Именно поэтому никакая формальная система, сколь угодно конструктивная, не может решить проблему P vs NP сама по себе. Потому что проблема P vs NP — это не проблема формальной системы. Это проблема субъекта. Это субъект спрашивает: «Могу ли я найти решение за разумное время?» Это субъект различает «быстро» и «медленно» — не потому, что у него есть формальное определение полиномиальности, а потому, что у него есть жизнь, которая конечна [91].
Чего не хватало Брауэру, Маркову и Мартин-Лёфу? Одного-единственного, но решающего элемента: осознания. Они все говорили о построении. Но никто из них не говорил о том, что построение должно быть осознанным. Что мало построить объект — нужно ещё осознать, как именно ты это сделал. Что метод должен быть не просто предъявлен, а предъявлен с пониманием, почему он работает.
Гуманитарный метод, который мы начинаем излагать в следующей части, ставит осознание в центр. Не просто «алгоритм существует». Не просто «программа компилируется». А «я знаю, что я сделал, чтобы получить этот результат». Это знание превращает желание в потребность. Превращает магию в технологию. Превращает угадывание в метод.
И именно это знание и есть критерий, отделяющий P от NP. P-задача — это задача, для которой метод может быть осознан. NP-задача — это ситуация, для которой метод не осознаётся, сколько ни бейся, потому что его там нет — есть только перебор или чудо.
Три богатыря пытались построить математику без чудес. Это была благородная цель. Но они не заметили, что чудеса можно маскировать под алгоритмы — достаточно сделать алгоритм экспоненциальным. И только осознание, только понимание «что я сделал» позволяет отличить настоящий метод от экспоненциальной имитации. Потому что метод можно осознать и передать другому. А экспоненциальный перебор нельзя осознать — можно только смириться с ним, как с неизбежным злом.
На этом мы заканчиваем историческую часть. Мы видели, как математика изгнала субъекта — и ослепла. Мы видели, как герои-одиночки пытались вернуть субъекта — и не смогли, потому что им не хватило понятия осознания. Теперь наша задача — построить альтернативу, которая не повторит их ошибок.
В следующей части мы изложим гуманитарный метод — философию, которая ставит субъекта в основание математики и даёт строгий критерий, позволяющий отличить P-задачи от NP-задач не через формальные определения классов, а через саму структуру субъективного опыта. Мы покажем, что проблема P vs NP не решается формальными средствами не потому, что она слишком сложна, а потому, что она требует возвращения того, кого математика изгнала.
И здесь же, на самом пороге следующей части, введём важное терминологическое уточнение, которое избавит нас от двусмысленности. До сих пор мы, следуя традиции, говорили «NP-задача». Это было вынужденное подчинение чужому языку. Начиная с этого момента, мы будем называть вещи своими именами.
То, что в классической теории сложности именуется «NP-задачей», с точки зрения гуманитарного метода задачей не является. Задача — это то, у чего есть метод. То, что можно решить, осознавая свои действия шаг за шагом. То, что превращает желание в потребность через предъявление однозначного способа действия.
NP-сущность не такова. У неё нет метода. Есть предмет — свойства, которым должно удовлетворять решение. Есть возможность проверить, удовлетворяет ли предъявленный объект этим свойствам. Но метода построения нет. Он заменён либо перебором, либо угадыванием, либо чудом.
Поэтому в дальнейшем мы будем говорить не «NP-задача», а «NP-ситуация». Это не задача. Это ситуация, в которую попадает субъект: он знает, что ответ существует, он может опознать его когда увидит, но он не знает, как к нему прийти. Он фрустрирован. Он ждёт озарения. Он перебирает варианты. Он надеется на чудо.
Разница между «задачей» и «ситуацией» — это и есть разница между P и NP. Задача имеет метод. Ситуация — нет. Задача решается. Ситуация разрешается — или не разрешается — сама. Задача превращает субъекта в мастера. Ситуация превращает субъекта в игрока.
Так что договоримся: P-задачи и NP-ситуации. Это не игра в слова. Это возвращение слову «задача» его первоначального смысла — того, который математика утратила вместе с субъектом. Задача — это когда ты знаешь, что делать. А когда не знаешь — это ситуация. И первое, чему учит гуманитарный метод, — это честно признаваться себе, в чём ты находишься: в задаче или в ситуации.
Теперь — к делу. К изложению самого метода.
Часть II. ГУМАНИТАРНЫЙ МЕТОД: МАТЕМАТИКА С СУБЪЕКТОМ
Глава 4. Субъект и субъективное явление
4.1. Кто я? Наблюдатель субъективных явлений
Математики привыкли, что доказательства бывают двух сортов. Либо вы доказываете что-то о внешнем мире — о числах, о множествах, о функциях, — и тогда ваше собственное существование не имеет к доказательству никакого отношения. Либо вы не доказываете ничего, а занимаетесь философией, и тогда вас можно не слушать.
Сейчас мы сделаем нечто непростительное с точки зрения обоих этих сортов. Мы докажем теорему о том, кто такой доказывающий. И докажем её строго — методом от противного, которым математики так гордятся. А затем укажем им на то, что доказательство, которое они только что прочитали, является контрпримером к их собственной картине мира. Потому что это доказательство не может быть присвоено никаким формальным автоматом. Оно требует того, кто его читает и узнаёт в нём себя.
Начнём с определений. Они просты настолько, что математику должно стать не по себе от их простоты. Никакой теории множеств. Никаких аксиом выбора. Только то, что непосредственно дано в опыте каждому, кто сейчас читает этот текст.
Субъективное явление — это явление, наблюдаемое одним и только одним субъектом.
Не двумя. Не тремя. Не всем человечеством сразу. Одним. Тем самым, который сейчас читает эти строки. Если явление наблюдаете вы — это ваше субъективное явление. Если его же наблюдаю и я — оно уже не субъективное, потому что нас двое.
Субъект — это тот, кто наблюдает субъективные явления. Носитель этого уникального, неразделяемого опыта. Не «человек вообще». Не «сознание как философская категория». Не «множество всех познающих существ». А конкретный наблюдатель, который прямо сейчас видит буквы на экране или бумаге.
Я — это тот субъект, который задаёт вопрос «Кто я?». Не абстрактное концептуальное «я» из учебников по философии. Не «я» как лингвистическая переменная, которую можно подставить в предложение. А то самое «я», которое произносит или думает это слово. Которое сомневается, читает, понимает или не понимает. Которое является не объектом исследования, а его источником [92].
Заметьте: здесь нет никакой метафизики. Никаких допущений о природе сознания. Никаких споров о том, является ли субъект душой, мозгом или информационным процессом. Есть только констатация: вот это — моё наблюдение, и никто другой не имеет к нему доступа. Это не гипотеза. Это исходный факт, с которого начинается любое познание [93].
Теперь — сама теорема.
Я — наблюдатель субъективных явлений.
Доказательство.
Предположим, что субъективное явление наблюдаю не я. Тогда его наблюдают другие. Но «другие» — это множество. А согласно определению, субъективное явление наблюдается одним и только одним субъектом. Множество наблюдателей противоречит определению. Следовательно, предположение ложно.
Значит, субъективные явления наблюдаю именно я.
Что и требовалось доказать.
Кто доказывает — тот и прав
Всё. Три строчки. Но в этих трёх строчках спрятана бомба, которую математики не смогут обезвредить.
Здесь есть одна тонкость, которую математики, привыкшие к формальным доказательствам, почти наверняка пропустят. А она — ключевая.
Доказательство, которое мы только что провели, не является доказательством о некоем абстрактном «я», которое можно подставить в учебник и забыть. Это доказательство, которое может провести только тот, кто его читает. Я не могу доказать эту теорему за вас. Вы не можете доказать её за меня. Каждый доказывает её сам — про себя.
Когда я говорю: «Я — наблюдатель субъективных явлений», — это утверждение истинно только в том случае, если «я» здесь — это тот, кто его произносит. Если вы скажете: «Я — наблюдатель субъективных явлений», — это будет другое доказательство, с другим субъектом, но с той же самой логической структурой.
Иными словами, перед нами доказательство, которое невозможно обезличить. Его нельзя записать в формальной системе и поручить проверку автомату. Потому что автомат не наблюдает субъективных явлений. У автомата нет «я». Автомат не может провести доказательство от первого лица — он может только манипулировать символами, в которые это доказательство превращено постфактум [96].
Это не недостаток доказательства. Это его суть. Оно показывает, что существуют истины, которые не являются безличными. Которые требуют субъекта — не как абстрактного понятия, а как живого, конкретного, вот этого самого читателя. Математика, которая претендует на то, чтобы быть наукой без субъекта, принципиально не может включить такую истину в свой корпус. Но это не значит, что истины нет. Это значит, что математика слепа к ней.
И вот здесь — самый болезненный для формалистов поворот. Проведённое доказательство не даёт мне права утверждать, что «все люди — наблюдатели субъективных явлений». Этого я не доказывал. Я доказал только про себя. Про того, кто читает эти строки, — должен доказать он сам. Про того, кто не читает, — я вообще ничего не могу утверждать, потому что у меня нет доступа к его опыту.
Это фундаментальная асимметрия, которой нет в классической математике. Там если теорема доказана для одного элемента множества, она часто — через обобщение — доказывается для всех. Здесь этот трюк не проходит. Доказательство для «я» не переносится автоматически на «ты» или «они». Каждый субъект должен провести его самостоятельно.
Математик может возразить: «Но это же солипсизм! Вы утверждаете, что существуете только вы!» Нет. Я не утверждаю, что существую только я. Я утверждаю, что мои субъективные явления даны только мне. О существовании других субъектов я могу догадываться, могу верить в них, могу строить теории — но я не могу наблюдать их субъективные явления. Утверждение «другие субъекты существуют и наблюдают свои субъективные явления» — это не доказанный факт, а разумная и полезная гипотеза, которой мы все пользуемся в повседневной жизни и которая, как мы увидим позже, может быть строго обоснована в рамках гуманитарного метода через понятие меры объективности. Но это именно гипотеза, а не логическая необходимость [95].
Так что доказательство, которое мы только что провели, — это не конец разговора о субъекте, а его начало. Мы установили, что я — наблюдатель субъективных явлений. Дальше мы будем выяснять, когда я им являюсь, с какой целью я наблюдаю и что из этого следует для математики. Но первый шаг сделан. Математик, который хочет оспорить это доказательство, должен сделать нечто такое, чего он делать не привык: он должен сказать «я» не наблюдатель субъективного явления. И что?
4.2. Сознание как состояние наблюдения субъективного явления
Итак, мы установили: я — наблюдатель субъективных явлений. Но эта формулировка, при всей её точности, немедленно провоцирует следующий вопрос: а всегда ли я им являюсь? Круглые сутки? Без перерывов и выходных? Или бывают моменты, когда я не наблюдаю субъективных явлений, — и тогда я, выходит, не вполне «я»?
Вопрос не праздный. Математики, привыкшие к тому, что функции определены на всей области, а множества не имеют пробелов, возможно, удивятся: как это — «я» может то быть, то не быть? Но здесь им придётся смириться с реальностью, которая гораздо богаче их аксиоматики.
Обратимся к личному опыту — тому самому, который математики объявили ненадёжным и исключили из своей науки. Зададим простой вопрос: всё ли время я наблюдаю субъективные явления?
Применим метод, который математики должны оценить: перебор, и ответ станет очевиден каждому, кто когда-либо спал, забывался, отключался. Возможно падал в обморок. В эти моменты я не наблюдаю ничего — ни субъективного, ни объективного, ни какого бы то ни было ещё. Мир исчезает. Субъективные явления прекращаются. А вместе с ними — на время — исчезаю и я как наблюдатель.
Это эмпирический факт, а не философская спекуляция. Каждый может проверить его на себе — достаточно дождаться вечера и лечь спать. Проснувшись, вы сможете засвидетельствовать: был промежуток, в котором вы не наблюдали ничего. Вы не можете сказать, сколько он длился, — потому что в этом промежутке вас как наблюдателя не было. Часы показывают, что прошло восемь часов, но для вас этот промежуток имеет нулевую длительность. Вы закрыли глаза — и открыли их через мгновение, которое для внешнего мира длилось всю ночь [97].
Формалист, желающий поспорить, может сказать: «Но вы же дышали во сне! Вы переворачивались! Ваш мозг работал!» Да, работал. Но я этого не наблюдал. Субъективное явление — это не физиологический процесс. Это то, что дано в опыте. А в опыте сна никаких субъективных явлений нет. Есть провал. Есть ничто. Есть отсутствие наблюдателя [98].
Результат однозначен. Я говорю о себе «я» — то есть выступаю как субъект, как наблюдатель субъективных явлений, — только тогда, когда я нахожусь в сознании. Бессознательно я в «я» не бываю. Сознание — это не просто активность мозга. Это состояние, в котором возможно наблюдение субъективных явлений [100].
Отсюда — определение, которое математикам придётся принять, потому что оно не опирается ни на какую теорию, а только на непосредственный опыт каждого, как аксиому очевидного:
Сознание — это состояние «я наблюдаю субъективное явление».
Не «способность к рефлексии». Не «высшая нервная деятельность». Не «осознание себя как личности». Всё это — следствия или интерпретации. Первично — наблюдение. Сознание — это не субстанция, не функция, не процесс. Это состояние. Состояние, в котором есть субъект и есть явление, которое он наблюдает.
В этом определении нет ничего такого, что математик мог бы отвергнуть как «ненаучное». Оно не ссылается на душу, на Бога, на мировой разум. Оно ссылается только на факт, доступный каждому: иногда я наблюдаю, иногда — нет. Когда наблюдаю — я в сознании. Когда не наблюдаю — не в сознании. Всё остальное — комментарии [101].
Приняв это определение, мы немедленно получаем следствие, которое математики — особенно те, кто работает в теории сложности, — должны повесить у себя над рабочим столом.
Любое познание, любое доказательство, любое решение задачи происходит в сознании. Потому что вне сознания нет субъекта. А без субъекта нет того, кто познаёт. Формальная система может существовать вне сознания — как текст, как последовательность символов, как файл на компьютере. Но она не познаётся вне сознания. Она просто лежит. Познание — это не свойство текста. Это свойство субъекта, который этот текст читает и понимает.
Математика, исключившая субъекта, исключила и сознание. Она сделала вид, что доказательства существуют сами по себе, что истины открываются без того, кто их открывает. Но это фикция, которую мы уже разоблачили в предыдущих главах. Теперь, вооружённые определением сознания, мы можем сказать точнее: математика, исключившая субъекта, работает только по ту сторону сознания. Она имеет дело с мёртвыми объектами. А живое познание — это всегда познание в сознании.
Проблема P vs NP — не исключение. Это проблема, которая может быть решена только в сознании. Вот почему гуманитарный метод начинает с субъекта и сознания. Это не философские украшения. Это необходимые условия для того, чтобы вообще поставить проблему P vs NP так, чтобы она стала разрешимой. Без них — без наблюдателя и его сознания — проблема остаётся игрой символов, которую, как показали Бейкер, Гилл и Соловей, не выиграть стандартными средствами.









