Computers are everywhere. Case in point: you are reading this on a computer now. But what is it that computers do? Let’s step back and ask instead what it is we want them to do.
Algorithms and programs
Consider the fact that there is nothing your digital computer can compute that a room full of people with pen and paper could not. Remember long division? Imagine those people are doing long division — a sequence of memorized steps on new pieces of data. The steps your teacher drilled into you are called an algorithm. The steps are abstract rules that could be carried out by people with pen and paper, people with an abacus, electronic circuits with a Windows operating system, and so on. Given a particular set of tools, the specific instructions needed to carry out the steps using those tools is called the program. (You have several programs unique to your brand of computer carrying out the steps of algorithms now.)
Regardless of what tools are used, if the algorithm is followed faithfully, the answer will always be the same. People with pen and paper are prone to errors and are slow. Electronic circuits are near perfect and extremely fast. The choice is clear. Let’s put it another way. There are plenty of algorithms we want — or need — to carry out. Wouldn’t it be great if we could engineer a device to do it for us quickly and accurately? Yes, of course it would.
Remarkably, every algorithm we can think of can be cast as a program that changes sequences of 1’s and 0’s one step at a time. If we could build a machine that can represent any sequence of 1’s and 0’s and accept instructions (programs) for changing one sequence into another, we would be able to use it to carry out the steps in any algorithm instead of having to do it ourselves. Indeed, this is what a modern digital computer is — a machine that can perform any computation for us.
Although a digital computer can carry out the steps of any algorithm, some algorithms have digital programs that require too many steps to be feasible. For example, solving certain equations using digital computers is completely infeasible even if the computer could do it in principle. We know, roughly speaking, the equations we would need to solve to determine what would happen when a hypothetical drug molecule interacted with a biological molecule. There are even algorithms to solve these equations. Many of the world’s supercomputers chug away running inefficient programs to solve such equations. But it’s just too hard — so we “solve” the equations with genetically modified mice instead.
The quantum ask
As before, we ask: wouldn’t it be great if a machine could be built especially for the purpose of carrying out these equation-solving algorithms? Yes, that would be fantastic. But, what would it need to do exactly? As it turns out, scientists have found algorithms whose steps change not sequences of 1’s and 0’s, but sequences of complex numbers — numbers like the square root of -1 and π. These algorithms have far fewer steps than the original algorithms.
In some sense, these algorithms are not that special — children could be trained to carry out the steps like long division. But that would be as inefficient as is it cruel. So the original question becomes more precise: can we build a machine that can represent any sequence of complex numbers and accept programs for changing one sequence into another? Indeed, we can — and that device is called a quantum computer.
Nowadays there are many algorithms phrased as steps that change sequences of complex numbers rather than 1’s and 0’s. These so-called quantum algorithms could be performed by hand or through the use of a digital computer, but it would take a long time. A quantum computer is a special-purpose device used to carry out these steps directly and do so efficiently.
There are many things that can be used to represent a 1 or 0. Digital computing technology has settled on the transistor, billions of which are in your computer now. But how do you “naturally” represent complex numbers? As it turns out, there’s a theory for that! Quantum physics demonstrates that complex numbers are encoded by the fine details of light and matter. Really, they are all around us, we just don’t have the finesse to get at them with our clumsy hands. But, science and engineering have progressed through the past 100 years to give us the required level of control. We can now build devices to encode complex numbers and change them.
The quantum future
At the time of writing, all quantum computers in existence are prototypes — they are small and not reliable enough to be practical. They also don’t have quantum programs at the level of abstraction that we have for digital computers. There is no “quantum” version of the word processing program I’m writing this on or the web browser program you are reading it on. The most interesting thing to imagine is what those quantum programs might look like — after all, when digital algorithms were being invented and the early computing machines were built to implement them, no one could have imagined that programs for future versions of those machines would exist to write blogs, share videos, perform bank transactions, and all the other things we take for granted. We know quantum computers will be able to solve some important problems for us, but what we will eventually have them do for us is unimaginable.