Кубиты
В начале 1980-х годов, примерно в то время, когда я купил свой ZX81, физик Ричард Фейнман высказал предположение, что определенные проблемы, к примеру вопросы симуляции поведения квантовой системы, разумнее решать при помощи компьютера, который также действует по законам квантовой механики. Такой компьютер должен применять идею суперпозиции для создания совершенно новых типов алгоритмов. Вскоре исследование квантовых компьютеров выделилось в отдельную область науки, когда в 1985 году оксфордский физик Дэвид Дойч опубликовал прорывную статью, в которой показал, каким образом их создание достижимо на практике.
Дойч предложил схему «универсального квантового компьютера», подобно тому как за полвека до этого Алан Тьюринг предложил идею универсального классического компьютера. Машина Дойча работала на основании квантовых принципов и была в состоянии симулировать любой физический процесс. Она требовала ряд квантовых систем, каждая из которых могла существовать только в суперпозиции двух состояний, таких как атомы в суперпозиции пребывания на двух энергетических уровнях. Эти квантовые системы затем запутывались для создания квантовых логических вентилей, которые можно было настроить для выполнения определенных операций.
В основе этого лежала идея о «квантовом бите», или кубите. В обычном цифровом компьютере основным компонентом является «бит» – переключатель, который может находиться в одной из двух позиций: вкл. и выкл., которые обозначаются двоичными символами 0 и 1. Однако при использовании квантовой системы, такой как атом, этот компонент может пребывать в двух состояниях одновременно. Следовательно, кубит может быть одновременно и включен, и выключен, при условии что он остается изолированным от окружающей среды.
Само собой, отдельный кубит не очень полезен. Но если запутать два кубита или более, потенциал такой системы станет очевиден. Представьте информационное содержание трех классических битов. Каждый может принимать значение либо 0, либо 1, поэтому существует восемь различных комбинаций этой тройки (000, 001, 010, 100, 011, 101, 110, 111). Но всего три запутанных кубита позволяют нам хранить все восемь комбинаций одновременно! Каждая из трех цифр одновременно принимает значение и 0, и 1.
Добавление четвертого кубита дает нам 16 комбинаций, пятого – 32 и так далее. Объем хранимой информации увеличивается экспоненциально (как 2N, где N – это число кубитов). Теперь представьте осуществление операций тем же способом, который мы применяем к классическим битам. Мы сможем выполнить 2N вычислений одновременно, и это максимально возможная скорость параллельной обработки данных. Определенные проблемы, на решение которых у обычного компьютера ушли бы годы, в результате могут оказаться решены за долю секунды.