Tensor Products
Kronecker product
a way to multiply vectors and matrices to generate bigger vectors and matrices
∣ ψ ⟩ ⊗ ∣ ϕ ⟩ = ( ψ 0 ψ 1 ) ⊗ ( ϕ 0 ϕ 1 ) = ( ψ 0 ( ϕ 0 ϕ 1 ) ψ 1 ( ϕ 0 ϕ 1 ) ) = ( ψ 0 ϕ 0 ψ 0 ϕ 1 ψ 1 ϕ 0 ψ 1 ϕ 1 ) |\psi\rangle \otimes |\phi\rangle = \begin{pmatrix} \psi_0 \\ \psi_1 \end{pmatrix} \otimes \begin{pmatrix} \phi_0 \\ \phi_1 \end{pmatrix} = \begin{pmatrix} \psi_0 \begin{pmatrix} \phi_0 \\ \phi_1 \end{pmatrix} \\ \\ \psi_1 \begin{pmatrix} \phi_0 \\ \phi_1 \end{pmatrix} \end{pmatrix} = \begin{pmatrix} \psi_0 \phi_0 \\ \psi_0 \phi_1 \\ \psi_1 \phi_0 \\ \psi_1 \phi_1 \end{pmatrix} ∣ ψ ⟩ ⊗ ∣ ϕ ⟩ = ( ψ 0 ψ 1 ) ⊗ ( ϕ 0 ϕ 1 ) = ψ 0 ( ϕ 0 ϕ 1 ) ψ 1 ( ϕ 0 ϕ 1 ) = ψ 0 ϕ 0 ψ 0 ϕ 1 ψ 1 ϕ 0 ψ 1 ϕ 1
∣ ψ ⟩ ⊗ ∣ ϕ ⟩ ≡ ∣ ψ ⟩ ∣ ϕ ⟩ ≡ ∣ ψ ϕ ⟩ |\psi\rangle \otimes |\phi\rangle \equiv |\psi\rangle |\phi\rangle \equiv|\psi\phi\rangle ∣ ψ ⟩ ⊗ ∣ ϕ ⟩ ≡ ∣ ψ ⟩ ∣ ϕ ⟩ ≡ ∣ ψ ϕ ⟩
Tensor product of Matrices
A ⊗ B = ( a 00 B a 01 B a 10 B a 11 B ) A \otimes B = \begin{pmatrix} a_{00}B & a_{01}B \\ a_{10}B & a_{11}B \end{pmatrix} A ⊗ B = ( a 00 B a 10 B a 01 B a 11 B )
The tensor product ∣ 0 ⟩ ⟨ 1 ∣ ⊗ ∣ 1 ⟩ ⟨ 0 ∣ |0\rangle \langle1| \otimes |1\rangle \langle0| ∣0 ⟩ ⟨ 1∣ ⊗ ∣1 ⟩ ⟨ 0∣ is:
∣ 0 ⟩ ⟨ 1 ∣ ⊗ ∣ 1 ⟩ ⟨ 0 ∣ = ( 0 1 0 0 ) ⊗ ( 0 0 1 0 ) |0\rangle \langle 1| \otimes |1\rangle \langle 0| = \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix} \otimes \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix} ∣0 ⟩ ⟨ 1∣ ⊗ ∣1 ⟩ ⟨ 0∣ = ( 0 0 1 0 ) ⊗ ( 0 1 0 0 )
∣ 0 ⟩ ⟨ 1 ∣ ⊗ ∣ 1 ⟩ ⟨ 0 ∣ = ( 0 ⋅ ( 0 0 1 0 ) 1 ⋅ ( 0 0 1 0 ) 0 ⋅ ( 0 0 1 0 ) 0 ⋅ ( 0 0 1 0 ) ) = ( 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 ) |0\rangle \langle 1| \otimes |1\rangle \langle 0| = \begin{pmatrix} 0 \cdot \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix} & 1 \cdot \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix} \\ 0 \cdot \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix} & 0 \cdot \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix} \end{pmatrix} = \begin{pmatrix} 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{pmatrix} ∣0 ⟩ ⟨ 1∣ ⊗ ∣1 ⟩ ⟨ 0∣ = 0 ⋅ ( 0 1 0 0 ) 0 ⋅ ( 0 1 0 0 ) 1 ⋅ ( 0 1 0 0 ) 0 ⋅ ( 0 1 0 0 ) = 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
To short hand this, we can write:
∣ 0 ⟩ ⟨ 1 ∣ ⊗ ∣ 1 ⟩ ⟨ 0 ∣ ≡ ∣ 0 ⟩ ∣ 1 ⟩ ⟨ 1 ∣ ⟨ 0 ∣ ≡ ∣ 01 ⟩ ⟨ 10 ∣ |0\rangle \langle 1| \otimes |1\rangle \langle 0| \equiv |0\rangle|1\rangle \langle 1| \langle 0| \equiv |01\rangle \langle 10| ∣0 ⟩ ⟨ 1∣ ⊗ ∣1 ⟩ ⟨ 0∣ ≡ ∣0 ⟩ ∣1 ⟩ ⟨ 1∣ ⟨ 0∣ ≡ ∣01 ⟩ ⟨ 10∣
( ∣ a ⟩ ⟨ b ∣ ) ⊗ ( ∣ c ⟩ ⟨ d ∣ ) = ( ∣ a ⟩ ∣ c ⟩ ) ( ⟨ b ∣ ⟨ d ∣ ) = ∣ a c ⟩ ⟨ b d ∣ (|a\rangle \langle b|) \otimes (|c\rangle \langle d|) = (|a\rangle |c\rangle)(\langle b| \langle d|) = |ac\rangle \langle bd| ( ∣ a ⟩ ⟨ b ∣ ) ⊗ ( ∣ c ⟩ ⟨ d ∣ ) = ( ∣ a ⟩ ∣ c ⟩) (⟨ b ∣ ⟨ d ∣ ) = ∣ a c ⟩ ⟨ b d ∣
Bases
The basis for a single qubit is { ∣ 0 ⟩ , ∣ 1 ⟩ } \{|0\rangle, |1\rangle\} { ∣0 ⟩ , ∣1 ⟩}
It is given by taking the tensor product of the basis for each qubit:
{ ∣ 0 ⟩ ⊗ ∣ 0 ⟩ , ∣ 0 ⟩ ⊗ ∣ 1 ⟩ , ∣ 1 ⟩ ⊗ ∣ 0 ⟩ , ∣ 1 ⟩ ⊗ ∣ 1 ⟩ } \{|0\rangle \otimes |0\rangle, |0\rangle \otimes |1\rangle, |1\rangle \otimes |0\rangle, |1\rangle \otimes |1\rangle\} { ∣0 ⟩ ⊗ ∣0 ⟩ , ∣0 ⟩ ⊗ ∣1 ⟩ , ∣1 ⟩ ⊗ ∣0 ⟩ , ∣1 ⟩ ⊗ ∣1 ⟩}
For short hand, we write { ∣ 00 ⟩ , ∣ 01 ⟩ , ∣ 10 ⟩ , ∣ 11 ⟩ } \{|00\rangle, |01\rangle, |10\rangle, |11\rangle\} { ∣00 ⟩ , ∣01 ⟩ , ∣10 ⟩ , ∣11 ⟩}
The computational basis for two qubits is { ∣ 00 ⟩ , ∣ 01 ⟩ , ∣ 10 ⟩ , ∣ 11 ⟩ } \{|00\rangle, |01\rangle, |10\rangle, |11\rangle\} { ∣00 ⟩ , ∣01 ⟩ , ∣10 ⟩ , ∣11 ⟩}
For three qubits { ∣ 000 ⟩ , ∣ 001 ⟩ , ∣ 010 ⟩ , ∣ 011 ⟩ , ∣ 100 ⟩ , ∣ 101 ⟩ , ∣ 110 ⟩ , ∣ 111 ⟩ } \{|000\rangle, |001\rangle, |010\rangle, |011\rangle, |100\rangle, |101\rangle, |110\rangle, |111\rangle\} { ∣000 ⟩ , ∣001 ⟩ , ∣010 ⟩ , ∣011 ⟩ , ∣100 ⟩ , ∣101 ⟩ , ∣110 ⟩ , ∣111 ⟩}
Matrices
{ ∣ 0 ⟩ ⟨ 0 ∣ , ∣ 0 ⟩ ⟨ 1 ∣ , ∣ 1 ⟩ ⟨ 0 ∣ , ∣ 1 ⟩ ⟨ 1 ∣ } \{|0\rangle\langle0|,\; |0\rangle\langle1|,\; |1\rangle\langle0|,\; |1\rangle\langle1|\} { ∣0 ⟩ ⟨ 0∣ , ∣0 ⟩ ⟨ 1∣ , ∣1 ⟩ ⟨ 0∣ , ∣1 ⟩ ⟨ 1∣ }
forms a basis for the space of 2 × 2 2 \times 2 2 × 2 matrices
operator basis : a set of matrices that can be used to express any matrix as a linear combination of the basis matrices
( a b c d ) = a ∣ 0 ⟩ ⟨ 0 ∣ + b ∣ 0 ⟩ ⟨ 1 ∣ + c ∣ 1 ⟩ ⟨ 0 ∣ + d ∣ 1 ⟩ ⟨ 1 ∣ \begin{pmatrix} a & b \\ c & d \end{pmatrix} = a |0\rangle\langle0| + b |0\rangle\langle1| + c |1\rangle\langle0| + d |1\rangle\langle1| ( a c b d ) = a ∣0 ⟩ ⟨ 0∣ + b ∣0 ⟩ ⟨ 1∣ + c ∣1 ⟩ ⟨ 0∣ + d ∣1 ⟩ ⟨ 1∣
One of the basis elements is: ∣ 0 ⟩ ⟨ 0 ∣ ⊗ ∣ 0 ⟩ ⟨ 0 ∣ = ∣ 00 ⟩ ⟨ 00 ∣ |0\rangle\langle0| \otimes |0\rangle\langle0| = |00\rangle\langle00| ∣0 ⟩ ⟨ 0∣ ⊗ ∣0 ⟩ ⟨ 0∣ = ∣00 ⟩ ⟨ 00∣
Similarly ∣ 0 ⟩ ⟨ 0 ∣ ⊗ ∣ 0 ⟩ ⟨ 1 ∣ = ∣ 00 ⟩ ⟨ 01 ∣ |0\rangle\langle0| \otimes |0\rangle\langle1| = |00\rangle\langle01| ∣0 ⟩ ⟨ 0∣ ⊗ ∣0 ⟩ ⟨ 1∣ = ∣00 ⟩ ⟨ 01∣
In total, the tensor products yields 4 × 4 = 16 4 \times 4 = 16 4 × 4 = 16 basis elements for the space of 4 × 4 4 \times 4 4 × 4 matrices: { ∣ 00 ⟩ ⟨ 00 ∣ , ∣ 00 ⟩ ⟨ 01 ∣ , ∣ 00 ⟩ ⟨ 10 ∣ , ∣ 00 ⟩ ⟨ 11 ∣ , ∣ 01 ⟩ ⟨ 00 ∣ , ∣ 01 ⟩ ⟨ 01 ∣ , … , ∣ 11 ⟩ ⟨ 11 ∣ } . \{|00\rangle\langle00|,\; |00\rangle\langle01|,\; |00\rangle\langle10|,\; |00\rangle\langle11|,\; |01\rangle\langle00|,\; |01\rangle\langle01|,\; \ldots,\; |11\rangle\langle11|\}. { ∣00 ⟩ ⟨ 00∣ , ∣00 ⟩ ⟨ 01∣ , ∣00 ⟩ ⟨ 10∣ , ∣00 ⟩ ⟨ 11∣ , ∣01 ⟩ ⟨ 00∣ , ∣01 ⟩ ⟨ 01∣ , … , ∣11 ⟩ ⟨ 11∣ } .
The Golden Rule of Tensor Products
What starts on the left of the tensor product says on the left
( A ⊗ B ) ( ∣ ψ ⟩ ⊗ ∣ ϕ ⟩ ) = ( A ∣ ψ ⟩ ) ⊗ ( B ∣ ϕ ⟩ ) (A \otimes B)(|\psi\rangle \otimes |\phi\rangle) = (A|\psi\rangle) \otimes (B|\phi\rangle) ( A ⊗ B ) ( ∣ ψ ⟩ ⊗ ∣ ϕ ⟩) = ( A ∣ ψ ⟩) ⊗ ( B ∣ ϕ ⟩)
( ∣ 0 ⟩ ⟨ 0 ∣ ⊗ ∣ 1 ⟩ ⟨ 1 ∣ ) ( ∣ 00 ⟩ ) = ( ∣ 0 ⟩ ⟨ 0 ∣ ⊗ ∣ 1 ⟩ ⟨ 1 ∣ ) ( ∣ 0 ⟩ ⊗ ∣ 0 ⟩ ) = ( ∣ 0 ⟩ ⟨ 0 ∣ ∣ 0 ⟩ ) ⊗ ( ∣ 1 ⟩ ⟨ 1 ∣ ∣ 0 ⟩ ) = ∣ 0 ⟩ ⊗ 0 = 0 (|0\rangle\langle0| \otimes |1\rangle\langle1|)(|00\rangle) \\ = (|0\rangle\langle 0| \otimes |1\rangle\langle1|)(|0\rangle \otimes |0\rangle) \\ \\ = (|0\rangle\langle0||0\rangle) \otimes (|1\rangle\langle1||0\rangle) \\ = |0\rangle \otimes 0 \\ = 0 ( ∣0 ⟩ ⟨ 0∣ ⊗ ∣1 ⟩ ⟨ 1∣ ) ( ∣00 ⟩) = ( ∣0 ⟩ ⟨ 0∣ ⊗ ∣1 ⟩ ⟨ 1∣ ) ( ∣0 ⟩ ⊗ ∣0 ⟩) = ( ∣0 ⟩ ⟨ 0∣∣0 ⟩) ⊗ ( ∣1 ⟩ ⟨ 1∣∣0 ⟩) = ∣0 ⟩ ⊗ 0 = 0
∣ ψ ⟩ ⊗ ∣ ϕ ⟩ ≡ ∣ ψ ⟩ ∣ ϕ ⟩ ≡ ∣ ψ ϕ ⟩ |\psi\rangle \otimes |\phi\rangle \equiv |\psi\rangle|\phi\rangle \equiv |\psi\phi\rangle ∣ ψ ⟩ ⊗ ∣ ϕ ⟩ ≡ ∣ ψ ⟩ ∣ ϕ ⟩ ≡ ∣ ψ ϕ ⟩
( ∣ ψ ⟩ ⊗ ∣ ϕ ⟩ ) † = ⟨ ψ ∣ ⊗ ⟨ ϕ ∣ (|\psi\rangle \otimes |\phi\rangle)^\dagger = \langle\psi| \otimes \langle\phi| ( ∣ ψ ⟩ ⊗ ∣ ϕ ⟩ ) † = ⟨ ψ ∣ ⊗ ⟨ ϕ ∣
( α ∣ ψ ⟩ + β ∣ ϕ ⟩ ) ⊗ ∣ ω ⟩ = α ∣ ψ ⟩ ⊗ ∣ ω ⟩ + β ∣ ϕ ⟩ ⊗ ∣ ω ⟩ (\alpha|\psi\rangle + \beta|\phi\rangle) \otimes |\omega\rangle = \alpha|\psi\rangle \otimes |\omega\rangle + \beta|\phi\rangle \otimes |\omega\rangle ( α ∣ ψ ⟩ + β ∣ ϕ ⟩) ⊗ ∣ ω ⟩ = α ∣ ψ ⟩ ⊗ ∣ ω ⟩ + β ∣ ϕ ⟩ ⊗ ∣ ω ⟩
( ( ⟨ ψ ∣ ⊗ ⟨ ϕ ∣ ) ( ∣ ω ⟩ ⊗ ∣ η ⟩ ) ) = ⟨ ψ ∣ ω ⟩ ⟨ ϕ ∣ η ⟩ ((\langle\psi| \otimes \langle\phi|)(|\omega\rangle \otimes |\eta\rangle)) = \langle\psi|\omega\rangle \langle\phi|\eta\rangle ((⟨ ψ ∣ ⊗ ⟨ ϕ ∣ ) ( ∣ ω ⟩ ⊗ ∣ η ⟩)) = ⟨ ψ ∣ ω ⟩ ⟨ ϕ ∣ η ⟩
( A + B ) ⊗ C = A ⊗ C + B ⊗ C (A + B) \otimes C = A \otimes C + B \otimes C ( A + B ) ⊗ C = A ⊗ C + B ⊗ C
A ⊗ ( B + C ) = A ⊗ B + A ⊗ C A \otimes (B + C) = A \otimes B + A \otimes C A ⊗ ( B + C ) = A ⊗ B + A ⊗ C
( A ⊗ B ) ( C ⊗ D ) = A C ⊗ B D (A \otimes B)(C \otimes D) = AC \otimes BD ( A ⊗ B ) ( C ⊗ D ) = A C ⊗ B D
( A ⊗ B ) † = A † ⊗ B † (A \otimes B)^\dagger = A^\dagger \otimes B^\dagger ( A ⊗ B ) † = A † ⊗ B †
Entanglement
Single-qubit state is a two dimensional vector: ∣ ψ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\psi\rangle = \alpha|0\rangle + \beta|1\rangle ∣ ψ ⟩ = α ∣0 ⟩ + β ∣1 ⟩
where α \alpha α and β \beta β are complex numbers such that ∥ ∣ ψ ⟩ ∥ 2 = ∣ α ∣ 2 + ∣ β ∣ 2 = 1 \||\psi\rangle\|^2 = |\alpha|^2 + |\beta|^2 = 1 ∥∣ ψ ⟩ ∥ 2 = ∣ α ∣ 2 + ∣ β ∣ 2 = 1
Two qubits ψ 1 ⟩ \psi_1\rangle ψ 1 ⟩ and ψ 2 ⟩ \psi_2\rangle ψ 2 ⟩ can be combined to form a four-dimensional vector: ∣ ψ 12 ⟩ = ∣ ψ 1 ⟩ ⊗ ∣ ψ 2 ⟩ ≡ ∣ ψ 1 ⟩ ∣ ψ 2 ⟩ ≡ ∣ ψ 1 ψ 2 ⟩ |\psi_{12}\rangle = |\psi_1\rangle \otimes |\psi_2\rangle \equiv |\psi_1\rangle|\psi_2\rangle \equiv |\psi_1\psi_2\rangle ∣ ψ 12 ⟩ = ∣ ψ 1 ⟩ ⊗ ∣ ψ 2 ⟩ ≡ ∣ ψ 1 ⟩ ∣ ψ 2 ⟩ ≡ ∣ ψ 1 ψ 2 ⟩
Separable States : can be written as a tensor product of single-qubit states
∣ Ψ ⟩ = α 00 ∣ 00 ⟩ + α 01 ∣ 01 ⟩ + α 10 ∣ 10 ⟩ + α 11 ∣ 11 ⟩ = ∣ ψ 1 ⟩ ∣ ⊗ ψ 2 ⟩ |\Psi\rangle = \alpha_{00} |00\rangle + \alpha_{01} |01\rangle + \alpha_{10} |10\rangle + \alpha_{11} |11\rangle \\ = |\psi_1\rangle| \otimes \psi_2\rangle ∣Ψ ⟩ = α 00 ∣00 ⟩ + α 01 ∣01 ⟩ + α 10 ∣10 ⟩ + α 11 ∣11 ⟩ = ∣ ψ 1 ⟩ ∣ ⊗ ψ 2 ⟩
if the state is not separable, it is called entangled .
entangled : 1 2 ( ∣ 00 ⟩ + ∣ 11 ⟩ ) \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle) 2 1 ( ∣00 ⟩ + ∣11 ⟩)
if a d = 0 ad = 0 a d = 0 and b c = 0 bc = 0 b c = 0 , then a c ac a c or b d bd b d must also vanish.
separable : 1 2 ( ∣ 00 ⟩ + ∣ 01 ⟩ ) = ∣ 0 ⟩ ⊗ 1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) \frac{1}{2}(|00\rangle + |01\rangle) = |0\rangle \otimes \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) 2 1 ( ∣00 ⟩ + ∣01 ⟩) = ∣0 ⟩ ⊗ 2 1 ( ∣0 ⟩ + ∣1 ⟩)
Two-Qubit Gates
Two-qubit gates are 4 × 4 4 \times 4 4 × 4 unitary matrices that act on two-qubit states.
CNOT Gate
Controlled NOT gate
flips target if control is ∣ 1 ⟩ |1\rangle ∣1 ⟩
CNOT = ( 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 ) = ∣ 0 ⟩ ⟨ 0 ∣ ⊗ I + ∣ 1 ⟩ ⟨ 1 ∣ ⊗ X \text{CNOT} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix} = |0\rangle\langle0| \otimes \mathbb I + |1\rangle\langle1| \otimes X CNOT = 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 = ∣0 ⟩ ⟨ 0∣ ⊗ I + ∣1 ⟩ ⟨ 1∣ ⊗ X
SWAP Gate
Exchanges the two qubits.
SWAP = ( 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 ) \text{SWAP} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} SWAP = 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1
CZ Gate
Controlled Z gate
Applies Z Z Z to target if control is ∣ 1 ⟩ |1\rangle ∣1 ⟩
CZ = ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 − 1 ) \text{CZ} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & -1 \end{pmatrix} CZ = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 − 1
Building Multi-Qubit Gates
Two qubits ∣ ψ 1 ⟩ |\psi_1\rangle ∣ ψ 1 ⟩ and ∣ ψ 2 ⟩ |\psi_2\rangle ∣ ψ 2 ⟩ can be combined to form a four-dimensional vector:
if U 1 U_1 U 1 and U 2 U_2 U 2 are single-qubit gates, then U 1 ⊗ U 2 U_1 \otimes U_2 U 1 ⊗ U 2 is a two-qubit gate that acts on the combined state ∣ ψ 1 ⟩ ⊗ ∣ ψ 2 ⟩ |\psi_1\rangle \otimes |\psi_2\rangle ∣ ψ 1 ⟩ ⊗ ∣ ψ 2 ⟩ .
( U 1 ⊗ U 2 ) ( ∣ ψ 1 ⟩ ⊗ ∣ ψ 2 ⟩ ) = ( U 1 ∣ ψ 1 ⟩ ) ⊗ ( U 2 ∣ ψ 2 ⟩ ) (U_1 \otimes U_2)(|\psi_1\rangle \otimes |\psi_2\rangle) = (U_1|\psi_1\rangle) \otimes (U_2|\psi_2\rangle) ( U 1 ⊗ U 2 ) ( ∣ ψ 1 ⟩ ⊗ ∣ ψ 2 ⟩) = ( U 1 ∣ ψ 1 ⟩) ⊗ ( U 2 ∣ ψ 2 ⟩)
For shorthand, U 1 U 2 ∣ ψ 1 ψ 2 ⟩ U_1 U_2|\psi_1\psi_2\rangle U 1 U 2 ∣ ψ 1 ψ 2 ⟩
Order of Operations
When gates act independently, it doesn't matter the order in which they are apply with the understanding that if only a single gate is applied, identity acts on the other qubits.
( U 1 ⊗ U 2 ) = ( I ⊗ U 2 ) ( U 1 ⊗ I ) = ( U 1 ⊗ I ) ( I ⊗ U 2 ) (U_1 \otimes U_2) = (\mathbb I \otimes U_2)(U_1 \otimes \mathbb I) = (U_1 \otimes \mathbb I)(\mathbb I \otimes U_2) ( U 1 ⊗ U 2 ) = ( I ⊗ U 2 ) ( U 1 ⊗ I ) = ( U 1 ⊗ I ) ( I ⊗ U 2 )
Example: Apply X X X to qubit 1 and H H H to qubit 2, starting with ∣ 00 ⟩ |00\rangle ∣00 ⟩ :
( X ⊗ I ) ∣ 00 ⟩ = ∣ 10 ⟩ (X \otimes \mathbb I)|00\rangle = |10\rangle ( X ⊗ I ) ∣00 ⟩ = ∣10 ⟩
( I ⊗ H ) ∣ 10 ⟩ = ( I ⊗ H ) ( ∣ 1 ⟩ ⊗ ∣ 0 ⟩ ) = ∣ 1 ⟩ ⊗ H ∣ 0 ⟩ = ∣ 1 ⟩ ⊗ 1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) = 1 2 ( ∣ 1 ⟩ ⊗ ∣ 0 ⟩ + ∣ 1 ⟩ ⊗ ∣ 1 ⟩ ) = 1 2 ( ∣ 10 ⟩ + ∣ 11 ⟩ ) (\mathbb I \otimes H)|10\rangle \\ = (\mathbb I \otimes H)(|1\rangle \otimes |0\rangle) \\ = |1\rangle \otimes H|0\rangle \\ = |1\rangle \otimes \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) \\ = \frac{1}{\sqrt{2}}(|1\rangle \otimes |0\rangle + |1\rangle \otimes |1\rangle) \\ = \frac{1}{\sqrt{2}}(|10\rangle + |11\rangle) ( I ⊗ H ) ∣10 ⟩ = ( I ⊗ H ) ( ∣1 ⟩ ⊗ ∣0 ⟩) = ∣1 ⟩ ⊗ H ∣0 ⟩ = ∣1 ⟩ ⊗ 2 1 ( ∣0 ⟩ + ∣1 ⟩) = 2 1 ( ∣1 ⟩ ⊗ ∣0 ⟩ + ∣1 ⟩ ⊗ ∣1 ⟩) = 2 1 ( ∣10 ⟩ + ∣11 ⟩)
Quantum Circuits
A quantum program is a sequance of gates applied to qubits, which are typically assumed to be initialized in the state ∣ 0 ⟩ |0\rangle ∣0 ⟩ .
Two qubits start in the state ∣ 0 ⟩ ⊗ ∣ 0 ⟩ = ∣ 00 ⟩ |0\rangle \otimes |0\rangle = |00\rangle ∣0 ⟩ ⊗ ∣0 ⟩ = ∣00 ⟩
C N O T ( H ⊗ I ) ∣ 00 ⟩ = C N O T ( 1 2 ( ∣ 00 ⟩ + ∣ 10 ⟩ ) ) = 1 2 ( ∣ 00 ⟩ + ∣ 11 ⟩ ) CNOT(H \otimes \mathbb I)|00\rangle = CNOT\left(\frac{1}{\sqrt{2}}(|00\rangle + |10\rangle)\right) = \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle) CNOT ( H ⊗ I ) ∣00 ⟩ = CNOT ( 2 1 ( ∣00 ⟩ + ∣10 ⟩) ) = 2 1 ( ∣00 ⟩ + ∣11 ⟩)
Name Gates Matrix Pauli-X X X X or ⊕ \oplus ⊕ ( 0 1 1 0 ) \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} ( 0 1 1 0 ) Pauli-Y Y Y Y ( 0 − i i 0 ) \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix} ( 0 i − i 0 ) Pauli-Z Z Z Z ( 1 0 0 − 1 ) \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} ( 1 0 0 − 1 ) Rotation-X R x ( θ ) R_x(\theta) R x ( θ ) ( cos θ 2 − i sin θ 2 − i sin θ 2 cos θ 2 ) \begin{pmatrix} \cos\frac{\theta}{2} & -i\sin\frac{\theta}{2} \\ -i\sin\frac{\theta}{2} & \cos\frac{\theta}{2} \end{pmatrix} ( cos 2 θ − i sin 2 θ − i sin 2 θ cos 2 θ ) Rotation-Y R y ( θ ) R_y(\theta) R y ( θ ) ( cos θ 2 sin θ 2 − sin θ 2 cos θ 2 ) \begin{pmatrix} \cos\frac{\theta}{2} & \sin\frac{\theta}{2} \\ -\sin\frac{\theta}{2} & \cos\frac{\theta}{2} \end{pmatrix} ( cos 2 θ − sin 2 θ sin 2 θ cos 2 θ ) Rotation-Z R z ( θ ) R_z(\theta) R z ( θ ) ( e i θ / 2 0 0 e − i θ / 2 ) \begin{pmatrix} e^{i\theta/2} & 0 \\ 0 & e^{-i\theta/2} \end{pmatrix} ( e i θ /2 0 0 e − i θ /2 ) Phase Shift P h ( δ ) Ph(\delta) P h ( δ ) ( 1 0 0 e i δ ) \begin{pmatrix} 1 & 0 \\ 0 & e^{i\delta} \end{pmatrix} ( 1 0 0 e i δ ) Hadamard H H H 1 2 ( 1 1 1 − 1 ) \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} 2 1 ( 1 1 1 − 1 ) Phase S S S ( 1 0 0 i ) \begin{pmatrix} 1 & 0 \\ 0 & i \end{pmatrix} ( 1 0 0 i ) T T T T ( 1 0 0 e i π / 4 ) \begin{pmatrix} 1 & 0 \\ 0 & e^{i\pi/4} \end{pmatrix} ( 1 0 0 e iπ /4 )
S = P h ( π / 2 ) S = Ph(\pi/2) S = P h ( π /2 )
T = P h ( π / 4 ) T = Ph(\pi/4) T = P h ( π /4 )
Z = P h ( π ) Z = Ph(\pi) Z = P h ( π )
Multi-Qubit Gates
Name Gates Matrix CNOT ( 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 ) \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix} 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 CZ ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 − 1 ) \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & -1 \end{pmatrix} 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 − 1 SWAP ( 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 ) \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 Toffoli ( 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 ) \begin{pmatrix} 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{pmatrix} 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
CNOT gate can be ∣ 0 ⟩ ⟨ 0 ∣ ⊗ I + ∣ 1 ⟩ ⟨ 1 ∣ ⊗ X |0\rangle\langle0| \otimes \mathbb I + |1\rangle\langle1| \otimes X ∣0 ⟩ ⟨ 0∣ ⊗ I + ∣1 ⟩ ⟨ 1∣ ⊗ X
∣ 0 ⟩ state → I |0\rangle \text{state} \rightarrow \mathbb I ∣0 ⟩ state → I (do nothing)
∣ 1 ⟩ state → X |1\rangle \text{state} \rightarrow X ∣1 ⟩ state → X (flip the target)
Larger gates can be built from smaller ones
Toffoli gate (CCNOT): flips the target if both controls are ∣ 1 ⟩ |1\rangle ∣1 ⟩ .
Toffoli = ∣ 00 ⟩ ⟨ 00 ∣ ⊗ I 4 + ∣ 11 ⟩ ⟨ 11 ∣ ⊗ X \text{Toffoli} = |00\rangle\langle00| \otimes \mathbb I_4 + |11\rangle\langle11| \otimes X Toffoli = ∣00 ⟩ ⟨ 00∣ ⊗ I 4 + ∣11 ⟩ ⟨ 11∣ ⊗ X
two control qubits and one target qubit
if both control qubits are ∣ 1 ⟩ |1\rangle ∣1 ⟩ , then apply X X X
∣ 110 ⟩ → ∣ 111 ⟩ |110\rangle \rightarrow |111\rangle ∣110 ⟩ → ∣111 ⟩
∣ 111 ⟩ → ∣ 110 ⟩ |111\rangle \rightarrow |110\rangle ∣111 ⟩ → ∣110 ⟩
Can be generalized to n n n -qubits: C n − 1 N O T C^{n-1}NOT C n − 1 NOT gate, which flips the target if all n − 1 n-1 n − 1 control qubits are ∣ 1 ⟩ |1\rangle ∣1 ⟩ .
CNOT : ∣ 10 ⟩ → ∣ 11 ⟩ |10\rangle \rightarrow |11\rangle ∣10 ⟩ → ∣11 ⟩ and ∣ 11 ⟩ → ∣ 10 ⟩ |11\rangle \rightarrow |10\rangle ∣11 ⟩ → ∣10 ⟩
Toffoli : ∣ 110 ⟩ → ∣ 111 ⟩ |110\rangle \rightarrow |111\rangle ∣110 ⟩ → ∣111 ⟩ and ∣ 111 ⟩ → ∣ 110 ⟩ |111\rangle \rightarrow |110\rangle ∣111 ⟩ → ∣110 ⟩
3-control gate : ∣ 1110 ⟩ → ∣ 1111 ⟩ |1110\rangle \rightarrow |1111\rangle ∣1110 ⟩ → ∣1111 ⟩ and ∣ 1111 ⟩ → ∣ 1110 ⟩ |1111\rangle \rightarrow |1110\rangle ∣1111 ⟩ → ∣1110 ⟩
( I − ∣ 111 … ⟩ ⟨ 111 … ∣ ) ⊗ I + ∣ 111 … ⟩ ⟨ 111 … ∣ ⊗ U (\mathbb I - |111\ldots\rangle\langle 111\ldots|)\otimes \mathbb I + |111\ldots\rangle\langle 111\ldots|\otimes U ( I − ∣111 … ⟩ ⟨ 111 … ∣ ) ⊗ I + ∣111 … ⟩ ⟨ 111 … ∣ ⊗ U
The Rules of Quantum Computing
Initialization
An n n n -qubit computation starts in the all-zero state:
∣ p h i ⟩ = ∣ 0 ⟩ ⊗ ∣ 0 ⟩ ⊗ … ⊗ ∣ 0 ⟩ = ∣ 00 … 0 ⟩ |phi\rangle = |0\rangle \otimes |0\rangle \otimes \ldots \otimes |0\rangle = |00\ldots0\rangle ∣ p hi ⟩ = ∣0 ⟩ ⊗ ∣0 ⟩ ⊗ … ⊗ ∣0 ⟩ = ∣00 … 0 ⟩
Algorithm
Apply a sequence of unitary gates to obtain the final state:
U = U 1 U 2 … U m ⟹ U ∣ ψ ⟩ U = U_1U_2\ldots U_m \implies U|\psi\rangle U = U 1 U 2 … U m ⟹ U ∣ ψ ⟩
Measurement
The Born Rule
Reading n n n qubits producs n n n classical bits.
The probability of outcome b 1 b 2 … b n b_1b_2\ldots b_n b 1 b 2 … b n :
P r ( b 1 b 2 … b n ) = ∣ ⟨ b 1 b 2 … b n ∣ ψ ⟩ ∣ 2 Pr(b_1b_2\ldots b_n) = |\langle b_1b_2\ldots b_n|\psi\rangle|^2 P r ( b 1 b 2 … b n ) = ∣ ⟨ b 1 b 2 … b n ∣ ψ ⟩ ∣ 2
∣ ψ ⟩ |\psi\rangle ∣ ψ ⟩ : initial state of the system
U U U : an unitary matrix summing up the gates applied to the system
U ∣ ψ ⟩ U|\psi\rangle U ∣ ψ ⟩ : final state of the system
⟨ b 1 b 2 … b n ∣ U ∣ ψ ⟩ \langle b_1b_2\ldots b_n|U|\psi\rangle ⟨ b 1 b 2 … b n ∣ U ∣ ψ ⟩ : the amplitude of the outcome b 1 b 2 … b n b_1b_2\ldots b_n b 1 b 2 … b n
∣ amplitude ∣ 2 |\text{amplitude}|^2 ∣ amplitude ∣ 2 : The probability of the outcome b 1 b 2 … b n b_1b_2\ldots b_n b 1 b 2 … b n being observed when measuring the system
if 1 2 ( ∣ 00 ⟩ + ∣ 11 ⟩ ) \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle) 2 1 ( ∣00 ⟩ + ∣11 ⟩)
then P r ( 00 ) = P r ( 11 ) = 1 2 Pr(00) = Pr(11) = \frac{1}{2} P r ( 00 ) = P r ( 11 ) = 2 1
Post-measurement States
Measurement causes the state to collapse
Measuring all qubits : outcome b 1 … b n b_1 \ldots b_n b 1 … b n collapses state to ∣ b 1 … b n ⟩ |b_1 \ldots b_n\rangle ∣ b 1 … b n ⟩
Measuring a subset : keep matching terms and renormalize.
∣ ψ ⟩ = c 00 … 0 ∣ 00 … 0 ⟩ + c 00 … 1 ∣ 00 … 1 ⟩ + … + c 11 … 1 ∣ 11 … 1 ⟩ |\psi\rangle = c_{00\ldots0}|00\ldots0\rangle + c_{00\ldots1}|00\ldots1\rangle + \ldots + c_{11\ldots1}|11\ldots1\rangle ∣ ψ ⟩ = c 00 … 0 ∣00 … 0 ⟩ + c 00 … 1 ∣00 … 1 ⟩ + … + c 11 … 1 ∣11 … 1 ⟩
If we measure all qubits, we get outcome b 1 b 2 … b n b_1b_2\ldots b_n b 1 b 2 … b n
The state will collapse to ∣ ψ ′ ⟩ = ∣ b 1 b 2 … b n ⟩ |\psi'\rangle = |b_1b_2\ldots b_n\rangle ∣ ψ ′ ⟩ = ∣ b 1 b 2 … b n ⟩
The probability of this outcome is P r ( b 1 b 2 … b n ) = ∣ ⟨ b 1 b 2 … b n ∣ ψ ⟩ ∣ 2 Pr(b_1b_2\ldots b_n) = |\langle b_1b_2\ldots b_n|\psi\rangle|^2 P r ( b 1 b 2 … b n ) = ∣ ⟨ b 1 b 2 … b n ∣ ψ ⟩ ∣ 2
∣ ψ ⟩ = α ∣ 00 ⟩ + β ∣ 01 ⟩ + γ ∣ 10 ⟩ + δ ∣ 11 ⟩ |\psi\rangle = \alpha|00\rangle + \beta|01\rangle + \gamma|10\rangle + \delta|11\rangle ∣ ψ ⟩ = α ∣00 ⟩ + β ∣01 ⟩ + γ ∣10 ⟩ + δ ∣11 ⟩
If we measure only the first qubit, and get outcome 0 0 0 , the state maintains only terms with 0 0 0 in the first position:
∣ 00 ⟩ |00\rangle ∣00 ⟩ and ∣ 01 ⟩ |01\rangle ∣01 ⟩
The remaining state is ∣ ψ ′ ⟩ = α ∣ 00 ⟩ + β ∣ 01 ⟩ |\psi'\rangle = \alpha|00\rangle + \beta|01\rangle ∣ ψ ′ ⟩ = α ∣00 ⟩ + β ∣01 ⟩
∣ 10 ⟩ |10\rangle ∣10 ⟩ and ∣ 11 ⟩ |11\rangle ∣11 ⟩ are removed from the state
This gives us the unnormalized state: ∣ ψ ′ ⟩ u n n o r m = α ∣ 00 ⟩ + β ∣ 01 ⟩ |\psi'\rangle_{unnorm} = \alpha|00\rangle + \beta|01\rangle ∣ ψ ′ ⟩ u nn or m = α ∣00 ⟩ + β ∣01 ⟩
The probability of this outcome is P r ( 0 ) = ∣ α ∣ 2 + ∣ β ∣ 2 Pr(0) = |\alpha|^2 + |\beta|^2 P r ( 0 ) = ∣ α ∣ 2 + ∣ β ∣ 2
∣ 00 ⟩ |00\rangle ∣00 ⟩ and ∣ 01 ⟩ |01\rangle ∣01 ⟩ are the only terms that contribute to the probability of outcome 0 0 0 for the first qubit
After measurement, the state must be ∥ ∣ ψ ∥ 2 = 1 \||\psi\|^2 = 1 ∥∣ ψ ∥ 2 = 1 , so we need to renormalize the state:
∣ ψ ′ ⟩ = ( α ∣ 00 ⟩ + β ∣ 01 ⟩ ) ∣ α ∣ 2 + ∣ β ∣ 2 |\psi'\rangle = \frac{(\alpha|00\rangle + \beta|01\rangle)}{\sqrt{|\alpha|^2 + |\beta|^2}} ∣ ψ ′ ⟩ = ∣ α ∣ 2 + ∣ β ∣ 2 ( α ∣00 ⟩ + β ∣01 ⟩)
QASM2.0
Quantum Gate QASM Equivalent Description R x ( θ ) R_x(\theta) R x ( θ ) rx Rotation around X-axis: rx(pi/2) q[0]; R y ( θ ) R_y(\theta) R y ( θ ) ry Rotation around Y-axis: ry(0) q[0]; R z ( θ ) R_z(\theta) R z ( θ ) rz Rotation around Z-axis: rz(pi) q[0]; X X X x Pauli-gate bit flip: x q[0]; Z Z Z z Pauli-gate phase flip: z q[0]; X Z XZ XZ y Pauli-gate bit+phase flip: y q[0]; H H H h Hadamard gate: h q[0]; C N O T CNOT CNOT cx Controlled NOT gate: cx q[0], q[1]; S W A P SWAP S W A P swap Swap two qubit registers: swap q[0], q[1]; C Z CZ CZ cz Controlled Z Z Z gate: cz q[0], q[1];