Yeah but how fast is it? Part 3. OR some thoughts about adiabatic QC August 27, 2006
Posted by Geordie in General.trackback
A very interesting and fundamental question is whether or not there exist computational problems that just can’t be solved, even in principle. It’s common for people to assume that it’s just a matter of time and smarts and we can figure everything out.
Unfortunately this probably isn’t the case. One class of problems (called NP-complete) are probably not exactly solvable, no matter how big, fast or advanced computers get. How can we know this for sure, you ask?
Here’s one way: assume a certain set of laws of physics, and then use these to derive what can and can’t be calculated, and how resource requirements (time and memory) scale with problem size.
If the universe really ran using the laws of classical physics, then whether or not NP-complete problems are intractable is the P=NP question. It is overwhelmingly likely that P does not equal NP and therefore in a classical universe, NP-complete problems of sufficiently largeness can never be solved.
Ah, but you say, our universe isn’t classical. The fundamental laws of physics are probably something more like quantum mechanics. Unfortunately, even though the verdict isn’t fully in yet, it looks like even in a quantum mechanical universe (which is probably the one we live in) NP-complete problems are STILL intractable!
So you might be asking yourself, so what. OK well NP-complete problems show up everywhere. Let’s stretch a bit and imagine that we could cure cancer if only we could solve a certain NP-complete problem. If this problem could never be solved, even in principle, by anything obeying the laws of physics, then we could NEVER cure cancer,even if we evolved for another 1,000,000 years and our brains were quantum computers the size of the milky way.
Kind of humbling, eh?
Anyway, questions like this are really fun to think about, and motivate a particular way of studying the power of quantum computers, which brings me back to what I wanted to talk about in this post.
Usually what people mean by “solving a problem” is getting the exact solution. For example, if I ask what 4*6 is, you don’t get half marks for saying it’s 23.
But what do you do if you can’t get an exact solution, but something close to exact might be OK? You settle for an approximate solution.
Let me elaborate on this by talking a little bit about the particular NP-complete problem we attack using our systems - Max Clique.
Max Clique is a graph theory problem. It’s pretty simple. Given a graph (which is a set of vertices and edges between some of these vertices), find the largest set of vertices where each vertex in the set is connected by an edge to all other members of the set. Here’s an example from here:

