Eu acho que o que você está procurando é o seguinte circuito. Aqui, b1,b2,b3,b4∈{0,1} e ⊕ é o módulo de adição 2 .
Aqui, o qubit qubit é usado como um qubit auxiliar ou ancilla . Começa às |0⟩ e termina em |0⟩ quando o circuito é aplicado.
Deixe-me explicar como esse circuito funciona. A idéia é verificar primeiro se os dois primeiros qubits estão no estado |1⟩ . Isso pode ser feito usando uma única porta Toffoli, e o resultado é armazenado no qubit auxiliar. Agora, o problema reduz-se ao lançamento do qubit 4 , sempre que o qubits 3 e o qubit auxiliar estiverem em |1⟩ . Isso também pode ser alcançado usando uma aplicação de um portão de Toffoli, ou seja, o do meio no circuito mostrado acima. Finalmente, o último portão de Toffoli serve para não calcular o resultado temporário que armazenamos no qubit auxiliar, de modo que o estado desse qubit retorne a |0⟩ após o circuito ser aplicado.
Na seção de comentários, surgiu a questão de saber se é possível implementar esse circuito usando apenas portas Toffoli, sem o uso de qubits auxiliares. Esta pergunta pode ser respondida de forma negativa, como mostrarei aqui.
Queremos implementar a CCCNOT -gate, que atua em quatro qubits. Podemos definir a seguinte matriz (matriz a representação da Pauli- X -gate):
X= [ 01 11 10 0]
Além disso, nós denotar a N matriz identidade -dimensional por EuN . Agora, observa-se que a representação da matriz da C C C N O T -gate, agindo em quatro qubits, é dada pela seguinte 16 × 16 matriz:
C C C N O T = [ I140 00 0X]
Assim, pode-se determinar o seu determinante:
det ( C C C N O T ) = - 1
Considere agora a representação da matriz da porta Toffoli, agindo sobre as três primeiras qubits de um4 sistema de qubit. A sua representação matricial é escrito como (onde foi utilizado o produto de Kronecker de matrizes):
T o ffo l i ⊗ I2= [ I60 00 0X] ⊗ I2= [ I120 00 0X⊗ eu2] = ⎡⎣⎢Eu120 00 00 00 0Eu20 0Eu20 0⎤⎦⎥
Calculando os seus rendimentos determinantes:
det ( T offo l i ⊗ I2) = 1
Os portões de Toffoli também podem atuar em diferentes qubits, é claro. Suponha que deixemos o portão de Toffoli agir no primeiro, segundo e quarto qubit, onde o quarto qubit é o qubit alvo. Em seguida, obtemos a nova representação matricial da exibida acima, trocando as colunas correspondentes aos estados que diferem apenas no terceiro e quarto qubit, ou seja, | 0001⟩ com | 0010⟩ , | 0101⟩ com |0110⟩ , etc. O importante a notar aqui, é que o número de swaps de colunas é ainda, e, portanto, que o determinante permanece inalterado. Como podemos escrever toda permutação de qubits como uma sequência de permutações consecutivas de apenas2 qubits (isto é,S4 é gerado pelas transposições emS4 ), descobrimos que, para todos os portões de Toffoli, aplicados a qualquer combinação de controle e qubits alvo, sua representação matricial é determinante1 .
A última coisa a notar é que o determinante comuta com multiplicação de matrizes, ou seja, det(AB)=det(A)det(B) , para quaisquer duas matrizes A e B compatíveis com a multiplicação de matrizes. Assim, torna-se agora evidente que a aplicação de múltiplas portas Toffoli em sequência não cria um circuito cuja representação matriz tem um diferente determinante de 1 , que em particular implica que o CCCNOT -gate não pode ser implementado utilizando apenas portas Toffoli sobre 4 qubits.
A questão óbvia, agora, é o que muda quando permitimos um qubit auxiliar. Encontramos a resposta quando escrevemos a ação do CCCNOT -gate em um 5 sistema -qubit:
CCCNOT⊗I2=[I1400X]⊗I2=⎡⎣⎢I280000I20I20⎤⎦⎥
Se calcularmos esse determinante, encontramos:
det(CCCNOT⊗I2)=1
Assim, o determinante daCCCNOT agir -gate em5 qubits é1 , em vez de−1 . É por isso que o argumento anterior não é válido para5 qubits, como já sabíamos por causa do circuito explicitamente construído que o OP solicitava.