Learning Home Catalog Composer Lab
Learning
Home Catalog Composer Lab Return to course
Learning
Basics of quantum information
Single systems Multiple systems Quantum circuits Entanglement in action Exam

Single systems

Introduction

This lesson introduces the basic framework of , including the description of quantum states as vectors with complex number entries, measurements that allow classical information to be extracted from quantum states, and operations on quantum states that are described by unitary matrices. We will restrict our attention in this lesson to the comparatively simple setting in which a single system is considered in isolation. In the next lesson, we will expand our view to multiple systems, which can interact with one another and be correlated, for instance.

There are, in fact, two common mathematical descriptions of quantum information. The one introduced in this lesson is the simpler of the two. This description is sufficient for understanding many (or perhaps most) quantum algorithms, and is a natural place to start from a pedagogical viewpoint.

A more general, and ultimately more powerful description of quantum information, in which quantum states are represented by density matrices, will be introduced in a later lesson. The density matrix description is essential to the study of quantum information, for several reasons. As examples, they can be used to model the effects of on quantum computations, or the state of one piece of an entangled pair. More generally, density matrices serve as a mathematical basis for quantum information theory and quantum cryptography, and are quite beautiful from a mathematical perspective. For these reasons, we encourage you to learn more about it when the time is right, but for now our focus will be on the simpler description of quantum information.

Classical information

To describe quantum information and how it works, we will begin with an overview of information. Some readers may wonder why we choose to devote so much attention to classical information in a course on quantum information, but there are good reasons. For one, although quantum and classical information are different in some pretty spectacular ways, their mathematical descriptions are actually quite similar.

Classical information also serves as a familiar point of reference when studying quantum information, as well as a source of analogy that goes a surprisingly long way. It is common that people ask questions about quantum information that have natural classical analogs — often with simple answers that can provide both clarity and insight into the original questions about quantum information. Indeed, it is not at all unreasonable to claim that one cannot truly understand quantum information without understanding classical information.

Some readers may already be familiar with the material to be discussed in this section, while others may not — but the discussion is meant for both audiences. In addition to highlighting the aspects of classical information that are most relevant to an introduction to quantum information, this section introduces the Dirac notation, which is often used to describe vectors and matrices in quantum information and computation. As it turns out, the Dirac notation is not specific to quantum information: it can equally well be used in the context of classical information, as well as for many other settings in which vectors and matrices arise.

Classical states and probability vectors

Suppose that we have a that stores information. More specifically, let's assume that this system can be in one of a finite number of classical states at each instant. Here, the term "classical state" should be understood in intuitive terms, as a configuration that can be recognized and described unambiguously.

The archetypal example, which we will come back to repeatedly, is that of a bit, which is a system whose classical states are 00 and 1.1. Other examples include a standard six-sided die, whose classical states are 1,1, 2,2, 3,3, 4,4, 5,5, and 6;6; a nucleobase in a strand of DNA, whose classical states are A, C, G, and T; and a switch on an electric fan, whose classical states are (commonly) high, medium, low, and off. In mathematical terms, the specification of the classical states of a system are, in fact, the starting point: we define a bit to be a system that has classical states 00 and 1,1, and likewise for systems having different classical state sets.

For the sake of this discussion, let us give the name X\mathsf{X} to the system being considered, and let us use the symbol Σ\Sigma to refer to the set of classical states of X.\mathsf{X}. As well as the assumption that Σ\Sigma is finite, as mentioned earlier, we naturally assume that Σ\Sigma is nonempty: it is nonsensical for a physical system to have no states at all. Although it does make sense to consider physical systems having infinitely many classical states, we will ignore this possibility for now. There are plenty of interesting ideas to explore even within only a finite number of states. For the sake of convenience and brevity, we will hereafter use the term classical state set to mean any finite and nonempty set.

Here are a few examples:

  1. If X\mathsf{X} is a bit, then Σ={0,1}.\Sigma = \{0,1\}. In words, we'll refer to this set as the binary alphabet.
  2. If X\mathsf{X} is a six-sided die, then Σ={1,2,3,4,5,6}.\Sigma = \{1,2,3,4,5,6\}.
  3. If X\mathsf{X} is an electric fan switch, then Σ={high,medium,low,off}.\Sigma = \{\mathrm{high}, \mathrm{medium}, \mathrm{low}, \mathrm{off}\}.

When thinking about X\mathsf{X} as a carrier of information, the different classical states of X\mathsf{X} could be assigned certain meanings, leading to different outcomes or consequences. In such cases, it may be sufficient to describe X\mathsf{X} as simply being in one of its possible classical states. For instance, if X\mathsf{X} is a fan switch, we might happen to know with certainty that it is set to high.

Often in information processing, however, our knowledge of X\mathsf{X} is uncertain. We represent our knowledge of the classical state of X\mathsf{X} by assigning probabilities to each classical state, resulting in a probabilistic state. For example, suppose X\mathsf{X} is a bit. Based on what we know or expect about what has happened to X\mathsf{X} in the past, perhaps we believe that X\mathsf{X} is in the classical state 00 with probability 3/43/4 and in the state 11 with probability 1/4.1/4. We may represent such a belief by writing this:

Pr(X=0)=34andPr(X=1)=14.\operatorname{Pr}(\mathsf{X}=0) = \frac{3}{4} \quad\text{and}\quad \operatorname{Pr}(\mathsf{X}=1) = \frac{1}{4}.

A more succinct way to represent this probabilistic state is by a column vector.

(3414)\begin{pmatrix} \frac{3}{4}\\[2mm] \frac{1}{4} \end{pmatrix}

The probability of the bit being 00 is placed at the top of the vector and the probability of the bit being 11 is placed at the bottom, simply because this is the conventional way to order the set {0,1}.\{0,1\}.

In general, we can represent a probabilistic state of a system having any classical state set in the same way, as a vector of probabilities. The probabilities can be ordered in any way we choose — which is typically determined by some natural or default way to order the classical state set we're working with. To be precise, we can represent any probabilistic state through a column vector satisfying two properties:

  1. All entries of the vector are nonnegative real numbers.
  2. The sum of the entries is equal to 1.1.

Conversely, any column vector that satisfies these two properties can be taken as a representation of a probabilistic state. Hereafter, we will refer to vectors of this form as probability vectors.

Alongside the succinctness of this notation, identifying probabilistic states as column vectors has the advantage that operations on probabilistic states are represented through matrix–vector multiplication, as will be discussed below.

Measuring probabilistic states

Now let us briefly consider what happens if we measure a system when it is in a probabilistic state. By measuring a system, we mean that we look at the system and unambiguously recognize whatever classical state it is in. Intuitively, we can never "see" a system in a probabilistic state; a measurement will yield exactly one of the allowed classical states.

Measurement changes our knowledge of the system, and therefore changes the probabilistic state that we associate with that system: if we recognize that X\mathsf{X} is in the classical state aΣ,a\in\Sigma, then the new probability vector representing our knowledge of X\mathsf{X} becomes a vector having a 11 in the entry corresponding to aa and 00 for all other entries. This vector indicates that X\mathsf{X} is in the classical state aa with certainty, which we know having just recognized it.

We denote the vector just described, meaning the vector having a 11 in the entry corresponding to aa and 00 for all other entries, by a.\vert a\rangle. This vector is read as "ket aa" for a reason that will be explained shortly. Vectors of this sort are also called standard basis vectors.

For example, assuming that the system we have in mind is a bit, the standard basis vectors are given by

0=(10)and1=(01). \vert 0\rangle = \begin{pmatrix}1\\[1mm] 0\end{pmatrix} \quad\text{and}\quad \vert 1\rangle = \begin{pmatrix}0\\[1mm] 1\end{pmatrix}.

Notice that any two-dimensional column vector can be expressed as a linear combination of these two vectors. For example, we have

(3414)=340+141.\begin{pmatrix} \frac{3}{4}\\[2mm] \frac{1}{4} \end{pmatrix} = \frac{3}{4}\,\vert 0\rangle + \frac{1}{4}\,\vert 1\rangle.

This fact naturally generalizes to any classical state set: any column vector is a linear combination over the classical states. We will often express vectors in this way.

Returning to the change of a probabilistic state upon being measured, we may note the following connection to our everyday experiences. Suppose we flip a fair coin, but cover up the coin before looking at it. We would then say that its probabilistic state is

(1212)=12heads+12tails.\begin{pmatrix} \frac{1}{2}\\[2mm] \frac{1}{2} \end{pmatrix} = \frac{1}{2}\,\vert\text{heads}\rangle + \frac{1}{2}\,\vert\text{tails}\rangle.

Here, the classical state set of our coin is {heads,tails}.\{\text{heads},\text{tails}\}. We'll choose to order these states as heads first, tails second.

heads=(10)andtails=(01)\vert\text{heads}\rangle = \begin{pmatrix}1\\[1mm] 0\end{pmatrix} \quad\text{and}\quad \vert\text{tails}\rangle = \begin{pmatrix}0\\[1mm] 1\end{pmatrix}

If we were to uncover the coin and look at it, we would see one of the two classical states: heads or tails. Supposing that the result were tails, we would naturally update our description of the probabilistic state of the coin so that it becomes tails.|\text{tails}\rangle. Of course, if we were then to cover up the coin, and then uncover it and look at it again, the classical state would still be tails, which is consistent with the probabilistic state being described by the vector tails.|\text{tails}\rangle. This may seem trivial, and in some sense it is. However, quantum systems behave in an entirely analogous way, yet their measurement properties are frequently considered unusual or "spooky." By establishing the measurement properties of classical systems, the analogous behavior for quantum information might seem less unusual.

One final remark concerning measurements of probabilistic states: they may describe knowledge or belief, not necessarily something actual. The state of our coin after we flip it, but before we look, is either heads or tails, and we simply don't know which until we look. Doing so doesn't actually change the state, but only our knowledge of it. Upon seeing that the classical state is tails, we naturally update our knowledge by assigning the vector tails|\text{tails}\rangle to the coin, but to someone else who didn't see the coin when it was uncovered, the probabilistic state remains unchanged. This is not a cause for concern: different individuals may have different knowledge or beliefs about a particular system, and hence describe that system by different probability vectors.

Classical operations

In the last part of this brief summary of classical information, we will consider the sorts of operations one might perform on a classical system.

Deterministic operations

First, there are operations, where each classical state aΣa\in\Sigma is transformed into f(a)f(a) for some function ff of the form f:ΣΣ.f:\Sigma\rightarrow\Sigma.

For example, if Σ={0,1},\Sigma = \{0,1\}, there are four functions of this form, f1,f_1, f2,f_2, f3,f_3, and f4,f_4, which can be represented by tables of values as follows:

af1(a)0010af2(a)0011af3(a)0110af4(a)0111\begin{array}{c|c} a & f_1(a)\\ \hline 0 & 0\\ 1 & 0 \end{array} \qquad \begin{array}{c|c} a & f_2(a)\\ \hline 0 & 0\\ 1 & 1 \end{array} \qquad \begin{array}{c|c} a & f_3(a)\\ \hline 0 & 1\\ 1 & 0 \end{array} \qquad \begin{array}{c|c} a & f_4(a)\\ \hline 0 & 1\\ 1 & 1 \end{array}

The first and last of these functions are constant: f1(a)=0f_1(a) = 0 and f4(a)=1f_4(a) = 1 for each aΣ.a\in\Sigma. The middle two are not constant, they are balanced, in the sense that the two possible output values occur the same number of times as we range over the possible inputs. The function f2f_2 is the : f2(a)=af_2(a) = a for each aΣ.a\in\Sigma. And f3f_3 is the function f3(0)=1f_3(0) = 1 and f3(1)=0,f_3(1) = 0, which is better-known as the NOT function.

The actions of deterministic operations on probabilistic states can be represented by matrix-vector multiplication. Specifically, the matrix MM that represents a given function f:ΣΣf:\Sigma\rightarrow\Sigma is the one that satisfies

Ma=f(a)M \vert a \rangle = \vert f(a)\rangle

for every aΣ.a\in\Sigma. Such a matrix always exists and is unique.

For example, the matrices M1,,M4M_1,\ldots,M_4 corresponding to the functions f1,,f4f_1,\ldots,f_4 above are as follows:

M1=(1100),M2=(1001),M3=(0110),M4=(0011). M_1 = \begin{pmatrix} 1 & 1\\ 0 & 0 \end{pmatrix}, \hspace{4mm} M_2 = \begin{pmatrix} {1} & {0}\\ {0} & {1} \end{pmatrix}, \hspace{4mm} M_3 = \begin{pmatrix} {0} & {1}\\ {1} & {0} \end{pmatrix}, \hspace{4mm} M_4 = \begin{pmatrix} {0} & {0}\\ {1} & {1} \end{pmatrix}.

Matrices that represent deterministic operations always have exactly one 11 in each column, and 00 for all other entries.

A convenient way to represent matrices of these and other forms makes use of an analogous notation for row vectors to the one for column vectors discussed previously. We denote by a\langle a \vert the row vector having a 11 in the entry corresponding to aa and zero for all other entries, for each aΣ.a\in\Sigma. This vector is read as "bra a.a."

For example, if Σ={0,1},\Sigma = \{0,1\}, then

0=(10)and1=(01). \langle 0 \vert = \begin{pmatrix} 1 & 0 \end{pmatrix} \quad\text{and}\quad \langle 1 \vert = \begin{pmatrix} 0 & 1 \end{pmatrix}.

