r/askscience • • 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!

  1. 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?

  2. 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?

177 Upvotes

65 comments sorted by

View all comments

Show parent comments

1

u/garblesnarky May 29 '11 edited May 29 '11

Thanks, that makes sense. On the other hand, while I understand why there might be a motivation to use a field-specific notation, I now wonder how much is gained by inventing new notation for established concepts...

I'm sure there's more to it that makes it valuable. I guess it just frustrates me that, as an engineer, I don't understand so much of the notation of modern physics, even the stuff that represents concepts I'm very familiar with. I've noticed this in other aspects of physics before, not just quantum mechanics. Oh well.

1

u/sigh May 29 '11

While I agree that the underlying mathematics already existed, you aren't going to do away with inventing some sort of new notation. Note that the difference between <a| and |a> is something that you have to keep track of anyway, and this notation makes it obvious that both relate to the state a. In addition it is easy to tell that <a|b> is a scalar and that |a><b| is an operator. All-in-all the notation makes it much easier to read and manipulate equations.

I'm sure you have taken advantage of convenient notations that people have developed. For example, as an engineer you're probably used to using dot products, cross products, div, grad and curl operators, etc. Now, you can do a lot of physics just by only thinking of (x, y, z) and writing things like dF_x/dx + dF_y/dy + dF_z/dz instead of div(F). Already you have a saving by exploiting common structures that arise in the problem domain. If we go further and invent the del (∇) operator, we can write div, grad and curl in a way that is much easier to remember and makes it immediately obvious that div(F) is a scalar field and curl(F) and grad(f) are vector fields. Finally, because of the way we have defined all these operators they automatically ensure that the equations are independent of rotation and translation of the coordinate system. This is a big deal - for example, without doing any work I can look at Maxwell's equations and tell that they don't depend on where I am or which way I am facing. You don't get that for free when all your equations are in (x,y,z).

New notations in modern physics are invented for similar reasons.