Quantum logic gate
In quantum computing and specifically the quantum circuit model of computation, a quantum logic gate (or simply quantum gate) is a basic quantum circuit operating on a small number of qubits. They are the building blocks of quantum circuits, like classical logic gates are for conventional digital circuits.
Unlike many classical logic gates, quantum logic gates are reversible. However, it is possible to perform classical computing using only reversible gates. For example, the reversible Toffoli gate can implement all Boolean functions, often at the cost of having to use ancilla bits. The Toffoli gate has a direct quantum equivalent, showing that quantum circuits can perform all operations performed by classical circuits.
Contents
 1 Representation
 2 Notable examples
 2.1 Hadamard (H) gate
 2.2 PauliX gate
 2.3 PauliY gate
 2.4 PauliZ ([math]R_\pi[/math]) gate
 2.5 The Pauli matrices are involutory
 2.6 Square root of NOT gate (√NOT)
 2.7 Phase shift ([math]R_\phi[/math]) gates
 2.8 Swap (SWAP) gate
 2.9 Square root of Swap gate (√SWAP)
 2.10 Controlled (cX cY cZ) gates
 2.11 Toffoli (CCNOT) gate
 2.12 Fredkin (CSWAP) gate
 2.13 Ising (XX) coupling gate
 2.14 Ising (YY) coupling gate
 2.15 Ising (ZZ) coupling gate
 2.16 Deutsch ([math]D_\theta[/math]) gate
 3 Universal quantum gates
 4 Circuit composition
 5 Measurement
 6 Logic function synthesis
 7 History
 8 See also
 9 References
Representation
Quantum logic gates are represented by unitary matrices. The number of qubits in the input and output of the gate must be equal; a gate which acts on [math]n[/math] qubits is represented by a [math]2^n \times 2^n[/math] unitary matrix. The quantum states that the gates act upon are vectors in [math]2^n[/math] complex dimensions. The base vectors are the possible outcomes if measured, and a quantum state is a linear combination of these outcomes. The most common quantum gates operate on spaces of one or two qubits, just like the common classical logic gates operate on one or two bits.
Quantum states are typically represented by "kets", from a mathematical notation known as braket.
The vector representation of a single qubit is:
 [math]a\rangle = v_0  0 \rangle + v_1  1 \rangle \rightarrow \begin{bmatrix} v_0 \\ v_1 \end{bmatrix}[/math],
Here, [math]v_0[/math] and [math]v_1[/math] are the complex probability amplitudes of the qubit. These values determine the probability of measuring a 0 or a 1, when measuring the state of the qubit. See measurement below for details.
The value zero is represented by the ket [math]0\rangle = \begin{bmatrix} 1 \\ 0 \end{bmatrix}[/math], and the value one is represented by the ket [math]1\rangle = \begin{bmatrix} 0 \\ 1\end{bmatrix}[/math].
The tensor product (or kronecker product) is used to combine quantum states. The combined state of two qubits is the tensor product of the two qubits. The tensor product is denoted by the symbol [math]\otimes[/math].
The vector representation of two qubits is:
 [math] a b \rangle =  a \rangle \otimes  b \rangle = v_{00}  00 \rangle + v_{01}  0 1 \rangle + v_{10}  1 0 \rangle + v_{11}  1 1 \rangle\rightarrow \begin{bmatrix} v_{00} \\ v_{01} \\ v_{10} \\ v_{11} \end{bmatrix} [/math],
The action of the gate on a specific quantum state is found by multiplying the vector [math]\psi_1\rangle[/math] which represents the state, by the matrix [math]U[/math] representing the gate. The result is a new quantum state [math]\psi_2\rangle[/math].
 [math]U\psi_1\rangle = \psi_2\rangle[/math]
Notable examples
Hadamard (H) gate
The Hadamard gate acts on a single qubit. It maps the basis state [math]0\rangle[/math] to [math]\frac{0\rangle + 1\rangle}{\sqrt{2}}[/math] and [math]1\rangle[/math] to [math]\frac{0\rangle  1\rangle}{\sqrt{2}}[/math], which means that a measurement will have equal probabilities to become 1 or 0 (i.e. creates a superposition). It represents a rotation of [math]\pi[/math] about the axis [math](\hat{x}+\hat{z})/\sqrt{2}[/math] at the Bloch sphere. Equivalently, it is the combination of two rotations, [math]\pi[/math] about the Zaxis followed by [math]\pi/2[/math] about the Yaxis. It is represented by the Hadamard matrix:
 [math] H = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix}[/math].
The Hadamard gate is the onequbit version of the quantum Fourier transform.
Since [math]HH^\dagger=I[/math] where I is the identity matrix, H is a unitary matrix (like all other quantum logical gates). Also, it is its own unitary inverse, [math]H^{1} = H^\dagger[/math].
PauliX gate
The PauliX gate acts on a single qubit. It is the quantum equivalent of the NOT gate for classical computers (with respect to the standard basis [math]0\rangle[/math], [math]1\rangle[/math], which distinguishes the Zdirection; in the sense that a measurement of the eigenvalue +1 corresponds to classical 1/true
and 1 to 0/false
). It equates to a rotation around the Xaxis of the Bloch sphere by [math]\pi[/math] radians. It maps [math]0\rangle[/math] to [math]1\rangle[/math] and [math]1\rangle[/math] to [math]0\rangle[/math]. Due to this nature, it is sometimes called bitflip. It is represented by the Pauli X matrix:
 [math] X = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}[/math].
