{
"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
}