Изучаем квантовые вычисления на Python и Q#

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Технологический прорыв, связанный с распространением квантовых компьютеров, уже не за горами. В этой книге технологии будущего обсуждаются с практической стороны: комплект инструментов от компании Microsoft и язык Q# предоставляют вам возможность поупражняться в квантовых вычислениях. В части I вы создадите симулятор квантового устройства на языке Python, в части II научитесь применять новые навыки написания квантовых приложений с помощью языка Q# и Комплекта инструментов для квантовой разработки, а в части III – имплементировать алгоритм, который умножает целые числа экспоненциально быстрее, чем самый лучший из известных стандартных алгоритмов. Издание предназначено для разработчиков программного обеспечения. Предварительного опыта работы с квантовыми вычислениями, а также знания математики или физики на продвинутом уровне не требуется.

Author(s): Сара Кайзер, Кристофер Гранад
Edition: 1
Publisher: ДМК Пресс
Year: 2021

Language: Russian
Commentary: Vector PDF
Pages: 430
City: М.
Tags: Python; Encryption; Quantum Computing; Chemistry; Search Algorithms; Quantum Cryptography; Q#; Quantum Algorithms

Вводное слово
Предисловие
Признательности
О книге
Об авторах
Об иллюстрации на обложке
Часть I. Приступаем к работе с квантом
Глава 1. Введение в квантовые вычисления
1.1. Почему квантовые вычисления имеют значение?
1.2. Что такое квантовый компьютер?
1.3. Как мы будем использовать квантовые компьютеры?
1.3.1. Что квантовые компьютеры могут делать?
1.3.2. Чего квантовые компьютеры не могут делать?
1.4. Что такое программа?
1.4.1. Что такое квантовая программа?
Резюме
Глава 2. Кубиты: строительные блоки
2.1. Зачем нужны случайные числа?
2.2. Что такое классические биты?
2.2.1. Что можно делать с классическими битами?
2.2.2. Абстракции – наши друзья
2.3. Кубиты: состояния и операции
2.3.1. Состояние кубита
2.3.2. Игра в операции
2.3.3. Измерение кубитов
2.3.4. Обобщение измерения: независимость от базиса
2.3.5. Симулирование кубитов в исходном коде
2.4. Программирование рабочего QRNG-генератора
Резюме
Глава 3. Обмен секретами с помощью квантового распределения ключей
3.1. В любви и шифровании все средства хороши
3.1.1. Квантовые операции NOT
3.1.2. Обмен классических битов с кубитами
3.2. Сказка о двух базисах
3.3. Квантовое распределение ключей: BB84
3.4. Использование секретного ключа для отправки секретных сообщений
Резюме
Глава 4. Нелокальные игры: работа с несколькими кубитами
4.1. Нелокальные игры
4.1.1. Что такое нелокальные игры?
4.1.2. Тестирование квантовой физики: игра CHSH
4.1.3. Классическая стратегия
4.2. Работа с многокубитовыми состояниями
4.2.1. Реестры
4.2.2. Почему трудно симулировать квантовые компьютеры?
4.2.3. Тензорные произведения для подготовки состояний
4.2.4. Тензорные произведения для кубитовых операций на реестрах
Резюме
Глава 5. Нелокальные игры: имплементирование многокубитового симулятора
5.1. Квантовые объекты в QuTiP
5.1.1. Модернизация симулятора
5.1.2. Измерение: как измерить несколько кубитов?
5.2. Игра CHSH: квантовая стратегия
Резюме
Глава 6. Телепортация и запутанность: перемещение квантовых данных с места на место
6.1. Перемещение квантовых данных
6.1.1. Обменные операции в симуляторе
6.1.2. Какие еще существуют двухкубитовые вентили?
6.2. Все одиночные (однокубитовые) повороты
6.2.1. Привязка поворотов к координатам: операции Паули
6.3. Телепортация
Резюме
Часть I: заключение
Часть II. Программирование квантовых алгоритмов на Q#
Глава 7. Перевес в другую пользу: введение в язык программирования Q#
7.1. Введение в Комплект инструментов для квантовой разработки
7.2. Функции и операции в Q#
7.2.1. Игры с квантовыми генераторами случайных чисел на Q#
7.3. Передача операций в качестве аргументов
7.4. Игра Морганы на Q#
Резюме
Глава 8. Что такое квантовый алгоритм
8.1. Классические и квантовые алгоритмы
8.2. Алгоритм Дойча–Йожи: умеренные улучшения для проведения поиска
8.2.1. Владычица (квантового) озера
8.3. Оракулы: представление классических функций в квантовых алгоритмах
8.3.1. Преобразования Мерлина
8.3.2. Обобщение наших результатов
8.4. Симулирование алгоритма Дойча–Йожи на Q#
8.5. Размышления о квантово-алгоритмических техниках
8.5.1. Ботинки и носки: применение и откат квантовых операций
8.5.2. Использование инструкций Адамара для переворачивания управления и цели
8.6. Фазовая отдача: ключ к нашему успеху
Резюме
Глава 9. Квантовая телеметрия: это не просто фаза
9.1. Фазовое оценивание: использование полезных свойств кубитов для измерения
9.1.1. Часть и частичное применение
9.2. Пользовательские типы
9.3. Беги, змейка, беги: выполнение Q# из Python
9.4. Собственные состояния и локальные фазы
9.5. Контролируемое применение: превращение глобальных фаз в локальные фазы
9.5.1. Управление любой операцией
9.6. Имплементирование лучшей стратегии Ланселота для игры с оцениванием фазы
Резюме
Часть II: заключение
Часть III. Прикладные квантовые вычисления
Глава 10. Решение химических задач с по­мощью квантовых компьютеров
10.1. Реальные химические приложения для квантовых вычислений
10.2. Много путей ведут к квантовой механике
10.3. Использование гамильтониан для описания эволюции квантовых систем во времени
10.4. Поворачивание вокруг произвольных осей с помощью операций Паули
10.5. Внесение изменений, которые мы хотим видеть в системе
10.6. Претерпевая (очень малые) изменения
10.7. Окончательная сборка
Резюме
Глава 11. Поиск с по­мощью квантовых компьютеров
11.1. Поиск по неструктурированным данным
11.2. Отражение вокруг состояний
11.2.1. Отражение вокруг состояния «все единицы»
11.2.2. Отражение вокруг произвольного состояния
11.3. Имплементирование поискового алгоритма Гровера
11.4. Оценивание ресурсов
Резюме
Глава 12. Арифметика с по­мощью квантовых компьютеров
12.1. Включение квантовых вычислений в обеспечение безопасности
12.2. Подключение модульной математики к факторизации
12.2.1. Пример факторизации с использованием алгоритма Шора
12.3. Классическая алгебра и факторизация
12.4. Квантовая арифметика
12.4.1. Сложение с по­мощью кубитов
12.4.2. Умножение с кубитами в суперпозиции
12.4.3. Модульное умножение в алгоритме Шора
12.5. Окончательная сборка
Резюме
Заключение
Приложение А. Инсталлирование требуемого программно-информационного обеспечения
Приложение В. Глоссарий и краткий справочник
Приложение С. Памятка по линейной алгебре
Приложение D. Разведывательный анализ алгоритма Дойча–Йожи на примере
Предметный указатель