Как часто вы слышите о квантовых компьютерах? О том, что за ними будущее или что современная криптография уязвима перед квантовыми вычислениями? Всё чаще в новостях появляются статьи о новых квантовых процессорах, о росте числа кубитов, о моделировании белков и новых материалов. Но, думаю, почти никто толком не понимает, как это всё работает.
Сейчас квантовые технологии в полной мере изучают лишь в рамках программ высшего образования, что сильно ограничивает возможности всех желающих ближе познакомиться с этой сферой. Сами квантовые компьютеры доступны лишь в нескольких лабораториях, однако эту проблему частично решают эмуляторы – хотя большинство из них зарубежные, перегруженные сложной логикой и трудные для понимания новичком.
Я студент направления информационных систем, параллельно выступаю на конференциях с квантовыми проектами и развиваю собственную компанию в сфере квантовых технологий. Именно поэтому эта проблема стала для меня не абстрактной, а личной.
Почему квантовые вычисления сложно учить
Начну с распространённого заблуждения. Вас всё время обманывали: кубит – это не 0 и 1 одновременно. Кубит – это квантовая система, которая до момента измерения находится в суперпозиции состояний. Формально он описывается вектором состояния: |ψ⟩ = α|0⟩ + β|1⟩, где α и β – комплексные коэффициенты, квадраты модулей которых показывают вероятность обнаружить кубит в состоянии |0⟩ или |1⟩ соответственно. Проще говоря, до измерения у кубита нет определённого значения – есть лишь распределение вероятностей.
В изучении квантовых вычислений существует несколько серьёзных барьеров:
-
Математика: без понимания линейной алгебры здесь не обойтись. Это фундамент, на котором строится всё дальнейшее обучение.
-
Интуиция: квантовая механика – это отдельный мир, который крайне сложно представить привычным образом. Вектор состояния n-кубитной системы существует в 2ⁿ-мерном комплексном пространстве, тогда как мы живём в трёхмерном. Наша интуиция здесь просто не работает.
-
Инструменты: когда я сам только начинал разбираться в квантовых вычислениях, столкнулся с тем, что все ресурсы крайне разрозненны. Приходилось одновременно держать открытыми десятки вкладок, учебников и документаций, чтобы разобраться даже в базовых темах.
Quantum programming is the future after AI.
Именно эту фразу можно увидеть у меня в профиле Telegram. Квантовое будущее ближе, чем кажется. Пока мы активно занимаемся повышением цифровой грамотности населения, уже сейчас стоит думать о квантовой грамотности – как о следующей ступени технологического образования. Показательно, что в России этим вопросом занимаются всерьёз: например, «Росатом» активно развивает направление квантовых вычислений на государственном уровне. Но образовательный пласт пока заметно отстаёт от исследовательского – и именно этот разрыв я хочу сократить.
Путь к проекту
Мой интерес к квантовым компьютерам начался с видео на YouTube, которое я посмотрел на каникулах после окончания школы. Затем на первом курсе я написал два проекта:
-
«Как квантовый компьютер и искусственный интеллект могут работать вместе». Преимущественно теоретическая работа – и, честно говоря, как я считаю, самая слабая в моей проектной деятельности.
-
«Оценка эффективности эмулятора квантовых вычислений в сравнении с классическими подходами». Этот проект строился на гипотезе о том, что эмулятор квантовых вычислений способен превзойти классический код по скорости выполнения. По сей день он нравится мне больше всего: именно он заложил серьёзный фундамент в моём понимании квантовых вычислений.
После этого захотелось сделать что-то своё. И два месяца летних каникул между были отданы разработке Python-библиотеки ariquantum — собственного эмулятора квантовых вычислений.
Почему вообще стоило разрабатывать собственный эмулятор, когда уже существуют мощные фреймворки от IBM (Qiskit), Google (Cirq) и других лидеров отрасли? Ответ простой: все эти инструменты, на мой взгляд, избыточны. Огромное количество классов, функций и абстракций делает порог входа для новичка неоправданно высоким. Вдобавок ощущалась нехватка понятной документации на русском языке. Моей целью стало создать библиотеку, которая была бы простой в понимании и удобной в работе с первых минут.
С момента первого релиза (v0.1.0) библиотека не стояла на месте:
-
v0.1.1: улучшена документация, добавлены README-RU и requirements.txt.
-
v0.1.2: исправлена ошибка, мешавшая корректно измерять кубиты в схеме.
-
v0.2.0: улучшена работа измерений — более корректный вывод и добавлен метод для отображения квадратов амплитуд вероятностей.
Следующим шагом в направлении «низкого порога входа» стал Telegram-бот. В будущем он станет частью полноценной экосистемы AriQuantum – но об этом позже.
С начала 2026 года я начал продумывать архитектуру и интерфейс бота, тогда же стартовала разработка. Основной объём работ был выполнен за последний месяц. Максимальное число кубитов в схеме ограничено восемью – и упёрся я в это ограничение не из-за вычислительных мощностей, а из-за возможного неудобного размера сообщений в Telegram. По факту бот способен симулировать схемы вдвое большего размера. Управление схемой полностью реализовано через кнопки – никакого перехода в веб-интерфейс.
Бот поддерживает симуляцию на двух бэкендах:
-
ariquantum – быстрее на небольших схемах (до 6 кубитов), но может некорректно работать с гейтами после измерений, так как выводит только результаты последнего измерения.
-
qiskit (до 8 кубитов) – корректно обрабатывает измерения и последующие гейты, сохраняя результаты в классический регистр.
Демонстрация Telegram-бота
Перейдём к самому интересному. Интерфейс взаимодействия со схемой простой и понятный. Не буду раскрывать всё сразу – покажу главное.
Основной экран управления схемой приведён ниже. Здесь представлена схема квантовой телепортации. Из этого меню можно применить гейт к схеме – бот поддерживает все основные одно-, двух- и трёхкубитные гейты. Через раздел «Редактировать схему» доступна возможность очистить все гейты, удалить схему или задать ей новое имя.