PauliY gate
The PauliY gate acts on a single qubit. It equates to a rotation around the Yaxis of the Bloch sphere by [math]\pi[/math] radians. It maps [math]0\rangle[/math] to [math]i1\rangle[/math] and [math]1\rangle[/math] to [math]i0\rangle[/math]. It is represented by the Pauli Y matrix:
 [math] Y = \begin{bmatrix} 0 & i \\ i & 0 \end{bmatrix}[/math].
PauliZ ([math]R_\pi[/math]) gate
The PauliZ gate acts on a single qubit. It equates to a rotation around the Zaxis of the Bloch sphere by [math]\pi[/math] radians. Thus, it is a special case of a phase shift gate (which are described in a next subsection) with [math]\phi=\pi[/math]. It leaves the basis state [math]0\rangle[/math] unchanged and maps [math]1\rangle[/math] to [math]1\rangle[/math]. Due to this nature, it is sometimes called phaseflip. It is represented by the Pauli Z matrix:
 [math] Z = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}[/math].
The Pauli matrices are involutory
The square of a Pauli matrix is the identity matrix.
 [math]I^2 = X^2 = Y^2 = Z^2 = iXYZ = I[/math]
Square root of NOT gate (√NOT)
The square root of NOT gate (or square root of PauliX, [math]\sqrt{X}[/math]) acts on a single qubit. It maps the basis state [math]0\rangle[/math] to [math]\frac{(1+i)0\rangle+(1i)1\rangle}{2}[/math] and [math]1\rangle[/math] to [math]\frac{(1i)0\rangle+(1+i)1\rangle}{2}[/math].
 [math]\sqrt{X} = \sqrt{NOT} = \frac{1}{2} \begin{bmatrix} 1+i & 1i \\ 1i & 1+i \end{bmatrix}[/math].
 [math]X=(\sqrt{NOT})^2 = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}[/math].
Squared rootgates can be constructed for all other gates by finding a unitary matrix that, multiplied by itself, yields the gate one wishes to construct the squared root gate of. All rational exponents of all gates can be found similarly.
Phase shift ([math]R_\phi[/math]) gates
This is a family of singlequbit gates that leave the basis state [math]0\rangle[/math] unchanged and map [math]1\rangle[/math] to [math]e^{i\phi}1\rangle[/math]. The probability of measuring a [math]0\rangle[/math] or [math]1\rangle[/math] is unchanged after applying this gate, however it modifies the phase of the quantum state. This is equivalent to tracing a horizontal circle (a line of latitude) on the Bloch sphere by [math]\phi[/math] radians.
 [math] R_\phi = \begin{bmatrix} 1 & 0 \\ 0 & e^{i \phi} \end{bmatrix} [/math]
where [math]\phi[/math] is the phase shift. Some common examples are the T gate where [math]\phi = \frac{\pi}{4}[/math], the phase gate (written S, though S is sometimes used for SWAP gates) where [math]\phi = \frac{\pi}{2}[/math] and the PauliZ gate where [math]\phi = \pi[/math].
Swap (SWAP) gate
The swap gate swaps two qubits. With respect to the basis [math]00\rangle[/math], [math]01\rangle[/math], [math]10\rangle[/math], [math]11\rangle[/math], it is represented by the matrix:
 [math] \mbox{SWAP} = \begin{bmatrix} 1&0&0&0\\0&0&1&0\\0&1&0&0\\0&0&0&1\end{bmatrix} [/math].
Square root of Swap gate (√SWAP)
The [math]\sqrt{\mbox{SWAP}}[/math] gate performs halfway of a twoqubit swap. It is universal such that any manyqubit gate can be constructed from only [math]\sqrt{\mbox{SWAP}}[/math] and single qubit gates. The [math]\sqrt{\mbox{SWAP}}[/math] gate is not, however maximally entangling; more than one application of it is required to produce a Bell state from product states. With respect to the basis [math]00\rangle[/math], [math]01\rangle[/math], [math]10\rangle[/math], [math]11\rangle[/math], it is represented by the matrix:
 [math] \sqrt{ \mbox{SWAP} } = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \frac{1}{{2}} (1+i) & \frac{1}{{2}} (1i) & 0 \\ 0 & \frac{1}{{2}} (1i) & \frac{1}{{2}} (1+i) & 0 \\ 0 & 0 & 0 & 1 \\ \end{bmatrix} [/math].
Controlled (cX cY cZ) gates
Controlled gates act on 2 or more qubits, where one or more qubits act as a control for some operation. For example, the controlled NOT gate (or CNOT or cX) acts on 2 qubits, and performs the NOT operation on the second qubit only when the first qubit is [math]1\rangle[/math], and otherwise leaves it unchanged. With respect to the basis [math]00\rangle[/math], [math]01\rangle[/math], [math]10\rangle[/math], [math]11\rangle[/math], it is represented by the matrix:
 [math] \mbox{CNOT} = cX = \begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{bmatrix} [/math].
