From 886a0623a321c4179af253027f83a9365df4d1f4 Mon Sep 17 00:00:00 2001 From: Orestis Malaspinas <orestis.malaspinas@hesge.ch> Date: Sun, 25 Nov 2018 23:00:27 +0100 Subject: [PATCH] adde local minimum and ackley function --- cours.md | 23 +- figs/ackley.svg | 757 +++++++++++++++++++++++++++++++++++++++++++++++ python/ackley.py | 10 + 3 files changed, 781 insertions(+), 9 deletions(-) create mode 100644 figs/ackley.svg create mode 100644 python/ackley.py diff --git a/cours.md b/cours.md index b57d88e..65a5280 100644 --- a/cours.md +++ b/cours.md @@ -1578,22 +1578,27 @@ Il existe comme on vient de le voir deux types disctincts de problèmes d'optimi ### L'optimisation continue -Soit $f:\real^n\rightarrow\real$ une fonction objectif, on cherche $\vec x_0\in\real^n$, tel que $f(\vec x_0)\leq f(\vec x)$ pour $\vec x$ certaines conditions. -Les conditions peuvent se séparer en deux parties différentes, les contraintes d'égalités et d'inégalités. -Soient $m$ fonctions $g_i:\real^n\rightarrow\real$ et $n$ fonctions $h_j:\real^n\rightarrow$ +Soit $f:\real^n\rightarrow\real$ une fonction objectif (ou fontion de coût), on cherche $\vec x_0\in\real^n$, tel que $f(\vec x_0)\leq f(\vec x)$ pour $\vec x$ certaines conditions: les contraintes qui sont en général des égalités strictes ou des inégalités qui peuvent s'exprimer de la façon suivante. +Soient $m$ fonctions $g_i:\real^n\rightarrow\real$ \begin{align} -&g_i(\vec x)\leq 0,\quad i=1,...,m,\mbox{ et}\\ -&h_j(\vec x)= 0,\quad j=1,...,n. +&g_i(\vec x)\leq 0,\quad i=1,...,m. \end{align} -Si $m=0$ et $n=0$ on a à faire à un problème d'optimisation sans contraintes. On peut résumer tout cela comme +Si $m=0$ on a à faire à un problème d'optimisation sans contraintes. On peut résumer tout cela comme \begin{align*} &\min_{\vec x\in\real^n}f(\vec x),\\ -&g_i(\vec x)\leq 0,\quad i=1,...,m,\mbox{ et}\\ -&h_j(\vec x)= 0,\quad j=1,...,n,\\ -&m\geq 0,\quad n\geq 0. +&g_i(\vec x)\leq 0,\quad i=1,...,m,\\ +&\mbox{pour }m\geq 0. \end{align*} +Les contraintes limites l'espace des solutions et forment un sous-ensemble, noté $A$, de $\real^n$ ($A\subseteq\real^n$). +Une des difficultés pour déterminer le minimum d'une fonction coût est l'existence de plusieurs minima locaux. +Un **minimum local**, $\vec x^\ast\in A$, est tel que pour une région proche de $\vec x^\ast$, on a que $f(\vec x)\geq f(\vec x^\ast)$. Une fonction particulièrement problématique où il est +très difficile de trouver le minimum global est une fonction de Ackley. En une dimension, elle est de la forme (voir la @fig:ackley) +$$ +f(x)=-20e^{-0.2*\sqrt{0.5x^2}}-e^{0.5(\cos(2\pi x))}+e+20. +$$ +{#fig:ackley width=70%} [^1]: On pourrait, de façon similaire, utiliser la formule de différences finies en avant ou en arrière (ou un mélange des deux). [^2]: Comme ce polynôme passe par les points $(x_0,y_0)$, $(x_1,y_1)$, ..., $(x_m,y_m)$, il est unique, c'est donc exactement le même que celui exprimé avec les $\{a_i\}_{i=0}^m$. diff --git a/figs/ackley.svg b/figs/ackley.svg new file mode 100644 index 0000000..5f1a9a9 --- /dev/null +++ b/figs/ackley.svg @@ -0,0 +1,757 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with matplotlib (https://matplotlib.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + height="281.25262pt" + version="1.1" + viewBox="0 0 376.51219 281.25262" + width="376.51218pt" + id="svg212" + sodipodi:docname="ackley.svg" + inkscape:version="0.92.2 2405546, 2018-03-11"> + <metadata + id="metadata216"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1030" + id="namedview214" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="1.2797896" + inkscape:cx="235.79347" + inkscape:cy="274.71953" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="svg212" /> + <defs + id="defs4" + style="stroke-linecap:butt;stroke-linejoin:round"> + <style + type="text/css" + id="style2"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="axes_1" + transform="translate(-38.607813,-41.072)"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="patch_2"> + <path + inkscape:connector-curvature="0" + id="path9" + style="fill:#ffffff;stroke-linecap:butt;stroke-linejoin:round" + d="M 57.6,307.584 H 414.72 V 41.472 H 57.6 Z" /> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="matplotlib.axis_1"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="xtick_1"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_1"> + <defs + id="defs13"> + <path + inkscape:connector-curvature="0" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" + id="m403b46365c" + d="M 0,0 V 3.5" /> + </defs> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g17"> + <use + height="100%" + width="100%" + id="use15" + y="307.58401" + xlink:href="#m403b46365c" + x="73.832726" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_1"> + <!-- −30 --> + <defs + id="defs23"> + <path + style="stroke-linecap:butt;stroke-linejoin:round" + inkscape:connector-curvature="0" + id="DejaVuSans-8722" + d="M 10.59375,35.5 H 73.1875 V 27.203125 H 10.59375 Z" /> + <path + style="stroke-linecap:butt;stroke-linejoin:round" + inkscape:connector-curvature="0" + id="DejaVuSans-51" + d="M 40.578125,39.3125 Q 47.65625,37.796875 51.625,33 q 3.984375,-4.78125 3.984375,-11.8125 0,-10.78125 -7.421875,-16.703125 -7.421875,-5.90625 -21.09375,-5.90625 -4.578125,0 -9.4375,0.90625 -4.859375,0.90625 -10.03125,2.71875 v 9.515625 q 4.09375,-2.390625 8.96875,-3.609375 4.890625,-1.21875 10.21875,-1.21875 9.265625,0 14.125,3.65625 4.859375,3.65625 4.859375,10.640625 0,6.453125 -4.515625,10.078125 -4.515625,3.640625 -12.5625,3.640625 h -8.5 v 8.109375 h 8.890625 q 7.265625,0 11.125,2.90625 3.859375,2.90625 3.859375,8.375 0,5.609375 -3.984375,8.609375 -3.96875,3.015625 -11.390625,3.015625 -4.0625,0 -8.703125,-0.890625 Q 15.375,64.15625 9.8125,62.3125 v 8.78125 q 5.625,1.5625 10.53125,2.34375 4.90625,0.78125 9.25,0.78125 11.234375,0 17.765625,-5.109375 6.546875,-5.09375 6.546875,-13.78125 0,-6.0625 -3.46875,-10.234375 -3.46875,-4.171875 -9.859375,-5.78125 z" /> + <path + style="stroke-linecap:butt;stroke-linejoin:round" + inkscape:connector-curvature="0" + id="DejaVuSans-48" + d="m 31.78125,66.40625 q -7.609375,0 -11.453125,-7.5 Q 16.5,51.421875 16.5,36.375 q 0,-14.984375 3.828125,-22.484375 3.84375,-7.5 11.453125,-7.5 7.671875,0 11.5,7.5 3.84375,7.5 3.84375,22.484375 0,15.046875 -3.84375,22.53125 -3.828125,7.5 -11.5,7.5 z m 0,7.8125 q 12.265625,0 18.734375,-9.703125 6.46875,-9.6875 6.46875,-28.140625 0,-18.40625 -6.46875,-28.109375 -6.46875,-9.6875 -18.734375,-9.6875 -12.25,0 -18.71875,9.6875 Q 6.59375,17.96875 6.59375,36.375 q 0,18.453125 6.46875,28.140625 6.46875,9.703125 18.71875,9.703125 z" /> + </defs> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g31" + transform="matrix(0.1,0,0,-0.1,63.280384,322.18244)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use25" + xlink:href="#DejaVuSans-8722" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use27" + xlink:href="#DejaVuSans-51" + x="83.789062" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use29" + xlink:href="#DejaVuSans-48" + x="147.41211" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="xtick_2"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_2"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g37"> + <use + height="100%" + width="100%" + id="use35" + y="307.58401" + xlink:href="#m403b46365c" + x="127.94182" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_2"> + <!-- −20 --> + <defs + id="defs41"> + <path + style="stroke-linecap:butt;stroke-linejoin:round" + inkscape:connector-curvature="0" + id="DejaVuSans-50" + d="M 19.1875,8.296875 H 53.609375 V 0 H 7.328125 v 8.296875 q 5.609375,5.8125 15.296875,15.59375 9.703125,9.796875 12.1875,12.640625 4.734375,5.3125 6.609375,9 1.890625,3.6875 1.890625,7.25 0,5.8125 -4.078125,9.46875 -4.078125,3.671875 -10.625,3.671875 -4.640625,0 -9.796875,-1.609375 -5.140625,-1.609375 -11,-4.890625 v 9.96875 Q 13.765625,71.78125 18.9375,73 q 5.1875,1.21875 9.484375,1.21875 11.328125,0 18.0625,-5.671875 6.734375,-5.65625 6.734375,-15.125 0,-4.5 -1.6875,-8.53125 Q 49.859375,40.875 45.40625,35.40625 44.1875,33.984375 37.640625,27.21875 31.109375,20.453125 19.1875,8.296875 Z" /> + </defs> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g49" + transform="matrix(0.1,0,0,-0.1,117.38947,322.18244)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use43" + xlink:href="#DejaVuSans-8722" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use45" + xlink:href="#DejaVuSans-50" + x="83.789062" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use47" + xlink:href="#DejaVuSans-48" + x="147.41211" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="xtick_3"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_3"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g55"> + <use + height="100%" + width="100%" + id="use53" + y="307.58401" + xlink:href="#m403b46365c" + x="182.0509" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_3"> + <!-- −10 --> + <defs + id="defs59"> + <path + style="stroke-linecap:butt;stroke-linejoin:round" + inkscape:connector-curvature="0" + id="DejaVuSans-49" + d="m 12.40625,8.296875 h 16.109375 v 55.625 L 10.984375,60.40625 v 8.984375 l 17.4375,3.515625 H 38.28125 V 8.296875 H 54.390625 V 0 H 12.40625 Z" /> + </defs> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g67" + transform="matrix(0.1,0,0,-0.1,171.49857,322.18244)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use61" + xlink:href="#DejaVuSans-8722" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use63" + xlink:href="#DejaVuSans-49" + x="83.789062" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use65" + xlink:href="#DejaVuSans-48" + x="147.41211" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="xtick_4"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_4"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g73"> + <use + height="100%" + width="100%" + id="use71" + y="307.58401" + xlink:href="#m403b46365c" + x="236.16" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_4"> + <!-- 0 --> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g78" + transform="matrix(0.1,0,0,-0.1,232.97875,322.18244)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use76" + xlink:href="#DejaVuSans-48" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="xtick_5"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_5"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g84"> + <use + height="100%" + width="100%" + id="use82" + y="307.58401" + xlink:href="#m403b46365c" + x="290.2691" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_5"> + <!-- 10 --> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g91" + transform="matrix(0.1,0,0,-0.1,283.90659,322.18244)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use87" + xlink:href="#DejaVuSans-49" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use89" + xlink:href="#DejaVuSans-48" + x="63.623047" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="xtick_6"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_6"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g97"> + <use + height="100%" + width="100%" + id="use95" + y="307.58401" + xlink:href="#m403b46365c" + x="344.37817" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_6"> + <!-- 20 --> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g104" + transform="matrix(0.1,0,0,-0.1,338.01568,322.18244)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use100" + xlink:href="#DejaVuSans-50" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use102" + xlink:href="#DejaVuSans-48" + x="63.623047" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="xtick_7"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_7"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g110"> + <use + height="100%" + width="100%" + id="use108" + y="307.58401" + xlink:href="#m403b46365c" + x="398.48727" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_7"> + <!-- 30 --> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g117" + transform="matrix(0.1,0,0,-0.1,392.12477,322.18244)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use113" + xlink:href="#DejaVuSans-51" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use115" + xlink:href="#DejaVuSans-48" + x="63.623047" /> + </g> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="matplotlib.axis_2"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="ytick_1"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_8"> + <defs + id="defs123"> + <path + inkscape:connector-curvature="0" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" + id="m1532b5efc7" + d="M 0,0 H -3.5" /> + </defs> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g127"> + <use + height="100%" + width="100%" + id="use125" + y="307.96756" + xlink:href="#m1532b5efc7" + x="57.599998" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_8"> + <!-- 0 --> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g132" + transform="matrix(0.1,0,0,-0.1,44.2375,311.76679)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use130" + xlink:href="#DejaVuSans-48" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="ytick_2"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_9"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g138"> + <use + height="100%" + width="100%" + id="use136" + y="249.62788" + xlink:href="#m1532b5efc7" + x="57.599998" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_9"> + <!-- 5 --> + <defs + id="defs142"> + <path + style="stroke-linecap:butt;stroke-linejoin:round" + inkscape:connector-curvature="0" + id="DejaVuSans-53" + d="m 10.796875,72.90625 h 38.71875 v -8.3125 h -29.6875 V 46.734375 q 2.140625,0.734375 4.28125,1.09375 2.15625,0.359375 4.3125,0.359375 Q 40.625,48.1875 47.75,41.5 54.890625,34.8125 54.890625,23.390625 54.890625,11.625 47.5625,5.09375 40.234375,-1.421875 26.90625,-1.421875 q -4.59375,0 -9.359375,0.78125 -4.75,0.78125 -9.828125,2.34375 V 11.625 q 4.390625,-2.390625 9.078125,-3.5625 4.6875,-1.171875 9.90625,-1.171875 8.453125,0 13.375,4.4375 4.9375,4.4375 4.9375,12.0625 0,7.609375 -4.9375,12.046875 -4.921875,4.453125 -13.375,4.453125 -3.953125,0 -7.890625,-0.875 -3.921875,-0.875 -8.015625,-2.734375 z" /> + </defs> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g146" + transform="matrix(0.1,0,0,-0.1,44.2375,253.4271)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use144" + xlink:href="#DejaVuSans-53" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="ytick_3"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_10"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g152"> + <use + height="100%" + width="100%" + id="use150" + y="191.28819" + xlink:href="#m1532b5efc7" + x="57.599998" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_10"> + <!-- 10 --> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g159" + transform="matrix(0.1,0,0,-0.1,37.875,195.08741)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use155" + xlink:href="#DejaVuSans-49" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use157" + xlink:href="#DejaVuSans-48" + x="63.623047" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="ytick_4"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_11"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g165"> + <use + height="100%" + width="100%" + id="use163" + y="132.9485" + xlink:href="#m1532b5efc7" + x="57.599998" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_11"> + <!-- 15 --> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g172" + transform="matrix(0.1,0,0,-0.1,37.875,136.74772)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use168" + xlink:href="#DejaVuSans-49" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use170" + xlink:href="#DejaVuSans-53" + x="63.623047" /> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="ytick_5"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_12"> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g178"> + <use + height="100%" + width="100%" + id="use176" + y="74.60881" + xlink:href="#m1532b5efc7" + x="57.599998" + style="stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round" /> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="text_12"> + <!-- 20 --> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="g185" + transform="matrix(0.1,0,0,-0.1,37.875,78.408032)"> + <use + height="100%" + width="100%" + y="0" + x="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use181" + xlink:href="#DejaVuSans-50" /> + <use + height="100%" + width="100%" + y="0" + style="stroke-linecap:butt;stroke-linejoin:round" + id="use183" + xlink:href="#DejaVuSans-48" + x="63.623047" /> + </g> + </g> + </g> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="line2d_13"> + <path + inkscape:connector-curvature="0" + id="path190" + style="fill:none;stroke:#1f77b4;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round" + d="m 73.832727,65.482519 0.180364,-0.193201 0.360727,-1.511045 1.442909,-9.004313 0.360728,-0.927106 0.360727,-0.278854 0.180363,0.09475 0.360728,0.665613 0.360727,1.335506 0.541091,3.259453 0.901818,6.218488 0.360727,0.8501 0.180364,-0.190794 0.360727,-1.506197 1.442909,-8.984456 0.360728,-0.922024 0.360727,-0.273724 0.180364,0.09734 0.360727,0.670816 0.360727,1.340759 0.541091,3.267425 0.901818,6.232029 0.360727,0.855606 0.180364,-0.188021 0.360727,-1.500612 1.442909,-8.961584 0.360728,-0.91617 0.360727,-0.267814 0.180364,0.100313 0.360727,0.676809 0.360727,1.34681 0.541091,3.276609 0.901818,6.247626 0.360728,0.861949 0.180363,-0.184827 0.360727,-1.49418 1.44291,-8.935237 0.360727,-0.909426 0.360727,-0.261007 0.180364,0.103741 0.360727,0.683714 0.360727,1.353779 0.541091,3.287188 0.901818,6.265592 0.360728,0.869255 0.180363,-0.181148 0.360728,-1.486769 1.442909,-8.904888 0.360727,-0.901658 0.360727,-0.253165 0.180364,0.107689 0.360727,0.691667 0.360727,1.361808 0.541091,3.299373 0.901823,6.286289 0.36072,0.877671 0.18037,-0.17691 0.36072,-1.478234 1.44291,-8.869927 0.36073,-0.892711 0.36073,-0.244133 0.18036,0.112238 0.36073,0.700829 0.36073,1.371056 0.54109,3.313409 0.90182,6.310129 0.36072,0.887366 0.18036,-0.172029 0.36073,-1.468401 1.44291,-8.829657 0.36073,-0.882403 0.36073,-0.233728 0.18036,0.117477 0.36073,0.711382 0.36073,1.381709 0.54109,3.329578 0.90181,6.337591 0.36073,0.898532 0.18036,-0.166405 0.36073,-1.457075 1.44291,-8.783269 0.36073,-0.87053 0.36073,-0.221742 0.18036,0.123512 0.36073,0.723538 0.36072,1.39398 0.5411,3.348204 0.90181,6.369224 0.36073,0.911396 0.18036,-0.159928 0.36073,-1.444028 1.44291,-8.729834 0.36073,-0.856854 0.36073,-0.207936 0.18036,0.130464 0.36073,0.737541 0.36072,1.408115 0.54109,3.369659 0.90182,6.405662 0.36073,0.926214 0.18036,-0.152466 0.36073,-1.428999 1.44291,-8.668282 0.36073,-0.8411 0.18036,-0.174723 0.18036,-0.01731 0.18037,0.138473 0.36073,0.75367 0.36072,1.424398 0.54109,3.394372 0.90182,6.447637 0.36073,0.943283 0.18036,-0.143872 0.36073,-1.411687 1.44291,-8.597379 0.36072,-0.822953 0.18037,-0.165585 0.18036,-0.0081 0.18037,0.147697 0.36072,0.77225 0.36073,1.443155 0.54109,3.42284 0.90182,6.495987 0.36073,0.962944 0.18036,-0.133971 0.36073,-1.391745 1.44291,-8.515706 0.36072,-0.802049 0.18037,-0.155059 0.18036,0.0024 0.18036,0.158323 0.36073,0.793653 0.36073,1.46476 0.54109,3.455633 0.90182,6.551683 0.36073,0.985592 0.18036,-0.122566 0.36073,-1.368775 1.44291,-8.421626 0.36072,-0.777968 0.18037,-0.142934 0.18036,0.01463 0.18036,0.170563 0.36073,0.818307 0.36073,1.489648 0.54109,3.493407 0.90182,6.615839 0.36072,1.011681 0.18037,-0.10943 0.18036,-0.504722 0.36073,-1.917737 1.08218,-6.600683 0.36073,-1.091588 0.36073,-0.420035 0.18036,0.02866 0.36073,0.52696 0.36072,1.176926 0.54109,3.05203 1.26255,8.738909 0.18036,0.323254 0.18037,-0.0943 0.18036,-0.489519 0.36073,-1.887113 1.08218,-6.507059 0.36073,-1.059787 0.36072,-0.387933 0.18037,0.04483 0.36073,0.559519 0.36072,1.209794 0.5411,3.101916 1.26254,8.858092 0.18036,0.340603 0.18037,-0.07687 0.18036,-0.472004 0.36073,-1.851838 1.08218,-6.399212 0.36073,-1.023155 0.36072,-0.350954 0.18037,0.06345 0.36072,0.597026 0.36073,1.247654 0.54109,3.159381 1.26255,8.995379 0.18036,0.360588 0.18037,-0.05679 0.18036,-0.45183 0.36073,-1.811202 1.08218,-6.274984 0.36073,-0.980958 0.36072,-0.308358 0.18037,0.0849 0.36072,0.640228 0.36073,1.291267 0.54109,3.225575 1.26255,9.153522 0.18036,0.383609 0.18036,-0.03366 0.18037,-0.428592 0.36073,-1.764394 0.90181,-5.404361 0.36073,-1.280518 0.36073,-0.590242 0.18036,-0.04841 0.18037,0.109606 0.36072,0.689994 0.36073,1.341505 0.54109,3.301825 1.26255,9.335689 0.18036,0.41012 0.18036,-0.007 0.18037,-0.40182 0.36072,-1.71048 0.90182,-5.267315 0.36073,-1.224791 0.36073,-0.533987 0.18036,-0.02008 0.18037,0.138066 0.36072,0.747321 0.36073,1.399373 0.54109,3.389663 1.26255,9.54553 0.18036,0.44067 0.18036,0.0237 0.18037,-0.37098 0.36072,-1.64837 0.90182,-5.10946 0.36073,-1.1606 0.36073,-0.46918 0.18036,0.0126 0.18036,0.17085 0.36073,0.81336 0.36073,1.46603 0.54109,3.49083 1.26254,9.78725 0.18037,0.47586 0.18036,0.059 0.18037,-0.33547 0.36072,-1.57682 0.90182,-4.92763 0.36073,-1.08665 0.36073,-0.39454 0.18036,0.0501 0.36073,0.57408 0.36073,1.21088 0.54108,3.09103 0.72146,6.17672 0.54109,4.35049 0.36073,1.4271 0.18036,0.0998 0.18036,-0.29455 0.36073,-1.49441 0.90182,-4.71816 0.36073,-1.00148 0.36072,-0.30856 0.18037,0.0934 0.36073,0.66129 0.36072,1.29891 0.54109,3.22465 0.72146,6.35784 0.54109,4.4886 0.36073,1.52026 0.18036,0.14666 0.18036,-0.24742 0.36073,-1.39948 0.90182,-4.47688 0.36073,-0.90336 0.18036,-0.18943 0.18036,-0.0201 0.18037,0.14331 0.36072,0.76175 0.36073,1.40032 0.54109,3.37857 0.72146,6.56648 0.54109,4.64767 0.36073,1.62757 0.18036,0.2007 0.18036,-0.19313 0.36073,-1.29013 0.90182,-4.19894 0.36073,-0.79034 0.18036,-0.13253 0.18036,0.0371 0.36073,0.56071 0.36073,1.19424 0.54109,3.03551 0.54109,4.56413 0.90182,8.43437 0.36072,1.75118 0.18037,0.26294 0.18036,-0.13059 0.36073,-1.16416 0.90182,-3.87879 0.36073,-0.66015 0.18036,-0.067 0.18036,0.10298 0.36073,0.69337 0.36073,1.32817 0.54109,3.23878 0.54109,4.77029 0.90182,8.78452 0.36072,1.89357 0.18037,0.33465 0.18036,-0.0586 0.36073,-1.01906 0.90182,-3.51 0.36072,-0.51018 0.18037,0.009 0.18036,0.17885 0.36073,0.8462 0.36073,1.48243 0.54109,3.47293 0.72145,6.93722 0.72146,7.25842 0.36072,2.05759 0.18037,0.41724 0.18036,0.0244 0.18036,-0.30594 0.54109,-1.95309 0.5411,-1.67807 0.36072,-0.33744 0.18037,0.0955 0.36073,0.69722 0.36072,1.34118 0.54109,3.23105 0.54109,4.78825 1.26255,12.88685 0.36073,1.43944 0.18036,0.12001 0.18036,-0.2099 0.36073,-1.0364 0.54109,-1.68179 0.36073,-0.48496 0.18036,0.0194 0.18037,0.19574 0.36072,0.89905 0.36073,1.54491 0.54109,3.54029 0.54109,5.10187 1.26255,13.63615 0.36072,1.65811 0.18037,0.23012 0.18036,-0.0993 0.36073,-0.81357 0.54109,-1.34359 0.36073,-0.25682 0.18036,0.13427 0.36073,0.79405 0.36073,1.4586 0.54109,3.39746 0.54109,4.93808 1.62327,17.65481 0.36073,1.10516 0.18036,0.0282 0.36073,-0.55689 0.54109,-0.95401 0.18036,-0.0822 0.18037,0.0882 0.36072,0.71071 0.36073,1.39934 0.54109,3.31705 0.54109,4.82349 0.72146,8.76793 0.90182,10.8211 0.18036,1.30652 0.36073,-3.00364 0.72145,-9.12398 0.90182,-10.55172 0.54109,-4.30681 0.54109,-2.8328 0.36073,-1.06059 0.36073,-0.35482 0.18036,0.0822 0.36073,0.56962 0.54109,0.94128 0.18036,-0.0282 0.18036,-0.35696 0.36073,-1.90999 0.54109,-5.55557 1.26255,-14.40685 0.54109,-3.89649 0.54109,-2.42825 0.36073,-0.79405 0.18036,-0.13427 0.18036,0.0435 0.36073,0.57463 0.72146,1.79586 0.18036,0.0993 0.18036,-0.23012 0.18037,-0.62197 0.36072,-2.46416 0.72146,-8.06016 0.72146,-7.72398 0.54108,-4.05334 0.5411,-2.55772 0.36072,-0.89905 0.18037,-0.19574 0.18036,-0.0194 0.18036,0.15783 0.36073,0.8017 0.72146,2.24362 0.18036,0.2099 0.18036,-0.12001 0.18037,-0.51237 0.36072,-2.24653 0.54109,-5.56523 0.90182,-9.3686 0.54109,-3.74264 0.54109,-2.2514 0.36073,-0.69722 0.18037,-0.0955 0.18036,0.0803 0.36073,0.68302 1.08218,3.51118 0.18036,-0.0244 0.18037,-0.41724 0.36072,-2.05759 0.54109,-5.28515 0.90182,-8.91049 0.54109,-3.47293 0.54109,-1.98546 0.36073,-0.52202 0.18036,-0.009 0.18037,0.16692 0.36073,0.85495 1.08218,4.01737 0.18036,0.0586 0.18036,-0.33465 0.36073,-1.89357 0.54109,-5.042 0.90182,-8.51281 0.54109,-3.23878 0.36073,-1.32817 0.36073,-0.69337 0.18036,-0.10298 0.18036,0.067 0.36073,0.66015 0.36073,1.31851 0.90182,3.72444 0.18036,0.13059 0.18036,-0.26294 0.36073,-1.75118 0.54109,-4.83092 0.90182,-8.16758 0.54109,-3.03551 0.36073,-1.19424 0.36073,-0.56071 0.18036,-0.0371 0.18036,0.13253 0.36073,0.79034 0.54109,2.34948 0.54109,2.61506 0.36073,0.71766 0.18036,-0.2007 0.36073,-1.62757 0.54109,-4.64767 0.90182,-7.86787 0.54109,-2.85905 0.36073,-1.07797 0.36073,-0.44554 0.18036,0.0201 0.18036,0.18943 0.36073,0.90336 0.54109,2.51703 0.54109,2.78026 0.36073,0.82649 0.18036,-0.14666 0.18037,-0.56308 0.36072,-2.24605 1.44291,-11.88199 0.54109,-2.19914 0.36073,-0.66129 0.18037,-0.0934 0.18036,0.0697 0.36073,0.652 0.36072,1.34393 1.26255,5.75152 0.18036,-0.0998 0.18036,-0.51639 0.36073,-2.15332 1.44291,-11.51974 0.54109,-2.06677 0.36073,-0.57408 0.18036,-0.0501 0.18037,0.11281 0.36073,0.73757 0.36072,1.42871 1.26255,6.04202 0.18036,-0.059 0.18036,-0.47586 0.36073,-2.07283 1.44291,-11.20525 0.54109,-1.95187 0.36073,-0.49837 0.18036,-0.0126 0.18037,0.15021 0.36072,0.81187 0.36073,1.50231 1.26255,6.2942 0.18036,-0.0237 0.18036,-0.44067 0.36073,-2.00296 1.44291,-10.932233 0.36073,-1.399373 0.36072,-0.747321 0.18037,-0.138066 0.18036,0.02008 0.18036,0.182692 0.36073,0.876361 0.36073,1.566201 1.26255,6.513139 0.18036,0.007 0.18036,-0.41012 0.36073,-1.94229 1.44291,-10.695224 0.36073,-1.341505 0.36072,-0.689994 0.18037,-0.109606 0.18036,0.04841 0.36073,0.590242 0.36072,1.280518 0.5411,3.076133 0.72145,4.092622 0.18037,0.428592 0.18036,0.03366 0.18036,-0.383609 0.36073,-1.889628 1.44291,-10.489469 0.36072,-1.291267 0.36073,-0.640228 0.18037,-0.0849 0.18036,0.073 0.36073,0.639078 0.36072,1.328897 0.54109,3.147849 0.72146,4.186682 0.18036,0.45183 0.18037,0.05679 0.18036,-0.360588 0.36073,-1.84391 1.44291,-10.31085 0.36072,-1.247654 0.36073,-0.597026 0.18036,-0.06345 0.18037,0.09434 0.36073,0.681475 0.36072,1.370894 0.54109,3.210109 0.72146,4.268337 0.18036,0.472004 0.18037,0.07687 0.18036,-0.340603 0.36073,-1.804223 1.44291,-10.155785 0.36072,-1.209794 0.36073,-0.559519 0.18036,-0.04483 0.18037,0.112878 0.36072,0.718279 0.36073,1.407354 0.54109,3.264159 0.72146,4.339222 0.18036,0.489519 0.18037,0.0943 0.18036,-0.323254 0.36073,-1.769768 1.4429,-10.021171 0.36073,-1.176926 0.36073,-0.52696 0.18036,-0.02866 0.18037,0.128967 0.36072,0.75023 0.36073,1.439006 0.54109,3.311079 0.72146,4.400761 0.18036,0.504722 0.18037,0.10943 0.18036,-0.308192 0.36073,-1.739857 1.4429,-9.904309 0.36073,-1.148392 0.36073,-0.498695 0.18036,-0.01463 0.18037,0.142934 0.36072,0.777968 0.36073,1.466483 0.54109,3.351813 0.72146,4.454184 0.18036,0.517921 0.18036,0.122566 0.18037,-0.295117 0.36073,-1.713891 1.4429,-9.802858 0.36073,-1.123622 0.36073,-0.474156 0.18036,-0.0024 0.18036,0.155059 0.36073,0.802049 0.36073,1.490336 0.54109,3.387174 0.72145,4.500562 0.18037,0.529379 0.18036,0.133971 0.18037,-0.283766 0.36072,-1.691349 1.44291,-9.714786 0.36073,-1.102118 0.36073,-0.452854 0.18036,0.0081 0.18036,0.165585 0.36073,0.822953 0.36073,1.511044 0.54109,3.417873 0.72145,4.540822 0.18037,0.539327 0.18036,0.143872 0.18036,-0.273912 0.36073,-1.671781 1.44291,-9.638329 0.36073,-1.083449 0.36073,-0.434362 0.18036,0.01731 0.18036,0.174723 0.36073,0.8411 0.36073,1.529021 0.54109,3.444523 0.72145,4.575774 0.18037,0.547963 0.18036,0.152466 0.18036,-0.265357 0.36073,-1.654792 1.44291,-9.571955 0.36073,-1.067244 0.36073,-0.418307 0.18036,0.02528 0.18036,0.182656 0.36073,0.856854 0.36073,1.544628 0.54109,3.467658 0.72145,4.606117 0.18037,0.555459 0.18036,0.159928 0.18036,-0.257932 0.36073,-1.640043 1.44291,-9.514334 0.36073,-1.053175 0.36073,-0.40437 0.18036,0.0322 0.18036,0.189543 0.36073,0.87053 0.36073,1.558177 0.54109,3.487742 0.72145,4.632458 0.18036,0.561967 0.18037,0.166405 0.18036,-0.251484 0.36073,-1.627241 1.44291,-9.464311 0.36073,-1.040961 0.36072,-0.392272 0.18037,0.03821 0.36073,0.552833 0.36072,1.223138 0.54109,3.091653 0.90182,5.940742 0.18036,0.567617 0.18037,0.172029 0.18036,-0.245888 0.36073,-1.616126 1.44291,-9.420886 0.36072,-1.030358 0.36073,-0.381769 0.18037,0.04342 0.36072,0.563188 0.36073,1.233398 0.54109,3.106861 0.90182,5.965615 0.18036,0.572522 0.18037,0.17691 0.18036,-0.241029 0.36073,-1.606477 1.44291,-9.383188 0.36072,-1.021153 0.36073,-0.37265 0.18036,0.04795 0.36073,0.572179 0.36073,1.242303 0.54109,3.120063 0.90182,5.987209 0.18036,0.576779 0.18037,0.181148 0.18036,-0.236811 0.36073,-1.598101 1.44291,-9.35046 0.36072,-1.013163 0.36073,-0.364734 0.18036,0.05188 0.36073,0.579983 0.36073,1.250035 0.54109,3.131524 0.90182,6.005954 0.18036,0.580476 0.18036,0.184827 0.18037,-0.23315 0.36073,-1.590829 1.4429,-9.322049 0.36073,-1.006226 0.36073,-0.357862 0.18036,0.05529 0.36073,0.586759 0.36073,1.256746 0.54109,3.141474 0.90182,6.022228 0.18036,0.583684 0.18036,0.188021 0.18037,-0.229971 0.36072,-1.584516 1.44291,-9.297384 0.36073,-1.000204 0.36073,-0.351897 0.18036,0.05825 0.36073,0.59264 0.36073,1.262574 0.54109,3.150111 0.90182,6.036355 0.18036,0.58647 0.18036,0.190794 0.18037,-0.227211 0.36072,-1.579036 1.44291,-9.275973 0.36073,-0.994976 0.36073,-0.346718 0.18036,0.06082 0.36073,0.597746 0.36073,1.267631 0.54109,3.15761 0.90182,6.048619 0.18036,0.588889 0.18036,0.193201 v 0" + clip-path="url(#p6309f1df46)" /> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="patch_3"> + <path + inkscape:connector-curvature="0" + id="path193" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:square;stroke-linejoin:miter" + d="M 57.6,307.584 V 41.472" /> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="patch_4"> + <path + inkscape:connector-curvature="0" + id="path196" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:square;stroke-linejoin:miter" + d="M 414.72,307.584 V 41.472" /> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="patch_5"> + <path + inkscape:connector-curvature="0" + id="path199" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:square;stroke-linejoin:miter" + d="M 57.6,307.584 H 414.72" /> + </g> + <g + style="stroke-linecap:butt;stroke-linejoin:round" + id="patch_6"> + <path + inkscape:connector-curvature="0" + id="path202" + style="fill:none;stroke:#000000;stroke-width:0.80000001;stroke-linecap:square;stroke-linejoin:miter" + d="M 57.6,41.472 H 414.72" /> + </g> + </g> + <defs + id="defs210"> + <clipPath + id="p6309f1df46" + style="stroke-linecap:butt;stroke-linejoin:round"> + <rect + height="266.112" + width="357.12" + x="57.599998" + y="41.472" + id="rect207" + style="stroke-linecap:butt;stroke-linejoin:round" /> + </clipPath> + </defs> +</svg> diff --git a/python/ackley.py b/python/ackley.py new file mode 100644 index 0000000..6445ae4 --- /dev/null +++ b/python/ackley.py @@ -0,0 +1,10 @@ +import numpy as np +import matplotlib.pyplot as plt + +N=30 +x = np.arange(-30,30+1/N,1/N) + +y = -20*np.exp(-0.2*np.sqrt(0.5*x**2))-np.exp(0.5*(np.cos(2*np.pi*x)))+np.exp(1)+20 + +plt.plot(x,y) +plt.show() \ No newline at end of file -- GitLab