-
Говоря о всём том, что мы уже рассмотрели,
-
мы не затрагивали непосредственно
-
проблему недостаточной защищенности от
ошибок, проблему возникновения ошибок,
-
и как проводить коррекцию ошибок,
для получения
-
отказоустойчивости квантовых вычислений,
-
квантовых компьютеров и квантовых
алгоритмов, которые
-
не подвержены влиянию ошибок, которые
не подвержены влиянию
-
вычислительных ошибок в вентилях и других
ошибок вычислений и того подобного.
-
Эта задача
-
разработки отказоустойчивых квантовых
вычислений
-
имеет
-
важное значение с самого начала разработки
теории квантовых вычислений.
-
Вначале некоторые считали,
что, вероятно, эту задачу
-
невозможно решить.
-
И что это будет
-
реальным препятствием
-
для ускорения алгоритмов, таких как
алгоритм Шора или алгоритм Гровера
-
или других подходов, предложенных
к тому времени.
-
Почему считается, что, вероятно,
мы не можем
-
проводить коррекцию ошибок
в квантовых вычислениях?
-
Ну,
-
есть несколько причин так считать.
-
Например, есть теорема о запрете
клонирования.
-
Как известно, в классических вычислениях
-
основной метод коррекции ошибок заключается
в том, чтобы обеспечить возможность
-
иметь копии
-
образцов данных, так что если какой-то
из образцов повреждается, то можно
-
использовать другие, чтобы восстановить
поврежденный образец.
-
При этом, в квантовых вычислениях,
кажется, что мы не можем
-
сделать то же напрямую, потому что мы
не можем клонировать информацию.
-
В этом и заключается трудность.
-
Другая трудность в том, что, кажется,
чтобы проверить
-
подлинность информации, нам нужно
-
измерить информацию, и затем
получить не только
-
результат, но и коллапс вектора состояния,
-
при этом мы можем потерять
часть информации.
-
Также исследователи упоминают другой
-
затрудняющий фактор.
-
По сравнению с классическими вычислениями,
в квантовых вычислениях
-
нет дискретных операций.
-
У нас не просто ноли и единицы,
-
а непрерывные множества значений,
-
поэтому и операции над ними непрерывные.
-
Эти операции зависят от параметров, которые
могут быть вещественными числами.
-
Поэтому небольшие поправки, небольшие
-
неточности в осуществлении
данных операций
-
могут суммироваться, и в итоге
-
мы получим результат, который будет
полностью отличаться от ожидаемого.
-
Это кажется довольно серьёзной задачей.
-
К счастью для нас,
-
что в каком-то смысле даже удивительно,
-
мы можем определить понятие квантовой
коррекции ошибок.
-
Также мы можем
-
определить суть квантовой
-
отказоустойчивости и квантовых вычислений
с помощью прекрасной теории
-
квантовых кодов коррекции ошибок.
-
Я не буду давать вам подробную
информацию о квантовых
-
коррекциях ошибок, потому что
-
для этого потребуется как минимум
-
семь лекций или больше.
-
Эта тема заслуживает отдельного курса.
-
Я хочу дать вам
-
понимание в общих чертах, что можно
сделать, чтобы произвести коррекцию
-
этих серверов.
-
Для начала, я познакомлю вас
-
с очень простой идеей из области
классической коррекции ошибок.
-
Я покажу, как реализовать это
-
в квантовой области.
-
Как написать такой код
-
при использовании квантовых вычислений
и затем как
-
сочетать различные методы, для получения
более эффективных кодов.
-
Как я рассказал вам ранее, наиболее
распространённый,
-
или самый простой,
-
метод коррекции ошибок в классических
вычислениях,
-
использование дублирования, многочисленных
копий одной и той же информации.
-
Представьте, например, что вы хотите
передать бит по каналу с шумом
-
или
-
записать бит
-
в память, где могут быть шумы, и тогда,
-
эта память может повредиться или
биты могут инвертироваться.
-
Поэтому нужно быть уверенным,
что по прошествии времени,
-
когда нужно будет восстановить
эту информацию
-
или информационный канал,
получатель информации
-
получит правильный бит, то есть тот бит,
который вы отправляли.
-
В таком случае, к примеру, можно
-
записывать один и тот же бит три раза, или
передавать один и тот же бит три раза.
-
Тогда
-
преимущество
-
от использования этого
кода в том,
-
что для того, чтобы информация была
повреждена,
-
нужно чтобы изменились два
из переданных битов.
-
Потому что, если я передам бит три раза,
-
и только один раз бит изменится
при передаче,
-
то я смогу использовать два оставшихся,
-
чтобы провести коррекцию возникшей ошибки.
-
Это при условии, что, в основном,
возникает только одна ошибка,
-
и тогда удастся провести коррекцию
-
полученной информации, чтобы перезаписать
исправную информацию,
-
используя верное большинство полученных
результатов.
-
Например, если я отправляю
-
эти три бита
-
от Алисы к Бобу, и Боб получает
-
одну из этих строк,
-
то он корректирует полученную информацию на
-
000 (ноль ноль ноль).
-
При этом предполагается, что обычно
инвертируется только один из битов.
-
В этом же предположении, если он получает
одну из этих трёх строк,
-
то он может исправить
-
полученную информацию на подлинную,
при условии, что обычно
-
изменён только один из битов.
-
Это самый простой способ коррекции ошибок
в классических вычислениях.
-
Конечно, существуют
-
и другие методы, намного более
-
развитые и сложные, чем этот. В классических
вычислениях существует
-
множество различных кодов коррекции ошибок.
-
Но основная идея у всех них более или менее
одна и та же.
-
У вас есть несколько дубликатов, несколько
-
копий одной и той же информации
-
и из этого множества вы можете восстановить
-
верное значение, при условии, что
-
небольшое количество битов было изменено
-
при передаче по каналу или было
подвержено шуму.
-
В квантовых вычислениях идея в том, чтобы
попытаться сделать то же самое
-
с базисными состояниями,
-
которые мы используем, чтобы определить
информацию.
-
Итак,
-
думая о информации, содержащейся в одном
кубите, мы знаем, что есть
-
|0> состояние ноль и |1> состояние один,
с помощью которых можно задать
-
суперпозицию, которая является
-
основным состоянием кубита.
-
Поэтому вместо того, чтобы
-
использовать только один кубит для хранения
-
информации, мы будем использовать
три кубита.
-
Затем мы будем использовать это состояние,
которое состоит из трёх нулей,
-
чтобы обозначить это состояние
-
|0> ноль и будем использовать три единицы,
чтобы обозначить
-
собственное состояние кубита |1> один.
-
То есть мы снова используем дубликаты, чтобы
хранить или пересылать информацию.
-
Это обычно называют представлением
логического кубита
-
как три физических кубита.
-
При этом мы располагаем объёмом информации
в логический один кубит,
-
но мы используем при этом
три физических кубита.
-
Поэтому нужно больше кубитов, чтобы хранить
или пересылать эту информацию,
-
и предохранять её.
-
Конечно, теперь мы можем использовать
линейность,
-
чтобы задать закодированное состояние
-
кубита,
-
которое должно быть суперпозицией, то есть
линейной комбинацией,
-
кодов базовых состояний.
-
Таким образом, состояние альфа ноль
плюс бета один,
-
кодируется как альфа
-
один закодированный ноль, в этом случае
-
это три ноля, три физических кубита
в состоянии ноль,
-
плюс бета
-
состояние, кодирующее логическую
единицу, которое является
-
тремя кубитами в физическом состоянии один.
-
Заметьте, что это не противоречит
Теореме о запрете клонирования,
-
потому что мы не создаем
независимые копии
-
состояния кубита, что невозможно,
-
но мы используем эту схему,
-
чтобы создать запутанность.
-
Итак, мы используем не независимые копии,
а запутанные копии.
-
Если вы рассмотрите
-
различные вероятности для вклада пси здесь,
-
вы заметите, что то, что вы получите
именно то,
-
что вам нужно, чтобы закодировать
информацию.
-
Всё, что вам нужно — это использовать
эти два вентиля.
-
Конечно, ноль перейдёт в ноль ноль ноль,
-
а один перейдёт в один один один.
-
Это один из способов кодирования
информации,
-
который мы можем использовать,
-
чтобы
-
реализовать этот
-
простой код.
-
Насколько применим этот метод?
-
Как теперь мы можем использовать этот метод
-
для коррекции ошибок и предотвращения
зашумления информации?
-
Ну, идея в том, что
-
теперь понадобится проверять
-
все ли значения
-
одинаковы в заданном состоянии.
-
Например, у нас должно быть ноль ноль ноль,
а у нас — ноль ноль один,
-
значит это некорректная информация, и нам
нужно изменить её на корректные значения.
-
В этом месте проявляется одно из
-
препятствий,
-
о котором я упоминал в начале.
-
Идея в том, что при
-
измерении закодированного состояния,
-
состояние кубита необратимо разрушается.
Потому что если мы измеряем три кубита,
-
мы получим либо ноль ноль ноль,
либо если произошла ошибка,
-
то получим ноль ноль один и тому подобное.
Мы получили
-
этот результат ценой потери информации
об альфа и бета.
-
Это не то, чего мы хотим, потому что
тогда мы потеряем информацию,
-
пытаясь проверить была ли в данных ошибка.