O Exercício 4.29 de Computação Quântica e Informação Quântica de Nielsen e Chuang me deixou perplexo.
Encontre um circuito contendo Toffoli, CNOT e portas de qubit único que implementam uma portão (para ), sem qubits de trabalho.
Eu descobri que isso não pode ser feito classicamente .
Eu descobri como fazer isso com portões exponencialmente precisos (aninhe dentro de si a construção de controle duplo a partir de controles únicos e raiz quadrada de operação vezes).
Tentei generalizar a construção acima para acumular uma combinação linear de operações controladas. Por exemplo, se eu tiver 3 controles chamados A e B e C e criar um vetor dos vários casos [0, A, B, C, AB, BC, AC, ABC], então:
- A aplicação de uma operação adiciona incondicionalmente [1, 1, 1, 1, 1, 1, 1, 1]
- Controlar uma operação em A adiciona [0, 1, 0, 0, 1, 1, 0, 1]
- Xorar A em C e controlar uma operação em C (depois desfazer o xor) adicionaria [0, 1, 0, 1, 1, 1, 0, 0]
- Xoring (A e B) em C através de um portão de toffoli e, em seguida, controlar uma operação em C adicionaria [0, 0, 0, 1, 1, 1, 1, 0]
Então eu tentaria adicionar (aplicar uma raiz de X) e subtrair (aplicar raiz quadrada inversa) os vários vetores que posso criar até o resultado sair como [0, 0, 0, 0, 0, 0, 0, 0, N] .
Mas eu continuo batendo em várias paredes, como soluções que acabam com múltiplos grandes (ou seja, os portões que estou usando se tornam exponencialmente precisos, o que eu acho que é um não-não) ou simplesmente não sendo capaz de resolver o sistema devido à interação entre gerando elementos com AND / XOR e resolvendo com + / * como não padrão ou criando números exponenciais de portas.
Quais são algumas outras abordagens para tentar?