{ "cells": [ { "cell_type": "markdown", "id": "60f07751", "metadata": {}, "source": [ "## Import necessary libraries" ] }, { "cell_type": "code", "execution_count": 1, "id": "00923fd9", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "params = {'legend.fontsize': 24,\n", " 'figure.figsize' : (10, 10),\n", " 'axes.labelsize' : 24,\n", " 'axes.titlesize' : 24,\n", " 'xtick.labelsize' : 22,\n", " 'ytick.labelsize' : 22,\n", " 'pdf.fonttype' : 42}\n", "plt.rcParams.update(params)" ] }, { "cell_type": "markdown", "id": "95fa1221", "metadata": {}, "source": [ "We are minimizing the sum of convex functions $f_i:=\\frac{1}{2}(x-i)^2$ for $i\\in\\{1,\\dots,5\\}$.\n", "Recall that the gradient is $\\nabla f_i(x)=(x-i)$" ] }, { "cell_type": "markdown", "id": "106b9188", "metadata": {}, "source": [ "## Define graph" ] }, { "cell_type": "code", "execution_count": 10, "id": "05959d46", "metadata": {}, "outputs": [], "source": [ "num_iters = 1000\n", "eta = 0.001\n", "\n", "E = np.zeros((5,5))\n", "E[0,1], E[1,0] = 1., 1.\n", "E[1,2], E[2,1] = 1., 1.\n", "E[1,3], E[3,1] = 1., 1.\n", "E[2,3], E[3,2] = 1., 1.\n", "E[2,4], E[4,2] = 1., 1.\n", "\n", "D = np.sum(E,0)\n", "\n", "W = np.zeros((5,5))\n", "\n", "for i in range(5):\n", " for j in range(i+1,5):\n", " W[i,j] = E[i,j]/(1+max(D[i],D[j]))\n", " W[j,i] = W[i,j]\n", " \n", " W[i,i] = 1-np.sum(W[i,:])" ] }, { "cell_type": "code", "execution_count": 3, "id": "1616c720", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.75, 0.25, 0. , 0. , 0. ],\n", " [0.25, 0.25, 0.25, 0.25, 0. ],\n", " [0. , 0.25, 0.25, 0.25, 0.25],\n", " [0. , 0.25, 0.25, 0.5 , 0. ],\n", " [0. , 0. , 0.25, 0. , 0.75]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "W" ] }, { "cell_type": "markdown", "id": "2e93fabf", "metadata": {}, "source": [ "## First-order DGD algorithm" ] }, { "cell_type": "code", "execution_count": 4, "id": "8f5930a5", "metadata": {}, "outputs": [], "source": [ "x = np.random.randn(5,)\n", "\n", "x_vals = np.zeros((num_iters+1,5))\n", "x_vals[0,:] = x\n", "\n", "z0 = np.linspace(1,5,5)\n", "\n", "for n in range(num_iters):\n", " z = W@x\n", " x = z - eta*(z-z0)\n", " x_vals[n+1,:] = x" ] }, { "cell_type": "code", "execution_count": 5, "id": "306ff21f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", " ,\n", " ,\n", " ,\n", " ]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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X7EJN3at2ihJymir0MhTL3CsKgAAAAD9R/hyESt+zVdUklSzsza2XhWaMG6cU2UBAAAASADCl5t42m+yHI2ddhhqypEkmYxKZfq9jpUFAAAAoP8IXy5ieds/DjuqaMRW1IrNdGjy2xysCgAAAEAiEL5cxOoY+bKNag40SZZX3kirMsaNcbgyAAAAAP1F+HITT+zjsOyotq7bIknKba5QydxLnKwKAAAAQAIQvlzE8nScdmhr79oySZIvtF+jTj7LwaoAAAAAJALhy0U6rvnymKga9jXHVnoOaOzwYgerAgAAAJAIhC8Xsbw+SZLPRBVuzZMkRTNr5PPyMQEAAACDHd/qXcTyxqaT9xoj2xOb6VBFxsGKAAAAACQK4ctFLF9s5CtqFbTPdNim7ElTHK4KAAAAQCIQvlzE0x6+QnaBJCm75YCGnX65kyUBAAAASJBBE76eeeYZXXvttRo3bpwyMzM1fPhwnXnmmbr33ntVX1/vdHkJYfn8kiQTKZIkeSMHNHH6KU6WBAAAACBBfE4XcDyNjY268cYb9dxzz3VZX1VVpaqqKr377rv65S9/qSeffFJnnTXIp2Rvn3AjpBJJkvFUamRhlpMVAQAAAEgQV4evSCSij33sY3rllVckSSNGjNCtt96qmTNnqqamRk888YSWLVumvXv36vLLL9fbb7+tWbNmOVz1ieu45iuUMUSSFMlslGVZTpYEAAAAIEFcHb4efPDBePCaOXOmlixZohEjRsS333bbbfrGN76hn/70p6qrq9PnP/95vf32206V23/tpx22Zcbu62WG+J2sBgAAAEACufaar2g0qn//93+Pv/7jH//YJXh1+MlPfqJTTz1VkrRs2TK99NJLySox4SyvX7blVTAjNuFG7vTpDlcEAAAAIFFcG77eeOMNHThwQJJ03nnnae7cud2283q9+upXvxp//cQTTySlvgERyFZboEiyPPJEQ5p5wUedrggAAABAgrg2fL344ovx5csuu+yYbTtvf+GFFwaspoFmBXIVCsRGvbyRWs2cONbhigAAAAAkimvD17p16+LLp5122jHbjhgxQqWlpZKkyspKVVVVDWhtA8XKL1bYnyNJMp5WJtsAAAAAUohrw1dZWVl8ecKECcdt37lN530HE29ensK+WPiyMm2HqwEAAACQSK6d7bCuri6+PHTo0OO2HzJkSLf7HikY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cegz6eGnP/2pCQQCx+0r06ZNM+vWrTvmsegzg9c111xzzN/N4sWL+3S8dOkLyfpuTvhyQDgcNhdffHH8gxwxYoS56667zJ/+9Cdz3333mYULF8a3FRYWmvXr1ztdMtp9/vOf7/IHcPHixeZXv/qV+fOf/2weeeQR84UvfMHk5ubG20yYMMEcPHiwx+O98sorxu/3x9tffvnl5ne/+5157LHHzO23327y8/O7/OVxLInuV4msDUerr683paWlRpLJycmJ/y6PF77oM+mjurrazJ8/P/47Gz58uPniF79oHnzwQfPkk0+aX/7yl+Zb3/qWOf30041lWT2GL/pMevjVr37V5UviwoULzX/8x3+Yxx9/3PzmN78xX/7yl01eXl58+9ChQ83+/fu7PRZ9ZnC7+uqru/SF4uJiM2XKlBMKX+nSF5L53Zzw5YD7778//gHOnDnTHDhw4Kg2//qv/9rlL1C4wxe+8AVzySWXmJdfftlEo9Fu2+zatctMmzYt/vndcsst3bZrbW01Y8eOjbf71a9+dVSbsrIyU1JSEm/z8ssv91hbIvtVomvD0T73uc/FQ/ztt9/eq/BFn0kvl156afx39dnPftY0Njb22LaiosKEw+Gj1tNn0kNLS0uXYPXAAw90266ystKcdNJJ8XZf//rXj2pDnxn8fvSjH5k77rjD/OUvfzE7duwwxhjzyCOP9Dl8pVNfSOZ3c8JXkkUikS4dYcWKFT22O/XUU+PtXnzxxSRXiu5UV1f3qt3q1avjn112drZpbm4+qs19990Xb3PllVf2eKy//e1v8XYLFizotk2i+1Uia8PRlixZEj+N7NlnnzV33313r8IXfSZ9dP6idN11153wcegz6eGVV16J/47mz59/zLbPPvtsvO28efOO2k6fSU0nEr7SpS8k+7s54SvJXnvttfiHdt555x2z7cMPP9znPyhwj+nTp8c/vzVr1hy1/ZxzzolvX7p0aY/HiUajZvz48fG2O3fuPKpNovtVImtDV83NzWbixIlGkrnhhhuMMabX4Ys+kz5mzJhhJBm/328qKipO+Dj0mfTw+OOPx38/N9544zHblpWVxdtOmzbtqO30mdR0IuErXfpCsr+bM9thkr344ovx5csuu+yYbTtvf+GFFwasJgyMvLy8+HJra2uXbY2NjVq2bFm83TnnnNPjcTwejz70oQ/FX3fX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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(x_vals)" ] }, { "cell_type": "markdown", "id": "1edfaee0", "metadata": {}, "source": [ "## Second-order algorithm" ] }, { "cell_type": "code", "execution_count": 11, "id": "4a17358e", "metadata": {}, "outputs": [], "source": [ "x = np.random.randn(5,)\n", "\n", "x_vals = np.zeros((num_iters+1,5))\n", "x_vals[0,:] = x\n", "\n", "z0 = np.linspace(1,5,5)\n", "y = x-z0\n", "\n", "y_vals = np.zeros((num_iters+1,5))\n", "y_vals[0,:] = x-z0\n", "\n", "eta = 0.1\n", "\n", "for n in range(num_iters):\n", " x_n = W@x - eta*y\n", " y = W@y + (x_n-z0) - (x-z0)\n", " \n", " x_vals[n+1,:] = x_n\n", " y_vals[n+1,:] = y\n", " \n", " x = x_n" ] }, { "cell_type": "code", "execution_count": 12, "id": "8fb9f6b1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", " ,\n", " ,\n", " ,\n", " ]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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zjzzzN7PFi9enG699dZ+D5n99PKXv3zS/9NfcMEF6QMf+ED6X//rf6VPfepT6RWveEWaP39+75ljjz023Xfffbt9v2uvvTYNDAz0nn/Oc56TPvKRj6Qrrrgivf71r08LFy6c9F8Ke2L+1cuGDRvSqlWrUkSkefPm7XOoMmdmjwcffDCdfvrpvc9g2bJl6ZWvfGX62Mc+lq6++ur0/ve/P73xjW9MT3rSk1JRFLsNVebM7PCBD3xg0kLyzDPPTO9617vSlVdemT70oQ+l17zmNWnBggW9ny9dujTdc889D/te5ky9Pf/5z580Fw455JB0wgknPKJQlfNcOJBj2xOhqg8++MEP9j68k08+Od177727PPNf/st/mfRfeNTLK17xivTsZz87ffWrX03tdvthn/nlL3+ZTjzxxN7n/NKXvvRhn9u2bVs66qijes994AMf2OWZ2267La1YsaL3zFe/+tXdjs38q5c/+7M/64Xz17/+9fsUqsyZ2eWcc87p/d3/p//0n9KmTZt2++yaNWvS2NjYLn9uzswOW7dunRSYPvrRjz7sc/fff396zGMe03vuz//8z3d5xpypv3e84x3pTW96U/rf//t/p1/84hcppZQ+9alP7XeoynkuHOix7YlQNc1ardakD+573/vebp879dRTe89dc8010zxSpuLBBx/cp+d+8IMf9D7juXPnpi1btuzyzGWXXdZ75nnPe95u3+uzn/1s77knP/nJD/uM+Vcv1113XW871xe/+MV0ySWX7FOoMmdmj4kLoBe96EWP+H3Mmdnh2muv7f19n3766Xt89otf/GLv2Sc+8Ym7/NycmZkeSajKeS4cyLHtjVA1zb7+9a/3PrSzzjprj89+8pOf3O+JTf2cdNJJvc/5hz/84S4/f9rTntb7+erVq3f7Pu12Ox1zzDG9Z++8885dnjH/6mPLli3puOOOSxGR/uN//I8ppbTPocqcmT0e/ehHp4hIAwMDac2aNY/4fcyZ2eHKK6/s/X2ff/75e3z2tttu6z174okn7vJzc2ZmeiShKue5cCDHtje6/02za665pvf63HPP3eOzE3/+5S9/+aCNif5asGBB7/W2bdsm/WzTpk1xww039J572tOettv3Kcsyfvd3f7f3/cPNGfOvPi6++OL4xS9+EUuWLIn/+T//5z7/njkze9xwww3xk5/8JCIinvvc58bhhx/+iN7HnJk9li9f3nt9++237/HZiT9/zGMeM+ln5gxdOc+FAz22vRGqptmPfvSj3uvf/M3f3OOzy5cvj1WrVkVExP333x9r1649qGNj+o2MjMTPfvaz3vdHH330pJ//+7//e1RVFRERT3jCE6LRaOzx/SbOqVtvvXWXn5t/9fBv//Zvcdlll0VExHvf+95JC6G9MWdmj4ktgJ/xjGdESimuvPLKeOYznxnLly+P4eHhOPLII+P3f//344orrthtK3VzZvY488wz47DDDouIiBtvvDEuv/zyh33uwQcfjLe85S0R0Vlsvv71r5/0c3OGrpznwoEe294IVdPstttu670+9thj9/r8xGcm/i4zw1VXXdW7Z+G0006LFStWTPr5gZ4v5l/+tm/fHi972cuiqqp4xjOeES996Uv36/fNmdnjpptu6r1euXJlPOMZz4g//uM/jq9//etx//33x8jISKxZsya++MUvxp/8yZ/Ek570pLj77rt3eR9zZvYYHh6Oj3zkIzEwMBARES996Uvjt3/7t+M973lPXHXVVfHRj340Xve618Vxxx0XP/zhD2P+/Pnxmc98Js4444xJ72PO0JXzXJjuedXc799gStavX997vXTp0r0+f+ihhz7s71J/a9eujTe+8Y2979/61rfu8syBni/mX/7+6q/+Km677baYM2dOfOQjH9nv3zdnZo977rmn9/ov/uIv4vbbb4+hoaF4yUteEk996lOj2WzGD3/4w/j4xz8e69ati5tvvjme/vSnx0033RSLFi3q/a45M7u84AUviOuuuy5e/epXxy233BLf+ta34lvf+takZwYGBuItb3lLvPzlL+9VAiYyZ+jKeS5M97xSqZpmmzdv7r0eHh7e6/Nz5szpvd60adNBGRPTb3R0NF74whf2StV/8Ad/EC94wQt2ee5AzxfzL2833XRTvO9974uIiLe//e1x/PHH7/d7mDOzx0MPPdR7ffvtt8ehhx4a3/nOd+KjH/1ovOQlL4nzzz8/3v3ud8ePf/zjOOWUUyIi4o477uht6+oyZ2afM888M97//vfH6aef/rA/Hxsbi7/7u7+L973vfbuc9Y0wZ9gh57kw3fNKqIJpVlVVvOxlL+v9m8Hjjz8+PvnJT+7194qiONhDo49GR0fjpS99abTb7XjCE56wyxmGR8Kcmdm6ZwW6/vt//+/x+Mc/fpfnVqxYEVdeeWVvPnziE5/Y7YLBnJn5HnzwwXjmM58ZZ599dvz85z+P973vffHzn/88RkdHY/369fH1r389zj333Fi/fn38j//xP+Lss8+OBx98cLfvZ87QlfNcmI6xCVXTbP78+b3X27dv3+vzE/8N0cQucdRTSile8YpXxJVXXhkREUcddVR87WtfiyVLljzs8xPny8P928Kd7W2+mH/5+tu//du49dZbo9FoxMc//vG9HqjdHXNm9pj497to0aL4oz/6o90++/jHPz6e/OQnR0Tnc+x2xIowZ2aTrVu3xlOf+tS47rrrYsmSJfGd73wn/vzP/zyOO+64GBgYiEWLFsXTn/70+Jd/+Zd49atfHRER3/3ud+O1r33tpPcxZ+jKeS4c6LHtjVA1zRYvXtx7/cADD+z1+Yn/dmji71I/KaV41ateFR/72McionOw/Lrrrotjjjlmt79zoOeL+ZenH/7wh/Gud70rIiJe//rXx2mnnfaI38ucmT0m/suYxz3ucdFs7vmY9BOf+MTe6zvuuKP32pyZPT74wQ/GT3/604jonMM74YQTdvvsf/tv/633eVx99dWTzvCZM3TlPBeme15pVDHNTjzxxLjzzjsjIuLOO+/c44K6+8zE36WeUkrx6le/Oj784Q9HRMSRRx4Zq1ev3uuZmYmf+cS5sDt7my/mX54uv/zyGBsbi7IsY2BgIP72b//2YZ/713/910mvu8+deOKJ8aIXvaj3usucmdlOOumk+PrXvx4REQsXLtzr8xObU2zcuLH32pyZPb74xS/2Xj/72c/e47Nz586NM844I770pS9FVVVx0003xfOe97yIMGfYIee5cKDHtjdC1TR77GMf27vY7MYbb4zf+Z3f2e2z9913X6/97bJly3p3S1Av3UD1oQ99KCIijjjiiFi9enU86lGP2uvvnnzyyVGWZVRVFd///vej3W7vcVvYjTfe2Hu982WNEeZfrlJKEdE5I/POd75zn35n9erVsXr16oiIeP7zn98LVebM7DHx/FT3aoY9mdjNamLAMmdmjzVr1vRe70sQn/hv6yce+jdn6Mp5Lhzose2N7X/TbH9ua/7Sl77Ue723W6XJ086B6vDDD4/Vq1fvccvFRAsWLIgzzzwzIjqdaK6//vrdPltVVXzlK1/pff97v/d7uzxj/s185szs8Xu/93u9w9e33HJLjI2N7fH5733ve73XE/8trDkze0wMUr/61a/2+vxdd93Vez2x3bQ5Q1fOc+FAj22vEtOq1WqlFStWpIhIEZG+973v7fa5U089tffcNddcM80j5UB41ate1fsMV6xYkX7605/u93v83d/9Xe89nve85+32uc9+9rO955785Cc/7DPmX71dcsklvc/kkksu2e1z5szscfbZZ/f+zv/+7/9+t899//vf7z23YMGCtHXr1kk/N2dmhwsuuKD39/2yl71sj8/efvvtqdlspohIZVmmBx54YNLPzZmZ6VOf+lTv7/eCCy7Yp9/JeS4cyLHtjVDVBx/84Ad7H9wpp5yS7rvvvl2eecMb3tB75swzz+zDKJmq17zmNZMC1U9+8pNH9D7btm1LRx11VO+9Lrvssl2e+dnPfjbpv4Suvfba3b6f+Vdf+xqqzJnZ49/+7d96f++HHnpo+uEPf7jLM/fee2865ZRTes+95S1v2eUZc2Z2+MpXvtL7Oy+KIn384x9/2Ofuvffe9IQnPGGPi1FzZmZ6JKEq57lwoMe2J0VK45v5mTatVivOPffcuPbaayOic4fIRRddFCeffHKsW7currrqql6JctGiRXHDDTf0Lm6kHt761rfGO97xjojo3I3wzne+M0466aS9/t5pp50WRx111C5//rWvfS3OPffc3vae5z73ufH7v//7MW/evLj55pvj4x//eO9MxUUXXRQf/ehHd/ufYf7V19ve9rZ4+9vfHhERl1xySbztbW/b7bPmzOzxpje9Kd797ndHRMTQ0FBccMEF8dSnPjWazWb84Ac/iI9//OOxbt26iOh0ALz++usf9iJMc2Z2eNGLXhT/+I//2Pv+rLPOiuc///mxcuXK2LZtW9x0003x6U9/uncGr9t6/eG2rZsz9XbnnXfGJz7xiUl/dsstt/QamjzucY/rNSfpOu200+K8887b5b1yngsHcmx79IiiGFO2cePG9NznPreXih/ua+XKlemGG27o91B5BM4666w9fra7+/rUpz612/f83Oc+lxYvXrzH37/oootSq9Xa6/jMv3ra10pVlzkze7z5zW9OjUZjj5/POeeck9atW7fH9zFnZr7t27enP/3TP92n/0064YQTdrv9qsucqa/Vq1fv9zplT9WrnOfCgRzb7ghVffb5z38+nXfeeWnVqlVpaGgoLV26NP3Wb/1Weve7353Wr1/f7+HxCB2MUJVSSmvWrEl/+Zd/mU499dS0ePHiNDw8nI499tj0J3/yJ+kb3/jGfo/T/KuX/Q1VKZkzs8kPfvCD9NrXvjaddNJJacGCBWl4eDgdddRR6cUvfnH60pe+tM/vY87MDt///vfT6173unT66aenQw45JDWbzTR37tx0zDHHpPPOOy/9wz/8Q9q+ffs+vZc5U08HOlSllPdcONBj25ntfwAAAFOgpToAAMAUCFUAAABTIFQBAABMgVAFAAAwBUIVAADAFAhVAAAAUyBUAQAATIFQBQAAMAVCFQAAwBQIVQAAAFMgVAEAAEyBUAUAADAFQhUAAMAUCFUAAABT8P8BUuOrhFbyL6cAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(x_vals)" ] }, { "cell_type": "code", "execution_count": null, "id": "0cf6b640", "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.8.8" } }, "nbformat": 4, "nbformat_minor": 5 }