Виртуальный ты. Как создание цифровых близнецов изменит будущее человечества — страница 14 из 61

[116].

Работая с математиками Брюсом Богосяном и Хунъян Ваном из Университета Тафтса в Бостоне, Питер решил провести расследование. Они исследовали базовый пример хаоса, называемый обобщенной схемой Бернулли, с числами с плавающей запятой. Несмотря на простоту, схема математически эквивалентна многим другим динамическим системам, встречающимся в физике, химии, биологии и технике. Биологи уже знали, что, несмотря на простоту схемы Бернулли и других, они выходят за рамки обычного компьютерного моделирования из-за ограниченной точности компьютеров[117].

Но в полной мере проблема с числами с плавающей запятой не была изучена до тех пор, пока Питер и его коллеги не ввели в схему все возможные начальные условия в интервале от 0 до 1 – весь один миллиард чисел с плавающей запятой одинарной точности – и сравнили ансамбли своих симуляций с «правильным» ответом (схема Бернулли, что удивительно, поддается полному анализу с использованием математических инструментов, которые управляют реальным, континуальным миром, таких как интегрирование, дифференцирование и разложение в степенные ряды). Результат их поразил[118].

Как компьютеры ошибаются?

Среди выдающихся математиков семьи Бернулли, бежавших в Швейцарию, спасаясь от испанских преследований протестантов, Якоб (1655–1705) известен своим вкладом в исчисление и область вероятностей, а также открытием е, или числа Эйлера – фундаментальной константы. Его продуктивная карьера включала открытие рецепта хаоса (названной в его честь схемой Бернулли), который использует простое правило для сопоставления одного числа с другим в последовательной цепочке повторяющихся вычислений. На каждой итерации действительные числа от 0 до 1 многократно умножаются на постоянное число, известное как греческая буква бета.

В работе Бернулли бета имела значение 2, и правило, которое он использовал для создания схемы, было простым: если результат удвоения превышает значение 1, в следующей итерации используется только остаток (то, что математики называют mod 1). Если вы начнете где-то между 0 и 1, вы будете перемещаться случайным образом, в конечном итоге оказываясь в местах, равномерно распределенных между 0 и 1. Это отличительная черта хаоса. И снова это поведение можно уловить в форме странного аттрактора и выразить в терминах орбит.

Брюс Богосян, Хунъян Ван и Питер сравнили известную математическую реальность схемы Бернулли, где параметр бета был обобщен за пределы числа 2, с тем, что предсказал цифровой компьютер. Они обнаружили, что когда постоянный множитель был равен 2, как в исходной схеме Бернулли (любое четное целое число), поведение, предсказанное компьютером, было попросту неверным. Проблема не в их компьютере или алгоритме, который они использовали, а в числах с плавающей запятой.

С числами одинарной точности, независимо от начального числа или условия, вы не получите правильного равномерного распределения отображений между 0 и 1, но всегда достигнете 0 после всего лишь 23 итераций и застрянете там. Причину легко понять: в двоичном представлении эффект умножения на 2 заключается в простом сдвиге самого правого, наименее значимого бита на одну цифру влево при каждой итерации схемы. При использовании двойной точности требуется 52 итерации, чтобы застрять на 0. В попытке быть точнее вы просто продляете свое ожидание, пока нестабильные орбиты превращаются в бессмыслицу.

Давайте теперь повторим схему с бета 4/3, что, очевидно, является рациональным числом. Вычисление в уме (удвойте это число, а затем используйте остаток) выявляет то, что математики называют нестабильной периодической орбитой, где точки 2/3 и 1/3 повторяются бесконечно. Но когда эти точки, составляющие периодическую орбиту, выражаются в двоичном формате арифметики с плавающей запятой, округление становится проблемой. В двоичном формате 2/3 равно 0,10101… до бесконечности, а 1/3 равно 0,010101… до бесконечности. Поскольку компьютеры не могут точно представить эти числа, они их округляют, и в результате некоторые части динамики полностью теряются.

Когда дело доходит до нечетных значений бета, предсказания компьютера работают достаточно хорошо, и, по словам Брюса Богосяна, многие люди находят в этом утешение[119]. Для общего случая нецелых значений предсказания компьютера «не являются явно ошибочными». Если, конечно, не провести судебную экспертизу с использованием ансамблей, которая выявляет ошибки до 15 % по сравнению с точными результатами континуальной (нецифровой) математики. Эти ошибки являются следствием ухудшения качества набора нестабильных периодических орбит, которые может вычислить цифровой компьютер.

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

Новая команда использовала числа двойной точности с плавающей запятой и метод выборки динамики (для использования двойной точности потребовался бы гораздо больший (экзафлопсный) компьютер для выполнения точных вычислений, эквивалентных тем, которые выполнила команда Питера). Периодические орбиты оставались очень сильно деградировавшими, что их удивило. Да, можно было существенно уменьшить ошибки в случае нецелочисленного бета, используя двойную точность. Тем не менее, когда бета четно, ошибки не могут быть исправлены никаким улучшением точности чисел с плавающей запятой, при условии, что оно конечно (а это должно быть так, чтобы работать на любом цифровом компьютере). В этих случаях предсказания компьютера остаются совершенно неверными[120].

Питер и его коллеги обнаружили, что ошибка в предсказаниях схемы Бернулли зависит от размера наибольшей периодической орбиты, которую можно вычислить. Это открытие было развито в совместной работе с Миланом Клевером над другой простой динамической системой (также созданной Лоренцем, известной как Лоренц-96). Однако, в отличие от схемы Бернулли, здесь нет аналитического решения, и единственный способ изучить поведение Лоренц-96 – экспериментировать, наблюдать за тем, как она ведет себя, когда в нее вводят числа с плавающей запятой различной точности.

Несмотря на это ограничение, исследование выявило еще одну проблему: для всех реальных математических описаний хаотических динамических систем, таких как те, которые возникают в молекулярной динамике, а также в прогнозировании погоды и климата, орбиты настолько огромны, что их невозможно вычислить. Однако численная работа в Оксфорде показала, что, по крайней мере для Лоренц-96, когда число переменных в задаче увеличивается до многих сотен, статистическое поведение системы становится очень похожим для всех чисел с плавающей запятой – численное поведение при половинной точности хорошо согласуется с таковым при одинарной и двойной точности, увеличивая уверенность в правильности и одновременно показывая, что использование большего количества битов для решения таких задач – за счет использования чисел более высокой точности – не влияет на результаты, как ожидали Питер, Брюс Богосян и Хунъян Ван.

Множество вопросов, поднятых в этой работе, подчеркивают необходимость дополнительных исследований, чтобы выяснить, как численные результаты сходятся в правильных решениях по мере увеличения степени точности чисел с плавающей запятой. После публикации в 2019 г. Питер и его коллеги обнаружили, что Тим Зауэр, профессор математики из Университета Джорджа Мейсона в Вирджинии, вместе с другими пришел к аналогичным выводам почти два десятилетия назад, сообщив, что «в статистике моделирования чрезвычайно малые входные шумы приводят к ошибкам, которые на несколько порядков больше»[121]. Он также обнаружил, что при компьютерном моделировании детерминированных динамических систем «ошибки округления с плавающей запятой и другие ошибки усечения портят результаты моделирования»[122].

Несмотря на работу Питера, Зауэра и его коллег, подавляющее большинство тех, кто пользуется компьютерами, полагают, что арифметика с плавающей запятой является источником жизненной силы моделирования любой природной системы, которая может быть описана в математических терминах, от ветреной погоды до турбулентных потоков крови. Мало что делается для проверки результатов компьютерного моделирования на соответствие ответам, данным континуальной математикой. Для простых систем, которые ведут себя линейно, это разумное предположение. Но что касается хаотических систем, которые встречаются повсеместно, наша вера в то, что компьютеры смогут генерировать надежные результаты, необоснованна. Какие бы рациональные числа мы ни вводили в расчеты хаотических систем, не говоря уже о подмножестве, которое мы используем для компьютерного моделирования (всегда числа с плавающей запятой), в конечном итоге они сойдутся на нестабильных периодических орбитах, которые вечно повторяются, что является противоположностью хаоса. Только начальные условия, основанные на невычислимых иррациональных числах, способны создавать траектории, которые демонстрируют хаотическое движение, бесконечно прыгающие по этим периодическим орбитам, никогда не останавливаясь и не повторяясь. Последние хаотические траектории, порожденные иррациональными числами, которые встречаются бесконечно чаще, чем рациональные (последние, как говорят, имеют «меру ноль», первые – «меру единицы»), лежат за пределами досягаемости цифровых компьютеров.