Eu quero criar um portão Toffoli controlado por n qubits e implementá-lo no QISKit. Isso pode ser feito? Se sim, como?
quantum-gate
programming
qiskit
Ali Javadi
fonte
fonte
Respostas:
Uma maneira simples de fazer isso é ilustrada na Figura 4.10 da Nielsen & Chuang.
Onde U pode ser qualquer rotação de um qubit único (neste caso, um gate X).
Este circuito funciona da seguinte maneira: queremos aplicar U ao qubit alvo apenas se o AND de todos os qubits de controle for 1. Um Toffoli normal nos fornece o AND de 2 qubits. Assim, ao encadear alguns Toffolis, podemos obter c1.c2.c3.c4.c5, com a captura de que alguns qubits "funcionais" (ou ancilla) foram introduzidos para armazenar resultados intermediários. Depois de aplicar a UC final, obtemos o resultado final na meta. Agora podemos limpar os qubits de trabalho intermediários desfazendo seus cálculos, retornando-os ao estado | 0>. Esse modelo de computação reversível é conhecido como o método "computar-copiar-não-computar" e foi proposto pela primeira vez por Charlie Bennett em 1973 .
Aqui está o código QISKit para construir o circuito e visualizá-lo:
Rendimentos:
fonte
Eu quero adicionar um método que não usa qubits ancilla, mas exige portas mais complicadas do que apenas controladas. Eu acredito que esse método foi apresentado pela primeira vez por Barenco et. al. neste artigo , Lema 7.5:
Quando . Nesse caso, quer-se que e, portanto,V2= U V2= X V= 12( 1 + i1 - i1 - i1 + i) .
Esta é uma definição recursiva, portanto, o controle n qubit gate é definido em termos do controle n-1 qubit gate. Isso continuaria até você alcançar o CNOT de dois qubit.
Essa implementação é um pouco difícil, no entanto, existe uma mais simples se você não se importa em coletar uma fase relativa (consulte o Lema 7.9 do mesmo artigo).
Para implementar um portão como no QISKIT, você precisará usar os portões avançados de um qubit único.V
fonte
De Qiskit QuantumCircuit tem MCT método para construir-control múltipla Toffoli portão com vários modos:,-sujo-ancilla básico básico, avançado, noancilla. Por exemplo, portão Toffoli com 3 qubits de controle:
Resultado:
fonte