What Google's Quantum Supremacy Claim Means for Quantum Computing ...

Классический кубик Рубика имеет 43 252 003 274 489 856 000 различных состояний. Вы можете задаться вопросом, как люди могут взять запутанный кубик и вернуть его в исходное состояние, когда на каждой стороне остается только один цвет. Некоторые люди могут сделать это даже с завязанными глазами, покрутив кубик несколько секунд перед этим. Однако это перестает казаться фантастикой, потому что есть базовый набор правил, которые всегда позволяют восстановить кубик в его первоначальное состояние за 20 ходов или даже меньше.

Управление квантовым компьютером во многом похоже на решение кубика Рубика с завязанными глазами: начальное состояние хорошо известно, и существует ограниченный набор базовых элементов (кубитов), которыми можно управлять с помощью простого набора правил — по сути это вращение вектора, представляющего квантовое состояние системы. Но наблюдение за системой во время этих манипуляций ведет к суровому наказанию: если вы посмотрите слишком рано, вычисление не удастся. Это потому, что нам разрешено просматривать только конечное состояние машины.

Мощь квантового компьютера заключается в том, что система может быть помещена в комбинацию очень большого числа состояний. Иногда этот факт используется для доказательства того, что невозможно построить или управлять квантовым компьютером: суть этой аргументации в том, что число параметров, необходимых для описания его состояний, будет просто слишком большим.

Да, это будет довольно сложная инженерная задача — управлять квантовым компьютером и следить за тем, чтобы на его состояние не влияли различные источники ошибок. Однако трудность заключается не в его сложных квантовых состояниях, а в том, чтобы убедиться, что основной набор управляющих сигналов делает то, что он должен делать, и что кубиты ведут себя так, как вы ожидаете от них.

Если инженеры смогут понять, как это сделать, квантовые компьютеры могут однажды начать решать задачи, недоступные классическим компьютерам. Квантовые компьютеры могут взламывать шифрование, которое считается непобедимым. И они могут способствовать открытию новых лекарств, совершенствованию систем машинного обучения, решению чрезвычайно сложных логистических задач и так далее.

Ожидания действительно высоки, и технологические компании и правительства делают ставку на квантовые компьютеры на суммы в миллиарды долларов. Но это все еще риск, потому что те же квантово-механические эффекты, которые обещают такую ​​большую вычислительную мощность, также делают эти машины очень чувствительными и трудными в управлении.

Неужели так будет всегда? Основное различие между классическим суперкомпьютером и квантовым компьютером состоит в том, что последний использует определенные квантово-механические эффекты для манипулирования данными абсолютно не интуитивным способом. Разумеется, в рамках данной статьи мы не будем погружаться в дебри математики, мы лишь рассмотрим основные инженерные проблемы и стратегии их решения.

В то время как обычные классические компьютеры манипулируют битами (двоичными цифрами), каждый из которых должен иметь значение 0 или 1, квантовые компьютеры работают с квантовыми битами или кубитами. В отличие от классических битов, кубиты могут использовать квантово-механический эффект, называемый суперпозицией, позволяющий кубиту находиться в состоянии, в котором он имеет определенное количество нулей и определенное количество единиц. Коэффициенты, которые описывают, сколько единиц и нулей имеет кубит, являются комплексными числами, что означает, что они имеют как действительные, так и мнимые части.

В компьютере с несколькими кубитами вы можете создавать их совершенно особым образом — так, что состояние одного кубита не может быть описано независимо от состояния других. Это явление называется запутанностью. Состояния, которые возможны для нескольких запутанных кубитов, являются более сложными, чем состояния для одного кубита.

Два классических бита могут иметь значения только 00, 01, 10 или 11, а вот два запутанных кубита могут быть помещены в суперпозицию этих четырех основных состояний. То есть запутанная пара кубитов может иметь определенное количество 00, определенное количество 01, определенное количество 10 и определенное количество 11. Три запутанных кубита могут находиться в суперпозиции уже восьми основных состояний. Иными словами, n кубитов могут находиться в суперпозиции 2 n состояний. Когда вы выполняете операции с этими n запутанными кубитами, все по сути происходит так, как если бы вы работали с 2 n битами информации одновременно.