The CNOT (or controlledX) gate can be described as the gate that maps [math]a,b\rangle[/math] to [math]a,a \oplus b\rangle[/math].
More generally if U is a gate that operates on single qubits with matrix representation
 [math] U = \begin{bmatrix} u_{00} & u_{01} \\ u_{10} & u_{11} \end{bmatrix} [/math],
then the controlledU gate is a gate that operates on two qubits in such a way that the first qubit serves as a control. It maps the basis states as follows.
 [math]  0 0 \rangle \mapsto  0 0 \rangle [/math]
 [math]  0 1 \rangle \mapsto  0 1 \rangle [/math]
 [math]  1 0 \rangle \mapsto  1 \rangle \otimes U 0 \rangle =  1 \rangle \otimes \left(u_{00} 0 \rangle + u_{10} 1 \rangle\right) [/math]
 [math]  1 1 \rangle \mapsto  1 \rangle \otimes U 1 \rangle =  1 \rangle \otimes \left(u_{01} 0 \rangle + u_{11} 1 \rangle\right) [/math]
The matrix representing the controlled U is
 [math] \mbox{C}(U) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & u_{00} & u_{01} \\ 0 & 0 & u_{10} & u_{11} \end{bmatrix}[/math].
When U is one of the Pauli matrices, σ_{x}, σ_{y}, or σ_{z}, the respective terms "controlledX", "controlledY", or "controlledZ" are sometimes used.^{[1]} Sometimes this is shortened to just cX, cY and cZ.
Toffoli (CCNOT) gate
The Toffoli gate, named after Tommaso Toffoli; also called CCNOT gate or Deutsch [math]D(\pi/2)[/math] gate; is a 3bit gate, which is universal for classical computation but not for quantum computation. The quantum Toffoli gate is the same gate, defined for 3 qubits. If we limit ourselves to only accepting input qubits that are [math]0\rangle[/math] and [math]1\rangle[/math], then if the first two bits are in the state [math]1\rangle[/math] it applies a PauliX (or NOT) on the third bit, else it does nothing. It is an example of a controlled gate. Since it is the quantum analog of a classical gate, it is completely specified by its truth table. The Toffoli gate is universal when combined with the single qubit Hadamard gate.^{[2]}
Truth table  Matrix form  


[math] \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ \end{bmatrix} [/math] 
It can be also described as the gate which maps [math]a, b, c\rangle[/math] to [math]a, b, c\oplus ab\rangle[/math].
Fredkin (CSWAP) gate
The Fredkin gate (also CSWAP or cS gate), named after Edward Fredkin, is a 3bit gate that performs a controlled swap. It is universal for classical computation. It has the useful property that the numbers of 0s and 1s are conserved throughout, which in the billiard ball model means the same number of balls are output as input.
Truth table  Matrix form  


[math] \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix} [/math] 
Ising (XX) coupling gate
The Ising gate (or XX gate) is a 2qubit gate that is implemented natively in some trappedion quantum computers.^{[3]}^{[4]} It is defined as
 [math] XX_\phi = \cos(\phi)I\otimes Ii \sin(\phi)\sigma_x\otimes\sigma_x = \begin{bmatrix} \cos(\phi) & 0 & 0 & i \sin(\phi) \\ 0 &\cos(\phi) & i \sin(\phi) & 0 \\ 0 & i \sin(\phi) & \cos(\phi) & 0 \\ i \sin(\phi) & 0 & 0 & \cos(\phi) \\ \end{bmatrix} [/math],
Ising (YY) coupling gate
 [math] YY_\phi = \begin{bmatrix} \cos(\phi) & 0 & 0 & i\sin(\phi) \\ 0 & \cos(\phi) & i\sin(\phi) & 0 \\ 0 & i\sin(\phi) & \cos(\phi) & 0 \\ i\sin(\phi) & 0 & 0 & \cos(\phi) \\ \end{bmatrix} [/math],
Ising (ZZ) coupling gate
 [math] ZZ_\phi = \begin{bmatrix} e^{i \phi/2} & 0 & 0 & 0 \\ 0 & e^{i \phi/2} & 0 & 0 \\ 0 & 0 & e^{i \phi/2} & 0 \\ 0 & 0 & 0 & e^{i \phi/2} \\ \end{bmatrix} [/math]^{[5]},
Deutsch ([math]D_\theta[/math]) gate
The Deutsch (or [math]D_\theta[/math]) gate, named after physicist David Deutsch is a threequbit gate. It is defined as
 [math] a,b,c\rangle \mapsto \begin{cases} i \cos(\theta) a,b,c\rangle + \sin(\theta) a,b,1c\rangle & \mbox{for }a=b=1 \\ a,b,c\rangle & \mbox{otherwise.}\end{cases}[/math]
Unfortunately, a working Deutsch gate has remained out of reach, due to lack of a protocol. However, a method was proposed to realize such a Deutsch gate with dipoledipole interaction in neutral atoms.
Universal quantum gates
Informally, a set of universal quantum gates is any set of gates to which any operation possible on a quantum computer can be reduced, that is, any other unitary operation can be expressed as a finite sequence of gates from the set. Technically, this is impossible with anything less than an uncountable set of gates since the number of possible quantum gates is uncountable, whereas the number of finite sequences from a finite set is countable. To solve this problem, we only require that any quantum operation can be approximated by a sequence of gates from this finite set. Moreover, for unitaries on a constant number of qubits, the Solovay–Kitaev theorem guarantees that this can be done efficiently.
A common universal gate set is the Clifford + T gate set, which is composed of the CNOT, H, S and T gates. (The Clifford set alone is not universal and can be efficiently simulated classically by the GottesmanKnill theorem.)
A singlegate set of universal quantum gates can also be formulated using the threequbit Deutsch gate [math]D(\theta)[/math], which performs the transformation^{[6]}
 [math] a,b,c\rangle \mapsto \begin{cases} i \cos(\theta) a,b,c\rangle + \sin(\theta) a,b,1c\rangle & \mbox{for }a=b=1 \\ a,b,c\rangle & \mbox{otherwise.}\end{cases}[/math]
