{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Quantum gates and simple circuits"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Author: Alexandra Semposki\n",
"\n",
"Maintainer: Alexandra Semposki"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that you have established a working understanding of qubits, you will see below how to use them with quantum gates in simple circuits of one to two qubits. Later on, we can tackle more complicated circuits, but for now we just need a basic knowledge of how to read a quantum circuit and how to follow the qubits through the actions performed on them by the quantum gates. Being able to quickly read a quantum circuit is a wonderful skill to have and will be highly beneficial if you go on to read state of the art quantum computing research articles, where circuits can get very complex *very* rapidly."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Two-qubit states"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Before jump into the operators, gates, and simple circuits to come, we first look at the two-qubit state, a step up from the last lesson where we only dealt with a single qubit. \n",
"\n",
"Two qubit states will involve four total computational basis states, since we can combine two qubits of $|0\\rangle$ and $|1\\rangle$ into four different two-qubit states, such as $|01\\rangle$. The full expression for the two-qubit state is given as\n",
"\n",
"$$\n",
"|\\psi\\rangle = \\alpha |00\\rangle + \\beta |01\\rangle + \\gamma |10\\rangle + \\delta |11\\rangle,\n",
"$$\n",
"\n",
"where the normalization of the state, if we only measured one qubit of the two, now is given as [1]\n",
"\n",
"$$\n",
"\\sum_{x\\in\\{0,1\\}^{2}} |c_{x}|^{2} = 1,\n",
"$$\n",
"\n",
"where $c$ contains all coefficients in $|\\psi\\rangle$ ($c \\in \\{\\alpha, \\beta, \\gamma, \\delta\\}$), and $x$ here is a set of two numbers where either number is 0 or 1 [1]. \n",
"\n",
"This will all become clearer when we get to two-qubit Bell states (see the section [Example: Bell states](#bell_states) below). First, however, we'll deal with some single qubit gates."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Single qubit gates"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some single-qubit gates are very familiar quantum operators that you will recognise immediately as the __Pauli matrices__. Recall that these are $\\sigma_{x}$, $\\sigma_{y}$, $\\sigma_{z}$, and the identity, $I$. These become, respectively, $X$, $Y$, $Z$, and $I$ in quantum computing language. They are defined in matrix form as \n",
"\n",
"$$\n",
"\\sigma_{x} = X = \\begin{bmatrix} 0 & 1 \\\\ 1 & 0 \\end{bmatrix},\n",
"$$\n",
"\n",
"$$\n",
"\\sigma_{y} = Y = \\begin{bmatrix} 0 & i \\\\ -i & 0 \\end{bmatrix},\n",
"$$\n",
"\n",
"$$\n",
"\\sigma_{z} = Z = \\begin{bmatrix} 1 & 0 \\\\ 0 & -1 \\end{bmatrix},\n",
"$$\n",
"\n",
"and\n",
"\n",
"$$\n",
"I = \\begin{bmatrix} 1 & 0 \\\\ 0 & 1 \\end{bmatrix}.\n",
"$$\n",
"\n",
"These can be called in `Qiskit` to use as gates on a single qubit, which we'll look at below. \n",
"\n",
"This now requires us to discuss the classical sense of *logic gate* and compare it to the *quantum logic gate*. In classical computers, we have logic gates, i.e. the AND, NOR, and XOR gates, to name a few, which are connected to wires in the circuit. In quantum computing, we consider the wires to be the qubits and the logic gates to be operations (such as the Pauli matrices) that affect the state of the qubit. As we will see, there are quantum logic gates that are the direct quantum analog of classical logic gates, and there are some new ones, as well. For example, look at the $X$ gate above. It is the equivalent of the NOT gate in classical computing, as it flips a 0 to a 1, and a 1 to a 0, as we'll see in the circuits we construct later on. \n",
"\n",
"You may be asking yourself how this matrix works when it is clearly four values, and the qubits we have seen so far have merely been defined in basis states of $|0\\rangle$ and $|1\\rangle$. This works because these basis states are defined for as the vectors $|0\\rangle = \\begin{pmatrix}1 \\\\ 0\\end{pmatrix}$ and $|1\\rangle = \\begin{pmatrix} 0 \\\\ 1\\end{pmatrix}$. Hence, acting with a 2x2 matrix on these vectors will produce another vector, which will correspond to the altered qubit state.\n",
"\n",
"---\n",
"\n",
"### NOT gate\n",
"\n",
"Let's use this NOT gate in a simple circuit and observe what it does to the qubit. First, we need to import the `Qiskit` package."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# import Qiskit (and numpy)\n",
"import qiskit\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAFwAAAB7CAYAAAD5RufWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAEUklEQVR4nO3cP0hrZxzG8cfciLGiogYqeIIgCUKFCGYRCop0cVYEHcRCxAxSRR1alNBNWg106NalujhZoYt0kGqoN2JqKP7BIQ5SURyESjE2sZicO91Sb22vV5PnnJrnA1mO5Lw/vh5fTyBJiWmaJoTGYfUAxUbByRScTMHJFJxMwckUnEzByRScTMHJFJxMwckUnEzByRScTMHJFJxMwckUnEzByRScTMHJFJxMwckUnEzByRScTMHJFJxMwckUnEzByRScTMHJFJxMwckUnMx2wXO5HCKRCHw+H1wuF1pbWxGNRtHc3IyRkRGrx3syp9UDvCkYDGJlZQXhcBiBQACxWAwDAwO4uLjA5OSk1eM9nWkjS0tLJgBzY2PjzvGenh4TgBmPxy2aLH9staXMzs6iu7sbnZ2dd457vV6UlpbC7/dbNFn+2Cb46ekpDg4O0NfX94+fnZycoKWlBWVlZW89T0lJiSWPh7JVcACor6+/czydTiMajaKtrc2KsfLONsHdbjcAIJlM3jk+NzeH8/NzBAKBB53HNE1LHg9lm7uUpqYm+P1+zM7Oora2Fg0NDVheXsbq6ioAPDi43ZWY7/LrKbBkMolQKIR4PI66ujoMDQ2hsrIS09PTuLq6Qnl5udUjPpmtgt9ncHAQu7u72Nvbs3qUvLDNHv5vdnZ2ns12Atg8eCqVQjKZfDZ3KMD/YEt5bmx9hT9HCk6m4GQKTqbgZApOpuBkCk6m4GQKTqbgZApOpuBkCk6m4GQKTqbgZApOpuBkCk6m4GQKTqbgZEUVfHx8HIZhwOm07j2sRfVGoM3NTXi9XhiGgdvbW0tmKKrgrzmdTsuCF9WWYgcKTqbgZApOVlTBQ6EQDMNANpuFYRgYHR2lz1CUdyn3MU3znT5v+VhFdYX/lx+3fsHS92vIZnMFXUfBAaQzN/gpvofbbBYvXhQ2iW2D7+/vo7e3F263Gy6XCz6fDzMzMwVZ62XiAJmbP/HRh4X/8JZtPhj7d4lEAh0dHfB4PJifn0djYyOOj48Ri8Xe+tzPvvzm0et+vbDy6Od+8enDvsvFlsGnpqZQUVGB7e1tVFdX/3U8GAxaOFWeFOhrQR7t+vradDgc5tjYWMHX+iOdMT//6ltz8bsfCr7Wa7a7wi8vL5HL5WAYxqOe/5gt5fDo1ydtRcDDtxTb/dOsqamBw+HA2dmZ1aMUhC1f+HR1deHw8BBHR0eoqqoqyBprLxNY20zgk4970PC+uyBr3Md2VzgARCIRpFIptLe3Y2FhAevr61hcXMTw8HBezp/O3GDz53184GukxgZsepcSCASwtbWFcDiMiYkJZDIZeDwe9Pf35+X8v/1+hffKyyj33W+y5ZbCkMvl4HDw/8CLNrhVbLmHP2cKTqbgZApOpuBkCk6m4GQKTqbgZApOpuBkCk6m4GQKTqbgZApOpuBkCk6m4GQKTqbgZApOpuBkCk6m4GQKTqbgZK8Apx0oRvCciBQAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# build a single qubit quantum circuit with one quantum and one classical bit\n",
"qx = qiskit.QuantumCircuit(1,1)\n",
"qx.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The above circuit is drawn before we've added any gates, so all we see is the single qubit wire, $q$, and the classical bit $c$, which is represented by a double line to indicate its classical nature. This bit will be crucial when it comes to measuring the circuit, a topic we'll come to soon.\n",
"\n",
"Now we add the NOT gate in the form of our $X$ gate, applying it to our first (and only) qubit via the `x(0)` below."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAHMAAAB7CAYAAABHEL+LAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFt0lEQVR4nO3cX0hbZxjH8d85J0FXjUUJrMOTOsQgVBqhHayjYHUdrDejRdFZNte5lKZdHKXYtYL0qiBtzVZKb/YHujiKDnR2g6G7kDZutuKmbf2DMIWGSYvQi0ox1FhzztmFaOnWrYlL+r4+eT6Qm0jOefDrefMa5SiWZVlgJKiiB2DJwzEJ4ZiEcExCOCYhHJMQjkkIxySEYxLCMQnhmIRwTEI4JiEckxCOSQjHJIRjEsIxCeGYhHBMQjgmIRyTEI5JCMckhGMSwjEJsYkeQJTGPyYxOj8v5NylDgc+K96S9OOmbczR+Xn8MvdA9BhJxcssIRyTEI5JCMckhGMSwjEJ4ZiEcExCOCYh0sU0TROBQAButxuZmZkoLS1Ff38/iouLcejQIWFzWUtLWDrcAOPLr5963rjyA5bePwArEhE02RPSxfR6vTh9+jR8Ph96e3tRU1OD/fv3486dO9i+fbuwuRS7HbamT2H+1APz1m0AgBUOw7zUBu3EcSjZ2cJmWyHVZ7MdHR0IBoMIhULYtWsXAKCiogI3b95Ed3c3tm3bJnQ+5dUCqB8dgBE4D+XiecTOtELd+w5Uz1ahc62Q6spsaWnBnj17VkOuKCoqgt1uh8fjETTZE+q+vVA2uxDz+QFNg3qgTvRIq6SJeffuXUxMTKC6uvofX5uZmUFJSQkyMjKeexxFUeJ6hEKhNc2pKAoUz1bg4UOou9+EYrcnfIxQKBT3nImQKiYAbNq06annFxYW0N/fL3yJXWGFwzDbv4P6bjXMy+2w7t8XPdIqaWI6nU4AwNTU1FPPnzt3DrOzs3FvfizLiutRXl6e8IzW46Xl98nKfdC89VB2vgGj9XNYppnQccrLy+OeMxHSbIAKCwvh8XjQ0tKCvLw85Ofno6urCz09PQAgdCe7wrz0DRSbDWrdewAA7ePDiPn8ML+/Aq26SvB0El2Zqqqis7MTJSUlOHLkCOrr6+F0OuH3+6FpmvDNj3nrNsyen6E1nYBiW74GlA0boJ08DvPby7DCYaHzAYAi+y1K6+rqMDo6irGxsaQe963hIWH/NlKWm4e+115P+nGluTL/zfDwsBRL7HogdcxIJIKpqSlpdrKyk2YD9CzZ2dkwDEP0GOuG1FcmSwzHJIRjEsIxCeGYhHBMQjgmIVL/nplKpQ4HuXNL/9ksix8vs4RwTEI4JiEckxCOSQjHJIRjEsIxCeGYhHBMQjgmIRyTEI5JCMckJK1iHj16FLquw2aj+WfctPp75sDAAIqKiqDrOmKxmOhxki6tYq6w2WwkY6bVMksdxySEYxLCMQlJq5g+nw+6rsMwDOi6Dr/fL3qkpErL3eyzWJaV8H13ZJNWV+Z/uTp4C+0/9sEwErsNjEw4JoCF6CJ+/W0MMcOApq3fb4m0k4+Pj6OqqgpOpxOZmZlwu91obm5Oybmuj0wguvgYu3eu7xthSPkh5cjICMrKyuByudDa2oqCggKEw2HcuHHjua9tOvvVms97Mdi95temypmT8d9jV8qYjY2NyMrKwtDQEDZu3Lj6vNfrFTiV/KTbzT569AgOhwMNDQ24cOFCSs+1EF3E2S86ULj5FXxQ+XZKz/UiSHdlzs3NwTRN6Lq+ptevZZmdnP7zfy3PqZTIMivdBig3NxeqquLevXuiR1l3pFtmgeVbeU9OTmJ6eho5OTkpOUff9RH0DYzgkw8rkf+yMyXneNGkuzIBIBAIIBKJYMeOHQgGg7h27Rra2tpw8ODBpBx/IbqIgd/HscVdQCYkIOF7JrB8b9nBwUGcOnUKx44dQzQahcvlQm1tbVKO/+DhPDa8lLHuf6/8OymX2RfBNE2oqpQL05qlbUyKaP1opjmOSQjHJIRjEsIxCeGYhHBMQjgmIRyTEI5JCMckhGMSwjEJ4ZiEcExCOCYhHJMQjkkIxySEYxLCMQnhmIRwTEI4JiEckxCOSQjHJOQvbRy+rbB/cKYAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"qx.x(0)\n",
"qx.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In a `Qiskit` quantum circuit object, each qubit begins automatically with the assignment of the state $|0\\rangle$, so we know that this NOT gate has converted $q$ from $|0\\rangle$ to $|1\\rangle$. Later on, when we measure this circuit, we will see this for ourselves.\n",
"\n",
"Now let's look at how to form the other 3 Pauli matrices in circuits, and then we'll move on to some more interesting gates. \n",
"\n",
"---\n",
"\n",
"### Y gate\n",
"\n",
"What does the Y gate do to a qubit? We can investigate this by visualizing it on the Bloch sphere, as in the last section. Let's draw the circuit first and then look at the Bloch sphere location of the qubit before and after the Y gate was applied."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# construct circuit with Y gate\n",
"qy = qiskit.QuantumCircuit(1,1)\n",
"qy.y(0)\n",
"qy.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we pull up the Bloch sphere."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# import statevector simulator to see qubit from circuit above\n",
"from qiskit.visualization import plot_bloch_vector, plot_bloch_multivector\n",
"from qiskit import Aer\n",
"svsim = Aer.get_backend('statevector_simulator')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Before Y gate:\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Bloch sphere before Y gate\n",
"print('Before Y gate:')\n",
"plot_bloch_vector([0,0,1])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"After Y gate:\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Bloch sphere after Y gate\n",
"print('After Y gate:')\n",
"qobj = qiskit.assemble(qy)\n",
"state = svsim.run(qobj).result().get_statevector()\n",
"plot_bloch_multivector(state)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see from the above that this gate rotated $|0\\rangle$ by $\\pi$ to the $|1\\rangle$ state, which is equivalent to rotating about the y axis by 180 degrees on the Bloch sphere. Because this gate involves complex numbers, in real space it looks merely like the NOT gate on the Bloch sphere, but it is indeed a whole different operator with its own unique actions. \n",
"\n",
"Now we can take a look at the final gate that will change the state of our qubit from the Pauli matrices---the $Z$ gate. \n",
"\n",
"---\n",
"\n",
"### Z gate\n",
"\n",
"If we scroll back up to the Pauli matrices, we see that the $Z$ gate looks like the identity matrix, except with a negative sign on the bottom right element. In the language of quantum computing, this will mean that applying this gate to a qubit will yield the same state for a basis state of $|0\\rangle$, but for the state $|1\\rangle$ we will get -$|1\\rangle$, aka the vector's direction will flip. Let's set up the circuits for both the first and second qubit states. "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# set up quantum circuit for Z gate and basis |0>\n",
"qz0 = qiskit.QuantumCircuit(1,1)\n",
"qz0.z(0)\n",
"qz0.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, to achieve the application of the $Z$ gate on the $|1\\rangle$ state, we must first apply the $X$ gate to our qubit to flip it."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# set up quantum circuit for Z gate and basis |1>\n",
"qz1 = qiskit.QuantumCircuit(1,1)\n",
"qz1.x(0)\n",
"qz1.z(0)\n",
"qz1.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We cannot see anything obvious here, except for the construction of our circuit, but this is useful knowledge to have going forward for when we want to construct the four Bell states, when we must be very careful about the ordering of our gates and the qubits they are acting on.\n",
"\n",
"Let us now look at another couple of interesting gates. \n",
"\n",
"---\n",
"\n",
"### Hadamard gate\n",
"\n",
"The Hadamard gate is perhaps the most well-known gate in quantum computing. It is given in matrix form as \n",
"\n",
"$$\n",
"H = \\frac{1}{\\sqrt{2}}\\begin{bmatrix}1 & 1 \\\\ 1 & -1\\end{bmatrix}.\n",
"$$\n",
"\n",
"\n",
"Why is it so useful? Because it turns the qubit states into states __halfway between__ the basis states we've already discussed. What does this look like? Applying the Hadamard gate to the $|0\\rangle$ basis state, we get\n",
"\n",
"$$\n",
"H|0\\rangle = \\frac{1}{\\sqrt{2}}\\begin{bmatrix}1 & 1 \\\\ 1 & -1\\end{bmatrix}\\begin{pmatrix}1\\\\0\\end{pmatrix} = \\frac{1}{\\sqrt{2}}\\begin{pmatrix}1\\\\1\\end{pmatrix} = \\frac{1}{\\sqrt{2}}\\begin{pmatrix}1\\\\0\\end{pmatrix} + \\frac{1}{\\sqrt{2}}\\begin{pmatrix}0\\\\1\\end{pmatrix} = \\frac{|0\\rangle + |1\\rangle}{\\sqrt{2}},\n",
"$$\n",
"\n",
"and if we do the same to $|1\\rangle$ we achieve\n",
"\n",
"$$\n",
"H|1\\rangle = \\frac{1}{\\sqrt{2}}\\begin{bmatrix}1 & 1 \\\\ 1 & -1\\end{bmatrix}\\begin{pmatrix}0\\\\1\\end{pmatrix} = \\frac{1}{\\sqrt{2}}\\begin{pmatrix}1\\\\-1\\end{pmatrix} = \\frac{1}{\\sqrt{2}}\\begin{pmatrix}1\\\\0\\end{pmatrix} - \\frac{1}{\\sqrt{2}}\\begin{pmatrix}0\\\\1\\end{pmatrix} = \\frac{|0\\rangle - |1\\rangle}{\\sqrt{2}}.\n",
"$$\n",
"\n",
"Hence, it creates these ''intermediate'' states. This gate also has the interesting property that $H^{2} = I$, so one possesses the original state if $H$ is applied twice [1]. \n",
"\n",
"The Hadamard gate is much more fun to visualize on the Bloch sphere, so let's do that now."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAHMAAAB7CAYAAABHEL+LAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFAklEQVR4nO3cTUgjZxzH8Z8xYlrfUEJrcVzBJkhriaBlEQpG6ZueWvSiB8tKRJG4leihBevNhq7mInspPcVLPSihe/FSqYa6itZYfMGDUqSiCBUqpUFja5Iell2wtd2JTZwn//w+sJfRzPNfvzuPY1wmKx6Px0EimIwegJKHMQVhTEEYUxDGFIQxBWFMQRhTEMYUhDEFYUxBGFMQxhSEMQVhTEEYUxDGFIQxBWFMQRhTEMYUhDEFYUxBGFMQxhSEMQUxGz2AUQJrwNGpMWuXFQOtbyb/vBkb8+gU+OkXo6dILm6zgjCmIIwpCGMKwpiCMKYgjCkIYwrCmIIoFzMWi8Hn88Fut8NisaCmpgbBYBBVVVXo6ekxbK6Z0UasfjOq+7gRlHs7z+VyIRAIYGRkBHV1dVhaWkJHRwdOTk4wODho9HhKUyrm1NQU/H4/FhYW4HQ6AQBNTU1YX19HIBBAbW2twROqTalt1uv1orm5+VnIp2w2G3JycuBwOAyaLD0oc2UeHh5ie3sbHo/nHx87ODhAdXU1cnNzn3uerKwsXeu1Dc9De60xoRlXH32O0KzvyrE/I2HceeOdhM4TDC7g4/eadH1uIg9QUyomAJSWll45fn5+jmAwiJaWFiPGuuLuB8O4++FnV47NjDYaM8w1lNlmrVYrAGB3d/fK8bGxMRwfH6Ourk7XeeLxuK4/Tmdjsv8KujmdjbrnTIQyV2ZlZSUcDge8Xi9KSkpQVlaGmZkZzM7OAoDumJlMmSvTZDJhenoa1dXV6OvrQ1dXF6xWK9xuN7Kzs3nzo0OW6o8o7ezsxMbGBjY3N5N63offGvffRl59Cbj/bvLPq8yV+W/W1ta4xeqkdMxwOIzd3V2+WaCTMjdA18nPz0c0GjV6jLSh9JVJiWFMQRhTEMYUhDEFYUxBGFMQpX/OTKWyYnlrK//eLOnHbVYQxhSEMQVhTEEYUxDGFIQxBWFMQRhTEMYUhDEFYUxBGFMQxhQko2IODAxA0zSYzTJ/jZtRv89cXFyEzWaDpmm4vLw0epyky6iYT5nNZpExM2qblY4xBWFMQRhTkIyK2dvbC03TEI1GoWka3G630SMlVUbezV4nHo/rfoaQqjLqyvwv3y3/iK8fzSEajRk9yo0xJoDzyAW+X93EZTSK7Oz0/ZIoO/nW1hba2tpgtVphsVhgt9sxPDyckrUeh7YRufgDb7+V3g/CUPJNylAohIaGBpSXl2N8fBwVFRXY39/H0tLSc1/76YOvbrzuQ3/gxq9NlS8+0f+MXSVjDg0NIS8vDysrKygqKnp23OVyGTiV+pS7mz07O0NBQQH6+/sxMTGR0rXOIxd48OUUKu+8go9a30/pWrdBuSvz9PQUsVgMmqbd6PU32WZ39n7+X9tzKiWyzSp3A1RcXAyTyYSjoyOjR0k7ym2zwJNHee/s7GBvbw+FhYUpWWPucQhziyHcv9eKspetKVnjtil3ZQKAz+dDOBxGfX09/H4/5ufnMTk5ie7u7qSc/zxygcUftvC6vUJMSEDB75nAk2fLLi8vY2RkBB6PB5FIBOXl5Whvb0/K+X/97Xe8+EJu2v9c+XdKbrO3IRaLwWRScmO6sYyNKZGsf5oZjjEFYUxBGFMQxhSEMQVhTEEYUxDGFIQxBWFMQRhTEMYUhDEFYUxBGFMQxhSEMQVhTEEYUxDGFIQxBWFMQRhTEMYUhDEFYUxB/gKLqn0xBfQ9lAAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# quantum circuit for H gate\n",
"qh = qiskit.QuantumCircuit(1,1)\n",
"qh.h(0)\n",
"qh.draw(\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"After H gate:\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# plot on Bloch sphere for |0>\n",
"print('After H gate:')\n",
"qobj = qiskit.assemble(qh)\n",
"state = svsim.run(qobj).result().get_statevector()\n",
"plot_bloch_multivector(state)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The location of our vector above makes sense, as the Hadamard gate yields $\\frac{|0\\rangle + |1\\rangle}{\\sqrt{2}}$ for this initial basis state, and this vector is clearly halfway between the states of $|0\\rangle$ and $|1\\rangle$. \n",
"\n",
"The results of the Hadamard gate on the computational basis states can be written as [2]\n",
"\n",
"$$\n",
"H|0\\rangle = |+\\rangle\n",
"$$\n",
"\n",
"and \n",
"\n",
"$$\n",
"H|1\\rangle = |-\\rangle,\n",
"$$\n",
"\n",
"where these states are the symbols we use to define the eigenstates of the $X$ gate, and comprise the $X$ basis [2]. You'll most likely run into this notation in textbooks or papers again. \n",
"\n",
"---\n",
"\n",
"Now let's look at the last couple of single qubit gates we'll want to know."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### S gate\n",
"\n",
"The $S$ gate is a special case of the more general $P$ gate, which we may use in the future but will not discuss in detail now [2]. The $S$ gate is a phase gate, in that it changes the phase of the qubit it is acting on. It can be described in matrix form as\n",
"\n",
"$$\n",
"S = \\begin{bmatrix}1 & 0 \\\\ 0 & e^{\\frac{i\\pi}{2}}\\end{bmatrix},\n",
"$$\n",
"\n",
"and we can also have its Hermitian adjoint, which is given as\n",
"\n",
"$$\n",
"S^{\\dagger} = \\begin{bmatrix}1 & 0 \\\\ 0 & e^{-\\frac{i\\pi}{2}}\\end{bmatrix}.\n",
"$$\n",
"\n",
"This gate will rotate a vector on the Bloch sphere by $\\pi/2$, as is indicated by the angle in the exponent. Below we show a two-qubit circuit where one qubit has had the $S$ gate applied, and one the $S^{\\dagger}$ gate. "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# quantum circuit for S gate and S dagger gate\n",
"qs = qiskit.QuantumCircuit(2,2)\n",
"qs.s(0)\n",
"qs.sdg(1)\n",
"qs.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we've seen some of the simpler single qubit gates, it's time to build up to two and even three qubit gates, and more complex circuits. Let's jump in with one of the most famous, the CNOT gate!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Multiple qubit gates"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### CNOT gate\n",
"\n",
"The __Controlled NOT__ gate is the first two-qubit gate we've seen, and it is relatively straightforward to understand. Let's first look at how it works in a circuit."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# CNOT circuit\n",
"qcnot = qiskit.QuantumCircuit(2,2)\n",
"qcnot.cx(0,1)\n",
"qcnot.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The dot on the first qubit wire indicates the __control__ qubit, and the target shaped symbol on the second qubit wire indicates the __target__. This means that the first qubit's state determines whether the gate activates on the second qubit or not, hence the ''controlled'' in the name."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's think about what it means to send different computational basis states through this circuit. We'll start with the most basic, $|00\\rangle$. Here we are following the convention of Qiskit, which is to consider the last value in the ket (the one farthest to the right) to be the *most significant qubit*. Hence, in the ket above, we consider the rightmost 0 to be the qubit corresponding to $q_{0}$ in the circuit above, and the leftmost 0 to correspond to $q_{1}$. \n",
"\n",
"Let's send this state through the CNOT gate and see what we get:\n",
"\n",
"$$\n",
"|00\\rangle \\rightarrow \\textrm{CNOT gate} \\rightarrow |00\\rangle.\n",
"$$\n",
"\n",
"Now if we instead send the ket $|10\\rangle$, we get\n",
"\n",
"$$\n",
"|01\\rangle \\rightarrow \\textrm{CNOT gate} \\rightarrow |11\\rangle.\n",
"$$\n",
"\n",
"We see above that when the control qubit is set initially to 1, the CNOT gate activates, and changes the state of the target qubit. If this target qubit was originally 0, it converts to a 1, and if it was originally 1, it will convert to a 0, as seen here:\n",
"\n",
"$$\n",
"|11\\rangle \\rightarrow \\textrm{CNOT gate} \\rightarrow |01\\rangle.\n",
"$$\n",
"\n",
"Our final state to test is $|10\\rangle$, and becomes\n",
"\n",
"$$\n",
"|10\\rangle \\rightarrow \\textrm{CNOT gate} \\rightarrow |10\\rangle.\n",
"$$\n",
"\n",
"We'll see this gate in action later on in our example where we construct [Bell states](#bell_states)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Toffoli gate\n",
"\n",
"Now that we've been introduced to the two-qubit CNOT gate, we are ready to look at another interesting multiple qubit tool, the __Toffoli gate__. This one is like an extended version of the CNOT gate, in that it possesses not one but __two__ control qubits. It can be seen below. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"qct = qiskit.QuantumCircuit(3,3)\n",
"qct.ccx(0,1,2)\n",
"qct.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What does this gate do? Since we can see that the third, target, qubit depends directly on the other two qubits being the same value, we can guess that this gate acts as an __NAND gate__. And, naturally, we're correct! Now let's see what happens when we send three-qubit states through this circuit. Check out the results in the truth table below [3]!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"| Input (t,c2,c1) | Output (t,c2,c1) |\n",
"| :------: | :-------: |\n",
"| 000 | 000 |\n",
"| 001 | 001 |\n",
"| 010 | 010 |\n",
"| 100 | 100 |\n",
"| 011 | 111 |\n",
"| 101 | 101 |\n",
"| 110 | 110 |\n",
"| 111 | 011 |\n",
"\n",
"\n",
"Here 't' is the target qubit, 'c2' is the second control qubit, and 'c1' is the (most significant) control qubit. As we suspected, the target qubit is only changed when *both* of the control qubits are in the '1' state."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### SWAP gate\n",
"\n",
"There is only one more gate that we'll mention here, the __SWAP gate__. This one, like some of these other multi-qubit gates, can be formed out of the gates we have already discussed, but we can also directly call the SWAP gate from the `Qiskit` circuit libraries, as we do now. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAH0AAACoCAYAAADNc+G5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAI7klEQVR4nO3da0yT+x3A8S9FES/I0bAJChJRiojiUed0ykSibrxYsmWooJtLtAbiJRpjFmcMvhiJmY6YmJ1laoLRZAsuMqPLoubMpICI4jTqNOrweKsQL8crIjdtuxcNCAi0aNvn6fn9PgkvLKXPL3z5t89Tw58wt9vtRoliMXoAFXwaXSCNLpBGF0ijC6TRBdLoAml0gTS6QBpdII0ukEYXSKMLpNEF0ugCaXSBNLpAGl0gjS6QRhdIowuk0QXS6AJpdIE0ukAaXSCNLpBGF0ijC6TRBdLoAml0gTS6QBpdII3uB3efwu3Hvt//0n349k3AxvFKo3+mJw2wzw77y30LX3MH/noWvvo3NLUFfLweafTP9L0o+DIR3jm9h6+5A4fPgxv4cQoMiQjWlF2ZOrrL5aK4uJjk5GQiIyOZOnUqFRUVpKSkkJ+fb/R4AFjCIHcWzBrfd/jOwX/2JSxMC/KgnZg6us1mo6ioiIKCAk6ePMnSpUtZtmwZd+/eZcaMGUaP18FbeDMFBwgz6z5ypaWlLF++nPLycjIzMztuz8nJ4ejRo1y4cIGZM2caOOHHXG74e40n8sBwyJ8PL96aKziYeKXv2LGD7OzsLsEBJkyYwMCBA0lPTwfg/v37ZGZmYrVamTJlCmfOnDFiXODjFb/XDqUmCw4mjV5XV8f169dZsmTJR59zOBykpaUxaNAgAAoKCsjNzaW2tpZ9+/aRl5dHW5v30+KwsLCAfIRbwlg+x0LdrUqcLs+xrtv3s2hyYI7X/tEfpo0OEBsb2+X25uZmKioqmD59OgDPnj2jqqoKm80GwJw5cxg9ejR2uz24A3eTmvEbxlgzOv6dMufXxKfON26gbkwZPSYmBoDa2tout+/atYtHjx51nMQ5HA5GjRrVseoBxo0bx4MHD7wew+12B+Tj/DduflpwkDDLh2/twEFDyNtup/ZRYI7Z39OyAf26d5AkJSWRnp7Ojh07GDlyJGPGjKGsrIwTJ04AmOrMvbPuZ+n/uuK5fdZ4z+f2l3tO7pJje32IoDDlSrdYLBw5coS0tDTWrFnDypUriYmJYd26dYSHh3ecxI0dO5YnT57Q2tra8bX37t0jMTEx6DP3dVnmy3V8MJkyOoDVasVut/P27VscDgdFRUVcu3aNSZMmMXjwYMDzMjB37lxKSkoAqK6upr6+nqysrKDO6u063Nc3cILFtNF7cvHixY+e2vfu3cvhw4exWq3k5+dTWlpKRETw3t98/Nq36/Du4UsqjXvv3ZSv6T1pbGyktraWtWvXdrk9KSmJyspKg6aC2Gj4+Qx47/R+Hd4ePtwCqXHGvfceMtGHDRuG0+k0eowezZ/o+30tYbD0h4GbxacZjD28MoJGF0ijC6TRBdLoAml0gTS6QBpdII0ukEYXSKMLpNEF0ugCaXSBNLpAGl0gjS6QRhdIowuk0QXS6AJpdIE0ukAaXSCNLpBGF0ijC6TRBdLoAml0P3jvhLb3vt+/uQ2M3L1Po3+m9044UAklFb6Ff9MCe76Gf1w0LrxG/0yvmsDxAv732Hv4Ny3w59Oe3Su+eQIt74I3Z2emjh4KGwLHRMH6hTAssu/wnYPHRsO6hTBYd4H+WKhsCBwb3Xf4noJHRRo3r24I7EePX8NXp6GxBVJiPT8A4AltluBg4pXu64bA27dvx2q1YrFYKCsrM2LUDt1XfDszBQeTRu/PhsDZ2dmcOnWKefPm9esYgdqYN+6LMP6yYRJNDd92HOt53Q1+/6vvM3ywbgjcK183BAbPJsBJSUlBnc+b5sZntDW9/vDvN09pazbwL/V0Y8rovm4I/DkCtTFvQ7Ob7X97yhexE4gZBkMHQXzqfP50spnWd7ohcK9CdUPgns7S37Z6Tu7az+ptmRBh8HfdlCvd1w2BzaS3yzJvl3NGMOVKhw8bAne2YsWKLhsCm4W36/D28GZZ8aZc6b3paUPgwsJC4uPjOXfuHAUFBcTHx3Pnzp2gzeTrGy9mWvEhE719Q+DOZ+4ARUVF1NXV0drayvPnz6mrq2P8+PFBmysMsFh8uw7vHD7cAv280vIb074jF0oaWzz/Yxbl46vOszcQPcTzZ7yMoNEFCpmnd+U/Gl0gjS6QRhdIowuk0QXS6AJpdIE0ukAaXSCNLpBGF0ijC6TRBdLoAml0gTS6QBpdII0ukEYXSKMLpNEF0ugCafQePHz4kAULFpCamkpaWhpbt241eiS/0ug9GDBgADt37uTmzZtcvnyZqqoqjh8/bvRYfmPa31o1UlxcHHFxcQBEREQwbdo0HA6HwVP5j650L168eMGxY8dYtGiR0aP4jUbvQ1tbG4sXL2bjxo1MnDjR6HH8Rn+BsRdOp5Pc3FzGjh3L7t27jR7HrzR6L2w2Gy6XiwMHDvR7yy6z0+g9OHv2LBkZGUyePJnwcM8vka9atYoNGzbgdrtD/odAo/fTP09X43Q6+cVPMkI2vp7I9cOrhkZqrtwI+dUe8tGvXbtGTk4OMTExREZGkpyczLZt2wJyrPLzV3C73WT9aFpAHj9YQvrp/dKlS8ybN4+EhAS2bNlCYmIi9+7do7q6mpKSkj6/9nc79wdpyuD4wxbf978P6XfkNm/ezNChQ6mpqSE6OrrjdpvNZuBU5heyK72pqYmoqCjWr1/Pnj17AnqsVw2N/HH/YWZMtvLL7P7tNm1GIbvSX758icvlIj4+/pO+/lOe3i9cvcWFq7c+6XiB1p+n95A9kRsxYgQWi4X6+nqjRwk5Ifv0DpCVlcWNGze4ffs2w4cPD8gxjn1dxYWrN/ltfh4joqMCcoxgC9mVDlBcXExjYyOzZ8/m4MGD2O12Dh06xOrVq/3y+K8aGvnPf2/xgykp35ngEMKv6eDZ9/3cuXMUFhayadMmWlpaSEhIIC8vzy+P//xVA1FDh4T8dXl3If30HgwulwuLJaSfED+i0QX6bv0IK59odIE0ukAaXSCNLpBGF0ijC6TRBdLoAml0gTS6QBpdII0ukEYXSKMLpNEF0ugCaXSBNLpAGl0gjS6QRhdIowuk0QXS6AJpdIE0ukD/B2PGO7lIclO/AAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# SWAP gate circuit\n",
"qswap = qiskit.QuantumCircuit(2,2)\n",
"qswap.swap(0,1)\n",
"qswap.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you probably already figured out from the name, this gate serves to swap the two qubits it is connected to. This means that we're swapping the values of the qubits; if $q_{0}$ started in state $|0\\rangle$ and $q_{1}$ started in state $|1\\rangle$, after applying this gate we would see that $q_{0} \\rightarrow |1\\rangle$ and $q_{1} \\rightarrow |0\\rangle$.\n",
"\n",
"We will not be seeing a whole lot of circuits in this book that invoke the SWAP gate, but there are plenty of places in the literature where they are used quite a lot (for example, check out this [paper](https://arxiv.org/abs/1904.12697) where the authors build a Quantum Neural Network (or QNN) with SWAP gates!). "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Measuring qubit states in circuits\n",
"\n",
"All right, it's *finally* time to get to the measurement process! Let's make a simple circuit below and put the measurement tool in. "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# measure tool in Qiskit circuits\n",
"qmeas = qiskit.QuantumCircuit(2,2)\n",
"qmeas.h(0)\n",
"qmeas.cx(0,1)\n",
"qmeas.measure(0,0)\n",
"qmeas.measure(1,1)\n",
"qmeas.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That black box with what looks like an old voltmeter dial on it is the __measurement__ tool in `Qiskit`. This tool maps the state of each qubit into a corresponding classical bit, where the information can be examined by the user. Of course, as we've mentioned before, once the qubit is measured, the state of the qubit collapses from a superposition of states into one definite condition. Hence, to measure a circuit many, many times (to get that probability per possible qubit state), one must prepare a very large number of identical circuits and measure each one. \n",
"\n",
"Let's measure the circuit above with a simulator (more on that later) and see what we get!"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Counts: {'11': 4150, '00': 4042}\n"
]
}
],
"source": [
"# set up the number of measurements and simulator\n",
"shots = 2**13\n",
"sim = qiskit.Aer.get_backend('aer_simulator')\n",
"\n",
"# transpile the circuits and run the simulator to get \n",
"# the counts from the measurements\n",
"qc_trans = qiskit.transpile(qmeas,sim)\n",
"counts = sim.run(qc_trans, shots=shots).result().get_counts()\n",
"\n",
"# print the results\n",
"print('Counts: {}'.format(counts))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you can see, we get two different results: $|00\\rangle$ and $|11\\rangle$, as we would expect from using a Hadamard gate and a CNOT gate where both qubits are initialized to 0. The number of measurements for each state is close to equal; if we ran this experiment with even more shots than we have above, we'd see the number of measurements converge to a 50-50 split between the two states. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{important}\n",
"It may seem obvious, from all of the information in this notebook, that we'd be getting only the two results above, $|00\\rangle$ and $|11\\rangle$. *However*, that is NOT a given in quantum computing! As we previously discussed, qubits can have *any* state in the Bloch sphere. So why do we measure just these two options? Because when we measure, we have to measure with respect to some vector on which we're __projecting__ the qubit state:\n",
"\n",
"$$\n",
"p(|x\\rangle) = |\\langle x|\\psi\\rangle|^{2} \\rightarrow |x\\rangle = \\{|0\\rangle,|1\\rangle\\}\n",
"$$\n",
"\n",
"Hence, all of our measurements have been in this $|0\\rangle$, $|1\\rangle$ basis, which is usually referred to the as the __computational basis__. We could measure in a different basis if we wished to, but this is the standard. These basis states are also the eigenstates of the $Z$ gate, so these are also sometimes called the $Z$-basis.\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## A few simple circuits"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's quickly look at a few interesting circuits that can be built from the ones we just learned. For example, we can create an $X$ gate from two Hadmards and a $Z$ gate, as follows. "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# X = HZH circuit\n",
"qhzh = qiskit.QuantumCircuit(1,1)\n",
"qhzh.h(0)\n",
"qhzh.z(0)\n",
"qhzh.h(0)\n",
"qhzh.measure(0,0)\n",
"qhzh.draw(\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Counts: {'1': 8192}\n"
]
}
],
"source": [
"# check equivalence to X gate by measuring the circuit\n",
"qc_trans = qiskit.transpile(qhzh,sim)\n",
"counts = sim.run(qc_trans, shots=shots).result().get_counts()\n",
"print(\"Counts: {}\".format(counts))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We already know that an $X$ gate circuit gives the measured state of '1' as well, so we now know this circuit definitely creates an $X$ gate. This will come in useful later on if we want to convert from different basis states to the computational basis. \n",
"\n",
"Let's see this in action once more, with the following configuration of CNOT gates."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# equivalent SWAP circuit\n",
"qc3 = qiskit.QuantumCircuit(2,2)\n",
"qc3.x(1)\n",
"qc3.barrier()\n",
"qc3.cx(0,1)\n",
"qc3.cx(1,0)\n",
"qc3.cx(0,1)\n",
"qc3.measure(0,0)\n",
"qc3.measure(1,1)\n",
"qc3.draw(\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Counts: {'01': 8192}\n"
]
}
],
"source": [
"# measurement\n",
"qc_trans = qiskit.transpile(qc3,sim)\n",
"counts = sim.run(qc_trans, shots=shots).result().get_counts()\n",
"print(\"Counts: {}\".format(counts))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's do the same thing, but use a SWAP gate instead."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# real SWAP gate\n",
"qswap2 = qiskit.QuantumCircuit(2,2)\n",
"qswap2.x(1)\n",
"qswap2.barrier()\n",
"qswap2.swap(0,1)\n",
"qswap2.measure(0,0)\n",
"qswap2.measure(1,1)\n",
"qswap2.draw(\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Counts: {'01': 8192}\n"
]
}
],
"source": [
"# measurement\n",
"qc_trans = qiskit.transpile(qswap2,sim)\n",
"counts = sim.run(qc_trans, shots=shots).result().get_counts()\n",
"print(\"Counts: {}\".format(counts))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In these circuits, we set an $X$ gate on $q_{1}$ so that we could see the values of the qubits swapping, and indeed we do! They both swap from the least significant to the most significant qubit, indicating the equivalence of the two circuits."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{admonition} Universality\n",
"This all leads us to the question: can we build all complicated gates out of only a few simple ones? Which gates would those be? Those sets of gates which can build *all* other gates are called __universal gates__, because of this ability to reproduce any unitary operation with them [1]. Usually they come in sets, as just mentioned, but there are ones, such as the __Toffoli gate__ (which we already looked at!) that are universal on their own [4]. The Toffoli gate is considered to be a universal gate because it is able to create a NAND gate, which can be used to build any other logic gate (as you may recall from classical computing) [4]. There are many universal sets of gates in quantum computing, and we may run across more of them later in this book!\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example: Bell states\n",
"\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at a simple two-qubit circuit where we prepare the four Bell states below as a full example of measuring two-qubit circuits.\n",
"\n",
"$$ \n",
"|\\Phi^{+}\\rangle = \\frac{|00\\rangle + |11\\rangle}{\\sqrt{2}}\n",
"$$\n",
"\n",
"$$\n",
"|\\Phi^{-}\\rangle = \\frac{|00\\rangle - |11\\rangle}{\\sqrt{2}}\n",
"$$\n",
"\n",
"$$\n",
"|\\Psi^{+}\\rangle = \\frac{|01\\rangle + |10\\rangle}{\\sqrt{2}}\n",
"$$\n",
"\n",
"$$\n",
"|\\Psi^{-}\\rangle = \\frac{|01\\rangle - |10\\rangle}{\\sqrt{2}}\n",
"$$\n",
"\n",
"What are these __Bell states__? What purpose do they have? Well, they use the Hadamard and CNOT gates we just discussed individually above, and they have some very interesting properties, including quantum teleportation! They play a very important role in the EPR paradox and the recent 2022 Physics Nobel Prize (see [this comprehensive YouTube video](https://www.youtube.com/embed/9OM0jSTeeBg) from IBM Quantum for more information on Bell states and Bell's inequality)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To prepare our circuits, we set up a `QuantumCircuit` object using Qiskit and set it for 2 qubits and 2 classical bits. "
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"First Bell circuit:\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# first circuit\n",
"bell1 = qiskit.QuantumCircuit(2,2)\n",
"bell1.h(0)\n",
"bell1.cx(0,1)\n",
"bell1.measure(0,0)\n",
"bell1.measure(1,1)\n",
"print('First Bell circuit:')\n",
"bell1.draw(\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Second Bell circuit:\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# second circuit\n",
"bell2 = qiskit.QuantumCircuit(2,2)\n",
"bell2.h(0)\n",
"bell2.cx(0,1)\n",
"bell2.z(1)\n",
"bell2.measure(0,0)\n",
"bell2.measure(1,1)\n",
"print('Second Bell circuit:')\n",
"bell2.draw(\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Third Bell circuit:\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# third circuit\n",
"bell3 = qiskit.QuantumCircuit(2,2)\n",
"bell3.h(0)\n",
"bell3.x(1)\n",
"bell3.cx(0,1)\n",
"bell3.measure(0,0)\n",
"bell3.measure(1,1)\n",
"print('Third Bell circuit:')\n",
"bell3.draw(\"mpl\")"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fourth Bell circuit:\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# fourth circuit\n",
"bell4 = qiskit.QuantumCircuit(2,2)\n",
"bell4.h(0)\n",
"bell4.x(1)\n",
"bell4.cx(0,1)\n",
"bell4.z(0)\n",
"bell4.measure(0,0)\n",
"bell4.measure(1,1)\n",
"print('Fourth Bell circuit:')\n",
"bell4.draw(\"mpl\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have these states established, we can put our knowledge of measuring circuits to use, and check to see if we obtain the states we expect from the four circuits above. To do this, we need to first set up the __simulator__. You may have noticed that we used a simulator earlier on, the `Qiskit.Aer` simulator, to see the statevectors from our simple circuits on the Bloch sphere. Now we'll use one of these so-called ''noiseless'' simulators to act like a quantum computer and measure this circuit many, many times. This is done, as previously discussed, to develop a probability for each state since measuring once will collapse the wavefunction and give us only one of the possible results. Hence, we measure many identical circuits using the `shots` argument of the simulator, as seen below. "
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Bell 1 counts: {'00': 4075, '11': 4117}\n",
"Bell 2 counts: {'11': 4149, '00': 4043}\n",
"Bell 3 counts: {'01': 4096, '10': 4096}\n",
"Bell 4 counts: {'01': 4059, '10': 4133}\n"
]
}
],
"source": [
"# measure the four circuits respectively\n",
"counts = []\n",
"qc_trans = []\n",
"shots = 2**13\n",
"sim = qiskit.Aer.get_backend('aer_simulator')\n",
"bells = [bell1, bell2, bell3, bell4]\n",
"for b in bells:\n",
" qc_trans.append(qiskit.transpile(b,sim))\n",
"\n",
"for i in qc_trans:\n",
" counts.append(sim.run(i, shots=shots).result().get_counts())\n",
" \n",
"for i in range(4):\n",
" i = i+1\n",
" print('Bell {} counts: {}'.format(i, counts[i-1]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As expected, the first and second states contain the $|00\\rangle$ and $|11\\rangle$ two-qubit computational basis states, and the third and fourth states contain the $|01\\rangle$ and $|10\\rangle$ basis states. Later in these pages we'll see these Bell states used to compare the results of a noiseless simulator to that of a simulator using real quantum noise. For now, however, we'll move on to a short crash course on computer science and role of quantum computing within it in the present and near future. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## References"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[1] Nielsen, M. A., & Chuang, I. L. (2011). Quantum Computation and Quantum Information: 10th Anniversary Edition. Cambridge University Press.\n",
"\n",
"[2] Qiskit textbook, \"Single Qubit Gates\" (exact page found [here](https://qiskit.org/textbook/ch-states/single-qubit-gates.html#ynzgatez)). \n",
"\n",
"[3] Qiskit textbook, \"Multiple Qubits and Entangled States\" (exact page found [here](https://qiskit.org/textbook/ch-gates/multiple-qubits-entangled-states.html#cnot)).\n",
"\n",
"[4] Tom Wong, Scott Aaronson. \"Lecture 16, Tues March 21: Quantum Computing, Universal Gate Sets.\" (PDF link [here](https://www.scottaaronson.com/qclec/16.pdf)). "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.11"
}
},
"nbformat": 4,
"nbformat_minor": 2
}