{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from __future__ import division, print_function\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def onemax(x):\n", " return sum(x)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def pureRS(n):\n", " '''\n", " Returns the number of function evaluations\n", " until the optimal function value of the ONEMAX\n", " function with n bits is reached by a pure \n", " random search (PRS). In addition, it returns\n", " a vector `fitness` of all bestsofar function values.\n", " '''\n", " x = np.random.randint(0,2,n) # n random values in {0,1}\n", " fx = onemax(x)\n", " fevals = 1 # counter of function evaluations\n", " fitness = [fx] # store all best-so-far function values\n", " \n", " while fx < n:\n", " y = np.random.randint(0,2,n) # n random values in {0,1}\n", " fy = onemax(y)\n", " fevals = fevals + 1\n", " if fy >= fx:\n", " x = y\n", " fx = fy\n", "\n", " fitness.append(fx)\n", " \n", " return (fevals, fitness)\n", " " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "n = 16\n", "(firstRuntimePRS, firstFitnessPRS) = pureRS(n)\n", "(secondRuntimePRS, secondFitnessPRS) = pureRS(n)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib import pyplot as plt\n", "\n", "plt.semilogx(range(1,firstRuntimePRS+1), firstFitnessPRS, 'r-', label='first run')\n", "plt.semilogx(range(1,secondRuntimePRS+1), secondFitnessPRS, 'b-', label='second run')\n", "plt.xlabel('#funevals')\n", "plt.ylabel('f-value')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "n = range(2, 17)\n", "numOfRuns = 11\n", "\n", "runtimesPerDimensionPRS = []\n", "for i in n:\n", " runtimesPRS = []\n", " for r in range(numOfRuns):\n", " runtimesPRS.append(pureRS(i)[0])\n", " runtimesPerDimensionPRS.append(runtimesPRS)\n", "\n", "# make numpy array to better handle the data\n", "runtimesPerDimensionPRS = np.array(runtimesPerDimensionPRS)\n", " " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#plt.plot(n, np.median(runtimesPerDimensionPRS, axis=1))\n", "plt.semilogy(n, np.median(runtimesPerDimensionPRS, axis=1))\n", "plt.xlabel('dimension')\n", "plt.ylabel('#funevals')\n", "plt.semilogy(n, [2**i for i in n], 'rx-')\n", "plt.title('median runtime of PRS to reach optimum of ONEMAX')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.boxplot(runtimesPerDimensionPRS.transpose(), labels=n)\n", "plt.xlabel('dimension')\n", "plt.ylabel('#funevals')\n", "plt.title('runtime of PRS to reach optimum of ONEMAX (%d runs)' % numOfRuns)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def oneplusoneEA(n):\n", " '''\n", " Returns the number of function evaluations\n", " until the optimal function value of the ONEMAX\n", " function with n bits is reached by the (1+1)EA.\n", " In addition, it returns a vector `fitness` of\n", " all bestsofar function values.\n", " '''\n", " x = np.random.randint(0,2,n) # n random values in {0,1}\n", " fx = onemax(x) \n", " fevals = 1 # counter of function evaluations\n", " fitness = [fx] # store all best-so-far function values\n", " \n", " while fx < n:\n", " b = np.random.binomial(1, 1/n, size=n)\n", " y = abs(x - b)\n", " fy = onemax(y)\n", " fevals = fevals + 1\n", " if fy >= fx:\n", " x = y\n", " fx = fy\n", "\n", " fitness.append(fx)\n", " \n", " return (fevals, fitness)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "n = range(2, 15)\n", "numOfRuns = 21\n", "\n", "runtimesPerDimensionOnePlusOne = []\n", "for i in n:\n", " runtimesOnePlusOne = []\n", " for r in range(numOfRuns):\n", " runtimesOnePlusOne.append(oneplusoneEA(i)[0])\n", " runtimesPerDimensionOnePlusOne.append(runtimesOnePlusOne)\n", "\n", "# make numpy array to better handle the data\n", "runtimesPerDimensionOnePlusOne = np.array(runtimesPerDimensionOnePlusOne)\n", " \n", "plt.plot(n, np.median(runtimesPerDimensionOnePlusOne, axis=1))\n", "plt.xlabel('dimension')\n", "plt.ylabel('#funevals')\n", "plt.title('median runtime of (1+1)EA to reach optimum of ONEMAX (%d runs)' % numOfRuns)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.boxplot(runtimesPerDimensionOnePlusOne.transpose(), labels=n)\n", "plt.xlabel('dimension')\n", "plt.ylabel('#funevals')\n", "plt.title('runtime of (1+1)EA to reach optimum of ONEMAX (%d runs)' % numOfRuns)\n", "plt.show()" ] }, { "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.7.3" } }, "nbformat": 4, "nbformat_minor": 1 }