zlacker

[parent] [thread] 7 comments
1. cousin+(OP)[view] [source] 2020-04-27 10:08:49
I think there's no way to understand quantum computing without first understanding some linear algebra, specifically tensor products. How ten 2-dimensional spaces give rise to a 1024-dimensional space, how the Kronecker product of three 2x2 matrices is an 8x8 matrix, and so on. If you're comfortable with that, here's a simple and precise explanation of quantum computing:

1) The state of an n-qubit system is a 2^n dimensional vector of length 1. You can assume that all coordinates are real numbers, because going to complex numbers doesn't give more computational power.

2) You can initialize the vector by taking an n-bit string, interpreting it as a number k, and setting the k'th coordinate of the vector to 1 and the rest to 0.

3) You cannot read from the vector, but exactly once (destroying the vector in the process) you can use it to obtain an n-bit string. For all k, the probability of getting a string that encodes k is the square of the k'th coordinate of the vector. Since the vector has length 1, all probabilities sum to 1.

4) Between the write and the read, you can apply certain orthogonal matrices to the vector. Namely, if we interpret the 2^n dimensional space as a tensor product of n 2-dimensional spaces, then we'll count as an O(1) operation any orthogonal matrix that acts nontrivially on only O(1) of those spaces, and identity on the rest. (This is analogous to classical operations that act nontrivially on only a few bits, and identity on the rest.)

The computational power comes from the huge size of matrices described in (4). For example, if a matrix acts nontrivially on one space in the tensor product and as identity on nine others, then mathematically it's a 1024x1024 matrix consisting of 512 identical 2x2 blocks - but physically it's a simple device acting on one qubit in constant time and not even touching the other nine.

replies(2): >>andyjo+a1 >>tabtab+6x
2. andyjo+a1[view] [source] 2020-04-27 10:25:44
>>cousin+(OP)
Thank you for posting such a concise description.
3. tabtab+6x[view] [source] 2020-04-27 15:06:44
>>cousin+(OP)
What about some kind of interactive simulation, kind of like playing with a graphing calculator? People tend to relate to things better by tinkering and playing with parameters to observe the impact on results. Analog experimentation is how we learned most Newtonian physics.
replies(4): >>mjewke+Wz >>garris+vU >>aetern+wy1 >>ionflo+Upd
◧◩
4. mjewke+Wz[view] [source] [discussion] 2020-04-27 15:24:07
>>tabtab+6x
Strilanc, who works on the google quantum team, has a simulator here: https://algassert.com/quirk
◧◩
5. garris+vU[view] [source] [discussion] 2020-04-27 17:34:47
>>tabtab+6x
Several years ago, I gave a presentation on quantum computing to the Los Angeles Hacker News Meetup. The slides are at https://jimgarrison.org/quantumcomputingexplained/ . Unfortunately, there is no video recording so they are currently lacking explanations.

My goal was to explain quantum computing in a way that is mathematically precise but doesn't require one to learn linear algebra first. To do this, I implemented a quantum computer simulator in Javascript that runs in the web browser. Conceptually (in mathematical language), in each simulation I present, I've started by enumerating the computational basis of the Hilbert space (all possible states the qubits could be in) and represented the computational state by putting an arrow beside each of them, which really is a complex number. (This similar to how Feynman explains things in his book QED.) The magnitude of the complex number is the length of the arrow, and its phase is the direction it points (encoded redundantly by its color). I've filled out the amplitude symbol with a square so that at any given point, its probability of a measurement resulting in that outcome is proportional to the area of that square. Essentially, in this language, making a measurement makes the experimenter color blind -- only the relative areas of the amplitudes matter and there is no way to learn directly phase information without doing a different experiment.

I could make a further document explaining along these lines if people are interested. The source is on github too: https://github.com/garrison/jsqis

◧◩
6. aetern+wy1[view] [source] [discussion] 2020-04-27 21:42:41
>>tabtab+6x
IBM has an amazing tool for this. Not only do they have a great simulator, but you can enter a queue to run your program on their real quantum computer:

https://quantum-computing.ibm.com/

replies(1): >>ksnape+S85
◧◩◪
7. ksnape+S85[view] [source] [discussion] 2020-04-29 01:25:48
>>aetern+wy1
Excellent! Thanks so much for this!
◧◩
8. ionflo+Upd[view] [source] [discussion] 2020-05-01 20:12:33
>>tabtab+6x
https://quantumjavascript.app/

You might find this useful. Along with the author's write-up:

https://medium.com/@stew_rtsmith/quantum-javascript-d1effb84...

[go to top]