У квантовых компьютеров огромный потенциал: ученые верят, что машина с несколькими миллионами кубитов будет способна с высокой точностью моделировать молекулярные комбинации в медицине, решать логистические задачи, строить макроэкономические прогнозы и не только. Инженеры сегодня симулируют квантовые вычисления, совершенствуют существующие алгоритмы и пишут новые — уже квантовые. Разбираемся, как связано классическое и квантовое программирование и какие навыки потребуются от программистов будущего.
Чем квантовое программирование отличается от классического?
Начнем с того, что некорректно противопоставлять классическое программирование квантовому — они работают в тесной связке, потому что классический компьютер управляет всем процессом, а квантовый выступает в роли мощного ускорителя для определенных математических операций.
Специалисты сегодня используют классические языки программирования, например, Rust или Python, чтобы создать последовательность инструкций для вычислительной машины, подготовить данные, а затем через трансляторы переводят их на низкоуровневый язык квантового программирования с помощью квантовых библиотек.
Это, например, Qiskit (IBM), Cirq (Google), PyQuil (Rigetti), Q# (Microsoft), а также специализированные пакеты и надстройки, создаваемые научными коллективами. В частности, исследователи Российского квантового центра и НИТУ «МИСиС» разработали пакет на базе PennyLane, предназначенный для реализации отдельных вычислительных примитивов (примитив — базовый неделимый блок, который нельзя разбить на более мелкие составляющие, доступные для программиста), используемых, например, в алгоритме Шора.
И классический, и квантовый компьютеры являются физическими устройствами. Различие в том, что в классическом случае информация кодируется в битах (0 и 1), реализованных, например, в многоэлектронных схемах, тогда как в квантовом компьютере используются кубиты — квантовые состояния физических систем, таких как сверхпроводящие цепи, отдельные атомы, ионы или фотоны.
«Квантовый компьютер — это физическая система, которой мы управляем через последовательность инструкций. В них описывается, что мы хотим сделать с нашей физической квантовой системой, которая подчиняется законам квантовой механики, и каких именно преобразований нам нужно добиться для решения сложных задач, например факторизации чисел, моделирования молекул, оптимизации», — объясняет Евгений Киктенко, руководитель группы квантовых информационных технологий РКЦ.
Таким образом, выполнение квантового алгоритма в конечном итоге сводится к управлению реальным квантовым устройством. Абстрактные инструкции алгоритма транслируются в последовательности физических управляющих воздействий — например, лазерных или микроволновых импульсов, параметры которых настраиваются в эксперименте. Эти импульсы воздействуют на физические кубиты, реализуя требуемые операции и переводя систему в состояния суперпозиции и запутанности.
В конце алгоритма производится измерение состояния кубитов. Это разрушает суперпозицию, переводя кубит в классическое состояние. Затем результаты измерений передаются обратно классической программе, которая их анализирует, формирует ответ задачи и при необходимости вырабатывает новые инструкции для квантового устройства.
Для каких задач сейчас используется квантовое программирование?
Если коротко — это развивающаяся область, и до прикладного использования квантовых компьютеров еще далеко. Про главные события в сфере квантовых вычислений в России и мире можно прочитать в материале CNews.
«Квантовые алгоритмы при запуске на достаточно мощных квантовых устройствах позволяют существенно ускорить решение задач факторизации целых чисел (разложения на простые множители) и дискретного логарифмирования. На классических компьютерах для этих задач нет эффективных алгоритмов», — говорит Евгений Киктенко.
Задачи ближайшего горизонта можно развести по двум веткам. С одной стороны, квантовые алгоритмы позволяют по-новому подходить к задачам перебора и оптимизации: за счет квантовой суперпозиции и интерференции они могут эффективнее исследовать пространство решений, чем классические методы. Поэтому квантовая оптимизация рассматривается как одно из наиболее перспективных направлений.
С другой стороны, это задачи, связанные с исследованием физических систем. Особенность квантового компьютера как физической системы в том, что он позволяет создавать определенные, сильно запутанные состояния. Их сложно моделировать на классическом компьютере, и квантовый хорош для исследования подобных состояний (например, в квантовой химии, для изучения взаимодействия молекул).
Это направление сейчас активно разрабатывается Google. Так, Google Quantum AI изучает «экзотические» состояния материи: использует процессор Sycamore для создания неравновесных квантовых фаз, таких как временные кристаллы (time crystals) и упорядоченные топологические состояния Флоке. Эти состояния с уникальными динамическими свойствами трудно или невозможно создать в обычных материалах.
Решают с помощью квантовых компьютеров и задачи, которые пока кажутся бессмыслицей. К примеру, для генерации случайных чисел: квантовый компьютер использует фундаментальную непредсказуемость квантовых процессов (измерение состояний кубитов, фотонов) для создания истинно случайных последовательностей. В отличие от классических методов, квантовая генерация обеспечивает полную недетерминированность.
Технически это достижение возможно будет полезно в области криптографии, пока же вызывает лишь недоумение. Возможно, это пригодится онлайн-казино?..
Активно развиваются сейчас квантовые вычислители «на минималках» с урезанным функционалом — квантовые симуляторы. Их создает, например, канадская компания D-Wave Systems. Это не универсальные квантовые компьютеры, а вычислители, пригодные для решения задач, которые можно представить в терминах дискретной комбинаторной оптимизациии, например, они могут находить наилучшее решение в задачах логистики, финансов, материаловедения и машинного обучения.
«Квантовые симуляторы технологически проще создать, — объясняет Дмитрий Чермошенцев, руководитель научной группы "Росатом Квантовые технологии". — И здесь мы чуть ближе к реальным прикладным эффектам, которые невозможно получить при помощи классических компьютеров».
Что касается доступности квантовых технологий для бизнеса, строго говоря, они уже доступны и «драйвит» их развитие именно бизнес. Например, Boeing уже активно использует квантовые вычисления, сотрудничая с IBM Quantum для моделирования материалов, борьбы с коррозией самолетов и оптимизации производства.
Квантовые компьютеры разрабатывают IBM, Google, участники российской дорожной карты по квантовым вычислениям, которой руководит «Росатом». Но пока это все про пилотирование.
Квантовое преимущество существует?
Тут все непросто: шутят, что квантовое преимущество воистину квантовое — оно вроде бы есть, но его как бы и нет.
Иногда на квантовом компьютере задачу можно решить за разумное время, а классическому компьютеру на нее потребуется 10000 лет. Но есть много задач, которые решаются за час или день, а на квантовой системе — за 10 минут. И вроде бы полезное преимущество есть, а с другой стороны — нужно ли ради этого тратить сотни миллиардов долларов на квантовое «железо»?
В то же время надо понимать, что пока квантовые вычисления не достигли той зрелости, чтобы их использовать в боевом режиме для решения насущных задач. Пока это все же период запуска пилотных проектов, и фокус — именно на научное развитие и фундаментальные исследования.