При нажатии на «Запустить симуляцию» происходит магия бэкенда, и мы получаем результат:

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

Если измерение проводилось – дополнительно выводится статистика запусков. Их количество (на предыдущем скриншоте – 10) можно настроить через параметры бота, чтобы получать более подробную картину.
В AriQuantum боте есть немало возможностей для персонализации – все карты раскрывать не стану, лучше зайдите и познакомьтесь сами. 🙂
Технические трудности
Бот не содержит особенно сложных реализаций, однако в процессе разработки я столкнулся с парой интересных трудностей. Основная сложность была не в бэкенде симуляции, а в работе с базой данных и интернационализацией.
1. База данных. При разработке этого бота я впервые плотно познакомился с SQLAlchemy. Сложность состояла в том, что нужно было обрабатывать и сохранять изменения в БД внутри незакрытой транзакции. Решение оказалось простым:
user_settings.backend_id = backend_idawait session.flush()await session.refresh(user_settings)
-
await session.flush()– отправляет накопленные изменения из сессии в базу данных, не закрывая транзакцию. Это позволяет применить обновление немедленно, не дожидаясь финальногоcommit(). -
await session.refresh(user_settings)– принудительно перезагружает объект из БД, заменяя его локальное состояние актуальными данными. Это гарантирует, что дальнейшая работа ведётся с уже обновлённой версией объекта.
2. Интернационализация. Бот при старте и через настройки позволяет выбрать язык интерфейса – русский или английский. Этот блок реализован с помощью Fluentogram. Впервые столкнувшись с интернационализацией в принципе, я потратил немало времени на настройку Fluent и корректный проброс значений через мидлвари – но в итоге разобрался.
Планы развития
Библиотека ariquantum. Ближайшие пару версий будут небольшими – правки отображения вектора состояния и другие улучшения. Затем планируется версия v1.0.0 с полноценным разделением на классический и квантовый регистры с сохранением простоты для новичков.
Telegram-бот AriQuantum. Следующий приоритет – отрисовка схем в виде изображений вместо ASCII. Вместе с этим появится поддержка большего числа кубитов в одной схеме. Также планирую добавить больший контроль над уже применёнными гейтами. В более долгосрочной перспективе – шумовые модели, экспорт и импорт из кода и обратно в него, MiniApp, интеграция с облачными квантовыми платформами для запуска симуляций на реальных квантовых компьютерах и поддержка дополнительных бэкендов.
Платформа AriQuantum. Конечная цель – полноценная платформа для обучения, программирования, исследований и сообщества в сфере квантовых технологий.
Целей много. Я к ним иду.
Заключение
Возвращаясь к квантовой грамотности. Хочется, чтобы всё больше людей интересовались квантовыми технологиями и видели в них не далёкую абстракцию, а реальный инструмент будущего. Это огромная область знаний, которая открывает такие же огромные возможности – сегодня и тем более завтра.
Узнавайте, учитесь, разрабатывайте. Спасибо всем, кто дочитал до этого места.
Связь со мной: @ArimShcherbakov
Ссылка на бота: @AriQuantumBot
ссылка на оригинал статьи https://habr.com/ru/articles/1042032/