{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "# Oxford Online Maths Club - Computational Complexity, Recursion and Dynamic Programming" ], "metadata": { "id": "DrsCbMuuUzUP" } }, { "cell_type": "markdown", "source": [ "## Naive Recursive FIB" ], "metadata": { "id": "oVvamkuPVEFO" } }, { "cell_type": "code", "source": [ "def fib(n):\n", " if n < 0:\n", " raise ValueError(\"n has to be a non negative integer!\")\n", " if n <= 1:\n", " return n\n", " return fib(n-1) + fib(n-2)" ], "metadata": { "id": "bLUaSam0X89V" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "def fib_with_prints(n):\n", " if n < 0:\n", " raise ValueError(\"n has to be a non negative integer!\")\n", " if n <= 1:\n", " print(f\"FIB({n}) READY\")\n", " return n\n", " print(f\"Need to calculate FIB({n-1})\")\n", " fib_n_1 = fib_with_prints(n-1)\n", " print(f\"Need to calculate FIB({n-2})\")\n", " fib_n_2 = fib_with_prints(n-2)\n", "\n", " print(f\"FIB({n}) READY\")\n", " fib_n = fib_n_1 + fib_n_2\n", " return fib_n\n" ], "metadata": { "id": "drtFHuRIU8b1" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "n = 5\n", "print(f\"FIB({n}) = {fib_with_prints(n)}\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "zFKK5c0oVYn4", "outputId": "9db0f330-3465-4148-f983-25b81f409a90" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Need to calculate FIB(4)\n", "Need to calculate FIB(3)\n", "Need to calculate FIB(2)\n", "Need to calculate FIB(1)\n", "FIB(1) READY\n", "Need to calculate FIB(0)\n", "FIB(0) READY\n", "FIB(2) READY\n", "Need to calculate FIB(1)\n", "FIB(1) READY\n", "FIB(3) READY\n", "Need to calculate FIB(2)\n", "Need to calculate FIB(1)\n", "FIB(1) READY\n", "Need to calculate FIB(0)\n", "FIB(0) READY\n", "FIB(2) READY\n", "FIB(4) READY\n", "Need to calculate FIB(3)\n", "Need to calculate FIB(2)\n", "Need to calculate FIB(1)\n", "FIB(1) READY\n", "Need to calculate FIB(0)\n", "FIB(0) READY\n", "FIB(2) READY\n", "Need to calculate FIB(1)\n", "FIB(1) READY\n", "FIB(3) READY\n", "FIB(5) READY\n", "FIB(5) = 5\n" ] } ] }, { "cell_type": "markdown", "source": [ "### Let's time it!" ], "metadata": { "id": "NpmhhoP4fFSO" } }, { "cell_type": "code", "source": [ "import time\n", "from tqdm import tqdm\n", "\n", "xs = list(range(43))\n", "ys= []\n", "\n", "for x in tqdm(xs):\n", " start_time = time.time()\n", " fib_n = fib(x)\n", " elapsed_time = time.time() - start_time\n", " ys.append(elapsed_time)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ie9NnTrYfLRu", "outputId": "3bb08560-214b-47fc-9d3c-40fbd4a247de" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "100%|██████████| 43/43 [03:26<00:00, 4.80s/it]\n" ] } ] }, { "cell_type": "code", "source": [ "naive_times = ys" ], "metadata": { "id": "rpUE0uB1FFmU" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.figure(figsize=(10, 5))\n", "plt.plot(xs, ys, marker='o', linestyle='-', color='b', label=\"Seconds\")\n", "plt.xlabel(\"n\")\n", "plt.ylabel(\"Runtime (s)\")\n", "plt.title(\"Runtime of Naive FIB\")\n", "plt.grid(True)\n", "plt.legend()\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 487 }, "id": "WvlmX0Nzfij6", "outputId": "6c705f26-f6a1-4a19-8b31-05fd13cb5248" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAHWCAYAAACi1sL/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWKJJREFUeJzt3Xl4VNX9x/HPZF8gCWsSSEBkCyKLrKbKIgQouIBBXCoVBLeKCKRWpS6I2oK0Ci4Ud3ApPxQKVFoUUgphEShSoFgBEbFsSVgkCSQkmUzu748xw4QkZJJMcm+S9+t55pmZu5z5ZuYY8vGce8ZmGIYhAAAAAIAkycfsAgAAAADASghJAAAAAOCGkAQAAAAAbghJAAAAAOCGkAQAAAAAbghJAAAAAOCGkAQAAAAAbghJAAAAAOCGkAQAAAAAbghJAACP2Ww2Pffcc2aXUSlffPGFunfvrqCgINlsNmVkZNR4DQMHDtTAgQNr/HUBABVDSAIAi1m0aJFsNpvr5ufnp5YtW2r8+PE6fvx4tb/+6tWra20QKsuZM2d0++23Kzg4WPPnz9dHH32k0NDQUo8tev+DgoJKfb8HDhyoq6++urpL9qqBAwcW61Put/3790uSNmzYIJvNpmXLlrnOu7Qv2mw2NW/eXDfccIM+//xzs34cAKh2fmYXAAAo3fPPP682bdooNzdX27Zt06JFi7R582Z9/fXXCgoKqrbXXb16tebPn19qULpw4YL8/GrfPx07duzQuXPn9MILLyghIcGjc/Ly8jR79my9/vrrXqtj7dq1XmuromJiYjRr1qwS21u0aFHuuUV90TAMpaena9GiRRoxYoRWrVqlm266qTrKBQBT1b5/6QCgnhg+fLh69eolSbrvvvvUtGlTvfTSS/rss890++23m1JTdYaz6nTy5ElJUkREhMfndO/eXe+8846mT5/uUZDwREBAgFfaqYzw8HCNHTu2Uue690VJmjhxoiIjI/V///d/hCQAdRLT7QCglujXr58k6dChQ65tZV3jMn78eF1xxRWu5z/88INsNpv++Mc/6u2331bbtm0VGBio3r17a8eOHcXOmz9/viQVm2JV5NJrkp577jnZbDZ9++23Gjt2rMLDw9WsWTM988wzMgxDR48e1ciRIxUWFqaoqCi9/PLLJWrNy8vTjBkz1K5dOwUGBio2NlaPP/648vLyPHpfli5dqp49eyo4OFhNmzbV2LFji02TGzhwoMaNGydJ6t27t2w2m8aPH19uu7/97W/lcDg0e/bsco9duHChBg0apObNmyswMFBXXXWVFixYUOI4988rPT1dfn5+mjlzZonjDhw4IJvNpjfeeMO1LSMjQ1OnTlVsbKwCAwPVrl07vfTSSyosLCy3Pm+LiIhQcHBwrRxVBABP8NsNAGqJH374QZLUqFGjSrexePFinTt3Tg8++KBsNpvmzJmjxMREff/99/L399eDDz6oEydOKDk5WR999JHH7d5xxx3q1KmTZs+erb///e968cUX1bhxY7311lsaNGiQXnrpJf35z3/WY489pt69e6t///6SpMLCQt1yyy3avHmzHnjgAXXq1El79+7V3Llz9e2332rlypWXfd1Fixbp3nvvVe/evTVr1iylp6fr1Vdf1ZYtW7Rr1y5FREToqaeeUseOHfX222+7po21bdu23J+pTZs2uueee/TOO+/oySefvOxo0oIFC9S5c2fdcsst8vPz06pVq/Twww+rsLBQkyZNKvWcyMhIDRgwQJ9++qlmzJhRbN8nn3wiX19fjRkzRpKUk5OjAQMG6Pjx43rwwQfVqlUrffnll5o+fbpSU1M1b968cn8eh8Oh06dPF9sWFBSkBg0alHtuZmamTp8+LcMwdPLkSb3++us6f/58pUemAMDyDACApSxcuNCQZPzjH/8wTp06ZRw9etRYtmyZ0axZMyMwMNA4evSo69gBAwYYAwYMKNHGuHHjjNatW7ueHz582JBkNGnSxPjxxx9d2//6178akoxVq1a5tk2aNMko658HScaMGTNcz2fMmGFIMh544AHXtoKCAiMmJsaw2WzG7NmzXdvPnj1rBAcHG+PGjXNt++ijjwwfHx9j06ZNxV7nzTffNCQZW7ZsKfN9ys/PN5o3b25cffXVxoULF1zb//a3vxmSjGeffda1reg93bFjR5ntlXbsoUOHDD8/P+PRRx917R8wYIDRuXPnYufk5OSUaGfYsGHGlVdeWWzbpZ/XW2+9ZUgy9u7dW+y4q666yhg0aJDr+QsvvGCEhoYa3377bbHjnnzyScPX19c4cuTIZX+mAQMGGJJK3Nw/i/Xr1xuSjKVLl5Z4Ly69BQYGGosWLbrsawJAbcZ0OwCwqISEBDVr1kyxsbG67bbbFBoaqs8++0wxMTGV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JlbptQAAAID6jpB0eZUKSTk5OZo4caJCQkLUuXNnHTlyRJI0efJkzZ49u0JtnT9/XnfffbfeeecdNWrUyLU9MzNT7733nl555RUNGjRIPXv21MKFC/Xll19q27ZtlSkbAAAAqPfsduk//3E+JiSVrlJLgE+fPl179uzRhg0b9POf/9y1PSEhQc8995yefPJJj9uaNGmSbrzxRiUkJOjFF190bd+5c6fsdrsSEhJc2+Li4tSqVStt3bpV1157bant5eXlKS8vz/U8KytLkmS322W32z2uqzoUvb7ZdQCloX/CyuifsCr6JqysrP65Z4+Un++v8HBDMTEFqk/d19P/VisVklauXKlPPvlE1157rWxuV3p17txZhw4d8ridJUuW6N///rd27NhRYl9aWpoCAgIUERFRbHtkZKTS0tLKbHPWrFmaOXNmie1r165VSEiIx7VVp+TkZLNLAMpE/4SV0T9hVfRNWNml/XPdulaSrlGrVqf1+edfmlOUSXJycjw6rlIh6dSpU2revHmJ7dnZ2cVC0+UcPXpUU6ZMUXJysoKCgipTRqmmT5+upKQk1/OsrCzFxsZq6NChCgsL89rrVIbdbldycrKGDBkif39/U2sBLkX/hJXRP2FV9E1YWVn9c+1a5xU3CQmNNWLECLPKM0XRLLPyVCok9erVS3//+981efJkSXIFo3fffVfx8fEetbFz506dPHlSPdwmQjocDm3cuFFvvPGG1qxZo/z8fGVkZBQbTUpPT1dUVFSZ7QYGBiowMLDEdn9/f8v88rJSLcCl6J+wMvonrIq+CSu7tH/u3u2879XLV/7+vuYUZRJP/zutVEj6/e9/r+HDh+ubb75RQUGBXn31VX3zzTf68ssvlZKS4lEbgwcP1t69e4ttu/feexUXF6cnnnhCsbGx8vf317p16zR69GhJ0oEDB3TkyBGPgxgAAACAixyOiyGJRRvKVqmQdP3112v37t2aPXu2unTporVr16pHjx7aunWrunTp4lEbDRs21NVXX11sW2hoqJo0aeLaPnHiRCUlJalx48YKCwvT5MmTFR8fX+aiDQAAAADK9u23Uk6OFBoqtW9vdjXWVamQJElt27bVO++8481aSpg7d658fHw0evRo5eXladiwYfrTn/5Ura8JAAAA1FW7djnvu3WTfOvXTLsKqXRIkqSTJ0/q5MmTKiwsLLb9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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "## Dynamic Programming FIB" ], "metadata": { "id": "ulD9kRe7jPUs" } }, { "cell_type": "code", "source": [ "def dyn_prg_fib(n):\n", " if n < 0:\n", " raise ValueError(\"n has to be a non negative integer!\")\n", " if n <= 1:\n", " return n\n", " array = [1] * n\n", " for i in range(2,n):\n", " array[i] = array[i-1] + array[i-2]\n", "\n", " return array[-1]" ], "metadata": { "id": "IPWfKKVhgXjT" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "dyn_prg_fib(17)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "vXWARplykABF", "outputId": "71e253d7-d415-4b3b-dcd4-e746d95bb6bb" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "1597" ] }, "metadata": {}, "execution_count": 90 } ] }, { "cell_type": "markdown", "source": [ "### Let's time it!" ], "metadata": { "id": "6KW7_fj9mRGc" } }, { "cell_type": "code", "source": [ "xs = list(range(70))\n", "ys= []\n", "\n", "for x in tqdm(xs):\n", " total_time = 0\n", " for n in range(10):\n", " start_time = time.time()\n", " fib_n = dyn_prg_fib(x)\n", " elapsed_time = time.time() - start_time\n", " total_time += elapsed_time\n", " elapsed_time = total_time / 10\n", " ys.append(elapsed_time)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Ouxxph9_lRd9", "outputId": "09418d95-a402-4ce8-db56-c3a0eabf739b" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "100%|██████████| 70/70 [00:00<00:00, 19023.02it/s]\n" ] } ] }, { "cell_type": "code", "source": [ "dp_times = ys" ], "metadata": { "id": "VE4BZA7XFOZw" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "n = 40\n", "start_time = time.time()\n", "fib_n = dyn_prg_fib(n)\n", "print(f\"{time.time() - start_time:.7f}s\")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "NwH8I8ELm6XM", "outputId": "f267ae83-a382-4948-e884-f60ef63066cf" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "0.0001473s\n" ] } ] }, { "cell_type": "code", "source": [ "plt.figure(figsize=(10, 5))\n", "plt.plot(xs, ys, marker='o', linestyle='-', color='b', label=\"Seconds\")\n", "plt.xlabel(\"n\")\n", "plt.ylabel(\"Runtime (s)\")\n", "plt.title(\"Runtime of Dynamic Programming FIB\")\n", "plt.grid(True)\n", "plt.legend()\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 487 }, "id": "a0Nk2NydmOlj", "outputId": "030b7c08-55b5-4032-b9f9-ecaa4985f785" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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GTx4MAYPHqxX1qNHD71U4u7u7pg/fz7mz59v8Bw1atTAtm3bjF6DiIiIiFzXjRvitmxZx7bDEg4NnNq0aZPn/jzLly83+JwTJ07YsFVERERERGQLrhw4udQaJyIiIiIicl0MnIiIiIiIiPKQnAw8eiSOGTgREREREREZII82BQQAfn6ObYslGDgZkNe6K3Ie7CciIiIi1+HK0/QABk565LTajx8/dnBLSIn09HQAgNqWed6JiIiIyCrkwCnnfqeuwqFZ9ZyNWq1GsWLFcOvWLQCAr68vVCqVTa+p1WqRnp6Op0+fws2NcaxSWq0Wt2/fhq+vL9zd+WtMRERE5OwSEsStq4448RtnDkFBQQCgC55sTZIkPHnyBD4+PjYP0goaNzc3lC9fnu8bERERkQtw9al6DJxyUKlUCA4ORunSpZGRkWHz62VkZGDv3r1o1aqVbqogKePp6clROiIiIiIXwcCpgFKr1XZZO6NWq5GZmQlvb28GTkRERERUYMlT9Vx1jRP/XE9ERERERDbn6iNODJyIiIiIiMimJImBExERERERUZ7u3gXk9AH/5WJzOQyciIiIiIjIpuT1TaVLA56ejm2LpRg4ERERERGRTbn6ND2AgRMREREREdkYAyciIiIiIiITGDgRERERERGZ4Op7OAEMnIiIiIiIyMY44kRERERERGQCAyciIiIiIiIT5MCJU/WIiIiIiIgMyMwEbt4UxxxxIiIiIiIiMuDmTUCrBdRqIDDQ0a2xHAMnIiIiIiKyGXmaXnAw4ObC0YcLN52IiIiIiJxdQUhFDjBwIiIiIiIiGyoIGfUABk5ERERERGRDDJyIiIiIiIhMYOBERERERERkAtc4ERERERERmcARJyIiIiIiIhMYOBEREREREeXh6VPg3j1xzMCJiIiIiIjIAHm0yccHKFbMoU3JNwZORERERERkE9mn6alUjm1LfjFwIiIiIiIimygo65sABk5ERERERGQjcuDk6qnIAQZORERERERkI/IeThxxIiIiIiIiMoJT9YiIiIiIiExg4ERERERERGSCPFWPa5yIiIiIiIgMkCSOOBEREREREeUpJQVITRXHwcGObYs1MHAiIiIiIiKrk0ebAgIAPz/HtsUaGDgREREREZHVFaT1TQADJyIiIiIisoGCtL4JYOBEREREREQ2wMCJiIiIiIjIBAZORERERERE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DkS5cuUwc+ZMAMCYMWPQunVrzJkzB126dMHatWtx7NgxfPPNN458GUREREREVIA5PHDq06cPbt++jcmTJyMpKQn169fHtm3bdAkgrl27Bje3rIGx5557DmvWrMGHH36I999/H8888ww2btyI2rVrO+olEBERERFRAefwwAkARo8ejdGjRxt8LC4uLldZr1690KtXL4uuJUkSAPMWgtlSRkYGHj9+jOTkZM6pdSLsF+fEfnFO7BfnxH5xTuwX58R+cU726Bc5JpBjhLw4ReBkTykpKQCA0NBQB7eEiIiIiIicQUpKCgICAvKso5KUhFcFiFarxY0bN1C0aFGoVCpHN0eXHv369etOkR6dBPaLc2K/OCf2i3Nivzgn9otzYr84J3v0iyRJSElJQdmyZfWWBxlS6Eac3NzcEBIS4uhm5OLv788PqhNivzgn9otzYr84J/aLc2K/OCf2i3Oydb+YGmmSOTQdORERERERkStg4ERERERERGQCAycH8/LyQnR0NLy8vBzdFMqG/eKc2C/Oif3inNgvzon94pzYL87J2fql0CWHICIiIiIiMhdHnIiIiIiIiExg4ERERERERGQCAyciIiIiIiITGDgRERERERGZwMDJgRYuXIiwsDB4e3ujWbNmOHLkiKObVKjs3bsXXbt2RdmyZaFSqbBx40a9xyVJwuTJkxEcHAwfHx+0b98e//zzj2MaW4jMnDkTTZo0QdGiRVG6dGn06NED58+f16vz9OlTjBo1CiVLlkSRIkXw8ssv4+bNmw5qceHw1VdfoW7durpNCJs3b46tW7fqHmefOIdZs2ZBpVJh7NixujL2jf1NmTIFKpVK76d69eq6x9knjpOQkIABAwagZMmS8PHxQZ06dXDs2DHd4/y/3zHCwsJyfWZUKhVGjRoFwHk+MwycHOSHH35AVFQUoqOj8ccff6BevXro1KkTbt265eimFRqpqamoV68eFi5caPDx2bNn47PPPsOiRYtw+PBh+Pn5oVOnTnj69KmdW1q47NmzB6NGjcLvv/+O2NhYZGRkoGPHjkhNTdXVGTduHH755ResW7cOe/bswY0bNxAZGenAVhd8ISEhmDVrFo4fP45jx46hbdu26N69O/7++28A7BNncPToUXz99deoW7euXjn7xjFq1aqFxMRE3c/+/ft1j7FPHOP+/fto0aIFPDw8sHXrVpw5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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "## Improved Dynamic Programming FIB" ], "metadata": { "id": "l-2H8C2Onhvs" } }, { "cell_type": "code", "source": [ "def improved_dyn_prg_fib(n):\n", " if n < 0:\n", " raise ValueError(\"n has to be a non negative integer!\")\n", " if n <= 1:\n", " return n\n", " a = 0\n", " b = 1\n", " for i in range(2, n+1):\n", " c = a+b\n", " a = b\n", " b = c\n", "\n", " return c" ], "metadata": { "id": "wQqFhlM8mazZ" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "improved_dyn_prg_fib(5)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "1dQE-Fk6n3AT", "outputId": "dc462000-2052-445d-993d-4b17e96d1d08" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "5" ] }, "metadata": {}, "execution_count": 200 } ] }, { "cell_type": "code", "source": [ "xs = list(range(70))\n", "ys= []\n", "\n", "for x in tqdm(xs):\n", " start_time = time.time()\n", " fib_n = improved_dyn_prg_fib(x)\n", " elapsed_time = time.time() - start_time\n", " ys.append(elapsed_time)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Gyl2ge_3n83i", "outputId": "a8b47e57-8fae-4afb-be19-a746ca1cdd7f" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "100%|██████████| 70/70 [00:00<00:00, 128659.63it/s]\n" ] } ] }, { "cell_type": "code", "source": [ "improved_dp_times = ys" ], "metadata": { "id": "p27Q5loWFYAp" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "plt.figure(figsize=(10, 5))\n", "plt.plot(xs, ys, marker='o', linestyle='-', color='b', label=\"Seconds\")\n", "plt.xlabel(\"n\")\n", "plt.ylabel(\"Runtime (s)\")\n", "plt.title(\"Runtime of Dynamic Programming FIB\")\n", "plt.grid(True)\n", "plt.legend()\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 487 }, "id": "3IxoAhpDoPHd", "outputId": "8d1cfdba-01d9-4bb3-ca9a-269fa25c874c" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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OHz4cF65mzdv4vvvv7freoDlc0pLS7P451xp0LNnTyQnJ2PNmjV5++7fv+/Sv7lr164FADRr1sxldSCi4ik1PUGFuXjxIr7++mtcvHgRVatWBQC89tpr2LhxI77++mt8+OGHdp/z3LlzWLBgASZMmIC33noL+/btw5gxY+Dr65u3ngcRFfT6669j4MCBWLJkCUaMGIFhw4Zh9uzZ6NmzJ1544QWkpqZi4cKFaNSoUd4kcnu1atUKADBmzBj07NkTer0eTz/9tJpPI8///d//4aeffsKIESOwdetWdOjQAUajEadOncJPP/2Ut7aLNT4+Ppg5cyaef/55dO7cGYMGDcpLkV2jRg2MHz++WHXbsGEDTp06hZycHFy9ehVbtmxBfHw8oqKisGbNGquLPD733HN47bXXAMDqUDil+vTpg7i4ODz++OPo3bs3EhMTsXDhQjRs2FDz/54/99xz+PbbbzFhwgT8+eefiI6ORkZGBn777TeMHDkS/fv31+za77//PuLj49GxY0eMHDkS3t7eWLRoEbKysizWv3njjTewdOlS9OjRA6+++mpeiuzq1avj5s2binoVH374Yfj6+qJv3754+eWXcffuXXz55ZcICwtDSkqKZs/R2V5++WV8/vnnGDRoEMaOHZs3d01+/2rd8/v333/nramVmZmJPXv24JtvvsEDDzyA//u//9P02kSkHY8Igo4dOwaj0Yi6deta7M/KykKFChUAiKEKDRo0KPQ8EydOxIwZMwCIeQCtW7fOC6BatGiB48ePY+HChQyCiAoRGxuL2rVr45NPPsHw4cPRoEEDfPvtt3jnnXcwYcIENGzYEN999x2WLVvm8CKIsbGxePXVV7F8+XIsXboUkiRpFgR5eXlh1apVmDNnDr799lusXLkSgYGBqFWrFsaOHVvgcye/oUOHIjAwEDNmzMDEiRMRFBSExx9/HDNnzrRYk8YR77zzDgCRcat8+fJo0qQJ5s6di+eff75AsgPZM888g4kTJ6J27dpo27atw9ceOnQorly5gkWLFmHTpk1o2LAhli5dip9//lnzxS31ej3Wr1+PDz74AMuWLcMvv/yCChUqoGPHjmjSpImm127UqBESEhIwadIkTJ8+Hbm5uWjXrh2WLl2al3UNEHPFtm7dijFjxuDDDz9EpUqVMGrUKAQFBWHMmDFWA9T86tWrhxUrVuDf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iIiIiJyBw+GcyHxeUHGHwxERERERkWMYBDmR+VpBDIKIiIiIiFyDQZATyUHQ7dtiWBxQvDlBRERERERkPwZBTiQHPJcumdbYYRBERERERORcDIKcSO4JunhR3AYEAH5+rqsPEREREZEnYhDkRPmDIPYCERERERE5H4MgJ8ofBDEpAhERERGR8zEIciK554dBEBERERGR6zAIciK5J+jKFXHL4XBERERERM7HIMiJ5CBIzgzHniAiIiIiIudjEOREchAkYxBEREREROR8DIKcKP/wNw6HIyIiIiJyPgZBTsSeICIiIiIi12MQ5EQMgoiIiIiIXI9BkBPlD4I4HI6IiIiIyPkYBDlR/qCHPUFERERERM7HIMiJgoIAnc50n0EQEREREZHzMQhyIi8voEwZ030GQUREREREzscgyMnM5wVxThARERERkfMxCHIy88CHPUFERERERM7HIMjJ5J4gb28gMNC1dSEiIiIi8kQMgpxMnhPk7w9s3w4Yja6tDxERERGRp2EQ5ERxcUBCgti+exfo0gWoUUPsJyIiIiIi52AQ5CRxccCAAcC9e5b7k5PFfgZCRERERETOwSDICYxGYOxYQJIKHpP3jRvHoXFERERERM7AIMgJEhKAS5dsH5ckICnJNFSOiIiIiIi0wyDICVJS1C1HRERERESOYxDkBOHh6pYjIiIiIiLHMQhyguhoICIC0OmsH9fpgMhIUY6IiIiIiLTFIMgJ9Hpg3jyxnT8Qku/PnSvKERERERGRthgEOUlsLLBiBVCtmuX+iAixPzbWNfUiIiIiIvI03q6ugCeJjQX69xdZ4FJSxByg6Gj2ABERERERORODICfT64GYGFfXgoiIiIjIc3E4HBEREREReRQGQURERERE5FEYBBERERERkUdhEERERERERB6FQRAREREREXkUBkFERERERORRGAQREREREZFHYRBEREREREQehUEQERERERF5FAZBRERERETkUbxdXYHikCQJAJCenu7imgAGgwGZmZlIT0+Hj4+Pq6tD/8N2cV9sG/fEdnFPbBf3xHZxT2wX9+SMdpFjAjlGKEyJDoLu3LkDAIiMjHRxTYiIiIiIyB3cuXMHoaGhhZbRSUpCJTeVm5uLy5cvo0yZMtDpdC6tS3p6OiIjI5GUlISQkBCX1oVM2C7ui23jntgu7ont4p7YLu6J7eKenNEu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evXq0pYtW6T9+/dL7du3l9q3b+/CWpd+b775prR9+3YpMTFROnr0qPTmm29KOp1O2rx5syRJbBN3Yp4dTpLYNq7wr3/9S9q2bZuUmJgo7dq1S+revbtUsWJFKTU1VZIktomr/Pnnn5K3t7f0wQcfSGfOnJG+//57KTAwUFq6dGleGf7tdx2j0ShVr15dmjhxYoFj7vI7wyBIJZ999plUvXp1ydfXV2rbtq20Z88eV1fJo2zdulUCUOBnyJAhkiSJVJmTJ0+WKleuLPn5+UndunWTTp8+7dpKewBrbQJA+vrrr/PK3Lt3Txo5cqRUrlw5KTAwUHr88cellJQU11XaAwwbNkyKioqSfH19pUqVKkndunXLC4AkiW3iTvIHQWwb53vqqaek8PBwydfXV6pWrZr01FNPSf/880/ecbaJ66xdu1Zq3Lix5OfnJ9WvX1/6z3/+Y3Gcf/tdZ9OmTRIAq6+3u/zO6CRJkpzb90REREREROQ6nBNEREREREQehUEQERERERF5FAZBRERERETkURgEERERERGRR2EQREREREREHoVBEBEREREReRQGQURERERE5FEYBBERERERkUdhEERERERERB6FQRAREREREXkUBkFERERERORRvF1dASIiIkfFxMSgadOm8Pf3x+LFi+Hr64sRI0Zg6tSprq4aERG5MfYEERFRifbNN98gKCgIe/fuxUcffYR3330X8fHxrq4WERG5MZ0kSZKrK0FEROSImJgYGI1GJCQk5O1r27YtunbtihkzZriwZkRE5M7YE0RERCVa06ZNLe6Hh4cjNTXVRbUhIqKSgEEQERGVaD4+Phb3dTodcnNzXVQbIiIqCRgEERERERGRR2EQREREREREHoVBEBEREREReRRmhyMiIiIiIo/CniAiIiIiIvIoDIKIiIiIiMijMAgiIiIiIiKPwiCIiIiIiIg8CoMgIiIiIiLyKAyCiIiIiIjIozAIIiIiIiIij8IgiIiIiIiIPAqDICIiIiIi8igMgoiIiIiIyKMwCCIiIiIiIo/y/4nYzPGJWE2PAAAAAElFTkSuQmCC\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "plt.figure(figsize=(10, 5))\n", "plt.plot(xs[:43], naive_times[:43], marker='o', linestyle='-', color='b', label=\"Naive\")\n", "plt.plot(xs[:43], dp_times[:43], marker='o', linestyle='-', color='r', label=\"DP\")\n", "# plt.plot(xs[:43], improved_dp_times[:43], marker='o', linestyle='-', color='g', label=\"Improved DP\")\n", "plt.xlabel(\"n\")\n", "plt.ylabel(\"Runtime (s)\")\n", "plt.title(\"Runtime of Different FIBs\")\n", "plt.grid(True)\n", "plt.legend()\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 487 }, "id": "0Z7Ssxe7oQf7", "outputId": "54641587-5757-40d2-ac78-b5cb83f4bffe" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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WS6V3Vjwp8jISHXu3Fkff/yxTp48qYiICLVo0UI7duzQp59+qs8//1xz587VK6+8ojFjxmjcuHFmlwwAboQkAChjgYGBmjBhgq666iq9/PLL7nvy1KhRo8jpUflnWXzhuZpdWWvSpIm+++47XX311SV+34YNG0qSduzY4Z6Wlm/Hjh3u7f6Wv6BFnz59/NZnab4HybX4Q/Xq1eVwOHw+i1OU8hwLxTlz5owk19m7/BsAR0RE6LbbbtNtt92mvLw8paSk6Nlnn9Xo0aMtsxQ6AHBNEgCUgx49eqhTp06aPHmycnJyJLn+uN6+fbsOHTrk3u+7777TV1995fP75P8heuzYsVLV641bb71V+/bt05tvvllo2+nTp3Xy5Mlij7388stVt25dvfbaawWWyV68eLG2bdum6667zu/1Llu2TE8//bQaN26sgQMH+q3f0nwPkitE9+/fX3PnztX3339faLvn+CiJiIgIZWVl+XSsP/z+++9au3at4uLi3NMbPadrSq6b1LZs2VKGYchut5tRJgAUiTNJAFBO/v73v+uWW27RjBkz9OCDD+ree+/VCy+8oD59+mjIkCE6ePCgXnvtNbVq1UrZ2dk+vUeHDh0kScOHD1efPn0UGBioP//5z/78GG533XWXPvroIz344INavny5rrjiCjkcDm3fvl0fffSRvvjiiwI3dPUUHBys5557Tvfcc4+6d++u22+/3b0EeKNGjTRq1KhS1bZ48WJt375dZ86cUWZmppYtW6a0tDQ1bNhQn3zyiV/PWJTme8g3ceJELV++XJ07d9b999+vli1b6vfff9e3336rL7/80r28dkl06NBBH374oVJTU9WxY0dFRkbqhhtu8PVjXtCcOXMUGRkpwzC0f/9+TZs2TUePHtVrr73mPqvVu3dvxcXF6YorrlBsbKy2bduml19+Wdddd52qV69eZrUBQEkRkgCgnKSkpKhJkyb6v//7P91///1q0aKF3n33XY0ZM0apqalq2bKl3nvvPc2cOVMrVqzw+T2GDRumWbNm6f3335dhGGUWkgICArRgwQJNmjRJ7777rubPn6/w8HBddNFFGjFihC6++OLzHj948GCFh4dr4sSJeuyxxxQREaGbb75Zzz33nGJiYkpV25gxYyS5zlTUrFlTbdq00eTJk3XPPff4/Y/x0n4PkhQbG6uvv/5a48eP17x58/TKK6+oVq1aatWqlZ577jmf6nrooYe0ZcsWTZ8+XZMmTVLDhg3LNCT99a9/dT+PiIhQ27Zt9eyzz+qWW25xt//lL3/RBx98oBdeeEEnTpxQQkKChg8frieeeKLM6gIAX9gMK13lCQAAAAAm45okAAAAAPBASAIAAAAAD4QkAAAAAPBASAIAAAAAD4QkAAAAAPBASAIAAAAAD5X+PklOp1P79+9X9erV3TezAwAAAFD1GIah48ePq169egoIKP58UaUPSfv371diYqLZZQAAAACwiPT0dCUkJBS7vdKHpPw7q6enpysqKsrUWux2u5YsWaLevXsrODjY1FqAczE+YWWMT1gVYxNWxvgsLDs7W4mJie6MUJxKH5Lyp9hFRUVZIiSFh4crKiqKgQrLYXzCyhifsCrGJqyM8Vm8C12Gw8INAAAAAOCBkAQAAAAAHghJAAAAAOCh0l+T5A3DMHTmzBk5HI4yfR+73a6goCDl5OSU+XtZRXBwsAIDA80uAwAAAPBalQ9JeXl5OnDggE6dOlXm72UYhuLi4pSenl5l7tlks9mUkJCgyMhIs0sBAAAAvFKlQ5LT6dSuXbsUGBioevXqKSQkpEzDi9Pp1IkTJxQZGXnem1dVFoZh6NChQ9q7d6+aNWvGGSUAAABUCFU6JOXl5cnpdCoxMVHh4eFl/n5Op1N5eXkKCwurEiFJkurUqaPdu3fLbrcTkgAAAFAhVI2/1C+gqgQWM1SVaYUAAACoPEgHAAAAAOChSk+3AwAAAFB2HA5p9WrpwAEpPl7q2lWqCFdgcCbJDxwOacUK6b//dT1WpNW9e/TooZEjR5pdBgAAACqZefOkRo2kq66S7rjD9diokavd6ghJpWTWL3/w4MGy2WyaOHFigfYFCxaU6DqgefPm6emnn/Z3eQAAAKjC5s2TBgyQ9u4t2L5vn6vd6kGJkFQKZv/yw8LC9Nxzz+no0aM+91GzZk1Vr17dj1UBAACgKnM4pBEjJMMovC2/beRIa8++IiR5MAzp5EnvfrKzpeHDz//LHzHCtZ83/RXVz4UkJycrLi5OEyZMKHL7kSNHdPvtt6t+/foKDw9XmzZt9N///rfAPp7T7f7xj3+oc+fOhfpp166dxo8f73791ltvqUWLFgoLC1Pz5s31yiuvlLx4AAAAVEqrVxc+ieDJMKT0dNd+VsXCDR5OnZIiI/3Tl2G4Bkd0tGdrgKSYIvc/cUKKiCjZewQGBupf//qX7rjjDg0fPlwJCQkFtufk5KhDhw567LHHFBUVpc8++0x33XWXmjRpok6dOhXqb+DAgZowYYJ27typJk2aSJJ++OEH/e9//9PcuXMlSR988IHGjBmjl19+WZdeeqk2b96s+++/XxERERo0aFDJPgAAAAAqnQMH/LufGTiTVMHdfPPNat++vcaOHVtoW/369fXII4+offv2uuiiizRs2DBdc801+uijj4rsq1WrVmrXrp1mzpzpbvvggw/UuXNnNW3aVJI0duxY/ec//1FKSooaN26slJQUjRo1Sq+//nrZfEAAAABUKPHx/t3PDIQkD+HhrjM63vwsWuRdn4sWnT0mO9upvXuPKTvbWai/8HDf637uuef0zjvvaNu2bQXaHQ6Hnn76abVp00Y1a9ZUZGSkvvjiC+3Zs6fYvgYOHOgOSYZh6L///a8GDhwoSTp58qR27typIUOGKDIy0v3zzDPPaOfOnb5/AAAAAFQaXbtKCQlScWuJ2WxSYqJrP6tiup0Hm837KW+9e7t++fv2FX09kc3m2t6799m14J1O1wVqERFSgB/jabdu3dSnTx+NHj1agwcPdrf/+9//1pQpUzR58mS1adNGERERGjlypPLy8ort6/bbb9djjz2mb7/9VqdPn1Z6erpuu+02SdKJEyckSW+++Waha5cCK8KC9wAAAChzgYHSlCmuhczOlR+cJk+29v2SCEk+8vzl22wFg5IZv/yJEyeqffv2uuSSS9xtX331lW666SbdeeedkiSn06mffvpJLVu2LLafhIQEde/eXR988IFOnz6tXr16qW7dupKk2NhY1atXT7/++qv77BIAAABwrpQU6f33pXP/ZExIcP2NnJJiSlleIySVQkqKNGeOaxU7zxU8zPjlt2nTRgMHDtSLL77obmvWrJnmzJmjtWvXqkaNGnrhhReUmZl53pAkuabcjR07Vnl5eZo0aVKBbePGjdPw4cMVHR2ta665Rrm5ufrmm2909OhRpaamlslnAwAAQMWT/ydn9erS66+7rkHq2tXaZ5DycU1SKaWkSLt3S8uXSzNnuh537TInHY8fP15Op9P9+oknntBll12mPn36qEePHoqLi1O/fv0u2M+AAQN05MgRnTp1qtD+9913n9566y1Nnz5dbdq0Uffu3TVjxgw1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71oAAAAAlIH8s0itWklhYebWUhH4dE3SxRdfrNGjR2vNmjVq06ZNoYUbhg8f7pfiAAAAAJTe5s2ux0svNbeOisLn1e0iIyO1cuVKrVy5ssA2m81GSAIAAAAshOuRSsankLRr1y5/1wEAAACgjBCSSsana5IAAAAAVAwHD0p790o2m9SundnVVAxen0lKTU3V008/rYiICKWmpp533xdeeKHUhQEAAAAovS1bbJKkiy+Wqlc3uZgKwuuQtHnzZtntdvdzAAAAANa3ebMrJDHVzntehyTPJb9Z/hsAAACoGAhJJefTNUn33nuvjh8/Xqj95MmTuvfee0tdFAAAAAD/yJ9uR0jynk8h6Z133tHp06cLtZ8+fVrvvvtuqYsCAAAAUHonTgTr119dIYl7JHmvREuAZ2dnyzAMGYah48ePK8zjdr0Oh0OLFi1S3bp1/V4kAAAAgJLbtStaktS4sVSjhsnFVCAlCkkxMTGy2Wyy2Wy6+OKLC2232WwaN26c34oDAAAA4LudO10hibNIJVOikLR8+XIZhqGePXtq7ty5qlmzpntbSEiIGjZsqHr16vm9SAAAAAAll38mieuRSqZEIal79+6SpF27dikxMVEBAdyLFgAAALCqnTtjJBGSSqpEISlfw4YNdezYMX399dc6ePCgnE5nge133323X4oDAAAAUHIOh/TFFzbt3RspSWrXzuSCKhifQtLChQs1cOBAnThxQlFRUbLZbO5tNpuNkAQAAACYZN48acQIae/es3/qd+4sTZkipaSYWFgF4tN8ub/97W+69957deLECR07dkxHjx51//z+++/+rhEAAACAF+bNkwYMkPbuLdi+b5+rfd48c+qqaHwKSfv27dPw4cMVHh7u73oAAAAA+MDhcJ1BMozC2/LbRo507Yfz8ykk9enTR998842/awEAAADgo9WrC59B8mQYUnq6az+cn0/XJF133XX6+9//rh9//FFt2rRRcHBwge033nijX4oDAAAA4J0DB/y7X1XmU0i6//77JUnjx48vtM1ms8nBOTwAAACgXMXH+3e/qsyn6XZOp7PYHwISAAAAUP66dpUSEiSPhacLsNmkxETXfjg/7gYLAAAAVAKBga5lvouSH5wmT3bth/PzabpdUdPsPI0ZM8anYgAAAAD4LiVFmj5dGjy4YHtCgisgcZ8k7/gUkubPn1/gtd1u165duxQUFKQmTZoQkgAAAACTREa6Hhs2NNS//yb17dteV10VxBmkEvApJG3evLlQW3Z2tgYPHqybb7651EUBAAAA8M3y5a7H6693qlu3ferevR0BqYT8dk1SVFSUxo0bpyeffNJfXQIAAAAooWXLXI/duxdxV1l4xa8LN2RlZSkrK8ufXQIAAADwUkaGtG2ba6GGbt0ISb7yabrdiy++WOC1YRg6cOCA3nvvPfXt29frfl599VW9+uqr2r17tySpVatWGjNmjLuPnJwc/e1vf9OsWbOUm5urPn366JVXXlFsbKwvZQMAAACVWv5Uu/btpZo1TS2lQvMpJE2aNKnA64CAANWpU0eDBg3S6NGjve4nISFBEydOVLNmzWQYht555x3ddNNN2rx5s1q1aqVRo0bps88+0+zZsxUdHa2HH35YKSkp+uqrr3wpGwAAAKjU8kNSz57m1lHR+RSSdu3aVey206dPe93PDTfcUOD1s88+q1dffVXr169XQkKCpk2bppkzZ6rnH7/l6dOnq0WLFlq/fr26dOniS+kAAABApZV/PdJVV5lbR0XnU0gqSm5urqZOnarnn39eGRkZJT7e4XBo9uzZOnnypJKSkrRp0ybZ7XYlJye792nevLkaNGigdevWFRuScnNzlZub636dnZ0tybVMud1uL3Fd/pT//mbXARSF8QkrY3zCqhibsJI9e6SdO4MVGGioS5czjM8iePtdlCgk5ebm6qmnnlJaWppCQkL06KOPql+/fnr77bf1xBNPKDAwUKNGjSpRoVu3blVSUpJycnIUGRmp+fPnq2XLltqyZYtCQkIUExNTYP/Y2NjzhrAJEyZo3LhxhdqXLFmi8PDwEtVWVtLS0swuASgW4xNWxviEVTE2YQXLliVKukxNmhzVmjWr3e2Mz7NOnTrl1X4lCkljxozR66+/ruTkZK1du1a33HKL7rnnHq1fv14vvPCCbrnlFgWWcBH2Sy65RFu2bFFWVpbmzJmjQYMGaeXKlSXqw9Po0aOVmprqfp2dna3ExET17t1bUVFRPvfrD3a7XWlpaerVq5eCg4NNrQU4F+MTVsb4hFUxNmElc+a4/g7v1y9a1157LeOzCPmzzC6kRCFp9uzZevfdd3XjjTfq+++/V9u2bXXmzBl99913stlsPhUaEhKipk2bSpI6dOigjRs3asqUKbrtttuUl5en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\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [], "metadata": { "id": "kPUgn8iWGvc-" }, "execution_count": null, "outputs": [] } ] }