Podemos usar o paralelismo quântico para calcular muitas funções ao mesmo tempo?

9

É sabido que, utilizando o paralelismo quântico, podemos calcular uma função para muitos valores diferentes de x simultaneamente. No entanto, são necessárias algumas manipulações inteligentes para extrair as informações de cada valor, ou seja, com o algoritmo de Deutsch.f(x)x

Considere o caso inverso: podemos usar o paralelismo quântico para calcular muitas funções (digamos ) simultaneamente para um único valor x 0 ?f(x),g(x),x0

donnydm
fonte
Para avaliar e g ( x 0 ) que você precisa para fazer uma cópia de x 0 para cada operação que está em não é possível geral pela não-clonagem teorema. Se, por outro lado, você apenas prepara um estado que é duas vezes x 0 , você apenas restaura o paralelismo clássico. f(x0)g(x0)x0x0
@HenriMenke Que tal a clonagem imperfeita?
donnydm
@ HenriMenke: sua noção do que é "clonagem" parece ser muito ampla, a ponto de colocar alguns obstáculos à sua capacidade de abordar problemas de forma produtiva.
Niel de Beaudrap 02/04/19

Respostas:

5

A resposta exata depende do tipo exato de superposição que você deseja. As respostas das pirâmides e Niel dão a você algo como

At=1n|ft(x)|Ft

Aqui eu segui Niel rotulando as diferentes funções , f 2f1f2 , etc, com como o número total de funções que você deseja sobrepor. Também usei F t para indicar uma descrição da função f t como um programa armazenado. O Um é apenas o que precisa o número de estar lá para o estado a ser normalizada.nFtftA

Observe que isso não é simplesmente uma superposição de . Está emaranhado com o programa armazenado. Se você fosse rastrear o programa armazenado, teria apenas uma mistura de f t ( x ) . Isso significa que o programa armazenado pode constituir 'lixo', o que evita efeitos de interferência com os quais você pode contar. Ou talvez não. Depende de como essa superposição será usada no seu cálculo.ft(x)ft(x)

Se você quer se livrar do lixo, as coisas ficam mais complicadas. Por exemplo, suponha que você queira um unitário que tenha o efeitoU

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

para todas as entradas possíveis (que eu assumo que sejam cadeias de bits escritas na base computacional). Observe que eu também incluí alguns qubits em branco no lado da entrada, caso as funções tenham saídas mais longas que as entradas.x

A partir disso, podemos encontrar rapidamente uma condição que as funções devem satisfazer: como os estados de entrada formam um conjunto ortogonal, o mesmo ocorre com as saídas. Isso colocará uma restrição significativa nos tipos de funções que podem ser combinadas dessa maneira.

James Wootton
fonte
Obrigado, acho que dessa maneira pode-se acelerar como o cálculo da expansão de Taylor. De qualquer forma, o programa armazenado pode ser acessado / medido para obter algumas informações ou é apenas uma ferramenta?
donnydm
O programa armazenado será gravado apenas em um registro de qubits, portanto, certamente pode ser manipulado.
21818 James Wootton #
5

As funções que você deseja avaliar em diferentes ramificações computacionais devem, para serem computáveis, de algum modo, ser especificáveis ​​de alguma maneira (por exemplo, uma sequência de portas lógicas clássicas). E o conjunto { f 1 , f 2 , } das funções que você deseja calcular deve ser computável: para um dado t , você deve poder calcular uma especificação de como f t deve ser calculado em seu argumento. De fato: você deve ter um meio de descrever as funções f tf,g, {f1,f2,}tftftcomo programas armazenados. (Tudo isso é necessário, mesmo antes de considerarmos a computação quântica, para que a questão de "calcular uma / todas as funções em uma entrada x 0 " seja significativa).f1,f2,x0

Depois que você tiver uma maneira de especificar funções como programas armazenados, estará pronto: basicamente, um programa é outro tipo de entrada, que você pode preparar em superposição e, por exemplo, avaliar uma entrada fixa ou uma superposição de entradas, computando as funções de suas especificações em cada filial.

Ganhar uma vantagem competitiva ao fazê-lo é uma questão diferente e precisará envolver alguma estrutura específica nas funções ft que você pode aproveitar, mas simplesmente para "avaliar em superposição" é feito facilmente se você tem informação suficiente para a questão de ser sensata.

Niel de Beaudrap
fonte
3

Sim (dependendo do que significa "calcular muitas funções de uma vez")

Descrevendo o circuito que dá a função como U f eo circuito dando g de U g , existem algumas maneiras de ir sobre como fazer isso:fUfgUg

  1. |00xα|01+β|10α|0+β|1IXCUfCUg

    (αUf+βUg)|xIXαUf+βUgfgf+g

    fg

  2. |xxUfUg|x

  3. |0xα|0+β|1IF RESULT = 0 U_f ELSE U_gE(ρ)=|α|2UfρUf+|β|2UgρUg


(αββα)

Mithrandir24601
fonte
Isso é interessante, em parte porque não é necessário nenhum programa armazenado. O CNOT no número 1 é necessário?
donnydm
2

fall(y,x)f(x)y=0g(x)y=1yxx0

pirâmides
fonte