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

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

Современные NISQ (шумные квантовые компьютеры промежуточного масштаба) сталкиваются с некоторыми серьезными проблемами, связанными с масштабируемостью, недоступностью алгоритмов и исправлением ошибок. Большинство исследований посвящено созданию надежного оборудования, однако в этом посте мы познакомимся с генератором квантовых алгоритмов, который существенно изменит способ преобразования классического алгоритма в его квантовый эквивалент.

Давайте начнем.

Квантовые схемы

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

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

Пример - квантовый сумматор

Квантовое сложение работает аналогично классическому сложению с двоичными числами.

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

Предположим, мы закодировали операнды для требуемой суммы в квантовом состоянии | Ψo⟩ и окончательный результат в квантовом состоянии | Ψf⟩. Если мы говорим, что конечным состоянием | Ψf⟩ является U | Ψo⟩, то решение для U дает нам квантовый сумматор. Например, простой квантовый сумматор задается следующей схемой.

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

Реализация квантовых алгоритмов

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

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

Традиционные методы поиска унитаров

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

Обычные методы, которые используют люди:

  1. Используя математику, найдите нужную схему. Например, если вы знаете, что состояние в настоящее время | B, и оно развилось из состояния | A по действию оператора U нам нужно найти U такое, что U | A= | B. Это матричное уравнение нелегко решить для все большего числа измерений.
  2. Преобразование традиционных методов и использование решений из уже предложенных квантовых алгоритмов - это еще один способ создания квантовых схем, но он ограничен доступными методами.
  3. Вариационные алгоритмы, которые позволяют классическим компьютерам и квантовым компьютерам работать в тандеме, чтобы найти лучшие квантовые схемы, настроенные на конкретную проблему. Эти алгоритмы страдают от проблемы масштабирования, поскольку классические компьютеры имеют ограничение на количество параметров, которые они могут обрабатывать.

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

Как машины находят решения

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

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

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

Генератор алгоритмов Quantastica

Генератор квантовых алгоритмов (QAG) от Quantastica вдохновлен той же методологией машинного обучения. Получив входное квантовое состояние и выходное квантовое состояние, он создает квантовую схему, которая привела вас к желаемому выходному состоянию.

Он основан на ограничениях классических моделей машинного обучения, предоставляя вам «открытый ящик» вместо черного ящика. Хотя нейронная сеть способна формировать правильные выходные состояния, на самом деле невозможно посмотреть на то, что она обнаружила. QAG меняет это.

Основной принцип QAG - позволить машинам выполнять работу по идентификации алгоритмов. Подумайте об этом так:

У вас есть квантовое состояние | A⟩ и желаемое состояние вывода | B⟩. Вы хотите найти унитарный оператор U , который преобразует | A⟩ в | B. QAG найдет это для вас. Присущий ему алгоритм генерирует действительную квантовую схему U, которая генерирует состояние | B⟩ при применении к | A⟩.

Теперь, когда мы знаем, что такое QAG, давайте подробнее рассмотрим, как он работает, продолжив простой пример квантового сумматора.

Работа и особенности

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

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

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

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

Другой очень важной частью QAG является то, что он обеспечивает допуск, который разрешен при обнаружении цепи. Это просто способ определить, насколько точно вы хотите, чтобы QAG идентифицировал цепь с учетом входов и выходов. Как определяется этот closenes? Для схемы-кандидата QAG сравнивает вывод, который он производит, и сравнивает его с правильным выводом, который мы передаем в QAG в первую очередь. Чем больше это состояние похоже на исходный результат, тем лучше наша оценка.

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

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

Текущее состояние

В настоящее время QAG ограничивается моделированием до 6 кубитов на одном компьютере и более 6 кубитов на высокопроизводительном компьютере.

QAG имеет простой интерфейс, интегрированный с Quantum Programming Studio (QPS) Quantastica, где вы можете предоставить классические входные и выходные данные в виде таблицы истинности, векторов, унитарных операторов и т. Д. QAG преобразует все вышеперечисленные типы входов и выходов в допустимые квантовые состояния перед передачей их в генератор, чтобы найти окончательную схему.

Quantastica также предоставляет REST API для python, который для QPS известен под названием Quantastica-qps-api. Этот API может быть установлен через pip и позволяет пользователям получать доступ к инструменту через среду Python.

Ограничения

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

Влияние QAG

Почему нас волнует обратный инжиниринг схем?

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

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

Фактические результаты

QAG - это не просто предлагаемый инструмент, он был недавно использован Окриджской национальной лабораторией в одной из их недавних статей. Они использовали QAG как инструмент создания схем для теоретической реализации унитарной матрицы и сравнения с ней экспериментальных результатов. Еще одно доказательство концепции изображено в этом видео, где квантовая задача IBM 2020 года была оптимально решена QAG менее чем за 2 минуты.

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

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