Колмогоровская сложность
Была ли встреча с самым дорогим вам человеком случайной, или виной тому была какая-то скрытая причина? А что насчёт странного вчерашнего сна – это были только случайные метания синапсов мозга, или он раскрыл что-то глубокое по поводу вашего подсознания? Возможно, сон пытался рассказать вам что-то о вашем будущем. Возможно, что и нет. Имеет ли тот факт, что ваш близкий родственник заболел опасной разновидностью рака, какой-то глубокий смысл, или же это просто последствия случайных мутаций ДНК?
В нашей жизни мы часто задумываемся над закономерностями происходящих вокруг нас событий. Мы задаёмся вопросом, случайны ли наши жизни, или у них есть какой-то смысл, уникально истинный и глубокий. Я, как математик, часто обращаюсь к числам и теоремам за идеями по поводу подобных вопросов. И так получилось, что я кое-что узнал о поиске смысла в закономерностях жизни благодаря одной из самых глубоких теорем математической логики. Эта теорема, проще говоря, демонстрирует, что в принципе невозможно узнать, является ли объяснение закономерности наиболее глубоким или интересным из всех объяснений. Точно так же, как в жизни, поиск смысла в математике ничем не ограничен.
Небольшая прелюдия. Рассмотрим следующие три строки символов.
1. 100100100100100100100100100100100100100100100100100100100100100100100
2. 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
3. 38386274868783254735796801834682918987459817087106701409581980418.
Как мы можем их описать? Например, мы легко можем это сделать, просто записав их – так, как мы только что и проделали. Однако сразу ясно, что первые две строчки можно описать и короче. Первая – это просто последовательность повторяющихся «100». Вторая – список первых нескольких простых чисел. А что насчёт третьей? Её можно описать, просто выведя всю строку. Но есть ли для неё лучшее, более короткое описание?
В начале 1960-х американский подросток Грегори Хайтин, всемирно известный русский [и советский] математик Андрей Николаевич Колмогоров, и пионер информатики Рэй Соломонов независимо друг от друга сформулировали способ измерения сложности последовательностей символов. Их идеи стали называть теорией сложности Колмогорова или алгоритмической теорией информации. Они постулируют, что сложность строки определяется длиной наикратчайшей компьютерной программы, способной её выдать. То есть, возьмём строчку, и поищем самую короткую компьютерную программу, которая её выдаёт. Программа – один из видов описания строки. Если кратчайшая из таких программ окажется очень короткой, тогда в строке есть простая закономерность, и она не очень сложная. Мы говорим, что в такой строке мало алгоритмическое содержание. И наоборот, если для выдачи строки требуется длинная программа, тогда строка сложная, и её алгоритмическое содержание больше. Для любой строки необходимо искать кратчайшую программу, выдающую такую строку. Длина такой программы называется Колмогоровской сложностью строки.
Давайте вернёмся к трём первым строчкам. Первые две строки можно описать при помощи относительно коротких компьютерных программ:
1. Вывести “100” 30 раз.
2. Вывести первые 25 простых чисел.
Колмогоровская сложность первой строки меньше Колмогоровской сложности второй строки, поскольку первая программа короче второй. Что насчёт третьей? У этой строчки нет очевидных закономерностей. Тем не менее, можно написать дурацкую программу, выводящую эту последовательность:
3. Вывести “38386274868783254735796801834682918987459817087106701409581980418”
Такая программа справляется с задачей, но неудовлетворительно. Возможно, существует программа короче, демонстрирующая наличие закономерности в этой строке. Когда кратчайшей программой, выдающей строку, оказывается программа «вывести строку», мы говорим, что эта строка очень сложна, и известных закономерностей не содержит. Строка без закономерностей называется случайной. Но хотя мы закономерности не увидели, она может существовать. В математике, как и в жизни, мы сталкиваемся со множеством закономерностей, кажущихся случайными.
Мы могли бы попытаться использовать удивительные возможности современных компьютеров, чтобы найти закономерность и кратчайшую программу. Разве не было бы замечательно, если бы существовал компьютер, способный просто вычислить Колмогоровскую сложность любой строки? Такой компьютер принимал бы на вход строку, и выводил бы длину кратчайшей программы, способной выдать эту строку. Конечно же, со всеми этими новомодными штучками вроде ИИ, глубинного обучения, больших данных, квантовых вычислений, и т.п., должно быть легко создать такой компьютер.
Увы, такой компьютер создать невозможно! Пусть современные компьютеры и весьма мощны, эта задача невыполнима. Таково содержание одной из глубочайших теорем математической логики. Теорема, по сути, говорит, что Колмогоровскую сложность строки невозможно вычислить. Не существует механического устройства, определяющего размер наименьшей программы, выдающей заданную строку. Дело не в том, что наш текущий уровень компьютерных технологий не дотягивает до задачи, или что мы недостаточно умны для того, чтобы написать такой алгоритм. Было доказано, что сама идея описание и вычисления демонстрирует, что компьютер в принципе не в состоянии выполнить такую задачу для любой строки. И если компьютер, возможно, способен на поиски определённых закономерностей в строке, он не способен найти наилучшую закономерность. Мы, возможно, и найдём короткую программу, выводящую определённую последовательность, но всегда может существовать ещё более короткая. Мы никогда об этом не узнаем.
Само доказательство невычислимости Колмогоровской сложности для последовательности довольно формальное. Но это доказательство от противного, и мы можем примерно представить себе, как оно работает, рассмотрев пару небольших и милых парадоксов.
Парадокс интересных чисел связан с утверждением, что все натуральные числа интересные. 1 – это первое число, и это интересно. 2 – первое чётное число. 3 – первое нечётное простое число. 4 – интересное число, потому что 4 = 2 × 2 и 4 = 2+2. В таком роде можно продолжать дальше, и находить интересные свойства многих чисел. В какой-то момент мы можем встретить число без интересных свойств. И мы можем назвать это число первым неинтересным номером – но это само по себе уже интересное свойство. В итоге неинтересные числа тоже оказываются интересными!
Идеи, содержащиеся в Колмогоровском доказательстве, похожи на идеи парадокса Берри, касающегося описания больших чисел. Заметим, что чем больше слов мы используем, тем большее число мы можем описать. К примеру, трем словами можно описать «триллион триллионов», а пятью – " триллион триллионов триллионов триллионов триллионов", куда как более крупное число. Теперь рассмотрим число, описываемое следующей фразой:
Самое маленькое число, которое нельзя описать меньше, чем пятнадцатью словами [The smallest number that cannot be described in less than 15 words]
Для описания числа требуется 15, 16 или даже больше слов. Его нельзя описать 12, 13 или 14 словами. Однако, вот в чём проблема: приведённая выше фраза описывает это число при помощи 10 слов [по-английски – 12 слов / прим. перев.]. Наше описание числа противоречит описанию числа – вот вам и парадокс.
В парадоксе интересных чисел и в парадоксе Берри мы приходим к противоречиям, предполагая существование точного способа описания чего-либо. Точно так же, доказательство невычислимости Колмогоровской сложности вытекает из того, что если бы оно было вычислимым, мы пришли бы к противоречию.
То, что Колмогоровская сложность невычислима – это результат из чистой математики, и мы не должны путать этот идеальный мир с куда как более сложной и беспорядочной реальностью. Однако существуют некоторые общие моменты, связанные с Колмогоровской сложностью, которые мы можем привнести в реальный мир.
Много раз мы сталкивались с тем, что казалось нам совершенно хаотичным. Случайность нервирует нас, и мы ищем закономерности, частично устраняющие хаос. Если мы находим закономерность, остаётся неясным, является ли она лучшей закономерностью, объясняющей наши наблюдения. Мы можем задаться вопросом – существует ли более глубокая закономерность, дающая лучшее объяснение. Теория Колмогоровской сложности учит нас тому, что на базовом уровне не существует гарантированного способа определить наилучшую закономерность. Мы просто никогда не узнаем о том, является ли найденная нами закономерность наилучшей.
Но именно это и делает поиск бесконечно интересным. По определению нечто является интересным, если требует дополнительных размышлений. Очевидный и полностью понятный факт не требует дальнейших размышлений. То, что шестью семь будет сорок два – совершенно понятно и неинтересно. Только когда мы не уверены по поводу идей, нам нужно подтверждать их и размышлять о них. Поиск улучшенных закономерностей всегда будет интересным.
Реальный мир добавляет сложности. Если в мире строк и компьютерных программ ошибок нет, в реальном мире можно совершить ошибку. Мы легко узнаем, выводит ли какая-то определённая программа строку, или нет. И хотя мы, вероятно, не сможем определить оптимальную программу для вывода определённой строки, мы сможем определить, выводит ли она требуемую строку. А реальный мир, в отличие от этого, гораздо более сложный. Нам может показаться, что мы видим последовательность, когда её, на самом деле, нет.
Наше понимание наших поисков смысла начинает оформляться. Мы презираем случайности и обожаем закономерности. Мы биологически запрограммированы находить закономерности, объясняющие то, что мы видим. Но мы не можем быть уверены, что найденная нами закономерность будет правильной. Даже если бы мы каким-то образом могли гарантировать отсутствие ошибки, и достигли бы совершенства, подобного компьютерному, где-то всё равно всегда может находиться ещё более глубокая истина. Это напряжение подпитывает нашу любовь к литературе, театру и кино. Когда мы читаем роман или смотрим пьесу, автор или режиссёр представляет нам последовательность событий с общей темой, закономерностью или моралью. Литература, пьесы и кино предлагают нам великолепный способ убежать от обычно непонятного и бессмысленного хаоса, встречающегося нам в окружающем мире. Очень хорошая литература идёт дальше, и оставляет нам возможности многих интерпретаций. Мы лицом к лицу встречаемся с невычислимостью Колмогоровской сложности.
Это напряжение также определяет, как мы проживаем наши жизни. Путешествуя сквозь якобы случайные события, мы ищем закономерности и структуру. Жизнь полна взлётов и падений. Есть радость влюблённости, веселого времяпрепровождения с детьми, ощущения великих достижений по окончанию сложной работы. Есть боль разрушающихся отношений, агония неудачи после активных попыток выполнить задачу, трагедия смерти любимого. Мы пытаемся искать во всём этом смысл. Мы презираем чувство полной случайности и идею, что мы просто следуем хаотичным, незамысловатым законам физики. Мы хотим знать, нет ли в окружающем мире какого-то смысла, цели, значимости. Нам нужна волшебная история жизни, и мы рассказываем себе истории.
Иногда эти истории просто ложны. Иногда мы обманываем себя и окружающих. А иногда мы правильно определяем закономерности. Но даже когда история правдива, она не обязательно будет наилучшей. Мы никогда не будем уверены, что в глубине не лежит ещё более базовая и точная история. Старея и впадая в тоску, мы приобретаем определённые идеи по поводу Вселенной, недоступные нам раньше. Мы находим улучшенные закономерности. Возможно, мы начинаем видеть вещи яснее. Или нет. Мы никогда не узнаем. Но мы знаем, что поиски гарантированно не закончатся.
Нозон Яновски – доктор наук в математике, работает в Образовательном центре городского университета Нью-Йорка, профессор информатики в Бруклинском колледже того же университета.
Источник: habr.com