Цели главы. Достроить модель вычислений: научиться читать и составлять квантовые схемы, освоить многокубитные вентили, понять, как обратимо вычислить любую классическую функцию (это понадобится каждому алгоритму курса), и выяснить, какой набор вентилей достаточен для любых квантовых вычислений.
Квантовая схема читается слева направо: горизонтальные линии («провода») обозначают кубиты, прямоугольники — вентили, точки и соединяющие их линии — управление, значок измерительного прибора — измерение с классическим результатом. В базовой модели алгоритм представляют конечной последовательностью унитарных операций и завершающих измерений. Произвольное неизвестное состояние нельзя разветвить на две одинаковые копии. При этом современные динамические схемы допускают измерение в середине вычисления, сброс кубита и классическое условное выполнение последующих вентилей; с таким управлением мы уже встретились в лабораторной работе главы 3. Циклический алгоритм перед выполнением можно развернуть в конечную схему для заданного числа итераций.
Две основные метрики схемы: ширина — число кубитов, и глубина — минимальное число последовательных слоёв после распараллеливания совместимых операций. Логическая глубина не тождественна физическому времени: вентили имеют разную длительность, а связность устройства, маршрутизация и ограничения одновременного управления добавляют операции. Тем не менее на шумном устройстве чрезмерная глубина повышает накопленную ошибку; ширина, в свою очередь, ограничена числом и топологией доступных кубитов.
Из любого однокубитного вентиля U строится управляемый вентиль CU: применить U к целевому кубиту, если управляющий равен |1⟩. На базисных состояниях: CU|0⟩|ψ⟩ = |0⟩|ψ⟩, CU|1⟩|ψ⟩ = |1⟩(U|ψ⟩). Частные случаи:
Все вентили унитарны, а значит, обратимы — но классические операции AND и OR необратимы: по выходу AND нельзя восстановить входы. Как же квантовый компьютер будет вычислять обычные функции — а это нужно каждому алгоритму, от Дойча до Шора?
Стандартное решение: функцию f: {0,1}n → {0,1}m реализуют оператором
Uf: |x⟩|y⟩ → |x⟩|y ⊕ f(x)⟩,
где ⊕ — побитовый XOR. Вход x сохраняется, а f(x) складывается с выходным регистром; Uf переставляет базисные состояния, поэтому унитарен, причём Uf−1 = Uf. Классическую схему размера G можно обратимо воспроизвести с полиномиальными, а для стандартных схем — линейными по G накладными расходами, используя NOT, CNOT, Тоффоли и вспомогательные кубиты (анциллы) в состоянии |0⟩.
Промежуточные анциллы после вычисления содержат значения подвыражений. Если их оставить, они в общем случае будут коррелированы или запутаны с основными регистрами и сохранят информацию о пути вычисления, мешая требуемой интерференции. Приём Беннета compute–copy–uncompute устраняет этот мусор: вычислить результат вместе с промежуточными значениями, перенести значение классической функции в чистый выходной регистр операциями XOR, затем выполнить вычисление в обратном порядке и вернуть анциллы в |0⟩. Это не клонирование неизвестного квантового состояния: CNOT когерентно копирует значения выбранного вычислительного базиса и обычно создаёт запутанность на суперпозиции входов. Вычисление и его обращение дают примерно двукратную цену основной подпрограммы плюс операции переноса результата.
Классический факт: элемента NAND достаточно для любой булевой схемы. Квантовый аналог: набор вентилей называется универсальным, если любую унитарную матрицу на любом числе кубитов можно приблизить схемой из этих вентилей с любой точностью. Стандартный универсальный набор:
{H, T, CNOT}
Контур доказательства таков: общую унитарную матрицу раскладывают в произведение операций, нетривиальных лишь на двумерных подпространствах; их реализуют с помощью CNOT и однокубитных вентилей; наконец, композиции H и T образуют плотное подмножество однокубитных унитарных операций. Хотя собственные углы H и T соизмеримы с π, некоторые их произведения задают повороты с углом, несоизмеримым с π, что и обеспечивает плотность.
Насколько дорого приближение? Теорема Соловея–Китаева для конечного универсального набора, замкнутого относительно обращения, даёт длину O(logc(1/ε)) для ошибки не более ε, где c — постоянная. Поэтому цена точности растёт полилогарифмически, а не как 1/ε. Для набора Клиффорд + T существуют специализированные алгоритмы синтеза с ещё лучшей асимптотикой порядка O(log(1/ε)) по числу T-вентилей.
Почему в наборе нужен T, а не только S? По теореме Готтесмана–Нилла стабилизаторные схемы — подготовка вычислительных базисных состояний, вентили Клиффорда H, S и CNOT, измерения Паули и допустимое классическое управление — эффективно моделируются классическим компьютером, хотя могут создавать запутанность. В представлении схем через набор Клиффорд + T именно T является не-клиффордовским ресурсом, поэтому отдельно считают T-count и T-depth; в распространённых отказоустойчивых схемах его реализация особенно дорога (глава 11). Другие модели могут получать не-клиффордовский ресурс из иных вентилей, состояний или измерений.
Квантовые алгоритмы оценивают по нескольким ресурсам: числу логических кубитов (ширине), общему числу вентилей (размеру), глубине, числу и глубине двухкубитных вентилей, а для отказоустойчивых машин — также T-count, T-depth и расходу вспомогательных состояний. Физическая оценка дополнительно учитывает связность, длительности и ошибки операций, код коррекции ошибок и декодирование. Поэтому одно число кубитов или вентилей само по себе не характеризует выполнимость алгоритма.
Ответы и указания. 1: для входа (a,b) три шага дают (a,b⊕a) → (b,b⊕a) → (b,a). 2: CZ = diag(1,1,1,−1). 3: два H на целевом кубите сопрягают условный Z в условный X, а ветвь с управляющим нулём оставляют единичной. 4: вентиль Тоффоли с целевым кубитом y. 5: вычислите t = x1∧x2; затем выполните над выходом y операции CNOT(t,y), CNOT(x3,y) и Toffoli(t,x3;y), реализующие y ↦ y⊕t⊕x3⊕t x3; повторный Toffoli(x1,x2;t) очищает анциллу. 6: CNOT(|+⟩|+⟩) = |+⟩|+⟩, но CNOT(|+⟩|−⟩) = |−⟩|−⟩: поскольку X|−⟩ = −|−⟩, фаза откатывается на управляющий кубит.