Операции, которые вы проделываете с кубитом, похожи на вращения кубика Рубика. Однако глобальная разница тут в том, что квантовые вращения никогда не бывают идеальными. Из-за определенных ограничений в качестве управляющих сигналов и чувствительности кубитов операция, предназначенная, образно, для поворота кубита на 90 градусов, может закончиться поворотом, скажем, на 90.1 градус или на 89.9 градусов. Такие ошибки могут показаться небольшими, но они быстро складываются, что приводит к совершенно неправильным результатам.

Другой источник ошибок — декогеренция: сами по себе кубиты будут постепенно терять информацию, которую они содержат, а также терять свою запутанность. Это происходит из-за того, что кубиты в некоторой степени взаимодействуют с окружающей средой, даже с учетом того, что они находятся в субстрате, который был разработан для их изоляции.

Вы можете компенсировать эффекты неточности управления и декогеренции, используя так называемое квантовое исправление ошибок, но это требует больших затрат с точки зрения количества требуемых физических кубитов и объема вычислений, которые необходимо выполнить с ними.

Как только эти технические проблемы будут преодолены, квантовые компьютеры станут полезными для определенных специальных видов вычислений. После выполнения квантового алгоритма машина будет измерять свое конечное состояние. Теоретически это измерение даст с большой долей вероятности правильное решение математической задачи, которую классический компьютер не смог бы решить за разумный период времени.

Так как же начать разработку квантового компьютера? В инженерном деле рекомендуется разбивать основные функции машины на группы, схожие по своей природе или требуемой производительности. Эти функциональные группы затем можно легко сопоставить с аппаратным обеспечением. Исследователи из IBM, Google, Intel и других компаний решили разделить функции, необходимые для квантового компьютера, на пять основных групп, концептуально представленных пятью уровнями управления.


Схема квантового компьютера. Где там мой паяльник?

Итак, давайте рассмотрим этот пятислойный торт. «Вишенка» — это прикладной слой, который не является частью самого квантового компьютера, но тем не менее является ключевой частью всей системы. Он представляет собой все, что необходимо для создания соответствующих квантовых алгоритмов: среду программирования, операционную систему для квантового компьютера, пользовательский интерфейс и так далее.

Алгоритмы, составленные с использованием этого слоя, могут быть полностью квантовыми, но они могут также включать комбинацию классической и квантовой частей. Прикладной слой не должен зависеть от типа оборудования, используемого в уровнях под ним.

Непосредственно под прикладным слоем находится слой классической обработки, который имеет три основные функции. Во-первых, он оптимизирует запускаемый квантовый алгоритм и компилирует его в микроинструкции. Это аналогично тому, что происходит в классическом процессоре, который обрабатывает множество микроинструкций для каждой инструкции машинного кода, которую он должен выполнить.

Этот слой также обрабатывает измерения квантового состояния, возвращаемые аппаратным обеспечением в нижележащих слоях, которые могут быть превращены в классический алгоритм для получения конечных результатов. Слой классической обработки также заботится о калибровке и настройке, необходимых для корректной работы нижележащих слоев.

Под классическим слоем находятся слои цифровой, аналоговой и квантовой обработки, которые вместе составляют блок квантовой обработки данных (quantum processing unit, QPU). Между тремя слоями QPU существует тесная связь, и конструкция одного будет сильно зависеть от двух других. Теперь более подробно рассмотрим каждый из этих слоев, двигаясь сверху вниз.

Слой цифровой обработки преобразует микроинструкции в импульсы, виды сигналов, необходимые для манипулирования кубитами, позволяя им действовать как квантовые логические элементы. Точнее, этот слой предоставляет цифровые определения того, какими должны быть эти аналоговые импульсы. Сами аналоговые импульсы генерируются в слое аналоговой обработки QPU. Цифровой слой также передает результаты измерений квантовой задачи в слой классической обработки над ним, так что квантовое решение можно комбинировать с результатами, вычисленными классически.

Прямо сейчас с этими задачами теоретически могут справиться мощные суперкомпьютеры. Но когда в квантовые компьютеры будет добавлена коррекция ошибок, уровень цифровой обработки данных станет намного сложнее — иными словами, его уже не получится эмулировать на классических процессорах.

В завершающей части статьи мы поговорим про два оставшихся слоя, а также про проблемы коррекции ошибок и декогеренции, и затронем сложности создания квантовых компьютеров с сотнями кубитов.




iGuides в Telegram — t.me/igmedia
iGuides в Яндекс.Дзен — zen.yandex.ru/iguides.ru