Программирование квантовых компьютеров: джентльменский набор издательства «Питер»

    Мы очень стараемся отслеживать тренды ещё на этапе их формирования и готовить для русскоязычных читателей наиболее актуальные книги. Сегодня я покажу, как это происходит. Для примера возьму довольно необычную тему – программирование квантовых компьютеров.

    Эта история началась 4 года назад, и теперь, в конце 2020-го, у нас уже сформирован небольшой, но весьма доступный и актуальный портфель.

    В 2016 году к нам в издательство от зарубежных коллег пришла очень занимательная книга: The Future X Network: A Bell Labs Perspective. Если вы раньше не слышали о Лаборатории Белла – обязательно поинтересуйтесь. Весьма незаурядная организация!

    К сожалению, на русском языке она издана так и не была. И всё же мы её внимательно изучили. Это не абстрактная футурология, а очень серьёзное исследование с прогнозами до 2025 года, которые глупо игнорировать. Более того, проверяя сейчас, спустя 5 лет после составления этих прогнозов (книгу писали в 2015-м, ещё до того как их купила Nokia), соответствие их действительности очень впечатляет.

    Среди многих тем наше внимание особо привлекли те, что касались вычислений. Спрос и предложение, технологии и перспективы. Здесь-то мы и получили первые серьёзные сигналы о том, что облачные вычисления и инфраструктура, квантовые компьютеры из предположений и экспериментов превращаются в осязаемый, ускоряющийся фактор трансформации всего IT (а чуть позже и не IT тоже).

    С этими мыслями и чувствами мы начали искать.

    Всё что касается облаков, машинного обучения и биг даты – весьма понятно, наши книги по этой теме вам известны. Поэтому мы искали подтверждение спроса (в это время как раз активно рос Хаб квантовые технологии). Искали авторов и книги, которые будут полезны читателям на нынешней стадии развития квантовых технологий и в недалёком будущем.

    Наконец ближе к концу 2018 года желания сошлись с возможностями. Мы нашли и приняли в план издательства нашу первую книгу из этого портфеля: "Квантовые вычисления для настоящих айтишников".

    Почти год прошёл от принятия решения до постановки книги на полки розничных и виртуальных магазинов.

    Раз уж с практикой на тот момент было затруднительно, ведь ещё не было работающих машин с адекватного размера квантовым объёмом, мы рассудили, что нашей аудитории больше пригодится понятный и точный путеводитель по теории квантовых вычислений. В книге соблюдён тонкий баланс между количеством вопросов, которые необходимо обсудить с читателем, и глубиной «дебрей», в которые придётся залезть, чтобы результат не был обманчиво упрощён.

    В качестве нашей утренней звезды выступила книга от The MIT press, впоследствии ставшая бестселлером на Amazon. К слову, мы приняли книгу к изданию почти за полгода до её релиза на Западе.

    Дальше случилось неожиданное!

    На CES 2019 был представлен Первый коммерческий квантовый компьютер - IBM. То есть мы, конечно, предполагали, что IBM будет активно работать в этом направлении. Однако их успехи превзошли наши ожидания.

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

    Прошерстив все варианты, несколько месяцев спустя мы выбрали книгу от Владимира Силвы – активного исследователя и разработчика, работающего в различных подразделениях IBM, связанных как раз с перспективными технологиями и крупномасштабными вычислениями.

    Нам было понятно, что IBM становится лидером квантовой гонки. У них достаточно опыта, ресурсов, клиентов и решимости для того, чтобы сделать из новейшей технологии настоящую индустрию. Ну и ещё удалось выудить из их научных публикаций и буклетов-гайдов для бизнеса интересную и убедительную информацию о ближайших планах/достижениях. Из всего следовало, что по крайней мере в ближайшее десятилетие именно их стек технологий будет стандартом «продакшена». Конечно в тех пределах, в которых можно говорить о продакшене столь молодой технологии.

    "Разработка с использованием квантовых компьютеров" подойдёт для разработчиков, уже владеющих хотя бы базовыми знаниями в CS и основами языка Python. Книга предназначена для формирования навыков работы как с симулятором, так и с настоящим квантовым компьютером, к которому безвозмездно даёт доступ IBM. Автор учит нас пользоваться специальным фреймворком от IBM (пишем код на Python, фреймворк сам транслирует его в команды для железа и оптимизирует их), а также предлагает минимальный необходимый набор теории. Есть и несколько небольших учебных проектов, в которых наглядно реализован особый подход к решению задач, с использованием преимуществ квантовых вычислений. В общем, идеальный вариант для тех, кто любит сначала поиграть, покрутить и лишь потом решать, сколько тратить времени на углубленное изучение.

    Эту книгу мы успели выпустить вовремя, в этом же месяце прошёл CES 2020, IBM и первое настоящее коммерческое применение нового квантового компьютера. Прошёл и полностью подтвердил все предположения и заявления, которыми мы руководствовались.

    Научного редактора для этого издания я нашёл на Хабре (Михаил Коробко aka Shkaff). Наверняка многие из вас читали его увлекательные посты о гравитационной астрономии и квантовых технологиях, благодаря которым она (астрономия) стала возможна.

    Кстати, тираж книги уже почти распродан. Если она заинтересовала – убедительно советую не откладывать покупку, иначе придётся довольствоваться электронным вариантом.

    Третьей книгой в нашем портфеле стала "Программирование квантовых компьютеров. Базовые алгоритмы и примеры кода".

    Как понятно из названия, это нечто среднее между предыдущими двумя. С одной стороны, мы изучаем что-то довольно фундаментальное – алгоритмы. Хотя и гораздо более динамичное, чем сами основы квантовой физики и квантовых вычислений, которые обсуждали в "Квантовых вычислениях для настоящих айтишников". Практические задачи перед квантовыми компьютерами только начинают ставить, и ансамбль алгоритмов ещё долго будет пополняться. Что не мешает приступить к изучению уже созданных, а возможно, и внести собственный вклад и предложить алгоритм сообществу.

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

    Автор выбрал в качестве основной инфраструктуру Microsoft – второго, на наш взгляд, игрока этой гонки. Публичные инструменты, тот же Q#, они начали развивать раньше IBM, он даже замечен в профильных российских программах подготовки магистров. Таким образом, это решение использовать наработки Microsoft не идеологическое, а вполне прагматичное. Тем не менее, это не книга с игрой в одни высокотехнологичные ворота. Например, вот так автор соединяет квантовую физику, железо, софт и теорию программирования:

    Если вы хотите освоить телепортацию, лучше всего опробовать ее в деле. Учтите, что на протяжении всей человеческой истории до момента написания книги лишь несколько тысяч людей выполняло физическую телепортацию какого-либо рода, так что даже выполнение следующего кода ставит вас в число первопроходцев. Для данного примера вместо системы моделирования мы воспользуемся реальным пятикубитным QPU компании IBM (рис. 4.1). Вы сможете скопировать пример кода из листинга 4.1 на сайт IBM Q Experience, щелкнуть на кнопке и убедиться в том, что телепортация прошла успешно.

    Рис. 4.1. Микросхема IBM очень мала, так что перемещение кубита будет довольно коротким; на иллюстрации и схеме выделены части QPU, между которыми будет происходить телепортация
    Рис. 4.1. Микросхема IBM очень мала, так что перемещение кубита будет довольно коротким; на иллюстрации и схеме выделены части QPU, между которыми будет происходить телепортация

    Для программирования IBM Q Experience можно использовать OpenQASM и Qiskit. Обратите внимание: в листинге 4.1 содержится не код JavaScript, предназначенный для выполнения в QCEngine, а код OpenQASM, предназначенный для выполнения в облачном интерфейсе IBM (рис. 4.2). Выполнение этого кода позволит вам не смоделировать, а реально выполнить телепортацию кубита в исследовательском центре IBM в Йорктаун Хайтс (Нью-Йорк). Мы подробно опишем, как это делается. Подробное рассмотрение этого кода также поможет вам точно понять, как работает квантовая телепортация.

    Пример кода

    Этот пример можно выполнить онлайн по адресу http://oreilly-qc.github. io?p=4-1.

    Листинг 4.1. Телепортация с проверкой

    include "qelib1.inc";
    qreg q[5]; 
    creg c[5];
    
    // Шаг 1: создать запутанную пару 
    h q[2]; 
    cx q[2],q[4]; 
    barrier q[0],q[1],q[2],q[3],q[4];
    
    // Шаг 2: подготовить данные 
    x q[0]; 
    h q[0]; 
    t q[0]; 
    barrier q[0],q[1],q[2],q[3],q[4];
    
    // Шаг 3: отправить 
    h q[0]; h q[2]; 
    cx q[2],q[0];
    h q[2]; 
    measure q[0] -> c[0]; 
    measure q[2] -> c[2]; 
    barrier q[3],q[4];
    
    // Шаг 4: получить 
    x q[4]; 
    z q[4]; 
    barrier q[3],q[4];
    
    // Шаг 5: проверить 
    tdg q[4]; 
    h q[4]; 
    x q[4]; 
    measure q[4] -> c[4];

    Научным редактором книги выступил уже известный вам Михаил Коробко aka Shkaff

    И теперь краткий анонс четвёртой, ещё находящейся в производстве книги – "Танец с кубитами. Как на самом деле работают квантовые вычисления".

    Автор Роберт Сатор (привет TENET, привет Нолан!), вице-президент направления IBM по квантовым компьютерам.

    CV автора

    Это будет уже четвёртое наше издание о квантовых вычислениях и программировании квантовых компьютеров. Обширное и обстоятельное, больше похожее на классическую компьютерную литературу, к которой вы привыкли. Внутри, конечно, довольно много математики, но вас ведь это не пугает в хороших книгах по Машинному и Глубокому обучению?

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

    «Очень нужное и долгожданное пополнение в корпусе литературы по квантовым вычислениям. Свежая, провокационная и глубоко продуманная, с разделами об основных математических инструментах, которые доступны каждому. Настоятельно рекомендую!»

    Ilyas Khan, CEO, Cambridge Quantum Computing

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

    Кстати, раз уж мы весь пост говорим на тему неопределённостей, советую обратить внимание на нашу книгу "Вероятностное программирование на Python: байесовский вывод и алгоритмы". Здесь обошлось без квантовых эффектов, но тоже очень интересно и всё понятно.

    Резюмируем. Примерно таким образом в издательстве "Питер" мы работаем над тем, чтобы наши читатели получал доступ к сливкам компьютерной литературы. Конечно, не получится избавиться от некоторого лага с англоязычным миром. Однако мы работаем на опережение, отсматриваем книги зачастую ещё на этапе концепции от западных издательств и вместо вас сортируем сотни книг, вылавливая лучшее! Могу уверенно сказать, что среди локальных (национальных) книжных рынков русскоязычный читатель от IT получает самый широкий и актуальный выбор.

    Комментарии 3

      +5
      Подтверждаю, отличные книжки!
      • «Разработка с использованием квантовых компьютеров» довольно простая, не вдается сильно в подробности, зато покрывает и физические основы, и математические, и приводит интересные примеры работы КК. Можно брать, регистрироваться на QisKit и программировать квантовый компьютер в тот же вечер уже (как я и делал).
      • «Программирование квантовых компьютеров. Базовые алгоритмы и примеры кода» вообще не касаются физической стороны квантовых вычислений, а подходят к этому как к инструменту. Зато там есть крутое визуальное объяснение работы сложных алгоритмов, которое, наверное, лучшее, что я видел для объяснения работы с запутанностью и разными фазами.
      • «Танец с кубитами. Как на самом деле работают квантовые вычисления» отлично выдерживает баланс между научпопом и полноценным учебником. Т.е. там много математики и всяких абстрактных штук, но они все соединены сквозными физическими примерами, в итоге складывается полная картинка работы сложных алгоритмов типа Шора или Гровера. В общем, если хочется понимать теоретические основы квантовых вычислений — то что надо.
        0

        Эх, еще бы вы научились доставлять за пределы РФ бумажные книги. А то приходиться ограничиваться электронными версиями, которые не всегда удобны для основательного глубокого изучения материала.

          +1
          Конечно, не получится избавиться от некоторого лага с англоязычным миром.
          С лагом тут действительно некая проблема. В любом случае, спасибо всем участникам перевода, а то в Qiskit проекте по локализации документации русский язык пока вообще отсутствует.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое