Как сделать кубит квантовый

Добавил пользователь Morpheus
Обновлено: 05.10.2024

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

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

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

Расчёты английских учёных показывают, что для взлома криптовалют на основе алгоритма SHA-256 за один день потребуется квантовый компьютер с 13 миллионами кубитов. Если сократить время до одного часа, то количество кубитов вырастает до 317 миллионов. За 10 минут биткоин сможет взломать только квантовый компьютер с 1,9 миллиардами кубитов.

Самый мощный квантовый процессор от IBM имеет 127 кубитов, а к 2029 году Google планирует покорить рубеж в миллион кубитов. Поэтому, как замечают авторы исследования, сторонникам криптовалют не стоит опасаться квантовых компьютеров как минимум ещё 10 лет, а скорее всего, даже больше.

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


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

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

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

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

Так чем же это отличается от других компьютеров? Что ж, компьютер в его самой простой форме - это просто машина, которая выполняет вычисления. Существует много разных типов компьютеров. В первые дни компьютеров у нас действительно были механические компьютеры - Чарльз Бэббидж разработал такоймашинавыполнить вычисления общего назначения в 1837 году. В настоящее время наши компьютеры основаны на цифровой электронике и работают с использованием битов и логических элементов. Квантовый компьютер, наоборот, использует квантовую механику для выполнения вычислений. Вместо квантовых и логических элементов квантовые компьютеры используют кубиты и квантовые элементы.

Так что же такое кубит и квантовые ворота? Физически они могут быть разными: у Google, IBM, Microsoft и Rigetti есть свои реализации кубитов и квантовых вентилей. На данный момент мы не будем беспокоиться о физической природе кубитов и квантовых вентилей, потому что в этом нет необходимости при первом изучении квантового программирования.

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

Понимание кубитов

Давайте начнем счтокубит есть.

Кубит - это вектор двух комплексных чисел с единичной длиной.

Давайте пройдемся поЗачемкубиты таким образом ичто это на самом деле означает, Кубиты сильно отличаются от битов. Для начала бит равен либо 0, либо 1. Здесь нет вероятностей, либо известно, что оно равно 0, либо известно, что оно равно 1. Кубит, наоборот, по своей природе вероятностный, что означает, что дваидентичныйкубиты могут иметьдругойзначения, измеренные один раз! Найдите минутку, чтобы действительно рассмотреть серьезность этого. Это означает, что квантовые вычисления по своей природе вероятностны.

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


Напомним, что кубиты - это вектор двух комплексных чисел 𝛼 и 𝛽, где вектор имеет единичную длину. Вероятность того, что кубит будет измерен как 0, равна квадрату величины 𝛼, | 𝛼 | ² Вероятность того, что кубит будет измерен как 1, равна квадрату величины 𝛽, | 𝛽 | ². Состояние кубита, 𝛼 и 𝛽, не может быть измерено. Можно измерить только значение, в которое входит кубит.

Обозначение Qubit

Кубиты могут быть либо вчистые состоянияилисмешанные состояния, Если состояние кубита может быть полностью описано с использованием линейной комбинации ∣0⟩ а также ∣1⟩ , тогда мы говорим, что в чистом виде. Мы часто обозначаем кубиты чистого состояния, используя следующие обозначения:


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


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

Несколько кубитов

До сих пор мы определяли только состояние одного кубита. Что объединяетсостояние множественных кубитоввыглядит как?

Комбинированное состояние кратных кубитов является тензорным произведением всех кубитов.

Не беспокойтесь, если вы не знаете, что такое тензорный продукт; мы рассмотрим пример (⊗ - символ операции с тензорным произведением).


В общем случае мы можем тензорным произведением любых двух матриц выполнить следующие два шага:

  1. Скалярное умножение каждого элемента в первой матрице на всю вторую матрицу
  2. Объедините полученные матрицы в соответствии с исходным положением их элементов.

Вот второй пример того, как это работает для двумерных матриц:


Мы также можем обозначить множественные кубиты в обозначениях Брэкет как ∣0⟩⊗∣1⟩ , например. В качестве краткости мы можем опустить ⊗ и просто написать ∣0⟩∣1⟩ , Если коротко, мы можем написать только один кет, ∣01⟩ ,

Понимание квантовых врат

Теперь давайте рассмотримчтоквантовые ворота есть.

Квантовые ворота - это унитарная матрица.

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

Объединяя эти две идеи, мы думаем о квантовых воротах какунитарные матрицы, Унитарная матрица - это любая квадратная матрица комплексных чисел, такая чтосопряженная транспонированиеравно егообратный, Для быстрого освежения, конъюгатная транспонирование матрицы определяется путем взятия конъюгата каждого элемента в матрице ( a + bi → a — bi ), а затем берется транспонирование матрицы (элемент ij → элемент ji). Мы обычно обозначаем сопряженную транспозицию кинжалом, †.

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

Наконец, обратите внимание, что поскольку наши квантовые врата являются унитарными матрицами, ониплощадьпо определению, и поэтому наши квантовые ворота должны иметьравныйколичество входных и выходных кубитов (поскольку квадратные матрицы отображают n стандартных базисных векторов в n столбцов)! Это сильно отличается от большинства логических элементов; например,А ТАКЖЕВорота принимают два входа и выдают один выход.

Квантовые Ворота H и CNOT

Теперь, когда мы немного знаем о том, с чем мы работаем, давайте рассмотрим пример,Ворота АдамараХ.


Мы можем проверить, что H унитарна, проверив, что сопряженная транспонирование равна его обратной или, другими словами, что H, умноженное на его сопряженную транспонирование, равно матрице Identity:


Еще одним важным квантовым элементом являетсяКонтролируемые НЕ воротатакже известный как CNOT. CNOT действует на два кубита, контрольный кубит и целевой кубит. Мы можем думать о CNOT как"Если заявление"- если контрольный кубит равен 1, то CNOT применяет NOT (обратный логический элемент) к целевому кубиту (отсюда и название Controlled NOT).

Вот матрица, представляющая CNOT. Эта матрица обрабатывает контрольный кубит как крайнее правое значение внутри кета, а целевой кубит - как крайнее левое значение.


Давайте посмотрим, как это повлияет на ∣00⟩ ,

В этом примере мы видим, что CNOT не изменяет значение ∣00⟩ , И это ожидаемое поведение, поскольку CNOT инвертирует цель, только если управление равно 1.

Давайте посмотрим, как это повлияет на ∣01⟩ ,


Здесь мы видим, что управление равно 1, поэтому CNOT инвертирует цель. Следовательно, результат ∣11⟩ ,

Попробуйте решить два других случая, ∣10⟩ а также ∣11⟩ , Вы должны обнаружить, что CNOT имеет следующее поведение:

  • ∣00⟩ -> ∣00⟩
  • ∣01⟩ -> ∣11⟩
  • ∣10⟩ -> ∣10⟩
  • ∣11⟩ -> ∣01⟩

И обратите внимание, что это именно то, как применять НЕ к целевому биту, когда бит управления равен 1

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

Квантовая схема

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


Давайте пройдемся по каждой части этой диаграммы. Во-первых, у нас есть два кубита. Каждая строка соответствует кубиту. Верхняя строка соответствует кубиту с именем x0, а нижняя соответствует кубиту с именем x1. Мы считаем x0 0-м кубитом, потому что начинаем считать с 0 (так же, как в остальной части программирования). Мы пишем x0 : ∣0⟩ а также x1 : ∣0⟩ иметь в виду, что x0 а также x1 начать в государстве ∣0⟩ ,

H является воротами Адамара и применяется к кубиту х0. ●-⊕ это ворота CNOT, ● контрольный кубит, а ⊕ целевой кубит - это просто, чтобы помочь нам увидеть, какие два кубита затронуты. Другими словами, мы применяем CNOT, где элемент управления - кубит x0, а цель - x1. Обратите внимание, порядок, в котором мы применяем эти ворота, важен. На этой диаграмме мы применили H сначала и CNOT второй.

Перевод квантовых схем

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

