{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Trisection Method\n", "\n", "This is one of the simplest algorithms which can bracket the minimum of a unimodal function $f:[a,b]\\to \\Bbb{R}$. The main lines of the algorithm are given below:\n", "\n", "
\n", "\n", "**Initialization:** Initial segment $S_0 = [a,b]$, iteration number $i=1$\n", "\t\n", "**Step** $i$: Given previous segment $S_{i-1}=[a_{i-1},b_{i-1}]$\n", " - choose points $x_i^{-},x_i^{+}$: \n", " $$ x_i^- = \\frac{2}{3}a_{i-1}+\\frac{1}{3}b_{i-1} \\quad \n", " x_i^+ = \\frac{1}{3}a_{i-1}+\\frac{2}{3}b_{i-1}$$\n", " - compute $f(x_i^-)$ and $f(x_i^+)$\n", " - define the new segment as follows \n", "\t- **if** $f(x_i^-)\\leq f(x_i^+)$ then $S_i=[a_{i-1},x_i^+]$\n", "\t- **if** $f(x_i^-)\\geq f(x_i^+)$ then $S_i=[x_i^-,b_{i-1}]$\n", " - go to step $i+1$\n", "
\n", " \n", " ### Some guiding questions:\n", " \n", " 0) If you're not already familiar, make sure you know how a Jupyter Notebook works, how you can edit text and code and how you can run the codes.\n", " \n", " 1) Make sure you understand the algorithm and why it is successful in bracketing the minimum. \n", " \n", " 2) What is the expected convergence rate? Given a starting interval $[a,b]$ and a given tolerance, which is the desired length of the final interval, how can you find the number of iterations needed?\n", " \n", " 3) How many function evaluations are needed compared to iterations?" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pylab as plt\n", "\n", "a = -2.1 # initial lower bound\n", "b = 2 # initial upper bound \n", "\n", "nfeval = 0 # counter for function evaulations\n", "variant = 1 # change the function\n", "\n", "\n", "def f(x):\n", " global nfeval\n", " global variant\n", " nfeval = nfeval+1 # each time the function is evaluated increase the counter\n", " if variant==1:\n", " return x**2\n", " if variant==2:\n", " return -np.cos(x)\n", " if variant==3:\n", " return (x+0.1)**2+1\n", "\n", "Tol = 5e-3 # desired tolerance\n", "\n", "va = f(a) # initial values for the function\n", "vb = f(b)\n", "\n", "if variant == 1:\n", " analytic = 0 # analytic solution (if it is known)\n", "if variant == 2:\n", " analytic = 0\n", "if variant == 3:\n", " analytic = -0.1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below we define a function which applies the Trisection algorithm;\n", "\n", "The inputs are: \n", "- a function\n", "- a starting interval\n", "- a requested tolerance. \n", "\n", "The outputs are:\n", "- two lists of upper and lower bounds for the intervals\n", "- two lists containing the intermediary points $x^-$ and $x^+$ defined in the algorithm\n", "\n", "These outputs allow us to find the final precision of the approximation by computing the length of the last interval. They also allow us to visualize the optimization process." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def Trisection(fun,A,B,tol=1e-6):\n", " nfeval = 0\n", " lbhist = []\n", " ubhist = []\n", " x1hist = []\n", " x2hist = []\n", " lb = A\n", " ub = B\n", " lbhist.append(lb)\n", " ubhist.append(ub)\n", " while ub-lb>tol:\n", " x1 = 2/3*lb+1/3*ub\n", " x2 = 1/3*lb+2/3*ub\n", " x1hist.append(x1)\n", " x2hist.append(x2)\n", " v1 = f(x1)\n", " v2 = f(x2)\n", " if v1<=v2:\n", " ub=x2\n", " else:\n", " lb=x1\n", " lbhist.append(lb)\n", " ubhist.append(ub)\n", " return np.array(lbhist),np.array(ubhist),np.array(x1hist),np.array(x2hist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once the function which performs the algorithm is defined we can apply it to the cases which interest us. At the end of the optimization we print the information which is of interest and we plot the optimization process." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "We minimize the function f on the interval [ -2.1 , 2 ]\n", "Number of function evaluations: 34\n", "Final precision (length of the final interval): 0.0041613328302830144\n", "Final approximation: 0.0007312132632200771\n", "Final error (compared to analytic solution): 0.0007312132632200771\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "nfeval = 0 # set the counter of function evaluations to zero\n", "lbtab,ubtab,x1s,x2s = Trisection(f,a,b,tol=Tol)\n", "\n", "xstar = 0.5*(ubtab[-1]+lbtab[-1]) # approximation of the optimum with the midpoint of the final interval\n", "print(\"We minimize the function f on the interval [\",a,\",\",b,\"]\")\n", "print(\"Number of function evaluations: \",nfeval)\n", "print(\"Final precision (length of the final interval): \",ubtab[-1]-lbtab[-1]) # length of the final interval\n", "print(\"Final approximation: \",xstar)\n", "print(\"Final error (compared to analytic solution): \",abs(xstar-analytic))\n", "\n", "# some plotting\n", "plt.figure(1,dpi=200)\n", "\n", "xs=np.linspace(a,b)\n", "plt.plot(xs,f(xs)) # plot the function\n", "plt.ylim(bottom=-0.1)\n", "plt.xlim([a,b])\n", "plt.plot(lbtab,f(np.array(lbtab)),'rx') # plot the values at the intermediary points\n", "plt.plot(ubtab,f(np.array(ubtab)),'rx')\n", "plt.plot(a,va,'bx')\n", "plt.plot(b,vb,'bx')\n", "plt.title('Optimization history')\n", "plt.axis('scaled')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# here we generate a plot of all intermediary points to see their relative position\n", "\n", "plt.figure(dpi=200)\n", "h = np.linspace(3,0,lbtab.size)\n", "\n", "plt.plot(lbtab,h,'g.')\n", "plt.plot(ubtab,h,'m.')\n", "plt.plot(x1s,h[0:-1],'bx')\n", "plt.plot(x2s,h[0:-1],'bx')\n", "plt.title('History of search intervals')\n", "plt.axis('scaled')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Error analysis\n", "Finally, we may study the convergence of the errors. For simplicity, we can choose as a measure of the error the length $|b_i-a_i|$ of the search interval at iteration $i$. In order to see the orders of convergence we usually plot the next errors in terms of the previous ones on a log-log scale. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Error analysis\n", "\n", "errors = []\n", "for i in range(0,lbtab.size):\n", " errors.append(ubtab[i]-lbtab[i]) # upper bound for the error: the length of the current interval\n", "\n", "plt.figure(2)\n", "plt.loglog(errors[:-1:],errors[1:],label='Errors') # Plot the errors in log-log plot\n", "sq = 0.1**np.linspace(1,10,10) # Construct curve of order 1\n", "plt.loglog(sq,sq,label='Order 1') # Plot order curves for comparison\n", "\n", "plt.legend(loc='best', shadow=True, fontsize='large') # Show legend\n", "plt.show()" ] }, { "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.6.7" } }, "nbformat": 4, "nbformat_minor": 2 }