Квантовые компьютеры спровоцировали новую компьютерную революцию, и у вас есть прекрасный шанс присоединиться к технологическому прорыву прямо сейчас. Разработчики, специалисты по компьютерной графике и начинающие айтишники найдут в этой книге практическую информацию по квантовым вычислениям, нужную программистам. Вместо штудирования теории и формул вы сразу займетесь конкретными задачами, демонстрирующими уникальные возможности квантовой технологии.
Эрик Джонстон, Ник Хэрриган и Мерседес Химено-Сеговиа помогают развить необходимые навыки и интуицию, а также освоить инструментарий, необходимый для создания квантовых приложений. Вы поймете, на что способны квантовые компьютеры и как это применить в реальной жизни.
Author(s): Мерседес Химено-Сеговиа, Ник Хэрриган, Эрик Джонстон
Series: Бестселлеры O’Reilly
Edition: 1
Publisher: Питер
Year: 2021
Language: Russian
Commentary: Vector PDF
Pages: 336
City: СПб.
Tags: Machine Learning; Programming; Quantum Computing; Fourier Transform; Search Algorithms; Shor's Factoring Algorithm
От издательства
Предисловие
Структура книги
Типографские соглашения
Благодарности
Глава 1. Введение
Необходимая подготовка
Что такое QPU?
Практический подход
Учебник QCEngine
Отладка
Низкоуровневые команды QPU
Ограничения моделирования
Аппаратные ограничения
QPU и GPU: некоторые общие характеристики
Часть I.Программирование для QPU
Глава 2. Один кубит
Краткий обзор физических кубитов
Круговая запись
Размер круга
Поворот
Первые операции QPU
Команда QPU: NOT
Команда QPU: HAD
Команда QPU: READ
Команда QPU: WRITE
Практический пример: идеально случайный бит
Пример кода
Пример кода
Команды QPU: PHASE(θ)
Команды QPU: ROTX(θ) и ROTY(θ)
COPY: недостающая операция
Объединение операций QPU
Команда QPU: ROOT-NOT
Пример кода
Практический пример: квантовая проверка защиты
Пример кода
Итоги
Глава 3. Группы кубитов
Круговая запись для многокубитных регистров
Пример кода
Изображение многокубитного регистра
Однокубитные операции в многокубитных регистрах
Чтение кубита в многокубитном регистре
Наглядное представление большего количества кубитов
Команды QPU: CNOT
Практический пример: использование пар Белла для реализации совместной случайности
Пример кода
Команды QPU: CPHASE и CZ
Приемы программирования QPU: фазовый откат
Пример кода
Команда QPU: CCNOT (вентиль Тоффоли)
Команды QPU: SWAP и CSWAP
Проверка обменом
Пример кода
Построение произвольной условной операции
Пример кода
Практический пример: дистанционно управляемая случайность
Пример кода
Итоги
Глава 4. Квантовая телепортация
Практический пример: первые шаги в телепортации
Пример кода
Анализ программы
Шаг 1: создание запутанной пары
Шаг 2: подготовка данных
Шаг 3.1: связывание данных с запутанной парой
Шаг 3.2: перевод кубита данных в суперпозицию
Шаг 3.3: Чтение обоих кубитов Алисы
Шаг 4: получение и преобразование
Шаг 5: проверка результата
Интерпретация результатов
Как используется телепортация?
Известные проблемы при телепортации
Часть II.Примитивы QPU
Глава 5. Квантовая арифметика и логика
Странно и необычно
Арифметика с QPU
Практический пример: построение операторов инкремента и декремента
Пример кода
Сложение двух квантовых целых чисел
Пример кода
Отрицательные числа
Практический пример: более сложные вычисления
Пример кода
Переход на квантовый уровень
Квантовое условное выполнение
Пример кода
Фазовое кодирование результата
Пример кода
Обратимость и служебные кубиты
Отмена вычислений
Отображение булевой логики на операции QPU
Базовая квантовая логика
Пример кода
Итоги
Глава 6. Усиление комплексной амплитуды
Практический пример: преобразование между фазой и амплитудой
Пример кода
Итерация усиления комплексной амплитуды
Больше итераций?
Пример кода
Инвертирование нескольких элементов
Пример кода
Использование усиления комплексной амплитуды
AA и QFT при оценке суммы
Ускорение традиционных алгоритмов с применением AA
Внутри QPU
Интуитивное понимание
Итоги
Глава 7. QFT: квантовое преобразование Фурье
Скрытые закономерности
Пример кода
QFT, DFT и FFT
Частоты в регистре QPU
Пример кода
Пример кода
DFT
Вещественные и комплексные входные данные для DFT
Подробнее о DFT
Пример кода
Практическое применение QFT
Скорость QFT
Пример кода
Пример кода
Пример кода
Внутри QPU
Интуитивное объяснение
Последовательность операций
Пример кода
Итоги
Глава 8. Квантовая оценка фазы
Получение информации об операциях QPU
Собственные фазы предоставляют полезную информацию
Что делает оценка фазы
Как пользоваться оценкой фазы
Ввод
Пример кода
Вывод
Предостережения
Выбор размера выходного регистра
Сложность
Условные операции
Оценка фазы на практике
Внутри QPU
Пример кода
Интуитивное объяснение
Операция за операцией
Итоги
Часть III.Практическое применение QPU
Глава 9. Реальные данные
Нецелые данные
QRAM
Пример кода
Пример кода
Кодирование векторов
Пример кода
Ограничения комплексного амплитудного кодирования
Комплексное амплитудное кодирование и круговая запись
Кодирование матриц
Как матрицы могут представляться операциями QPU?
Квантовое моделирование
Глава 10. Квантовый поиск
Фазовая логика
Построение элементарных операций фазовой логики
Построение сложных команд фазовой логики
Пример кода
Решение логических головоломок
О котятах и тиграх
Пример кода
Общий рецепт для решения задач выполнимости булевых формул
Практический пример: задача выполнимости 3-SAT
Пример кода
Практический пример: невыполнимая задача 3-SAT
Пример кода
Ускорение традиционных алгоритмов
Глава 11. Квантовая избыточная выборка
Применение QPU в компьютерной графике
Традиционная избыточная выборка
Практический пример: вычисление изображений с фазовым кодированием
Пиксельный шейдер
Использование операции PHASE для рисования
Пример кода
Рисование кривых
Пример кода
Выборка в изображениях с фазовым кодированием
Пример кода
Более интересное изображение
Избыточная выборка
Пример кода
QSS и традиционная выборка методом Монте-Карло
Как работает QSS
Пример кода
Добавление цветов
Итоги
Глава 12. Алгоритм Шора
Практический пример: алгоритм Шора на QPU
Пример кода
Что делает алгоритм Шора
Для чего вообще нужен QPU?
Пример кода
Квантовое решение
Шаг за шагом: разложение числа 15 на простые множители
Пример кода
Шаг 1: инициализация регистров QPU
Шаг 2: перевод в квантовую суперпозицию
Шаг 3: условное умножение на 2
Шаг 4: условное умножение на 4
Шаг 5: квантовое преобразование Фурье
Шаг 6: чтение квантового результата
Шаг 7: цифровая логика
Пример кода
Шаг 8: проверка результата
Важные подробности
Вычисление остатка
Время и память
Другие значения переменной coprimes
Глава 13. Квантовое машинное обучение
Решение систем линейных уравнений
Описание и решение систем линейных уравнений
Решение линейных уравнений на QPU
Квантовый анализ главных компонент
Традиционный анализ главных компонент
PCA с QPU
Квантовый метод опорных векторов
Традиционный метод опорных векторов
SVM с QPU
Другие применения машинного обучения
Часть IV.Перспективы
Глава 14. Обзор литературы
От круговой записи к комплексным векторам
Некоторые нюансы и примечания по терминологии
Измерительный базис
Разложение и компиляция вентилей
Телепортация вентилей
Галерея славы QPU
Гонка между квантовыми и традиционными компьютерами
Алгоритмы на базе оракулов
Алгоритм Дойча—Джозы
Задача Бернштейна—Вазирани
Задача Саймона
Языки квантового программирования
Перспективы квантового моделирования
Исправление ошибок и устройства NISQ
Что дальше?
Книги
Конспекты лекций
Сетевые источники информации