Як додати 1 + 1 за допомогою квантового комп'ютера?


29

Це можна розглядати як доповнення до програмного забезпечення. Як квантовий комп'ютер здійснює основну математику на апаратному рівні?

Це питання задав член аудиторії 4-ї мережі Іспанської мережі з квантової інформації та квантових технологій . Контекст, який дала людина, був: " Я вчений з матеріалів. Ви вводите передові складні теоретичні концепції, але у мене виникають труднощі із зображенням практичної роботи квантового комп'ютера для простого завдання. Якби я використовував діоди, транзистори тощо, я міг би легко зрозуміти собі класичні операції, які мені потрібно виконати, щоб додати 1 + 1. Як би ти це докладно робив на квантовому комп'ютері? ".

Відповіді:


21

Відповідно до пов'язаного питання, найпростішим рішенням є просто дозволити класичному процесору виконувати такі операції, якщо це можливо . Звичайно, це може бути неможливим, тому ми хочемо створити суматор .

Існує два типи однорозрядних суматорів - напівсумарний і повний суматор . Полусумматор приймає вхідні сигнали A і B і виводить суму «» (операція XOR) S=AB і «перенесення» (операція) C=AB . Повний суматор також має «нести в" Cin вхід і «виконати» Вихід Cout , замінюючи C . Це повертає S=ABCinі .Cout=Cin(A+B)+AB


Квантова версія напівдобавки

Дивлячись на ворота операції CNOT на кубите регістрі контрольний регістр B : CNOT A B | 0 | 0 БAB який відразу ж дає вихідBрегістру якAB=S. Однак нам ще потрібно обчислити перенос, і станрегістраBзмінився, тому нам також потрібно виконати операцію AND. Це можна зробити за допомогою 3-кубітного воріт Toffoli (керований-CNOT / CCNOT). Це можна зробити, використовуючи регістриAіBяк контрольні регістри та ініціалізуючи третій регістр(C)у стані| 0

CNOTAB|0A|0B=|0A|0BCNOTAB|0A|1B=|0A|1BCNOTAB|1A|0B=|1A|1BCNOTAB|1A|1B=|1A|0B,
BAB=SBAB(C)|0, Даючи вихід третього регістра в якості . Реалізація Toffoli на регістрах A і B управлін регістром З з подальшим CNOT з A управління B дає вихід регістра B в вигляді суми , а вихід регістра C в якості ручної поклажі. На кресленні 1 зображена квантова схема напівсуми.AB=CABCABBC

Схематична схема напівсуми

Рисунок 1: Схематична схема напівдобавки, що складається з Тоффолі, а потім CNOT. Вхідні біти і В , що дає суму S з перенесенням з C .ABSC


Квантова версія повного суматора

Показаний на малюнку 2, простий спосіб зробити це для одинарних біт - це використовувати кубітні регістри, тут позначені A , B , C i n та 1 , де 1 починається у стані | 0 , тому початковий стан | | B | З я н | 0 :4ABCin11|0|A|B|Cin|0

  1. Застосовуйте Toffoli за допомогою і B для контролю 1 : | | B | З я н | B AB1|A|B|Cin|AB
  2. CNOT з контролює B : | | B | З я н | B AB|A|AB|Cin|AB
  3. Тоффолі з і C i n, що контролюють 1 : | | B | З я н| B ( B )З я п = С про у тBCin1|A|AB|Cin|AB(AB)Cin=Cout
  4. CNOT з контролює C i n : | | B | B C я п = S | З про у тBCin|A|AB|ABCin=S|Cout

ABAB

|ψout=|A|B|S|Cout

Cin2

Квантова версія повного суматора

ABCinSCout.


Quantum version of the ripple carry adder

A simple extension of the full adder is a ripple carry adder, named as it 'ripples' the carry out to become the carry in of the next adder in a series of adders, allowing for arbitrarily-sized (if slow) sums. A quantum version of such an adder can be found e.g. here


Actual implementation of a half-adder

For many systems, implementing a Toffoli gate is far from as simple as implementing a single qubit (or even two qubit) gate. This answer gives a way of decomposing Toffoli into multiple smaller gates. However, in real systems, such as IBMQX, there can also be issues on which qubits can be used as targets. As such, a real life implementation on IBMQX2 looks like this: Single qubit half-adder on IBMQX2

Figure 3: Implementation of a half-adder on IBMQX2. In addition to decomposing the Toffoli gate into multiple smaller gates, additional gates are required as not all qubit registers can be used as targets. Registers q[0] and q[1] are added to get the sum in q[1] and the carry in q[2]. In this case, the result q[2]q[1] should be 10. Running this on the processor gave the correct result with a probability of 42.8% (although it was still the most likely outcome).


