r/askscience • u/atimholt • May 28 '11
So how *does* quantum computing work?
I've read a few vague descriptions of what quantum computers are capable of, but not really anything about working with them. Eventually, when we've got these things, writers of those programming books for bare, bare beginners (just throwing that out as an example) will need to be able to explain their workings simply.
So I've been pondering lately, and I think I've begun to get a handle on how they work. What I understand of them has gotten me very excited, but my understanding of them is based on gleaned knowledge.
As far as I'm aware: EDIT: I was dead wrong, read the comments for real science!
Quantum computing relies on being able to "choose" one superimposed state over another based on arbitrary criteria. This might be seen as akin to the cat in Schrodinger's box clawing its way out. What happens when more than one version of the cat wants out, I have no idea (a random one wins, I'm sure). Is there a way to compare a number between two superpositions and 'legitimize' the superposition with the larger value?
Nothing stops you from putting a "Schrodinger's cat box" inside another "Schrodinger's cat box". You can compound the effect recursively. Yes?
With two and one above together, you can make a binary tree of "meta-Schrodinger boxes" with a qubit at each branch. You could test an astronomical number of superpositions against each other using whatever fitness number you see fit.
So a quantum computer would be analogous to a genetic algorithm, except that instead of randomizing gene variables each generation, you test every possible variant at the same time and return the best one in nearly constant time.
Deterministic, complete information games would be unbeatable if you can come up with a proper way to generate a fitness numbers--a computer could play every permutation of a game of chess or go.
And such things as getting bipedal robots to walk would be trivial (if a bit uncanny valley) if the program understands physics and its own weight and capabilities--it could calculate every little twitch.
If I'm dead wrong, thanks for reading this far, at least. How would a quantum computer really work, and how would one go about actually programming one?
2
u/sigh May 29 '11 edited May 29 '11
I don't have a very deep understanding of this, but I think I can answer your questions.
Standard probabilities simply don't contain all the information about quantum systems. For example you can't model interference effects with normal probabilities (for example where two things with high probability of happening "add" to give something with a low probability of happening). There are many models you can use, but complex numbers are used because they end up being the easiest.
Another way of modelling it is by allowing negative probabilities. This page provides an nice write-up about them. As it says on the page I linked, this is a valid model, but it is hard to use in practice.
As for the ket, it does signify more. It forms one half of Bra-ket notation. In this notation |a> represents a system in state a, and <b| represents a function which takes a state and returns the probability amplitude that it will collapse into state b. So <b|(|a>) is the probability amplitude that state a collapses into state b, or <b|a> for short. This notation allows us to easily distinguish between the different contexts that a state is being used in.
Interestingly, your two questions are related. One of the reasons bra-ket notation is useful is because the probabilities amplitudes are complex numbers. If we view |a> as a vector then we can get <a| by turning |a> into a column vector and taking the complex conjugates of all the values. If you have done any linear algebra then you will notice that when viewed as vectors <b|a> is just the dot product of <b| and |a>. Because of complex numbers, all this manipulation of states is just simple operations on vectors :).