The biggest set of vertices with the clique property is the red set {3, 4, 5, 6}.
Note that there are a bunch of cliques with 3 vertices (like {7, 8, 9}). These cliques aren’t the biggest (ie. not exact solutions), but they are “approximate” solutions, in the sense that 3 is almost 4. All NP-complete problems have this feature, that possible answers can be ranked using some “goodness” criteria.
This is important because even if we can’t exactly solve a problem, it may be possible to find a “good enough” solution by using an algorithm designed to get a good approximation quickly. In practice, everywhere NP-complete problems show up in real-world applications, this is the approach that is taken - first we figure out what “good enough” means, and then we find an algorithm that gives this “good enough” solution as quickly as possible.
For example, for Max Clique, lots of approximation algorithms that run in polynomial time are known. Here is one (called Qualex-MS) that scales like N^3, where N is the number of vertices in the input graph. Note that even though the algorithm terminates after order (N^3) steps, it’s of course not guaranteed to find the exact answer after it terminates, although in practice it usually gives a pretty good answer.
OK so what does this have to do with QCs? Well let’s assume for a moment that for QCs NP-complete problems remain intractable (which I believe is the case). If getting exact solutions is out of the question (which again I believe is the case), what should we do to figure out how one of these machines performs?
We have to do the same thing as we do in conventional approximation algorithms - run the machines using polynomial time, and see how good the answer we get out of the QC is. We don’t expect the answer to be exact, but maybe for alot of cases it will be (although we can’t guarantee this).
This way of looking at the performance of QCs (as “hardware heuristics”) is non-standard, and only makes sense for problems where “approximate solution” is a meaningful concept. For example if we want to break codes, an approximate key doesn’t cut it - we need the exact key or nothing happens. For QCs applied to NP-complete problems the “approximate is good enough” approach makes a lot of sense, especially if we want to apply the machines to real-world situations where today approximate answers are good enough.
So physically how does a QC operate to get an approximate answer to an NP-complete problem? Imagine we’ve built an AQC, and its energy levels are as shown in the picture below (think of the x-axis as time, with the beginning of the calculation the the left, and the end of the calculation to the right). At the end of the calculation we get the exact answer if we’re in the lowest energy level. If we’re not in the lowest energy level, we get an approximate answer. The lower the energy level is we end up in, the better the approximation.
The way AQC works is that at the beginning of the calculation (s=0) we always start in the lowest energy level (the lowest blue line). At the place labeled “minimum gap” we can skip up to a wrong answer (the green line), where we get stuck until the end of the calculation. If this happens, we get an approximate answer (in this case, the second-best solution, like the 3-clique above). So if we run this AQC on a problem with energy levels like this, with 100% certainty we’ll either get the exact solution or the next-to-best solution by the time we get to s=1.
So for any problem like this, we can sweep the s parameter (think of this like time) pretty quickly and guarantee a pretty good solution.
Which leads me to:
When people say QCs speed up the solution of NP-complete problems quadratically, they mean for the special case of requiring the exact solution. This speed-up has very little to do with the real question, which is how good an approximate answer do QCs get, given some fixed amount of computational time.
To blog a brand or brand a blog? (Say this 10 times)
To get a blog noticed you need to find a "Higher Holy Calling." What I mean by that is you need to find the common ground between your company/organization’s passions and those of your influential online customers. If you can…
Dr. Rose, I am a software engineer and like to keep abreast of the latest advances in quantum computing (QC). I hope to one day be fortunate to be able to program in a quantum computing environment. My hope is that QC will become widespread and commonplace enough that Joe Software Engineer can program one. I also REALLY hope that QC can run NP complete problems in polynomial time. It would be so cool to write non-deterministic algorithms. My question is this: Is the reason that you believe QC will never be able to solve NP complete problems in polynomial time (with 100% certainty) based on something fundamental or philosophical that you believe about the way the universe works? I’ve seen numerous papers at arxiv.org that present algorithms for Adiabatic QCs which can solve instances of SAT in polynomial time. I’m not qualified or knowledgeable enough to have good opinions about these papers, but perhaps you might comment in the best lay-speak possible, why these algorithms would not be implementable in practice, or on the general flaws in these papers.
The latest paper I’ve seen is: “Adiabatic quantum algorithms as quantum phase transitions: 1st versus 2nd order”, but numerous results are returned for “NP quantum”.
I guarantee that you will be able to program QCs, and in a much shorter timeframe than you might think! More on that later…
As to the question of whether QCs can solve NP-complete problems exactly using polynomial time & space resources: no-one really knows whether they can or not (of course we don’t even know this for sure with conventional computers).
But there are some interesting related things we do know for sure. One of them is that for the unstructured search problem (looking for a marked element in a big stack of unmarked elements, where the elements haven’t been sorted in any useful way) the optimal scaling for quantum computers is order (sqrt(N)), where N is the number of total elements. This is quadratically better than the classical best scaling of order (N). If NP-complete problems had no structure, then this implies that QCs could at best speed up the search by a quadratic factor, which means that they would remain intractable (if they were intractable with conventional machines).
Of course NP-complete problems do have quite a bit of structure, so it’s possible that we could find a trick to use QCs (or even conventional computers) to solve them to optimality using polynomial resources.
My gut feeling is that QCs can’t solve NP-complete problems to optimality using polynomial resources, although it would be great if I was wrong.
As to the papers on using AQCs for this type of problem: None of these actually claim exponential speed-up in general for AQCs applied to NP-complete problems. They sometimes show that for specific instance types this can happen, but that’s not the same as showing it happens in general.
If you’re interested in this question, you should read Scott Aaronson’s paper “NP-complete problems and physical reality”, you can find it on arxiv.org, it’s pretty cool.
[...] To his credit, Geordie Rose (the founder of D-Wave) does understand this; see here for example. And yet, essentially every article I’ve read about D-Wave gives readers [...]
[...] Yeah but how fast is it? Part 3. OR some thoughts about adiabatic QC « rose.blog (tags: quantum.computing) [...]
In Orion kubits is a bits? No entanglement? And how about superposition?
but if grover algorithm gives bad answer with probablility roughly 1/N, then say if 2^n (n - number of qubits ) and say n=1000, then probability what answer is incorrect is 1/N =1/(2^1000)=0.00000000000000000000000000000000000…..01
So why quantum computing is bad?
Hi Geordie!
The spectrum in this post, what system/calculation does it describe? I’ve been wondering about negative energies and E_0(s=0) \neq E_0 (s=1)…