Библиотека эмуляции квантовых вычислений Новиков Петр Андреевич
Квантовая информатика Закон Мура: за 2 года производительность компьютера увеличивается в 2 раза (ни разу не нарушался с 1958 г.) К 2025 г. структурные элементы вычислительной машины станут настолько малы, что для них преобладающими станут законы квантовой физики Требуется коренной пересмотр принципов работы компьютера
Квантовый регистр Один кубит: α 0 |0> + α 1 |1> При измерении получаем значение 0 с вероятностью α 0 2, значение 1 с вероятностью α 1 2 Три кубита: α 000 |000> + α 001 |001> + α 010 |010> + α 011 |011> + α 100 |100> + α 101 |101> + α 110 |110> + α 111 |111> При измерении получаем значение 100 с вероятностью α Для эмуляции n-кубитового квантового регистра требуется ~2 n байт (посчитайте классический эквивалент 100-кубитового квантового компьютера)
Особенности квантовой информатики Состояния регистра суперпозиции чистых состояний Операции над регистром унитарные операторы Квантовая запутанность регистра Измерения приводят к разрушению Теорема о невозможности копирования: невозможно копировать неизвестное квантовое состояние
Известные преимущества квантовой информатики Алгоритм факторизации Шора Алгоритм поиска Гровера Квантовое преобразование Фурье Задача нахождения периода
Актуальность разработки «квантового» ПО сейчас Пока не создано квантового компьютера, единственная возможность практического изучения квантовой информатики – эмуляция квантового компьютера на классическом В случае создания квантового компьютера этапы написания, отладки и тестирования программ будут проходить по большей части на классическом компьютере Разработанное «квантовое» ПО и его доказанные преимущества позволят легче привлечь инвестиции в физическое создание и совершенствование квантового компьютера
Библиотека эмуляции квантовых вычислений Средство разработки квантового ПО в привычной современному разработчику среде на языке C++ Эмуляция квантового регистра, унитарных преобразований, условных операторов, операторов измерения Удобный набор стандартных операторов для квантовых вычислений: элемент Адамара, операторы Паули, CNOT, Тоффоли и др.
Пример: квантовая телепортация H X Z M1M1 M2M2 (схема заимствована из презентации Ала Ахо
#include... qubit psi(1, 2); vector q; q.push_back(qubit::ZERO()); qreg reg(q); reg.feed(qopr::H(), qopr::ID()); // Generate EPR Pair reg.feed(qopr::CNOT()); // Generate EPR Pair reg.push_front(psi); reg.feed(qopr::CNOT(), qopr::ID()); reg.feed(qopr::H(), qopr::ID(), qopr::ID()); int M0 = reg.MES(0); int M1 = reg.MES(0); if(M1) reg.feed(qopr::X()); if(M0) reg.feed(qopr::Z()); H X Z M1M1 M2M2
Адрес библиотеки: Литература: Нильсен,М., Чанг И. Квантовые вычисления и квантовая информация. М.: Мир, Svore K., Cross A., Aho A., Chuang I., Markov I. Toward a Software Architecture for Quantum Computing Design Tools. Proceedings of Quantum Programming Languages (QPL). July p