A Layman's Introduction to
So before we get started...
I need you all to make a promise
Part One:
Classical computation is modeled via a Turing Machine
The Church-Turing thesis posits that a Turing Machine
can be used to simulate any algorithmic process
However, we spend a lot of our time
as computer scientists wondering...
How can our algorithms and calculations be done
as efficiently as possible
The first challenge: Analog Computation
Analog computers taught us that realistic noise
must be taken
into account when evaluating
the efficiency of a computational model
The second challenge: Randomized Algorithms
During the 1970s...
The Solovay-Strassen primality test was developed to
to test whether an integer $n$ was prime
However, the Solovay-Strassen test
doesn't give results with absolute
certainty...
Instead, the probability of failure is at most $2^{-k}$
How about instead of taking a "top-down" approach the this problem...
We instead take a "bottom-up" approach?
What if the Church-Turing thesis
could be derived from the laws
of physics?
Part Two:
In Quantum Mechanics,
the state of a system is encoded by a wavefunction, $|\psi\rangle$
A wavefunction is a function
that can be treated the same way as a
vector
This means that...
The basic rules for the states of a quantum system:
An example...
Suppose we are modeling an electron's spin...
Spin up
$\longrightarrow$
$|1\rangle$
Spin down
$\longrightarrow$
$|0\rangle$
1. There must only be a discrete number of possible states
$\Longrightarrow$ systems can be represented
as a linear combination of these possible states
$$|\psi\rangle = \alpha|0\rangle + \beta|1\rangle$$
2. The system can only be in one of these states when observed
$\Longrightarrow$ all states must have a magnitude of one $$\langle\psi|\psi\rangle = |\alpha|^2 + |\beta|^2 = 1$$
In other words...
$|\alpha|^2$
$\longrightarrow$
Probability that state is spin down, $|0\rangle$
$|\beta|^2$
$\longrightarrow$
Probability that state is spin up, $|1\rangle$
The quantum properties of a system can only be maintained
while the system remains unobserved
The key insight: Who said we needed to observe it?
Part Three:
We'll start with the simplest single-qubit logic gate: the not
gate
Take the qubit we already established: $$|\psi\rangle = \alpha|0\rangle + \beta|1\rangle$$
Represent the state $|\psi\rangle$ as an ordinary vector
since we know that there are only two possible states:
$$\alpha|0\rangle + \beta|1\rangle \longrightarrow
\begin{bmatrix} \alpha \\ \beta \end{bmatrix}$$
Then all we need to do is define a transformation $X$ such that: $$X\begin{bmatrix} \alpha \\ \beta \end{bmatrix} = \begin{bmatrix} \beta \\ \alpha \end{bmatrix}$$
or, equivalently... $$\alpha|0\rangle + \beta|1\rangle \quad \longrightarrow \quad \beta|0\rangle + \alpha|1\rangle$$
That's easy...
$$X = \begin{bmatrix}0 & 1 \\ 1 & 0\end{bmatrix}$$
What are the limitations to how we can transform quantum states?
Recall that all we really ask from a state is that it be normalized
(i.e. that its magnitude is one)
Thus, all we ask from transformations is that they are unitary: $$U^\dagger U = I$$
This has a couple interesting consequences...
Some example single-qubit gates...
The Z gate: $\quad Z = \begin{bmatrix}1 & 0 \\ 0 & -1\end{bmatrix}$
The Hadamard gate: $\quad H = \frac{1}{\sqrt{2}}\begin{bmatrix}1 & 1 \\ 1 & -1\end{bmatrix}$
Let's move on to a new system...
Let $|\psi\rangle$ represent the spins of two independent electrons: $$|\psi\rangle = \alpha_{00}|00\rangle + \alpha_{01}|01\rangle + \alpha_{10}|10\rangle + \alpha_{11}|11\rangle \;\longrightarrow\; \begin{bmatrix}\alpha_{00} \\ \alpha_{01} \\ \alpha_{10} \\ \alpha_{11}\end{bmatrix}$$
We can therefore define our first multi-qubit gate:
the cnot
gate
In a cnot
gate, the first qubit is designated the control qubit
While the second qubit is referred to as the target qubit
$$|A,B\rangle\; \longrightarrow\; |A,B\oplus A\rangle$$
$|00\rangle\; \longrightarrow\; |00\rangle$ | $\quad|01\rangle\; \longrightarrow\; |01\rangle$ |
$|10\rangle\; \longrightarrow\; |11\rangle$ | $\quad|11\rangle\; \longrightarrow\; |10\rangle$ |
The cnot
gate, together with the set of all single-qubit gates,
can be combined to construct any arbitrary quantum gate
The second multi-qubit gate: the Toffoli gate
The Toffoli gate can implement the classical nand
gate
Therefore, it can be used to perform any classical computation
So let's build a simple circuit
Suppose we have some block $U_f$ such that $$|x,y\rangle \longrightarrow |x,y\oplus f(x)\rangle$$ where $f$ is a function that maps one bit to one bit
A huge advantage to quantum circuits is quantum parallelism
This allows quantum circuits to calculate a
function $f$ for different inputs simultaneously
Part 4:
Since all quantum transformations must be reversible...
This implies that information cannot be either
created or destroyed in a quantum circuit
This also implies the no-cloning theorem:
It is impossible to make a copy of an unknown quantum state
Lastly,
it is also impossible to build
quantum circuits that involve feedback
All in all... how feasible is quantum computing really?
Is it even worth it?
We don't know
Recommended reading...
Michael A. Nielsen & Isaac L. Chuang