Может ли компьютерная симуляция предсказывать будущее?
В фантастике часто встречается сюжет о сверхмощном компьютере, который обрабатывает внутри себя симуляцию мира (вселенной, планеты, города).
В 6-й серии 10-го Доктора Кто инопланетяне создают симуляцию Земли, чтобы понять, как её захватить. В сериале Devs герой делает виртуальную копию вселенной, чтобы знать всё прошлое и будущее. Нередко искусственный интеллект продумывает все варианты развития человечества, чтобы подсказывать людям лучший выбор (начиная от Мультивака Айзека Азимова и заканчивая третьим сезоном Westworld).
Надо сказать, следует отличать симуляцию настоящего мира от полностью виртуальной реальности. В фильме «13-й этаж» мир был сделан похожим на настоящий, но его экстраполяция в будущее вряд ли привела бы к совпадению с реальным миром. Как минимум, по той причине, что в симуляции был единственный город и вымышленные персонажи — копии настоящих людей. В «Матрице» всё начиналось с дубликата существующего мира, но маловероятно, что она была сделана настолько детально, чтобы до каждого атома совпадать с реальностью. К тому же, судя по всему, машины слегка тормозили развитие человечества. В том же «13-м этаже» такую систему называют имитация.
Итак, нас интересует возможность смоделировать на компьютере всю вселенную и делать в ней предсказания. Это укладывается в представление, согласно которому любой момент существования вселенной — прямое и однозначное следствие предыдущего момента и прямая и однозначная причина следующего момента.
Если вы знаете начальную точку старта автомобиля и его скорость, которая не меняется, то вы можете «предсказать будущее» — назвать место, где будет этот автомобиль через секунду, час или 100 лет. Вам достаточно знать начальные условия и понимать поведение системы, которое в данном случае задаётся уравнением движения.
Если мы представим себе, что существует гигантское уравнение, описывающее поведение всей вселенной, и подставим в это уравнение состояние всей вселенной в какой-то момент времени, то можем, теоретически, получить состояние вселенной в любой другой момент времени в прошлом и будущем. По крайней мере, одна из попыток объяснить квантовую механику утверждает именно так, а именно Теория де Бройля — Бома.
Так чо там у людей в будущем?
Допустим, де Бройль и Бом правы, вселенная одна и детерминирована. Допустим, у нас есть сверхмощный компьютер и то самое гигантское уравнение, а ещё мы каким-то образом знаем всё состояние вселенной в какой-нибудь момент, например, прямо сейчас. Да, слишком много допущений, но пока ни одно из них не является принципиально невозможным. Кажется, ничто не мешает нам экстраполировать вселенную на любой момент в прошлое и будущее. Вот пользователь берёт и следит за самим собой, а машина показывает, как он через 10 секунд хлопает в ладоши.
Вопрос: что мешает ему через 10 секунд не хлопнуть в ладоши?
Будет ли вселенная как-то принуждать его к этому? Уничтожится ли она из-за парадокса? В упомянутом сериале Devs ставили этот вопрос (кстати, рекомендую сериал всем поклонникам научной фантастики), но ответили на него неправильно. Как это часто бывает, авторы, если и консультировались с профессионалами по вопросам квантовой физики, то о программировании и принципах работы компьютеров знают очень мало. Практически любой программист понял бы проблему сразу.
Каким бы гигантским не было уравнение, с точки зрения программы это функция, которая принимает на вход состояние в одном моменте и возвращает в ответ состояние в следующем моменте.
Если вы смотрите на экран компьютера, который показывает вам будущее, то ваша реакция на него является вашим состоянием, а зависит она от того, что вы видите. Но видите вы то, что является вашей реакцией. Таким образом, внутри состояния вселенной уже есть результат вычисления будущего, которое, однако, может быть вычислено только на основе этого самого состояния:
настоящее = РеакцияНа(будущее) будущее = ПосчитатьБудущее(настоящее)
Приходится использовать состояние в будущем до того, как мы узнаем его. Это приведёт к рекурсивному вызову функции вычисления. То есть функция будет запускать сама себя. Давайте в примере выше заменим состояние в настоящем на то, чему оно равно, исходя из первой строчки:
будущее = ПосчитатьБудущее(РеакцияНа(будущее)) будущее = ПосчитатьБудущее(РеакцияНа(ПосчитатьБудущее(РеакцияНа(ПосчитатьБудущее...
...и так до бесконечности. Классическая рекурсия, которая приведёт к переполнению стека и либо вылету программы либо зависанию компьютера, сколь бы мощным он не был.
Что делать?
В первом приближении можно сказать, что компьютер, предсказывающий будущее, сможет рассказать вам обо всём, кроме вашего собственного будущего. И будущего тех людей, с кем вы собираетесь взаимодействовать. Допустим, вы видите, как ваш коллега через 10 секунд хлопает в ладоши, тогда вы можете выкрикнуть «Не хлопай!» или как-то ещё помешать ему.
Но в детерминированной вселенной взаимосвязано всё. Вспоминаем «Эффект Бабочки» (не фильм, а суть оригинальной ситуации из книги Рэя Бредбери). Вы что-то сказали человеку, который из-за этого куда-то пошёл и что-то сделал, а там, куда он ходил, другой человек изменил своё поведение из-за встречи с ним, и так далее. В итоге любое ваше взаимодействие со вселенной влияет на её состояние всегда. А значит в этом состоянии не должно содержаться реакции на ваше знание будущего.
Таким образом, компьютер сможет показывать вам будущее только в том случае, если вы не будете на него смотреть.
Такой вот парадокс.