De acordo com a pergunta vinculada, a solução mais simples é conseguir que o processador clássico execute essas operações, se possível . Obviamente, isso pode não ser possível, então queremos criar um somador .
Existem dois tipos de somador de um bit - o meio e o total . A meia-adicionador leva as entradas e e gera a 'soma' (operação XOR) e o 'carry' (E operação) . Um somador completo também tem o 'carregar em' de entrada e o 'efectuar' a saída , substituindo . Isso retorna e .B S = A ⊕ B C = A ⋅ B C i n C o u t C S = A ⊕ B ⊕ C i n C o u t = C i n ⋅ ( A + B ) + A ⋅ BUMABS= A ⊕ BC= A ⋅ BCeu nCo u tCS= A ⊕ B ⊕ Ceu nCo u t= Ceu n⋅ ( A + B ) + A ⋅ B
Versão quântica do semi-somador
Observando o portão CNOT no registro qubit registro de controle : que dá imediatamente a saída do registo como . No entanto, ainda temos que computar o carry e o estado doB CNOT A → B | 0 ⟩ A | 0 ⟩ BUMAB BUma⊕B=SBAB(C)| 0⟩Um⋅B=CABCABBC
CNOTA → B| 0 ⟩UMA| 0 ⟩BCNOTA → B| 0 ⟩UMA| 1 ⟩BCNOTA → B| 1 ⟩UMA| 0 ⟩BCNOTA → B| 1 ⟩UMA| 1 ⟩B= | 0 ⟩UMA| 0 ⟩B= | 0 ⟩UMA| 1 ⟩B= | 1 ⟩UMA| 1 ⟩B= | 1 ⟩UMA| 0 ⟩B,
BA⊕B=SBO registro mudou, então também precisamos executar a operação AND. Isso pode ser feito usando a porta Toffoli de 3 qubit (CNOT / CCNOT controlado). Isso pode ser feito usando registros e como registros de controle e inicializar o terceiro registo no estado , dando a saída do terceiro registo como . A implementação de Toffoli nos registradores e controlam o registro seguido de CNOT com controla fornece a saída do registro como a soma e a saída do registro
AB(C)|0⟩A⋅B=CABCABBCcomo o transporte. Um diagrama de circuito quântico do semi-somador é mostrado na figura 1.
Figura 1: Diagrama do circuito de um semi-somador, consistindo de Toffoli seguido de CNOT. Os bits de entrada são e , dando a soma com transportar para fora .B S CABSC
Versão quântica do somador completo
Mostrado na figura 2, uma maneira simples de fazer isso para bits únicos é usando registros de qubit, aqui rotulados como , , e , onde começa no estado , portanto, o inicial estado é :A B C i n 1 1 | 0 ⟩ | A ⟩ | B ⟩ | C i n ⟩ | 0 ⟩4ABCin11|0⟩|A⟩|B⟩|Cin⟩|0⟩
- Aplique Toffoli usando e para controlar :B 1 | A ⟩ | B ⟩ | C i n ⟩ | Um ⋅ B ⟩AB1|A⟩|B⟩|Cin⟩|A⋅B⟩
- CNOT com controlando :B | A ⟩ | A ⊕ B ⟩ | C i n ⟩ | Um ⋅ B ⟩AB|A⟩|A⊕B⟩|Cin⟩|A⋅B⟩
- Toffoli com e controlando :C i n 1 | A ⟩ | A ⊕ B ⟩ | C i n ⟩ | Um ⋅ B ⊕ ( Um ⊕ B ) ⋅ C i N = C o u t ⟩BCin1|A⟩|A⊕B⟩|Cin⟩|A⋅B⊕(A⊕B)⋅Cin=Cout⟩
- CNOT com controlando :C i n | A ⟩ | A ⊕ B ⟩ | Um ⊕ B ⊕ C i n = S ⟩ | C O u t ⟩BCin|A⟩|A⊕B⟩|A⊕B⊕Cin=S⟩|Cout⟩
Uma etapa final para recuperar as entradas e é aplicar um CNOT com o registro controla o registro , fornecendo o estado final de saída comoABAB
|ψout⟩ = | A ⟩ | B ⟩|S⟩ |Cout⟩
Isso fornece a saída do registro como a soma e a saída do registro como executada.Ceu n2
Figura 2: Diagrama do circuito de um somador completo. Os bits de entrada são e junto com um carry , fornecendo a soma com o carry .UMABCeu nSCo u t
Versão quântica do somador de transporte de ondulação
Uma extensão simples do adicionador completo é um transportador de ondulação, denominado como 'ondula' o transporte para se tornar o transporte do próximo adicionador em uma série de adicionadores, permitindo somas de tamanho arbitrário (se lento). Uma versão quântica de um somador pode ser encontrada, por exemplo, aqui
Implementação real de um meio adicionador
Para muitos sistemas, implementar um portão Toffoli está longe de ser tão simples quanto implementar um único portão de qubit (ou mesmo dois qubit). Essa resposta fornece uma maneira de decompor Toffoli em vários portões menores. No entanto, em sistemas reais, como IBMQX , também pode haver problemas nos quais os qubits podem ser usados como destinos. Assim, uma implementação da vida real no IBMQX2 se parece com isso:
Figura 3: Implementação de um meio adicionador no IBMQX2. Além de decompor o portão de Toffoli em vários portões menores, são necessários portões adicionais, pois nem todos os registros de qubit podem ser usados como alvos. Os registros q [0] e q [1] são adicionados para obter a soma em q [1] e o carry em q [2]. Nesse caso, o resultado q [2] q [1] deve ser 10. A execução no processador deu o resultado correto com uma probabilidade de 42,8% (embora ainda fosse o resultado mais provável).
`` Se eu estivesse usando diodos, transistores etc., poderia facilmente descobrir as operações clássicas que preciso executar para adicionar 1 + 1. Como você faria isso, em detalhes, em um computador quântico? ''
Impressionante! Suspeito que a maioria das pessoas não consiga descobrir com facilidade como combinar diodos e transistores para implementar um anúncio clássico de dois bits (embora eu não duvide que esse cientista material provavelmente possa fazê-lo). ;)
Teoricamente, a maneira como você implementa um somador clássico é bastante semelhante em um computador clássico e quântico: você pode fazer isso nos dois casos, implementando uma porta Toffoli ! (Veja a resposta de @ Mithrandir24601.)
Mas o cientista do material provavelmente quer entender como implementar esse portão (ou uma sequência de equivalências de outros portões quânticos) em um dispositivo físico. Provavelmente, existem várias maneiras de fazer isso usando diferentes tecnologias quânticas, mas aqui estão duas realizações diretas dessa porta, usando íons presos e qubits supercondutores:
Você também pode decompor o portão de Toffoli como uma sequência de portas de um qubit e CNOT. https://media.nature.com/lw926/nature-assets/srep/2016/160802/srep30600/images/srep30600-f5.jpg Você pode ler sobre como implementá-las com fotônica, QED de cavidade e íons presos na Nielsen e Chuang .
fonte
Um novo método para calcular somas em um computador quântico é introduzido. Essa técnica usa a transformação quântica de Fourier e reduz o número de qubits necessários para adição, removendo a necessidade de bits de transporte temporários.
Link em PDF para 'adição em um computador quântico' , escrito por Thomas G. Draper, escrito em 1 de setembro de 1998, revisado: 15 de junho de 2000.
Para resumir o link acima, a adição é realizada de acordo com o seguinte diagrama de circuitos (retirado da página 6):
Para citar o artigo (novamente, página 6):
fonte
Cálculo paralelo da soma de dois qubits
Eu queria experimentar o cálculo paralelo da soma de dois qubits, uma superposição de 0 e "1 com fase -1 " adicionado a 1; e fui inspirado pela resposta de Mithrandir24601. Os resultados estão abaixo. Espero que minha resposta esteja dentro do contexto do que foi solicitado. Ele mostra como 1 é adicionado 1 e a 0 ao mesmo tempo, mas enquanto as duas respostas são calculadas, podemos ler a resposta para apenas um dos cálculos cada vez que a computação é executada. Você pode ver que das 1000 execuções, 417 vezes lemos a resposta "1" (1 = 0 + 1) e 380 vezes e lemos a resposta "2" (2 = 1 + 1).
(34 vezes não conseguimos nada quando o 1 bit foi inutilizado, 54 vezes obtivemos 0 = 0 + 1, 29 vezes obtivemos 1 = 1 + 1, 28 vezes obtivemos 2 = 0 + 1, 42 vezes obtivemos 3 = 0 + 1, e 16 vezes obtivemos 3 = 1 + 1; cada um desses erros surgiu sem dúvida de inversões de bits, inversões de fase ou ambas).
Uma superposição de 0 e "1 com fase -1 " em um registro de um qubit é adicionada a 1 em um registro de dois qubit. Com três qubits, os dois primeiros da esquerda para a direita são a soma (ou o terceiro e o quarto de 5) e o qubit mais à direita mostra se o estado fundamental (tratado como 0) foi adicionado ou o estado excitado (1 com um valor inicial). fase de -1) foi adicionada.
fonte