Допустим, вы создаете компьютер, который будет вычислять состояние всех атомов во Вселенной в определенный момент времени в будущем. Поскольку Вселенная по определению является всем, что существует (и всем, что взаимодействует с остальными), она также включает в себя компьютер, который вы создаете. Можете ли вы рассчитать состояние всех атомов во Вселенной, используя ваш компьютер, включая атомы самого компьютера?
Если такой компьютер невозможен по какой-либо другой теоретической или практической причине, то что это?
computability
mojuba
источник
источник
Ответы:
Нет, компьютер не может идеально моделировать себя в дополнение к чему-то другому, не нарушая базовую теорию информации : существуют строки, которые не сжимаются.
Вот простейшее возможное доказательство: предположим, что компьютер имеет всего возможных состояний, и предположим, что во вселенной есть что-то, находящееся за пределами компьютера, поэтому вселенная имеет по крайней мере N + 1 возможных различных состояний. С нулевыми накладными расходами каждое состояние компьютера может соответствовать состоянию юниверса, но поскольку у юниверса больше состояний, чем у компьютера, некоторые состояния юниверса будут отображаться на одно и то же состояние компьютера, и в этом случае моделирование будет не сможет отличить их.N N+1
источник
Я не уверен, что это ответ на ваш вопрос, но я надеюсь, что он может быть значимым и приведет к некоторому пониманию.
Предположим, что существует машина Тьюринга которая может моделировать каждый атом во вселенной, в том числе и себя, тогда она обязательно может моделировать себя.X
Теперь свести это к проблеме остановки тривиально:
Пусть использует машину Тьюринга M в качестве входных данных и решает, останавливается она или нет, имитируя юниверс (поскольку M входит в юниверс), а затем поступает наоборот (например, X останавливается, если M нет, и циклически завершается, если M останавливается ). Тогда X ( X ) демонстрирует противоречие.X M M X M M X(X)
По сути, это означает, что лучший может сделать, чтобы решить, останавливается ли X или нет, это просто запустить себя (т.е. позволить вселенной работать своим путем), поэтому моделирование вселенной не дает преимущества.X X
То же самое относится, когда вы хотите состояние вселенной после времени. Поскольку X не может решить, остановится ли он в течение времени t или нет в течение времени t (тот же аргумент), он будет допущен к нему во вселенную. Попытка симулировать вселенную, делая это, не может сократить время, которое вы потратите на решение. И если решение о том, как будет выглядеть вселенная через t, займет больше времени, чем t, то симуляция будет расходиться (так как t переходит в бесконечность).t X t t t t t
Это приводит к выводу, что только полезный симулятор, который решает, как будет выглядеть вселенная в времени, должен занимать ровно t времени, то есть, позволяя вселенной работать. Этот симулятор тогда действительно тривиальный симулятор.t t
источник
Я думаю, мы могли бы попытаться увидеть это как проблему моделирования : как мы можем перефразировать вопрос так, чтобы он стал компьютерной наукой, а не физикой? Я попытаюсь привести простой, конкретный пример того, как мы могли бы попытаться сделать это, чтобы все началось ...
Давайте заменим «вселенную» чем-то очень дискретным и простым (и конечным!). Допустим, наша вселенная является конечным клеточным автоматом. В частности, весь мир является сеткой n × n .W n×n
Предположим, что начальная конфигурация мира произвольна. Теперь возникает вопрос: можем ли мы выбрать строгое подмножество C в W («компьютер») и начальное состояние C , которое удовлетворяет следующим условиям:W C W C
Мы не изменяем начальное состояние . (То есть мы просто «строим наш компьютер C », не вмешиваясь в мир за его пределами.)W∖C C
Тогда мы можем выполнить любое количество шагов клеточного автомата (весь мир , включая C и любые взаимодействия между W ∖ C и C ).W C W∖C C
Мы можем прочитать текущее состояние мировой , просто проверяя C . (То есть C должен быть «симуляцией» W. Обратите внимание, что мы должны быть в состоянии прочитать состояние всего W , а не только W ∖ C. В некотором смысле, C должен быть в состоянии моделировать как его внешнюю, так и внутреннюю !)W C C W W W∖C C
Теперь это выполнимо? Может быть соблазнительно использовать аргумент подсчета (в больше состояний, чем в C ) и сказать, что это невозможно. Но это не обязательно так!W C
Давайте предположим, что наш клеточный автомат является тоталистическим . Тогда мы можем просто позволить быть правой половиной нашей сетки W , и пусть начальная конфигурация C будет зеркальным отражением W ∖ C , так что все будет симметрично. Вот и все.C W C W∖C
Запустите автомат и посмотрите, что получится. Текущее состояние всегда будет равно состоянию C + его зеркального отображения. То есть, просто осматривая C достаточно , чтобы сказать , что это состояние всей W .W C C W
(Конечно, здесь компьютер взаимодействует с и влияет на будущее состояние W ∖ C. Но это также происходит и в реальном мире.)W W∖C
Теперь может быть интересно посмотреть, есть ли нетривиальный ответ на этот вопрос. Например, какие центры сертификации допускают компьютеры размером менее половины ?W
источник
Вот простое (неформальное) доказательство. Скажем, это 2115 год, и у меня есть 100-летний компьютер, который я назову Mac, и современный суперкомпьютер под названием God. Бог может легко смоделировать и предсказать Mac, пока я не сделаю следующее:
Сначала я присоединяю веб-камеру к Mac и указываю на экран Бога. Затем я запускаю на Mac программу, которая в бесконечном цикле сохраняет каждое число, обнаруженное на экране Бога, генерирует и отображает число, которого нет в списке сохраненных чисел. Наконец, я прошу Бога показать мне число, которое Mac будет показывать через минуту. Что бы ни показывал Бог, Мак будет производить и показывать другое, поэтому Бог не сможет дать правильный ответ.
Это эквивалентно тому факту, что если суперкомпьютер предсказывает меня, то, что она скажет мне, я сделаю, я смогу сделать обратное (как в комментарии Марка ). Кроме того, это выполняется независимо от процесса, который суперкомпьютер использует для предсказания будущего (симуляция, путешествие в будущее и возвращение, запрос оракула и т. Д.).
источник
Конечный компьютер не может имитировать себя, в отличие от машины Тьюринга, которая имеет бесконечную ленту и может имитировать любую другую машину Тьюринга. Однако можно смоделировать любой компьютер на аналогичном компьютере, но вам нужно немного больше памяти, чем «смоделированному» (как в виртуальной машине): http://meaningofstuff.blogspot.com/2016/03/ может-компьютер или-человек-симулировать-itself.html
источник