{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Deutsch-Joszja Algorithm\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit\n", "from qiskit import Aer, execute\n", "from qiskit.tools.visualization import plot_histogram" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Create quantum/classical registers and a quantum circuit\n", "\n", "qin = QuantumRegister(2)\n", "qout = QuantumRegister(1)\n", "c = ClassicalRegister(2)\n", "qc = QuantumCircuit(qin,qout,c)\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Copy the equal2 function from Example 3\n", "# This is balanced function\n", "\n", "def equal2(circ, input, output) :\n", " circ.cx(input[0],output)\n", " circ.cx(input[1],output)\n", " circ.x(output)\n", "\n", "# This is a constant function that doesn't change anything\n", "def constant2(circ, input, output) :\n", " circ.iden(output)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Build the Deutsh-Josza circuit\n", "\n", "# First apply phase shift to negate where f(x) == 1\n", "qc.h(qin)\n", "qc.x(qout)\n", "qc.h(qout)\n", "equal2(qc,qin,qout)\n", "qc.h(qout)\n", "qc.barrier() # barrier to make circuit look nicer\n", "\n", "# Then Walsh-Hadamard on input bits\n", "qc.h(qin)\n", "\n", "# For constant function, output is |00> with probability 1\n", "# For balanced function, output is something other than |00> with probability 1\n", "qc.measure(qin,c)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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W5Oxnp6euvPOO7Vz5049//zzysvLU0xMjCorK52eG65j06ZNRkcAYFIUXMBgr732mpYtW6bZs2drw4YN6tWrl1WvCwgI0IcffqikpCTNnz9fW7ZscXDSf6mpqdHtt98uLy8vff7557r99tutep27u7tmz56tDz74QCUlJUpKSlJ9fb2D08JVPfXUU0ZHAGBSnabgrlmzxub1HiMjI7Vjxw7HBAIkHT16VHPmzFFsbKxWrVrV7NHP1nh6euqtt95SWFiYHnroIVVVVTkoaWPz58/X8ePHtWnTJl177bU2v37s2LF67rnn9Omnn+qll15yQEJ0BBs2bDA6AgCTMrTgvvPOO4qOjpaPj4/Tr6yuq6vT/Pnz1bt3b3l7eysxMbHJr0sTEhK0efNmp+Zydd9//7169+7d6FeLP/zwg0aNGqW7777bZY/G9evXr8m5qhaLRT4+PnrvvfcMSiVlZmbq/PnzevXVV+Xufnl/Hbt06aLXX39dFRUVev755+2csKlDhw7pT3/6k1JTU3XjjTde9vskJydr7NixysjI0Llz5+yY0HZs1wBgLoYWXH9/f82aNcuQe6BnZmZq8+bNKiws1LFjxyRJU6dObTQmISFBubm5Ts/mynr06KHHHntMS5YskcViUV1dnZKSkuTl5aW33377skuaIx0/flwVFRUaNmxYo8dLS0t1+vRpDR8+3JBcp0+f1ptvvqlf/epX7V7yKzIyUuPHj9fLL7+sf/7zn3ZK2LyXXnpJHh4emjdvXrvex83NTWlpaTp58qQ2btxop3SXh+0aAMzF4Xvt9evXKywsTD169ND48eM1d+5cTZkyRZIUFxene++915D1PHNycpSWlqaBAwfK19dXzz77rLZt26bDhw83jBk2bJg8PT21a9cup+dzZY8++qgqKir07rvvKiUlRceOHdPmzZvl5eVldLRmFRUVycPDQ6GhoY0e37Nnj/r06aOAgABDcu3cuVPff/+97r//fru83/3336/jx49r7969dnm/lrz//vsaP368+vXr1+73uvXWW9WvXz9t3brVDsnah+3a+fLz842OAMCkHFpw33jjDc2bN0+rV69WTU2N4uPjtWrVKkVERNh1nszMTA0dOtTq8TU1NSovL1dkZGTDY4MGDZKPj0+TcjBp0iROU/iJ7t27a/78+br//vuVl5enbdu2ycfHx+hYLSoq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\n", "text/plain": [ "
" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc.draw(output='mpl')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'11': 512}\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Simulate and show results\n", "backend = Aer.get_backend('qasm_simulator')\n", "job = execute(qc, backend, shots=512) # shots default = 1024\n", "result = job.result()\n", "print(result.get_counts())\n", "plot_histogram(result.get_counts())" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }