{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\"Note: Trusted Notebook\" width=\"500 px\" align=\"left\">" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## _*The Deutsch-Jozsa Algorithm*_ \n", "\n", "The [Deutsch-Jozsa algorithm](http://rspa.royalsocietypublishing.org/content/439/1907/553) is one of the earliest examples demonstrating the power of quantum computers. The algorithm deals with guessing the type of a hidden Boolean function given as an oracle. The Boolean function is promised to be either balanced, i.e., whose values are $0$ on half of its inputs, or constant, i.e., whose values are the same on all inputs. \n", "\n", "Classically, in the best case, two queries to the oracle can determine if the hidden Boolean function is balanced; in the worst case, at least half of the inputs must be queried to determine if the hidden Boolean function is constant for all inputs. On the other hand, the Deutsch-Jozsa algorithm can determine the Boolean function with one quantum query. \n", "\n", "The latest version of this notebook is available on https://github.com/qiskit/qiskit-tutorial.\n", "\n", "***\n", "### Contributors\n", "Rudy Raymond" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction \n", "\n", "The algorithm in this notebook follows that in [Cleve et al. 1997](https://arxiv.org/pdf/quant-ph/9708016.pdf). We assume that the input to the oracle $f$ is a $n$-bit string. Namely, for each $x\\ in \\{0,1\\}^n$, the value of $f(x)$ is promised to be either constant, i.e., the same for all $x$, or balanced, i.e., exactly half of the $n$-bit string whose $f(x) = 0$. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Algorithm\n", "\n", "The algorithm is quite simple as follows.\n", "1. Prepare two quantum registers initialized to zero. The first is an $n$-qubit reqister for querying the oracle, and the second is a one-qubit register for storing the answer of the oracle\n", "$$\n", "|0\\ldots 0\\rangle |0\\rangle\n", "$$\n", "2. Create the superposition of all input queries in the first register by applying the Hadamard gate to each qubit.\n", "$$\n", "H^{\\otimes^n} |0\\ldots 0\\rangle |0\\rangle = \\frac{1}{\\sqrt{2^n}}\\sum_{i=0}^{2^n-1}|i\\rangle |0\\rangle \n", "$$\n", "3. Flip the second register and apply the Hadamard gate. This is to store the answer of the oracle in the phase.\n", "$$\n", "\\frac{1}{\\sqrt{2^n}}\\sum_{i=0}^{2^n-1}|i\\rangle |0\\rangle \\rightarrow \\frac{1}{\\sqrt{2^{n+1}}}\\sum_{i=0}^{2^n-1}|i\\rangle ( |0\\rangle - |1\\rangle )\n", "$$\n", "4. Query the oracle\n", "$$\n", "\\frac{1}{\\sqrt{2^{n+1}}}\\sum_{i=0}^{2^n-1}|i\\rangle ( |0\\rangle - |1\\rangle ) \\rightarrow \\frac{1}{\\sqrt{2^{n+1}}}\\sum_{i=0}^{2^n-1}(-1)^{f(i)}|i\\rangle ( |0\\rangle - |1\\rangle ) \n", "$$\n", "5. Apply the Hadamard gate to the first register\n", "\n", "6. Measure the first register. If it is non-zero, then conclude that the hidden Boolean function is balanced. Otherwise, conclude that it is constant. \n", "\n", "The correctness of the conclusion of the last step can be explained as follows. \n", "\n", "When the hidden Boolean function is constant, the quantum states before and after querying the oracle are the same. The inverse of the Hadamard gate is the Hadamard gate itself. Thus, by Step 5, we essentially reverse Step 2 to obtain the initial quantum state of all-zero at the first register. \n", "\n", "When the hidden Boolean function is balanced, the quantum state after querying the oracle is orthogonal to the quantum state before querying the oracle. Thus, by Step 5, when reverting the operation, we must end up with a quantum state that is orthogonal to the initial quantum state of all-zero at the first register. This means we should never obtain the all-zero state. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Circuit \n", "\n", "We now implement the Deutsch-Jozsa algorithm with Qiskit by first preparing the environment." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2018-09-26T15:39:22.130660Z", "start_time": "2018-09-26T15:39:20.490197Z" } }, "outputs": [], "source": [ "# useful additional packages \n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "# importing Qiskit\n", "from qiskit import BasicAer, IBMQ\n", "from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister\n", "from qiskit import execute, compile\n", "from qiskit.tools.monitor import job_monitor\n", "\n", "# import basic plot tools\n", "from qiskit.tools.visualization import plot_histogram" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2018-09-26T15:39:23.056039Z", "start_time": "2018-09-26T15:39:22.132345Z" } }, "outputs": [], "source": [ "# Load our saved IBMQ accounts\n", "IBMQ.load_accounts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first set the length of the $n$-bit string. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2018-09-26T15:39:24.251778Z", "start_time": "2018-09-26T15:39:24.247587Z" } }, "outputs": [], "source": [ "n = 13 # the length of the first register for querying the oracle " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We then use Qiskit to program the algorithm." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2018-09-26T15:39:24.980983Z", "start_time": "2018-09-26T15:39:24.968037Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The oracle returns a constant value 0\n" ] } ], "source": [ "# Choose a type of oracle at random. With probability half it is constant, \n", "# and with the same probability it is balanced\n", "oracleType, oracleValue = np.random.randint(2), np.random.randint(2)\n", "\n", "if oracleType == 0:\n", " print(\"The oracle returns a constant value \", oracleValue)\n", "else:\n", " print(\"The oracle returns a balanced function\")\n", " a = np.random.randint(1,2**n) # this is a hidden parameter for balanced oracle. \n", "\n", "# Creating registers\n", "# n qubits for querying the oracle and one qubit for storing the answer\n", "qr = QuantumRegister(n+1) #all qubits are initialized to zero\n", "# for recording the measurement on the first register\n", "cr = ClassicalRegister(n)\n", "\n", "circuitName = \"DeutschJozsa\"\n", "djCircuit = QuantumCircuit(qr, cr)\n", "\n", "# Create the superposition of all input queries in the first register by applying the Hadamard gate to each qubit.\n", "for i in range(n):\n", " djCircuit.h(qr[i])\n", "\n", "# Flip the second register and apply the Hadamard gate.\n", "djCircuit.x(qr[n])\n", "djCircuit.h(qr[n])\n", " \n", "# Apply barrier to mark the beginning of the oracle\n", "djCircuit.barrier()\n", "\n", "if oracleType == 0:#If the oracleType is \"0\", the oracle returns oracleValue for all input. \n", " if oracleValue == 1:\n", " djCircuit.x(qr[n])\n", " else:\n", " djCircuit.iden(qr[n])\n", "else: # Otherwise, it returns the inner product of the input with a (non-zero bitstring) \n", " for i in range(n):\n", " if (a & (1 << i)):\n", " djCircuit.cx(qr[i], qr[n])\n", " \n", "# Apply barrier to mark the end of the oracle\n", "djCircuit.barrier()\n", "\n", "# Apply Hadamard gates after querying the oracle\n", "for i in range(n):\n", " djCircuit.h(qr[i])\n", " \n", "# Measurement\n", "djCircuit.barrier()\n", "for i in range(n):\n", " djCircuit.measure(qr[i], cr[i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Experiment with Simulators\n", "\n", "We can run the above circuit on the simulator. \n", "\n", "First, we draw the circuit." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2018-09-26T15:39:31.705137Z", "start_time": "2018-09-26T15:39:26.587871Z" } }, "outputs": [ { "data": { "image/png": "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QhMnTvQsO3jwoCTJ4XB4zgIeOXLEa7vm5mZFRUWpublZCxcu1N/+9jd9+umnuuWWW7Rz505dcMH5Zy2RkZGd1j5VY2Oj4uPjz7tmV8y6K2t6errP627fvl0lJSXKy8vzWj569Gi/z+BWV1eH3J1og2XOnDk+rVdRUdHp3y9evDgQ7XRrVh9rM+ZjsOai1ccaAADADKcf7z399NO6+uqrNXXqVJ+2Pz2kOHlPiiuuuELf/e53tXLlSv3nf/6n15UZZv7u5etjUg0LKg4cOKDLLrvMa9nq1avVv39/DRgwQJIUHx+vnTt3em4G19DQILfb7flsTnp6unr27KmePXtq4MCBeu+99zR06NDz7i0mJqbT2qeqrKxUTk7OedfsihnPufXnca319fU6fPiwMjMzFRcX57W8ubnZ7zO46enpqqqq8mub7mrPnj1drrN48WLl5+d3us6iRYsC1VK3ZeWxNms+BmsuWnmsAQAAzHD68d6HH36oN954QwsWLPApSDhbSHHSPffco2effVabN2/WHXfc4VkeCr97GfbRjxEjRqi+vl7V1dU6fvy4Vq9eLafTKYfD4VknPz9fZWVl2rt3r9xutwoLC5WZmamEhAR98sknXilQnz599MknnwSsv85qn3T06FFt2bJFWVlZAasbqlwul3r16qWkpCSv5Vu3btXgwYM7hFIIrCeeeMLsFsJGKIx1d5mPoTDWAAAAwXLyoQ1paWldrttVSCFJY8eO1UUXXRSSD4MwLKhISUnRo48+qilTpiguLk41NTVKTU31CiqKioo0efJkpaSkaNCgQWpra9PKlSslSX379tXhw4c96zY3N3vd0fRU8+fP18iRI/3qr7PaJ23evFkOh0OxsbF+7bs7crlcSklJUY8e3hflbNu2LWRu3BfKbr/9drNbCBuhMNbdZT6GwlgDAAAES319vaSvTvJ3xpeQQpIuuugiXXnllfp//+//BbzXYDPsox+SVFpa6nUzj4SEBM2YMcPztc1m08KFC7Vw4cIO26ampupHP/qRvvjiCx09elT79u3zutrhVMXFxSouLvart85qn1RZWans7Gy/9ttdne3y66VLlxrcSXi65ppr9M4775jdRlgIhbHuLvMxFMYaAAAgWG677TZdffXVHe6TeLq33npLf/jDHzoNKU565pln1Lt370C2aQhDg4pTud1uNTY2el1R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WC2iGzEsqDh27Jjmzp2riooKpaamKiIiQvfee6/a2trkcDjU0tIiSYqOjvbaLiYmRm63W//4xz90ww036Bvf+Iauv/56bd++/ay1ioqKtGvXLp9766r2qSZNmqQNGzb4vO/uzOVyqb6+XrGxsV5/ysrKlJKSYnZ7QFhhPgIAgGBpa2vT3XffrUsuuUSVlZXq06ePT9udek8Kp9OpBx54QIsXL9brr78e5I4R6gy7e0l1dbVOnDihiRMnepYdPHhQkuRwODxnAY8cOeK1XXNzs6KiohQTE6N169apb9++evvtt3XffffptddeC0hvkZGRndY+VWNjo+Lj4wNSN9Rt375dJSUlysvL81o+evRozuACBmM+AgCAYHnxxRe1bds2LV++XJdffrlP25weUhQWFurTTz/Viy++qB//+MfasmVLkLtGKDMsqDhw4IAuu+wyr2WrV69W//79NWDAAElSfHy8du7c6bkZXENDg9xut8aMGaO+fft6trv44otls9kC1ltMTEyntU9VWVmpnJycgNU+m4iIiKDXOJP09HSf1quvr9fhw4eVmZmpuLg4r+XNzc1+n8Gtrq427Xu2mjlz5gRkP4sXLw7Ifrozq4+1GfMxWHPR6mMNAAD+z+nHIE8//bTi4uL0ne98x6ftzxRSSFLv3r01c+ZMFRUV6e2339aIESM825j5+0BZ0X1nfG1lodizpA6Pqz0bw4KKESNGqL6+XtXV1Ro/frxeeOEFOZ1OpaWledbJz89XWVmZbrzxRvXt21eFhYXKzMxUQkKCZ522tjY9/PDDKioqCmh/vtQ+evSotmzZoueeey6gtc/E13/AQMrIyPB5XZfLpV69eikpKclr+datWzV48OAOoVRX0tPTVVVV5dc23dWePXsCsp9FixYFZD/dmZXH2qz5GKy5aOWxBgAA/+f0Y5Bjx47plVde0Q9/+EOfHid6tpDipO9973sqKirShg0bvIIKs34fKCqrkLMwv8NrKwvFnv1l2D0qUlJS9Oijj2rKlCmKi4tTTU2NUlNT5XA4POsUFRVp8uTJSklJ0aBBg9TW1qaVK1d6/r69vV333HOPsrKydOutt5611vz58zVy5Ei/+uuqtiRt3rxZDodDsbGxfu27O3K5XEpJSenww2rbtm1cZg4YjPkIAACCpa6uTidOnNB1113X5bpdhRSSNGDAAA0ZMoQn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\n", "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#draw the circuit\n", "djCircuit.draw(output='mpl')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We then run the circuit on the remote simulator." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2018-09-26T15:39:32.111682Z", "start_time": "2018-09-26T15:39:31.709658Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "backend = BasicAer.get_backend('qasm_simulator')\n", "shots = 1000\n", "job = execute(djCircuit, backend=backend, shots=shots)\n", "results = job.result() \n", "answer = results.get_counts()\n", "\n", "plot_histogram(answer)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Repeating the above experiments, we can see that the result of the measurement is an all-zero bitstring if the oracle returns a constant value, or a non-zero bitstring otherwise.\n", "\n", "## Experiment with Real Devices\n", "\n", "We can run the circuit on the real device as below. However, notice that because the real devices are noisy, we cannot obtain the type of oracles with certainty, unlike when running the experiments with simulators. The Deutsch-Jozsa algorithm only shows the superiority of quantum computers against exact classical algorithms; when allowing some error, classically we can determine the type of the hidden Boolean function with a constant number of queries. This is asymptotically the same as the case with quantum computers. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2018-09-26T15:39:38.192969Z", "start_time": "2018-09-26T15:39:37.138264Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b7c32fd5c3ea4cb5a2fcda86cc424af4", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HTML(value=\"

Job Status: job is being initialized

\")" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "backend = IBMQ.get_backend('ibmq_16_melbourne')\n", "shots = 1000 \n", "job = execute(djCircuit, backend=backend, shots=shots)\n", "job_monitor(job)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2018-09-26T16:10:01.485559Z", "start_time": "2018-09-26T16:10:00.962392Z" } }, "outputs": [ { "data": { "image/png": "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rok9DxGRyqg4StrKysoYO3YsTz31FDNmzGDChAl8+OGHO+zz2GOP0bZtW2bOnMn555/P1VdfXXFbjx49mD59OtOnT+fmm2+u2H700UczefLkpJ6GiEiVVBwlbTNnzqRnz5706NGDJk2acPLJJ1es7F1u0qRJnHrqqQCceOKJTJ8+nZ0trH3ggQey5557Zi23SE3taotJuaVLl9K1a1duv/32im3FxcWcccYZHHTQQRx00EG89dZbWX8esnMqjpK2FStW0Llz54rrBQUFrFixosp9GjVqROvWrVm7di0QmlaHDx/Occcdx4wZM5ILnkOZ/lDdvHkzRx55JIcffjgHH3ww119/fSLPoz6raYsJwK9+9StGjhy5w7bLL7+ckSNH8uabb/Lqq6/St2/fbD8VqQYVR0lUp06deO+995g2bRrXXnstZ599NuvXr891rKzKxodq06ZN+dvf/sarr77K9OnTefnll3n77beTeDr1Vk1bTJ5//nm6d+/OPvvsU7H/+vXreeONNzj99NMBaNKkCW3atEnoGclXUXGUtOXn57Ns2bKK68uXLyc/P7/KfbZu3cr69evJy8ujadOm5OXlAfD1r3+dnj17snDhwuTC50A2PlTNjD322AOA0tJStm7dipkl9Izqp5q0mHzxxRfcdtttjB07dof9Fy9eTIcOHbjwwgsZPnw4P/3pT9mwYUP2n4zslIqjpG3QoEEUFRWxePFiSkpKmDhxIqNHj95hn2OOOYY///nPADzzzDMcfvjhmBmrV6+mrKwMgEWLFlFUVESPHj2SfgqJysaHKoQj0mHDhtG3b19GjBjBAQcckN0nIrvshhtu4Pzzz6/4QlNu69atzJ49m7POOotp06bRokWLSpvdJXmNch1Adj+NGjVi/PjxjBkzhrKyMk477TT69evHddddR2FhIccccwzf//73Oe+88xg8eDDt2rXj/vvvB+CNN97g+uuvp3HjxjRo0ICbbrqJdu3CquBXXXUVf/3rX9m4cSMDBgzg9NNP55e//GUun2rOVfWhCtCwYUOmT59OcXExp59+Oh988AH9+/fPQcr6IZ0Wk86dO+/QYjJz5kyeffZZrr76aoqLi2nQoAHNmjXjhBNOoKCgoOKLzYknnqjiWEuoOMouGTVqFKNGjdph2xVXXFHxc7NmzXjooYe+dL8TTjiBE044odLfOW7cOMaNG5fRnLVBNj5Uzz777Ir7tmnThsMOO4yXX3457eI4efJkrrjiCsrKyjj99NO5+OKLd7h9y5YtnH/++cyePZt27drxwAMP0K1bN6ZOnco111xDSUkJTZo0Ydy4cQwbNgyAiRMncvPNN1NWVsbRRx/9pfOnu6vUFpP8/HwmTpzIH//4xx32KW8xGTJkyA4tJpMmTarY53e/+x0tW7aseA07d+7MggUL2GuvvZg2bZo65NQSalYVybKaNENPmjSJ2bNnM3v2bM477zx+/vOfc/bZZ7N69WqKi4sB2LRpE6+88gp77713Wrlq0lGoffv2PPHEE7z++uvceeednH/++QCsXbuWq666ir/97W/MmDGDTz/9lGnTpu3Kn63WSW0xGTp0KCeddFJFi0n5OeTvf//7rF27lsGDB3P33Xdz1VVX7fT33nDDDZx77rkcdthhzJ07d4eJMSR3dOQoGTX24XZp32f8GeuykKT2qEkzdFVWrlzJBRdcQFlZGdu2beOkk07i6KOPTitXakchoKKjUGrHn0mTJnHZZZcBocnvsssuw93Zf//9K/bp168fmzZtYsuWLSxatIjevXvToUMHAIYPH85zzz3H8OHD08qW6SPajRs3ctZZZ7Fo0SIaNGjA6NGjq1W44na1xSRV/FTBfvvtx5QpU9LOItml4iiSgEx/qA4YMKDGR2SVdRSaOXNmlfukdhRq3759xT7PPvssAwcOpGnTpvTq1YsFCxZUTBP4/PPPU1pamlau8iPaiRMnUlBQwMiRIxk9evQORTv1iHbChAlcffXVPPDAAxVHtPn5+XzwwQd85zvf4f333wfgwgsv5PDDD6ekpISTTjqJf/7zn196TUTKqThKnbKrRxxr167lzDPPZNasWXzve99j/PjxFfeZMGECN998M2bGnnvuyb333rtDcajP5s2bx7hx45gwYQIAbdu25aabbuKHP/whDRo0YMiQISxatCit35mNI9oWLVpw+OGHA2Es4f7778/y5ctr8Mx3lOsWE73vM0/FsZbLxpv++OOPZ+XKlTRr1gwI/wk6duyY6PPKhpoccTRt2pQrrriCefPmMW/evIr9t27dyuWXX86MGTNo3749V111Fffdd1/GetHm8kO1Jh2FAJYtW8YPfvAD7rrrLnr27Flxn9GjR1ecU33ooYdo2LBhWrmycUSbqri4mBdffJHzzjsv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\n", "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = job.result()\n", "answer = results.get_counts()\n", "\n", "threshold = int(0.01 * shots) # the threshold of plotting significant measurements\n", "filteredAnswer = {k: v for k,v in answer.items() if v >= threshold} # filter the answer for better view of plots\n", "\n", "removedCounts = np.sum([ v for k,v in answer.items() if v < threshold ]) # number of counts removed \n", "filteredAnswer['other_bitstrings'] = removedCounts # the removed counts are assigned to a new index\n", "\n", "plot_histogram(filteredAnswer)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'0000000010000': 51, '0000000100000': 18, '0000000000000': 646, '0010000000000': 46, '0000010000000': 43, '0100000000000': 18, '0000100000000': 29, '0001000000000': 22, '0000000000010': 15, 'other_bitstrings': 112}\n" ] } ], "source": [ "print(filteredAnswer)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [default]", "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.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }