Примечание из настоящего: IBM Quantum Experience теперь называется IBM Quantum Lab и IBM Quantum Composer. Теперь все выглядит не так, как описано в этой статье. Это пережиток прошлого квантовых вычислений!

Если вы хотите начать играть с квантовыми компьютерами, вы попали в нужное место. В этой статье мы познакомим вас с основами квантовых вычислений. Мы также покажем вам, как начать экспериментировать с IBM Quantum Experience.

Если вы хотите начать с чего-то, а не с чтения, посмотрите игру Hello Quantum, на которой основано это руководство. Вы можете получить игру для своего iOS-устройства или Android-устройства. Также есть раздел Учебника Qiskit, где вы можете разгадывать головоломки и узнавать о них прямо в браузере.

Но для тех из вас, кто предпочитает просто прочитать сообщение в блоге, давайте продолжим!

Самые основы

Прежде чем мы перейдем к квантовым компьютерам, что такое обычные компьютеры?

Проще говоря, это устройства, которые хранят и обрабатывают информацию с помощью битов . Это простые блоки информации, которые принимают одно из двух возможных значений. Мы могли бы назвать эти значения True и False, или Yes и No, или On и Off, но обычно мы называем их 0 и 1.

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

Задавать вопросы о кубитах

Процесс получения кусочка от кубита по сути похож на вопрос. Мы можем задать любой из бесконечного набора возможных вопросов, на каждый из которых можно ответить простым 0 или 1.

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

То, как мы формулируем наши вопросы, зависит от того, как мы описываем кубит. В этой статье и в игре Hello Quantum мы описываем их визуально, используя пару цветных кружков.

Один из наших вопросов - задать вопрос о нижнем круге на изображении выше. Он черный или белый? Другой вопрос - задать то же самое о верхнем.

Задавать вопросы о кубитах раньше могли только ученые. Теперь любой желающий может попробовать себя с помощью IBM Quantum Experience.

IBM Quantum Experience представляет квантовые программы, использующие набор линий, каждая из которых представляет жизнь определенного кубита.

События из жизни кубита представлены символами на линиях. Чтобы задать вопрос, вам просто нужны правильные символы.

Вот вопрос о нижнем круге кубита.

Поскольку мы спрашиваем, является ли нижний кружок черным или белым, значения битов, которые мы получаем в качестве ответа, будут отражать эти возможности. Мы получаем результат 0, если нижний круг черный, и1, если он белый. Если это не так, кубит находится в затруднительном положении. Он может отвечать только на вопросы с 0 или 1, поэтому у него нет другого ответа. Таким образом, в случае контурного круга он просто случайным образом решает, дать нам 0 или 1.

Чтобы спросить о верхнем круге, нам нужно использовать пару символов (которые, кстати, называются воротами).

Задав этот вопрос, вы также получите ответ 0 или 1 в зависимости от того, является ли круг черным или белым, но теперь мы смотрим на верхний круг.

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

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

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

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

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

После того, как мы запустим эту программу, давайте спросим оба кубита об их нижних кругах.

Результаты случайны. Так, может быть, вся уверенность в высших кругах?

Неа! Они тоже случайны. Наши кубиты, по-видимому, имеют все очертания кружков.

Куда пропала уверенность? Чтобы узнать, попробуйте задавать вопросы одновременно.

Хотя оба нижних кружка дают случайные ответы, эти ответы наверняка совпадают. Вот куда делась наша уверенность!

Это довольно странная вещь. Кубиты действительно не знали, как они ответят на эти вопросы, пока мы их не задали. Но каким-то образом они сговорились всегда соглашаться.

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

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

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

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

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

Эту информацию тоже нужно добавить к нашей картинке. Еще пара кружков нужна, чтобы заполнить пустые места. Чтобы обозначить тот факт, что согласие (или несогласие) является случайным, мы будем использовать контурные круги.

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

Давать кубитам ответы

Все кубиты начинают свою жизнь одинаково: на вопрос о нижнем круге они дадут ответ 0. Это называется состоянием|0〉.

Итак, два кубита в начале своей жизни будут выглядеть так

Когда вы смотрите на |0〉, вы, вероятно, задаетесь вопросом о | и . Но не стоит слишком о них беспокоиться. Они в основном присутствуют в виде ярлыков, напоминая нам, что это не число 0 или битовое значение 0, а описание кубита. Мы могли бы также отметить это, покрасив 0 в зеленый цвет или нарисовав его на короне принцессы. Не стесняйтесь использовать эти соглашения, если хотите.

Если бы наши кубиты остались |0〉 навсегда, наш квантовый компьютер был бы довольно скучным. Поэтому нам нужно что-то с ними делать. Проще всего перевернуть нижний кружок с черного на белый или обратно. Точно так же, как щелкнуть выключателем. Это делается с помощью ворот X.

При этом кубит переворачивает его нижний круг. Итак, если он собирался ответить 0, он теперь ответит 1 и наоборот. Это означает получение нижнего круга белого цвета. Это называется состоянием |1〉.

Поскольку случайное значение остается случайным, выполнение X контурного круга не повлияет на него.

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

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

Иногда мы также можем захотеть перевернуть верхний круг кубита. Это делается воротами под названием Z. Вот это применимо к кубиту слева.

Эти операции X и Z являются примерами операций Клиффорда. Это причудливое название просто говорит нам, что это операции с относительно простым воздействием на круги. Фактически, эта визуализация исходит из того, как мы любим думать об операциях Клиффорда и их эффектах.

Есть и другие операции Клиффорда. Есть H, который меняет местами два круга кубита, а также их соответствующие строки.

С его помощью мы можем изменить, на какие вопросы кубиты имеют определенный ответ. Например, мы можем взять state|0〉, для которого нижний круг черный, и использовать H, чтобы переставить этот черный круг вверх. Затем кубит, который должен был ответить 0 на вопрос о его нижнем круге, теперь делает это для верхнего.

Результирующее состояние не может быть |0〉, потому что это имя уже занято. Итак, мы называем это |+〉.

Если мы сделаем X перед H или Z после, мы можем вместо этого сделать его верхний круг белым. Это состояние мы называем |-〉.

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

Заставляем кубиты разговаривать друг с другом

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

Пока что у нас не так много инструментов, чтобы помочь нам в этом. Фактически, 48_ врата - единственные, которые хоть как-то повлияли на уверенность. Едва ли достаточно исследовать всю сетку, как вы убедитесь, пройдя уровни 1 и 2 в Hello Quantum.

Чтобы действительно сдвинуть дело с мертвой точки, нам нужны ворота нового типа. Нам нужны вентили, которые действуют более чем на один кубит одновременно. Нам нужны управляемые ворота.

Одна из наиболее важных контролируемых операций - это Control-Z, также известная как cz. Это тот, который мы представляем на уровне 3 Hello Quantum. На момент написания это еще не было доступно в IBM Quantum Experience в качестве собственных ворот. Но если бы это было так, это выглядело бы так.

Есть несколько возможных способов объяснения воздействия CZ. Кажется, что каждая из этих историй говорит о чем-то совершенно другом. Но почему-то все они одинаково верны.

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

Другое объяснение CZ точно такое же, как это, но с обратными ролями двух кубитов.

В этих примерах правый кубит действует как переключатель, а левый может получить Z. Хотя это тот же самый CZ, его можно интерпретировать совершенно противоположным образом!

Третий способ объяснения CZ совершенно другой. Мы можем думать об этом как о чем-то, что движется по кругу. В частности, он меняет местами две пары кругов. Одна пара слева.

И еще пара справа.

Хотя эта интерпретация в корне отличается от двух других, она все же полностью отражает эффекты CZ. Вы можете смотреть на одно и то же CZ, действующее на одно и то же состояние, и интерпретировать его любым из трех способов.

Это объяснение не лишено неприятных моментов. Посмотрите, что он делает с кругом в самом верху сетки.

В первом примере круг на самом верху был превращен из контура в белый. Во втором он превратился из контура в черный. Какая логика за этим?

Можно решить все головоломки Hello Quantum, не понимая этого эффекта. Но если вы хотите стать квантовым программистом, вы, вероятно, захотите знать, что происходит. Итак, мы дадим вам возможность убедиться в этом сами!

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

Чтобы отслеживать, какие ответы он даст, нам нужно добавить еще один кружок к нашему описанию каждого кубита.

Здесь новый кружок находится посередине и был окрашен немного иначе, чтобы выделить его.

Чтобы описать возможные результаты среднего круга и все их возможные соглашения и разногласия друг с другом и другие вопросы, нам нужна сетка с 15 кругами.

С их помощью вы сможете разгадать тайну CZ. И вы также можете проверить, как ворота X, Z и H влияют на эти новые круги, а также опробовать новые ворота, такие как S. Просто поиграйте с новым измерением в Quantum Experience и используйте свои результаты, чтобы понять большую сетку. Чтобы узнать, как настроить для этого Quantum Experience, прочтите статью здесь.

За пределами Клиффорда

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

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

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

Для этого нам понадобятся не-Клиффордские ворота с невообразимым названием.

Их нет в версии приложения Hello Quantum, но есть в родственной игре в Учебнике Qiskit.

Кроме того, в IBM Quantum Experience есть целый ряд ворот, отличных от Клиффорда. Проще всего попробовать T и Tdg. Чтобы понять это, вам понадобится вся сетка из 15 кубитов, но у вас есть все, что вам нужно.

За пределами двух кубитов

Игра Hello Quantum поможет вам развить интуицию и знания с помощью всего двух кубитов. Как только у вас это получится, вы можете приступить к работе с большими числами.

Чтобы полностью описать три кубита, нам снова нужно будет отслеживать, как каждый из них отвечает на три вопроса. И нам нужно будет отслеживать, насколько ответы на вопросы по одному кубиту согласуются или не согласуются с другими. И как это соотносится с тем, что делает третий? Для этого нужно много кругов. Если быть точным, то в кубе их всего 63 штуки.

Расширьте это до четырех кубитов, и вам понадобится гиперкуб из 255 кругов. Для n кубитов требуется 4ⁿ-1. Объем информации, который нам нужно отслеживать, растет экспоненциально с увеличением количества кубитов!

Это означает, что визуализации, подобные той, что используется в Hello Quantum, будут полезны только для небольшого количества кубитов. В конце концов, если бы мы могли легко визуализировать, что происходит в большом квантовом компьютере, это означало бы, что мы можем легко смоделировать это. И если бы мы могли легко моделировать квантовые компьютеры, не было бы необходимости их строить.

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

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