Квантовые компьютеры. Как людям научиться с ними разговаривать
На выставке потребительской электроники CES-2018 в Лас-Вегасе свои квантовые компьютеры показали IBM и Intel, но проверить их возможности не так просто, как у обычного ноутбука. В будущем квантовые компьютеры сулят кардинальное решение проблем разработчиков электроники, которым для миниатюризации транзисторов требуется все больше капиталовложений. Но пока это скорее экспериментальные системы. Когда же они заработают в полную мощь?
Теоретическое отступление
Что такое «квантовые вычисления» и чем они отличаются от обычных? Единица информации в обычных компьютерах — это бит, он имеет два состояния: 1 и 0 — бинарная система. Преобразование и хранение самой информации реализованы в современных компьютерах с помощью определения наличия электричества: есть — 1, нет — 0. И уже много десятков лет компьютеры, несмотря на весь прогресс, по-прежнему работают по этому принципу.
Мир микрочастиц подчиняется другим законам. В нем невозможно, например, одновременно посчитать координату и скорость объекта. Можно представить, что частица «размыта» в какой-то области пространства — находится во всех возможных состояниях одновременно. Очень показателен знаменитый парадокс «кота Шрёдингера» — в нем попытка применения правил квантовой физики к нашему макромиру приводит нас к абсурдной ситуации — кот, находящийся в коробке, и жив и мертв одновременно!
В итоге единица информации в квантовом компьютере — кубит. Он может находиться во всех своих состояниях (1 и 0) одновременно. И это позволяет обрабатывать куда больше информации, чем в классической двоичной системе, потому что регистр из двух кубитов может находиться в четырех разных состояниях одновременно: 00, 01, 10 и 11. В итоге вычисления на квантовом компьютере производятся со всеми возможными вариантами одновременно. И нашей задачей становится лишь провести в конце такие преобразования, которые позволят при измерении получить вариант, наиболее точно удовлетворяющий требованиям поставленной задачи.
Например, если необходимо сравнить несколько цилиндров и выбрать среди них самый длинный, то в классических вычислениях компьютер сначала измерит все объекты по очереди, потом сравнит полученные данные и после этого уже выдаст, какой цилиндр длиннее. В случае с квантовыми вычислениями все цилиндры будут сравниваться вместе, и самым длинным окажется тот, который сильнее всех «торчит». Подобный подход реализует алгоритм Гровера.
Благодаря такой разнице при переходе на квантовые вычисления происходит просто колоссальное увеличение скорости расчетов. Это позволит в дальнейшем совершать нерешаемые даже для самых современных суперкомпьютеров вычисления! Например: есть задача разложить число, содержащее 400 знаков, на простые множители. Механизмы квантовых вычислений позволяют уменьшить количество операций при подсчете этой задачи с нынешних 100 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 (не пытайтесь посчитать) до 64 000 000.
Практическое применение
Подобные вычисления — не случайная выдумка для красивого примера, квантовый параллелизм уже применим для широкого спектра задач. Для квантового компьютера некоторые современные алгоритмы криптографии, применяемые в наше время, окажутся простой игрушкой, взламываемой за несколько минут. Эксперты прогнозируют, что «падение» многих современных систем защиты данных произойдёт в тот момент, когда появится универсальный квантовый компьютер, способный работать с 50+ кубит, сохраняя состояние квантов не подверженным искажению шумами в течение нескольких минут.
Пока квантовые компьютеры уже могут оперировать десятками кубит, но время их жизни ограничивается десятками микросекунд. Это не позволяет проводить на них сложные вычисления, поскольку они требуют больше времени, чем способен «просуществовать» кубит. Если же совершать промежуточные операции по вводу-выводу данных, то все преимущества квантовых вычислений сойдут на нет. Предвидя их развитие, инженеры уже ведут активное развитие постквантовой криптографии — набора протоколов и алгоритмов, стойких к атакам даже с использованием квантовых вычислителей.
Разница в вычислительных способностях так огромна, что все современные компьютеры по сравнению с квантовыми практически одинаково медленны — от самых первых вычислительных машин на лампах до современных суперкомпьютеров. Достигается это другим подходом к решению определенного класса задач. Справедливости ради надо отметить, что складывать и умножать числа пока заметно проще и быстрее на традиционных компьютерах, квантовые на таких примерах проигрывают.
Языковые трудности
Наиболее известное в мире устройство, проводящее квантовые вычисления, — это D-Wave, первый «аналоговый квантовый компьютер», ориентированный на крайне узкий круг задач, но при этом его мощность составляет 2000 кубит. Один из полноценных, универсальных квантовых компьютеров, который можно использовать практически для любых нужд, — IBM Q. Компания работает с версией на 16 кубит (17 — для корпоративных клиентов), а на выставке CES показала 50-кубитовый прототипа.
Программировать квантовые вычислительные системы можно уже сейчас — IBM прямо сейчас предоставляет «облачный» сервис и пакет sdk для разработки.
IBM Quantum Experience является открытой платформой, на базе которой можно разрабатывать квантовые алгоритмы и отлаживать их на реальном 5- или 16-кубитном компьютере. Чтобы программировать для D-Wave, пользователям придется скачать на свой компьютер специальный софт.
Одна из главных проблем, которая стоит перед квантовыми вычислениями, — это отсутствие единых стандартов разработки. Грубо говоря, из-за того что квантовые компьютеры находятся в начале своего развития, программировать всё приходится с нуля «руками» — примерно как в начале развития ЭВМ, только без физического воздействия на компоненты.
Для понимания: в настоящее время в обычном компьютере вычисления производятся через логические преобразования И, НЕ и ИЛИ над битами, которые называются гейтами. Благодаря многочисленным компьютерным языкам, программистам не приходится задумываться о взаимодействии отдельных битов. В квантовых вычислениях примерно аналогичная история. Но проблема в том, что нет универсальных инструментов, и сейчас, разрабатывая новый алгоритм, программисту приходится заново реализовывать часто встречающиеся конструкции, такие как сложные гейты и преобразования.
По мере развития компетенций в области квантовых вычислений планируется создание библиотек универсальных гейтов для упрощения и ускорения создания новых алгоритмов.
Как бы то ни было, мы пока находимся в самом начале квантовых вычислений. Если сравнивать с классическими компьютерами, то мы где-то на уровне 30–40-х годов XX века, когда только появились схемы на вакуумных лампах, а одна ЭВМ занимала половину комнаты, вторую — её обслуживающий персонал. Но, учитывая темпы развития этой технологии, которые наблюдаются, развитие квантовых вычислений будет происходить гораздо быстрее, чем нынешних компьютеров. И те, кто начинает работу в этом направлении сейчас, уже через 3–5 лет смогут эффективно использовать квантовые вычисления.
Впрочем, пока эксперты не берутся давать точного прогноза, когда квантовые компьютеры смогут помочь в решении некоторых неразрешимых на данный момент задач, как минимум, потому, что человечество упирается в нехватку научных знаний. Ученые пока лишь говорят о том, что на полноценную квантовую революцию уйдет минимум десятилетие.