Содержание

Что такое Quirk

Quirk – браузерный симулятор квантовых схем, "toy quantum circuits simulator".

Quirk разработал Крейг Гидни (Craig Gidney), инженер, работающий в Google над квантовыми вычислениями. Исходный код открыт, а сам симулятор доступен по адресу algassert.com/quirk

Главная особенность Quirk – симуляция в реальном времени без необходимости запуска вычислений вручную. Схема пересчитывается на каждом кадре с задержкой 0,1 секунды. Автор указывает, что это в 100 раз быстрее реализации на чистом JavaScript.

Кому подойдет

Quirk не претендует на звание серьезного инструмента для исследователей и не заменяет полноценные среды программирования вроде Qiskit и Q#. Это инструмент для начального знакомства с квантовыми вычислениями. Он подойдет:

  • Школьникам и студентам, которые хотят понять, как работают базовые гейты и схемы, но не готовы сразу погружаться в код;

  • Преподавателям, которым нужна наглядная демонстрация на занятиях;

  • Тем, кому нужно быстро проверить гипотезу или разобраться в устройстве конкретной небольшой схемы.

По словам автора, Quirk делался для того, чтобы «настроить собственную интуицию в квантовых схемах».

Преимущества и недостатки

Преимущества:

  1. Нет требований к регистрации;

  2. Мгновенный отклик;

  3. Наглядная визуализация;

  4. Возможность видеть состояние в любой точке схемы, а не только на выходе;

  5. Открытый исходный код (лицензия Apache 2.0).

Недостатки:

  1. Не подходит для серьезных расчетов (потолок 16 кубитов);

  2. Нет возможности создавать пользовательские гейты через интерфейс;

  3. Неудобно работать на мобильных устройствах;

  4. Отсутствие накопления статистики для детекторов;

  5. Некоторые полезные гейты скрыты и доступны только через редактирование URL.

Навигация по Quirk

При заходе на сайт нас встречает главное меню (main menu), в котором можно найти ссылки на документацию Quirk, видео-туториал, код и примеры схем (example circuits, о них позже).

главное меню
главное меню

Переходим в пустое рабочее пространство («Edit circuit»).

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

верхняя панель
верхняя панель

Нижняя панель – расширенные и арифметические гейты.

нижняя панель
нижняя панель

Центральная область – рабочее поле, сюда перетаскиваются гейты. Слева от каждого кубита есть индикатор начального состояния (по умолчанию – |0⟩, единичным нажатием можно изменить на |1⟩, |+⟩, |-⟩, |i⟩, |-i⟩). Чтобы удалить гейт со схемы, нужно перенести его за пределы кубитов.

рабочее поле
рабочее поле

Немного про цветовую маркировку: белые кнопки – статичные гейты и зонды, таких большинство; желтые – анимированные, показывают вращение или изменение состояния в реальном времени; серые дублируют белые, но работают с несколькими кубитами сразу; зеленые (дисплеи) при переносе на схему приобретают числовые значения. Дисплей Amps голубой, потому что, в отличие от стальных, показывает комплексные числа.

При наведении курсором на любой элемент, о нем всплывет информация: название, назначение, отображение в виде матрицы и оси вращения (если есть).

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

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

Теперь подробнее про кнопочки.

  • Probes (Зонды) – группа элементов, которые не изменяют квантовое состояние, а только снимают информацию или накладывают условия.

    Probes
    Probes

    Наблюдение разрушает квантовое состояние, однако в симуляторах измерения можно использовать для отладки и обучения.

  • Displays (Дисплеи) – группа визуальных элементов, которые показывают состояние кубитов в конкретном месте схемы. Сами дисплеи не влияют на вычисления.

    Displays
    Displays
    так дисплеи выглядят на схеме
    так дисплеи выглядят на схеме
  • Half turns (Половинные обороты) – группа, в которую входят базовые однокубитные повороты на 180° (по осям X, Y, Z), а также гейт Адамара (H) и обмен (Swap).

