{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Forward-Backward Splitting\n", "===================================\n", "\n", "$\\newcommand{\\dotp}[2]{\\langle #1, #2 \\rangle}$\n", "$\\newcommand{\\enscond}[2]{\\lbrace #1, #2 \\rbrace}$\n", "$\\newcommand{\\pd}[2]{ \\frac{ \\partial #1}{\\partial #2} }$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\umax}[1]{\\underset{#1}{\\max}\\;}$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\uargmin}[1]{\\underset{#1}{\\arg\\min}\\;}$\n", "$\\newcommand{\\norm}[1]{\\|#1\\|}$\n", "$\\newcommand{\\abs}[1]{\\left|#1\\right|}$\n", "$\\newcommand{\\choice}[1]{ \\left\\{ \\begin{array}{l} #1 \\end{array} \\right. }$\n", "$\\newcommand{\\pa}[1]{\\left(#1\\right)}$\n", "$\\newcommand{\\diag}[1]{{diag}\\left( #1 \\right)}$\n", "$\\newcommand{\\qandq}{\\quad\\text{and}\\quad}$\n", "$\\newcommand{\\qwhereq}{\\quad\\text{where}\\quad}$\n", "$\\newcommand{\\qifq}{ \\quad \\text{if} \\quad }$\n", "$\\newcommand{\\qarrq}{ \\quad \\Longrightarrow \\quad }$\n", "$\\newcommand{\\ZZ}{\\mathbb{Z}}$\n", "$\\newcommand{\\CC}{\\mathbb{C}}$\n", "$\\newcommand{\\RR}{\\mathbb{R}}$\n", "$\\newcommand{\\EE}{\\mathbb{E}}$\n", "$\\newcommand{\\Zz}{\\mathcal{Z}}$\n", "$\\newcommand{\\Ww}{\\mathcal{W}}$\n", "$\\newcommand{\\Vv}{\\mathcal{V}}$\n", "$\\newcommand{\\Nn}{\\mathcal{N}}$\n", "$\\newcommand{\\NN}{\\mathcal{N}}$\n", "$\\newcommand{\\Hh}{\\mathcal{H}}$\n", "$\\newcommand{\\Bb}{\\mathcal{B}}$\n", "$\\newcommand{\\Ee}{\\mathcal{E}}$\n", "$\\newcommand{\\Cc}{\\mathcal{C}}$\n", "$\\newcommand{\\Gg}{\\mathcal{G}}$\n", "$\\newcommand{\\Ss}{\\mathcal{S}}$\n", "$\\newcommand{\\Pp}{\\mathcal{P}}$\n", "$\\newcommand{\\Ff}{\\mathcal{F}}$\n", "$\\newcommand{\\Xx}{\\mathcal{X}}$\n", "$\\newcommand{\\Mm}{\\mathcal{M}}$\n", "$\\newcommand{\\Ii}{\\mathcal{I}}$\n", "$\\newcommand{\\Dd}{\\mathcal{D}}$\n", "$\\newcommand{\\Ll}{\\mathcal{L}}$\n", "$\\newcommand{\\Tt}{\\mathcal{T}}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\al}{\\alpha}$\n", "$\\newcommand{\\la}{\\lambda}$\n", "$\\newcommand{\\ga}{\\gamma}$\n", "$\\newcommand{\\Ga}{\\Gamma}$\n", "$\\newcommand{\\La}{\\Lambda}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\Si}{\\Sigma}$\n", "$\\newcommand{\\be}{\\beta}$\n", "$\\newcommand{\\de}{\\delta}$\n", "$\\newcommand{\\De}{\\Delta}$\n", "$\\newcommand{\\phi}{\\varphi}$\n", "$\\newcommand{\\th}{\\theta}$\n", "$\\newcommand{\\om}{\\omega}$\n", "$\\newcommand{\\Om}{\\Omega}$\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "from __future__ import division\n", "%pylab inline\n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This numerical tour presents the Forward-Backward (FB) algorithm to\n", "minimize the sum of a smooth and a simple function. It shows an\n", "application to sparse deconvolution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Forward-Backward Algorithm\n", "--------------------------\n", "We consider the problem of minimizing the sum of two functions\n", "$$ E^\\star = \\umin{x \\in \\RR^N} E(x) = f(x) + g(x). $$\n", "\n", "So, we want to find a vector $x^\\star$ solution to the problem, i.e. a minimizer of $E=f+g$.\n", "\n", "\n", "We assume that $f$ is a $C^1$ function with $\\beta$-Lipschitz gradient.\n", "\n", "\n", "\n", "We also assume that $g$ is \"simple\", in the sense that one can compute exactly and quickly its proximity operator, which is defined as\n", "$$ \\text{prox}_{\\ga g}(x) = \\uargmin{y \\in \\RR^N} \\frac{1}{2}\\norm{x-y}^2 + \\ga g(y). $$\n", "for any $\\ga > 0$.\n", "\n", "\n", "The forward-backward algorithm reads, after initializing $x^{(0)} \\in \\RR^N$,\n", "$$ x^{(k+1)} = \\text{prox}_{\\ga g}\\pa{ x^{(k)} - \\ga \\nabla f( x^{(k)} ) }. $$\n", "\n", "\n", "If $0 < \\ga < 2/\\beta$, then this scheme converges to a minimizer of\n", "$f+g$.\n", "\n", "Sparse Regularization of Inverse Problems\n", "-----------------------------------------\n", "We consider a linear inverse problem\n", "$$ y = A x^\\sharp + w \\in \\RR^P$$\n", "where $x^\\sharp \\in \\RR^N$ is the (unknown) signal to recover, $w \\in\n", "\\RR^P$ is a noise vector, and $A \\in \\RR^{P \\times N}$ models the\n", "acquisition device.\n", "\n", "\n", "To recover an estimate of the signal $x^\\sharp$, we consider basis\n", "pursuit denoising, which makes use of the $\\ell^1$ norm as sparsity\n", "enforcing penalty:\n", "$$ \\umin{x \\in \\RR^N} \\frac{1}{2} \\norm{A x-y}^2 + \\la \\norm{x}_1, $$\n", "where the $\\ell^1$ norm is defined as\n", "$$ \\norm{x}_1 = \\sum_i \\abs{x_i}. $$\n", "\n", "\n", "The parameter $\\la$ should be set in accordance to the noise level\n", "$\\norm{w}$.\n", "\n", "\n", "This minimization problem can be cast in the form of minimizing $f+g$\n", "where\n", "$$ f(x) = \\frac{1}{2} \\norm{Ax-y}^2\n", "\\qandq g(x) = \\la \\norm{x}_1. $$\n", "\n", "\n", "$f$ is smooth; we have\n", "$$ \\nabla f(x) = A^* (A x - y), $$\n", "which is $\\beta$-Lipschitz continuous, with\n", "$$ \\beta = \\norm{ A^* A }. $$\n", "\n", "\n", "The $\\ell^1$-norm is \"simple\", because its proximal operator is soft\n", "thresholding:\n", "$$ \\big(\\text{prox}_{\\ga g}(x)\\big)_n = \\max\\pa{ 0, 1 - \\frac{\\la \\ga}{\\abs{x_n}} } x_n. $$\n", "\n", "Signal Deconvolution on Synthetic Sparse Data\n", "-----------------------------------------------------\n", "A simple linearized model of seismic acquisition considers a linear filtering\n", "operator (convolution):\n", "$$ A x = h \\ast x $$\n", "\n", "The filter $h$ is called the impulse response, or the poind spread function, of the acquisition process $x\\mapsto Ax$." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "N = 1024" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the width of the filter $h$." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "s = 5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define $h$ as the second derivative of a\n", "Gaussian." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "t = arange(-N/2,N/2)\n", "h = (1-t**2/s**2)*exp(-(t**2)/(2*s**2))\n", "h = h - h.mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the operator $A$. For simplicity, here periodic boundary conditions are used, so that the convolution is efficiently implemented as a product in Fourier domain." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "h_tf = fft.fft(fft.fftshift(h))\n", "opA = lambda u : real(fft.ifft(fft.fft(u) * h_tf))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We display the filter $h$ and its spectrum (amplitude of its Fourier transform)." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(-100, 100)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figsize(7,5)\n", "plot(t,h)\n", "xlim(-100,100)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(t,fft.fftshift(abs(h_tf)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We generate a synthetic sparse signal $x^\\sharp$, with only a small number of nonzero\n", "coefficients." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "random.seed(80) # we set the seed of the random number generator for reproducibility purpose." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "s = round(N*.01) # number of nonzero elements of xsharp\n", "sel = random.permutation(N)\n", "sel = sel[0:s] # indices of the nonzero elements of xsharp\n", "xsharp = zeros(N)\n", "xsharp[sel] = sign(randn(s)) * (1-0.3*rand(s))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "noiselevel = 0.2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the measurements $y=A x^\\sharp + w$ where $w$ is a realization\n", "of white Gaussian noise." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "y = opA(xsharp) + noiselevel * randn(N)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "iVBORw0KGgoAAAANSUhEUgAAAzYAAAFFCAYAAAA+ZngHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", "AAALEgAACxIB0t1+/AAAGDRJREFUeJzt3X+w5WV9H/D3R1BBoTXWDios0WExakhabaKSNMnGqLCb\n", "FG0nP2TywzhCMk0Ek8l01LZTcfpHzR+Zhl1Hx27UEtui1jYO6rKGWmnt1KKOaEVBXVq6CwZMG42g\n", "0IJ++sc5C3cv9+6Pe8695z57X6+ZO/v9Pud7zvdz7z5zzn3f7/M83+ruAAAAjOwxiy4AAABgVoIN\n", "AAAwPMEGAAAYnmADAAAMT7ABAACGJ9gAAADDE2wAAIDhCTYAAMDwTl10AQCwkapqW5JKcnZ3f3LR\n", "9QAwH67YADB3VXVLVf3kBpznjqr6mRN82mOSPD3JS9ehJAAWxBUbAOauuy/YqFNNv07ES5O8Msn1\n", "8y8HgEURbADYaj6W5IYk5yy6EADmx1A0ANasql5fVXdW1beq6raq+ulp+x1V9eLp9vOr6ubpMe+v\n", "qvdV1T9d8hp3VNXvVdXnq+qbVfXeqnr89LE3VNWB6XO/WFWvmEPZ35vDawCwyQg2AKxJVf1Akt9O\n", "8iPd/VeSvCzJ/5o+3NNjHpfkT5K8K8n3Jbk2ySty5PCxTvILSS5K8swkP5zk16ePHUjyt6ev/+Yk\n", "/6qqnjqH8h+bZKOGywGwAQQbANbqu0ken+QHq+qx3X2wu//HsmNelOSU7t7T3d/t7j9J8qkVXmt3\n", "d9/d3d9I8qEkfzNJuvsD3X33dPv9Sb6a5AXHU1xVXVJVP1tVb6mqX66q91TVs5O8MMm/TXL+Gr5n\n", "ADYpwQaANenuA0l+J8lVSe6pqmur6mnLDnt6kruWtR3KZLnlpe5esn1/kjOSpKp+bTqM7RtV9Y1M\n", "rrL8tWPVVlXnJvlSd38kk8UCPpLkfUkOJvlykksyCTcAnCQEGwDWrLuv7e6fSPL9mQwp+/1lh3wt\n", "ydnL2s7N0Vcy6yQ9DSd7Mxnu9uTu/r4kt+TRoWilug5294GqOivJvd39ze7+cHd/p7s/392Huvum\n", "4/omARiCYAPAmlTVs6rqxdOJ/v83yQOZDE9b6pNJvltVr62qU6vq5Ul+9FgvPf16YiYT/f93ksdU\n", "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\n", "Nyb53koLCFSVEAQAABzVanNsTp3T66826f8zSc6vqmck+VqSX0py6UoHWjgAAABYqzXPsamqv1tV\n", "h5K8KMlHqur6afvTq+ojSdLdDyV5bZKPJvlSkvettCIaAADALGYeigYAALBo670q2jFV1cVVdVtV\n", "fbWqXr/oehhTVW2rqo9X1Rer6paqunLa/uTpIhhfqao/raonLXnOG6f97raqetniqmcUVXVKVd1c\n", "VR+a7utfzE1VPamqPlBVt1bVl6rqhfoY8zTtM1+cLgT1b6rq8foYs6iqd1XVPVX1hSVtJ9ynqupv\n", "TfvlV6vq6rXWs9BgM72B51uTXJzkuUkurarnLLImhvVgkt/t7h/MZHjkb0/70huS3NDdz0rysel+\n", "quq5mcz5em4m/e9tVbXwoM+m97pMhtUevtStfzFPVyfZ193PSfLDSW6LPsacTOc7X57k+d39Q0lO\n", "SfLK6GPM5t2Z9I+lTqRPHZ5j//Ykr+nu8zOZn7/8NY/LojuoG3gyF919d3d/brp9X5JbM7ln0iVJ\n", "rpkedk2SV0y3X57k2u5+sLvvSHIgk/4IK6qqc5LsSvJHeWTBFP2Luaiqv5rkJ7r7Xclkjmp3/2X0\n", "MebnW5n8EfAJVXVqkidksrCTPsaadfcnknxjWfOJ9KkXVtXTkpzZ3Z+aHvfHS55zQhYdbNzAk7mb\n", "/lXqeUluSnJWd98zfeieJGdNt5+eSX87TN/jWP55kn+Q5HtL2vQv5uWZSf68qt5dVZ+tqr1V9cTo\n", "Y8xJd/9Fkj9IcjCTQPPN7r4h+hjzd6J9ann7XVljX1t0sLFyAXNVVWck+XdJXtfd9y59rCcrZRyt\n", "z+mPrKiqfi7J17v75qyyvL3+xYxOTfL8JG/r7ucn+XamwzcO08eYRVWdl+R3kjwjk18kz6iqX1l6\n", "jD7GvB1Hn5qrRQebu5JsW7K/LUcmNjhuVfXYTELNe7r7g9Pme6rqqdPHn5bk69P25X3vnGkbrOTH\n", "klxSVf8zybVJXlxV74n+xfzcmeTO7v70dP8DmQSdu/Ux5uRHkvzX7v4/09tx/PskF0YfY/5O5LPx\n", "zmn7Ocva19TXFh1sHr6BZ1U9LpMJRdctuCYGNJ189s4kX+ruP1zy0HVJXjXdflWSDy5pf2VVPa6q\n", "npnk/CSfCqygu/9hd2/r7mdmMtn2P3b3r0b/Yk66++4kh6rqWdOmlyT5YpIPRR9jPm5L8qKqOn36\n", "mfmSTBZD0ceYtxP6bJy+/31ruhJkJfnVJc85IafOVvdsuvuhqjp8A89TkrzTDTxZox9P8itJ/ntV\n", "3Txte2OStyR5f1W9JskdSX4xSbr7S1X1/kze1B9K8lvtpk4cv8N9Rf9inq5I8q+nf+i7PcmrM/ls\n", "1MeYWXd/vqr+OJM/Kn8vyWeT/IskZ0YfY42q6tokP5XkKVV1KMk/ydo+G38ryb9Mcnomq0PuX1M9\n", "+igAADC6RQ9FAwAAmJlgAwAADE+wAQAAhifYAAAAwxNsAACA4Qk2AADA8AQbAABgeIINAAAwvP8P\n", "eb97JyXyU2sAAAAASUVORK5CYII=\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figsize(14,5)\n", "stem(sel,xsharp[sel])\n", "xlim(0,N-1)\n", "title('signal $x^\\sharp$')" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figsize(14,5)\n", "plot(range(N),y)\n", "xlim(0,N-1)\n", "title('signal $y$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Deconvolution\n", "---------------------------\n", "We now implement the foward-backward algorithm to recover an estimate of the sparse signal\n", "\n", "\n", "We define the regularization parameter $\\la$." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Lambda = 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the proximity operator of $\\ga g$." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def prox_gamma_g (x, gamma, Lambda) :\n", " return x - x/maximum(abs(x)/(Lambda*gamma),1) # soft-thresholding" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the gradient operator of $f$. Note that $A^*=A$ because the filter $h$ is symmetric." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", " \n", "__Exercise: write the code of the function grad_f.__

" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "grad_f = lambda x : # put your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the Lipschitz constant $\\beta$ of $\\nabla f$." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "85.032184045506753" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beta = abs(fft.fft(h)).max()**2\n", "beta" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the stepsize $\\ga$, which must be smaller than $2/\\beta$." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [], "source": [ "gamma = 1.9 / beta" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We compute the solution of $\\ell_1$ deconvolution (basis pursuit denoising).\n", "We keep track of the energy $E_k=f(x^{(k)})+g(x^{(k)})$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", " \n", "__Exercise: write the code of the forward-backward iteration.__

" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [], "source": [ "nbiter = 2000\n", "x = y\n", "En_array = zeros(nbiter+1)\n", "En_array[0] = norm(opA(x) - y)**2/2 + Lambda*norm(x, ord=1)\n", "for iter in range(nbiter): # iter goes from 0 to nbiter-1\n", " # put your code here\n", " En_array[iter+1] = norm(opA(x) - y)**2/2 + Lambda*norm(x, ord=1) \n", "x_restored = x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We display the result." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "iVBORw0KGgoAAAANSUhEUgAAA7EAAAG0CAYAAADkcaDDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", "AAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+0pHddJ/j3xwRMQiLI6gGBzsISOMD06ooKtD/WFsGk\n", "7zqge8ZFdvwxOIme2aU7O+uOoJ6VeNaZA+zMjklcZ5gWPeg4wh51HNBOQ1R6dN3wa0UkkAgdZbsB\n", "CYozkobOGOSzf1S1uX373tu3b9Wtqqfq9TqnT9fzrae+z6e+T9X93vetp56nujsAAAAwBF8w7wIA\n", "AABgp4RYAAAABkOIBQAAYDCEWAAAAAZDiAUAAGAwhFgAAAAGQ4gFAABgMC6fdwHApauqfUkqyRO7\n", "+6551wMAALPik1gYpi9I8oQkL5x3IQAAMEtCLAzTC5P8RJLPzLsQAACYperuedcAXKKqekqSzyd5\n", "Unf/3rzrAQCAWfFJLAzT5+ddAAAAzIMQC8P1iCT7510EAADMkrMTw4Krqhcl+esk35Dk/UluSPLh\n", "JN+e5LfmWBoADN4W8+w/7u5751oYsCXfiYUFVlXXJnlkd5+sqv83yTcn+fokn0ry0SRP6O53zrNG\n", "ABiqbebZ3+7uz86ohmcl2dfdb53F9mAZCLEwAFX1uCRv6u6D864FAJbNpPNsVT21u+/b5WMvS/Kv\n", "u/ulu3k8rCLfiYUFVlXPqKqvSLKW5HfGbWvzrQoAlsM05tnxFQNevNsauvuvkzy428fDKvKdWFhs\n", "35LkmiR/muSKqvq2jA4jBgAmt+k8W1V/P6PvyP5lkh9M8tQkX5XkizO6QsD7kjyvu/+PJM9J8jXj\n", "MPyZJAcy+trPZ8ePO9fP/5nkq8d9/HaSh8bbf2+Sq2bxZGFZCLGwwLr7tnnXAADLaqt5tqr+LMmz\n", "uvsHx8s/kuSnMwq8z87ok9tj49XfkeQZ3f2+qvq5JDd2919X1ZuS/NC5fqrq5zMKstck2Zfkv0/y\n", "D7r7bFV9/949S1g+Ex9OXFU/W1X3V9X7t1nntqr6cFW9r6q+ctJtAgBbq6obqure8dz7ii3WOVhV\n", "762qu6vqxIxLhEVXST69brmT3Nfdv5nk95L8YpKXrbsvVfW3kjwqySPH7Y8a/3+un8+v6+N94238\n", "9V49AVhmE5/Yqaq+IcmZJD/f3f/lJvevJXl5d69V1XOT3Nrdz5toowDApsYnifmjJC9I8rEk707y\n", "0u6+Z906j8noF/Hru/ujVfUl3f3ncykYFlBVfU+S70jy/d39p1X11CR/J6NDf786o/fP47v7TVX1\n", "iCSvTfIrSe5P8k1JPpHR4cJfeq6fjA4ZPtfHHyW5Isn1GV3W5zVJ/rvu/sisniMM2VTOTlxVT07y\n", "li1C7L9M8vbuftN4+d4k39jd90+8YQDgPFV1IMmruvuG8fIrk6S7X71unf8ho1/Af2w+VQLA7s3i\n", "7MRPTHJ63fJHkzxpBtsFgFW02bz7xA3rPC3JY6vq7VX1nqr67plVBwATmtWJnWrD8gUf/1aVC9YC\n", "MFXdvXH+WQU7mU8fkdHJab45o0Mc76qqd3T3h9evZG4GYNqmMTfPIsR+LKMzsJ3zpHHbBVb0l40L\n", "VNUt3X3LvOtYFMbjfMbjYcbifMbjfCscwDbOu/ty4aW5Tif58+4+m+RsVf1Okq9I8uEN65mbx7y/\n", "zmc8zmc8HmYszmc8zjetuXkWhxO/Ocn3JElVPS/Jf/R9WADYM+9J8rSqenJVPTLJSzKai9f7d0m+\n", "vqouq6qrkjw3yQdnXCcA7MrEn8RW1S8l+cYkX1JVp5O8KqPDlNLdr+vuY1W1VlUnM7oA9Mu27g0e\n", "VrV/Ldl3JLnuGVWHnpecvq377mMXfyTA6uruz1XVy5O8NcllSV7f3fdU1Q+M739dd99bVceT/GFG\n", "l/042t1LEWIfnjuuuSJ54EFzB8DymTjEdvdLd7DOyyfdzoo5Me8C5m30S8iBW5Oj142G4+B/ntz0\n", "1Kr98cuI18c6J+ZdwII5Me8CWAzdfUeSOza0vW7D8j9N8k9nWddeO3/uOGdqc8eJCR+/bE7Mu4AF\n", "c2LeBSyQE/MuYMGcmHcBy2gql9iZhqpq37vhnKpDx5M7rr/wnrXj3ccOzb4iYGjMK5Mb2hiaOwAW\n", "27TmlVl8JxZ24ZorNm+/+srZ1gHAcJg7AFaBEMuCeuDBzdvPnJ1tHQAMh7kDYBUIsSyo07clN508\n", "v+3G+5JTt8+nHgAWn7kDYBX4TiwLa3SCjmsPJ8duSNaOJ6dud1InYKfMK5Mb4hiaOwAW17TmFSGW\n", "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\n", "cXP33cf2qEDmbwZzc7K476GLzR3nfvW5a3z/+m1NOjev72MvLELfux2jRah9M49K8tkkWz2VadW9\n", "WT87bZvmNqdF39v3f7HtPCqjzxJ/O1Xf/p+Sz9ydfPx/NTfv3KQh9olJTq9b/miS5+5gnScluWCi\n", "TK7asHxlkgeTPHLCMjczad8bH3/VJvc9eot1tnvsbrY9TYvS96WO0V7WPY3+t3v8NGvf2NdWfU9j\n", "m4s+5qvQ98W2dWWSL0rytPHyv60k1yUv+4Wq/d9tslxaezw3J4v7HrrY3HFlkkpydrz8n61bf9K5\n", "ebPtT9Mi9L3bMVqE2jfzpUk+na0D7LTq3qyfnbZNc5vTou/t+9/4+/9GXzpe5/Hj5X/7yCTPTr7v\n", "Z6r232hu3plJQ+xO/wJXO3vcF21YvirJIy6toh2btO+Nj/+iTe7bap3tHrubbU/TovR9qWO0l3VP\n", "o//tHj/N2jf2tVXf09jmoo/5KvR9sW1dlVGA/YkN7T/32GTtcBIT5XLa47k5Wdz30MXmjnOh69yv\n", "P49et/6kc/NmfUzTIvS92zFahNo384wk78voaJVp932xfnbaNs1tTou+t+//Ytt5xvj/jXPzz36Z\n", "uXnnJg2xH0uyb93yvoz+mrvdOk8at13gVfn1v7l9cPxvGDb+HnAp6+zksavOGMFk/vHf3Kq/ySlX\n", "XzmfWvZOVR3MkKaOvWNuTnLxuWO7+807F7cMY/TrF18Fpu7c687cPFG/3bv8ykeSqro8yR8l+eYk\n", "H0/yriQv7e571q2zluTl3b1WVc9L8pPd/bxN+urRH4H/9rrWqzL6nsJemLTv7R5/7r6t1tnLbU9q\n", "Ufq+1Dr2su5p9L/+8W/J3r3ON27nJVv0vV09u9nWXliU1+Ii932x/bjVJ7FJsna8+9ihqZe4QKqq\n", "u3sZftO+JNOfm781e/tza6NJ+r7YY899EvvZdcuT/iy8lO0Pve/d1rAItW/mKzL6JDbZ+mfoNOre\n", "7HW2Wd/TfD0u6pgva9/r+7/YfvyK8f/m5klM9Elsd3+uql6e5K1JLkvy+u6+p6p+YHz/67r7WFWt\n", "VdXJJJ9J8rLte/30utsPZXRM+e6D9tYm7Xu7x5+7b6t19nLbk1qUvi+1jr2sexr9b3z8Xr3ON/b1\n", "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\n", "xv8Px1+i7W32KaAAAAAASUVORK5CYII=\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, (subfig1,subfig2) = subplots(1,2,figsize=(16,7)) # one figure with two horizontal subfigures\n", "subfig1.stem(xsharp)\n", "subfig2.stem(x_restored)\n", "subfig1.set_title('$x^\\sharp$')\n", "subfig2.set_title('$x_\\mathrm{restored}$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We plot the relative error $(E_k-E^\\star)/(E_0-E^\\star)$ in log-scale with respect to $k$." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(log10((En_array[0:1800]-En_array[-1])/(En_array[0]-En_array[-1])))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Over-relaxed Forward-Backward\n", "-----------------------------\n", "It is possible to introduce a relaxation parameter $\\rho$ with $0 < \\rho < 1$. The over-relaxed foward-backward algorithm initializes $x^{(0)} \\in \\RR^N$,\n", "and then iterates, for $k=1,2,\\ldots$\n", "$$ z^{(k)} = \\text{prox}_{\\ga g}\\pa{\n", " x^{(k-1)} - \\ga \\nabla f( x^{(k-1)} ) }.\n", "$$\n", "$$ x^{(k)} = z^{(k)} +\n", " \\rho \\pa{ z^{(k)} - x^{(k-1)} } $$\n", "\n", "\n", "Let us assume $\\gamma=1/\\beta$. Convergence of the iterates $x^{(k)}$ and $z^{(k)}$ to a solution is guaranteed\n", "for $ 0 < \\rho < 1/2 $. The weaker property of convergence of $ E(x^{(k)}) $\n", "to $E^\\star$ is proved, when $ 1/2\\leq \\rho <1 $." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", " \n", "__Exercise: write the code of the over-relaxed forward-backward iteration.__

" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ "gamma = 1/beta\n", "nbiter = 1700\n", "rho = 0.95\n", "x = y\n", "En_array_overrelaxed = zeros(nbiter+1)\n", "En_array_overrelaxed[0] = norm(opA(x) - y)**2/2 + Lambda*norm(x, ord=1)\n", "for iter in range(nbiter): \n", " # put your code here\n", " En_array_overrelaxed[iter+1] = norm(opA(x) - y)**2/2 + Lambda*norm(x, ord=1) " ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(log10((En_array[0:1800]-En_array[-1])/(En_array[0]-En_array[-1])))\n", "plot(log10((En_array_overrelaxed[0:1800]-En_array[-1])/(En_array[0]-En_array[-1])))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we see, in this example, over-relaxation does not bring any speedup, because $\\gamma$ is lower than without over-relaxation. There are other setting parameters or other problems, for which over-relaxation does bring a significant speedup. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "FISTA-like Accelerated Forward-Backward Algorithm\n", "---------------------------\n", "We consider the FISTA algorithm introduced in:\n", "\n", "\n", "A. Beck and M. Teboulle,\n", "\"A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems\",\n", "_SIAM Journal on Imaging Sciences_, 2009.\n", "\n", "More precisely, we consider a slightly modified version of FISTA, whose convergence is proved, see\n", "A. Chambolle and C. Dossal, \"On the convergence of the iterates of \"FISTA\"\", preprint, 2015." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given an initial estimate $x^{(0)}$ of the solution and a parameter $a>2$, the algorithm sets $\\gamma=1/\\beta$, sets $z^{(0)}=x^{(0)} \\in \\RR^N$,\n", "and iterates, for $k=1,2,\\ldots$\n", "$$ x^{(k)} = \\text{prox}_{\\ga g}\\pa{\n", " z^{(k-1)} - \\ga \\nabla f( z^{(k-1)} ) }.\n", "$$\n", "$$ \\alpha_k=(k-1)/(k+a) $$\n", "$$ z^{(k)} = x^{(k)} +\n", " \\alpha_k\n", " \\pa{ x^{(k)} - x^{(k-1)} } $$\n", "\n", "\n", "It is proved that the iterates $x^{(k)}$ converge to a solution $x^\\star$ of the problem. Moreover, \n", "the optimal convergence rate for this class of problems is reached,\n", "namely\n", "$$ E_k - E^\\star = O(1/k^2), $$\n", "whereas the convergence rate for the normal forward-backward is only\n", "$O(1/k)$.\n", "\n", "Note the difference between the over-relaxed forward-backward and the accelerated forward-backward: the later is based on an inertia mechanism, of different nature than over-relaxation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", " \n", "__Exercise: write the code of the accelerated forward-backward iteration.__

" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [], "source": [ "gamma = 1/beta\n", "nbiter = 1700\n", "a = 10\n", "x = y\n", "En_array_fista = zeros(nbiter+1)\n", "En_array_fista[0] = norm(opA(x) - y)**2/2 + Lambda*norm(x, ord=1)\n", "for iter in range(nbiter): \n", " # put your code here\n", " En_array_fista[iter+1] = norm(opA(x) - y)**2/2 + Lambda*norm(x, ord=1) " ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/condatl/anaconda/lib/python2.7/site-packages/IPython/kernel/__main__.py:3: RuntimeWarning: divide by zero encountered in log10\n", " app.launch_new_instance()\n", "/Users/condatl/anaconda/lib/python2.7/site-packages/IPython/kernel/__main__.py:3: RuntimeWarning: invalid value encountered in log10\n", " app.launch_new_instance()\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "iVBORw0KGgoAAAANSUhEUgAAAz4AAAE4CAYAAACaDSbsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", "AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XecXHX1//HX2ZYK6b3X3RTSCUlADR0RRVRsqF8rKio/\n", "FRXBchm/Kna+6pevBUQFAQFDQkIJBJKlpfcKIRUIgUB6SN3s+f1xZ9mZzWSzbfbOzL6fj8c+yNx6\n", "skTMe8+952PujoiIiIiISC7Li7oAERERERGRdFPwERERERGRnKfgIyIiIiIiOU/BR0REREREcp6C\n", "j4iIiIiI5DwFHxERERERyXlpDT5mdomZvWBmL5nZ9em8l4iIiIiIyMlYutbxMbN84EXgAmAbsAj4\n", "hLuvS8sNRURERERETiKdHZ/xwAZ33+Lux4B/A5en8X4iIiIiIiIppTP49ABeSfj8anybiIiIiIhI\n", "o0pn8EnPM3QiIiIiIiK1VJDGa28DeiV87kXY9XmHmSkciYiIiIhItdzd6nuNdAafxcAgM+sLvAZ8\n", "DPhE1YMa4jchyczsJne/Keo6cpG+t+mj72366HubPvrepoe+r+mj72366HubPg3VLElb8HH3MjP7\n", "OvA4kA/8TRPdREREREQkCuns+ODujwGPpfMeIiIiIiIip5LWBUwlMqVRF5DDSqMuIIeVRl1ADiuN\n", "uoAcVhp1ATmqNOoCclhp1AXksNKoC5DqpW0B0xrd3Mz1jo+IiIiIiJxMQ2WGyDs+FrNepz5KRERE\n", "RESk7iIPPsCVURcgIiIiIiK5LROCz9csZi2jLkJERERERHJXJgSfPoRr/IiIiIiIiKRFJgSfXwN3\n", "WMxKoi5ERERERERyUyYEn9vi/1xnMWsWaSUiIiIiIpKTIg8+82466zXgV/GPh6OsRUREREREclPk\n", "wWc37cYA3we2AFjM5kZakIiIiIiI5JzIg08LDo3zwB0YHd800WL2+yhrEhERERGR3BJ58GnJweEA\n", "HvgeYGh887UWs29GV5WIiIiIiOSSyIPPaewfXPFrD3wd8Kn4x1ssZh+IpioREREREcklkQefNuzt\n", "k/jZA78b+Gf840MWs5GNX5WIiIiIiOSSyINPe3Z1xcyqbP4KsC3+6+UWs3aNXJaIiIiIiOSQyIPP\n", "cfIBOidu88APAxMSNu2ymBU0Zl0iIiIiIpI7Ig8+2+ixFyiuut0DfxU4O2HTMYvZ6Y1WmIiIiIiI\n", "5IzIg8/L9D4C9Em1zwOfC3wyYdNei1nnVMeKiIiIiIicTOTBZyt9jgO9TrbfA7+XcIHTCm9YzLqn\n", "vTAREREREckZkQefTfTPo5rgA+CB/xJIXNR0m8WsW1oLExERERGRnBF58NnAwEJOEXwAPPBvAg8n\n", "bHrNYtYlbYWJiIiIiEjOiDz4bKJ/C2oQfOIuB1YmfH7dYta24asSEREREZFckpbgY2a/NrN1ZrbC\n", "zB40szYnO3YLfVt7DYOPB14OTAR2JGzebTEbUs+SRUREREQkh6Wr4/MEMMzdRwLrgRtOduBOOhwD\n", "mmPWqiYX9sAPAkOrbF5rMZtcx1pFRERERCTHpSX4uPssdy+Pf1wA9DzpseTtKaPgDaBHja8f+E6g\n", "a5XNcyxmn6t1sSIiIiIikvMa4x2fzwOPVrN/92Ga7wZqtT6PB/4G0KnK5jssZj+zmEX+7pKIiIiI\n", "iGSOOgcEM5tlZqtSfL0/4ZgfAEfd/Z5qLrVnP6ftp5bBB8ADfwuo+ojcjcDdFrP82l5PRERERERy\n", "U0FdT3T3C6vbb2afBS4Fzq/+Std0/jaHbR98/jGzXe5eWqs6wnd+zGLmCZs/DowHBtTmWiIiIiIi\n", "Ei0zmwxMbvDruvupj6rtRc0uAX4LvMfd36rmOAe/9ynOa34ec1bgHqvzPWPWHEjVAerige9IcYqI\n", "iIiIiGQ4M3N3t/peJ13vwvwRaA3MMrNlZvZ/1Ry77zW6H6UOj7ol8sAPx6+xvsquNyxmY+tzbRER\n", "ERERyW7pmuo2yN37uPvo+Nc11Ry+dwt9j1PP4APvPPY2CphbZddii9kn63t9ERERERHJTpkw/Wzf\n", "Jvo70KUhLuaBHwLOAe6osutui9kfNPFNRERERKTpyYQQsHcjA/JogI5PBQ/cPfAvANdW2fUNYKEm\n", "vomIiIiINC2ZEHz2baJ/Pg0YfCp44H8Eqk6fGwuUWcyqrgEkIiIiIiI5KhOCz97X6N4SaI1ZUUNf\n", "3AN/EhiZYtcOi9k5DX0/ERERERHJPJkQfHaWk9+BcBR1WrowHvhKUq/p86zF7Ht670dEREREJLdl\n", "wl/43wI6ADtIw+NuFTzwTfHr76my65fAbItZi3TdW0REREREopUpwacjaQ4+AB74m/F73F9l13uA\n", "gxazNum8v4iIiIiIRCMTgs9uoM1x8ipCSVp54Mc88I8Bqdb12WMxG5/uGkREREREpHFFHnzcOQ7s\n", "2cfpO4HejXbfwO8FRqfYtSC+3o81Vi0iIiIiIpJekQefuG3LGbUTGNqYN/XAlwPdUuz6BvC2xSzV\n", "PhERERERyTKZEnxe+A8fOQ6MaOwbe+CvA22ApVV2tQBes5iNa+yaRERERESkYWVK8Fn3dz53GtAZ\n", "s8GNfXMPfB8wDvhBit2LLGZfb+SSRERERESkAZm7R3dzM3d3M2McMOUohXcUUjYC9w9HVlPMJgHP\n", "p9j1mAd+aWPXIyIiIiLSlFVkhvpeJyM6Pu4sBrb0YNsWYBRml0RWS+BzgZYpdr3XYuYWs1QLoYqI\n", "iIiISAbLiOAT999v0vmHB2j1TeCPmDWPqhAP/BBQCNyXYvcGi9mHGrkkERERERGph4x41K3yM48A\n", "qx0bDCzB/aeRFQfER1p/Gvhnit1TgE/HQ5KIiIiIiKRBQz3qlmnBpyMw/zyeuu0pLvgOcDHuVaet\n", "NTqL2VBgzUl2t/fAdzdmPSIiIiIiTUVOveNTwZ23gEtnc/41v+D6mQ4PYNYu8roCX0v43s/MFLt3\n", "WczObuSSRERERESkFjKq41O5nV7Aw/fx0YIPM2VnPuUX4n4kghJPYDH7OHBvil2/8sCvb+x6RERE\n", "RERyWU4+6pa8j1YFHLv9YS675CwWPN2WvR/Cvbyxa0zFYjYQeCnFroPAYA98WyOXJCIiIiKSk3Ly\n", "UbdE7rxdRuEnr+Lum9cz+NIljPkPZvX+DTcED3wD0Bao+v5RS+DV+FpAIiIiIiKSITI2+AC44295\n", "x19dx2+vaMXb77udLyxrY3sjf+cHwAPfC4wDvpJi9/MWsx/Gp8KJiIiIiEjE0vqom5ldB/wa6Oju\n", "u1Lsr3Hbapp9sP+ZLFr0AFcWXcdvv19O/u3uZMp7P0OAtSl27Qa6euBHG7kkEREREZGckPHv+JhZ\n", "L+A2oBgYW9/gEz+hw35alz7BRad/jPs4TsEtwB3u7GuwwuvBYjYTuDjFrvEe+KLGrkdEREREJNtl\n", "wzs+vwO+16BXdN95GgcmfZgHX9hF+4OX8sj7gC1m/MmMK8xo36D3q215gV8CfCnFroUWs+9ZzDL6\n", "0UIRERERkVyVlo6PmV0OTHb3b5nZZhqq45NwIvAp4Be7aTv3PGa/uJzR44BJwEagNP71rDsn3Dfd\n", "LGYlwLoUu5YBkz3wjOhQiYiIiIhkusg7PmY2y8xWpfj6AHADECQeXt9Ck7g77ncBJe3Ys3EZY77i\n", "WOmv+U534OvAm8DXgK1mLDPjFjMub6yOkAf+AuHUt9Iqu0YDey1m3RujDhERERERCTV4x8fMhgNP\n", "Ea5pA9AT2AaMd/cdVY51IJawqdTdS+tw04GEj9YNAD6F+7JwM0WEk9cmA+/hxI7QM+nuCFnMPgI8\n", "kGLXxR74E+m8t4iIiIhItjGzyYR/f68QZPRwg3dukI5H3U5yI+AqwgD0Y9z/fOIhFAFjCb+Rkzkx\n", "CM1Ox6AEi1kP4NUUu24FvuFBhKvIioiIiIhksIyf6vbODcw2AePSHnwqLzoQeBh4DLgO9/KTH0oh\n", "lR2h84AJwELgUeAR4EV3GuQbZDErBO4BPlJllwO9PfBUwUhEREREpEnLmuBT7c3TEXzCC7cDpgEv\n", "A5/Dvaxmp9GaMABdCrwPOBq/zn3AovqGoPiCpp8E/pVi9zke+PP1ub6IiIiISK5R8Dn1xVsCU4C9\n", "wCer6/ykPh0DziDs0HwMKALuB+5xZ0W9SguHG6wG2lXZdR1wix59ExEREREJKfjU7AbNCActlOL+\n", "w7pfBgNGEAagq4C3gL8RhqA9db5uzH5M8nAHgKke+Ifqek0RERERkVyi4FPzm3QCFgA34H5f/S9H\n", "PnA+8AXgYsJH4W6paxfIYvYu4JkUuzp64DvrXKiIiIiISA5Q8KndjUYDjwPjcH+54S5LR+BLhGsH\n", "rSOcKDfTndo9VhezrsD2FLvGeBCO5hYRERERaYoUfGp/s+8D5+J+ccNfmiLCx+C+DTQDbgH+5c6h\n", "Gl8jZqcBMwlHbCf6uAf171SJiIiIiGQjBZ/a36wQWANcg/uT6bkFRjga+9vAeOCPwO/d2V/ja8Ts\n", "BuDnVTbfAnzHg9oNaBARERERyXYKPnW74UeB7wFnkubfuBklwI+AC4BfA7fWtANkMTsXmF1l81PA\n", "RQo/IiIiItKUNFRmyGuIYrLIf4DmhGv1pJU7L7hzFeEghInAS2Z82uzU33MPfA7Qs8rm84HjFrPO\n", "DV+tiIiIiEhua1odn/CmVwPvw/3yxr0tEwgffTsGXOvO4lOeE7O2wO4Uu97tgT/bwCWKiIiIiGQc\n", "PepW95u2BLYCE3Df2Li3Jg/4LPAz4BHgRnd2VHtOzFoDcwkXU030Y+BmD7wsDaWKiIiIiGQEPepW\n", "V+4HgTsIR1A38q0pd+cOoATYC6wx41tmFJ70nMAPAGOBu6rs+gmwMt4VEhERERGRajS9jk94437A\n", "IqAH7kca/f7vlEEJ8D9Ab+Cb7jxR7fEx+xZQBPyiyq6hHvi69FQpIiIiIhIdPepW/5uXAn/A/cFI\n", "7v9OGRhwGWEAWgL8P/eUi5lWnhOzZsBOoFXC5i954LenrVARERERkQjoUbf6uwv4ZNRFuOPuzACG\n", "Ay8BK8y4urrpbx74EaAt4bCECrdZzFZazDqlt2IRERERkezTlDs+XYEXgE64H4ukhhTMOAO4nbCj\n", "8xl33qr2+JidDTxXZfNED3x+mkoUEREREWk06vjUl/vrwCbCNXYyhjurgHOAVcCy+Bjskx8f+PNA\n", "l/jxFeZZzG61mBWkr1IRERERkezRdDs+YQE/Bxz3H0RWQzXMuIxwAt1X3ZlyyuNj9mngziqb23vg\n", "qdYCEhERERHJeOr4NIw5wLujLuJk3HkYuAT4gxmfOeXxgd8F9KqyeZfF7Ip01CciIiIiki2aesen\n", "NfAG0BH3Q5HVcQpmDAFmA1+vYeenGfC/wBcTNj8LfNgDfzM9VYqIiIiINDyNs264IhYA1+NeGmkd\n", "p2DGaOBx4GPuzKnROTEbDyyosvkcYK4HEf6LFxERERGpIT3q1nCeJoMfd6vgzjLgY8B9Zoyo0TmB\n", "LwRaA39P2PwccLfFrKjhqxQRERERyUzq+JhdBnwT9wsiraOGzPgYcAtwqTvLa3xezCYBz1fZPNwD\n", "X9OQ9YmIiIiINKSM7/iY2TfMbJ2ZrTazX6brPg3gOeAsLDs6IO7cB1wLPG5W81HcHvhcoAXwcMLm\n", "1Razm9T9EREREZFcl5aOj5mdC9wIXOrux8ysk/uJL9VnRMcnLGQZcA3u86IupabMeC/wT+Dj7syu\n", "8XkxM+BMTnz3Z5QHvqIBSxQRERERqbdM7/h8FbjZ3Y8BpAo9GeYZsuA9n0TuPAZcCfzbrOa1e+Ae\n", "f/fndOD3CbuWW8z+FJ8IJyIiIiKSU9LV8VkGPES4Bs1h4DvuvjjFcZnS8bkM+CkwAffDUZdTG2Zc\n", "ANwNvNudF2t9fsyGAaurbB7hga9qiPpEREREROoj8o6Pmc0ys1Upvj4AFADt3H0C8F3g/voWmmaP\n", "AGuAWZg1j7qY2nDnSeAG4BEz2tX6/HC4QT7wo4TNK/Xuj4iIiIjkknR1fB4DfuHuT8c/bwDOcved\n", "VY5zIJawqdSjWk/HLA94ANiC+3WR1FAPZvwe6A9c7k55na4Rs57AHGBgwuaJHvj8BihRREREROSU\n", "zGwyMDlhU5CxC5ia2ZeB7u4emNlg4El3753iuMx41K2CWUfgRWAs7lsirqZWzCgCZgOPu/Pf9bpW\n", "zCZD0iKpDwNXeeD76nNdEREREZHaivxRt1O4A+hvZquAe4HPpOk+Dcv9LeA2IOs6Pu4cBT4KfMWM\n", "D9XrWoGXEj6u+IP4psuAvRazy+pVpIiIiIhIRLSAaVVmvYDlQI9sG3QAYMY4YDrhwIOfubOnXteL\n", "WWdgEVDRsVsJnOdB8mOLIiIiIiLpkOkdn+zl/gph8Hl/1KXUhTuLgTFAe2CTGf9rxrA6Xy/wHUBf\n", "4NL4phHAWxazT1rMCupbr4iIiIhIY1DHJxWzzwHvx71ej4xFzYyewJeALwKvED6CeJ87e+t0vZid\n", "DnyfcIocwNvAcA+y630oEREREckeDZUZFHxSMWsPbAa64/521OXUlxkFwEXA54ELgBnA34HSukyA\n", "s5j1BdYDhfFNMeC/PfDjDVGviIiIiEgFBZ90M5sF/Bn3KVGX0pDM6AhcRRiCTgf+AfzDna21uk7M\n", "LH6duxI291P3R0REREQakoJPupl9BXgX7ldFXUo6mGHAaOBzwCcI32v6O/CgO4dqfJ2YtQfuAS6O\n", "b/oKcLu6PyIiIiLSEBR80s2sG7AW6Ir7kajLSSczmgMfIOwCjQH+DNzqzhs1vkbM3gU8E/+4Bxhd\n", "Xfcn3jG60QP/WV3rFhEREZHcp6lu6ea+HVgDnB91KenmzmF37nfnEuAcoBPwghm3mTG4RtcI/Fmg\n", "GeE6SG2BzRazS6o5pSXwU4vZMYtZx3r+FkREREREqqXgU70pUL/FQLONO+vd+SowGHgVeM6MO8zo\n", "e8pzAz/qgV8NvCe+6TGL2W0Ws1R/zlrF/1kAvGkxe0+KY0REREREGoSCT/WmApdjTW+9GnfedCdG\n", "ZQBaEl8TqMMpzw38GaAj8BLhKO3dKdb8aV3lc6nF7I8Ws6IGKF9EREREJImCT3XctxD+pX9CxJVE\n", "xp097vwYKAHKgbVmfMms+j87HvhOYChwE+H0uGMWsz4Jh7RKcdrXgV0Ws3YNUryIiIiISJyCz6nN\n", "ASZHXUTU4h2gawnXA/os8KwZA6o9J/AyDzwGvD++aYvFbGT811U7PhVaEYafcQ1QtoiIiIgIoOBT\n", "E8/ThDs+VbmzAngXcD8w34zPnfKcwB8GRsU/LreYjSB1xyfRIovZz+tVrIiIiIhInMZZn4pZf+Bp\n", "3HtFXUqmMWMY8B9gFvBtd8qqPT5mPYFX4h+/BdxSw1tpYVQRERGRJkrr+DQWszzCdWn64L476nIy\n", "jRltgX8Tdg+vcOftao+PWQmwrg63+ixwpwcR/oEVERERkUandXwai3s5sAEYGHUpmcidPcBlwDZg\n", "hhktqz0+8BeA99XhVv8AZmvqm4iIiIjUhYJPzbwEDIq6iEwVf8Tti4SPsT1oRrXjvz3wR4EZdbjV\n", "ZOCIxWxYHc4VERERkSZMwadm1PE5BXeOA18A8oFf1OCUK4C/1/F2qy1mf7CYFdbxfBERERFpYvSO\n", "T02YfQ44F/fPRF1KpjOjPbAY+J47/znl8TG7gHA4Ql2d4YGvrsf5IiIiIpLB9I5P4wofdTP7XjwE\n", "yUm4swv4KPB/p1rnB8ADfxJoDiyr4y1XWcxuVfdHRERERKqjjk9NmHUCdhC+w9IMuBj35dEWldnM\n", "+AbhJLbJ7uyv0Tkxew9QWo/bDokPTxARERGRHKGOT2NyfxM4HzgH+B1wXbQFZYX/BeYCq8y4woxT\n", "/mH1wJ8GWgA/quM911nMfm8xa17H80VEREQkR6njU1tmbYGtQH/cd0ZdTqYz40Lgl4Qh++fAVHeO\n", "nfK8mHUAfkPYNaqLC+OP0YmIiIhIFsvoBUzNbDzhT/wLgTLgGndflOK47As+AGb3A0/i/teoS8kG\n", "8W7P+wk7ZYOAvwF/deeVU54bs47Ao8CZdbj1RmCSB76jDueKiIiISAbI9OBTCtzs7o+b2XuB77n7\n", "uSmOy9bg80Hg/5Hi9yTVM2MY8GXgKmApcDfwoDv7qj0vZt2A6cC4Otz258APPYiwvSkiIiIidZLp\n", "7/hsB9rEf90W2Jam+0TlcWAMZh2iLiTbuLPGnWuBnsBthOv5vGLGfWZcbkaLlOcFvt0DPxPoD8ys\n", "5W1vBMotZu+rT+0iIiIikr3S1fHpAzwHOGG4mujuJzzWlLUdHwCzB4FpuN8ZdSnZzowOwJXAx4HR\n", "hOv6TAMecWd3ynNi1h74PvDdOtzyLGCROkAiIiIimS/yR93MbBbQNcWuHwDXAre6+1QzuxK42t0v\n", "THGNbA4+/wV8APcPR11KLjGjE3AZ8EHgXGABMIOwy/OSO0l/YC1mBcDngNq+b3UMGOeBr6x30SIi\n", "IiKSNpEHn2ovarbP3U+P/9qAPe7eJsVxDsQSNpW6e2mDF5QOZh0JX57vgvvhqMvJRWa0Bi4GLgUu\n", "AY4SBqCZwOyq6wNZzIYAvyIMTjW1C3iPB766QYoWERERkXoxs8nA5IRNQSYHn6XAt9z9aTM7H/iF\n", "u58wlSurOz4AZs8Av8D90ahLyXXxyXDDCAPQJYSPqy0BngTmAIvcOQpgMcsn7Bj9pxa32EUYsBZ5\n", "4OUNWLqIiIiI1EOmd3zGAbcCzYBDhOOsl6U4LtuDz3XAYNy/HHUpTY0ZrQh/EnA+4SNxA4B5hCFo\n", "DrDEnbL4u0CfBv6nFpf/FHCvApCIiIhI9DI6+NT45tkffAYBzwJDcd8VdTlNmRntgXcThqBzgYoB\n", "G3OAUmA5N1lH4L3AHTW87PeBf3rgrzd4wSIiIiJSIwo+mcLsl4Tr0lyrCW+ZIz4koSIITQZ6EQ5K\n", "eBZ4jguuX8U5vzoX+DEw/BSXWwd8DXjeAz+atqJFRERE5AQKPpnEbCjwDDAQ9z1RlyMnio/MngSc\n", "A7wLGAmsBp6l2Z55fPxDu+g35zLg26e41F+Bmzzw7WktWEREREQABZ/ME67rMx33f0RdipxafKHU\n", "8VQGoYnAa1D+HJ3WLuXyL0KPBVdinFvNZb4EPAps15pAIiIiIumh4JNpwnV93of7R6MuRWrPjHzg\n", "DMIQVBGGAJ6j9zNrueCGInrN/SjGgJNc4nrgTr0PJCIiItKwFHwyjdlAYDbuvaMuReovPj67H2EA\n", "mhT/6kf+kSX0WLCG8bceZMiD55JfNibF6b8E7gPW6J0gERERkfpR8Mk04UKtbwIjcd8WdTnS8Mxo\n", "C0ygMgiNh/JtdFq3jLN/dZShU0ZS9PaoKqctA/4ATPNA73+JiIiI1JaCTyYyexi4A/cHoy5F0s+M\n", "AsLH4yqC0NnY8da0f2kZY/62i9F/H0zLnVWD0D/jXws98LcbuWQRERGRrKPgk4nMfgS0wv37UZci\n", "0TCjB+GghLMJw9BwTnvtRUbeuZ0xt7en3caxGIXxw1cCM4DpwCINSBARERE5kYJPJjJ7H+F6PhdH\n", "XYpkhvj0uDOp7ApNovDAQUbcs5kRd0HX5R1odmBY/PBZhIutlhJ2hMqiqFlEREQkkyj4ZCKz7sBy\n", "oAtRfmMlY8WHJgwm8fG4vGO96Dl/LWP+tp9+T7Xi9G2DMD+NcLHVpwnXiFqsR+NERESkKVLwyUTh\n", "gIPXgbG4vxp1OZIdzGhP5dCEs6F8HJ3WbmfY/dspngGd1vYg/2h3jOWEYehZYK4HvivKukVEREQa\n", "g4JPpjKbCdyK+4yoS5HsZOE7QCOofE9oEi13tKT44Q0MfeAwPee3p/me/hibgeeA5+NfW/SekIiI\n", "iOQaBZ9MZXYzcAj3n0RdiuQOM3qR+HhcwcEh9H5uM0On7KL/rGa03TqQvPLDhEFoHuF7Qqs88OPR\n", "VS0iIiJSfwo+mcrsSuAq3D8YdSmSu8xoBYwjnCA3Ccon0WndEUqmvsKgx8rotrQnBYc7YiwG5gCL\n", "CB+P01pCIiIiklUUfDKVWTdgLdAN98NRlyNNQ3xowiDCjlAYhprt6cegxzYx7P4D9JzfitZvDMB8\n", "I7CQcGjCPGCTHo8TERGRTKbgk8nMpgJFwAPAf3A/EHFF0gSZ0RY4i4owlH/4LLov2c2Qqa8z6NFC\n", "2m/oQd6xfIznqXxXaKkHfiTKukVEREQSKfhkMrM2wMeBy4AS4JO4L4q2KGnqzMgHhpHYFWqztTOD\n", "Z2xmyNQjdF/SgWZ7u2GsBOZWfHng2yMsW0RERJo4BZ9sEb7zcyvwE8Jpb3qsSDKGGZ155z0hJlK0\n", "fwx9nn2dkqk76fdUEW239sPKd2HMpXJ63BoNTRAREZHGouCTTcwGAFOAx3G/PupyRE7GjCJgFBUT\n", "5Oz4JDqtaUHx9JcZ/EgZXVZ2ofBgG4z5VHaFFnjg+6KsW0RERHKXgk+2MesALAC+pTV+JJtUGaU9\n", "iZY7hjLw8Vcpnr6P3s+1ovUbfeJDE+YmfG3U0AQRERFpCAo+2cjsvcAtwHDcy6IuR6QuzGhJOEo7\n", "DEL5RybRffExih/azqCZ0OHFHuQftfjjcRVfSzzwQ1HWLSIiItlJwScbmRnwDOG7Pv+OuhyRhpAw\n", "SrviXaFJtNnan0GPbaF4+kF6LGhDi109MFYRhqB5hEMTtkVYtoiIiGSJyIOPhS/t30Q4texMd1+a\n", "sO8G4PPAceBad3/iJNdoWsEHwOxy4IfAeA06kFxlRhsqR2lPovDAWfR+fi8l096k31MFtN/UGzu+\n", "r0pXaKUHfizKukVERCTzZELwKQHKgb8A11UEHzMbCtwDnAn0AJ4EBrt7eYprNMXgkwe8CHwO9+ei\n", "LkekMSSM0o53hcon0XF9FwbP2Mrgh4/SbVl7ivZ3xFhMvCMEzPPAd0ZZt4iIiEQv8uCTUMgckoPP\n", "DUC5u/8y/nkmcJO7z09xbtMLPgBm1wAX4n5F1KWIRCVhlHYYhprvGkO/OTsofmgnfZ9uwemv9sHK\n", "tyV0heYB6zw48YcoIiIikrsyOfj8EZjv7nfHP98OPObuU1Kc21SDTytgCzAJ95cirkYkI1QZpT0R\n", "KzubritpJdHiAAAgAElEQVRaUjz9ZQY9dpzOq7tQcKhVlVHaCz3w/VHWLSIiIunVKMHHzGYBXVPs\n", "utHjI5lrGHwedfcH0/WbyEpm3wMuAi4ixWOAInLCKO2JtHp9GAOe2EbJQ3vp/XxrWu3og/l6kkdp\n", "b9YobRERkdyRyR2f7wO4+y/in2cCgbsvSHGuA7GETaXuXlqvgrKFWQHhhLcZuN8cdTki2aDKKO2J\n", "5B+eRI9Fxyl+6DUGPm50WN+D/KPl2DvvCVWM0j4cZd0iIiJSc2Y2GZicsCnIpODzHXdfEv9cMdxg\n", "PJXDDQZ6ihs16Y4PgFkPYBHwedxnRl2OSLaJj9IeyDtdofKJtN06gIEzt4ajtBe2ocWu7hgrSR6l\n", "/VqUdYuIiEjNRd7xMbMrgD8AHYG9wDJ3f298342E46zLgP/n7o+f5BpNO/gAmL0L+A/h+z4boy5H\n", "JNulHKXd57l9FE/bQf/ZBbTb1Ac7vqfK0ASN0hYREclQkQefhqDgE2f2NeArwCeAc4BLgM3ATbjv\n", "jbI0kWwXH6U9lMqu0CQ6vtCFwY9sZfAjR+i2tEOKUdrzPfC3oqxbREREQgo+ucTMgJ8CVxH+xWsa\n", "cCHhWkjn4JpaJdKQ4qO0J1ARht4ZpT19F31Lm8dHaW+Pd4UqwtBaD/x4lHWLiIg0RQo+uS4MQ38D\n", "ynH/YtTliOSyhFHa4ZpCVnY2XVa2oHjGKwx69DidV3em8ODpGAuoDEILPPA9UdYtIiLSFCj4NAVm\n", "pwEvAB/EfVHU5Yg0JQmjtMMw1HLHMAbMepXi6Xvp82wrWr/eB/MtVAahecCLGqUtIiLSsBR8mgqz\n", "q4GP4H5R1KWINGUJo7TDIJR3dBLdl5RRPP01Bs6ETuu6kn+keXyB1YowtNADPxBl3SIiItlOwaep\n", "MCsiHHTwPtyXR12OiISqjNIOw9Bp2wYwcOYWSh46QM/5p9HyzT4Y60nuCm1SV0hERKTmFHyaknBR\n", "2CG4/1fUpYjIyVUZpT2R/MMT6Dl/LyXTXmfArDw6vNSLvGMkLLA6D1jsgR+Ksm4REZFMpuDTlJi1\n", "AzYBQ3HfHnU5IlIzKUZpT6TNy10Y/MgWiqcfoseitjTf3QtjDckLrL4SZd0iIiKZRMGnqTH7M/Aa\n", "7j+JuhQRqTszOlHxaBxMovDtMfR+7nWGTH2Lfk8V0m5zX+z4oSpdoWUe+JEo6xYREYmKgk9TY3YG\n", "MBPoi2uFeZFcER+lPZLErlD7Da0onr6F4oePxhdY7YGxnMogNM8DdX9FRKRpUPBpisyeAf6I+wNR\n", "lyIi6RMfpV3ZFSraN4x+pS8z5MHd4QKrr/Qjr3wPJC2wutIDL4uwbBERkbRQ8GmKzD4GfBX3yVGX\n", "IiKNJz5KeywVQciOT6LT2mOUPPQqgx4po8vKLhQe7IyxmMogNN8DfyvKukVERBqCgk9TFI623gJc\n", "jPuqiKsRkYgkjNKu7Ao139WfAU9sYsi0ffR5pjWtX++P+eskd4XWeuDHo6tcRESk9hR8miqzm4Au\n", "uH816lJEJHMkjNIOw5CVTaDbst2UTHuNQY8andZ1I/9IO4wFVAahBR74nijrFhERORUFn6bKrDuw\n", "hnDIwd6oyxGRzFRllHYYhlq90YWBj21kyLQD9JrbhpZv9sfYSvICqy9qgVUREckkCj5Nmdl9wCLc\n", "fxN1KSKSPaqM0p5I3tGx9Fi4nSFTX2fgzAI6vNSTvGMtMeZTGYYWeuAHoqxbRESaNgWfpsxsCPAs\n", "cBbuG6MuR0SyU5VR2mEgOm1bKwbP2MiQqYfosbA9zff0x1hPcldok7pCIiLSWBR8mjqzq4EfAz8D\n", "ngPW4RplKyL1U2WU9kTyDw+n9/NbGDrlLfrPKqLd5r7kHc8jOQgt9sAPRVi2iIjkMAUfAbPJwOeB\n", "8UAv4C/ADbhWeBeRhmFGC2AclQusTqLtlmMUT99KybSjdF/akaL9fTHWkDBBzgN/Jcq6RUQkdyj4\n", "SDKzzsDfgGPAR3Avj7giEclB8VHaA0jsChW+PZC+T29iyJTd9JvdnDYvDyCv/DDJXaFlHuiHMiIi\n", "UnsKPnKicJ2fp4CHNPhARBqLGacRdp7j7wqVT6DD+gMMmfYqg2eU0XV5FwoP9sRYTmUQmueBb4+y\n", "bhERyQ4KPpKaWV9gMTAJ9/XRFiMiTZEZeUAxiV2hon296f/kBoY+uI8+pS05/bWBmO8heYHVlR7o\n", "XUUREUmm4CMnZ/Yt4DLgAqL8FywiEmdGO5IWWD0+nk5rdjHkwW0MfsTpvLobBYe7YCymMgjN98Df\n", "irJuERGJXkYEHzO7ErgJKAHGu/uS+PYLgZuBIuAo8F13n5PifAWfdDArABYBv8P9rqjLERGpKr7A\n", "6jASu0LNd3Vh4MwNDJm6nz7Pnk6rNwZgvEFyV2itB348uspFRKSxZUrwKQHKCaeJXefuS+PbRwGv\n", "u/vrZjYMeNzde6Y4X8EnXczOBGYA78Z9PWa9gA8AlwJHgLuAaeoIiUimiC+wOoF3ukJlY+m29HWG\n", "TH2dQY8aHV/oQf7R9hgLqAxCCzzwPVHWLSIi6ZURwSehmDkkBJ8q+wx4C+jq7seq7FPwSSezzwO/\n", "Ifz+twceAR4GmgPXE3aFvojrp6ciknnMKARGEAahMAy1eqMtgx7dQMm0g/Sa24aWbw3A2EryBLkX\n", "tcCqiEjuyKbg8xHgane/KMU+BZ90M+sBtAVeTFrg1KwlYQhaifs3I6pORKRWzOhGYhDKOzqKngtf\n", "oeTBHQycWUCHDb3IO9YSYz6VYWihB34gyrpFRKTuGi34mNksoGuKXTe6+4z4MSmDT/wxt4eAC919\n", "c4prK/hEyawtsAK4GvfHoy5HRKS2zGgGjOKdUdpM4rRXm1H88CZKph6mx8L2NN/TH2M9yV2hTeoK\n", "iYhkh4zv+JhZT8I1ZT7r7vNOcp4DsYRNpe5eWu+CpObMLgH+AAyjyqOIIiLZyIxeVAahieQfHk7v\n", "57cwdMpO+j9ZRLtNfbHjhiUFocUe+KEo6xYRkZCZTQYmJ2wKMi34fCdhqltb4GnCIqdVc546PpnA\n", "7Engftz/GnUpIiINzYwWwFgqF1idRNutTvH0zZRMO0a3pR1otq8vxlrii6sC84Et6gqJiEQvIzo+\n", "ZnYFYbegI7AXWObu7zWzHwLfB15KOPxC9+T1GBR8MkQ4AW4qMAD3I1GXIyKSTmYY0I/ErlDBwWL6\n", "Pr2JIQ/uov9TzWiztR955eXwzrtC6gqJiEQkI4JPvW+u4JM5zB4lHG+tro+INDlmtAbOpLIrNJF2\n", "mw5RMm0rxdOP0W1ZJ4oOVO0KzQO2qiskIpJeCj7SsMzOAf4BlCRNfxMRaYLiXaHBJC6wWnCwH31L\n", "X2LolN30m92cNi8PiHeFEoPQEnWFREQaloKPNDyzZ4H/w/3eqEsREck0ZrQBzqKyK3QW7TfupmTa\n", "K5Q8VEbX5Z0pfLsfxhqSH5FTV0hEpB4UfKThmV0K3AyMIso/GCIiWcCMfGAIiV2hwre70W/2Swyd\n", "sod+s1ty+qsDMFdXSESkHhR8pOGZGbAM+AHuj0RdjohItjGjAzCByq7QODq89AZDHnyV4unldFnZ\n", "mcKD/eNdocQw9LK6QiIiqSn4SHqYfQy4FjhHXR8RkfoxowA4g+SuUDv6PbWeYQ/spe+cVpz+2iDM\n", "j5MchJaqKyQiElLwkfQwywdeAL6G+xNRlyMikmvM6ELFGG2YBOWj6bD+FYZOeZXi6dBlZVcKDqsr\n", "JCISp+Aj6WN2EXAn8FHcn4m6HBGRXGZGETCK5K5QCwY88SLDHthP39LWtN4+GKNqV2iJB344uspF\n", "RBqHgo+kl9n7gT8C5cBjwD24Px9tUSIiTYMZPUnuCp1Bxxc2MnTKa2FXaFV38o8MwFhNchh6RV0h\n", "Eck1Cj6SfuGwg2HAZcCXgZXANbhvi7QuEZEmxozmwFgSw1DhARj4xHqG3befvk+fTqs3ijHKOPFd\n", "IXWFRCSrKfhI4zJrDlwPXANci/t9EVckItJkxRdY7cM70+OYBOUldHrhRYbdv53i6Xl0WtODgqMD\n", "gFUkryukrpCIZBUFH4mG2TjgX8BS4DrgTWAAMDz+1RqYoXeDREQalxmtgDNJ7AoV7T/IwJkvMfy+\n", "t+nzTBtavjkE4xjqColIFlHwkeiYtQR+DvwXcDqwGVgNrAEOAZ8FFgJfxP1gRFWKiDRp8a7QQJK7\n", "Qv3ptG4tw+57g5KH8ui0rif5xwYSdoXeCUMe+CvRVS4ikkzBR6IXvgPECev9mLUA/gG0Aj6Ie1lj\n", "lyYiIicy43RgPJVhaAJF+3cx6NENDP/3Qfo825YWO4dhHCW5K7RMXSERiYqCj2Q2s0LCaXDP4X5T\n", "xNWIiEgKZuQBJVQGoYlQ3pPOq1cz/L4dFD+UT8cXe5Nfpq6QiERGwUcyn1k3YAVwAe4roy5HRERO\n", "zYz2wFlUhqHxFO1/jcEzNnHGvw/R+7l2NN89PEVXaKkHfiS6ykUkVyn4SHYw+xpwBXDhCY/EiYhI\n", "xjMjn3B4TeUCq5R3pMuqlQy/9y1KphfQYX0f8o4PIlz2ILEr9Gp0lYtIrlDwkexgVgAsB27AfUbU\n", "5YiISP2Z0RmYQGVXaAxF+7ZQPH0zZ9x7hN7Pt6fZ3hEYhwlDUMU4bXWFRKTWFHwke5hdDsSAMbiX\n", "R12OiIg0LDMKgZEkd4Va03XFCs64ZyfF04tov6EfeeUDUVdIRGpJwUeyRzj9bRFwM+5Toi5HRETS\n", "z4zuJK4pBCNptnc9xQ9tiXeFOlK0f2RCVyhxgpy6QiLyDgUfyS5mlwK/Akao6yMi0vSY0QwYQ3JX\n", "KJ+uy1cw8l+7KJ7ejHab+mM+iHAwTmJXaFt0lYtI1BR8JLuEXZ95wP/g/u+oyxERkWjFF1jtTXJX\n", "aCjN9qxlyNStnHHvMXrO60TRgVEYB6l8T0hdIZEmRsFHso/ZRcAfgGG4H4+6HBERySxmtATGktwV\n", "KqPb0lWMvGsXgx9uTrvNAzAfiLpCIk1G5MHHzK4EbiJc+OxMd19aZX9vYC0QuPtvT3INBZ+mJOz6\n", "PAP8Bfd/RV2OiIhktnhXqB+VXaGJQAnNd6+mZNpWzrinjF7zOlH09ihIeldoPpogJ5IzMiH4lADl\n", "wF+A61IEn/8Ax4GFCj7yDrPJwD+Bsbi/FXE1IiKSZcxoBYwjuSt0mG7LVjHyzl0MfrgZ7TYPxHww\n", "sIrkMPSKB1pTTiTbRB58EgqZQ5XgY2YfJPyP0dvAAQUfSWL2S+A84PPA6lMubGpmWvxURERSiXeF\n", "BpDcFRpEs72rKJm6lRF3V3SFRgPHSF5XaIkHfjiq2kWkZjI2+JhZa+AJ4ALguyj4SFVmecC1wLeB\n", "LsAe4E3gjfjXLqA10BnoA/Ql7C6uBW4H7tA7QiIicjJmtAbGUxmEJkD523RdsYKR/9xN8fTmtNsy\n", "EPMSYA3JXaGt6gqJZJZGCT5mNgvommLXje4+I35M1eDzG2CBuz9gZjcB+xV85KTMmgNtgU6Ef9Y6\n", "Ax2A/YRhaAuwFcgDzgR+DJQBH8Z9dwQVi4hIlol3hQaR3BUaQNH+FQyZupURdx2j19xOFB0cAzjJ\n", "XaHFHvihqGoXkczu+DwD9Irvbkv4k/ofufv/pTjXgVjCplJ3L61XQZLbzPKB/yF8vvt83A9GXJGI\n", "iGQhM07nxK7QXrqsWsGof+ym5KHmtN0yEPOhwDqSu0Kb1RUSSR8L3wmfnLApyKTg8x13X5JiX0DY\n", "8fndSc5Vx0dqL5wO92/gTdy/HnU5IiKS/czIAwaT3BXqS+GB5QyZtoWRd5bR6/mO8a5QAcnrCi32\n", "wN+OqnaRXBd5x8fMriBck6UjsBdY5u7vrXKMgo+kh1lbwjUcrsb98ajLERGR3GNGG+AsKoPQWVC+\n", "i85rlzPqjt0MmdactlsGYD4CeJEwDFUEog3qCok0jMiDT0NQ8JF6MbsU+B1wBu7Hoi5HRERyW7wr\n", "VEJlEJoE9KLg4BJKHtrCqH+U0efZDhQeGgu0JDkILfLA90VVu0g2U/ARCR95mwU8SIp3yERERNLN\n", "jHac0BViBx3XLWf0HbsY8mAz2m0aiDEa2EhlEJoPvOiBl0dVu0i2UPARATAbDTwKDNCgAxERiZoZ\n", "+cAQkhZYpTsFhxYz+OHNjL7jGH2e6UDRwbFAO2ABlUFogQe+J6raRTKVgo9IBbMpwFxOMjZdREQk\n", "Sma0ByZQ2RU6E9hOu43LGHP7LobdX9EVGgu8QvI47XUeaO06adoUfEQqmI0gXDR3AK6pOiIiktni\n", "XaFhJHeFupB3dBGDH97EmL8dpd+cjhQeGkO40PdCKoPQAg98Z1S1i0RBwUckkdkDwALcfxN1KSIi\n", "IrVlRkeSu0LjgFdps3UpY27byRn3VnSFxgPbSX5XaLUHXhZV7SLppuAjkshsOPAk6vqIiEgOMKMA\n", "GE5lR2gi0JG8YwsYOHMj4/5ylH6zO8YnyPUEFpMQhjzwHVHVLtLQFHxEqjK7D1iC+69Ost+AkcCF\n", "hM9XdwSMcEXuB4GniPJ/ECIiItUwozPJXaGxwFZO27aEsX/dyYi7i2i3cRDGWcBOKjtC84EVHmjp\n", "B8lOCj4iVZkNBeYAA3Hfn7C9PfBF4DNAa2AG4RSd7YTBZ2R8/3rCBVHfaNzCRUREas+MQmAElUFo\n", "ItAWO76AAU9s4Mw/HaH/rI4UHh4L9AOWEYahiq7Q9qhqF6kNBR+RVMz+AnQFrgLaAl8DriYMO38D\n", "nsdTrJlgVgT8BPgIcB7uLzdWySIiIg3FjK4kd4XGAJtovX0JY257k1F3FtFu4+B4V+gAye8KLfPA\n", "j0RVu8jJKPiIpBIGmNuAK4GjwF3Ab3HfUsPzvwv8FzAxqWskIiKShcwoInyyIbErdBqUz6ff7PWc\n", "9b9HGPB4h3hXqBhYRfIjci97oMfAJVoKPiLVMTsNOITXcspN+B7QHfFzr0lHaSIiIlEyoxuVIWgS\n", "MAp4iRY7FzH2rzsYfUch7TcMxpgAlFMZguYDSzzQECFpXAo+Iuli1hZYDVyF+9NRlyMiIpJO8a7Q\n", "aJK7Qi2gfD695q1j4i2HGfRIRVfoDGAt8DyVnSF1hSStFHxE0snso8B3gfGa9CYiIk2NGT1I7gqN\n", "AF6kaN9Cxv31Dcb9qTntNhVjTKSyK7Qg/s9F6gpJQ1LwEUknszxgCfAT3KdGXY6IiEiUzGhGOCgh\n", "sStUGHaF5r7ApN8dZtCjHSg4MpYwJG2ksiu0BHjBAz8eUfmS5RR8RNLN7DLgp8BodX1ERESSmdGL\n", "5AVWhwPrKDywgNF/386E3zeLrys0FugCPEdlGFrkgYYISc0o+IikWzjoYDXwDdxnR12OiIhIJjOj\n", "BSd2hfKAebR/aRnn31hG8YxOFBw5k/Cdoo3AQsJH5BYAa9QVklQUfEQag9mXgPfj/oEaHl8A9CUc\n", "pb0D98PpK05ERCRzmWFAb5K7QkOBNRS+vYDRd2znrD/k037DIIzxQHdgMTA3/s+FHvhrEZUvGUTB\n", "R6QxmLUAtgJn4/5SNcf1Ar4MfIEw9OQD7Qlb+t/GfVX6ixUREclsZrQExpLcFSoH5tFu4zLO/fFh\n", "hk5pS8GRMcB4wv9PXQzMIXxXaKkHfiCa6iUqCj4ijcXsp0Bb3L+eYp8B3wR+ANwD/Bn3tfF9LYFP\n", "A/9NuKjqj3G18EVERCrEu0L9SA5CJcAqKJ/H4Ec2cN4Py+m6ciRhECoG1hB2hZYA8zzwDdFUL41F\n", "wUeksZh1J/yPbF/c9yZszwN+A5wPfAj3jSc5vytwL7AJ+KIGJYiIiJycGa2AcSSP0z4CzKPZngVc\n", "eP3bjLyzDYWHRwHvBvYRDkxYGv9arnHauUXBR6Qxmd0DbMb9B/HPBcDtQH/gStzfOMX5rQh/OnUr\n", "7n9Nb7EiIiK5I94VGkByV2gwsAIrm8eZf3qdkXe2ovPqXhQePgMYRviY+lLgaeAxYJsWWc1eCj4i\n", "jSns2qwhbLO/CtwNnEbY6anZT5XMSoBngcm4r0lTpSIiIjnPjNbAmVQGoWGE79Yuo+DQGob/ezsT\n", "fn+cLivGYEwGHFgHzAJWAPM98LeiqV5qK/LgY2ZXAjcRPod5prsvTdg3AvgL4V8My+P7j6S4hoKP\n", "ZA+zrxK+r/Mm4X88P0GKP9enuMYXgG8A43Ava/AaRUREmigz2hM+IjcSOJswGB2H8tn0fn497//y\n", "JjqtO4fw0bli4GXCIDSL8Ieay9UVykyZEHxKCEPNX4DrKoKPhY8ALQE+5e6rzKwdsNfdy1NcQ8FH\n", "sovZAGACcF+dgks4DGEBcBPujzZwdSIiIhIXf0RuMHAeMBm4nHBK3BqsbCWj79jO+T/Io+XOszE/\n", "A+gAzCZ8NG4Z8AqwWWsLRS/y4JNQyBySg8+lwCfc/dM1OFfBR5oes08Tdn0masqbiIhI4zAjjzDc\n", "nAFcRPjU0nnAbihfQdst87n42wWUPNQD+//t3X28XdOdx/HPN48SIRGNJCQhTVFUkUSUablj0jah\n", "g84wlLbKa8ZDO4NWq6VevVUd1abVDkanFONhPBVVebXUQymqBA3iIUiTlBCpCkojEclv/ljrusfN\n", "ucm95+x7970n3/frdV5n77Ufzjq/e+4+57f32muxI7Al0J/WZGgZ8FA0x/xy3sH6qycnPseT+mff\n", "DBgBXBURM9rZ1omPrX9Sb3B3AecTcWnZ1TEzM1ufSexGGmj1AGAXUsLzNDCP9908l6ZvBqP/sD19\n", "VvZB7Av8AriHNFbfX6I5/lRW3dcX3ZL4SLoVGFVl0SkRMTOv0zbx+TLweVIbyzeB24FTI+I3XfUm\n", "zHqddGX0dNK9Pms/+5Cai04ndZs9EFgJzAJuJ+LpLq6pmZnZeiM3j9uYdFVoW1J32XsDY4Bb2GTe\n", "4xx4aDDykfH0XTkZxcbAU8AzpC61bwKWRnO8Ws47aEw9+YrPwcD0iPhcnj8VWB4R36+ybQCnVRTd\n", "GRF31lUhs94gXfV5CjiciHvXst4WwKOktsY3AUuA95Bu3PxH4Bgiru3y+pqZma2ncjK0OTAV+Hdg\n", "KKlV0zA2eOU+dr54LnuecS+Dlh4AMRmxGfAaaQy/84E+wOxoXvN+d6tOUhPpvqwWzT0p8flyRDyU\n", "54eRrvJ8mHRm+ibgrIi4qcq2vuJj66/ULHR3Ig5pZ/l44GrgRiK+XWX5JGAmcAYR53ZhTc3MzKyC\n", "xD8Az5MSodHAfkA/tOoVPnDlaUw//kkGL50GfJp0X1Ef0phCV+XtfgX0ieZYWcob6GVKv+Ij6ZPA\n", "2aSzz68BsyNiel52GHAyqc/0X0bE19rZhxMfW39JQ4EFwI5EPN9m2XBS2+G7gWPb7QRB2hJ4APgs\n", "ETd3aX3NzMysXRLjgCPzYyxp4PIX6POWGH/nxky8YC7bX7cxip2AnfNmlwDXk8Yh+q6vClVXeuJT\n", "BCc+tt6TzgNeWOOKjnQG6bL6ER24B2gqcAswlSr30pmZmVn3kRhFuk9oe1KvcJDGFPpKnr6Z8bcN\n", "4tP7HEXflV8BDiZ1prA5sJzWq0IvA1d7bCEnPmaNQfoEcDwRH60ou5vUVHQiEbM7uJ+jgMOI2Ksr\n", "qmlmZma1y/cJ7QJMBN5HSoJWw+qg/zJYNeAuhi0cx9997xtMuvAYUhK0gtTldj/g9bz9JODGaI7l\n", "pbyRkjjxMWsE0qakAdL2JOJBpIGksz1HEXFBJ/bTD3gR+F8ivtwldTUzM7NC5DGF+uXZDci3jQDb\n", "AStgNSieY9w93+CIpuuBs4AvkHp3/RvwP8C+pPuGvgRMiOaY081vo9s48TFrFNJbpEvhA4ETgL2I\n", "2LeG/byP1M31ZkS8XWgdzczMrMtI7wxXMZjWhOg7wDFo1Wyi72I2WnQ3y0bsxYgnNmTaCcPY8u5r\n", "UHyG9BtiPKlDsQAGAa8An43m+Fv3v5viOfExaxTSKFLvLgNJ7YHfS8SCGvf1IHAOEZd0cP3hpHbI\n", "I0idKfQHdibikZpe38zMzAohMYDU1G0LUvO4s0mtRMbmVX7HDld9m93OGcHqfot5Y9QObPnbTRiy\n", "5ATEamCTvN61QF/guGiORd38NgrhxMeskUh7AP9JGtfn2Tr28yngCmAAsY4uMqVtSGMJATwIDAfe\n", "m+cnEDG/5nqYmZlZl5A4DXgM+CdSQjQ5L3oDGAKcyhfH/Zkhi79H37eXEoxGDAJg2fAmBi9dFc1x\n", "Txl1r5UTHzOrTnocOJ2Iq9pZvhGwO3Au8AJwCREX52UfAS4G7gfOA+5dZ69yZmZmVhqJY0mdIp0O\n", "3EU6mSlgGnAQfVaeyd6nTmDVQNjr9LTRkh2/Huc9eobE5hG8UFLVO8yJj5lVJ30T+BwwvmrSIp1I\n", "ukHyFtIYQdFm+SjSTZN7AJ8C7lrn1SMzMzMrncSWpO/wN4Dfk5KflaT7hoIDDt+GxZPGM+Y+uO6K\n", "TUkdI+0KzAOWR1B93MCSOfExs+qkDYA3SeMDbVFl+YXALCJ+so79nEJqfgfQl/CgamZmZr2dxEXA\n", "EW2KVwIzI/jn3PX2amCnCB7t9gpW4cTHzNonpX/slv8vSaSD3C+B+cA+RPx2Hft4P/BknjsL+CYR\n", "r3dNhc3MzKy7SLQkANcA/0LqRnsW8BNgI+Bo4NdAZRfZQWtnTO8HlkRwlcSHSYOt7gLcEMGy4uvr\n", "xMfM2iMdSDqY9SUikIYCr5IGTDsc2JXowOBn0seA/YHPA/9GxE+7rtJmZmbWHST2AEaTusDeI4Lb\n", "JA4l9SAH6TfDsDabfTQ/3hGBchL1MrApcHQE5xdf32Jyhn7rXsXMep2Ia5GWApsBS4CReckM4OgO\n", "JT1pP7cgTcxz7+/w60ubAQeQDqpjgFWkUae/Qeo6u4mISzu8PzMzMytMBPdWzN6Wy65Y2zYSC2iT\n", "+EjvJDmb5uejJR4FJgLP57LNI/hx3ZUugK/4mDUq6T7gRCJ+h7QnaXRngGFEvNaJ/QwGTgJ2J+Lj\n", "Hdym5f6g5cBxwDGkg2ATcDCpUwX/75uZmfUSEoOBE4FvkTpQOIbU/K3t9/krtI4hBKQrQ/W9djE5\n", "Q9ZirqwAAAnRSURBVJ96d2BmPdY8Uv/+AKPy8+udSnoAIpYBl9KZKz6wQX5+gYgLgD/m+fG0HCCl\n", "vp2qh5mZmZUm37szI89en58fyM+3Vaz6rqQHQFqj2Vwp3NTNrHE9CfwIqRn4TS67ucZ9/QkYhnQH\n", "KYk6HDgIeJCIqwGQdgJ+Tjqh0nLJe15+fjivfz6p5xiAhUiPETG9xjqZmZlZN4pgudLpy2dy0eXA\n", "FGAmMHUtmz4uUW1ojJXAoPy8FfAj4JN52QrgZ8A+9da7hZu6mTUqqT/pJsVzgF+QenR7iYi3a9zf\n", "CNKAp/1InSSkwU4jbsjLDwUOITVtC+CvwAoiliH1AY4CfgwcS+p4YTNSQjTIg6SamZn1DhKDInhT\n", "YhCpSfsGFc8ChpKG1RiYN1nBmh0ltLgB2Am4hHRSFVJTuotJydSGwH+Dvu/ODcysfWnQ0YVIC4AN\n", "iVhc5/5eQnqZ1FFCkK78vFixxkhgPhELq2y7Gqml/AkilgJLkd4CNgY61/zOzMzMShHBm5XPsMZz\n", "te6sX622L4kVefKPFcVPRrBQ4jlgOvBQfTVu5Xt8zBrfi7Te41OvN/LzENZMfNrOV6sHbdYpsm5m\n", "ZmbWO1UmS21/L6ztt0WnOPExa3xFJhctHRJMBMaRusoGaQqwM2s/OC2pqE9l3aYiTUHaoso2IG2Z\n", "7x8CaWxed1OkiUiT26y7LdK2nXpHayMNz683cN0r9xDSe5F2LLsa1g2kHZAmdGL9CUg7VCmfglT+\n", "CYii/39t/SNth7R12dWwujnxMbOa/ZE0sFgRzgfmA7sCvyai5bL2ucAH8rL2vJTr8npF2f3AyXn7\n", "9jo5OBA4LU/vl9edCHyX1t5lWnwe+EJH3kgHfTC/3ho91PRgh5Fiao3vJFrbxHfE4Xmbts4ldTVf\n", "tqL/f23980XgX8uuhHXKDOD7pM6XXgZmA8/mZfcAv6fA5vDu3MDMzMzMzHosj+NjZmZmZmbWQU58\n", "zMzMzMys4dWc+Eg6SNLjklZJmlhRvoGkKyU9KukJSV8rpqpmZmZmZma1qeeKzxzSyKp3tSk/BCAi\n", "PghMAo6WNK6O17FOktRUdh0alWPbdRzbruPYdh3Htms4rl3Hse06jm3PV3PiExFzI+LpKosWAxtK\n", "6ksabfUt0gju1n2ayq5AA2squwINrKnsCjSwprIr0MCayq5Ag2oquwINrKnsCjSwprIrYGtX+D0+\n", "EfFrUqKzGFgIzIiIqqO1mpmZmZmZdYd+a1so6VaqD3x4SkTMbGebTwODgNHAcOBuSbdHxIJ6K2tm\n", "ZmZmZlaLusfxkXQHcGJE/CHPnwfcGxGX5/kLgZsj4mdVti1vECEzMzMzM+sVihjHZ61XfDqhsiJz\n", "gb2ByyVtCHwI+GG1jTx4qZmZmZmZdYd6urP+pKTnSInNLyXdlBf9BBggaQ4wC7goIh6rv6pmZmZm\n", "Zma1qbupm5mZmZmZWU9XeK9uHSFpmqS5kp6R9NUy6tCbSRor6Y48gOxjko7L5cMl3SrpaUm3SBpW\n", "sc3JOd5zJX2svNr3fJL6SpotaWaed1wLIGmYpGslPZkHN97NsS1GjtXjkuZIukLSQMe2NpIukrQk\n", "t1poKet0LCVNyn+PZyT9V3e/j56ondjOyMeERyRdL2loxTLHtgOqxbVi2YmSVksaXlHmuHZQe7GV\n", "9B/5c/uYpO9WlDu2HdTO8WCKpFn5N9gDknatWFZMbCOiWx9AX2AesBXQH3gY2K6769GbH6Se9nbO\n", "00OAp4DtgO8BJ+XyrwJn5untc5z757jPA/qU/T566gP4EvB/wI153nEtJq6XAEfm6X7AUMe2kLhu\n", "BcwHBub5q4HDHdua4/kRYBdgTkVZZ2LZ0pJiFjAlT/8KmFb2eyv70U5sP9ry+QPOdGyLiWsuHwvc\n", "DCwAhjuuhX1m/x64Feif50c4toXF9k7g43l6OnBH0bEt44rPFGBeRCyMiJXAVcD+JdSj14qIFyPi\n", "4Tz9BvAksAWwH+nHJfn5gDy9P3BlRKyMiIWkD8yUbq10LyFpDLAP8FNaO+1wXOuUz+J+JCIuAoiI\n", "tyPiNRzbIvwVWAkMltQPGAy8gGNbk4i4G3ilTXFnYrmbpNHARhExK693acU2661qsY2IWyNidZ69\n", "HxiTpx3bDmrnMwtwFnBSmzLHtRPaie2xwHfyb1gi4qVc7th2QjuxXUw6KQowDHg+TxcW2zISny2A\n", "5yrmF+Uyq4GkrUgZ8/3AyIhYkhctAUbm6c1JcW7hmLfvh8BXgNUVZY5r/cYDL0m6WNIfJF2g1Ouj\n", "Y1uniFgK/AB4lpTwvBoRt+LYFqmzsWxb/jyOcUccSTpjC45tXSTtDyyKiEfbLHJc67c1sKek+yTd\n", "KWlyLnds6/c14AeSngVmACfn8sJiW0bi494UCiJpCHAdcHxEvF65LNI1v7XF2n+HNiR9AvhzRMzm\n", "3V20v8NxrVk/YCJwXkRMBP5GOsC9w7GtjaQJwAmky/+bA0OUBpJ+h2NbnA7E0mog6evAWxFxRdl1\n", "6e0kDQZOAZori0uqTiPqB2wSER8inSi9puT6NJILgeMiYhzwReCiol+gjMTneVK70xZjeXe2Zh0g\n", "qT8p6bksIm7IxUskjcrLRwN/zuVtYz6G1suH1moPYD9JC4Argb0lXYbjWoRFpLOPD+T5a0mJ0IuO\n", "bd0mkwaNfjki3gauB3bHsS1SZ44Bi3L5mDbljnE7JH2O1MT4sIpix7Z2E0gnQh7J32djgIckjcRx\n", "LcIi0nGW/J22WtJ7cGyLMCUifp6nr6W1GXZhsS0j8XkQ2FrSVpIGAAcDN5ZQj15LkkhZ8RMR8aOK\n", "RTeSbmomP99QUX6IpAGSxpMu087C3iUiTomIsRExHjgE+E1EfAbHtW4R8SLwnKRtctFU4HFgJo5t\n", "veYCH5I0KB8bpgJP4NgWqVPHgPx5/6tSz4UCPlOxjVWQNI101nz/iFhescixrVFEzImIkRExPn+f\n", "LQIm5uaajmv9bgD2BsjfaQMi4i84tkWYJ2mvPL038HSeLi623dV7Q+WD1FPDU6Sbk04uow69+QF8\n", "mHQPysPA7PyYBgwHbssflFuAYRXbnJLjPZfcY4Yfa43xXrT26ua4FhPTnYAHgEdIZ8uGOraFxfYk\n", "UiI5h3TzfX/HtuZYXkm6V+ot0v2oR9QSS2BS/nvMA84u+331hEeV2B4JPAP8qeK77DzHtua4rmj5\n", "zLZZPp/cq5vjWn9s8/H1shyrh4Amx7au2FYeayeT7ll/GPg9sEvRsfUApmZmZmZm1vBKGcDUzMzM\n", "zMysOznxMTMzMzOzhufEx8zMzMzMGp4THzMzMzMza3hOfMzMzMzMrOE58TEzMzMzs4bnxMfMzMzM\n", "zBqeEx8zMzMzM2t4/w9C6hHSVJJjrgAAAABJRU5ErkJggg==\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(log10((En_array[0:1800]-En_array[-1])/(En_array[0]-En_array[-1])))\n", "plot(log10((En_array_overrelaxed[0:1800]-En_array[-1])/(En_array[0]-En_array[-1])))\n", "plot(log10((En_array_fista[0:1800]-En_array[-1])/(En_array[0]-En_array[-1])))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", " \n", "__Exercise: try different values of a. You can try a=3,10,30,50,100.__

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can note that the accelerated forward-backward is not monotonic: the cost function E is not decreasing along with the iterations and some oscillations are present." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }