From 32fc8cc3ec27b7db2b1b70c94fb6e7f8a718c2de Mon Sep 17 00:00:00 2001 From: Thomas Schmelzer Date: Mon, 20 Jan 2025 10:56:27 +0400 Subject: [PATCH] notebook --- notebooks/soc.ipynb | 518 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 518 insertions(+) create mode 100644 notebooks/soc.ipynb diff --git a/notebooks/soc.ipynb b/notebooks/soc.ipynb new file mode 100644 index 0000000..7396802 --- /dev/null +++ b/notebooks/soc.ipynb @@ -0,0 +1,518 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "712b600a-0b42-47ea-929e-6c85db6dbe58", + "metadata": {}, + "source": [ + "# Second order cones" + ] + }, + { + "cell_type": "markdown", + "id": "b6c615e1-0d28-4aac-8323-b2096955fdfa", + "metadata": {}, + "source": [ + "cvxpy supports second order cones, see:\n", + "https://www.cvxpy.org/examples/basic/socp.html\n" + ] + }, + { + "cell_type": "markdown", + "id": "58d4661d-a98f-429d-8b39-f6e71d16927a", + "metadata": {}, + "source": [ + "The discussion in this notebook follows https://github.com/MOSEK/Tutorials/blob/master/minimum-ellipsoid/minimum-ellipsoid.ipynb" + ] + }, + { + "cell_type": "markdown", + "id": "603f8f06-00af-430d-bc5e-dad7803469db", + "metadata": {}, + "source": [ + "We are computing the smallest sphere enclosing a set of points. We are introducing\n", + "three mildly different implementations of this problem all based on cvxpy. However,\n", + "the freedom to render problems can result in somewhat poor choices. \n", + "Here we demonstrate the incredible potential of second order cones on a classic problem." + ] + }, + { + "cell_type": "markdown", + "id": "c5158b9e-a210-4505-b353-2ba5f28a6c02", + "metadata": {}, + "source": [ + "## A random set of points" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "1c2d6c5e-4a9c-49c8-915d-5015b619a337", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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tFNOOUXr1KlTzcOOC9ayZUvtqquu0r744gttxowZWoMGDXShEFah3blzZ+3MM8/U/96yZUvNJohan8SAius0fvx4rWHDhvrf2Pbs2aN/jgHqmGOO0UpKSrTly5drb731lta8eXN9QAojOOcQZKWlpdrq1au1IUOGaMXFxQleMWEG511cAwivBx54QP8b1wn87//+r94feGmtWLFCu/DCC3XPpv3792thZOjQobpCsHDhwoRnZt++fTXfuf7667V27dpp7777rvbZZ59pvXv31reoElnBjRuqb9++WtOmTfWHqH379vrFgcAz85///Ec77bTT9O9AK8JNGWaNFA+SbItqn8DAgQOlfRIzI4DB95xzztHq16+vNWvWTBs9erRWUVGhhRUoDRAEhYWFugYORSIq4LzLrgeuk9Bgx4wZoysIuMegSKxZs0YLK2TzzOB5EmDQueGGG/TZKhSd3//+9wkKUdTgtK4MwzARI3ReJQzDMIwzLLgZhmEiBgtuhmGYiMGCm2EYJmKw4GYYhokYLLgZhmEiBgtuhmGYiMGCm2EYJmKw4GYYhokYLLgZhmEiBgtuhmGYiMGCm2EYhqLF/wOeKM9wzgxkJAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import random\n", + "\n", + "import matplotlib.patches as mpatches\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "\n", + "def plot_points(p, p0=[], r0=0.0):\n", + " k = len(p)\n", + "\n", + " plt.rc(\"savefig\", dpi=120)\n", + "\n", + " fig, ax = plt.subplots()\n", + " ax.set_aspect(\"equal\")\n", + " ax.plot([p[i][0] for i in range(k)], [p[i][1] for i in range(k)], \"b*\")\n", + "\n", + " if len(p0) > 0:\n", + " ax.plot(p0[0], p0[1], \"r.\")\n", + " ax.add_patch(mpatches.Circle(p0, r0, fc=\"w\", ec=\"r\", lw=1.5))\n", + " plt.grid()\n", + " plt.show()\n", + "\n", + "\n", + "n = 2\n", + "k = 500\n", + "\n", + "p = np.array([[random.gauss(0.0, 10.0) for nn in range(n)] for kk in range(k)])\n", + "\n", + "plot_points(p)" + ] + }, + { + "cell_type": "markdown", + "id": "7b2f72c5", + "metadata": {}, + "source": [ + "## The problem\n", + "\n", + "The problem boils down to determine the sphere center $p_0\\in \\mathbb{R}^n$ and its radius $r_0\\geq 0$, i.e.\n", + "\n", + "\n", + "\\begin{equation}\n", + " \\begin{aligned}\n", + "\\min \\max_{i=1,\\dots,k} \\| p_0 - p_i\\|_2 \\\\\n", + " \\end{aligned}\n", + "\\end{equation}\n", + "\n", + "The maximum in the objective function can be easily, i.e.\n", + "\n", + "\\begin{equation}\n", + " \\begin{aligned}\n", + "\\min r_0 & & &\\\\\n", + "s.t.& & &\\\\\n", + "& r_0 \\geq \\| p_0 - p_i\\|_2 ,& \\quad & i=1,\\ldots,k\\\\\n", + "\\end{aligned}\n", + "\\end{equation}\n", + "\n", + "The SOCP formulation reads\n", + "\n", + "\\begin{equation}\n", + " \\begin{aligned}\n", + "\\min r_0 & & &\\\\\n", + "s.t.& & &\\\\\n", + "& \\left[r_0,p_0 - p_i\\right] \\in Q^{(n+1)}, & \\quad & i=1,\\ldots,k.\n", + "\\end{aligned}\n", + "\\end{equation}\n", + "\n", + "where $Q^{(n+1)} = \\left\\{ (t,x) ∈ \\mathbb{R} \\times \\mathbb{R}^n : \\|x\\|_2 \\leq t \\right\\}$ is the $(n+1)$ dimensional second-order cone.\n" + ] + }, + { + "cell_type": "markdown", + "id": "8b9696f3-411b-4041-85e7-496d56771a7e", + "metadata": {}, + "source": [ + "### With n constraints: Distance from center for each point\n", + "\n", + "Unaware of cones we could write this problem as " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "1978a193-c3c3-4cd1-9bf2-dded61f33f22", + "metadata": {}, + "outputs": [], + "source": [ + "import cvxpy as cp\n", + "\n", + "\n", + "def min_circle_cvx_norm(points, **kwargs):\n", + " # cvxpy variable for the radius\n", + " r = cp.Variable(shape=1, name=\"Radius\")\n", + " # cvxpy variable for the midpoint\n", + " x = cp.Variable(points.shape[1], name=\"Midpoint\")\n", + " objective = cp.Minimize(r)\n", + " constraints = [cp.norm2(x - point) <= r for point in points]\n", + "\n", + " problem = cp.Problem(objective=objective, constraints=constraints)\n", + " problem.solve(**kwargs)\n", + "\n", + " return r.value[0], x.value" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "6c741b0c-1e7d-4529-bccf-ca09d23c09a8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "r0^* = 37.27250476895917\n", + "p0^* = [-2.33549367 -5.41087228]\n" + ] + } + ], + "source": [ + "r0, p0 = min_circle_cvx_norm(p, solver=\"CLARABEL\")\n", + "print(\"r0^* = \", r0)\n", + "print(\"p0^* = \", p0)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "01ce0e77-409a-42c9-a1f5-d6d22595348b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_points(p, p0, r0)" + ] + }, + { + "cell_type": "markdown", + "id": "abd3cefa-70b0-4c88-b27e-1196bc745117", + "metadata": {}, + "source": [ + "### With n constraints: One second-order cone for each point\n", + "\n", + "Using cones we can replace each individual constraint with a cone. This syntactic sugar will reduce the runtime" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a0e2fb29-9224-4ba9-ac0d-2147d7dac906", + "metadata": {}, + "outputs": [], + "source": [ + "def min_circle_cvx_socs(points, **kwargs):\n", + " # cvxpy variable for the radius\n", + " r = cp.Variable(shape=1, name=\"Radius\")\n", + " # cvxpy variable for the midpoint\n", + " x = cp.Variable(points.shape[1], name=\"Midpoint\")\n", + " objective = cp.Minimize(r)\n", + " constraints = [cp.SOC(r, point - x) for point in points]\n", + "\n", + " problem = cp.Problem(objective=objective, constraints=constraints)\n", + " problem.solve(**kwargs)\n", + "\n", + " return r.value[0], x.value" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "aa1fe81c-f1d9-4ef0-ad32-bbf1a4497e33", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "r0^* = 37.27250344539602\n", + "p0^* = [-2.33553826 -5.41091255]\n" + ] + } + ], + "source": [ + "r0, p0 = min_circle_cvx_socs(p, solver=\"CLARABEL\")\n", + "print(\"r0^* = \", r0)\n", + "print(\"p0^* = \", p0)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "30d8151a-37d2-4dd9-a45b-0f58cd5cca69", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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nTt3pl27dvndtMCyaNEiVRgtW7aM5s+frya9xbN64MCBks8MGDCAPvroI5o1a5b6eaSJu/rqq31td0qjpDFz585VmjVrpqxbtw6u/crKlStL/vfSSy8p1apVU44cOVLy3oMPPqg0bdrUp9amBqNGjVIaNmxY8pr72R3OPfdcpU+fPiWvCwsLlTp16igjR470tV2pxK5du9RxYtGiRerrvXv3KllZWcqsWbNKPrNhwwb1Mzk5OT62NHVJWw0Lavsdd9xBb775JlWsWLHU/3Nycuj888+nsmXLlryHGStMAn///XeCW5s65ObmUvXq1Utecz/HD0ys0E47dOgQkWMTr9G/jHvPLpDPL/ocWpe235s1a0b169fnfveItBRYiJW+5ZZb6O6776azzz7b8DM7duygWrVqRbwnX+N/jHM2btxIL7zwAt11110l73E/x8+ePXuosLDQsB+5D90Bpu3+/ftT27Zt6dRTT1XfQ99iolW1atWIz3K/e0dKCazBgwerzhNWG9ZVMGgilf2QIUP8bnJK97OWP/74gy6++GK67rrrVM2WYYIE1rLWrl1LM2bM8LspaU3gy4toGTRokKo5WXHiiSfSggULVJVdnwsM2laPHj1oypQpVLt27VLePvI1/pfO2O1nCRai27dvT23atCnlTMH9HD81atSgzMxMw37kPoyfvn370pw5c2jx4sURpYzQtzDH7t27N0LL4n73ECUN+e2335Q1a9aUbJ999pm6UPrOO+8ov//+e4QzQF5eXsn3hgwZws4ADtm6davSpEkTpVu3bkpBQUGp/3M/u+d00bdv3wini+OPP56dLuKgqKhIdWSB88pPP/1U6v/S6QLjhuSHH35gpwsPSUuBpWfz5s2lvATxMNaqVUu56aablLVr1yozZsxQKlasqLz66qu+tjVowqpx48bKRRddpP69ffv2kk3C/ewO6Ldy5copkydPVtavX6/ceeedStWqVZUdO3b43bTA0rt3b6VKlSrKwoULI57dgwcPlnzm7rvvVurXr68sWLBA+d///qe0bt1a3RhvYIFlIrDA999/r5x33nnqQIDZ6lNPPeVbG4PIpEmT1H412rRwP7vDCy+8oA6eZcuWVTWuZcuW+d2kQGP27OK5lhw6dEi55557VCsBJlr//ve/IyZkjLtweRGGYRgmEKSUlyDDMAyTurDAYhiGYQIBCyyGYRgmELDAYhiGYQIBCyyGYRgmELDAYhiGYQIBCyyGYRgmELDAYhiGYQIBCyyGYRgmELDAYhiGYQIBCyyGYRgmELDAYhiGYSgI/D/jty3+NaTTjwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_points(p, p0, r0)" + ] + }, + { + "cell_type": "markdown", + "id": "1d52fe29-eb12-4895-ba83-5ab877c74da6", + "metadata": {}, + "source": [ + "### With one constraint: Getting rid of loop\n", + "\n", + "We follow Mosek's excellent documentation:\n", + "\n", + "Before defining the constraints, we note that we can write\n", + "\n", + "\\begin{equation}\n", + "R_0 = \\left( \\begin{array}{c} r_0 \\\\ \\vdots \\\\ r_0 \\end{array} \\right) \\in \\mathbb{R}^k , \\quad\n", + "P_0 = \\left( \\begin{array}{c} p_0^T \\\\ \\vdots \\\\ p_0^T \\end{array} \\right) \\in \\mathbb{R}^{k\\times n}, \\quad\n", + "P = \\left( \\begin{array}{c} p_1^T \\\\ \\vdots \\\\ p_k^T \\end{array} \\right) \\in \\mathbb{R}^{k\\times n}.\n", + "\\end{equation}\n", + "\n", + "so that \n", + "\n", + "\\begin{equation}\n", + "\\left[r_0,p_i - p_0\\right] \\in Q^{(n+1)}, \\quad i=1,\\ldots,k.\n", + "\\end{equation}\n", + "\n", + "can be compactly expressed as \n", + "\n", + "\\begin{equation}\n", + "\\left[ R_0,P_0-P\\right] \\in \\Pi Q^{(n+1)},\n", + "\\end{equation}\n", + "\n", + "that means, with a little abuse of notation, that each rows belongs to a quadratic cone of dimension $n+1$." + ] + }, + { + "cell_type": "markdown", + "id": "118b0735-810f-4c81-884b-ebfc687744f4", + "metadata": {}, + "source": [ + "We can take over the idea for cvxpy and can get away with a single call of 'cp.SOC'. The loop has disappeared into matrix algebra which is in general a good idea when using Python." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "ad2936a8-46f6-4633-99f6-7e7d9301a6af", + "metadata": {}, + "outputs": [], + "source": [ + "def min_circle_cvx_soc(points, **kwargs):\n", + " # cvxpy variable for the radius\n", + " r = cp.Variable(shape=1, name=\"Radius\")\n", + " # cvxpy variable for the midpoint\n", + " x = cp.Variable(points.shape[1], name=\"Midpoint\")\n", + " objective = cp.Minimize(r)\n", + " constraints = [\n", + " cp.SOC(\n", + " r * np.ones(points.shape[0]),\n", + " points - cp.outer(np.ones(points.shape[0]), x),\n", + " axis=1,\n", + " )\n", + " ]\n", + "\n", + " problem = cp.Problem(objective=objective, constraints=constraints)\n", + " problem.solve(**kwargs)\n", + "\n", + " return r.value[0], x.value" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "59b4c0f8-8c40-4a62-bbc9-d5a46b7a16e5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "r0^* = 37.27250344539602\n", + "p0^* = [-2.33553826 -5.41091255]\n" + ] + } + ], + "source": [ + "r0, p0 = min_circle_cvx_soc(p, solver=\"CLARABEL\")\n", + "print(\"r0^* = \", r0)\n", + "print(\"p0^* = \", p0)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "bc065e03-e785-4323-91b2-1a7a6b4a1471", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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nTt3pl27dvndtMCyaNEiVRgtW7aM5s+frya9xbN64MCBks8MGDCAPvroI5o1a5b6eaSJu/rqq31td0qjpDFz585VmjVrpqxbtw6u/crKlStL/vfSSy8p1apVU44cOVLy3oMPPqg0bdrUp9amBqNGjVIaNmxY8pr72R3OPfdcpU+fPiWvCwsLlTp16igjR470tV2pxK5du9RxYtGiRerrvXv3KllZWcqsWbNKPrNhwwb1Mzk5OT62NHVJWw0Lavsdd9xBb775JlWsWLHU/3Nycuj888+nsmXLlryHGStMAn///XeCW5s65ObmUvXq1Utecz/HD0ys0E47dOgQkWMTr9G/jHvPLpDPL/ocWpe235s1a0b169fnfveItBRYiJW+5ZZb6O6776azzz7b8DM7duygWrVqRbwnX+N/jHM2btxIL7zwAt11110l73E/x8+ePXuosLDQsB+5D90Bpu3+/ftT27Zt6dRTT1XfQ99iolW1atWIz3K/e0dKCazBgwerzhNWG9ZVMGgilf2QIUP8bnJK97OWP/74gy6++GK67rrrVM2WYYIE1rLWrl1LM2bM8LspaU3gy4toGTRokKo5WXHiiSfSggULVJVdnwsM2laPHj1oypQpVLt27VLePvI1/pfO2O1nCRai27dvT23atCnlTMH9HD81atSgzMxMw37kPoyfvn370pw5c2jx4sURpYzQtzDH7t27N0LL4n73ECUN+e2335Q1a9aUbJ999pm6UPrOO+8ov//+e4QzQF5eXsn3hgwZws4ADtm6davSpEkTpVu3bkpBQUGp/3M/u+d00bdv3wini+OPP56dLuKgqKhIdWSB88pPP/1U6v/S6QLjhuSHH35gpwsPSUuBpWfz5s2lvATxMNaqVUu56aablLVr1yozZsxQKlasqLz66qu+tjVowqpx48bKRRddpP69ffv2kk3C/ewO6Ldy5copkydPVtavX6/ceeedStWqVZUdO3b43bTA0rt3b6VKlSrKwoULI57dgwcPlnzm7rvvVurXr68sWLBA+d///qe0bt1a3RhvYIFlIrDA999/r5x33nnqQIDZ6lNPPeVbG4PIpEmT1H412rRwP7vDCy+8oA6eZcuWVTWuZcuW+d2kQGP27OK5lhw6dEi55557VCsBJlr//ve/IyZkjLtweRGGYRgmEKSUlyDDMAyTurDAYhiGYQIBCyyGYRgmELDAYhiGYQIBCyyGYRgmELDAYhiGYQIBCyyGYRgmELDAYhiGYQIBCyyGYRgmELDAYhiGYQIBCyyGYRgmELDAYhiGYSgI/D/jty3+NaTTjwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_points(p, p0, r0)" + ] + }, + { + "cell_type": "markdown", + "id": "8d04e596-5540-48e8-9bf3-1f1fc2c50ba0", + "metadata": {}, + "source": [ + "## Benchmark\n", + "\n", + "We have demonstrated that all implementation above give the same results. So why bother? \n", + "\n", + "Using a more junky set of points we compare their runtime and reveal huge differences:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "8302f0a1-98ad-471f-867d-04bbb4a798d3", + "metadata": {}, + "outputs": [], + "source": [ + "p = np.random.randn(10000, 5)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "7d486502-cb04-4fbd-8798-0d81e790a291", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6.98 s ± 791 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + ] + } + ], + "source": [ + "%%timeit\n", + "min_circle_cvx_norm(p, solver=\"CLARABEL\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "f27db0b7-ca1e-482c-9d3f-a77967191783", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5.28 s ± 182 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + ] + } + ], + "source": [ + "%%timeit\n", + "min_circle_cvx_socs(p, solver=\"CLARABEL\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "a2d039e7-ebb4-4a08-80ee-d4bbcdd9950a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "252 ms ± 2.79 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + ] + } + ], + "source": [ + "%%timeit\n", + "min_circle_cvx_soc(p, solver=\"CLARABEL\")" + ] + }, + { + "cell_type": "markdown", + "id": "0d648733-bdce-4e5e-a283-74e7fb85adf0", + "metadata": {}, + "source": [ + "## Summary" + ] + }, + { + "cell_type": "markdown", + "id": "c6769cb2-b52e-4eb8-a367-09bf3ef48e17", + "metadata": {}, + "source": [ + "Avoiding the loop explicitly constructing a second-order cone for each point leads to dramatic speed-ups." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23bd9b46-f06a-43d5-9a0d-8e3a1b1cb256", + "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.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}