{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Lecture 5: Convexity (II)\n", "\n" ] }, { "cell_type": "code", "execution_count": 140, "metadata": { "scrolled": true }, "outputs": [], "source": [ "## MP 573 Part 2, Lecture 5: Convexity (II)\n", "##\n", "%matplotlib inline\n", "import numpy as np\n", "import numpy.linalg as la\n", "import matplotlib.pyplot as plt\n", "from IPython.display import display, Image\n", "import matplotlib.image as mpimg\n", "from os.path import dirname, join as pjoin\n", "from scipy import signal\n", "import scipy.io as sio\n", "import scipy.optimize as opt\n", "import numpy.random as rnd\n", "\n", "font = {'weight' : 'normal',\n", " 'size' : 16}" ] }, { "cell_type": "code", "execution_count": 171, "metadata": {}, "outputs": [], "source": [ "# Some functions to optimize (one convex, one non-convex)\n", "def function1(x,y,chooseFunction):\n", " \n", " if chooseFunction == 0: \n", " # Calculate f = || x - a ||^2\n", " f = 8*(x-0.4)**2 + (y+2.8)**2\n", " \n", " else:\n", " # Calculate f = sin(2 pi x) + 1 + x^2\n", " f = 5 + 5*np.sin(2*np.pi*(x/2)) + 3*np.cos(2*np.pi*(y/3)) + (x-3)**2 + (y-3)**2\n", " \n", " return f\n", "\n", "# Some constraint regions\n", "def constraint1(x,y,chooseConstraint):\n", " \n", " if chooseConstraint == 0: \n", " # No constraints\n", " creg = (abs(x) + abs(y)) >=0\n", " \n", " elif chooseConstraint == 1:\n", " # ||x||_1 < 2\n", " creg = (abs(x) + abs(y))<2\n", " \n", " else:\n", " # Some non-convex region\n", " center = [0,-2]\n", " creg1 = ((x - center[0])**2 + (y - center[1])**2) < 2.5**2\n", " creg2 = ((x - center[0])**2 + (y - center[1])**2) > 1.5**2\n", " creg = creg1 & creg2\n", " \n", " return creg\n", "\n" ] }, { "cell_type": "code", "execution_count": 176, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Try optimizing a function defined above, with some initial guess\n", "x0 = 0; # Initial guess\n", "y0 = 0; # Initial guess\n", "step = 0.01; # Step size along each direction\n", "chooseFunction = 0; # Choice of cost function: 0 (convex), 1 (non-convex)\n", "chooseConstraint = 0; # Choice of constraint set: 0 (no constraint), 1 (convex), 2 (non-convex)\n", "xest = x0;\n", "yest = y0;\n", "fest = function1(xest,yest,chooseFunction)\n", "cest = constraint1(xest,yest,chooseConstraint)\n", "allx = xest\n", "ally = yest\n", "allf = fest\n", "DONE = False;\n", "\n", "if cest == False: \n", " DONE = True\n", " print(\"Initial guess is not allowed (not in our constraint set)\")\n", " \n", "while DONE == False: # Iterate until we can no longer descend\n", " xtry = np.array([xest - step, xest + step, xest, xest])\n", " ytry = np.array([yest, yest, yest - step, yest + step])\n", " ftry = function1(xtry,ytry,chooseFunction) \n", " ctry = constraint1(xtry,ytry,chooseConstraint) \n", " ftry[ctry==False] = np.inf # Infinity of not in the constraint set\n", " minindex = np.argmin(ftry)\n", " if min(ftry) < fest:\n", " xest = xtry[minindex]\n", " yest = ytry[minindex]\n", " fest = ftry[minindex]\n", " allx = np.append(allx,xest)\n", " ally = np.append(ally,yest)\n", " allf = np.append(allf,fest)\n", " else: # If none of the steps decrease our function, this algorithm is done\n", " DONE = True\n", " \n", "# Finally, plot the overall function (in grey) and our \"path\" (from green to red, path in cyan) \n", "xgrid = np.linspace(np.min(allx)-5,np.max(allx)+5,1001)\n", "ygrid = np.linspace(np.min(ally)-5,np.max(ally)+5,1001)\n", "X, Y = np.meshgrid(xgrid,ygrid)\n", "fgrid = function1(X,Y,chooseFunction)\n", "cgrid = constraint1(X,Y,chooseConstraint)\n", "\n", "plt.figure(figsize=(12,12))\n", "plt.rc('font', **font)\n", "plt.subplot(1,2,1)\n", "plt.imshow(np.log(np.flipud(fgrid) + 1), extent = [xgrid[0], xgrid[-1], ygrid[0], ygrid[-1]])\n", "#plt.imshow(np.flipud(cgrid), extent = [xgrid[0], xgrid[-1], ygrid[0], ygrid[-1]])\n", "plt.xlabel('$x_0$')\n", "plt.ylabel('$x_1$');\n", "plt.title('Cost function (log)');\n", " \n", "plt.subplot(1,2,2)\n", "plt.imshow(np.log(np.flipud(fgrid*cgrid + 1)), extent = [xgrid[0], xgrid[-1], ygrid[0], ygrid[-1]])\n", "#plt.imshow(np.flipud(cgrid), extent = [xgrid[0], xgrid[-1], ygrid[0], ygrid[-1]])\n", "plt.scatter(allx,ally,color='c')\n", "plt.scatter(allx[0],ally[0],color='g')\n", "plt.scatter(allx[-1],ally[-1],color='r')\n", "plt.xlabel('$x_0$')\n", "plt.ylabel('$x_1$');\n", "plt.title('Cost function (log), constraint, and iterations');\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Q1: Therapy planning\n", "\n", "\n", "Let us consider a constrained therapy planning problem, as follows:\n", "\\begin{equation} \n", "\\begin{array}{lll}\n", "\\mathbf{x}^* & = & \\arg \\min_{\\mathbf{x}} \\| \\mathbf{Dx} - \\mathbf{d} \\|_2^2 \\\\\n", "& \\hbox{s.t.} & \\mathbf{x} \\geq \\mathbf{0} \\\\\n", "& & \\mathbf{D_s x} \\leq d_{S,max} \n", "\\end{array}\n", "\\end{equation}\n", "where $\\mathbf{D}$ is the dose deposition matrix mapping the fluence map $\\mathbf{x}$ to the dose deposition, which tries to match a desired dose deposition $\\mathbf{d}$. The constraints include the basic physical constraint ($\\mathbf{x} \\geq 0$) that the fluence needs to be non-negative, as well as the hard constraint ($\\mathbf{D_s x} \\leq d_{S,max}$) that the dose deposited in the spine needs to be uniformly less than $d_{S,max}$.\n", "\n", "*Question:* Is this constrained formulation convex? \n", "\n", "A: Yes, because the cost function is convex, and the constraints define a convex set\n", "\n", "B: No, because the cost function is not convex, even though the constraints are convex\n", "\n", "C: No, because the constraints are not convex, even though the cost function is convex\n", "\n", "D: Depends on the choice of matrix $\\mathbf{D}$ and desired dose deposition $\\mathbf{d}$\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.15" } }, "nbformat": 4, "nbformat_minor": 4 }