{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Inequality constrained problems with the nullspace optimizer\n", "\n", "In this notebook, we investigate the use of the null space algorithm for solving equality **and inequality** optimization problems of the form\n", "$$\n", "\\newcommand{\\x}{{\\bf x}}\n", "\\newcommand{\\g}{{\\bf g}}\n", "\\newcommand{\\<}{\\leqslant}\n", "\\newcommand{\\R}{\\mathbb{R}}\n", "\\newcommand{\\h}{{\\bf h}}\n", "\\begin{aligned}\n", " \\min_{\\x\\in V}& \\quad J(\\x)\\\\\n", " \\textrm{s.t.} & \\left\\{\\begin{aligned}\n", " \\g(\\x)&=0\\\\\n", " \\h(\\x)&\\<0,\n", " \\end{aligned}\\right.\n", "\\end{aligned}\n", "\\label{eqn:equation}\n", "\\tag{1}\n", "$$\n", "\n", "where $V$ is the optimization set, $J\\,:\\,V\\to \\R$ is the objective function and \n", "$\\g\\,:\\,V\\rightarrow \\R^p$ and $\\h\\,:\\,V\\rightarrow \\R^q$ are respectively the\n", "respectively the equality and inequality constraint functionals. \n", "\n", "\n", "The basis of the method is to solve an Ordinary Differential Equation (so-called ''null-space gradient flow''),\n", "\\begin{equation}\n", " \\label{eqn:ODE}\n", " \\dot{x}(t) =-\\alpha_J \\xi_J(x(t))-\\alpha_C\\xi_C(x(t)),\n", "\\end{equation}\n", "which is able to solve the optimization problem $\\eqref{eqn:equation}$.\n", "\n", "The direction\n", "$\\xi_J(x(t))$ is called the null space direction, it is the ''best'' locally feasible\n", "descent direction for minimizing $J$ and respecting the constraints. \n", "The direction\n", "$\\xi_C(x(t))$ is called the range space direction, it makes the violated constraints\n", "better satisfied and corrects unfeasible initializations.\n", "\n", "$$\n", "\\newcommand{\\>}{\\geqslant}\n", "\\newcommand{\\DD}{\\mathrm{D}}\n", "$$\n", " The null space direction \n", " $\\xi_J(x)$ can be interpreted as a generalization\n", "of the gradient in presence of equality and inequality constraints.\n", "It is defined as positively proportional to the solution of the following \n", "minimization problem:\n", "$$\\begin{aligned}\n", "\t& \\min_{\\xi\\in V} \\quad\\DD J(x)\\xi\\\\\n", "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t& \\textrm{s.t. }\n", "\t\t\\left\\{\\begin{aligned}\n", "\t\t\t\t\\DD\\g(x)\\xi &= 0\\\\\n", "\t\t\t\t\\DD\\h_{\\widetilde{I\\,}(x)}(x)\\xi& \\<0\\\\\n", " ||\\xi||_V & \\< 1.\n", "\t\t\t\\end{aligned}\\right.\n", "\t\\end{aligned}\n", "$$\n", "where\n", "$\\widetilde{I\\,}(x)$ is the set of violated or saturated constraints:\n", "$$ \\widetilde{I\\,}(x):=\\{i\\in \\{1,\\dots,q\\}\\,|\\, h_i(x)\\>0\\}.$$\n", "This minimization problem always has a solution. When the number of constraints is not too large, \n", "$\\xi_J(x)$ can be computed efficiently by mean\n", "of a dual subproblem.\n", "\n", " The range space direction $\\xi_C(x)$ is a Gauss-Newton direction for cancelling the violated constraints\n", " of $\\widetilde{I\\,}(x)$:\n", "$$\n", "\\newcommand{\\CC}{\\mathrm{C}}\n", "\\xi_C(x):=\\DD\\CC_{\\widetilde{I\\,}(x)}^T(\\DD\\CC_{\\widetilde{I\\,}(x)} \\DD\\CC_{\\widetilde{I\\,}(x)}^T)^{-1}\\CC_{\\widetilde{I\\,}(x)}(x),\n", "\\textrm{ with }\n", " \\CC_{\\widetilde{I\\,}}(x):=\\begin{bmatrix} \\g(x) & \\h_{\\widetilde{I\\,}(x)}(x)\\end{bmatrix}^T,\\, \\h_{\\widetilde{I\\,}(x)}(x):=(h_i(x))_{i\n", " \\in \\widetilde{I\\,}(x)}.\n", "$$\n", "It is orthogonal to $\\xi_J(x)$ and satisfies $\\DD\\CC_{\\widetilde{I\\,}(x)}\\xi_C(x)=\\CC_{\\widetilde{I\\,}(x)}(x)$ which \n", "entails an exponential decrease of the violation of the constraints at rate at least $e^{-\\alpha_C t}$ for the solution\n", "$x(t)$ of \\eqref{eqn:equation}:\n", "$$\\forall t\\>0,\\, \\g(x(t))= \\g(x(0)) e^{-\\alpha_C t}\\textrm{ and }\n", "\\h(x(t)) \\< \\max(0,\\h(x(0))e^{-\\alpha_C t}.$$\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# A first optimization program\n", "\n", "$$\\newcommand{\\R}{\\mathbb{R}}$$\n", "We consider the following optimization program in $\\R^2$:\n", "\n", "$$\\newcommand{\\<}{\\leq}\n", "\\begin{aligned} \\min_{(x_0,x_1)\\in\\mathbb{R}^2} & \\quad (x_0+1)^2+(x_1+1)^2 \\\\\n", "s.t. &\\quad \\left\\{ \\begin{aligned} x_0^2+x_1^2-1 & \\< 0\\\\\n", " x_0+x_1-1 & \\< 0 \\\\\n", " -x_1-0.7 & \\<0\n", " \\end{aligned}\\right.\n", "\\end{aligned}$$\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to solve the optimization problem, we use the function `nlspace_solve` whose prototype is \n", "```python\n", "from nullspace_optimizer import nlspace_solve\n", "\n", "# Define problem\n", "\n", "results = nlspace_solve(problem: Optimizable, params=None, results=None)\n", "```\n", "The input variables are \n", "- `problem` : an `Optimizable` object described below. This variable contains all the information about the optimization problem to solve (objective and constraint functions, derivatives...)\n", "- `params` : (optional) a dictionary containing algorithm parameters.\n", "\n", "- `results` : (optional) a previous output of the `nlspace_solve` function. The optimization will then keep going from the last input of the dictionary `results['x'][-1]`. This is useful when one needs to restart an optimization after an interruption.\n", "\n", "The optimization routine `nlspace_solve` returns the dictionary `opt_results` which contains various information about the optimization path, including the values of the optimization variables `results['x']`.\n", " \n", " \n", " In our particular optimization test case in $\\R^n$ with $n=2$, we use the `EuclideanOptimizable` class which inherits `Optimizable` which simplifies the definition of the optimization program (the inner product is specified by default). \n", "We allow the user to specify the initialization in the constructor `__init__`.\n", "\n", "Fill in the definition below with the right values for solving the above optimization program." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from nullspace_optimizer import *\n", "\n", "\n", "class problemeSimple(EuclideanOptimizable):\n", " def __init__(self, xinit):\n", " super().__init__(n=2)\n", " self.xinit = xinit\n", "\n", " self.nconstraints = 0\n", " self.nineqconstraints = 3\n", "\n", " def x0(self):\n", " return self.xinit\n", "\n", " def J(self, x):\n", " return (x[0]+1)**2+(x[1]+1)**2\n", "\n", " def G(self, x):\n", " return []\n", "\n", " def H(self, x):\n", " return [x[0]**2+x[1]**2-1**2,\n", " x[0]+x[1]-1,\n", " -x[1]-0.7]\n", "\n", " def dJ(self, x):\n", " return [2*(x[0]+1), 2*(x[1]+1)]\n", "\n", " def dG(self, x):\n", " return []\n", "\n", " def dH(self, x):\n", " return [[2*x[0], 2*x[1]],\n", " [1, 1],\n", " [0, -1]]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us draw the optimization domain and the objective function with the function `draw` provided by the package:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import nullspace_optimizer.examples.draw as draw\n", "\n", "draw.drawProblem(problemeSimple([0, 0]), [-1.5, 1.5], [-1.5, 1.5])\n", "# drawProblem(problem : EuclideanOptimizable, [xmin,xmax], [ymin,ymax] )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The white area is the feasible domain. \n", "\n", "\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3\\. Solve the optimization program with the initializations $[1.25,0]$, $[0,-1.2]$, $[1,-1]$, $[0.7,1.2]$, $[-1,1]$." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m70. J=0.1717 G=[] H=[-1.268e-08,-2.414,4.435e-11]\u001b[0m\n", "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m37. J=0.1717 G=[] H=[6.328e-08,-2.414,2.733e-08]\u001b[0m\n", "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m80. J=0.1717 G=[] H=[-7.087e-08,-2.414,-1.05e-08]\u001b[0m\n", "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m88. J=0.1717 G=[] H=[1.65e-08,-2.414,1.817e-08]\u001b[0m\n", "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m74. J=0.1717 G=[] H=[-7.214e-09,-2.414,-9.396e-09]\u001b[0m\n" ] } ], "source": [ "def run_problems(**other_params):\n", " xinits = ([1.25, 0], [0, -1.2], [1, -1], [0.7, 1.2], [-1, 1])\n", " problems = [problemeSimple(xinit=x0) for x0 in xinits]\n", " params = {'dt': 0.05, 'alphaC': 0.2, 'alphaJ': 1, 'maxtrials': 1, 'debug': -1}\n", " params.update(other_params)\n", " return [nlspace_solve(pb, params) for pb in problems]\n", "\n", "results = run_problems()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Utiliser le code ci-dessous pour afficher les trajectoires optimisées." ] }, { "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": [ "draw.drawProblem(problemeSimple([0, 0]), [-1.5, 1.5], [-1.5, 1.5])\n", "for i, r in enumerate(results):\n", " draw.drawData(r, f'x{i}', f'C{i}', x0=True, xfinal=True, initlabel=None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If one wishes to understand the nature of the trajectories, it is useful to look at the evolution of the Lagrange multipliers along the optimization trajectories. These are saved in `results['muls']`. \n", "\n", "Use the following code to display the multipliers and comment with respect to the trajectories.\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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oqLReldffTWDBw/mtttu67JjT5kyJW8m39KlS1m6dGn2eXl5eavZgSJJkMRU8kxCxOH67k+ISE77NKbS6TTjx49vdZ3KykqWL1/Opk2bmDBhAuPHj+euu+7qngKKCJCTrZek4JQdc8p066nllAiZa5naCk5TpkxRy0UkYtnrnBLUrZcJTofrFZwSpaysTEFHpIdIYip57p1wAfqpW09EJF6SPENEbdhyOqobW04KTiIiBUjymNNhtZxEROIpm62XpDGnVOY27d0/5tTjg5PGbOJL7430Jonu1lNwap/S0lIOHjwYdTGkBQcPHqS0tDTqYoh0iSQHpzoPLkDuzhkienRwOu6449i1axfV1dX6lR4j7k51dTW7du3iuOOOi7o4Il0iM+aUxGy9+nB2jFjNrRdnQ4YMAeCVV16htrY24tJIrtLSUt797ndn3yORni478WtJj/7abJcoW049vpaHDBmiL0ARKbokXueUCU71nsnW05iTiEisJPlmgw3ZlpOCk4hIrCRy4tdsyykITpr4VUQkZjLjLkkMTg2o5SQiEktJbjm5UslFROIpiWNOmczEBoJzV8tJRCRmkpyt59b91zklp5ZFRDohkTNEpDIzvATnroQIEZGYSfKs5K6ECBGReErynXCx4Nz7phScRERiJcnZelg9/fqUYGbddmwFJxGRAiQxISJVkqKEEsycfqXdF5hAwUlEpCCZMackTfwK0CdsPfXr09Ctx1VwEhEpQBJbTnBkjK1f3+69LVGyallEpIOyt8ywhLWcLGg59e2j4CQiEjuZhIjEtZzCYFyq4CQiEj914d1gk5RKDpAKW079ShWcRERiJ4mp5JDTckopIUJEJHayLaeEBaeSbLeegpOISOxkW04J69YrIQhOfVLq1hMRiZ2kppKXhC1FtZxERGIoibOSA+CZlpOCk4hI7CRxVnKAEoLzTSk4iYjETxJnJQ8ELScFJxGRGEpqKrl52HIqUXASEYmd5I45qVtPRCS2MmNOScvW8zA4lZTUd+txk1XLIiIdlJ34NWG3zDgSnNRyEhGJnaRe55QJTqaWk4hI/GRTyROWrecNYcvJFJxERGInqdl6DQ1BmFDLSUQkhuo8mRO/NoQtJzONOYmIxE7SW05Q163HVXASESlAUsec6sOWExpzEhGJn6Rm69XXB+frCk4iIvGT1Bki6urVrSciEltJ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "draw.figure()\n", "draw.drawMuls(results[0], 'x1')\n", "draw.legend()\n", "draw.title('Lagrange multipliers for trajectory x1')\n", "draw.show()\n", "draw.figure()\n", "draw.drawMuls(results[1], 'x2')\n", "draw.legend()\n", "draw.title('Lagrange multipliers for trajectory x2')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How do you interpret:\n", "- the fact that $\\mu_1,\\mu_2=0$ in the beginning of the optimization\n", "- the final discontinuities \n", "- are the value displayed below consistent ?" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.40028026 0. 0.03960764]\n", "[0.40027974 0. 0.03960744]\n", "[0.40028096 0. 0.03960663]\n", "[0.4002801 0. 0.03960767]\n", "[0.40028 0. 0.0396081]\n" ] } ], "source": [ "for x in results:\n", " print(x['muls'][-1])" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "More exploration:\n", "- Change the value of the parameters $\\alpha_J,\\alpha_C$ and $\\Delta t$. How the optimization trajectories are modified ?\n", "- Solve the following problem:\n", "$$\\begin{aligned} \\min_{(x_0,x_1)\\in\\mathbb{R}^2} & \\quad x_0 \\\\\n", "s.t. &\\quad \\left\\{ \\begin{aligned} 0.5^2-x_0^2-x_1^2 & \\< 0\\\\\n", " -1-x_0 & \\< 0\n", " \\end{aligned}\\right.\n", "\\end{aligned}$$\n", "Test with the initializations $[1.25,0], [0,-1.2], [1,0.3], [0.7,-0.2], [-1.3,1]$. Comment on the evolution of the Lagrange multipliers." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m76. J=0.5 G=[] H=[-7.5e-11,-1.5]\u001b[0m\n", "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m101. J=-1 G=[] H=[-2.19,-1e-10]\u001b[0m\n", "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m207. J=-1 G=[] H=[-1,3.895e-09]\u001b[0m\n", "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m182. J=-1 G=[] H=[-1,6.331e-09]\u001b[0m\n", "\n", "\n", "Optimization completed.\n", "\u001b[38;5;4m35. J=-1 G=[] H=[-1.75,1e-08]\u001b[0m\n" ] } ], "source": [ "class problemeSimple2(EuclideanOptimizable):\n", " def __init__(self, xinit):\n", " super().__init__(n=2)\n", " self.xinit = xinit\n", "\n", " self.nconstraints = 0\n", " self.nineqconstraints = 2\n", "\n", " def x0(self):\n", " return self.xinit\n", "\n", " def J(self, x):\n", " return x[0]\n", "\n", " def G(self, x):\n", " return []\n", "\n", " def H(self, x):\n", " return [0.5**2-x[0]**2-x[1]**2,\n", " -x[0]-1]\n", "\n", " def dJ(self, x):\n", " return [1, 0]\n", "\n", " def dG(self, x):\n", " return []\n", "\n", " def dH(self, x):\n", " return [[-2*x[0], -2*x[1]],\n", " [-1, 0]]\n", "\n", "def run_problems(**other_params):\n", " xinits = ([1.25, 0], [0, -1.2], [1, 0.3], [0.7, -0.2], [-1.3, 1])\n", " problems = [problemeSimple2(xinit=x0) for x0 in xinits]\n", " params = {'dt': 0.01, 'alphaC': 1, 'alphaJ': 1, 'maxtrials': 1, 'debug': -1}\n", " params.update(other_params)\n", " return [nlspace_solve(pb, params) for pb in problems]\n", "\n", "\n", "results = run_problems()\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import nullspace_optimizer.examples.draw as draw\n", "draw.ion()\n", "draw.drawProblem(problemeSimple2([0, 0]), [-1.5, 1.5], [-1.5, 1.5])\n", "for i, r in enumerate(results):\n", " draw.drawData(r, f'x{i}', f'C{i}', x0=True, xfinal=True, initlabel=None)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the Lagrange multiplier associated to the trajectory `x0`, `x2` and comment on their evolution." ] }, { "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" }, { "data": { "image/png": "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byMT8ZYyKBEfiWRT44G5wHWEL739v95GJeINZVAiPuLC3iR8FV2AEzwMR8RTGsUn4jEzOwm4F3iccF9ULnA14ctrL/UuMhFvqYkvYNauXXtuXl7eHc65QShDzgihUCi3urq6T319fZdQKJQLuLy8vPru3btXd+3atc7r+CRhITPb1dDQcOeECROe9TqYIFAFFSBr1649t0uXLveXlpYeLSwsPJyTk6MXVyRNQqGQ1dXVda2srCw4cuTIXFVSnadv2AGSl5d3R2lp6dGioqI6VU4i6ZWTk+OKiorqSktLj+bl5d3hdTxBoAoqQJxzgwoLCw97HYdINissLDwcaWKXTlIFFSw5ypxEvBX5H9RnaxLoJIqIiC+pghIREV9SBSUiIr6kCkqknX71q1/1mTZt2qgBAwac1K1bt8+MGzfu+Iceeqiv13FJ8um19pZWkhBpp/vuu2/gsGHDjvzoRz/aNmDAgIY///nPvWbPnj1iz549ebfddttHXscnyaPX2luaqBsg69atqxw/fvwer+MIup07d+Ydc8wxDbHbLrjgghFr167t/uGHH77tVVySfB19rdetW9d//PjxpSkPMODUxCe+s3PnzjwzO+Wpp57qEbv9uuuuG3bSSSeNSdVx9+zZkztw4MCTvvKVr5TGbp82bdqo0tLSEw4ePJgD0PwDC+Dkk0+uraqqyk9VbEGl11paowpKfOf1118vBDjttNP+bh268vLywrFjx6Zsbbr+/fs3Pvjgg5VPPfVUv4ULF/YGuPfee/stX7681y9/+cuKHj16hFoq+9prr3UvLS3VJOl20mstrVEFJb7zt7/9rVtxcXH94MGD/+7b6/r167udeOKJKV089eKLLz5w6aWX7rnllltKVq5cWfj9739/2KxZs3adc845NS2VWbx4cY8XXnih99y5c3enMrYg0mstrdEgiYAr/e5fTvHy+JU/OX9Ne8usW7eucMyYMX/34bRp06b86urq3JNPPrkW4I033uh61VVXjaipqcktKys7/OSTT27u06dP3G+9oVCIxsbGpt/NjLy8lt/68+fP3zZu3Lie06ZNO3748OFH7rnnnh0t7fv+++8XXHvttSM///nP7//Wt771cXufa1LN6+Xpa8286pS81pdddtnw559/vndVVVW+c67VY2TNa50llEGJ77z77rvdTjjhhNrYbW+88UY3+KQpaPbs2SV33HHHji1btrxz7LHHHp43b16La589/fTTPQoKCk6J3iZPnnxca8fv1atX6Jxzztl/9OhRu/zyy6sKCwvjjiTavXt37vTp00cPHjz46KJFiyra/0wlkdf68ssv37tmzZp3E3k8vdbBogwq4DqSwXjp8OHDtnnz5q633HLLrtjtr7zySvcBAwbUFxcXN27bti1v27ZtXWbOnFkNMGfOnKqvfvWro+699964336nTJlSs3z58veiv/fq1asx3n5Ry5cv77Zw4cLi448/vvZnP/vZ4GuuuWbv8OHD/64J6uDBgznnnXfe6Pr6envmmWc+aK3PIm06kMF4KZHXGmD69OmHEn3MrHmts4QqKPGVtWvXdm1oaLCcnE+S++rq6pxFixb1HTNmTC1AZWVlwaBBg45G/15WVnZ0165dBS09Zp8+fUJnnnlmbUt/j1VbW2vXXnvtiDPOOOPAkiVLNp9wwgljr7766tKlS5dujO5TX1/PBRdcMLKysrLLihUr1g8ZMuRTI72kbYm81u2l1zpYVEGJr6xZs6Zbbm4ud9999zG5ubmuoaHB5s+fP2DPnj35Q4cOPfrqq68WpnLu3q233jpkz549+UuXLt3Qo0eP0MMPP1wxffr0Mffdd1+/aL/DlVdeWbJ8+fJeP/zhD7d99NFHeS+++GLT/9HkyZNrW2omkr+XyGv92c9+NmUDJfRa+58qKPGVdevWFY4aNaru/PPP33frrbeWFhUVNX7729/esWrVqu4vvPBC7x07duSfeuqptbEZ06ZNmwoGDhx4tLXHTcRzzz1X9Mgjjwx84IEHKkpKSuoBvvjFL9Zcf/31u2+77bZh559//oGysrL6FStW9AT4wQ9+MKz5Y6xfv/7t4447rtOxZINEXmsgJRWUXuvMoJUkAiQIK0lMmjTp2CFDhhx98sknK1vbb8KECWO+853v7Jw5c2b17Nmzh+bn57uf//znH6YpTEmCRF/rKDM7pa1RfH6hlSSSQ6P4xFfWr1/fbfz48W32IcyfP3/LvHnzhpSUlJzw/vvvd503b96utsqIvyT6Ws+cObNk4MCBJwEMHDjwpJkzZ5akPjrxAzXxiW9E579MmDChzWad008/ve69995LaOix+E97XuvHH398SzpiEv9RBSW+UVZWVp8pTTjSOXqtJRFq4hMREV9SBSUiIr6kCkpERHxJFZSIiPiSKqhgCYVCIfM6CJFsFvkf1Hp9SaAKKkDMbFddXV1Xr+MQyWZ1dXVdzUzz8pJAFVSANDQ03FlZWVlQU1NTqExKJL1CoZDV1NQUVlZWFjQ0NNzpdTxBoKWOAmbt2rXn5uXl3eGcG4S+gIikU8jMdjU0NNw5YcKEZ70OJghUQYmIiC/pG7aIiPiSKigREfElVVAiIuJLqqBERMSXVEGJiIgv/R+ehQi4CSbEJgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "draw.drawMuls(results[0],'x0')\n", "import matplotlib.pyplot as plt\n", "plt.figure()\n", "draw.drawMuls(results[2],'x2')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What would have happened if the algorithm would have kept projected the trajectories on the constraint ? " ] } ], "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.8.10" } }, "nbformat": 4, "nbformat_minor": 2 }