A universal logic gate for reversible classical computing, the Toffoli gate, is reducible to the Deutsch gate, [math]D(\begin{matrix} \frac{\pi}{2} \end{matrix})[/math], thus showing that all reversible classical logic operations can be performed on a universal quantum computer.
There also exists a single twoqubit gate sufficient for universality, given it can be applied to any pairs of qubits [math](k,k+1) \mod n[/math] on a circuit of width [math]n[/math].^{[7]}
Another set of universal quantum gates consists of the Ising gate and the phaseshift gate. These are the set of gates natively available in some trappedion quantum computers.^{[4]}
Circuit composition
Serially wired gates
Assume that we have two gates A and B, that both act on [math]n[/math] qubits. When B is put after A (a series circuit), then the effect of the two gates can be described as a single gate C.
[math]C = B \cdot A[/math]
Where [math]\cdot[/math] is the usual matrix multiplication. The resulting gate C will have the same dimensions as A and B. The order in which the gates would appear in a circuit diagram is reversed when multiplying them together.
For example, putting the Pauli X gate after the Pauli Y gate, both of which act on a single qubit, can be described as a single combined gate C:
[math]C = X \cdot Y = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} \cdot \begin{bmatrix} 0 & i \\ i & 0 \end{bmatrix} = \begin{bmatrix} i & 0 \\ 0 & i \end{bmatrix}[/math]
The product symbol ([math]\cdot[/math]) is often omitted.
Parallel gates
The tensor product (or kronecker product) of two quantum gates is the gate that is equal to the two gates in parallel.
The Hadamard transform
The gate [math]H_2 = H \otimes H[/math] is the Hadamard gate ([math]H[/math]) applied in parallel on 2 qubits. It can be written as [math]H_2 = H \otimes H = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} \otimes \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} = \frac{1}{2} \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \end{bmatrix}[/math]
This "twoqubit parallel Hadamard gate" will when applied to, for example, the twoqubit zerovector ([math]00\rangle[/math]), create a quantum state that have equal probability of being observed in any of its four possible outcomes; 00, 01, 10 and 11. We can write this operation as:
[math]H_2 00\rangle = \frac{1}{2} \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix} = \frac{1}{2} \begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \end{bmatrix} = \frac{1}{2} 00\rangle + \frac{1}{2} 01\rangle +\frac{1}{2} 10\rangle +\frac{1}{2} 11\rangle = \frac{00\rangle + 01\rangle + 10\rangle + 11\rangle}{2}[/math]
Here the amplitude for each measurable state is [math]\frac{1}{2}[/math]. The probability to observe any state is the square of the absolute value of the measurable states amplitude, which in the above example means that there is one in four that we observe any one of the individual four cases. See measurement for details.
[math]H_2[/math] performs the Hadamard transform on two qubits. Similarly the gate [math]\underbrace{ H \otimes H \otimes \dots \otimes H }_{n\text{ times}} = \bigotimes_1^n H = H^{\otimes n} = H_n[/math] performs a Hadamard transform on a register of [math]n[/math] qubits.
When applied to a register of [math]n[/math] qubits all initialized to [math]0\rangle[/math], the Hadamard transform puts the quantum register into a superposition with equal probability of being measured in any of its [math]2^n[/math] possible states:
[math]\bigotimes_0^{n1} H \bigotimes_0^{n1} 0\rangle = \frac{1}{\sqrt{2^n}} \begin{bmatrix} 1 \\ 1 \\ \vdots \\ 1 \end{bmatrix} = \frac{1}{\sqrt{2^n}} \Big( 0\rangle + 1\rangle + \dots + 2^n1\rangle \Big)= \frac{1}{\sqrt{2^n}}\sum_{i=0}^{2^{n}1}i\rangle[/math]
This state is a uniform superposition and it is generated as the first step in some search algorithms, for example in amplitude amplification and phase estimation.
Measuring this state results in a random number between [math]0\rangle[/math] and [math]2^n1\rangle[/math]. How random the number is depends on the fidelity of the logic gates. If not measured, it is a quantum state with equal probability amplitude [math]\frac{1}{\sqrt{2^n}}[/math] for each of its possible states.
The Hadamard transform acts on a register [math]\psi\rangle[/math] with [math]n[/math] qubits such that [math]\psi\rangle = \bigotimes_{i=0}^{n1}\psi_i\rangle[/math] as follows: [math]\bigotimes_0^{n1}H\psi\rangle = \bigotimes_{i=0}^{n1}\frac{0\rangle + (1)^{\psi_i}1\rangle}{\sqrt{2}} = \frac{1}{\sqrt{2^n}}\bigotimes_{i=0}^{n1}\Big(0\rangle + (1)^{\psi_i}1\rangle\Big) = H\psi_0\rangle \otimes H\psi_1\rangle \otimes \cdots \otimes H\psi_{n1}\rangle[/math]
Application on entangled states
If two or more qubits are viewed as a single quantum state, this combined state is equal to the tensor product of the constituent qubits. Any state that can be written as a tensor product from the constituent subsystems are called separable states. On the other hand, an entangled state is any state that cannot be tensorfactorized, or in other words: An entangled state can not be written as a tensor product of its constituent qubits states. Special care must be taken when applying gates to constituent qubits that make up entangled states.
If we have a set of N qubits that are entangled and wish to apply a quantum gate on M < N qubits in the set, we will have to extend the gate to take N qubits. This can be done by combining the gate with an identity matrix such that their tensor product becomes a gate that act on N qubits. The identity matrix ([math]I[/math]) is a representation of the gate that maps every state to itself (i.e., does nothing at all). In a circuit diagram the identity gate or matrix will appear as just a wire.
For example, the Hadamard gate ([math]H[/math]) acts on a single qubit, but if we for example feed it the first of the two qubits that constitute the entangled Bell state [math]\frac{00\rangle + 11\rangle}{\sqrt{2}}[/math], we cannot write that operation easily. We need to extend the Hadamard gate [math]H[/math] with the identity gate [math]I[/math] so that we can act on quantum states that span two qubits:
[math]K = H \otimes I = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} \otimes \begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix} = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1\end{bmatrix}[/math]
The gate [math]K[/math] can now be applied to any twoqubit state, entangled or otherwise. The gate [math]K[/math] will leave the second qubit untouched and apply the Hadamard transform to the first qubit. If applied to the Bell state in our example, we may write that as:
[math]K \frac{00\rangle + 11\rangle}{\sqrt{2}} = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1\end{bmatrix} \frac{1}{\sqrt{2}} \begin{bmatrix}1 \\ 0 \\ 0 \\ 1\end{bmatrix} = \frac{1}{2} \begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \end{bmatrix} = \frac{00\rangle + 01\rangle + 10\rangle  11\rangle}{2}[/math]
The time complexity for multiplying two [math]n \times n[/math]matrices is at least [math]\Omega(n^2 log(n))[/math]^{[8]}. Because the size of a gate that operates on [math]q[/math] qubits is [math]2^q \times 2^q[/math] it means that the time complexity for simulating a step in a quantum circuit (by means of multiplying the gates) that operates on generic entangled states is [math]\Omega({2^q}^2 log({2^q}))[/math]. For this reason it is believed to be intractable to simulate large entangled quantum systems using classical computers. The Clifford gates is an example of a set of gates that however can be efficiently simulated on classical computers.
Unitary inversion of gates
Because all quantum logical gates are reversible, any composition of multiple gates is also reversible. All products and tensor products of unitary matrices are also unitary matrices. This means that it is possible to construct an inverse of all algorithms and functions, as long as they contain only gates. (Initialization, measurement, I/O and spontaneous decoherence are side effects in quantum computers. Gates however are purely functional and bijective.)
If a function [math]F[/math] is a product of [math]m[/math] gates ([math]F = A_1 \cdot A_2 \cdot ... \cdot A_m[/math]), the unitary inverse of the function, [math]F^\dagger[/math], can be constructed:
Because [math](UV)^\dagger = V^\dagger U^\dagger[/math] we have, after recursive application on itself
[math]F^\dagger = \left(\prod_{0\lt i\le m} A_i\right)^\dagger = \prod_{0\le i\lt m} A^\dagger_{mi} = A_m^\dagger \cdot ... \cdot A_2^\dagger \cdot A_1^\dagger[/math]
Similarly if [math]G=A\otimes B[/math] (the function [math]G[/math] consists of two gates [math]A[/math] and [math]B[/math] in parallel) then [math]G^\dagger = (A \otimes B)^\dagger = A^\dagger \otimes B^\dagger[/math]
The dagger operator ([math]\dagger[/math]) is the complex conjugate of the transpose. It is also called the Hermitian adjoint.
Gates that are their own unitary inverses are called Hermitian or selfadjoint operators. Some elementary gates such as the Hadamard and the Pauli gates are Hermitian operators, while others like the phase shift (e.g. S, T) and the Ising (XX) gates are not.
Since [math]F[/math] is a unitary matrix, [math]F^\dagger F = FF^\dagger = I[/math] and [math]F^\dagger = F^{1}[/math]
For example, an algorithm for addition can in some situations be used for subtraction, if it is being "run in reverse", as its unitary inverse. The inverse quantum fourier transform is the unitary inverse. Unitary inverses can also be used for uncomputation. Programming languages for quantum computers, such as Microsoft's Q#^{[9]} and Bernhard Ömer's QCL, contain function inversion as programming concepts.
Measurement
Measurement (sometimes called observation) is irreversible and therefore not a quantum gate, because it assigns the observed variable to a single value. Measurement takes a quantum state and projects it to one of the base vectors, with a likelihood equal to the square of the vector's depth (the norm or modulus) along that base vector. This is a stochastic nonreversible operation as it sets the quantum state equal to the base vector that represents the measured state (the state "collapses" to a definite single value). Why and how, or even if this is so, is called the measurement problem.
The probability of measuring a value with probability amplitude [math]\phi[/math] is [math]1 \ge \phi^2 \ge 0[/math].
Measuring a single qubit, whose quantum state is represented by the vector [math]a0\rangle + b1\rangle = \begin{bmatrix} a \\ b \end{bmatrix}[/math], will result in [math]0\rangle[/math] with probability [math]a^2[/math], and in [math]1\rangle[/math] with probability [math]b^2[/math].
For example, measuring a qubit with the quantum state [math]\frac{0\rangle i1\rangle }{\sqrt{2}} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ i \end{bmatrix}[/math] will yield with equal probability either [math]0\rangle[/math] or [math]1\rangle[/math].
A quantum state [math]\Psi\rangle[/math] that spans [math]n[/math] qubits can be written as a vector in [math]2^n[/math] complex dimensions: [math]\Psi\rangle \in \mathbb C^{2^n}[/math]. This is because the tensor product of [math]n[/math] qubits is a vector in [math]2^n[/math] dimensions. This way, a register of [math]n[/math] qubits can be measured to [math]2^n[/math] distinct states, similar to how a register of [math]n[/math] classical bits can hold [math]2^n[/math] distinct states. Unlike with the bits of classical computers, quantum states can have nonzero probability amplitudes in multiple measurable values simultaneously. This is called superposition.
The sum of all probabilities for all outcomes must always be equal to [math]1[/math]: Another way to say this is that the pythagorean theorem generalized to [math]\mathbb C^{2^n}[/math] has that all quantum states [math]\Psi\rangle[/math] with [math]n[/math] qubits must satisfy [math]1 = \sum_{x=0}^{2^n1}a_x^2[/math], where [math]a_x[/math] is the probability amplitude for measurable state [math]x\rangle[/math].
A geometric interpretation of this is that the possible valuespace of a quantum state [math]\Psi\rangle[/math] with [math]n[/math] qubits is the surface of a unit sphere in [math]\mathbb C^{2^n}[/math] and that the unitary transforms (i.e. quantum logic gates) applied to it are rotations on the sphere. Measurement is then a probabilistic projection, or the shadow, of the points at the surface of this complex sphere onto the basis vectors that span the space (and labels the outcomes).
In many cases the space is represented as a Hilbert space [math]\mathcal{H}[/math] rather than some specific [math]2^n[/math]dimensional complex space. The number of dimensions (defined by the basis vectors, and thus also the possible outcomes from measurement) is then often implied by the operands. In Grover's algorithm, Lov named this vector set "the database".
The selection of basis vectors against to measure a quantum state will influence the outcome of the measurement.^{[10]} See Von Neumann entropy for details. In this article, we always use the computational basis, which means that we have labeled the [math]2^n[/math] basis vectors of an [math]n[/math]qubit register [math]0\rangle, 1\rangle, 2\rangle, \cdots, 2^n1\rangle[/math], or use the binary representation [math]0_{10}\rangle = 0\dots 00_{2}\rangle, 1_{10}\rangle = 0\dots01_{2}\rangle, 2_{10}\rangle = 0\dots10_{2}\rangle, \cdots, 2^n1\rangle = 111\dots1_{2}\rangle[/math].
In the quantum computing domain, it is generally assumed that the basis vectors constitute an orthonormal basis.
An example of usage of an alternative measurement basis is in the BB84 cipher.
The effect of measurement on entangled states
If two quantum registers are entangled (their combined state cannot be expressed as a tensor product), measurement of one register affects or reveals the state of the other register by partially or entirely collapsing its state too. This effect can be used for computation, and is used in many algorithms.
The HadamardCNOT combination acts on the zerostate as follows: [math]CNOT(H \otimes I)00\rangle = \Bigg(\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{bmatrix} \Big(\frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} \otimes \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}\Big)\Bigg) \begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix} = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 0 \\ 0 \\ 1 \end{bmatrix} = \frac{00\rangle + 11\rangle}{\sqrt{2}}[/math]
This resulting state is the Bell state [math]\frac{00\rangle + 11\rangle}{\sqrt{2}} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 0 \\ 0 \\ 1\end{bmatrix}[/math]. It cannot be described as a tensor product of two qubits. There is no solution for
[math]\begin{bmatrix} a \\ b \end{bmatrix} \otimes \begin{bmatrix} c \\ d \end{bmatrix} = \frac{1}{\sqrt{2}}\begin{bmatrix} ac \\ ad \\ bc \\ bd \end{bmatrix} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 0 \\ 0 \\ 1 \end{bmatrix}[/math]
because for example [math]c[/math] needs to be both nonzero and zero in the case of [math]ac[/math] and [math]bc[/math].
The quantum state spans the two qubits. This is called entanglement. The GHZ state is a similar entangled quantum state that spans three or more qubits. Measuring one of the two qubits that make up this Bell state will result in that the other qubit logically must have the same value, both must be the same: Either it will be found in the state [math]00\rangle[/math], or in the state [math]11\rangle[/math]. If we measure one of the qubits to be for example [math]1\rangle[/math], then the other qubit must also be [math]1\rangle[/math], because their combined state became [math]11\rangle[/math]. Measurement of one of the qubits collapses the entire quantum state, that span the two qubits.
This type of valueassignment occurs instantaneously over any distance and this has as of 2018 been experimentally verified by QUESS for distances of up to 1200 kilometers.^{[11]}^{[12]}^{[13]} That the phenomena appears to happen instantaneously as opposed to the time it would take to traverse the distance separating the qubits at the speed of light is called the EPR paradox, and it is an open question in physics how to resolve this. Originally it was solved by giving up the assumption of local realism, but other interpretations have also emerged. For more information see the Bell test experiments. The nocommunication theorem proves that this phenomena cannot be used for fasterthanlight communication of classical information.
Measurement on registers with pairwise entangled qubits
A register is a sequence of qubits, similar in analogy to a classic CPU register.
Take a register A with [math]n[/math] qubits all initialized to [math]0\rangle[/math], and feed it through a parallel Hadamard gate [math]\bigotimes_{1}^{n} H[/math]. Register A will then enter the state [math]\frac{1}{\sqrt{2^n}}\sum_{i=0}^{2^{n}1}i\rangle[/math] that have equal probability of when measured to be in any of its [math]2^n[/math] possible states; [math]0\rangle[/math] to [math]2^n1\rangle[/math]. Take a second register B, also with [math]n[/math] qubits initialized to [math]0\rangle[/math] and pairwise CNOT its qubits with the qubits in register A, such that for each [math]i[/math] the qubits [math]A_{i}[/math] and [math]B_{i}[/math] forms the state [math]A_{i}B_{i}\rangle = \frac{00\rangle + 11\rangle}{\sqrt{2}}[/math]
If we now measure the qubits in register A, then register B will be found to contain the same value as A. If we however instead apply a quantum logic gate [math]F[/math] on A and then measure, then [math]A\rangle = FB\rangle \iff F^\daggerA\rangle = B\rangle[/math], where [math]F^\dagger[/math] is the unitary inverse of [math]F[/math].
Because of how unitary inverses of gates act, [math]F^\dagger A\rangle = F^{1}(A\rangle) = B\rangle[/math]. For example, say [math]F(x)=x+3 \pmod{2^n}[/math], then [math]B\rangle = A  3 \pmod{2^n}\rangle[/math].
Even though the equalities holds, the probabilities of measuring the possible values may change as a result of applying [math]F[/math], as may be the intent in a quantum search algorithm.
The equality will hold no matter in which order measurement is performed (on the registers A or B). Measurement can even be randomly and concurrently interleaved qubit by qubit, since the measurements assignment of one qubit will limit the possible valuespace from the other entangled qubits.
This effect of valuesharing via entanglement is used in Shor's algorithm and in phase estimation. Using the Fourier transform to amplify the probability amplitudes of the solution states for some problem is a generic method known as "Fourier fishing". See also amplitude amplification.
Logic function synthesis
Unitary transformations that are not available in the set of gates natively available at the quantum computer (the primitive gates) can be synthesised, or approximated, by combining the available primitive gates in a circuit. One way to do this is to factorize the matrix that encodes the unitary transformation into a product of tensor products (i.e. series and parallel combinations) of the available primitive gates. See the Solovay–Kitaev theorem.
Unitary transformations (functions) that only consist of gates can themselves be fully described as matrices, just like the primitive gates. If a function [math]F[/math] is a unitary transformation that map [math]n[/math] qubits from [math]\psi\rangle[/math] to [math]F(\psi)\rangle[/math], then the matrix that represents this transformation have the size [math]2^n \times 2^n[/math]. For example, a function that act on a "qubyte" (a register of 8 qubits) would be described as a matrix with [math]2^8 \times 2^8 = 256 \times 256[/math] elements. Because the gates unitary nature, all functions must be reversible and always be bijective mappings of input to output. There must always exist a function [math]F^{1}[/math] such that [math]F^{1}(F(\psi\rangle)) = \psi\rangle[/math].
Functions that are not invertible can be made invertible by adding ancilla qubits to the input or the output, or both. For example, when implementing a boolean function whose number of input and output qubits are not the same, ancilla qubits must be used as "padding". The ancilla qubits can then either be uncomputed or left untouched. Measuring or otherwise collapsing the quantum state of an ancilla qubit (for example by reinitializing the value of it, or by its spontaneous decoherence) that have not been uncomputed may result in errors, as their state may be entangled with the qubits that are still being used in computations.
Logically irreversible operations, for example addition modulo [math]2^n[/math] of two [math]n[/math]qubit registers a and b, [math]F(a, b) = a+b \pmod{2^n}[/math], can be made logically reversible by adding information to the output, so that the input can be computed from the output (i.e. there exist a function [math]F^{1}[/math]). In our example, this can be done by passing on one of the input registers to the output: [math]F(a\rangle \otimes b\rangle) = a+b \pmod{2^n}\rangle \otimes a\rangle[/math]. The output can then be used to compute the input (i.e. given the output [math]a+b[/math] and [math]a[/math], we can easily find the input; [math]a[/math] is given and [math](a+b)  a = b[/math]) and the function is made bijective.
All boolean logic expressions can be encoded as unitary transforms (quantum logic gates), for example by using combinations of the PauliX, CNOT and Toffoli gates. These gates are functionally complete in the boolean logic domain.
There are many unitary transforms available in the libraries of Q#, QCL, Cirq, and other quantum programming languages.
For example, [math]inc(x\rangle) = x + 1 \pmod{2^{x_{length}}}\rangle[/math], where [math]x_{length}[/math] is the number of qubits that constitutes [math]x[/math], is implemented as the following in QCL^{[14]}^{[15]}:
cond qufunct inc(qureg x) { // increment register int i; for i = #x1 to 0 step 1 { CNot(x[i], x[0::i]); // apply controllednot from } // MSB to LSB }
In QCL, decrement is done by "undoing" increment. The undo operator !
is used to instead run the unitary inverse of the function. !inc(x)
is the inverse of inc(x)
and instead performs the operation [math]inc^\dagger x\rangle = inc^{1}(x\rangle) = x  1 \pmod{2^{x_{length}}}\rangle[/math].
Here a classic computer generates the gate composition for the quantum computer. The quantum computer acts as a coprocessor that receives instructions from the classical computer about which primitive gates to apply to which qubits. Measurement of quantum registers results in binary values that the classical computer can use in its computations. Quantum algorithms often contain both a classical and a quantum part. Unmeasured I/O (sending qubits to remote computers without collapsing their quantum states) can be used to create networks of quantum computers. Entanglement swapping can then be used to realize distributed algorithms with quantum computers that are not directly connected. Examples of distributed algorithms that only require the use of a handful of quantum logic gates is superdense coding, the Quantum Byzantine agreement and the BB84 cipherkey exchange protocol.
History
The current notation for quantum gates was developed by Barenco et al.,^{[16]} building on notation introduced by Feynman.^{[17]}
See also
 Adiabatic quantum computation
 Counterfactual definiteness and Counterfactual computation
 Cellular automaton and Quantum cellular automaton
 Classical computing and Quantum computing
 Computational complexity theory and BQP
 Landauer's principle and reversible computation
 Magic state distillation
 Information theory, quantum information and Von Neumann entropy
 Pauli effect and Synchronicity
 Pauli matrices
 Quantum algorithms
 Quantum circuit
 Quantum finite automata
 Quantum memory
 Quantum network and Quantum channel
 Quantum state
 Zeno effect
References
 ↑ Nielsen, Michael A.; Chuang, Isaac (2000). Quantum Computation and Quantum Information. Cambridge: Cambridge University Press. ISBN 0521632358. OCLC 43641333.
 ↑ Aharonov, Dorit (20030109). "A Simple Proof that Toffoli and Hadamard are Quantum Universal". arXiv:quantph/0301040.
 ↑ "Monroe Conference". http://online.kitp.ucsb.edu/online/mbl_c15/monroe/pdf/Monroe_MBL15Conf_KITP.pdf.
 ↑ ^{4.0} ^{4.1} "Demonstration of a small programmable quantum computer with atomic qubits". http://iontrap.umd.edu/wpcontent/uploads/2012/12/nature18648.pdf. Retrieved 20190210.
 ↑ Jones, Jonathan A. (2003). "Robust Ising gates for practical quantum computation". Physical Review A 67. doi:10.1103/PhysRevA.67.012317.
 ↑ Deutsch, David (September 8, 1989), "Quantum computational networks", Proc. R. Soc. Lond. A 425 (1989): 73–90, doi:10.1098/rspa.1989.0099, Bibcode: 1989RSPSA.425...73D
 ↑ Bausch, Johannes; Piddock, Stephen (2017), "The Complexity of TranslationallyInvariant LowDimensional Spin Lattices in 3D", Journal of Mathematical Physics 58 (11): 111901, doi:10.1063/1.5011338
 ↑ Raz, Ran (2002). "On the complexity of matrix product". Proceedings of the Thirtyfourth Annual ACM Symposium on Theory of Computing: 144. doi:10.1145/509907.509932. ISBN 1581134959.
 ↑ Defining adjoined operators in Microsof Q#
 ↑ Q# Online manual: Measurement
 ↑ Juan Yin, Yuan Cao, YuHuai Li, et.c.. "Satellitebased entanglement distribution over 1200 kilometers". Quantum Optics. https://science.sciencemag.org/content/356/6343/1140.
 ↑ Billings, Lee. "China Shatters "Spooky Action at a Distance" Record, Preps for Quantum Internet". https://www.scientificamerican.com/article/chinashattersldquospookyactionatadistancerdquorecordprepsforquantuminternet/.
 ↑ Popkin, Gabriel (15 June 2017). "China's quantum satellite achieves 'spooky action' at record distance". https://www.sciencemag.org/news/2017/06/chinasquantumsatelliteachievesspookyactionrecorddistance.
 ↑ QCL 0.6.4 source code, the file "lib/examples.qcl"
 ↑ Quantum Programming in QCL (PDF)
 ↑ Phys. Rev. A 52 3457–3467 (1995), doi:10.1103/PhysRevA.52.3457; eprint arXiv:quantph/9503016
 ↑ R. P. Feynman, "Quantum mechanical computers", Optics News, February 1985, 11, p. 11; reprinted in Foundations of Physics 16(6) 507–531.
Sources
 Nielsen, Michael A.; Chuang, Isaac (2000). Quantum Computation and Quantum Information. Cambridge: Cambridge University Press. ISBN 0521632358. OCLC 43641333.
Original source: https://en.wikipedia.org/wiki/ Quantum logic gate.
Read more 