18

On the Wikipedia page for quantum algorithm I read that

[a]ll problems which can be solved on a quantum computer can be solved on a classical computer. In particular, problems which are undecidable using classical computers remain undecidable using quantum computers.

I expected that the fundamental changes that a quantum computer brings would lead to the possibility of not only solving problems that could already be solved with a classical computer, but also new problems that could not be solved before. Why is it that a quantum computer can only solve the same problems?

Raphael
  • 73,212
  • 30
  • 182
  • 400
user2609980
  • 305
  • 2
  • 6

5 Answers5

23

Because a quantum computer can be simulated using a classical computer: it's essentially just linear algebra. Given a probability distribution for each of the qubits, you can keep track of how each quantum gate modifies those distributions as time progresses. This isn't very efficient (which is why people want to build actual quantum computers) but it works.

David Richerby
  • 82,470
  • 26
  • 145
  • 239
11

Classical computers are already Turing complete, i.e. they can calculate everything that a Turing machine can (a theoretical computer model from Computer Science). According to the Church–Turing thesis Turing completeness includes all functions which can be calculated using any mechanical process. So if this thesis is true, any computer you could possibly build could never solve more problems than a classical one (disregarding efficiency).

P.S.: Even if you could build a computer that would solve more problems that a classical one, you would never know if that machine is working correctly, because if the machine could generate a proof for the solution for every input verifiable by a classical computer (or a turing machine or a human), the classical computer could just create all possible texts until one text describing such a proof is found.

Konrad Höffner
  • 218
  • 3
  • 8
1

Actually, it depends of what you mean by "solving a problem". As previously stated, a classical computer is already Turing complete and can decide any decidable problem in finite time. There is no such thing of a computer able to decide an undecidable problem in finite time (that would actually lead to a contradiction).
[Edit: as David Richerby stated in the comments, that hasn't been proved (only conjectured)
However most of the undecidability proofs can be repeated for any reasonable kind of computer (this doesn't prove the conjecture, but in my opinion it's a good hint)
The good argument regarding why a quantum computer couldn't decide more problems than a classic Turing machine has already been given by David Richerby (you can simulate a quantum Turing machine with a classical Turing machine)]

Hence a classical computer can theoretically solve any "reasonable" problem... given enough time (it will be finite, it doesn't mean it will be fast).

The wikipedia quote doesn't talk about time at all, and a quantum computer is expected to solve some problems faster than a classical computer. By "faster", i mean that some problems which would have taken millenia to decide on a classical computer could be solved in minutes on a quantum computer (provided such a computer can be built, we don't know for sure yet, although there are promising results, and provided BQP != BPP which is a weaker hypothesis than NP != P if i'm not mistaken).

For instance, the famous Shor's algorithm shows that factoring an integer in its prime factors is in BQP (Bounded error Quantum Polynomial time) whereas that problem isn't believed to be in P (Polynomial time) or BPP (Bounded error Probabilistic Polynomial time). That doesn't mean factoring an integer on a classical computer is impossible, but it will be a time consuming task, and for sufficiently big numbers the computation may exceed any reasonable time limit (like the age of the universe; of course that's true of almost any computation given a sufficiently big entry, but that would happen much faster for problems outside of BPP on a classical computer than for problems inside of BPP).

So, even though all decidable problems can be solved on classical computers, some problems are still practically out of reach because of unreasonable computation times. A quantum computer may allow us to decide such problems in more reasonable time.

Caninonos
  • 136
  • 6
1

The roadblock to more powerful computers isn't speed; it's space. Technically, classical computers aren't even really equivalent to Turing machines. The reason for this is that a Turing machine has an infinite tape, and although we can simulate very large tapes, we can't go infinite. This matters more than you might think. There are entire classes of problems where we know how they could be solved if we had infinite space to work with, but are currently stymied in actually solving them by the finite-space problem. There are other problems that we can currently solve slowly, but could be solved much more quickly if we had infinite space.

A Turing-like machine with a finite tape (the thing we're usually really simulating when we talk about "Turing machines" in this context) is called a linear bounded automaton, and it's a closer match for classical computing than true Turing machines are. However, the difference between finite and infinite is pretty stark: LBAs just plain aren't as powerful as true Turing machines.

Quantum computers don't solve the finite-space problem, and they don't try to. They can tackle many computations at once, but we can already simulate that on classical machines. Quantum machines don't do more; they just do it faster.

-5

One thing that quantum computers should be able to do that regular computers will never do is to use quantum entanglement.

Quantum entanglement is a property that allows to communicate instantly across the whole universe, without transmitting anything. The communication cannot be intercepted or tampered with. Also I can communicate several chips. This means that I can communicate the CPU with the RAM and with the SSD instantly.

So you could have super fast computers. And if I buy some special chip, for example from Amazon Quantum Web Servers, then I could use their infrastructure to perform computations AS IF they were running on my machine... no communication overhead... at least theoretically...

Having a CPU perform all computations in parallel like solving the traveling salesman problem... that makes no sense... if a CPU could do that, all possible results would come out at once... a giant map reduce done in a single chip... how do I pick the right answer?

I mean if the correct answer is 5, but it spells out 5,6,7,8,9,10,15,20,30,40,50,60,70,80... etc. at the same time, how can I know that the correct value is 5?