Para a implementação de um certo algoritmo quântico, preciso construir um portão Z controlado por vários qubit (neste caso, três qubit) a partir de um conjunto de portas elementares, como mostra a figura abaixo. .
Os portões que eu posso usar são
- os portões de Pauli e todos os seus poderes (ou seja, todas as rotações de Pauli até um fator de fase),
- (rotação sobre projetor),
- (Hadamard),
- (X-CNOT controlado por qubit único),
- (Z controlado por qubit único) e
- (SWAP).
Como posso construir esse Z controlado de três qubit a partir desses portões? Eu li vários artigos sobre decomposições de circuitos, mas nenhum deles poderia me dar uma resposta clara e concisa.
quantum-gate
gate-synthesis
Dyon J Don Kiwi van Vreumingen
fonte
fonte
Respostas:
(EDIT: Melhorado para 14 CNOTs.)
Isso pode ser feito com 14 CNOTs, mais 15 rotações Z de um qubit único e sem qubits auxiliares.
O circuito correspondente é
onde os± portões são rotações
Rz(±π/16)∝(1e±iπ/8)
Derivação:
Usando o procedimento descrito em https://arxiv.org/abs/quant-ph/0303063 1 , qualquer porta diagonal - qualquer uma, em particular a porta CCCZ - pode ser decomposta em termos de, por exemplo, CNOTs e portas diagonais de um qubit, onde os CNOTs podem ser otimizados por conta própria, seguindo um procedimento clássico de otimização.
A referência fornece um circuito usando 16 CNOTs para portas diagonais arbitrárias de 4 qubit (Fig. 4).
Isso pode ser melhorado se pares arbitrários de qubits puderem ser acoplados a 14 qubits. Para vizinhos mais próximos com condições de contorno periódicas (abertas), isso pode ser feito com 16 (18) CNOTs. Os circuitos correspondentes pode ser encontrada em https://epub.uni-regensburg.de/1511/ 1 , a Fig. 5.2, 5.4, e 5.5, e pode por exemplo ser obtida usando métodos para a construção de sequências de cinzentos curtos.
O número de portas de um qubit é sempre 15.
Observação: Embora possa, em princípio, ser um circuito mais simples (dito circuito foi otimizado com uma arquitetura circuito mais restrito em mente), ele deve estar próxima do ideal - as necessidades de circuitos para criar todos os estados da forma⨁i∈Ixi para qualquer subconjunto não trivial I⊂{1,2,3,4} , e existem 15 daqueles para 4 qubits.
Observe também que essa construção de forma alguma precisa ser ideal.
1 Nota: sou um autor
fonte
Você pode implementar um U controlado por qubit pelo circuito fornecido nesta resposta . Basta substituir U por Z . No entanto, isso requer portões CCNOT (Toffoli) e você tem algumas opções para implementar o CCNOT usando portões elementares .n você você Z
fonte
Aqui está uma construção do CCCZ que usa 29 portas :
Se você puder usar a medição e o feedforward clássico, a contagem de gateways poderá ser reduzida para 25 :
(Os portões Hadamard podem ser substituídos por raízes quadradas de Y, se necessário, para atender à restrição do conjunto de portões.)
E se você me permitir executar portões Controlado-S e Controlado-sqrt (X) e realizar medições com base em X, então posso reduzi-lo a 10 portões no total :
fonte
Estou postando outra decomposição do CCCZ aqui, caso seja útil para qualquer outra pessoa que esteja tentando compilar o CCCZ. Requer um número menor de portas totais e apenas 1 qubit auxiliar em vez de 2, mas cinco portas a mais de 2 qubit que a resposta "óbvia"; portanto, pode ser pior para a implementação no hardware.
Foi sugerido pelo usuário @Rob neste comentário: Compilação automática de circuitos quânticos , e vem deste artigo .
fonte
Observe também que os dois portões de Toffoli são apenas Toffoli porque têm como alvo o estado 0. Normalmente você precisaria de um portão extra de dois qubit.
Não encontrei uma construção tão eficiente na literatura existente, embora este artigo reivindique uma construção usando apenas 11 portas de 2 qubit, mas não fiz uma contagem completa de portas depois de convertida no conjunto de portas restritas da pergunta.
fonte
Embora minha outra resposta seja a maneira mais óbvia de "livro didático" (usando a decomposição do CCCZ da Nielsen & Chaung em CCNOTs , em seguida, outra decomposição do livro para compilar os CCNOTs ), uma maneira mais criativa pode nos permitir fazer o trabalho com menos portões.
Passo 1:
Substitua todos os CNOTs no circuito da Nielsen & Chuang por este gadget:
Passo 2:
Agora temos um monte de CCZs em vez de CCNOTs, e eles podem ser decompostos assim (cortesia deste artigo ):
Etapa 3:
fonte