Como implementar a "Raiz quadrada do portão Swap" no IBM Q (compositor)?

9

Gostaria de simular um algoritmo quântico em que uma das etapas é "Raiz quadrada do portão de troca" entre 2 qubits.

Como posso implementar esta etapa usando o compositor IBM ?

JanVdA
fonte
Talvez seja útil usar o simples gate de troca como um "tijolo" para construir a raiz quadrada do gate de troca. Você pode simular no IBM Q desta maneira: cx q [1], q [0]; hq [0]; hq [1]; cx q [1], q [0]; hq [0]; hq [1]; cx q [1], q [0];
Deitada Dancer
11
@JanVdA A raiz quadrada não é única. De fato, deve haver 2 ^ 4 = 16 raízes possíveis. Qual deles voce quer dizer?
Norbert Schuch
Alguém faria por mim. Não há preferência por uma em particular.
JanVdA

Respostas:

9

Aqui está uma construção SQRT (SWAP) que requer apenas CNOTs em uma direção, Hadamards, portões S ( ), portões S dagger ( ), Portões T ( ) e portões T dagger ( ):Z1 12Z-1 12Z1 14Z-1 14

insira a descrição da imagem aqui

Você deve poder codificá-lo diretamente no compositor.

Craig Gidney
fonte
Como alguém obtém isso dos primeiros princípios?
user1271772
@ user1271772 Quais são os "primeiros princípios"?
Norbert Schuch
Não sei como implementar e usando o compositor IBM. Z1 1/2Z-1 1/2
JanVdA
@ user1271772 Comecei com o circuito CNOT-NOTC-CNOT SWAP, substitui o CNOT do meio por um C-sqrt (não) para transformar tudo em sqrt (SWAP), decomponha o C-srt (não) em portas S + CNOT , movi alguns portões até conseguir cancelar um dos CNOTs e, em seguida, usei o Hadamards para virar a direção de qualquer CNOT apontando na direção errada.
Craig Gidney
@JanVdA é , e é (observe os portões azuis no compositor). Z1 1/2SZ-1 1/2S
Craig Gidney
2

O que você deseja fazer é uma rotação no subespaço estendido por e | 10 que gira por |01|10 . Para esse fim, você pode primeiro fazer um CNOT, que mapeia esse subespaço para{| 01,| 11}. Agora você precisa fazer oX{|01,|11}Rotação X no primeiro qubit, condicionada ao segundo qubit, sendo um. A implementação deportascontroladas emUusando CNOTs é uma construção padrão, que pode ser encontrada em vários locais, consulte, por exemplo,https://arxiv.org/abs/quant-ph/9503016. Dependendo de como você fazer este passo, você pode ter para corrigir a fase de "global" da 1ª qubit (dado o segundo é|1). Finalmente, você precisa desfazer o CNOT.Xvocê|1 1

Norbert Schuch
fonte
Não está claro para mim 1) como você faz um no compositor. 2) como desfazer um CNOT no compositor 3) você menciona portas controladas em U, mas não está claro onde elas devem ser usadas no algoritmo. Eu acho que uma descrição passo a passo do algoritmo seria útil para implementar isso no compositor IBM. X
JanVdA
@JanVdA Acho que você terá que se esforçar para se familiarizar com os circuitos quânticos e suas manipulações. Caso contrário, o que você fará quando conhecer o circuito do sqrt-SWAP?
Norbert Schuch
Para sua informação: usei a descrição sqrt-SWAP acima para testar a solução sugerida para quantumcomputing.stackexchange.com/questions/2209/… no compositor IBM.
JanVdA
@JanVdA Qual? O aceito? Aquele só fala sobre um SWAP controlado. (Para isso: journals.aps.org/pra/abstract/10.1103/PhysRevA.53.2855 )
Norbert Schuch 6/18
Desculpe, eu estou me referindo à solução aceita para a pergunta: mathoverflow.net/questions/301733/…
JanVdA
-1

Cada porta de 2 qubit possui uma "decomposição paulinomial", o que significa que pode ser escrita como um polinômio das matrizes de Pauli.

Para o portão que você deseja:

TROCA=[1 10 00 00 00 01 12(1 1+Eu)1 12(1 1-Eu)0 00 01 12(1 1-Eu)1 12(1 1+Eu)0 00 00 00 01 1]=1 1-Eu4(X1 1X2+Y1 1Y2+Z1 1Z2)+3+Eu2Eu,

onde é um X portão aplicada ao i º qbit.XEuXEuº

user1271772
fonte
OK, obrigado pela resposta - preciso estudar um pouco para descobrir como traduzir isso para o IBM Composer.
JanVdA
@JanVdA O que há de errado? Você não pode arrastar e soltar os portões X, Y e Z no circuito? Você pode fazer uma pergunta separada sobre como multiplicar um portão por uma constante.
user1271772
X1 1X2X1 1X2+Y1 1Y2Eu
X1 1X2XX
ZZ