Квантовые компьютеры: а Crysis потянет?

Автор — Игорь Мирославский, ПЕ-81б.

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

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

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

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

Главная особенность частиц, рассматриваемых в квантовой физике, заключается в изменчивой натуре квантовых объектов: обычный объект всегда частица или волна, а квантовый колеблется во множестве состояний, в каждый момент времени принимая одно из них с некой вероятностью.

Этот факт часто упрощают до «квантовая штука одновременно и частица и волна», хотя на деле мы просто не знаем, чем она является сейчас. Для этого, с объекта нужно считать данные, но для квантовых частиц этот способ не работает: считывание невозможно без взаимодействия, а любое взаимодействие останавливает вероятностное колебание квантового объекта между состояниями. Этот принцип обычно называют «принцип наблюдателя», и он означает, что достоверно узнать состояние квантового объекта нельзя – лишь «угадать» его с некой вероятностью. Отсюда следует, что квантовая физика – информационная наука: в ней ключевую роль играет не какой-нибудь объект, а информация о нём.

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

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

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

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

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

Во-вторых, все квантовые системы так или иначе нестабильны: любое взаимодействие с ними переводит их в классическую форму, да ещё и нужно что-то делать с влиянием окружающей материи.

Данный список – лишь капля в море проблематики квантовых компьютеров, но уже показывает масштабность проблем. Хотя, человечество постепенно преодолевает барьеры природных законов: уже сейчас существуют простейшие прототипы квантовых компьютеров, каждый из которых способен квантовыми методами решать одну простую задачу. Эти прототипы, с лёгкой руки Google и IBM, уже лет десять известны как «первый рабочий квантовый компьютер», но квантовыми компьютерами это пока рано называть: все прототипы представляют собой всего лишь квантовые отжигатели – начальную форму квантовых компьютеров, которая способна лишь на физическое решение задачи нахождения глобального минимума заданной функции.

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

К слову об алгоритмах, существует и специальный ряд «квантовых» алгоритмов, которые позволяют не только скорректировать влияние физических факторов на работу системы, но и решать некоторые задачи лучше, чем классические компы: алгоритм Шора «убийца RSA» использует квантовый перебор для разложения любого числа на простые множители, а алгоритм Гровера крайне эффективно решает задачи перебора. 

Если алгоритм Шора уничтожает смысл современной криптографии на базе RSA ключей, то методы квантовой криптографии позволяют заполнить эту нишу: взаимодействие с информацией переводит последнюю в «стабильную» форму, что делает невозможной любую незаметную попытку перехвата данных сразу же обнаруживается. Иными словами, квантовая криптография позволяет Еве перехватить диалог Алисы и Боба, но всем сразу станет известен не только факт перехвата, но и личность перехватчика, что делает перехват бесполезным в ряде случаев (угроза вычисления по айпи уже не выглядит такой смешной).

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

Для решения этой проблемы, современные КК представляют собой связку из классического компьютера и квантового: классический компьютер настраивает квантовую систему и считывает результат выполнения квантового алгоритма, а квантовая система этот алгоритм выполняет.


Отсюда следует, что задача программирования сводится к математической модификации имеющихся ЯП (или же к созданию специальных языков), а также к детальной проработке специальных библиотек квантовых алгоритмов. Так, многим известные императивный C# и функциональный Haskell получили квантовые модификации Q# и Quipper, которые предназначены специально для квантовых вычислений и реализации квантовых алгоритмов. Наглядно, поработать с квантовым языком можно через облачный сервис IBM для взаимодействия с реальным или симуляционным КК, где алгоритм формируется из логических вентилей.

Что же можно выделить из всего мини-обзора квантовых компьютеров:

1) Квантовые компьютеры – не непонятное колдунство программистов и гиков, а самая обычная и непонятная квантовая физика, в которой тяжело разбираться даже тем, кто посвятил ей целую жизнь;

2) Квантовые компьютеры могут потянуть даже Crysis, но классические компы с этим справятся лучше. Зато, в задачах перебора и оптимизации, классические компьютеры без шансов отдают пальму первенства квантовым: последние могут нереально ускорить поиск в массивах хаотично разбросанных данных, моделировать любые квантовые системы, да и просто быть прикольными и полезными;

3) Квантовые компьютеры – ещё не настоящее, но уже и не далёкое будущее. Пока что, сложно уверенно сказать какими они будут, и какова будет их роль в нашей жизни, но уже сейчас их можно считать незаурядной и интересной разработкой, которую трудно отложить на задворки науки, как было в случае той же антиматерии.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *