Почему бы не реализовать квантовые схемы на классических компьютерах?

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

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

Вероятно, лучший вопрос для Computer Science SE
Для этого есть пакет Perl. Попробуйте и посмотрите, в чем недостаток.
Предположим, у вас есть 200 локтей. Не так много, верно? Это соответствует вектору из 10 ^ 60 значений амплитуды, каждое из которых является комплексным числом. Каждое унитарное преобразование должно вращать этот вектор.
@BlueRaja-DannyPflughoeft Это как бы выходит за рамки, но я склоняюсь к тому, чтобы это было здесь по теме.
И квантовые, и классические компьютеры являются полными по Тьюрингу: один не может вычислить ничего такого, чего не может другой. Вопрос только в том, сколько времени это займет.
@ Питер, это была бы вычислимость, а не сложность. Дело не в том, какие проблемы могут быть решены, а именно в различиях (масштабировании) времени, которое требуется для решения.
Это не ответ на ваш вопрос, но если вам интересно, когда я был в классе квантовых вычислений, я написал программу для запуска всех квантовых схем, которые мы рисовали на плате: github.com/Erhannis/QCircuit

Ответы (4)

Умножение матриц полиномиально по количеству матричных элементов. В квантовых вычислениях количество матричных элементов — это, по сути, количество элементов в векторе квантового состояния, которое экспоненциально зависит от размера входных данных (количества кубитов).

Я частично понимаю ваш ответ, но что-то все еще не ясно. Если взять что-то вроде схемы для квантового преобразования Фурье ( пример ), то мы имеем полиномиальное число матричных умножений 2x2, не так ли?
@theQman i) Запутывающие вентили, действующие на одну пару кубитов, могут быть минимально представлены 4 × 4 матрицы, не 2 × 2 . ii) Как только вы начинаете работать с несколькими кубитами, размер представления обязательно увеличивается. Рассмотрим, например, запутанные ворота U я Дж воздействующий на кубиты я а также Дж , и возьмите 3 кубита. Сначала воздействуйте на кубиты 1 и 2, затем на 2 и 3. Это приводит к умножению матриц ( я 1 U 23 ) ( U 12 я 3 ) , куда я Дж это 2 × 2 личность на кубите Дж . Запишите это, вы увидите, что количество элементов матрицы не масштабируется полиномиально!
@theQman Нет, нет. Действие каждых ворот будет описано 2 н × 2 н матрица для н кубитов, независимо от того, является ли он вентилем с одним кубитом, обменом с двумя кубитами или управляемым фазовым вентилем.

Ложная точка зрения состоит в том, что композиция однокубитных и двухкубитных вентилей будет представлена ​​какой-то композицией матриц 2×2 и 4×4. В самом деле, если однокубитный вентиль (для двухкубитного аналогично) действует на я -й кубит из н , матрица должна быть приведена к

( я г 2 ) ( я 1 ) А ( я г 2 ) ( н я ) ,
куда А это оригинал 2 × 2 матрица, чтобы описать ее действие на н -состояние кубита. Это матрица размеров 2 н × 2 н независимо от типа ворот.

Хотя тензорное произведение с тождествами выглядит тривиально, давайте просто вспомним, что оно означает для приложения на векторе состояния, использующего самый простой алгоритм:

for each index u, 0 ≤ u < 2^n:
  define u_i = bit value of i-th bit of u
  define v = u XOR 2^i
  if u_i = 0:
    new (psi[u], psi[v]) = a*psi[u] + b*psi[v]
  else:
    new (psi[u], psi[v]) = d*psi[u] + c*psi[v]

Да, в основе этого псевдоалгоритма как раз двумерное умножение. Но это сделано 2 н раз.

Даже до того , как кто-то сможет выполнить фактическое классическое моделирование, у вас может закончиться доступная память даже для сохранения состояния в любой конкретный момент. Брать н знак равно 100 кубиты, это 2 100 сложные амплитуды двойной точности (каждая по 128 бит). Я получаю оценку, превышающую емкость хранения данных всех компьютеров на Земле примерно на 14 порядков, так что мы не увидим этого в ближайшее время. Между тем, квантовый компьютер со 100 битами почти начал бы представлять интерес для приложений, теоретически нередко можно увидеть гораздо больше, чем предполагалось.

Я не до конца понимаю, как работают квантовые вычисления (можете себе представить, что мой студенческий курс «квантовая механика для инженеров» оставил меня несколько неподготовленным к этому предмету), но я все еще люблю читать об этом из-за таких строк, как «емкость хранилища данных всех компьютеров на Земле примерно на 14 порядков», что просто заставляет меня хихикать. Это увлекательно!

Другими словами, гильбертово пространство (H) для вашей квантовой схемы растет экспоненциально ( тусклый H знак равно 2 н ), где n — количество кубитов. Существует класс квантовых схем, которые могут быть реализованы за полиномиальное время, но они требуют, чтобы вентили в квантовой схеме были ограничены группой Паули и/или нормализатором группы Паули (теорема Готтсмана-Книла). Это также ограничивает модели ошибок, используемые в квантовой схеме. Основная причина в том, что существует изоморфизм, который можно определить между группой Паули и векторным пространством над конечным полем с элементами. Умножение элементов группы Паули становится симплектическим произведением элементов векторного пространства.

Потому что матрицы больше, чем вы думаете.

Рассмотрим простую схему на 8 кубитах; возможно преобразование Фурье. Он использует около 40 вентилей, и каждый вентиль умножает вектор состояния 8-кубитной системы на некоторую матрицу. Смоделировать эту систему классически. вы можете ожидать, что нам придется инвестировать что-то вроде 40 8 знак равно 320 условные единицы вычислительной работы (AUCW).

Но вектор состояния системы имеет амплитуду для каждого возможного классического состояния системы. Восемь бит могут быть назначены 2 8 знак равно 256 возможные значения, поэтому наш вектор состояния должен иметь 256 элементов, а не восемь или шестнадцать. Соответственно матрица, преобразующая эту систему, должна иметь размер 256 × 256 , хотя просто 256 на самом деле это гораздо лучшая грубая оценка «размера работы», поскольку матрица одного вентиля будет разреженной. Наше предположение 40 8 знак равно 320 AUCW был далеко! Гораздо лучше предположить, 40 2 8 знак равно 40 256 знак равно 10240 . Так 10 килоAUCW.

Эта проблема усугубляется по мере увеличения числа кубитов. С 50 кубитами вектор состояния имеет 2 50 элементы, матрицы 2 50 × 2 50 , преобразование Фурье использует ~1250 вентилей, и нам нужно потратить миллион миллионов миллионов AUCW, чтобы выполнить классическое моделирование. В то время как квантовый компьютер делает всего 1250 AUQW.