{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Three Qubit Gates" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from qiskit import *\n", "from math import pi\n", "import numpy as np\n", "from qiskit.visualization import *\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Three-qubit gates\n", "\n", "\n", "There are two commonly-used three-qubit gates. For three qubits, the basis vectors are ordered as\n", "\n", "$$\\left|000\\right\\rangle, \\left|001\\right\\rangle, \\left|010\\right\\rangle, \\left|011\\right\\rangle, \\left|100\\right\\rangle, \\left|101\\right\\rangle, \\left|110\\right\\rangle, \\left|111\\right\\rangle,$$\n", "\n", "which, as bitstrings, represent the integers $0,1,2,\\cdots, 7$. Again, Qiskit uses a representation in which the first qubit is on the right-most side of the tensor product and the third qubit is on the left-most side:\n", "\n", "$$\\left|abc\\right\\rangle : \\underset{\\text{qubit 2}}{\\left|a\\right\\rangle}\\otimes \\underset{\\text{qubit 1}}{\\left|b\\right\\rangle}\\otimes \\underset{\\text{qubit 0}}{\\left|c\\right\\rangle}.$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Toffoli gate ($ccx$ gate)\n", "\n", "The [Toffoli gate](https://en.wikipedia.org/wiki/Quantum_logic_gate#Toffoli_(CCNOT)_gate) flips the third qubit if the first two qubits (LSB) are both $\\left|1\\right\\rangle$:\n", "\n", "$$\\left|abc\\right\\rangle \\rightarrow \\left|bc\\oplus a\\right\\rangle \\otimes \\left|b\\right\\rangle \\otimes \\left|c\\right\\rangle.$$\n", "\n", "In matrix form, the Toffoli gate is\n", "$$\n", "C_{CX} = \n", "\\begin{pmatrix}\n", "1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\\n", "0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\\\\\n", "0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\\\\n", "0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\\\\n", "0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\\\\n", "0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\n", "\\end{pmatrix}.\n", "$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2019-08-22T14:44:29.306703Z", "start_time": "2019-08-22T14:44:29.298815Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 238.392x204.68 with 1 Axes>" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc = QuantumCircuit(3)\n", "qc.ccx(0,1,2)\n", "qc.draw(output='mpl')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2019-08-22T14:44:29.342102Z", "start_time": "2019-08-22T14:44:29.308539Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]]\n" ] } ], "source": [ "backend = Aer.get_backend('unitary_simulator')\n", "job = execute(qc, backend)\n", "result = job.result()\n", "print(result.get_unitary(qc, decimals=3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Controlled swap gate (Fredkin Gate)\n", "\n", "The [Fredkin gate](https://en.wikipedia.org/wiki/Quantum_logic_gate#Fredkin_(CSWAP)_gate), or the _controlled swap gate_, exchanges the second and third qubits if the first qubit (LSB) is $\\left|1\\right\\rangle$:\n", "\n", "$$ \\left|abc\\right\\rangle \\rightarrow \\begin{cases} \\left|bac\\right\\rangle~~\\text{if}~c=1 \\cr \\left|abc\\right\\rangle~~\\text{if}~c=0 \\end{cases}.$$\n", "\n", "In matrix form, the Fredkin gate is\n", "\n", "$$\n", "C_{\\mathrm{SWAP}} = \n", "\\begin{pmatrix}\n", "1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", "0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\\n", "0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\\\\n", "0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\\\\n", "0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\\\\n", "0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\\\\n", "0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\n", "\\end{pmatrix}.\n", "$$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2019-08-22T14:44:29.351500Z", "start_time": "2019-08-22T14:44:29.345440Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMIAAACoCAYAAACyjjENAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAACvxJREFUeJzt3W9M1Icdx/H38afcKRKFs9Jc/VPHSeUCqHStLGsJpqUsS9bVqh2dpEpSCCV70rBHpO0SIzSEB+0jswf9Q2JIMzGNbMUmTdbc3AxzdgxLsTs3OulZapSicngo92cPrlw9Ufmd90+un1fye8Dvfub3NeHN7x/hZwoGg0FEfuAyUj2AyL1AIYigEEQAhSACKAQRQCGIAApBBFAIIoBCEAEUggigEEQAhSACKAQRQCGIAApBBFAIIoBCEAEUggigEEQAhSACKAQRQCGIAApBBFAIIoBCEAEUggigEEQAhSACKAQRQCGIAApBBFAIIoBCEAEUggigEEQAhSACQFaqB5B7UzAIl8dhYhQCflhaAKuKITM71ZMlho4IUQoEAnR1dWG32zGbzZSXl+N0OikuLqaxsTHV48WF9zKcOAgne+DLATj7Dxj5CP5yAMZHUj1dYuiIEKWGhgY++OADXn31VSoqKjh+/Dh1dXVcuHCBV155JdXjxey6Fz59H2Y88z/zX4fP+yEzC+7fkPzZEklHhCj09PTQ3d1NX18fra2tVFdX09bWRmVlJT6fj4qKCgDOnz9PTU0NS5Ysoby8nMHBwRRPbty5IZiZAu7w9u0zztCpUzpRCFHo6OigtraWqqqqiPVFRUVkZ2dTWloKQHNzMw8//DATExO0tLSwY8cO/H5/KkaO2rlTC2/jvQyX3ImfJZkUgkFut5vh4WF27tw577OxsTEcDgc5OTlMTU3x4Ycf8tprr2GxWGhsbMTv9zMwMJCw2UwmU9wWz+SsoX3ueObXcd1vohajFIJBbnfoR2BhYWHEeq/Xi9PpDJ8WnTlzhoKCAqxWa3ib0tJSRkYWx1Xm1WtThrabnrmc4EmSSyEYNPeN7XK5ItZ3dnYyPj7Oli1bAJieniYvLy9im7y8PDyeW1x9xkkwGIzbUvKT/AX3l3kf/G3oT3Hdb6IWo3TXyKD169dTVlZGe3s7+fn52Gw2ent76e/vBwgfEZYuXcrUVORP1StXrpCbm5v0me/G6i3w9WehZwe3s/aR9HueoCOCQRkZGRw6dAiHw0FzczN79+7FarXS0tJCVlYWZWVlANjtdi5evMjExET43w4PD1NSUpKq0aOyNB/KfwkZN/+I/O5021YGD1UmfayEMwWjOX7IPPX19QwNDXHq1Pe3W7Zv386aNWt44403OHjwIO3t7Zw5c4bMzMwUThqda9OhI8N//xr6+gEHPLgJ8gohimvQRUOnRjE6efIkW7dujVh34MABdu/ezYoVK7Db7Rw+fHhRRQCQsxQe2vp9CI6fpXaeRFMIMfB4PLhcLl5++eWI9atWreLjjz9O0VRyNxRCDHJzcxfNgzK5M10si6AQRACFIAIoBBFAIYgACkEEUAgigEIQARSCCKAQRACFIAIoBBFAIYgACkEEUAgigEIQARSCCKAQRACFIAIoBBFAIYgACkEEUAgigEIQARSCCKAQRACFIAIoBBFAIYgACkFuMDtjfNtgAHzXEzdLsikEAeB/f4eBbrg6ufC2wQB8fhT++Yfo4rmXKQQh4IeLX8K1Kfj0D3eOYS6Cb07D9AR4LyVvzkRSCFEKBAJ0dXVht9sxm82Ul5fjdDopLi6msbEx1ePdlYxM2LQdltvuHMONEWRmw+bnQu9USwcKIUoNDQ3s27ePpqYmjh49yq5du6irq2N0dDT8itnFKOs+2PTc7WO4VQTLH0zdvPGmEKLQ09NDd3c3fX19tLa2Ul1dTVtbG5WVlfh8vnAIr7/+OiUlJWRkZNDb25viqY27VQxz0jkCUAhR6ejooLa2lqqqqoj1RUVFZGdnU1paCoTetfzWW2/x6KOPpmLMmNwcw5x0jgAUgmFut5vh4WF27tw577OxsTEcDgc5OTkA7N69m6eeegqz2ZyU2UwmU1yX7BwTj+/JZfjLY+F9eK95+M2bP2XF6vjuK9GLUQrBILfbDUBhYeTVodfrxel0Lurrg1u5PuvlwuVz4a9nrk8zOfVNCidKLIVgkNVqBcDlckWs7+zsZHx8nC1btqRiLACCwWBcl4A/yNAf/VRv+lV4HyuWreL9/f9h+tv47ivRi1F6z7JB69evp6ysjPb2dvLz87HZbPT29tLf3w+QNkeEm+8O+WdD65fb4NK50AV0xS5YsiK1c8abjggGZWRkcOjQIRwOB83Nzezduxer1UpLSwtZWVmUlZWlesSY3eoW6Zw73VpNBzoiRGHDhg188sknEevq6+vZuHEjFoslvG52dha/308gEGB2dpaZmRlycnKiunhLtoWeE8zdTfrX4fQ8MuiIEKOTJ0/OOy166aWXsFgsHDt2jBdeeAGLxcLZs2dTNOHCjD4sW+ih22KmEGLg8XhwuVzzLpTfe++9eRdt69atS82QRpjAlGnsOcGNMZhMYEqT7yCdGsUgNzcXv9+f6jFiZjJBydOw7sewtGDh7edi8M2AOS/x8yWDQhAgFIORCOZk3Rda0kWaHNhEYqMQRFAIIoBCEAEUggigEEQAhSACKAQRQCGIAApBBFAIIoBCEAEUggigEEQAhSACKAQRQCGIAApBBFAIIoBCEAEUggigEEQAhSACKAQRQCGIAApBBFAIIoBCEAEUggigEOQ7Vy/B6HEw+v69ya/g3KnEzpRM+rPwQsAfeiXU1Um47oXibaE/E387k1/B4GEI+MCyHPLXJG/WRNERIUqBQICuri7sdjtms5ny8nKcTifFxcU0Njamery7kpEJG6pDb81xD8K//3z7I8ONETzggBV3eLvOYqIQotTQ0MC+fftoamri6NGj7Nq1i7q6OkZHRxf1K2at66H8mTvHcHMEJU+nz6uj0uS/kRw9PT10d3fT19dHa2sr1dXVtLW1UVlZic/no6KigmvXrrFnzx5sNhvLly9n27ZtnD59OtWjG3KrGOakcwSgEKLS0dFBbW0tVVVVEeuLiorIzs6mtLQUn89HUVERJ06cYGJigieffJLnn38+RRNH7+YY5qRzBACmYNDofYIfNrfbzerVq3n77bdpaGiI+Kyuro4vvviCwcHBef9uamqKvLw8vF4vZrM5WePG7OIoDB2B4A3vSkzXCEBHBMPcbjcAhYWFEeu9Xi9Op/O21wfHjx9n3bp1CY3AZDLFfVn5IxO/P/Lb8D7Gzp+m7OeZZGTGf1+JXIxSCAZZrVYAXC5XxPrOzk7Gx8fnvWsZYHJykpaWFvbv35+UGeOp9KHHqa/5XfjrNas20vyLN1M3UILp1MigQCDA5s2bGR8fp6urC5vNRm9vL/39/YyNjTEwMMBjjz0W3t7r9VJTU8MTTzyx6EK4+cL4/g1wqi90mvTg5oWfMyxGCiEKLpeLpqYmTpw4QUFBAS+++CLLli2jra2NK1euYLFYAPD5fDz77LOsXLmSd955J8VTR+d2d4duvGZIxxgUQozq6+sZGhri1Knvf99gz549XLhwgSNHjpCVtXge3i90izSdY1AIMdq4cSNbt27l3XffBeDs2bPhi+PMzMzwdiMjI6xZc+/+LoLR5wTpGoMulmPg8XhwuVwRF8pr164lGAzi9XrxeDzh5V6OIOCHkY+MPSe4+TnD5FhyZ00UHREEAM9F+PozsFcZe05wcRSmv4W1jyR+tmRQCCLo1EgEUAgigEIQARSCCKAQRACFIAIoBBFAIYgACkEEUAgigEIQARSCCKAQRACFIAIoBBFAIYgACkEEUAgigEIQARSCCKAQRACFIAIoBBFAIYgACkEEUAgiAPwfQpv4CDCSyVYAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 238.392x204.68 with 1 Axes>" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc = QuantumCircuit(3)\n", "qc.cswap(0,1,2)\n", "qc.draw(output='mpl')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2019-08-22T14:44:29.393122Z", "start_time": "2019-08-22T14:44:29.353155Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j]]\n" ] } ], "source": [ "backend = Aer.get_backend('unitary_simulator')\n", "job = execute(qc, backend)\n", "result = job.result()\n", "print(result.get_unitary(qc, decimals=3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "-------------" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "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.7.3" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 1 }