{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "###### The latest version of this IPython notebook is available at [http://github.com/jckantor/ESTM60203](http://github.com/jckantor/ESTM60203) for noncommercial use under terms of the [Creative Commons Attribution Noncommericial ShareAlike License (CC BY-NC-SA 4.0)](http://creativecommons.org/licenses/by-nc-sa/4.0/)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "J.C. Kantor (Kantor.1@nd.edu)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Assignment Problems" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This [IPython notebook](http://ipython.org/notebook.html) demonstrates models for various types of assignment problems using GLPK/MathProg." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Initializations" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import HTML\n", "HTML(open(\"styles/custom.css\", \"r\").read())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Example Problem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You work as a logistics manager for a toy manufacturer, and you currently have five delivery trucks on the road. Your trucks are in Austin, Boston, Chicago, Denver, Edmonton, and Fargo. You need them to drive to five other cities: Atlanta, Boise, Charlotte, Dallas, and Fresno. The table below shows the distance in miles between these cities.\n", "\n", "| From\\To | Atlanta | Boise | Charlotte | Dallas | Fresno |\n", "| : -----: | :-----: | :------: | :-------: | :----: | :----: |\n", "| Austin | 921 | 1627 | 1166 | 196 | 1594 |\n", "| Boston | 1078 | 2661 | 837 | 1767 | 3107 |\n", "| Chicago | 716 | 1693 | 756 | 925 | 2140 |\n", "| Denver | 1400 | 815 | 1561 | 788 | 1142 |\n", "| Edmonton | 3764 | 1718 | 3848 | 3310 | 2835 |\n", "\n", "Where should you send each of your trucks in order to minimize travel distance?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Combinatorial Complexity" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How many ways are there to assign destinations to each truck?\n", "\n", "$N = 5 \\times 4 \\times 3 \\times 2 \\times 1 = 120$\n", "\n", "In general there are \n", "\n", "$N = n!$ \n", "\n", "ways to assign $n$ resources to $n$ tasks." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n = arange(0,10)\n", "plot(n,n);\n", "xlabel('Number of Resources/Tasks');" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false, "slideshow": { "slide_type": "slide" } }, "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": [ "xlabel('Number of Resources/Tasks')\n", "plot(n,n,n,n**2)\n", "legend(['n','n**2'],loc='best');" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "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\n", "XpLwRbNcXV2ZN28eb7zxxkWfXXiGXj+JW2pqKrfffjvTp0/H09OTZ599lpUrV2I2mxk1ahSHDh3S\n", "2mzevJmxY8cyYsQINmzYAFgXLXn66acxm80EBgby97//Xdvurbfeyl133XXJ4f8fffQRo0aNIiAg\n", "gGeffRaAF198kR07djBnzhyeeeaZJo/TyckJs9lMTk4OAOnp6YSGhhISEsLkyZMpLi4GYPny5fj5\n", "+REYGKgN+S8tLWX69OkEBgZy44038sMPPwAQExPDa6+9pu3D39+fo0ePcvjwYUaMGEF0dDQBAQHk\n", "5eXx6quvMmrUKIKCgrQFZHJycpgyZQohISHcdtttHDx4ELD+xRIQEEBQUBC33367tv3k5GSmTJmi\n", "vW/4y+Tzzz/nhhtuYPTo0YSHh2vD8bdu3ar9BTB69GgqKysbfS+7du1i9OjR5ObmtlhXdAIdPu5X\n", "dGo9e/ZU5eXlysPDQ506dUotXbpUxcTEKKWUmj17tvrkk08a1VVKqS1btqjevXur4uJide7cOTVo\n", "0CD1wgsvKKWUWrZsmVq0aJFSSqno6Gg1ZcoUpZRS2dnZymQyqbNnz6p3331XvfTSS0oppc6ePatC\n", "QkJUbm6u2rJli+rRo4c6fPjwRXEWFBSowYMHq+PHj6va2lo1YcIEtXbtWqWUUqGhoSo9Pf2iNrm5\n", "udriNlVVVerGG29UGzZsUNXV1erGG29Ux48fV0optWrVKjVnzhyllFKDBg3ShtOfOnVKKaXUH//4\n", "R/Xiiy8qpZT6+uuvVVBQkFJKqZiYGLV06VJtf/7+/urIkSMqNzdXOTk5qbS0NKWUdVqRm266SVVV\n", "VSmllDp58qRSSqkJEyao7OxspZRSO3fuVBMmTFBKKRUQEKAKCwsbxaCUUnfddZfKzc3V3n/44Yfq\n", "j3/8Y6NtKqXUe++9p5566imllFJTp05V3377rVLKuohNbW2t2rJli7rzzjvVjh071JgxY1ReXl6T\n", "dUXnckUXMRedk5ubG1FRUSxfvpxrr73WpjZjx45Fr9cD1m6TSZMmAdaz3C1btgDWLp3IyEitzrBh\n", "w/jpp59ISUnhhx9+4JNPPgGgvLycn3/+GRcXF8xmM0OGDLlof7t27WL8+PH069cPgAcffJBt27Zx\n", "1113AU0vOpKTk0NwcDC5ubmEhYURERHBjz/+yP79+7W5zuvq6hg0aBAAo0aNYtasWUyfPl2bqXTH\n", "jh3aohPjx4/nxIkT2iRpTRkyZIi2xOFXX33FnDlzuOaaawDo3bs3lZWVfPfdd42mBa6urgbg5ptv\n", "Jjo6msjISO655x7ts/z8fDw8PC65v7y8PCIjIykuLqa6upphw4Zp23ryySd58MEHueeee7QFPQ4c\n", "OMBjjz3Gl19+icFgaLau6DykS0fYZNGiRSQkJHD69GmtzMXFRbvIabFYtIQEcPXVV2uvnZyctPdO\n", "Tk7N9r/X9+u/9dZbWt9zTk6Olnx79OjRZLuGSV0p1egaQVPXCzw9PbV9/PTTT9q0zn5+ftr+9+3b\n", "R3JyMgAbNmzgD3/4A3v27GHs2LHU1dVp+7tQw+8HrGv/1rvwOC5sb7FY6N27txZDRkYG+/fvB+Cd\n", "d97hpZdeIi8vjzFjxlBaWsr27du55ZZbLnmMAI8//jhPPPEE+/bt491336WqqgqAxYsXk5CQQFVV\n", "FTfffDMHDx5Ep9MxcOBArr322kZTJV+qruhcJOELm/Tp04fIyEgSEhK05Onh4UF6ejoASUlJ1NTU\n", "tGqbSik+/vhjlFLk5ORw6NAhfHx8mDRpEvHx8dovhqysrBZXYRo7dixbt27lxIkT1NXVsWrVqkb9\n", "2y3p168fL7/8Ms8//zwjRozgl19+0RbzrqmpITMzE6UUR48eJTQ0lLi4OE6dOkVlZSW33nqrthBG\n", "amoq/fv3x83NDQ8PDy1h7tmzh9zc3EvuOzw8nA8++EBLwidPnqRXr14MHTpU+ytHKcW+ffsA618l\n", "ZrOZJUuW0L9/f/Ly8vjiiy+IiIi46PutV15erv2V8uGHH2rlOTk5+Pn58cwzzzB27Fgtiffu3Zv1\n", "69fz3HPPsXXr1mbris5DEr5oVsMz46eeeorjx49r7x999FG2bt1KUFAQO3fubLTyVlNn1DqdTvtM\n", "p9MxePBgzGYzERERvPvuu1x11VXMnTsXX19fRo8eTUBAAPPnz6e2trZR2wsNHDiQuLg4xo8fT1BQ\n", "ECEhITbdWthwe9OnT+fYsWNkZGTwySefsHjxYoKCgggODua7776jrq6Ohx56iFGjRjF69GgWLlyI\n", "u7s7MTExpKenExgYyPPPP09iYiIA9957L6Wlpfj7+/P22283Wpii4X4nTZrEtGnTCAkJITg4WLvQ\n", "+69//YuEhASCgoLw9/cnKSkJgGeeeUa7OH3zzTcTGBioXShv6ruOiYnhvvvuIyQkhP79+2vly5Yt\n", "IyAggMDAQK666irtoq9Op2PAgAGsX7+eP/zhD3z//fdN1hWdh0yPLEQnl5+fz2OPPabd5SREUyTh\n", "CyFENyFdOkII0U1IwhdCiG5CEr4QQnQTkvCFEKKbkIQvhBDdhCR8IYToJiThCyFEN/H/ASyp6IJt\n", "1mIaAAAAAElFTkSuQmCC\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xlabel('Number of Resources/Tasks')\n", "plot(n,n,n,n**2,n,exp(n))\n", "legend(['n','n**2','exp(n)'],loc='best');" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "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\n", "/o3Viav5/NDneDl6MSFwAo/4P4JTZ6c6nWdDfj5PHzvGTXZ2LPLywlnKLk1aTQ0UFtYtQV/4Xnm5\n", "lmAdHLTbPw4OVz8u/X6XLi0jKZuS1Y/YW7xdu7Tt5X78Ef76V/j1V/D2Nvllkk4nsTpxNWuS1tCh\n", "dQcmBE5g1/Rd9HXoW+dz7SkqYm5GBicqKljm68vtDg4mj1fUn1JQWgr5+X8eZ87Ufpyff3mCLi3V\n", "RsFXS8w9e2oTl6/0/S5dmk4Zo6WQUkxjq6rS+s6jo7XfsNmz4YMPtCGPCZ0oPMHapLWsSlxFYUUh\n", "UQFRfDPuGwY6DazzHASlFLGFhSzIzORoWRnPubkxw9mZtvLbbHbV1dr8s0uT87Ue29pC9+7a0aPH\n", "n1937w6hoVpyvjRBd+0qydnaSSnGGp05oyXw994DX1+t3HLvvSadHZpfls/6Q+tZnbSalDMpjPEf\n", "w/jA8dzifgu2NnX/rVVK8V1BAQsyMzlbXc2L7u5McHKShF5Per12w+96ifnix6WlWhK+OEFfmqwv\n", "fWyGWzLCishGG9bg4EFtdP7VVzBmjLZcbmCgyU5fUlXCt0e+ZVXiKnZm7uSefvcwPnA8d3vdTdtW\n", "9etxr9HrWX/mDP+bmUkrGxtecnfnoR49aCXF0Mvo9dqI+uTJ2kdenvbP06f/TNYFBdoqycYk5wuP\n", "7exkJC1qs/oae7Mtxeh02vT+6GhITdVaFVNTtd9UE6jSVfFj2o+sTlzN96nfc7P7zYwPGM+6Mevo\n", "3LZzvc9bqdezMi+P1zIz6dW2LQv79mWEo6NJlo9oaqqq4NSpqyfsC8fp01qNuXfv2oenJwwdCk5O\n", "fybrbt3MOp9MNHNSirGU8+dh2TJtQpGTk1Zuefjhy6eO1YNe6dmZuZNViav4IvkL/Hr4MT5gPGP8\n", "x1xxSn9dlOp0fJSby6KsLAI6deKfHh7NdgmAkpLrJ+uTJ7V/lT17Xp6we/Wq/djJyWJbw4oWyupH\n", "7M1Gaqq2M9GqVTBiBKxZo7UtmsCBvAOGjhb79vaMDxzPvhn78LT3bPC5C6urWZKTw9s5OdxqZ8eG\n", "wEAGdenS8KAbmVJa211u7vUTtlJXTtA+PrUfd+8uJRDRdEkppr6Ugp9+0sot+/bBo49CYiK4uJjk\n", "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\n", "pVR0dLR6+umnlVJKTZo0SY0cOVIppVRqaqpydXVVFRUV6oMPPlCvvvqqUkqpiooKFRYWptLT09W2\n", "bdtUp06dVEZGxmVx5uTkKHd3d5Wfn69qamrU7bffrr755hullFIRERHq999/v+w96enphk1UysvL\n", "1dChQ9WmTZtUVVWVGjp0qMrPz1dKKbV27Vo1depUpZRSzs7Ohmnk58+fV0opNWvWLPXKK68opZT6\n", "+eefVXBwsFJKqXnz5qlFixYZrhcQEKBOnDih0tPTla2trdq9e7dSSltO46abblLl5eVKKW03I6WU\n", "uv3221VqaqpSSqldu3ap22+/XSmlVGBgoMrNza0Vg1JKjR49WqWnpxser1ixQs2aNavWOZVS6qOP\n", "PlLPPvusUkqpUaNGqV9//VUppW2WUlNTo7Zt26buu+8+tXPnTjVo0CCVlZV11deKpqW1pf+wCOvR\n", "pUsXJk6cyNtvv02HDh2Mes/gwYNxcnICtHLH8OHDAW3Uum3bNkArxYwdO9bwmr59+3L48GF+/PFH\n", "EhMT+eKLLwAoKiri2LFjtG7dmiFDhuDh4XHZ9fbu3cttt91Gt27dAJgwYQLbt29n9OjRwNU3tkhL\n", "SyMkJIT09HTuuOMO7rnnHpKSkjh06JBhrW2dToezszMAAwcOZPz48TzwwAOGlTV37txp2Nzgtttu\n", "o6CgwLDQ19V4eHgwZMgQALZu3crUqVNp3749APb29pSUlPDbb7/VWq62qqoKgJtvvplJkyYxduxY\n", "HnroIcP3srOz8fT0vOL1srKyGDt2LHl5eVRVVdG3b1/DuZ555hkmTJjAQw89ZNg4IiUlhccee4yf\n", "fvqJXr16XfO1oumQUoyo5emnn2bp0qWUlpYanmvdurXhZqNerzckHoB27doZvra1tTU8trW1vWZ9\n", "/ELdfcmSJYbacFpamiHJdurU6arvuzh5K6Vq1fCvVs/38vIyXOPw4cOG5YYHDBhguP7BgweJiYkB\n", "YNOmTTz55JPEx8czePBgdDqd4XqXuvjzAaioqDB8fenPcen79Xo99vb2hhgSEhI4dOgQAO+99x6v\n", "vvoqWVlZDBo0iLNnz7Jjxw5uueWWK/6MALNnz2bOnDkcPHiQDz74gPLycgBeeOEFli5dSnl5OTff\n", "fDNHjhzBxsaG3r1706FDh1rL917ptaJpkcQuanFwcGDs2LEsXbrUkCQ9PT35/fffAfj222+prq6u\n", "0zmVUqxfvx6lFGlpaRw/fhxfX1+GDx/Ou+++a/gDcPTo0evu6DN48GDi4uIoKChAp9Oxdu3aWvXn\n", "6+nWrRv/+c9/eOmll/Dx8eHMmTPs2rUL0Na/T05ORv1/e3cM0joQgHH8n6WbtUuELkVX25o0xC4i\n", "1EEKHUQQRzeLSIcOhUqd4tbVwcFBtIObk3TpZidFqIJ7EdpOIhXFUekbHu+w770+3mr4flsulxzc\n", "8HGXO3KjEb1ej1wuR71e5/X1lff3d5aXl82BC1dXV9i2zdTUFLOzsyYY7+7ueHx8/Gvbq6urnJ6e\n", "mrB9eXkhGo0yNzdnZi2j0YiHhwfg5ywjm81ycHCAbdv0+31arRaFQuGP/v3l7e3NzDrOzs5Mebfb\n", "JZlMUq1WWVxcNGEdi8VoNpvUajXa7fY/68r3oWAXYHykW6lUeH5+NtfFYpF2u43rutzc3Iyd5DRp\n", "hGxZlrlnWRaJRIJsNkuhUOD4+JhIJML29jbz8/N4nkc6nWZ3d5ePj4+xZ38Xj8ep1+usrKzgui6+\n", "7//Xlr2v71tfX+fp6Yn7+3suLi7Y29vDdV0ymQzX19d8fn6ytbXFwsICnudRLpeZnp4mCAI6nQ6O\n", "47C/v0+j0QBgY2OD4XBIKpXi6Oho7ACEr+3m83nW1tbwfZ9MJmMWXM/Pzzk5OcF1XVKpFJeXlwBU\n", "q1WzSLy0tITjOGbBelJfB0HA5uYmvu9j27YpPzw8JJ1O4zgOkUjELL5alsXMzAzNZpNSqcTt7e3E\n", "uvJ96Le9It/EYDBgZ2fH7CoSmUTBLiISMvoUIyISMgp2EZGQUbCLiISMgl1EJGQU7CIiIaNgFxEJ\n", "GQW7iEjI/ABA4Uf2AzOJ4wAAAABJRU5ErkJggg==\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xlabel('Number of Resources/Tasks')\n", "semilogy(n,n,n,n**2,n,exp(n),n,map(math.factorial,n))\n", "legend(['n','n**2','exp(n)','n!'],loc='best');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Types of Complexity\n", "\n", "$$ Combinatoric >> Exponential >> Geometric >> Linear $$\n", "\n", "Assignment problems can be incredibly difficult to solve. The speed of solution will depend on the exact details of the problem, what features can be left out without affecting the utility of the solution, and the availability of specialized algorithms." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Formulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let _x[R,T]_ be a binary variable where _x[R,T] = 1_ means resource _R_ is assigned to task _T_. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "One resource must be assigned to each task. So for all $t\\in TASKS$\n", "\n", "$$\\sum_{r \\in RESOURCES} x[R,T] = 1$$ " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Each resource must be assigned to one task. So for all $r\\in RESOURCES$\n", "\n", "$$\\sum_{t \\in TASKS} x[R,T] = 1$$ " ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting Assign.mod\n" ] } ], "source": [ "%%writefile Assign.mod\n", "\n", "set RESOURCES;\n", "set TASKS;\n", "\n", "param a {RESOURCES,TASKS} >= 0;\n", "\n", "var x {RESOURCES,TASKS} binary;\n", "\n", "minimize Cost: sum{r in RESOURCES, t in TASKS} a[r,t]*x[r,t];\n", "subject to R {r in RESOURCES}: sum {t in TASKS} x[r,t] = 1;\n", "subject to T {t in TASKS}: sum {r in RESOURCES} x[r,t] = 1;\n", "\n", "solve;\n", "\n", "printf \"\\n\\n\";\n", "for {r in RESOURCES} {\n", " for {t in TASKS : x[r,t] == 1} {\n", " printf \"Assign %10s to %10s Cost: %6.0f\\n\", r, t, a[r,t];\n", " }\n", "}\n", "printf \"\\n\\n\";\n", "\n", "end;\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solution" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GLPSOL: GLPK LP/MIP Solver, v4.52\n", "Parameter(s) specified in the command line:\n", " -m Assign.mod -d /dev/stdin\n", "Reading model section from Assign.mod...\n", "Assign.mod:23: warning: final NL missing before end of file\n", "23 lines were read\n", "Reading data section from /dev/stdin...\n", "/dev/stdin:12: warning: final NL missing before end of file\n", "12 lines were read\n", "Generating Cost...\n", "Generating R...\n", "Generating T...\n", "Model has been successfully generated\n", "GLPK Integer Optimizer, v4.52\n", "11 rows, 25 columns, 75 non-zeros\n", "25 integer variables, all of which are binary\n", "Preprocessing...\n", "10 rows, 25 columns, 50 non-zeros\n", "25 integer variables, all of which are binary\n", "Scaling...\n", " A: min|aij| = 1.000e+00 max|aij| = 1.000e+00 ratio = 1.000e+00\n", "Problem data seem to be well scaled\n", "Constructing initial basis...\n", "Size of triangular part is 9\n", "Solving LP relaxation...\n", "GLPK Simplex Optimizer, v4.52\n", "10 rows, 25 columns, 50 non-zeros\n", " 0: obj = 1.211800000e+04 infeas = 3.000e+00 (1)\n", "* 7: obj = 8.790000000e+03 infeas = 0.000e+00 (1)\n", "* 17: obj = 4.609000000e+03 infeas = 0.000e+00 (1)\n", "OPTIMAL LP SOLUTION FOUND\n", "Integer optimization begins...\n", "+ 17: mip = not found yet >= -inf (1; 0)\n", "+ 17: >>>>> 4.609000000e+03 >= 4.609000000e+03 0.0% (1; 0)\n", "+ 17: mip = 4.609000000e+03 >= tree is empty 0.0% (0; 1)\n", "INTEGER OPTIMAL SOLUTION FOUND\n", "Time used: 0.0 secs\n", "Memory used: 0.1 Mb (150106 bytes)\n", "\n", "\n", "Assign Austin to Dallas Cost: 196\n", "Assign Boston to Charlotte Cost: 837\n", "Assign Chicago to Atlanta Cost: 716\n", "Assign Denver to Fresno Cost: 1142\n", "Assign Edmonton to Boise Cost: 1718\n", "\n", "\n", "Model has been successfully processed\n" ] } ], "source": [ "%%script glpsol -m Assign.mod -d /dev/stdin\n", "\n", "set RESOURCES := Austin Boston Chicago Denver Edmonton ;\n", "set TASKS := Atlanta Boise Charlotte Dallas Fresno ;\n", " \n", "param a : Atlanta\t Boise Charlotte Dallas Fresno :=\n", "Austin 921 1627 1166 196 1594\n", "Boston 1078 2661 837 1767 3107\n", "Chicago 716 1693 756 925 2140\n", "Denver 1400 815 1561 788 1142\n", "Edmonton 3764 1718 3848 3310 2835 ;\n", "\n", "end;" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A foreman has five workers and five jobs to complete. The\n", "time in hours each worker needs to complete each job is shown in the following\n", "table.\n", "\n", "| Resource\\Task | Job 1 | Job 2 | Job 3 | Job 4 | Job 5 |\n", "| :-----------: | :---: | :---: | :---: | :---: | :---: |\n", "| Worker 1 | 3 | 4 | 8 | 7 | 8 |\n", "| Worker 2 | 2 | 5 | 3 | 2 | 6 |\n", "| Worker 3 | 7 | 9 | 1 | 8 | 3 |\n", "| Worker 4 | 5 | 3 | 4 | 6 | 6 |\n", "| Worker 5 | 8 | 9 | 7 | 5 | 8 |" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### What is the minimum time solution if one worker is assigned to each job?" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GLPSOL: GLPK LP/MIP Solver, v4.52\n", "Parameter(s) specified in the command line:\n", " -m Assign.mod -d /dev/stdin\n", "Reading model section from Assign.mod...\n", "Assign.mod:23: warning: final NL missing before end of file\n", "23 lines were read\n", "Reading data section from /dev/stdin...\n", "/dev/stdin:12: warning: final NL missing before end of file\n", "12 lines were read\n", "Generating Cost...\n", "Generating R...\n", "Generating T...\n", "Model has been successfully generated\n", "GLPK Integer Optimizer, v4.52\n", "11 rows, 25 columns, 75 non-zeros\n", "25 integer variables, all of which are binary\n", "Preprocessing...\n", "10 rows, 25 columns, 50 non-zeros\n", "25 integer variables, all of which are binary\n", "Scaling...\n", " A: min|aij| = 1.000e+00 max|aij| = 1.000e+00 ratio = 1.000e+00\n", "Problem data seem to be well scaled\n", "Constructing initial basis...\n", "Size of triangular part is 9\n", "Solving LP relaxation...\n", "GLPK Simplex Optimizer, v4.52\n", "10 rows, 25 columns, 50 non-zeros\n", " 0: obj = 2.800000000e+01 infeas = 3.000e+00 (1)\n", "* 7: obj = 2.000000000e+01 infeas = 0.000e+00 (1)\n", "* 11: obj = 1.700000000e+01 infeas = 0.000e+00 (1)\n", "OPTIMAL LP SOLUTION FOUND\n", "Integer optimization begins...\n", "+ 11: mip = not found yet >= -inf (1; 0)\n", "+ 11: >>>>> 1.700000000e+01 >= 1.700000000e+01 0.0% (1; 0)\n", "+ 11: mip = 1.700000000e+01 >= tree is empty 0.0% (0; 1)\n", "INTEGER OPTIMAL SOLUTION FOUND\n", "Time used: 0.0 secs\n", "Memory used: 0.1 Mb (150106 bytes)\n", "\n", "\n", "Assign Worker_1 to Job_1 Cost: 3\n", "Assign Worker_2 to Job_4 Cost: 2\n", "Assign Worker_3 to Job_3 Cost: 1\n", "Assign Worker_4 to Job_2 Cost: 3\n", "Assign Worker_5 to Job_5 Cost: 8\n", "\n", "\n", "Model has been successfully processed\n" ] } ], "source": [ "%%script glpsol -m Assign.mod -d /dev/stdin\n", "\n", "set RESOURCES := Worker_1 Worker_2 Worker_3 Worker_4 Worker_5 ;\n", "set TASKS := Job_1 Job_2 Job_3 Job_4 Job_5 ;\n", " \n", "param a : Job_1\tJob_2 Job_3\tJob_4 Job_5 :=\n", "Worker_1\t3\t4\t8\t7\t8\n", "Worker_2\t2\t5\t3\t2\t6\n", "Worker_3\t7\t9\t1\t8\t3\n", "Worker_4\t5\t3\t4\t6\t6\n", "Worker_5\t8\t9\t7\t5\t8 ;\n", "\n", "end;" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### What is the minimum time solution if workers can be assigned multiple times?" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GLPSOL: GLPK LP/MIP Solver, v4.52\n", "Parameter(s) specified in the command line:\n", " -m /dev/stdin\n", "Reading model section from /dev/stdin...\n", "Reading data section from /dev/stdin...\n", "/dev/stdin:35: warning: final NL missing before end of file\n", "35 lines were read\n", "Generating Cost...\n", "Generating T...\n", "Model has been successfully generated\n", "GLPK Integer Optimizer, v4.52\n", "6 rows, 25 columns, 50 non-zeros\n", "25 integer variables, all of which are binary\n", "Preprocessing...\n", "5 rows, 25 columns, 25 non-zeros\n", "25 integer variables, all of which are binary\n", "Scaling...\n", " A: min|aij| = 1.000e+00 max|aij| = 1.000e+00 ratio = 1.000e+00\n", "Problem data seem to be well scaled\n", "Constructing initial basis...\n", "Size of triangular part is 5\n", "Solving LP relaxation...\n", "GLPK Simplex Optimizer, v4.52\n", "5 rows, 25 columns, 25 non-zeros\n", "* 0: obj = 3.700000000e+01 infeas = 0.000e+00 (0)\n", "* 3: obj = 4.100000000e+01 infeas = 0.000e+00 (0)\n", "OPTIMAL LP SOLUTION FOUND\n", "Integer optimization begins...\n", "+ 3: mip = not found yet <= +inf (1; 0)\n", "+ 3: >>>>> 4.100000000e+01 <= 4.100000000e+01 0.0% (1; 0)\n", "+ 3: mip = 4.100000000e+01 <= tree is empty 0.0% (0; 1)\n", "INTEGER OPTIMAL SOLUTION FOUND\n", "Time used: 0.0 secs\n", "Memory used: 0.1 Mb (139304 bytes)\n", "\n", "\n", "Assign Worker_1 to Job_3 Cost: 8\n", "Assign Worker_3 to Job_4 Cost: 8\n", "Assign Worker_5 to Job_1 Cost: 8\n", "Assign Worker_5 to Job_2 Cost: 9\n", "Assign Worker_5 to Job_5 Cost: 8\n", "\n", "\n", "Model has been successfully processed\n" ] } ], "source": [ "%%script glpsol -m /dev/stdin\n", "\n", "set RESOURCES;\n", "set TASKS;\n", "\n", "param a {RESOURCES,TASKS} >= 0;\n", "\n", "var x {RESOURCES,TASKS} binary;\n", "\n", "maximize Cost: sum{r in RESOURCES, t in TASKS} a[r,t]*x[r,t];\n", "#subject to R {r in RESOURCES}: sum {t in TASKS} x[r,t] = 1;\n", "subject to T {t in TASKS}: sum {r in RESOURCES} x[r,t] = 1;\n", "\n", "solve;\n", "\n", "printf \"\\n\\n\";\n", "for {r in RESOURCES} {\n", " for {t in TASKS : x[r,t] == 1} {\n", " printf \"Assign %10s to %10s Cost: %6.0f\\n\", r, t, a[r,t];\n", " }\n", "}\n", "printf \"\\n\\n\";\n", "\n", "data;\n", "\n", "set RESOURCES := Worker_1 Worker_2 Worker_3 Worker_4 Worker_5 ;\n", "set TASKS := Job_1 Job_2 Job_3 Job_4 Job_5 ;\n", " \n", "param a : Job_1\tJob_2 Job_3\tJob_4 Job_5 :=\n", "Worker_1\t3\t4\t8\t7\t8\n", "Worker_2\t2\t5\t3\t2\t6\n", "Worker_3\t7\t9\t1\t8\t3\n", "Worker_4\t5\t3\t4\t6\t6\n", "Worker_5\t8\t9\t7\t5\t8 ;\n", "\n", "end;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise\n", "\n", "Suppose we want to assign just two workers. What is the minimum time solution using just two workers?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Knapsack Problems" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Typical Applications\n", "\n", "* Resource allocations with financial constraints\n", "* Construction and scoring of a heterogenous test\n", "* Selection of Capital Investments" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example\n", "\n", "Need to complete a set of jobs\n", "\n", "\n", "| | A | B | C | D | E | F | G |\n", "|:-----:|:-:|:-:|:-:|:--:|:--:|:-:|:-:|\n", "| Value | 7 | 9 | 5 | 12 | 14 | 6 | 12 |\n", "| Time | 3 | 4 | 2 | 6 | 7 | 3 | 5 |\n", "\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GLPSOL: GLPK LP/MIP Solver, v4.52\n", "Parameter(s) specified in the command line:\n", " -m /dev/stdin\n", "Reading model section from /dev/stdin...\n", "Reading data section from /dev/stdin...\n", "/dev/stdin:29: warning: final NL missing before end of file\n", "29 lines were read\n", "Generating Obj...\n", "Generating C...\n", "Model has been successfully generated\n", "GLPK Integer Optimizer, v4.52\n", "2 rows, 7 columns, 14 non-zeros\n", "7 integer variables, all of which are binary\n", "Preprocessing...\n", "1 row, 7 columns, 7 non-zeros\n", "7 integer variables, all of which are binary\n", "Scaling...\n", " A: min|aij| = 2.000e+00 max|aij| = 7.000e+00 ratio = 3.500e+00\n", "Problem data seem to be well scaled\n", "Constructing initial basis...\n", "Size of triangular part is 1\n", "Solving LP relaxation...\n", "GLPK Simplex Optimizer, v4.52\n", "1 row, 7 columns, 7 non-zeros\n", "* 0: obj = 0.000000000e+00 infeas = 0.000e+00 (0)\n", "* 7: obj = 2.850000000e+01 infeas = 0.000e+00 (0)\n", "OPTIMAL LP SOLUTION FOUND\n", "Integer optimization begins...\n", "+ 7: mip = not found yet <= +inf (1; 0)\n", "Solution found by heuristic: 26\n", "+ 9: >>>>> 2.800000000e+01 <= 2.800000000e+01 0.0% (4; 0)\n", "+ 9: mip = 2.800000000e+01 <= tree is empty 0.0% (0; 7)\n", "INTEGER OPTIMAL SOLUTION FOUND\n", "Time used: 0.0 secs\n", "Memory used: 0.1 Mb (137038 bytes)\n", " A 1\n", " B 1\n", " C 0\n", " D 0\n", " E 0\n", " F 0\n", " G 1\n", "Model has been successfully processed\n" ] } ], "source": [ "%%script glpsol -m /dev/stdin\n", "\n", "set ITEMS;\n", "\n", "param value{ITEMS};\n", "param cost{ITEMS};\n", "\n", "var x {ITEMS} binary;\n", "\n", "maximize Obj: sum{i in ITEMS} value[i]*x[i];\n", "subject to C: sum{i in ITEMS} cost[i]*x[i] <= 12 ;\n", "\n", "solve;\n", "\n", "for {i in ITEMS}{\n", " printf \"%3s %2d\\n\",i,x[i];\n", "}\n", "\n", "data;\n", "\n", "param : ITEMS : value cost :=\n", " A 7 3\n", " B 9 4\n", " C 5 2\n", " D 12 6\n", " E 14 7\n", " F 6 3\n", " G 12 5 ;\n", " \n", "end;\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise\n", "\n", "| Investment | Location | Cost (millions) | Expected Profit |\n", "| :--------: | :------: | :-------------: | :-------------: |\n", "| 1 | Europe | 10 | 1.0 |\n", "| 2 | Europe | 8 | 0.9 |\n", "| 3 | Europe | 8 | 0.9 |\n", "| 4 | South America | 16 | 2.0 |\n", "| 5 | South America | 12 | 1.4 |\n", "| 6 | Africa | 4 | 0.2 |\n", "| 7 | Africa | 6 | 0.5 |\n", "| 8 | Africa | 16 | 2.1 |\n", "\n", "The objective is to maximize the total expected profits subject to:\n", "\n", "* Contractual commitments require at least 2 investments in Europe\n", "* There must be one South American Investment\n", "* No more than one African investment\n", "* Total cost must be less than $40 million\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "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 }