Skip to content

Quantum teleportation of a pure state modeled by a classical computer

License

Notifications You must be signed in to change notification settings

vongostev/QTeleportationCM

Repository files navigation

QTeleportationCM

Quantum teleportation of a pure state modeled by a classical computer

Моделирование квантовой телепортации. Требования к программе.

  • Используется python3
  • Для квантовых операций используется библиотека qutip
  • Для написания программы будет полезен гайд
  • Также полезны библиотеки numpy, matplotlib
  • Файл скрипта должен называться qteleportation.py

Весь алгоритм разбит на 4 функции:

  1. initialize(state) – создание трехкубитного состояния (кет-вектора), состоящего из исходного кубита, который необходимо телепортировать, и состояния Белла |Ф+>. На вход подается объект типа qutip.Qobj размерности [[2], [1]], его можно генерировать с помощью функции qutip.rand_ket(N=2). На выходе объект типа qutip.Qobj размерности [[2, 2, 2], [1, 1, 1]].
  2. evolute(state) – перепутывание телепортируемого кубита и состояния Белла. На входе трехкубитное состояние – объект типа qutip.Qobj размерности [[2, 2, 2], [1, 1, 1]]. На выходе объект типа qutip.Qobj размерности [[2, 2, 2], [1, 1, 1]].
  3. measure(state) – измерение с элементом случайности. На входе трехкубитное состояние после эволюции – объект типа qutip.Qobj размерности [[2, 2, 2], [1, 1, 1]]. На выходе случайное число от 0 до 3, 0 соответствует состоянию |00>, 1 -- |01>, 2 -- |10>, 3 -- |11>. Вероятность появления определенного числа определяется вероятностью измерения соответствующего состояния. Где реализации случайных измерений можно использовать numpy.choice.
  4. teleport(state, mres) – сама телепортация. На вход подается трехкубитное состояние после эволюции – объект типа qutip.Qobj размерности [[2, 2, 2], [1, 1, 1]], и случайное число от 0 до 3 – результат измерения. На выходе – состояние кубита после телепортации, объект типа qutip.Qobj размерности [[2], [1]].

Весь выполняемый при запуске скрипта код заносится под условие if __name__ == “__main__”.

Инструкция по загрузке кода в репозиторий

  1. Зарегистрироваться на github
  2. Установить GitHub Desktop
  3. Написать в личные сообщения группы ВК свой ник github и дождаться приглашения
  4. Клонировать этот репозиторий в удобное место на компьютере
  5. Создать в корне репозитория папку с названием: фамилия студента транслитом и маленькими буквами.
  6. Создать в этой папке пустой файл __init__.py
  7. Создать в этой папке файл qteleportation.py
  8. Написать код.
  9. Можно пройти тесты, выполнив в корне репозитория команду pytest -v qtest.py
  10. Закоммитить код в репозиторий в ветку main
  11. Запушить коммит на github
  12. При непрохождении теста, если уверены в правильности написанного кода -- запушить код на github, открыть issue, описать проблему
  13. Посмотреть логи тестов в Actions

About

Quantum teleportation of a pure state modeled by a classical computer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published