Квантовое программирование для школьников: первый код в будущее

Квантовое программирование для школьников: первый код в будущее

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

Образовательный прорыв от Росатома

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

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

Что такое квантовый компьютер и как он работает?

Чтобы понять суть квантового кода, нужно разобраться в отличиях «железа». Классический компьютер оперирует битами, которые могут находиться строго в состоянии 0 или 1. Квантовый компьютер
использует кубиты (квантовые биты). Благодаря принципу суперпозиции кубит может находиться в состоянии 0, 1 или в их любой комбинации одновременно. Это похоже на подброшенную монетку,
которая в полете является и орлом, и решкой одновременно.

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

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

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

Рассмотрим, как выглядит типичная программа, создающая состояние суперпозиции и измеряющая его. В мире квантового программирования самым популярным языком является Python с библиотеками (например, Qiskit от IBM или Cirq от Google), либо специализированные языки вроде Q# от Microsoft.

Пример 1: Простейшая программа на Python (Библиотека Qiskit)

Этот код создает один кубит, помещает его в суперпозицию и измеряет результат. Из-за суперпозиции мы увидим примерно равное количество 0 и 1 после тысячи запусков.


# Импортируем необходимые инструменты
from qiskit import QuantumCircuit, transpile
from qiskit_aer import Aer
from qiskit.visualization import plot_histogram

# 1. Создаем квантовую схему с одним кубитом и одним классическим битом
circuit = QuantumCircuit(1, 1)

# 2. Применяем гейт (вентиль) Адамара.
# Он переводит кубит из состояния |0⟩ в суперпозицию (|0⟩ + |1⟩)/√2
circuit.h(0)

# 3. Измеряем кубит и сохраняем результат в классический бит
circuit.measure(0, 0)

# 4. Запускаем симулятор
simulator = Aer.get_backend('aer_simulator')
job = simulator.run(circuit, shots=1000) # запускаем 1000 раз
result = job.result()
counts = result.get_counts()

# 5. Выводим результат
print("Результаты измерений:", counts)
# Ожидаемый вывод примерно: {'0': 502, '1': 498}
                

Пример 2: Как выглядит визуальная логика (Квантовая схема)

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


Квантовая схема для создания запутанности (состояние Белла):

q_0: ┤ H ├──■──
     └───┘┌─┴─┐
q_1: ─────┤ X ├
          └───┘
c: 2/══════════

Здесь:
H — гейт Адамара (создает суперпозицию),
■ и X — гейт CNOT (запутывает два кубита).
Если измерить первый кубит как 0, второй гарантированно будет 0, и наоборот.
                

Пример 3: Язык Q# (Q Sharp) от Microsoft

В отличие от Python, это специализированный язык, напоминающий смесь C# и математических формул.
Он строго описывает квантовые операции:


namespace Quantum.BellTest {
    open Microsoft.Quantum.Intrinsic;
    open Microsoft.Quantum.Measurement;

    @EntryPoint()
    operation CreateBellPair() : (Result, Result) {
        // Выделяем два кубита
        use qubits = Qubit[2];

        // Применяем H к первому кубиту
        H(qubits[0]);
        // Применяем CNOT, контролируемый первым кубитом, ко второму
        CNOT(qubits[0], qubits[1]);

        // Измеряем состояние
        let result1 = M(qubits[0]);
        let result2 = M(qubits[1]);

        // Возвращаем результаты
        return (result1, result2);
    }
}
                

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

Где учиться и что делать дальше?

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

Выводы: первый шаг в профессию будущего

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

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


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

По материалам всероссийского образовательного проекта «Урок цифры».

Добавить комментарий