Можем ли мы использовать квантовый параллелизм для вычисления множества функций одновременно?

9

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

Рассмотрим обратный случай: можем ли мы использовать квантовый параллелизм для вычисления множества функций (скажем, ) одновременно для одного значения ?f(x),g(x),x0

donnydm
источник
Чтобы оценить и вам нужно сделать копию для каждой операции, что в общем случае невозможно по теореме об отсутствии клонирования. Если, с другой стороны, вы просто готовите состояние, в два раза превышающее , вы просто восстанавливаете классический параллелизм. f(x0)g(x0)x0x0
@HenriMenke Как насчет несовершенного клонирования?
Доннидм
@HenriMenke: ваше представление о том, что такое «клонирование», кажется очень широким, вплоть до создания некоторых препятствий для вашей способности продуктивно подходить к решению проблем.
Ниль де Бодрап,

Ответы:

5

Точный ответ зависит от того, какую именно суперпозицию вы хотите. Ответы пирамид и Нила дают вам что-то вроде

At=1n|ft(x)|Ft

Здесь я следовал за Нильем, помечая различные функции , и т. Д. , обозначает общее количество функций, которые вы хотите заменить. Также я использовал для обозначения некоторого описания функции как хранимой программы. Только то , что потребности номер , чтобы быть там для государства нормализоваться.f1f2nFtftA

Обратите внимание, что это не просто суперпозиция . Это запутано с сохраненной программой. Если бы вы отслеживали хранимую программу, у вас была бы смесь . Это означает, что хранимая программа может представлять собой «мусор», который предотвращает эффекты помех, на которые вы можете рассчитывать. Или это не так. Это зависит от того, как эта суперпозиция будет использоваться в ваших вычислениях.ft(x)ft(x)

Если вы хотите избавиться от мусора, все становится сложнее. Например, предположим, что вы хотите, чтобы унитарный имел эффектU

U:|x|0NAt=1n|ft(x)

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

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

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

Функции f,g,то, что вы хотите оценить в разных вычислительных ветвях, должно быть, чтобы быть вычисляемым вообще, должно быть определенным каким-либо образом (например, последовательность классических логических элементов). И множество {f1,f2,} из функций, которые вы хотите вычислить, должен быть сам вычислимым: для данного tВы должны быть в состоянии вычислить спецификацию того, как ftдолжен быть рассчитан на его аргумент. По сути: у вас должно быть средство описания функцийftкак хранимые программы. (Это все необходимо, даже до того, как мы рассмотрим квантовые вычисления, для вопроса "вычисления одной / всех функцийf1,f2, на входе x0быть значимым.)

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

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

Ниль де Бодрап
источник
3

Да (в зависимости от того, что означает «рассчитать много функций одновременно»)

Описание схемы, которая дает функцию f в виде Uf и схема, дающая g в виде UgЕсть несколько способов сделать это:

  1. Начиная с регистров кубита в |00x, Подготовь государство α|01+β|10на первых двух регистрах. Это можно сделать, применив унитарный 1 к первому регистру, чтобы перевести этот регистр в состояниеα|0+β|1 перед применением CNOT, затем IX, Затем применитеCUf из первого регистра в третий и CUg со второго на третий.

    1.1. Это дает то, что третий регистр теперь в состоянии(αUf+βUg)|xпри начальных операциях (до IX) на первых двух регистрах меняются местами. Однако из-за общих трудностей реализации произвольных управляемо-унитарных операций (а также излишнего использования дополнительных кубитов), вероятно, было бы проще реализовать это непосредственно, набрав унитарный номер.αUf+βUg, Обратите внимание, что это не реализуетf ни g, но новая, другая функция f+g

    1.2. Если не изменить начальные операции с первыми двумя регистрами, третий переводится в запутанное состояниеf а также g, который обсуждается в других ответах.

  2. Начиная с государства |xx и применяя Uf в первый регистр и Ugко второму. Это наиболее близко к классическому параллелизму, где обе функции применяются независимо к копиям одного и того же состояния. Помимо необходимости удвоения числа кубитов, проблема здесь заключается в том, что из-за отсутствия клонирования для копирования|xоно либо должно быть известно, либо быть классическим состоянием (то есть не включать суперпозиции в вычислительной основе). Приблизительное клонирование также может быть использовано.

  3. Начни с государства |0x, а также классический регистр. Примените унитарный 1, чтобы поместить первый регистр в суперпозициюα|0+β|1, Теперь измерьте этот регистр (поместив результат в классический регистр) и примените классическую операцию IF RESULT = 0 U_f ELSE U_g. Хотя это может показаться менее мощным, чем любая из вышеперечисленных операций, в некотором смысле это эквивалентно квантовому каналуE(ρ)=|α|2UfρUf+|β|2UgρUg, Такие методы могут быть использованы для создания случайных унитарных элементов, которые применяются, например, в бозонной выборке и рандомизированном бенчмаркинге


1 дано

(αββα)

Mithrandir24601
источник
This is interesting, partially because no stored program needed. Is the CNOT in number 1 necessary?
donnydm
2

Yes, one can. The trick is to define (and implement) a new function fall(y,x) that evaluates to f(x) if y=0, to g(x) if y=1, etc. Then one prepares the qubits representing y in the desired superposition and set x to x0.

pyramids
источник