For questions about practical computers or processors that run on a quantum architecture. This is for questions about the machines themselves, not just any computing that could take place on one. You may also use this tag for questions on realistic implementations of quantum channels. DO NOT use for questions about simulation or emulation of quantum computers, or cloud-based quantum computing services like the IBM Q Experience.
Quantum computers are devices which, exploiting intrinsically quantum mechanical phenomena, are believed to be able to perform certain operations more efficiently. While the basic unit of information that is manipulated by classical computers is the bit, quantum computers manipulate quantum states, often in the form two-level quantum systems typically referred to as qubits.
Several models for quantum computation have been proposed and are actively researched. Being the field of quantum computation still not yet fully mature, no computational model is indisputably superior to the others. Arguably the most known one is the circuit model. Among the others, there are measurement-based quantum computation, quantum annealing, and continuous variable quantum computation.
In gate-based quantum computation, gates are represented by matrices, and include types such as the Pauli X (also termed "NOT"), Y, and Z (pronounced "zed") gates, which are single-qubit gates, multiple-qubit gates like the controlled-NOT or CNOT gate and Toffoli gate, and others. The set of single-qubit gates plus the CNOT gate forms a set of universal gates.
The quantum computer's entire state can be represented by a single vector:
$$|\psi\rangle = \alpha|0...0\rangle + \beta|0...1\rangle + .... \zeta|1...1\rangle$$
Where $\alpha$ through $\zeta$ (and there can be more beyond this) represent the amplitudes of the state, and determine the probability of a particular state resulting upon collapse of the wavefunction upon measurement. Each of the items between the $|\,\rangle$ represents a particular possible state that can occur upon measurement.
When measurement occurs, the qubits become normal, classical bits, which is part of what makes writing algorithms for quantum computers so difficult. The advantage in a quantum computer lies in the fact that the whole system can be, and in fact must be, represented by a single vector. This means that all the qubits share information, and further, any one gate, even if a single-qubit gate, has repercussions on the whole system.
There are many different physical realizations of the quantum computer. There are optical quantum computers, which use photons as qubits, and things like Fabry-Perot cavities, mirrors, beamsplitters, phase shifters, and so forth for gates. There are superconducting quantum computers, which use Josephson Junctions. There are ion-trap quantum computers, which use ions for qubits and hold those still with strong magnetic fields, and then manipulate the state of the ions with lasers. A list of realizations can be found here under "Quantum Computer Science" and "Physical Implementations".
- Wikipedia article
- Nielsen and Chuang's Quantum Computing and Quantum Information is the standard textbook for the field.
- Michael Nielsen has a series of videos on YouTube called Quantum Computing for the Determined.
- It is recommended that you have a base understanding of linear algebra in particular if you wish to learn this subject. Some understanding of quantum mechanics and computer science will be highly useful and something you will at minimum have to learn upon the way.