{ "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": [ "# Inventory Management" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This [IPython notebook](http://ipython.org/notebook.html) illustrates the formulation of an elementary model for multi-product plant 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": [ "%matplotlib inline\n", "from pylab import *\n", "\n", "from IPython.core.display import HTML\n", "HTML(open(\"styles/custom.css\", \"r\").read())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Economic Order Quantity (EOQ)" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\nit0yMvxx1kYajbFYQ3mDyJXwK+L3uZ8QjDSb0UwioiLcLVLWI9ZoXqFC/NRVq1YuMZpnNomN5LHe\nWdu3bxd/f/+4qaLatWsnmc7atm2b+Pv733Y6y34aaezYsRIcHCxbtmyROnXqSEREhFy7dk2qVavm\ncDpLRKRBgwYyderUuM+xhvXkZDx16pSEh4eLiHb179y5s1y8eFHKly8f10biOo888khGLqOsXLlS\nPv74YxERee655+TAgQOybds22bVrlwwcOFAOHTokv/32m1y4cEF69+4tV65ciTt3//79snz58rjP\nNptNJk6cKDExMRIVFZVkCjK9kMHprNSMp+sCNa3OvIoJEyYycOAAdu/eHTeszq4UzluY3578jYbT\nG7L62Gr6/NqHWZ1nkUOlarBqSOdKc0/F0ehCKUVgYCC9evWifv36APTv3597LaeA2HPq1KlDt27d\nuPfee7nrrrto0KCBw3Yd9VGvXj06duyIv78/JUqUwM/Pj8KFCzuUceHChQwaNIjRo0eTN29eKlas\nyPjx46lcubJDGf/44w/efPNNcuTIQe7cuZkyZQpFixalcePG+Pn58dBDD9GqVau4Oj4+PnzxxRcZ\nuo779++nefPmABQvXpwtW7bQrVs3cuXKhb+/P59++in3338/Q4YMYfz48XGjMYCQkBD69u0b93nK\nlCm8//77jBgxApvNlmQa0W3cTssAPwB3Z0RTuWojjaOKc+fOCSB9+76QpvO8mR2nd0iBDwsIwUi/\nX/pJjC3GLXJkmcyGiY3m6VhpbkjI9et6AeyNGzekXr16smPHDjdL5Fyio6Ole/fusnjx4gQuyhMn\nusb1HmdnNlRKhQABwGYgMl73iGNrmRu5XewsR5QtW4kTJ44SExMT50qX3Vnx7woenvMwEdER9Avs\nx5cdvnT5iMTjY2clzmnu66uDJZqc5hnmqaeeYt++fURERNCrVy/efvttd4vkdGLdkWfPng3AqVOn\n2LhxI126dHF6367IbBjkoFhEZHV6O3UW6VEi8+bN44knnmDlypVxw06DViQd5nQgPDqcvoF9mdph\nqksViccqkcjI+PDsV67oqarevWHEiATRdQ2GjDBv3jwefvhh8ufP7/S+nK5EHHTYFOguIi+mt1Nn\nkR4lcvPmTfLnz0/z5m1ZuTLLJWx0KiuPruTh2Q8THh1On4A+TOs4zWWKxOOUiFg5zd95Ry8UBJPT\n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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "K = 200.00 # Cost to place an order\n", "D = 1200. # Annual Demand\n", "h = 25.00 # Cost of holding an item for one year\n", "\n", "HC = lambda Q: Q*h/2.0\n", "OC = lambda Q: K*D/Q\n", "AC = lambda Q: OC(Q) + HC(Q)\n", "\n", "EOQ = sqrt(2.0*D*K/h)\n", "\n", "Q = linspace(50,400)\n", "plot(Q,AC(Q),lw=2)\n", "xlim(0,400)\n", "ylim(0,ylim()[1])\n", "\n", "hold(True)\n", "plot(Q,HC(Q),'r',lw = 2)\n", "plot(Q,OC(Q),'g',lw = 2)\n", "plot([EOQ,EOQ,0],[0,AC(EOQ),AC(EOQ)],'k--')\n", "hold(False)\n", "\n", "xlabel('Q: Order Quantity')\n", "ylabel('Annual Cost')\n", "title('Variable Costs of Maintaining Inventory')\n", "\n", "text(240,4600,'Total Inventory Costs',horizontalalignment='right')\n", "annotate('', xy=(275,AC(275)), xytext=(240,4600),\n", " arrowprops=dict(shrink=0.1,width=0.5,headwidth=4,frac=0.25))\n", "\n", "text(250,2500,'Holding Costs = $h Q/2$',verticalalignment='center')\n", "annotate('', xy=(225,HC(225)), xytext=(250,2500),\n", " arrowprops=dict(shrink=0.1,width=0.5,headwidth=4,frac=0.25))\n", "\n", "text(250,1500,'Order Costs = $K D/Q$',verticalalignment='center')\n", "annotate('', xy=(225,OC(225)), xytext=(250,1500),\n", " arrowprops=dict(shrink=0.1,width=0.5,headwidth=4,frac=0.25))\n", "\n", "text(200,300,'Economic Order Quantity',verticalalignment='center')\n", "annotate('', xy=(EOQ,0), xytext=(200,300),\n", " arrowprops=dict(shrink=0.1,width=0.5,headwidth=4,frac=0.15))\n", "\n", "text(25,1900,'Minimum Cost',verticalalignment='center')\n", "annotate('', xy=(0,AC(EOQ)), xytext=(25,1900),\n", " arrowprops=dict(shrink=0.1,width=0.5,headwidth=4,frac=0.1))\n", "\n", "savefig('img/InventoryManagementEOQ.png')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [default]", "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }