Что математика может рассказать нам о поиске порядка в хаосе жизни




Была ли встреча с самым дорогим вам человеком случайной, или виной тому была какая-то скрытая причина? А что насчёт странного вчерашнего сна – это были только случайные метания синапсов мозга, или он раскрыл что-то глубокое по поводу вашего подсознания? Возможно, сон пытался рассказать вам что-то о вашем будущем. Возможно, что и нет. Имеет ли тот факт, что ваш близкий родственник заболел опасной разновидностью рака, какой-то глубокий смысл, или же это просто последствия случайных мутаций ДНК?

В нашей жизни мы часто задумываемся над закономерностями происходящих вокруг нас событий. Мы задаёмся вопросом, случайны ли наши жизни, или у них есть какой-то смысл, уникально истинный и глубокий. Я, как математик, часто обращаюсь к числам и теоремам за идеями по поводу подобных вопросов. И так получилось, что я кое-что узнал о поиске смысла в закономерностях жизни благодаря одной из самых глубоких теорем математической логики. Эта теорема, проще говоря, демонстрирует, что в принципе невозможно узнать, является ли объяснение закономерности наиболее глубоким или интересным из всех объяснений. Точно так же, как в жизни, поиск смысла в математике ничем не ограничен.



Небольшая прелюдия. Рассмотрим следующие три строки символов.

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 слов / прим. перев.]. Наше описание числа противоречит описанию числа – вот вам и парадокс.

В парадоксе интересных чисел и в парадоксе Берри мы приходим к противоречиям, предполагая существование точного способа описания чего-либо. Точно так же, доказательство невычислимости Колмогоровской сложности вытекает из того, что если бы оно было вычислимым, мы пришли бы к противоречию.

То, что Колмогоровская сложность невычислима – это результат из чистой математики, и мы не должны путать этот идеальный мир с куда как более сложной и беспорядочной реальностью. Однако существуют некоторые общие моменты, связанные с Колмогоровской сложностью, которые мы можем привнести в реальный мир.

Много раз мы сталкивались с тем, что казалось нам совершенно хаотичным. Случайность нервирует нас, и мы ищем закономерности, частично устраняющие хаос. Если мы находим закономерность, остаётся неясным, является ли она лучшей закономерностью, объясняющей наши наблюдения. Мы можем задаться вопросом – существует ли более глубокая закономерность, дающая лучшее объяснение. Теория Колмогоровской сложности учит нас тому, что на базовом уровне не существует гарантированного способа определить наилучшую закономерность. Мы просто никогда не узнаем о том, является ли найденная нами закономерность наилучшей.

Но именно это и делает поиск бесконечно интересным. По определению нечто является интересным, если требует дополнительных размышлений. Очевидный и полностью понятный факт не требует дальнейших размышлений. То, что шестью семь будет сорок два – совершенно понятно и неинтересно. Только когда мы не уверены по поводу идей, нам нужно подтверждать их и размышлять о них. Поиск улучшенных закономерностей всегда будет интересным.

Реальный мир добавляет сложности. Если в мире строк и компьютерных программ ошибок нет, в реальном мире можно совершить ошибку. Мы легко узнаем, выводит ли какая-то определённая программа строку, или нет. И хотя мы, вероятно, не сможем определить оптимальную программу для вывода определённой строки, мы сможем определить, выводит ли она требуемую строку. А реальный мир, в отличие от этого, гораздо более сложный. Нам может показаться, что мы видим последовательность, когда её, на самом деле, нет.

Наше понимание наших поисков смысла начинает оформляться. Мы презираем случайности и обожаем закономерности. Мы биологически запрограммированы находить закономерности, объясняющие то, что мы видим. Но мы не можем быть уверены, что найденная нами закономерность будет правильной. Даже если бы мы каким-то образом могли гарантировать отсутствие ошибки, и достигли бы совершенства, подобного компьютерному, где-то всё равно всегда может находиться ещё более глубокая истина. Это напряжение подпитывает нашу любовь к литературе, театру и кино. Когда мы читаем роман или смотрим пьесу, автор или режиссёр представляет нам последовательность событий с общей темой, закономерностью или моралью. Литература, пьесы и кино предлагают нам великолепный способ убежать от обычно непонятного и бессмысленного хаоса, встречающегося нам в окружающем мире. Очень хорошая литература идёт дальше, и оставляет нам возможности многих интерпретаций. Мы лицом к лицу встречаемся с невычислимостью Колмогоровской сложности.

Это напряжение также определяет, как мы проживаем наши жизни. Путешествуя сквозь якобы случайные события, мы ищем закономерности и структуру. Жизнь полна взлётов и падений. Есть радость влюблённости, веселого времяпрепровождения с детьми, ощущения великих достижений по окончанию сложной работы. Есть боль разрушающихся отношений, агония неудачи после активных попыток выполнить задачу, трагедия смерти любимого. Мы пытаемся искать во всём этом смысл. Мы презираем чувство полной случайности и идею, что мы просто следуем хаотичным, незамысловатым законам физики. Мы хотим знать, нет ли в окружающем мире какого-то смысла, цели, значимости. Нам нужна волшебная история жизни, и мы рассказываем себе истории.

Иногда эти истории просто ложны. Иногда мы обманываем себя и окружающих. А иногда мы правильно определяем закономерности. Но даже когда история правдива, она не обязательно будет наилучшей. Мы никогда не будем уверены, что в глубине не лежит ещё более базовая и точная история. Старея и впадая в тоску, мы приобретаем определённые идеи по поводу Вселенной, недоступные нам раньше. Мы находим улучшенные закономерности. Возможно, мы начинаем видеть вещи яснее. Или нет. Мы никогда не узнаем. Но мы знаем, что поиски гарантированно не закончатся.

Нозон Яновски – доктор наук в математике, работает в Образовательном центре городского университета Нью-Йорка, профессор информатики в Бруклинском колледже того же университета.

Комментарии (20)


  1. S_A
    31.08.2018 16:04

    Думаю, русские математики часто пишут не хуже… только почему-то мало подобного можно прочесть в оригинале на русском. Обидно.

    Из подобного на русском вспоминается только Арнольд, и его лекции по жестким и мягким мат. моделям.

    Что касается поисков закономерностей, тут всё не так просто, или так скажем, публицистично. В реальном мире важна часто не оптимальность, а вычислимость как таковая. На этом вобщем-то всё и держится…


  1. Exchan-ge
    31.08.2018 20:00
    +1

    4 – интересное число, потому что 4 = 2 ? 2 и 4 = 2+2. В таком роде можно продолжать дальше


    Продолжайте. Интересно.
    Итак, 5 — это интересное число, потому что…


    1. SLY_G Автор
      31.08.2018 21:16

      … это сумма первого чётного и первого нечётного простого чисел.


      1. Exchan-ge
        01.09.2018 01:36

        … это сумма первого чётного и первого нечётного простого чисел.


        Это уже ближе к софистике, а не к математике.
        (это действительно сумма первого чётного и первого нечётного простого чисел, но является ли этот факт интересным?)


        1. fireSparrow
          01.09.2018 17:07

          Смысл-то вовсе не в том, чтобы каждому числу подобрать интересное описание.
          Парадокс начинается именно тогда, когда какому-то числу мы не смогли подобрать такое описание, и признали его минимальным неинтересным. Тем самым сделав его интересным и придя к противоречию.


  1. koldyr
    31.08.2018 20:38
    +1

    Колмогоровская сложность определяется с точностью до константы.
    Для любой конечной последовательности существует язык, в котором она кодируется программой длинной в один бит.
    И наконец, если я правильно это понял, в любом языке почти все конечные последовательности имеют описание не короче их самих.


    1. worldmind
      01.09.2018 14:03

      не короче или не длиннее?


    1. maslyaev
      01.09.2018 15:04

      Для любой конечной последовательности существует язык, в котором она кодируется программой длинной в один бит
      Обычно говорят о программе для универсального вычислителя.

      Да, можно написать архиватор, который будет текст «Войны и мира» кодировать одним битом «0», но если мы ему скормим роман, который будет дописан завтра, этот архиватор такого чуда не покажет.


      1. claygod
        01.09.2018 19:26

        Перепишем архиватор, и закодируем этот новый роман битом «1» ))


        1. maslyaev
          02.09.2018 13:07
          +1

          Тема "кодирование" плотно связана с передачей сообщений. Поэтому рассмотрим ситуацию, когда учительница литературы Алиса Степановна посылает романы для прочтения ученику Боре. У Бори уже есть заранее полученный от Алисы Степановны разархиватор, который разворачивает "0" в текст "Войны и мира". Но в нём нет и не может быть такого вот суперсжатия для того, что вышло после релиза разархиватора. Когда выходит очередной роман, например, Стивена Кинга, Алиса Степановна собирает и рассылает ученикам новый релиз разархиватора. После этого можно передать Боре аж целый длинный роман Стивена Кинга, просто послав ему что-нибудь вроде "8492307“. Красота? Была бы красота, если бы не надо было сначала включать текст романа в релиз и пересылать его Боре.


  1. HomunCulus
    01.09.2018 00:56
    +1

    <<мы сможем определить, выводит ли она требуемую строку.>> Hет, в общем виде не можем. Автор статьи не до конца понимает. Теорема Райса говорит что не существует общего доказательства того, что программа делает то что надо(выводит нужную строку), которая следует из проблемы остановки машины Тьюринга, которая в свою очередь следует из теоремы о неполноте Геделя. Отсюда вся эта армия тестировщиков в ИТ и бесконечно обновляющийся Windows без определенного времени, что обновление закончится через 2 минуты и не больше…


    1. themen2
      01.09.2018 10:21

      Проблема остановки по моему следует из того, что существуют невычислимые по Тьюрингу функции. А теорема Геделя о неполноте по моему относится к тому, что непротиворечивость формальной арифметики не доказуема


      1. worldmind
        01.09.2018 15:37

        Вроде немного не так — она либо полна, но противоречива, либо непротиворечива и неполна.


    1. Kirhgoff
      02.09.2018 00:42

      На мой взгляд, в данном месте автор все-таки имеет в виду не формальный способ, а то, что мы сможем это определить в каждом конкретном случае с помощью наших глаз.


    1. koldyr
      02.09.2018 07:53

      Как только вы отказываетесь от тотальности (windows конечен и патчи к нему конечны) теорема об остановке перестает быть применима. Для любого конечного можества программ с конечным множеством входов существует программа решающая проблему остановки.


  1. Throwable
    01.09.2018 11:16

    Я всегда думал, что сложность строки связана с понятием энтропии, и что ее очень просто вычислить, просто пройдясь по ней gzip-ом.


    P.S. бытует мнение, что любая заданная последовательность содержится в записи числа пи. Программа просто должна выдать позицию, с которой нужно считывать последовательность. )))


    1. YegorVin
      01.09.2018 12:22

      И число которое задает эту позицию будет больше чем заданное число.


    1. zuborg
      01.09.2018 13:05

      У цифр числа Пи энтропия большая (они (цифры) подобны случайным), тогда как у самого числа Пи она не большая.


  1. worldmind
    01.09.2018 14:01

    Теория Колмогоровской сложности учит нас тому, что на базовом уровне не существует гарантированного способа определить наилучшую закономерность. Мы просто никогда не узнаем о том, является ли найденная нами закономерность наилучшей.


    Я правильно понял, что любая научная модель мира это и есть некоторая найденная закономерность?
    И следует ли из этой фразы принципиальная невозможность доказать, что наша текущая научная модель правильно описывает мир т.е. истинна?
    Я понимаю, что невозможность доказательства истинности можно и по другому пояснить, но было бы интересно отсылать к математике.


    1. worldmind
      01.09.2018 15:35

      Если эту теорию можно применять на научные модели, то она говорит, что мы никак не можем доказать, что нет более простой модели, конечно это ничего не говорит о связи модели и реальности, но вероятность наличия более простой модели ведь означает, что текущая модель это лишь подмножество боле общих законов, а именно наиболее общие законы обычно рассматриваются как кандидаты на истинность.