Are there any quantum-computer adders?
John Duffield

@JohnDuffield I'm not sure whether you mean approximate quantum (state) adders (exact state adders are apparently forbidden) or implementations of 'classical' adders on a quantum computer - I haven't tried this particular code out though - or something different?
Mithrandir24601

How are the numbers represented? Is it in Binary?
user3483902

@user3483902 In this case, single bits 0 and 1 using the states |0 and |1 - that is, the 'number' A can be either 0 or 1, as can the 'number' B etc.
Mithrandir24601

@Mithrandir24601 : does it matter? Isn't the answer no in either case? I've actually built a parallel adder myself. I have a Cmputer Science degree.
John Duffield

6

``If I was using diodes, transistors etc I could easily figure out myself the classical operations I need to run to add 1+1. How would you do that, in detail, on a quantum computer?''

Impressive! I suspect that most people cannot easily figure out themselves how to combine diodes and transistors to implement a classical two-bit adde (though I do not doubt this material scientist can probably do it). ;)

Theoretically, the way you implement a classical adder is pretty similar in a classical and quantum computer: you can do that in both cases by implementing a Toffoli gate! (See @Mithrandir24601's answer.)

But the material scientist probably wants to understand how to implement such an gate (or an equivalence sequence of other quantum gates) on a physical device. There are probably an infinite ways to do that using different quantum technologies, but here are two direct realizations of this gate using trapped ions and superconducting qubits:

  1. Realization of the Quantum Toffoli Gate with Trapped Ions, T. Monz, K. Kim, W. Hänsel, M. Riebe, A. S. Villar, P. Schindler, M. Chwalla, M. Hennrich, and R. Blatt, Phys. Rev. Lett. 102, 040501, arXiv:0804.0082.
  2. Implementation of a Toffoli gate with superconducting circuits A. Fedorov, L. Steffen, M. Baur, M. P. da Silva & A. Wallraff Nature 481, 170–172, arXiv:1108.3966.

You can also decompose the Toffoli gate as a sequence of single-qubit and CNOT gates. https://media.nature.com/lw926/nature-assets/srep/2016/160802/srep30600/images/srep30600-f5.jpgenter image description here You can read about how to implement these with photonics, cavity-QED and trapped ions in Nielsen and Chuang.


For disclosure, I was not that materials scientist, but rather, since the neverending discussion was still unsatisfactory and in abstract terms, I was the person that understood what he was asking for, googled for it and showed him a minimal but satisfactory answer (a half-adder on quantiki) in of quantum gates terms.
agaitaarino

5

A new method for computing sums on a quantum computer is introduced. This technique uses the quantum Fourier transform and reduces the number of qubits necessary for addition by removing the need for temporary carry bits.

PDF link for 'addition on a quantum computer', written by Thomas G. Draper, written September 1, 1998, revised: June 15, 2000.

To summarize the above link, addition is performed according to the following circuit diagram (taken from page 6):

enter image description here

To quote the paper (again, page 6):

The quantum addition is performed using a sequence of conditional rotations which are mutually commutative. The structure is very similar to the quantum Fourier transform, but the rotations are conditioned on n external bits.


1

Parallel computation of the sum of two qubits

I wanted to experience parallel computation of the sum of two qubits, a superposition of 0 and "1 with phase -1" added to 1; and I was inspired by Mithrandir24601's answer. The results are below. I hope my answer is within the context of what was asked. It shows how 1 is added 1, and to 0, at the same time, but whilst both answers are calculated, we can read out the answer to only one of the calculations each time the computation is run. You can see that out of 1000 runs, 417 times we read out the answer "1" (1=0+1), and 380 times and we read out the answer "2" (2=1+1).

(34 times we got nought when the 1 bit was flipped to nought, 54 times we got 0=0+1, 29 times we got 1=1+1, 28 times we got 2=0+1, 42 times we got 3=0+1, and 16 times we got 3=1+1; each of these errors arising no doubt from bit flips, phase flips, or both). enter image description here

I thought an initial π phase (created in the 1st of 3 Hadamard gates) represented a negative digit, but it just represents a positive digit with a -1 phase factor.

A superposition of 0 and "1 with phase -1" in a one qubit register is added to 1 in a two-qubit register. With three qubits, the first two qubits left to right is the sum (or the 3rd and 4th of 5) and the right-most qubit shows whether the ground state (treated as 0) was added or the excited state (1 with an initial phase of -1) was added.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.