Если мы вернемся к весам и мальчику Бобу, то увидим полную аналогию. Классический компьютер не умеет моделировать квантовую систему. Но он может подготовить входные данные — «посчитать палочки». Затем мы запустим квантовый эксперимент и с помощью классического устройства зарегистрируем результат — «посмотрим на показатель весов».
Идея Фейнмана была только наброском. Первые решения, которые позволили приблизиться к реализации квантового компьютера, были получены Дэвидом Дойчем во второй половине 80-х. Но и они имели чисто теоретический характер.
Настоящий интерес квантовые компьютеры вызвали, когда было показано, что с их помощью (если бы они существовали) можно было бы очень быстро решить задачу факторизации, то есть взломать шифры с открытым ключом.
Трудности, которые стоят перед учеными, очень велики. Профессор Ожигов, один из ведущих специалистов по квантовым вычислениям, считает, что трудности эти сравнимы с решением проблем, связанных с межпланетными перелетами.
Не имея возможности подробно анализировать принципы квантовых вычислений и их физические реализации, я тем не менее попробую хотя бы контурно обрисовать те проблемы, которые стоят перед учеными, работающими в этой области.
Источник этих проблем заключен в тех же квантовых свойствах материи, которые и обеспечивают огромный прирост быстродействия квантового компьютера по сравнению с классическим.
Классический компьютер работает последовательно: по двум числам (битам), полученным на выходе, он однозначно определяет их сумму, передает ее пользователю и переходит к сложению следующей пары чисел. Чтобы сложить две пары чисел, потребуется два такта процессора. Так работает любое классическое вычислительное устройство — очевидна полная аналогия с весами, с помощью которых складывал числа мальчик Боб.
Квантовый компьютер работает не с битами, а с так называемыми кубитами; это могут быть частицы или системы, пребывающие в двух квантовых состояниях, — одно соответствует единице, другое — нулю. Физически это может быть значение спина, или направление поляризации, или какое-то другое квантовое наблюдаемое.
Если классический процессор в каждый момент времени находится ровно в одном состоянии (т. е. все биты, с которыми он работает, имеют значение либо нуль, либо единица), то квантовый процессор находится в так называемой квантовой суперпозиции , то есть во всех возможных состояниях одновременно: каждый кубит с некоторой вероятностью равен нулю или единице. Весь набор кубитов называется квантовым регистром. Главный выигрыш, который мы получаем при использовании квантового компьютера, — это квантовый параллелизм .
«Данные в процессе вычислений представляют собой квантовую информацию, которая по окончании процесса преобразуется в классическую путем измерения конечного состояния квантового регистра. Выигрыш в квантовых алгоритмах достигается за счет того, что при применении одной квантовой операции большое число коэффициентов суперпозиции квантовых состояний, которые в виртуальной форме содержат классическую информацию, преобразуется одновременно » (курсив мой. — В. Г. ) [9] .
Если нам удастся за один такт процессора выполнить все возможные параллельные вычисления над всеми возможными наборами входных данных, необходимых для решения нашей задачи, мы безусловно получим очень серьезный выигрыш в вычислительной мощности.
Но, как водится, гладко было на бумаге. Проблем пока больше, чем решений. Дело в том, что непосредственно с квантовой информацией мы работать не можем — не потому, что не умеем, а потому, что это запрещено: как только мы попытаемся с ней работать, она превратится в классическую (наступит «коллапс волновой функции»), причем результат работы квантовой системы перейдет в классическую информацию не однозначно, а с некоторой вероятностью. Если бы у Боба были квантовые весы, после того как он положил на них палочки (кубиты) и отвернулся (то есть не наблюдал за системой), весы показывали бы некоторый интервал значений — например, от 1 до 10 — стрелочка металась бы по шкале, а когда Боб посмотрел бы на весы, они перешли бы в классическое состояние и замерли на значении, которое не обязательно с вероятностью 100% равно 8. То есть информацию о квантовой системе можно получить только с некоторой вероятностью, и, например, для задачи сложения двух чисел обычные весы безусловно подойдут лучше квантового компьютера. Не всегда это непреодолимая помеха, но вообще говоря, классических алгоритмов, которые можно ускорить с помощью квантового компьютера, довольно мало. А таких, которые ускорить нельзя, — подавляющее большинство.