Implementando um portão CCCNOT usando apenas portões Toffoli

10

Uma porta CCCNOT é uma porta reversível de quatro bits que inverte seu quarto bit se e somente se os três primeiros bits estiverem no estado .1 1

Como eu implementaria um portão CCCNOT usando os portões de Toffoli? Suponha que os bits na área de trabalho iniciem com um valor específico, 0 ou 1, desde que você os retorne a esse valor.

barulho
fonte
Usando apenas portões de Toffoli, ou Toffoli e CNOT são um jogo justo?
user1271772
Apenas portões Toffoli são permitidos.
Chuster
11
Que parte dessa pergunta é quântica? Parece que você deseja decompor um portão reversível clássico (CCCNOT) em portões reversíveis clássicos menores (CCNOTs).
user1271772
11
A questão em si não se refere à computação quântica, mas os portões são importantes para os circuitos quânticos.
Chuster

Respostas:

8

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 .

insira a descrição da imagem aqui

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=[0 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 CCCNOT -gate, agindo em quatro qubits, é dada pela seguinte 16×16 matriz:
CCCNOT=[Eu140 00 0X]
Assim, pode-se determinar o seu determinante:
det(CCCNOT)=-1 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):
ToffoeuEuEu2=[Eu60 00 0X]Eu2=[Eu120 00 0XEu2]=[Eu120 00 00 00 0Eu20 0Eu20 0]
Calculando os seus rendimentos determinantes:
det(ToffoeuEuEu2)=1 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:

CCCNOTI2=[I1400X]I2=[I280000I20I20]
Se calcularmos esse determinante, encontramos:
det(CCCNOTI2)=1
Assim, o determinante daCCCNOT agir -gate em5 qubits é1 , em vez de1 . É 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.

Arriopolis
fonte
11
uma fonte ou método usado para derivar o circuito seria útil!
precisa
11
Não conheço fontes que expliquem como projetar esses circuitos de maneira abrangente. As fontes que eu usei ao aprender sobre computação quântica foram o livro de Nielsen e Chuang e as notas da aula que podem ser encontradas aqui: homepages.cwi.nl/~rdewolf/qcnotes.pdf , mas essas fontes não se concentram especificamente no design de circuitos quânticos.
arriopolis
2
Eu tentei explicar como o circuito funciona um pouco mais. Espero que isso ajude na criação de circuitos semelhantes a este! :)
arriopolis
É possível sem auxiliares?
user1271772
11
+1 1CCCNOT4-1 1CCCNOT+1 1