H создает суперпозицию, а Swap меняет местами два кубита
H создает суперпозицию, а Swap меняет местами два кубита
  • Quarter и Eighth Turns – группы гейтов, которые поворачивают состояние кубита на 90° (π/2) и 45° (π/4) соответственно.

    Quarter и Eighth Turns
    Quarter и Eighth Turns

    В основе те же оси X, Y, Z, что и в Half Turns, но с дробными степенями:

    Quarter Turns (1/4 поворота):
    S (√Z) поворот на 90° вокруг Z. S^-1 – обратный (поворот на -90°).
    Аналогично есть √X, √Y и их обратные версии.

    Eighth Turns (1/8 поворота):
    T (√S) – поворот на 45° вокруг Z. T^-1 – обратный.
    Также есть X^1/4, Y^1/4 и их обратные.

  • Spinning (вращающийся) – группа гейтов, которые вращаются непрерывно. Угол поворота регулируется перетаскиванием (чем дальше тянешь, тем больше угол). В подсказке отображается текущее значение.

  • Formulaic – группа гейтов, где угол или сама операция задаётся формулой. После переноса на схему можно вписать выражение:

    Число (например, 0.25), чтобы задать угол в оборотах;

    Формулу с переменными (t, x, y) для более сложной параметризации.

  • Parametrized – группа параметризованных гейтов, в которых угол поворота задаётся переменной A, которая может быть константой (задаваемой через Input), результатом вычислений или параметром, который меняется при моделировании.

    Parametrized
    Parametrized

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

  • Sampling (Семплирование) – группа для вероятностных измерений и сбора статистики. В отличие от обычных измерений, Sampling не разветвляет симуляцию на все исходы. Вместо этого при каждом клике (или перетаскивании) симулятор выбрасывает случайный исход в соответствии с вероятностями, и схема пересчитывается заново.

  • Parity (четность) – группа гейтов, работающих с четностью группы кубитов. Смысл: гейт срабатывает, только если среди контрольных кубитов нечетное количество находится в состоянии |1⟩.

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

  • X/Y Probes (Зонды в разных базисах) – те же самые зонды, но работающие не в стандартном базисе |0⟩/|1⟩ (Z), а в базисах X и Y.

    X/Y Probes
    X/Y Probes
  • Order (порядок кубитов) – группа для управления тем, как интерпретируется порядок кубитов при арифметических операциях. +t / -t – сдвиг порядка (инверсия старшинства); Reverse (полное обращение порядка: младший кубит становится старшим и наоборот). Остальное – визуальное отображение перестановок.

    Order
    Order

Frequency (частотные операции) – группа, связанная с квантовым преобразованием Фурье. QFT – прямое преобразование Фурье. QFT+ — обратное (сдвинутое). Grad<...> – градиентные операции, которые используются внутри QFT для точной настройки фаз.

Frequency
Frequency
  • Оставшиеся группы работают с числами в квантовых регистрах и позволяют выполнять на кубитах полноценные арифметические вычисления.

Примеры схем (Example circuits)

Напоминаю, что примеры схем можно найти в правой части главного меню. Далее их краткое описание:

  1. Grover Search (Алгоритм Гровера)

    Алгоритм квантового поиска нужного элемента в неструктурированной базе данных. На поиск уходит O(√N) шагов, тогда как классический поиск требует O(N) шагов.

    Grover Search
    Grover Search

    После каждой итерации растет шанс получить правильный ответ.

  2. Shor Period Finding (Нахождение периода Шора)

    Квантовая подпрограмма, лежащая в основе алгоритма Шора для факторизации целых чисел. Находит период r такой, что B^r ≡ 1 (mod R) .

    Shor Period Finding, B = 26
    Shor Period Finding, B = 26

    На дисплеях можно наблюдать, как квантовое состояние после QFT даёт пики, соответствующие значениям, кратным 1/r.

  3. Bell Inequality Test (Тест неравенства Белла)

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

    Bell Inequality Test
    Bell Inequality Test

    Схема показывает: вероятности совпадений измерений нарушают неравенство Белла, которое для классических систем имеет верхний предел. В Quirk это видно на дисплеях вероятностей, корреляции между измерениями превышают классически допустимые значения

  4. Quantum Teleportation (Квантовая телепортация)

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

    Quantum Teleportation
    Quantum Teleportation
  5. Superdense Coding (Сверхплотное кодирование)

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

    Superdense Coding при t начальном
    Superdense Coding при t начальном
    Superdense Coding при t конечном
    Superdense Coding при t конечном

    На дисплеях вероятностей видно, что после всех операций получатель с вероятностью 100% измеряет именно ту пару битов, которую отправитель закодировал.

  6. Delayed Choice Eraser (Квантовый ластик с отложенным выбором)

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

    Delayed Choice Eraser
    Delayed Choice Eraser

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

  7. Symmetry Breaking (Нарушение симметрии)

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

    Symmetry Breaking
    Symmetry Breaking

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

  8. Quantum Fourier Transform (Квантовое преобразование Фурье)

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

    Quantum Fourier Transform при t начальном
    Quantum Fourier Transform при t начальном
    Quantum Fourier Transform при t конечном
    Quantum Fourier Transform при t конечном

    Можно подать на вход состояние |j⟩ и наблюдать на дисплеях, как оно преобразуется в суперпозицию всех базисных состояний с определенной фазой. В Quirk есть анимированная демонстрация QFT.

  9. Reversible Addition (Обратимое сложение)

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

    Reversible Addition
    Reversible Addition
  10. Magic State Distillation (Дистилляция магических состояний)

    Протокол, используемый в устойчивых к ошибкам квантовых вычислениях для создания “чистых” магических состояний (например, T-состояний) из нескольких зашумлённых экземпляров. Эти магические состояния необходимы для выполнения не-Clifford операций (таких как T-гейт), которые нельзя реализовать только квантовой коррекцией ошибок.

    Magic State Distillation
    Magic State Distillation
    Magic State Distillation
    Magic State Distillation

    Если добавить единичные Z-ошибки, вероятность успешной пост-селекции упадёт, но при успешном проходе выходное состояние будет близко к идеальному T-состоянию.

Что почитать на хабре по теме

Ссылки и источники

Рабочая версия Quirk

Исходный код

Документация

Авторский блог Крейга Гидни

Туториал от разработчика