For an arbitrary choice of a classical state set Σ,\Sigma, viewing row vectors and column vectors as matrices and performing the matrix multiplication ba,\vert b\rangle \langle a\vert, one obtains a square matrix having a 11 in the entry corresponding to the pair (b,a),(b,a), meaning that the row of the entry corresponds to bb and the column corresponds to a,a, and 00 for all other entries. For example,

01=(0100). \vert 0 \rangle \langle 1 \vert = \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix}.

Using this notation, for any function f:ΣΣ,f:\Sigma\rightarrow\Sigma, we may express the matrix MM corresponding to the function ff as

M=aΣf(a)a. M = \sum_{a\in\Sigma} \vert f(a) \rangle \langle a \vert.

Now, if we again think about vectors as matrices, but this time consider the multiplication ab,\langle a \vert \vert b \rangle, then we obtain a 1×11\times 1 matrix, which we can think about as a scalar (i.e., a number). For the sake of tidiness we write this product as ab\langle a \vert b\rangle rather than ab.\langle a \vert \vert b \rangle. This product satisfies the following simple formula:

ab={1a=b0ab. \langle a \vert b \rangle = \begin{cases} 1 & a = b\\ 0 & a \neq b. \end{cases}

Using this observation, together with the fact that matrix multiplication is associative and linear, we obtain

Mb=(aΣf(a)a)b=aΣf(a)ab=f(b), M \vert b \rangle = \Biggl( \sum_{a\in\Sigma} \vert f(a) \rangle \langle a \vert \Biggr) \vert b\rangle = \sum_{a\in\Sigma} \vert f(a) \rangle \langle a \vert b \rangle = \vert f(b)\rangle,

for each bΣ,b\in\Sigma, which is what we require of M.M.

As we will discuss in greater detail in Lesson 3, ab\langle a \vert b \rangle may also be seen as an inner product between the vectors a\vert a\rangle and b.\vert b\rangle. Inner products are critically important in quantum information, but we will delay a discussion of them until they are needed.

At this point the names "bra" and "ket" may be evident: putting a "bra" a\langle a\vert together with a "ket" b\vert b\rangle yields a "bracket" ab.\langle a \vert b\rangle. This notation and terminology is due to , and for this reason is known as the Dirac notation.

Probabilistic operations and stochastic matrices

In addition to deterministic operations, we have probabilistic operations.

For example, consider an operation on a bit where, if the classical state of the bit is 0,0, it is left alone, and if the classical state of the bit is 1,1, it is flipped to 00 with probability 1/2.1/2. This operation is represented by the matrix

(112012). \begin{pmatrix} 1 & \frac{1}{2}\\[1mm] 0 & \frac{1}{2} \end{pmatrix}.

We can check that this matrix does the correct thing by multiplying with the standard basis vectors.

For an arbitrary choice of a classical state set, we can describe the set of all probabilistic operations in mathematical terms as those that are represented by matrices, which are matrices satisfying these two properties:

  1. All entries are nonnegative real numbers.
  2. The entries in every column sum to 1.1.

Equivalently, stochastic matrices are matrices whose columns all form probability vectors.

We can think about probabilistic operations at an intuitive level as ones where randomness might somehow be used or introduced during the operation, just like in the example above. With respect to the stochastic matrix description of a probabilistic operation, each column can be viewed as a vector representation of the probabilistic state that is generated given whatever classical state input corresponds to that column.

We can also think about stochastic matrices as being exactly those matrices that always map probability vectors to probability vectors. That is, stochastic matrices always map probability vectors to probability vectors, and any matrix that always maps probability vectors to probability vectors must be a stochastic matrix.

Finally, another way to think about probabilistic operations is that they are random choices of deterministic operations. For instance, we can think about the operation in the example above as applying either the identity function or the constant 0 function, each with probability 1/2.1/2. This is consistent with the equation

(112012)=12(1001)+12(1100). \begin{pmatrix} 1 & \frac{1}{2}\\[1mm] 0 & \frac{1}{2} \end{pmatrix} = \frac{1}{2} \begin{pmatrix} 1 & 0\\[1mm] 0 & 1 \end{pmatrix} + \frac{1}{2} \begin{pmatrix} 1 & 1\\[1mm] 0 & 0 \end{pmatrix}.

Such an expression is always possible, for an arbitrary choice of a classical state set and any stochastic matrix with rows and columns identified with that classical state set.

Compositions of probabilistic operations

Suppose that X\mathsf{X} is a system having classical state set Σ,\Sigma, and M1,,MnM_1,\ldots,M_n are stochastic matrices representing probabilistic operations on the system X.\mathsf{X}.

If the first operation M1M_1 is applied to the probabilistic state represented by a probability vector u,u, the resulting probabilistic state is represented by the vector M1u.M_1 u. If we then apply the second probabilistic operation M2M_2 to this new probability vector, we obtain the probability vector

M2(M1u)=(M2M1)u. M_2 (M_1 u) = (M_2 M_1) u.

The equality follows from the fact that matrix multiplication (which includes matrix-vector multiplication as a special case) is an operation. Thus, the probabilistic operation obtained by the first and second probabilistic operations, where we first apply M1M_1 and then apply M2,M_2, is represented by the matrix M2M1,M_2 M_1, which is necessarily stochastic.

More generally, composing the probabilistic operations represented by the matrices M1,,MnM_1,\ldots,M_n in that order, meaning that M1M_1 is applied first, M2M_2 is applied second, and so on, with MnM_n applied last, is represented by the matrix

MnM1. M_n \,\cdots\, M_1.

Note that the ordering is important here: although matrix multiplication is associative, it is not a operation in general.

For example, if we have

M1=(1100)andM2=(0110), M_1 = \begin{pmatrix} 1 & 1\\[1mm] 0 & 0 \end{pmatrix} \quad\text{and}\quad M_2 = \begin{pmatrix} 0 & 1\\[1mm] 1 & 0 \end{pmatrix},

then

M2M1=(0011)andM1M2=(1100). M_2 M_1 = \begin{pmatrix} 0 & 0 \\[1mm] 1 & 1 \end{pmatrix} \quad\text{and}\quad M_1 M_2 = \begin{pmatrix} 1 & 1\\[1mm] 0 & 0 \end{pmatrix}.

That is, the order in which probabilistic operations are composed matters: changing the order in which operations are applied in a composition can change the resulting operation.

Quantum information

Now we move on to quantum information, where we make a different choice for the type of vector that represents a state — in this case a quantum state — of the system being considered. As in the previous section, we'll be concerned with systems having finite and nonempty sets of classical states, and we will make use of much of the notation that was introduced in that section.

Quantum state vectors

A quantum state of a system is represented by a column vector, similar to probabilistic states. As before, the indices of the vector label the classical states of the system. Vectors representing quantum states are characterized by these two properties:

  1. The entries of a quantum state vector are complex numbers.
  2. The sum of the absolute values squared of the entries of a quantum state vector is 1.1.

Thus, in contrast to the probabilistic case, vectors representing quantum states need not have nonnegative real number entries, and it is the sum of the absolute values squared of the entries (as opposed to the sum of the entries) that must equal 1.1. Simple as these changes are, they give rise to all the differences between quantum and classical information. Any speedup from a quantum computer, or improvement in a communication protocol, ultimately derives from these simple mathematical changes.

The Euclidean norm of a column vector

v=(α1αn) v = \begin{pmatrix} \alpha_1\\ \vdots\\ \alpha_n \end{pmatrix}

is denoted and defined as follows:

v=k=1nαk2. \| v \| = \sqrt{\sum_{k=1}^n |\alpha_k|^2}.

The condition that the sum of the absolute values squared of a quantum state vector equals 11 is therefore equivalent to that vector having Euclidean norm equal to 1.1. That is, quantum state vectors are unit vectors with respect to the Euclidean norm.

Examples of qubit states

The term qubit refers to a quantum system whose classical state set is {0,1}.\{0,1\}. That is, a qubit is really just a bit — but by using this name we explicitly recognize that this bit can be in a quantum state.

These are examples of quantum states of a qubit:

(10)=0and(01)=1, \begin{pmatrix} 1\\[2mm] 0 \end{pmatrix} = \vert 0\rangle \quad\text{and}\quad \begin{pmatrix} 0\\[2mm] 1 \end{pmatrix} = \vert 1\rangle,(1212)=120+121,(1) \begin{pmatrix} \frac{1}{\sqrt{2}}\\[2mm] \frac{1}{\sqrt{2}} \end{pmatrix} = \frac{1}{\sqrt{2}}\,\vert 0\rangle + \frac{1}{\sqrt{2}}\,\vert 1\rangle, \tag{1}

and

(1+2i323)=1+2i30231. \begin{pmatrix} \frac{1+2i}{3}\\[2mm] -\frac{2}{3} \end{pmatrix} = \frac{1+2i}{3}\,\vert 0\rangle - \frac{2}{3}\,\vert 1\rangle.

The first two examples, 0\vert 0\rangle and 1,\vert 1\rangle, illustrate that standard basis elements are valid quantum state vectors: their entries are complex numbers (where the imaginary part of these numbers happens to be 00) and computing the sum of the absolute values squared of the entries yields

12+02=1and02+12=1, \vert 1\vert^2 + \vert 0\vert^2 = 1 \quad\text{and}\quad \vert 0\vert^2 + \vert 1\vert^2 = 1,

as required. Similar to the classical setting, we associate the quantum state vectors 0\vert 0\rangle and 1\vert 1\rangle with a qubit being in the classical state 00 or 1,1, respectively, with certainty.

For the other two examples, we again have complex number entries, and computing the sum of the absolute value squared of the entries yields

122+122=12+12=1 \biggl\vert\frac{1}{\sqrt{2}}\biggr\vert^2 + \biggl\vert\frac{1}{\sqrt{2}}\biggr\vert^2 = \frac{1}{2} + \frac{1}{2} = 1

and

1+2i32+232=59+49=1. \biggl\vert \frac{1+2i}{3} \biggr\vert^2 + \biggl\vert -\frac{2}{3} \biggr\vert^2 = \frac{5}{9} + \frac{4}{9} = 1.

These are therefore valid quantum state vectors. Note that they are linear combinations of the states 0\vert 0 \rangle and 1.\vert 1 \rangle. We often say that these states are superpositions of the 00 and 11 states. Within the context of quantum states, "superposition" and "linear combination" are essentially synonymous.

The example (1)(1) of a qubit state vector above is very commonly encountered — it is called the plus state and is denoted as follows:

+=120+121. \vert + \rangle = \frac{1}{\sqrt{2}} \vert 0\rangle + \frac{1}{\sqrt{2}} \vert 1\rangle.

We also use the notation

=120121 \vert - \rangle = \frac{1}{\sqrt{2}} \vert 0\rangle - \frac{1}{\sqrt{2}} \vert 1\rangle

to refer to a related quantum state vector where the second entry is negative rather than positive, and we call this state the minus state. This sort of notation, where some symbol other than one referring to a classical state appears inside of a ket, is common — we can use whatever name we wish inside of a ket to name a vector. Indeed, it is quite common to use the notation ψ,\vert\psi\rangle, or other names in place of ψ,\psi, to refer to an arbitrary vector that may not necessarily be a standard basis vector.

Notice that if we have a vector ψ\vert \psi \rangle whose indices correspond to some classical state set Σ,\Sigma, and if aΣa\in\Sigma is an element of this classical state set, then the (matrix) product aψ\langle a\vert \vert \psi\rangle is equal to the entry of the vector ψ\vert \psi \rangle whose index corresponds to a.a. As we did when ψ\vert \psi \rangle is a standard basis vector, we write aψ\langle a \vert \psi \rangle rather than aψ\langle a\vert \vert \psi\rangle for the sake of readability.

For example, if Σ={0,1}\Sigma = \{0,1\} and

ψ=1+2i30231=(1+2i323),(2)\vert \psi \rangle = \frac{1+2i}{3} \vert 0\rangle - \frac{2}{3} \vert 1\rangle = \begin{pmatrix} \frac{1+2i}{3}\\[2mm] -\frac{2}{3} \end{pmatrix}, \tag{2}

then

0ψ=1+2i3and1ψ=23. \langle 0 \vert \psi \rangle = \frac{1+2i}{3} \quad\text{and}\quad \langle 1 \vert \psi \rangle = -\frac{2}{3}.

It must be understood when using this notation that ψ\langle \psi \vert refers to the row vector obtained by taking the conjugate-transpose of the column vector ψ,\vert\psi\rangle, where the vector is transposed from a column vector to a row vector and each entry is replaced by its complex conjugate.

For example, if ψ\vert\psi\rangle is the vector defined in (2),(2), then

ψ=12i30231=(12i323).\langle\psi\vert = \frac{1-2i}{3} \langle 0\vert - \frac{2}{3} \langle 1\vert = \begin{pmatrix} \frac{1-2i}{3} & -\frac{2}{3} \end{pmatrix}.

The reason we take the complex conjugate, in addition to the transpose, will become more clear in Lesson 3 when we discuss the inner product.

Quantum states of other systems

We can consider quantum states of systems having arbitrary classical state sets.

For example, here is a quantum state vector for an electrical fan switch:

(120i212)=12highi2low+12off. \begin{pmatrix} \frac{1}{2}\\[1mm] 0 \\[1mm] -\frac{i}{2}\\[1mm] \frac{1}{\sqrt{2}} \end{pmatrix} = \frac{1}{2} \vert\mathrm{high}\rangle - \frac{i}{2} \vert\mathrm{low}\rangle + \frac{1}{\sqrt{2}} \vert\mathrm{off}\rangle.

The assumption here is that the classical states are ordered as high, medium, low, off. There may be no particular reason why one would want to consider a quantum state of an electrical fan switch, but it is possible in principle.

Here's another example, this time of a quantum decimal digit whose classical states are 0,1,,9:0, 1, \ldots, 9:

1385(12345678910)=1385k=09(k+1)k. \frac{1}{\sqrt{385}} \begin{pmatrix} 1\\ 2\\ 3\\ 4\\ 5\\ 6\\ 7\\ 8\\ 9\\ 10 \end{pmatrix} = \frac{1}{\sqrt{385}}\sum_{k = 0}^9 (k+1) \vert k \rangle.

This example illustrates the convenience of writing state vectors using the Dirac notation. For this particular example, the column vector representation is merely cumbersome — but if there were significantly more classical states it would become unusable. The Dirac notation, in contrast, supports precise descriptions of large and complicated vectors in a compact form.

The Dirac notation also allows for the expression of vectors where different aspects of the vectors are indeterminate (meaning unknown or not yet established). For example, for an arbitrary classical state set Σ,\Sigma, we can consider the quantum state vector

1ΣaΣa, \frac{1}{\sqrt{|\Sigma|}} \sum_{a\in\Sigma} \vert a \rangle,

which is a uniform superposition over the classical states in Σ.\Sigma. (Here, the notation Σ\vert\Sigma\vert refers to the number of elements in Σ.\Sigma.)

We'll encounter much more complicated expressions of quantum state vectors in later lessons, where the use of column vectors would be impractical or impossible. In fact, we'll mostly abandon the column vector representation of state vectors, except for vectors having a small number of entries (often in the context of examples), where it may be helpful to display and examine the entries explicitly.

There is one more reason why expressing state vectors using the Dirac notation is generally more convenient: it alleviates the need to explicitly specify an ordering of the classical states (or, equivalently, the correspondence between classical states and vector indices). For example, a quantum state vector for a system having classical state set {,,,},\{\clubsuit,\diamondsuit,\heartsuit,\spadesuit\}, such as

12+i212i2, \frac{1}{2} \vert\clubsuit\rangle + \frac{i}{2} \vert\diamondsuit\rangle - \frac{1}{2} \vert\heartsuit\rangle - \frac{i}{2} \vert\spadesuit\rangle,

is unambiguously described by this expression, and there really is no need to choose or specify an ordering of this classical state set in order to make sense of the expression. In this case, it is not difficult to simply specify an ordering of the standard card suits — for instance, we could order them as follows: ,\clubsuit, ,\diamondsuit, ,\heartsuit, .\spadesuit. If we choose this particular ordering, the quantum state vector above would be represented by the column vector

(12i212i2).\begin{pmatrix} \frac{1}{2}\\[2mm] \frac{i}{2}\\[2mm] -\frac{1}{2}\\[2mm] -\frac{i}{2} \end{pmatrix}.

In general, however, it is convenient to simply ignore the question of how classical state sets are ordered, and take the view that quantum state vectors are directly indexed by classical states.

Measuring quantum states

Next let us consider what happens when a quantum state is measured, focusing on a simple type of measurement known as a standard basis measurement. (There are more general notions of measurement that will be discussed later on.)

Similar to the probabilistic setting, when a system in a quantum state is measured, the observer performing the measurement won't see a quantum state vector, but rather some classical state. In this sense, measurements act as the interface between quantum and classical information, through which classical information is extracted from quantum states.

The rule is simple: if a quantum state is measured, each classical state of the system results with probability equal to the absolute value squared of the entry in the quantum state vector corresponding to that classical state. This is known as the Born rule in quantum mechanics. Notice that this rule is consistent with the requirement that the absolute values squared of the entries in a quantum state vector sum to 1,1, as it implies that the probabilities of different classical state measurement outcomes sum to 1.1.

For example, measuring the plus state

+=120+121 \vert + \rangle = \frac{1}{\sqrt{2}} \vert 0 \rangle + \frac{1}{\sqrt{2}} \vert 1 \rangle

results in the two possible outcomes, 00 and 1,1, with probabilities as follows.

Pr(outcome is 0)=0+2=122=12 \operatorname{Pr}(\text{outcome is 0}) = \bigl\vert \langle 0 \vert + \rangle \bigr\vert^2 = \biggl\vert \frac{1}{\sqrt{2}} \biggr\vert^2 = \frac{1}{2}Pr(outcome is 1)=1+2=122=12 \operatorname{Pr}(\text{outcome is 1}) = \bigl\vert \langle 1 \vert + \rangle \bigr\vert^2 = \biggl\vert \frac{1}{\sqrt{2}} \biggr\vert^2 = \frac{1}{2}

Interestingly, measuring the minus state

=120121 \vert - \rangle = \frac{1}{\sqrt{2}} \vert 0 \rangle - \frac{1}{\sqrt{2}} \vert 1 \rangle

results in exactly the same probabilities for the two outcomes.

Pr(outcome is 0)=02=122=12 \operatorname{Pr}(\text{outcome is 0}) = \bigl\vert \langle 0 \vert - \rangle \bigr\vert^2 = \biggl\vert \frac{1}{\sqrt{2}} \biggr\vert^2 = \frac{1}{2}Pr(outcome is 1)=12=122=12 \operatorname{Pr}(\text{outcome is 1}) = \bigl\vert \langle 1 \vert - \rangle \bigr\vert^2 = \biggl\vert -\frac{1}{\sqrt{2}} \biggr\vert^2 = \frac{1}{2}

This suggests that, as far as standard basis measurements are concerned, the plus and minus states are exactly the same. Why should we care to make a distinction, then? We will begin to address this question in the subsection following this one.

Of course, measuring the quantum state 0\vert 0\rangle results in the classical state 00 with certainty, and likewise measuring the quantum state 1\vert 1\rangle results in the classical state 11 with certainty. This is consistent with the identification of these quantum states with the system being in the corresponding classical state, as was suggested previously.

As a final example, measuring the state

ψ=1+2i30231 \vert \psi \rangle = \frac{1+2i}{3} \vert 0\rangle - \frac{2}{3} \vert 1\rangle

has probabilities given by

Pr(outcome is 0)=0ψ2=1+2i32=59, \operatorname{Pr}(\text{outcome is 0}) = \bigl\vert \langle 0 \vert \psi \rangle \bigr\vert^2 = \biggl\vert \frac{1+2i}{3} \biggr\vert^2 = \frac{5}{9},

and

Pr(outcome is 1)=1ψ2=232=49. \operatorname{Pr}(\text{outcome is 1}) = \bigl\vert \langle 1 \vert \psi \rangle \bigr\vert^2 = \biggl\vert -\frac{2}{3} \biggr\vert^2 = \frac{4}{9}.

Unitary operations

Thus far, it may not be evident why quantum information is fundamentally different from classical information. That is, when a quantum state is measured, the probability to obtain each classical state is given by the absolute value squared of the corresponding vector entry — so why not simply record these probabilities in a probability vector?

The answer, at least in part, is that the set of allowable operations that can be performed on a quantum state is different than it is for classical information. Similar to the probabilistic setting, operations on quantum states are linear mappings — but rather than being represented by stochastic matrices as in the classical case, operations on quantum state vectors are represented by unitary matrices.

A square matrix UU having complex number entries is unitary if it satisfies the equations

UU=IUU=I.(3) \begin{aligned} U U^{\dagger} &= \mathbb{I} \\ U^{\dagger} U &= \mathbb{I}. \end{aligned} \tag{3}

Here, I\mathbb{I} is the identity matrix, and UU^{\dagger} is the conjugate transpose of U,U, meaning the matrix obtained by transposing UU and taking the complex conjugate of each entry.

U=UT U^{\dagger} = \overline{U^T}

If either of the two equalities numbered (3)(3) above is true, then the other must also be true. Both equalities are equivalent to UU^{\dagger} being the inverse of U:U:

U1=U. U^{-1} = U^{\dagger}.

(Warning: if MM is not a square matrix, then it could be that MM=IM^{\dagger} M = \mathbb{I} and MMI,M M^{\dagger} \neq \mathbb{I}, for instance. The equivalence of the two equalities in the first equation above is only true for square matrices.)

The condition that UU is unitary is equivalent to the condition that multiplication by UU does not change the Euclidean norm of any vector. That is, an n×nn\times n matrix UU is unitary if and only if Uψ=ψ\| U \vert \psi \rangle \| = \|\vert \psi \rangle \| for every nn-dimensional column vector ψ\vert \psi \rangle with complex number entries. Thus, because the set of all quantum state vectors is the same as the set of vectors having Euclidean norm equal to 1,1, multiplying a unitary matrix to a quantum state vector results in another quantum state vector.

Indeed, unitary matrices are exactly the set of linear mappings which always transform quantum state vectors to other quantum state vectors. Notice here a resemblance to the classical probabilistic case, where operations are associated with stochastic matrices, which are the ones that always transform probability vectors into probability vectors.

Important examples of unitary operations on qubits

The following list describes some important unitary operations on qubits.

  1. Pauli operations. The four Pauli matrices are as follows:

    I=(1001),σx=(0110),σy=(0ii0),σz=(1001). \mathbb{I} = \begin{pmatrix} 1 & 0\\ 0 & 1 \end{pmatrix}, \quad \sigma_x = \begin{pmatrix} 0 & 1\\ 1 & 0 \end{pmatrix}, \quad \sigma_y = \begin{pmatrix} 0 & -i\\ i & 0 \end{pmatrix}, \quad \sigma_z = \begin{pmatrix} 1 & 0\\ 0 & -1 \end{pmatrix}.

    A common notation, which we will often use, is X=σx,X = \sigma_x, Y=σy,Y = \sigma_y, and Z=σzZ = \sigma_z — but be aware that the letters X,X, Y,Y, and ZZ are also commonly used for other purposes. The XX operation is also called a bit flip or a NOT operation because it induces this action on bits:

    X0=1andX1=0. X \vert 0\rangle = \vert 1\rangle \quad \text{and} \quad X \vert 1\rangle = \vert 0\rangle.

    The ZZ operation is also called a phase flip because it has this action:

    Z0=0andZ1=1. Z \vert 0\rangle = \vert 0\rangle \quad \text{and} \quad Z \vert 1\rangle = - \vert 1\rangle.
  2. Hadamard operation. The Hadamard operation is described by this matrix:

    H=(12121212). H = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix}.
  3. Phase operations. A phase operation is one described by the matrix

    Pθ=(100eiθ) P_{\theta} = \begin{pmatrix} 1 & 0\\ 0 & e^{i\theta} \end{pmatrix}

    for any choice of a real number θ.\theta. The operations

    S=Pπ/2=(100i)andT=Pπ/4=(1001+i2) S = P_{\pi/2} = \begin{pmatrix} 1 & 0\\ 0 & i \end{pmatrix} \quad \text{and} \quad T = P_{\pi/4} = \begin{pmatrix} 1 & 0\\ 0 & \frac{1 + i}{\sqrt{2}} \end{pmatrix}

    are particularly important examples. Other examples include I=P0\mathbb{I} = P_0 and Z=Pπ.Z = P_{\pi}.

All of the matrices just defined are unitary, and therefore represent quantum operations on a single qubit.

For example, here is a calculation that verifies that HH is unitary:

(12121212)(12121212)=(12121212)(12121212)=(12+121212121212+12)=(1001).\begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix}^{\dagger} \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} \frac{1}{2} + \frac{1}{2} & \frac{1}{2} - \frac{1}{2}\\[2mm] \frac{1}{2} - \frac{1}{2} & \frac{1}{2} + \frac{1}{2} \end{pmatrix} = \begin{pmatrix} 1 & 0\\ 0 & 1 \end{pmatrix}.

Here's the action of the Hadamard operation on a few commonly encountered qubit state vectors.

H0=(12121212)(10)=(1212)=+H1=(12121212)(01)=(1212)=H+=(12121212)(1212)=(10)=0H=(12121212)(1212)=(01)=1\begin{aligned} H \vert 0 \rangle & = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} 1\\[2mm] 0 \end{pmatrix} = \begin{pmatrix} \frac{1}{\sqrt{2}}\\[2mm] \frac{1}{\sqrt{2}} \end{pmatrix} = \vert + \rangle\\[6mm] H \vert 1 \rangle & = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} 0\\[2mm] 1 \end{pmatrix} = \begin{pmatrix} \frac{1}{\sqrt{2}}\\[2mm] -\frac{1}{\sqrt{2}} \end{pmatrix} = \vert - \rangle\\[6mm] H \vert + \rangle & = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}}\\[2mm] \frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} 1\\[2mm] 0 \end{pmatrix} = \vert 0 \rangle\\[6mm] H \vert - \rangle & = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}}\\[2mm] -\frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} 0\\[2mm] 1 \end{pmatrix} = \vert 1 \rangle \end{aligned}

It's well worth listing these four equations more succinctly.

H0=+H1=H+=0H=1 \begin{aligned} H \vert 0 \rangle & = \vert + \rangle\\[1mm] H \vert 1 \rangle & = \vert - \rangle\\[1mm] H \vert + \rangle & = \vert 0 \rangle\\[1mm] H \vert - \rangle & = \vert 1 \rangle \end{aligned}

And here's one final example for a state vector that was mentioned previously.

H(1+2i30231)=(12121212)(1+2i323)=(1+2i323+2i32)=1+2i320+3+2i321 H \biggl(\frac{1+2i}{3} \vert 0\rangle - \frac{2}{3} \vert 1\rangle\biggr) = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} \frac{1+2i}{3}\\[2mm] -\frac{2}{3} \end{pmatrix} = \begin{pmatrix} \frac{-1+2i}{3\sqrt{2}}\\[2mm] \frac{3+2i}{3\sqrt{2}} \end{pmatrix} = \frac{-1+2i}{3\sqrt{2}} | 0 \rangle + \frac{3+2i}{3\sqrt{2}} | 1 \rangle

It's worth pausing to consider the fact that H+=0H\vert +\rangle = \vert 0\rangle and H=1.H\vert -\rangle = \vert 1\rangle. Consider a situation in which a qubit is prepared in one of the two quantum states +\vert +\rangle and ,\vert -\rangle, but where it is not known to us which one it is. Measuring either state produces the same output distribution as the other: 00 and 11 both appear with equal probability 1/2.1/2. So, doing this provides no information about which of the two states +\vert +\rangle and \vert -\rangle was originally prepared. However, if we apply a Hadamard operation and then measure, we obtain the outcome 00 with certainty if the original state was +\vert +\rangle and we obtain the outcome 1,1, again with certainty, if the original state was .\vert -\rangle.

Thus, the quantum states +\vert +\rangle and \vert -\rangle can be discriminated perfectly. This reveals that sign changes, or more generally changes to the phases (which are also traditionally called arguments) of the complex number entries of a quantum state vector, can significantly change that state.

Here's another example, this time of the action of a TT operation on a plus state.

T+=T(120+121)=12T0+12T1=120+1+i21 T \vert +\rangle = T \biggl(\frac{1}{\sqrt{2}} \vert 0\rangle + \frac{1}{\sqrt{2}} \vert 1\rangle\biggr) = \frac{1}{\sqrt{2}} T\vert 0\rangle + \frac{1}{\sqrt{2}} T\vert 1\rangle = \frac{1}{\sqrt{2}} \vert 0\rangle + \frac{1+i}{2} \vert 1\rangle

Notice here that we did not bother to convert to the equivalent matrix/vector forms, and instead used the linearity of matrix multiplication together with the formulas

T0=0andT1=1+i21.T \vert 0\rangle = \vert 0\rangle \quad\text{and}\quad T \vert 1\rangle = \frac{1 + i}{\sqrt{2}} \vert 1\rangle.

Along similar lines, we may compute the result of applying a Hadamard operation to the quantum state vector just obtained:

H(120+1+i21)=12H0+1+i2H1=12++1+i2=(120+121)+(1+i2201+i221)=(12+1+i22)0+(121+i22)1.\begin{aligned} H\, \biggl(\frac{1}{\sqrt{2}} \vert 0\rangle + \frac{1+i}{2} \vert 1\rangle\biggr) & = \frac{1}{\sqrt{2}} H \vert 0\rangle + \frac{1+i}{2} H \vert 1\rangle\\ & = \frac{1}{\sqrt{2}} \vert +\rangle + \frac{1+i}{2} \vert -\rangle \\ & = \biggl(\frac{1}{2} \vert 0\rangle + \frac{1}{2} \vert 1\rangle\biggr) + \biggl(\frac{1+i}{2\sqrt{2}} \vert 0\rangle - \frac{1+i}{2\sqrt{2}} \vert 1\rangle\biggr)\\ & = \biggl(\frac{1}{2} + \frac{1+i}{2\sqrt{2}}\biggr) \vert 0\rangle + \biggl(\frac{1}{2} - \frac{1+i}{2\sqrt{2}}\biggr) \vert 1\rangle. \end{aligned}

The two approaches — one where we explicitly convert to matrix representations and the other where we use linearity and plug in the actions of an operation on standard basis states — are equivalent. We can use whichever one is more convenient in the case at hand.

Compositions of qubit unitary operations

Compositions of unitary operations are represented by matrix multiplication, just like we had in the probabilistic setting. For example, if we first apply a Hadamard operation, followed by the SS operation, followed by another Hadamard operation, the resulting operation (which we'll name RR) is as follows:

R=HSH=(12121212)(100i)(12121212)=(1+i21i21i21+i2). R = H S H = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} 1 & 0\\ 0 & i \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} \frac{1+i}{2} & \frac{1-i}{2} \\[2mm] \frac{1-i}{2} & \frac{1+i}{2} \end{pmatrix}.

This unitary operation RR is an interesting example. By applying this operation twice, which is equivalent to squaring its matrix representation, we obtain a NOT operation:

R2=(1+i21i21i21+i2)2=(0110). R^2 = \begin{pmatrix} \frac{1+i}{2} & \frac{1-i}{2} \\[2mm] \frac{1-i}{2} & \frac{1+i}{2} \end{pmatrix}^2 = \begin{pmatrix} 0 & 1 \\[2mm] 1 & 0 \end{pmatrix}.

That is, RR is a square root of NOT operation. Such a behavior, where the same operation is applied twice to yield a NOT operation, is not possible for a classical operation on a single bit. This is related to the fact that you can't take the square root of a negative number and stay on the real line.

Unitary operations on larger systems

In later lessons, we will see many examples of unitary operations on systems having more than two classical states. An example of a unitary operation on a system having three classical states is given by the following matrix.

A=(001100010) A = \begin{pmatrix} {0} & {0} & {1} \\ {1} & {0} & {0} \\ {0} & {1} & {0} \end{pmatrix}

Assuming that the classical states of the system are 0,0, 1,1, and 2,2, we can describe this operation as addition modulo 3.3.

A0=1,A1=2,andA2=0 A \vert 0\rangle = \vert 1\rangle, \quad A \vert 1\rangle = \vert 2\rangle, \quad\text{and}\quad A \vert 2\rangle = \vert 0\rangle

The matrix AA is an example of a permutation matrix, which is a matrix in which every row and column has exactly one 1.1. Such matrices only rearrange, or permute, the entries of the vector it acts on. The identity is the simplest permutation matrix; another example is the NOT operation on a bit or qubit. Every permutation matrix, in any positive integer dimension, is unitary. These are the only examples of matrices that represent both classical and quantum operations: a matrix is both stochastic and unitary if and only if it is a permutation matrix.

Another example of a unitary matrix, this time being a 4×44\times 4 matrix, is this one:

U=12(11111i1i11111i1i). U = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1 \\[1mm] 1 & i & -1 & -i \\[1mm] 1 & -1 & 1 & -1 \\[1mm] 1 & -i & -1 & i \end{pmatrix}.

This matrix describes an operation known as the quantum Fourier transform, specifically in the 4×44\times 4 case. The quantum Fourier transform can be defined more generally, for any positive integer dimension n,n, and will play a key role in the second unit of this series.

Qiskit examples

In this section we present some examples of Qiskit implementations of the concepts introduced in this lesson.

Vectors and matrices in Python

Qiskit uses the Python programming language, so before discussing Qiskit specifically it may be helpful to very briefly discuss matrix and vector computations in Python. In Python, matrix and vector computations can be performed using the array class from the NumPy library (which includes many additional components for numerical computation).

Here is an example of a code cell that defines two vectors, ket0 and ket1, corresponding to the qubit state vectors 0\vert 0\rangle and 1,\vert 1\rangle, and displays their average.

Authenticate to run code cells
Reset Copy to clipboard

Output:

array([0.5, 0.5])

It is not actually necessary to explicitly use the display command to see the result of this computation. We may instead simply write the expression of interest as the last line of the code cell, and it will be returned as its output:

Authenticate to run code cells
Reset Copy to clipboard

Output:

array([0.5, 0.5])

This code cell also illustrates that running code cells sequentially on a given page of this textbook has a cumulative effect, so it is not necessary to reload the array class or define ket0 and ket1 again. Reloading the page or switching to another page will, however, reset everything to its initial state.

As a general guideline, code cells within each subsection of this course are intended to be run sequentially. So, if running a code cell generates an error, be sure to first run all previous code cells within the subsection in which that code cell appears.

We can also use array to create matrices that represent operations.

Authenticate to run code cells
Reset Copy to clipboard

Output:

array([[1. , 1. ],
       [0.5, 0. ]])

Matrix multiplication (including matrix-vector multiplication as a special case) can be performed using the matmul function from NumPy:

Authenticate to run code cells
Reset Copy to clipboard

Output:

array([1, 0])
array([[2, 1],
       [0, 0]])
array([[1, 1],
       [1, 1]])

States, measurements, and operations

Qiskit includes several classes that allow for states, measurements, and operations to be easily created and manipulated — so starting from scratch and programming everything that is needed to simulate quantum states, measurements, and operations in Python is not required. Some examples to get started are included below.

Defining and displaying state vectors

Qiskit's Statevector class provides functionality for defining and manipulating quantum state vectors. The following code cell imports the Statevector class and defines a few vectors using it. (Note that we need the sqrt function from the NumPy library to compute the square roots for the vector u.)

Authenticate to run code cells
Reset Copy to clipboard

Output:

State vectors u, v, and w have been defined.

The Statevector class provides a draw method for displaying state vectors, including latex and text options for different visualizations, as this code cell demonstrates:

Authenticate to run code cells
Reset Copy to clipboard

Output:

220+221\frac{\sqrt{2}}{2} |0\rangle+\frac{\sqrt{2}}{2} |1\rangle

[ 0.33333333+0.66666667j,-0.66666667+0.j        ]

The Statevector class also includes the is_valid method, which checks to see if a given vector is a valid quantum state vector (i.e., that it has Euclidean norm equal to 1):

Authenticate to run code cells
Reset Copy to clipboard

Output:

True
False

Simulating measurements using Statevector

Next we will see one way that measurements of quantum states can be simulated in Qiskit, using the measure method from the Statevector class.

First, we create a qubit state vector v and then display it.

Authenticate to run code cells
Reset Copy to clipboard

Output:

(13+2i3)0231(\frac{1}{3} + \frac{2 i}{3}) |0\rangle- \frac{2}{3} |1\rangle

Code cells can be modified — so go ahead and change the specification of the vector if you wish.

Next, running the measure method simulates a standard basis measurement. It returns the result of that measurement, plus the new quantum state of our system after that measurement.

Authenticate to run code cells
Reset Copy to clipboard

Output:

('1',
 Statevector([ 0.+0.j, -1.+0.j],
             dims=(2,)))

Measurement outcomes are probabilistic, so the same method can return different results. Try running the cell a few times to see this.

For the particular example of the vector v defined above, the measure method defines the quantum state vector after the measurement takes place to be

1+2i50\frac{1 + 2i}{\sqrt{5}} \vert 0\rangle

(rather than 0\vert 0\rangle) or

1- \vert 1\rangle

(rather than 1\vert 1\rangle), depending on the measurement outcome. In both cases the alternatives are, in fact, equivalent — they are said to differ by a global phase because one is equal to the other multiplied by a complex number on the unit circle. This issue is discussed in greater detail in Lesson 3, and can safely be ignored for now.

As an aside, Statevector will throw an error if the measure method is applied to an invalid quantum state vector. Feel free to give it a try if you're interested in seeing what an error looks like.

Statevector also comes with a sample_counts method that allows for the simulation of any number of measurements on the system. For example, the following cell shows the outcome of measuring the vector v 10001000 times, which (with high probability) results in the outcome 00 approximately 55 out of every 99 times (or about 556556 of the 10001000 trials) and the the outcome 11 approximately 44 out of every 99 times (or about 444444 out of the 10001000 trials). The cell also demonstrates the plot_histogram function for visualizing the results.

Authenticate to run code cells
Reset Copy to clipboard

Output:

{'0': 554, '1': 446}

Running the cell multiple times and trying different numbers of samples in place of 10001000 may be helpful for developing some intuition for how the number of trials influences the estimated probabilities.

Performing operations with Operator and Statevector

Unitary operations can be defined and performed on state vectors in Qiskit using the Operator class, as in the example that follows.

Authenticate to run code cells
Reset Copy to clipboard

Output:

[ 0.85355339+0.35355339j,-0.35355339+0.14644661j]

Looking ahead toward quantum circuits

Quantum circuits won't be formally introduced until Lesson 3, but we can nevertheless experiment with composing qubit unitary operations using Qiskit's QuantumCircuit class. In particular, we may define a quantum circuit (which in this case will simply be a sequence of unitary operations performed on a single qubit) as follows.

Authenticate to run code cells
Reset Copy to clipboard

Output:

The operations are applied sequentially, starting on the left and ending on the right in the figure. Let us first initialize a starting quantum state vector and then evolve that state according to the sequence of operations.

Authenticate to run code cells
Reset Copy to clipboard

Output:

[ 0.85355339+0.35355339j,-0.35355339+0.14644661j]

Finally, let's simulate the result of running this experiment (i.e., preparing the state 0,\vert 0\rangle, applying the sequence of operations represented by the circuit, and measuring) 4000 times.

Authenticate to run code cells
Reset Copy to clipboard

Output:

Was this page helpful?