4. What can a quantum computer do?

The answer to what a quantum computer enables that can’t be achieved with a classical computer goes hand in hand with a discussion of quantum algorithms — those algorithms which are only possible with the quantum model of computation. First it’s worth debunking a potential misconception. The exponential size of quantum state space sometimes causes speculation that a quantum computer could provide exponential speedup for all computations — a claim that sometimes even makes it into popular press accounts. This is unfortunately not the case, while there are specific applications that can achieve some speedup, they are limited to those enabling algorithms. So when we say that quantum computers will take us outside of Moore’s Law, that is really only accurate for some specific applications as enabled by quantum algorithms. Thus the quantum computing race is as much to build robust / scalable / low error qubit architecture as it is to design novel algorithms.

Image via The Economist

Before diving into specifics of of algorithms and applications, probably worth at least briefly first climbing up a few layers of abstraction for a discussion of the theory of computational complexity. Computational complexity theory is a way of categorizing various styles of computer problems into classes based on how hard it is for a computer to solve them (I am definitely oversimplifying here, this is my layman’s description). Shown below are the most important major categories. P (Polynomial) represents the category of problems that can be solved by a classical computer in polynomial time, or in other words these are the problems that you can handle on your laptop. As we get higher up in this scale the amount of computational power and time required grows to data center scale and then even beyond those capabilities. A key category relevant for quantum computers is BQP (Bounded Quantum Polynomial) which represents the class of problems that can be solved by a quantum computer in polynomial time. In other words, quantum computers enlarge the class of problems that can be solved in polynomial time from P to BQP (which encompasses P). It’s also worth noting that the actual shape of the BQP class in relation to the others shown is not known for sure, it is possible that BQP is larger than what is shown here but until such time that we discover quantum algorithms that actually demonstrate this then we are left to speculate. (People have long argued over the possibility of whether P could actually be equal to NP and many an arm-chair Turing has tried to prove P=NP to no avail, perhaps an eventual discovery of BQP=NP is somewhat more realistic although the optimality of Grover’s search algorithm suggests that this is likely not the case.)

Source: Yoshi Yamamoto IFC 2015 conference presentation: Link

This image shown is a broad overview of key categories, if you want to get down to the nitty gritty sub-classes and categories there is a (intentionally not using the work “useful”) reference available online. I don’t recommend trying to wade through this level of detail, mainly providing that link for completeness and because it looks like someone may have put a lot of work into its assembly. Another aside is that one shouldn’t confuse computational complexity with the more general complexity studies as one may encounter at Santa Fe Institute for instance, although it is perhaps interesting to note that the two fields do have potential for intersections.

image via stephenwildish.co.uk

Here now are a few examples of the type of applications and algorithms that quantum computers will enable. Many of these algorithms will have some equivalent in classical architecture, with the quantum computer providing some degree of speedup, others, such as a true randomness generation or the entanglement enabling of quantum information systems, may have no equivalent in classical architecture.

a) Randomness: it is a limitation and a challenge of classical computers to achieve true randomness. In applications such as cryptography an attacker who can predict certain values can potentially view an encoded message. Classical systems have attempted to generate a pseudo randomness using pseudo random inputs, for example Mathematica long used Cellular Automata Rule 30 coupled with the inputs of some computer state to generate a pseudo randomness — although I believe they have since switched to a new approach. The Rand Corporation published some of the earliest collections of random numbers in book format (the Amazon reviews are priceless). A quantum computer’s true randomness generated from the collapse of a qubit’s quantum state makes for more robust cryptography and also comes in handy for other applications such as Monte Carlo analysis or computer simulations of real world systems.

An Amazon user’s review of “A Million Random Digits with 100,000 Normal Deviates”

b) Search: One style of quantum algorithms are built with a technique of in possible answer superposition, the quantum state is manipulated so that incorrect answers interfere with each other and the solution is reinforced, a key example of this technique is found in Grover’s Algorithm, an algorithm that provides (only) quadratic speedup for applications in database search. With all of the talk about Google diving into the quantum computer field, purchasing D Wave machines, etc., one may expect that this search application is a primary focus, but I believe their interests are more geared towards applications in artificial intelligence.

c) Factoring: Some quantum algorithms make use of the Quantum Fourier transform in their operation. The Fourier transform, to those uninitiated, is a method for taking a noisy signal and breaking it down into its constitute frequencies and amplitudes, sort of analogous to taking a smoothie and running through a series of filters to determine ingredients.

Fourier transform explanation and image source here.

The Shor’s factoring algorithm is a good example of applications that make use of this effect. Used for integer factoring, the breaking down of numbers into their constituent prime multipliers, which has long been the key ingredient for RSA cryptography (still widely used for securing communications). Factoring was chosen for this application because there is no classical algorithm which is known to solve this puzzle in polynomial time, thus for large enough integers the problem of factoring even with considerable classical resources can take exponential time (read years / decades even with data centers scale computational capacity), making this cryptography protocol secure. The advent of quantum computers employing Shor’s algorithm will change that. If you think the few email leaks we are seeing in this presidential election are bad, just wait until modern cryptography becomes obsolete, then those who have been monitoring and storing decades of encrypted communications may just have the ability to read them at will. Fortunately there are alternatives to RSA encryption such as quantum encryption methods, which are secure even in a world with quantum computers. The transition of our communication systems from RSA style cryptography protocols to those more secure I speculate could turn into a challenge on par with the Y2K Bug from the turn of the millennium (as immortalized in the movie Office Space) — perhaps a “Q2K”?

No one in this country can ever pronounce my name right. It’s not that hard: Na-ghee-na-na-jar. Nagheenanajar. (image source)

d) Optimization: I’ve already touched on the concept of quantum annealing with respect to the D Wave architecture, and won’t spend much more time on it here other than to just reiterate the broad applications of improved optimization techniques enabled by the tunneling of quantum annealing.

image via wikipedia

Optimization has wide applications. For some more outlandish consider some talk of using quantum annealers to model software systems to minimize errors and bugs. Others may have focus on applications in space exploration. The philosopher Nassim Taleb has even cautioned on the overuse of optimization due to a tendency to inflate hidden risks / increase the fragility of a system.

e) The zoo: For a complete list of current publicly known quantum algorithms NIST has assembled a menagerie here.