@ -297,6 +297,8 @@ The measurement operators of \cref{sec:measurements_probabilistic} obviously als
\subsubsection{(Real) Projective Measurements}
One of the most important special cases of measurement operators are projective measurements. As the name already suggests, projective measurements are linear projections onto subspaces of $\mathcal{B}_{\R}^n$.
\todo[inline]{content}
\subsection{Interference - Computational Power}
So far, moving computations on affine combinations to points on the unit sphere had merely subjective and rather esoteric reasons to \emph{clean up} an abstract description of a computational model. In short: It's mathematically nicer to move around on the unit sphere. This section shows, that utilizing the power of probably amplitudes one actually gains computational power compared to the previous model.
@ -342,6 +344,7 @@ a_0 \ket{0} + a_1 \ket{1}
The key observation can already be made in \cref{eq:hadamard_on_superposition}. Probability amplitudes can destructively interfere with each other. In \cref{eq:hadamard_on_superposition} this can be seen in the term $(a_0- a_1)$ and in \cref{eq:2_hadamards_on_superposition} the amplitudes cancel each other out just perfectly to restore the original input state. It can't be mentioned enough: probability amplitudes are not probabilities. Destructive Interference is not possible with stochastic matrices from \cref{sec:stocastic_matrix_model} with all their entries being strictly positive. The next section shows how interference effects can be utilized effectively to outperform any probabilistic computation.
\subsubsection{Deutsch's Algorithm}
\label{sec:deutschs_algorithm}
Given a function $f : \parensc{0,1}\to\parensc{0,1}$, the problem at hand is to determine whether $f(0)\stackrel{?}{=} f(1)$. Obviously, deterministic and even probabilistic computations need to evaluate $f$ two times, once for each input, in order to answer this question. Surprisingly, orthogonal computations only need one call to $f$. But how is that possible?
First, function evaluation needs to be addressed in the context of orthogonal computations. The requirement of orthogonality requires all computations to be reversible. But what if $f$ is not injective e.g. $f(0)= f(1)$? Well, a simple trick solves this dilemma: Instead of evaluating $f$ directly, $f$ will be wrapped by an orthogonal operator $O_f$. Note that the $\XOR$ operator:
@ -484,4 +487,42 @@ The best theoretical model is of no value if it relies on some kind of magic tha
The definition of measurements on quantum state spaces follow the definition of measurements on orthogonal state spaces (\cref{def:measurment_operator_orthogonal_state_space}), but with states $\ket{\psi}\in\mathcal{B}^n$ and complex operators $\parensc*{M_m}_{m \in\Omega}\subset\C^{(N,N)}$.
\end{definition}
This wraps up the framework of quantum computing. Fortunately, \cref{def:quantum_state_space,def:unitary_operator,def:measurment_quantum} correspond to the fundermental postulates of quantum mechanics, meaning that quantum computing with all its seemingly strange properties is in fact a physically realizable computational model!
This wraps up the framework of quantum computing. Fortunately, \cref{def:quantum_state_space,def:unitary_operator,def:measurment_quantum} correspond to the fundamental postulates of quantum mechanics, meaning that quantum computing with all its seemingly strange properties is in fact a physically realizable computational model!
\subsection{Quantum Circuits}
In theory, the framework introduced above should be enough to do quantum computation. All that needs to be done in order to develop a new algorithm is to come up with its unitary matrix. At second glance, however, one notices quickly the impracticality of this approach. It implies finding a $2^n \times2^n$ complex matrix with all required and desired properties needed to solve a $n$-qubit problem. The standard praxis in quantum algorithm design is to formulate the computation as a quantum circuit. The classical pendant to this is the relationship between boolean functions $f : \parensc{0,1}^n \to\parensc{0,1}^m$ and boolean circuits. Where $f$ is realized by a circuit of cascading boolean primitive gates. A similar situation arises in quantum computing, already illustrated by the description of Deutsch's algorithm in \cref{sec:deutschs_algorithm}. Here the complete algorithm is composed of just Hadamard gates, function application gate $U_f$ and one measurement. This makes it way easyer to understand than just one bit unitary matrix. A quantum circuit just allows though processes of the likes of: What operation performed when on which qubit? Which is much more natural to the kind of algorithmic thinking people are usually used to.
A quantum gate is just a unitary operator on a select set of qubits. Because they are unitary, quantum gates always have the same number of input and output qubits, unlike their boolean counterparts. Conceptual wires are used to connect the right qubits to the inputs and outputs of each gate. Let $U$ be a $k$-qubit gate in a $n$-qubit system, with $k < n$. Then $U$ can be extended to a $n$-qubit gate by calculating the tensor product of $U$ and a $(n-k)$-qubit identity matrix.
\begin{definition}
\label{def:gate_nbit_extension}
Let $\ket{\mathbf{x}}=\ket{x_1, \dots, x_n}$ be the $n$ qubits of a quantum system and let $U$ be a $k$-qubit quantum gate, with $k < n$. The $k$-tuple $I =(i_1, \dots, i_k)$ with $i_l, i_g \in[1,n]$ and $i_l \neq i_g$ for all $l,g$ maps $k$ qubits from $\ket{\mathbf{x}}$ to the inputs of $U$. Then,
\begin{equation*}
G_n(U,I) \coloneqq V_{\pi_I} (U \otimes\idmat_{n-k})
\end{equation*}
is the $n$-qubit extension of $U$, with $V_{\pi_I}$ being a permutation matrix that satisfies
and $\idmat_{n-k}$ is the identity operator on the remaining qubits.
\end{definition}
\begin{remark}
Two gates $U_1\in\C^{2^{k_1}}$ and $U_2\in\C^{2^{k_2}}$ acting on $I_1=(i_1^1,\dots,i_{k_1}^1)$ and $I_2=(i_1^2,\dots,i_{k_2}^2)$ respectively can be computed in parallel iff $I_1\cap I_2=\emptyset$ and thus
A $n$-qubit quantum circuit is formally described by a sequence of gates and input mappings $C =(U_l, I_l)_{l=1}^m$ with $n =\abs{\bigcup_{l=1}^m I_l}$. Using \cref{def:gate_nbit_extension}, the circuit description equals a unitary matrix according to \cref{def:unitary_operator}:
\begin{equation*}
C = G_n(U_m,I_m) \cdots G_n(U_1,I_1)
\end{equation*}
The circuit $C$ is said to be maximally parallelized if all neighboring gate extensions $G_n(U_l,I_l)$ and $G_n(U_{l+1}, I_{l+1})$ with $I_l \cap I_{l+1}=\emptyset$ are reduced to $G_n(U_l \otimes U_{l+1}, I_l I_{l+1})$.