Давайте начнем с преобразования нашей диаграммы в строку символов. Вместо того, чтобы записывать наши кубиты в виде строк, мы будем использовать нотацию Бракет. 0-й кубит будет самым правым кубитом в ∣00⟩ так же, как при записи двоичных чисел². Это означает, что кубит x1 является самым левым кубитом в ∣00⟩ , (Обратите внимание, что люди, работающие в области квантовой физики, стремятся изменить этот порядок³. Всегда проверяйте порядок кубитов, посколькуневероятнообщий источник ошибок.)

Нам также нужно перевести ворота. Поскольку мы подаем заявку H к кубиту х0 и ничего не применяя к кубиту х1 (что эквивалентно применению шлюза идентификации, I ), мы напишем это как (I⊗H) , Наконец, мы переводим CNOT, указывая, какой кубит является управляющим, а какой - целевым. Результат CNOT[control=0, target=1] (I⊗H) ∣00⟩ (обратите внимание, эта строка читается изсправа налево). Большой! Это будет полезно при написании кода, который будет запускаться на квантовом компьютере.

Выписывая основную математику

Наличие строкового представления квантовой принципиальной схемы позволяет легко перевести нашу программу в основную математику. Есть три штуки, CNOT[control=0, target=1] , (I⊗H) , а также ∣00⟩ Каждый фрагмент может быть переведен в матрицу, как показано в первом ряду следующего изображения:


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

Кроме того, помните наши смешанные кубиты состояния? Обратите внимание, что мы больше не можем писать кубит x0 и кубит x1 в чистых состояниях, потому что нет никакого способа разбить вектор на тензорное произведение. Так что наши кубиты находятся в смешанном состоянии!

Измерение вектора состояния

Что если мы измерим наши кубиты сейчас? Что бы мы получили? Мы можем это выяснить, разложив вектор состояния на каждое измеримое состояние. Мы будем измерять наши кубиты встандартная основа, также известный как ∣0⟩ а также ∣1⟩ (есть другие базы, которые мы могли бы измерить, но пока не беспокойтесь об этом). Следовательно, измеримыми состояниями нашей системы двух кубитов являются ∣00⟩ , ∣01⟩ , ∣10⟩ , а также ∣11⟩ ,


Мы можем определить вероятности измеренных значений таким же образом, как мы использовали | 𝛼 | ² для определения вероятности ∣0⟩ для одного кубита. поскольку ∣01⟩ а также ∣10⟩ с амплитудой вероятности 0, мы знаем, что мы никогда не будем измерять это состояние. И мы будем измерять оба ∣00⟩ а также ∣11⟩ с вероятностью (1 / sqrt (2)) ² = 1/2.

Теперь предположим, что мы должны были разделить эти два кубита на большое расстояние, а затем мы измерили один из них. В тот момент, когда мы его измерили, мы узнали бы значение и другого кубита! Это потому, что мы знаем, что кубиты могут быть только ∣00⟩ или ∣11⟩ ,

Теперь, когда мы понимаем, что происходит под капотом с помощью кубитов, квантовых элементов и квантовых схем, давайте посмотрим, как работать на реальном квантовом компьютере. Я буду использовать квантовый компьютер Ригетти, так как они в настоящее время выдаютбесплатный кредит для бета-пользователей, В качестве альтернативы мы также можем использоватьКвантовый компьютер IBM,

Вот основной обзор процесса квантового программирования Rigetti:

  1. Напишите программу на Python, которая определяет вашу квантовую схему и любой дополнительный необходимый код
  2. Протестируйте эту программу на Python, используя квантовый симулятор
  3. Резервное время на квантовом компьютере Ригетти
  4. Отправьте вашу программу на серверы Rigetti
  5. Запустите вашу программу на сервере Rigetti (они отправят вашу квантовую программу на свой квантовый компьютер для вас)

Вот версия Python нашей квантовой принципиальной схемы сверху.

Результаты будут выглядеть примерно так:

