{ "cells": [ { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "# Import modules\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "# Parameters\n", "N = 64\n", "steps = 60" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0. 0.01574852 0.01574852 ... 0.01574852 0.01574852 0.01574852]\n", " [0.01574852 0. 0.01574852 ... 0.01574852 0.01574852 0.01574852]\n", " [0.01574852 0.01574852 0. ... 0.01574852 0.01574852 0.01574852]\n", " ...\n", " [0.01574852 0.01574852 0.01574852 ... 0. 0.01574852 0.01574852]\n", " [0.01574852 0.01574852 0.01574852 ... 0.01574852 0. 0.01574852]\n", " [0.01574852 0.01574852 0.01574852 ... 0.01574852 0.01574852 0. ]]\n" ] } ], "source": [ "# Initial state\n", "psi = np.zeros((N,N))\n", "for i in range(N):\n", " for j in range(N):\n", " if (i == j):\n", " psi[i][j] = 0\n", " else:\n", " psi[i][j] = 1/np.sqrt(N*(N-1))\n", "print(psi)" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [], "source": [ "# Specify the marked vertex\n", "a = 0" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "# Create an array to store the probabilities.\n", "prob = np.zeros(steps+1)\n", "\n", "# Print the probability at the marked vertex\n", "prob[0] = np.sum(np.square(psi[a][:]));\n", "#print(0,\"\\t\",prob[0])\n", "\n", "for t in range(steps):\n", " # Query the oracle.\n", " for i in range(N):\n", " psi[a][i] *= -1\n", " \n", " # Temporary variable.\n", " tmp = np.zeros((N,N))\n", "\n", " # Apply the Grover coin\n", " for i in range(N):\n", " # Calculate the average amplitude at this vertex.\n", " avg = 0\n", " for j in range(N):\n", " avg += psi[i][j]\n", " avg /= N - 1\n", " \n", " # Invert each amplitude about this average.\n", " for j in range(N):\n", " if i != j:\n", " tmp[i][j] = 2*avg - psi[i][j]\n", " \n", " # Flip-Flop Shift\n", " for i in range(N):\n", " for j in range(N):\n", " psi[i][j] = tmp[j][i]\n", " \n", " # Print the probability at the marked vertex\n", " prob[t+1] = np.sum(np.square(psi[a][:]))\n", " #print(t+1,\"\\t\",prob[t+1])" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.0, 1.0)" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(prob)\n", "plt.ylim([0,1])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "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.9.1" } }, "nbformat": 4, "nbformat_minor": 4 }