Ижевск, 15—16 июня 2018
Обновлено 9 января 2021 (MathML)
Алгоритм Франка — это легкий по затратам памяти алгоритм, который моделирует один запуск квантового компьютера. Выдается одно базисное состояние, случайно выбранное из распределения, соответствующего заданной квантовой цепи и начальному состоянию.
Пусть нам дано унитарных преобразований , , ..., и начальное состояние кубитов в виде вектора размерности . Тогда определим состояние кубитов после применения рекуррентно:
Первый способ промоделировать поведение квантового компьютера заключается в том, чтобы использовать генератор псевдослучайных чисел по распределению (покомпонентное произведение вектора с его комплексным сопряжением). Недостаток способа в том, что вектор имеет компонентов: для получится чисел, которые вряд ли влезут в оперативную память вашего компьютера.
К счастью, существует теорема . Ее доказательство заключается в том, чтобы вычислять одну компоненту вектора рекурсивно и без сохранения промежуточных результатов. В реальности большинство из слагаемых этой суммы равны нулю. Например, для Тоффоли, и других «классических» вентилей количество ненулевых слагаемых равно одному, а для вентиля Адамара — двум. Таким образом, каждый компонент вычисляется за .
Такой подход экономит память, но требует перебирать много конечных состояний: в квантовой механике трудно предсказать, какие из них будут иметь вероятности около нуля.
Майкл Франк в 2009 году воспользовался идеей Дэвида Бома: квантовая система находится в одном определенном базисном состоянии в каждый момент времени. Если очередное преобразование относится к классическим вентилям, то просто выполняется детерминированный переход. Если же это, к примеру, вентиль Адамара, то делается случайный выбор из двух возможных состояний и . Первое состояние будет выбрано с такой вероятностью:
Алгоритм выполняет всю квантовую цепь за , так как верно следующее равенство:
Алгоритм выдает конечные состояния в соответствии с распределением . Это доказывается по индукции: предположим, что на шаге любое состояние выбирается с корректной вероятностью . Тогда:
Напоследок приведем иллюстрацию из оригинальной статьи, которая показывает преимущества алгоритма для целей отладки.