Первая строка соответствует симулятору, и результаты кажутся разумными - мы получаем [0, 0] примерно половину времени и [1, 1] оставшееся время. Однако с реальным квантовым компьютером, кроме ожидаемых [0, 0] и [1, 1], мы также получаем [0, 1] и [1, 0]. Согласно математике, мы должны получать только [0, 0] и [1, 1], так что же происходит?

Проблема заключается в том, что реальные квантовые компьютеры сегодня (июль 2019 г.) все еще весьма подвержены ошибкам. Например, мы можем увидеть частоту ошибок 2–3% при попытке инициализировать кубиты в 0. И у нас может быть еще 1–2 % ошибок на операцию с одним кубитом и около 3–4% для операций с двумя кубами. У нас даже есть ошибки при измерении кубита! На практике эти ошибки накапливаются и приводят к неправильным значениям.

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

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

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

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

Вопросы-Ответы

Q) Я погуглил матричную форму CNOT и она отличается от твоей, почему?

А) Если вы смотрите на [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0]], его потому что они изменили цель и упорядочили порядок кубитов Если вы видите что-то кроме того, что я написал выше или в этой статье, то это просто неправильно.

Q) Итак, у нас есть биты и триты для обычных компьютеров, существует ли что-то подобное для кубитов?

А) Да, критриты. Кубиты являются частью двухуровневой квантовой системы. Кутриты являются частями трехуровневой квантовой системы. Есть также quitits, которые обобщают количество уровней.

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

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

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

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

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

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

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

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

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

Расчет на двух алюминиевых кубитах

Р аботы по созданию квантового компьютера в рамках проекта Фонда перспективных исследований ведутся с 2016 года под руководством профессора Валерия Рязанова. В коллаборацию входят Всероссийский научно-исследовательский институт автоматики, Московский физико-технический институт, НИТУ МИСиС, МГТУ имени Н. Е. Баумана, Новосибирский государственный технический университет, Российский квантовый центр. В качестве основы для кубитов в заработавшем в МИСИС прототипе были взяты сверхпроводящие материалы.

Обычный и квантовый: сходства и различия

В обычном компьютере используется двоичная система исчисления: ноль и единица. Это связано в первую очередь со строением ЭВМ. Внутри процессора находятся миллионы транзисторов, которые по своим техническим особенностям имеют два состояния: включен (ток свободно протекает) или выключен (ток не течет).

Компьютеры не могут использовать обычную человеческую систему исчисления, так как один транзистор не может иметь десять различных состояний. С двоичной системой микроэлектроника справляется успешно. Каждая переключаемая ячейка (транзистор) именуется битом (англ. binary digit; также игра слов: англ. bit — немного). Современные компьютеры имеют стандартный кластер в один байт, что равняется восьми битам, он имеет всего 256 (2 8 ) возможных состояний.

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

КВАНТ КОМП РЯЗАНОВ.jpg

Работы по созданию квантового компьютера ведутся с 2016 года под руководством профессора Валерия Рязанова

Алюминиевые кубиты

Для квантовых применений удобно считать энергию LC-контура в числе фотонов. При комнатной температуре из-за процессов, связанных с броуновским движением в осцилляторах, подобных созданным в НИТУ МИСиС, будет в среднем около 1000 тепловых фотонов энергии, даже если с ними вообще ничего не делать.

Если охладить структуру до 0,01 °C выше абсолютного нуля с помощью рефрижератора растворения, то равновесное тепловое число фотонов в таких осцилляторах становится в среднем чуть больше нуля. 0 и 1 в сверхпроводниковых кубитах — это 0 и 1 фотон в осцилляторе, соответственно. Благодаря тому что осциллятор сильно нелинеен, можно осуществлять логические операции над состоянием кубита, подавая микроволновые импульсы разной длительности, амплитуды и фазы на частоте кубита.

КВАНТ КОМП БЕСЕДИН.jpg

Что может и чего не может кубит

В ходе эксперимента, который проводится в МИСиС, двухкубитный квантовый компьютер решал алгоритм Гровера — алгоритм перебора для функции. Квантовый компьютер благодаря принципу суперпозиции в идеальном случае может найти правильное значение x в решении этой задачи за одно обращение к функции f(x) с вероятностью 100%.

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

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

Читайте также: