Физики разработали код коррекции ошибок в квантовых вычислениях, который работает при вдвое большем уровне шума, чем его предшественник. Авторы показали, как ведет себя новый код при разных типах ошибок и как с его помощью можно уменьшить число физических кубитов в системе, а эксперименты подтвердили все его преимущества. Работа опубликована в журнале Nature communications.
Второй важной задачей на пути к воплощению квантовых вычислений помимо создания долгожданного устройства, можно считать разработку кода коррекции ошибок. Базовые элементы квантовых компьютеров (кубиты, вентили) не идеальны: кубиты могут находиться в неправильном состоянии, а вентили — вносить ошибку в выходной кубит. Поэтому ученым приходится придумывать способы как с этим бороться. Известный из классической информатики вариант — коррекция возникающих ошибок. Тут есть несколько разных способов — можно несколько раз измерять полученную информацию и потом обрабатывать полученный набор, либо использовать для кодирования 1 кубита (логического) несколько физических кубитов. Для современных квантовых устройств время жизни кубитов не позволяет использовать первый метод, поэтому для реализации вычислений без ошибок требуется большее число кубитов, чем задействовано в самих вычислениях. Использование нескольких (часто трех) кубитов вместо одного позволяет получить правильный ответ, даже если один из кубитов оказался «битым», ведь остальные будут верными. Вероятность того, что два кубита одновременно ошибочны, очень мала.
Среди множества кодов коррекции ошибок существуют так называемые поверхностные коды. Для их представления используется двумерная решетка, на ребрах которой расположены кубиты. Часть из них участвует в вычислениях, а другая часть помогает выявлять и исправлять ошибки. Измерение дополнительных кубитов можно проводить в разных базисах: чаще всего, набор однокубитных измерений ограничен матрицами Паули. В случае поверхностного кода используют операторы XXXX и ZZZZ (называются стабилизаторами), которые действуют сразу на 4 кубита, а на решетке располагаются в виде креста. Поверхностные коды работают при высоком уровне шума, то есть могут получить верный логический кубит несмотря на большой процент ошибок в физических. Тем не менее, платят за это своей размерностью — требуется много дополнительных кубитов, для реализации такого кода.
Домашнее задание студента из университета Сиднея по улучшению поверхностных кодов для коррекции ошибок вылилось в полномасштабное исследование. Вместе с другими учеными под руководством Бенджамина Брауна (Benjamin J. Brown) ему удалось разработать код, который оказался в два раза эффективнее существующего. Авторы протестировали его на небольших системах из кубитов и показали, что новый код требует меньше дополнительных физических кубитов для коррекции ошибок и в некоторых случаях превосходит теоретическую оценку.
Интересно, что к достижению весомых результатов привело небольшое и, казалось бы, незначительное изменение в поверхностном коде: авторы предложили использовать операторы XZZX вместо привычных стабилизаторов. Такой подход оказался более информативным в плане обнаружения ошибок системы. Авторы сравнивали его не только с поверхностным кодом, но и с теоретическим пределом (хэшированием). Они рассмотрели общую модель шума, который может быть в системе: в нем с определенной вероятностью p возникает ошибка, источником которой может быть один из трех операторов X, Y или Z. Каждый оператор вносит свой вклад r в общую ошибку, в крайних случаях преобладать может шум только от одного оператора (смещенный шум). Как раз в таких случаях для операторов X и Z XZZX-код имеет в пять раз более высокий порог ошибки.
После обнаружения описанной выше особенности кода, авторы начали проверять как от смещения шума (преобладания одной из матриц Паули в шуме) зависит его помехоустойчивость. С увеличением смещения порог шума растет, все дальше и дальше удаляясь от порога для поверхностного кода. Но это не все. Важно, что начиная с какого-то смещения, результат для XZZX кода превосходит теоретическую оценку.
Ученые были заинтересованы в том, чтобы показать, как на практике может быть полезен большой возможный порог шума. Они кодировали логические кубиты с двух разных кодов коррекции ошибок — XZZX и поверхностного. После этого интерпретировали полученный результат с помощью метода максимального правдоподобия: если на выходе получается набор физических кубитов, который не соответствует ни одному логическому (например, логическая 1 — это 111, 0 — это 000, а на выходе получилось 110), то ему присваивается ближнее значения логического кубита (то есть 110 — это логическая 1, а не логический 0). Полученные результаты помогали авторам выявлять характер масштабируемости решеток, увеличения его размерности в зависимости от смещения шума и его порога. Как и ожидалось, благодаря устойчивости к шуму, XZZX коды оказываются перспективны для применения в больших системах, где они будут требовать значительно меньше дополнительных кубитов.
Авторы подчеркивают, что наиболее важный результат их работы состоит не в преимуществе над поверхностными кодами, а в том, что они смогли показать, что модификации в существующих кодах коррекции ошибок могут дать результат лучше, чем предсказывает теория. А, значит, можно создавать и придумывать коды ошибок, которые существенно упростят работу квантовых устройств.
Поверхностные коды активно использует Google в своих сверхпроводящих устройствах на несколько десятков кубитов, которые не менее активно пытается масштабировать. Поэтому интересно будет увидеть, какие коды коррекции придут на смену существующим в больших квантовых вычислителях.
Оксана Борзенкова