Универсальный компьютер может сделать с информацией почти все что угодно. Изобретатели универсальных компьютеров и универсальных языков, Алонзо Черч и Алан Тьюринг, выдвинули гипотезу, что на универсальном компьютере может быть выполнена любая возможная математическая манипуляция, то есть что универсальный компьютер может создавать математические построения любого уровня сложности. Но сам он не должен быть сложной машиной; все, что он должен уметь, – это брать биты, по одному или по два за раз, и выполнять с ними простые операции. Чтобы совершить любое желаемое преобразование над сколь угодно большим набором битов, достаточно многократно выполнять операции всего с одним или двумя битами за раз. Любая машина, которая может выполнить такую последовательность простых логических операций, является универсальным компьютером.
Важно, что универсальный компьютер можно запрограммировать так, чтобы преобразовывать информацию любым желаемым образом, и любой универсальный компьютер можно запрограммировать так, чтобы он преобразовывал информацию точно так же, как это делает любой другой универсальный компьютер. Таким образом, любой универсальный компьютер может моделировать другой, и наоборот. Такая взаимомоделируемость означает, что все универсальные компьютеры могут выполнять один и тот же набор задач. (Эта особенность вычислительной универсальности нам знакома: если какая-то программа работает на PC, ее, безусловно, можно видоизменить так, что она будет работать на Mac.)
Конечно, на Mac программа может работать медленнее, чем на PC, и наоборот. Программа, написанная для универсального компьютера определенного типа, на нем обычно работает быстрее, чем ее «переводная» версия на другом компьютере. Но эта переведенная программа все равно будет работать. Можно показать, что любой универсальный компьютер может не только имитировать любой другой универсальный компьютер, но и делать это эффективно . При переводе программы с одного компьютера на другой она будет работать медленнее, но ненамного.
Вселенная вычисляет. Ее компьютерный язык состоит из законов физики и их химических и биологических следствий. Но можно ли считать, что Вселенная является универсальным цифровым компьютером, в том техническом значении, который обосновали Чёрч и Тьюринг, и ничем более? На этот вопрос можно дать точный научный ответ: нет.
Идея о том, что Вселенная в самой своей основе может являться цифровым компьютером, возникла несколько десятилетий назад. В 1960-х гг. Эдвард Фредкин, бывший тогда профессором Массачусетского технологического института, и тот самый Конрад Цузе, который сконструировал первые электронные цифровые компьютеры в Германии в начале 1940-х, предположили, что Вселенная, в сущности, является универсальным цифровым компьютером. (Сравнительно недавно эта концепция нашла последователя в лице ученого в области информатики Стивена Вольфрама.) Идея очень привлекательна: цифровые системы просты и при этом способны воспроизводить поведение любой степени сложности. В частности, компьютеры, архитектура которых воспроизводит структуру пространства и времени (так называемые клеточные автоматы), могут эффективно воспроизводить движения классических частиц и взаимодействия между ними.
Помимо эстетической привлекательности идеи цифровой Вселенной существуют веские доказательства вычислительной силы законов физики. Законы физики определенно обеспечивают универсальные вычисления. Проблема же с определением Вселенной как классического цифрового компьютера состоит в том, что она, как представляется, обладает гораздо большей вычислительной мощностью.
У двух компьютеров одна и та же вычислительная мощность, если каждый из них может эффективно моделировать другой. Ключевое слово здесь «эффективно». Законы физики могут эффективно моделировать цифровые вычисления; Вселенная без труда включает в себя обычные цифровые компьютеры. Но поставим вопрос иначе: может ли наш обычный компьютер эффективно смоделировать Вселенную? Представляется, что это невозможно.
На первый взгляд кажется, что ответ должен быть иным. В конце концов, законы физики выглядят просто. Даже если они окажутся немного более сложными, чем мы сейчас думаем, все же это математические законы, которые могут быть выражены на обычном машинном языке; то есть обычный компьютер может смоделировать законы физики и их следствия. Если бы у нас был достаточно большой компьютер, то мы могли бы запрограммировать его (например, с помощью языка Java), описав начальное состояние Вселенной и законы физики, и запустить в работу. В итоге мы могли бы ожидать, что этот компьютер даст точное описание состояния Вселенной в любой последующий момент.
Читать дальше
Конец ознакомительного отрывка
Купить книгу