{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "i_4QVqdV96a6" }, "source": [ "# Linear Programming\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "woaZjkArTMAh" }, "source": [ "## Introduction\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "n0AD_VXnYiKq" }, "source": [ "A local pillow company designs pillows especially for pregnant and nursing mothers. There are two pillows that they produce referred here as large and small. The large pillow requires six yards of fabric, one hour of sewing and eleven pounds of fill. The small pillow requires seven yards of fabric, three hours of sewing and four pounds of fill.\n", "\n", "The manager, trying to keep all of this straight creates a table.\n", "\n", "|Pillow|Fabric|Sewing|Fill|\n", "|:------:|:------:|:------:|:----:|\n", "|Large |6 |1 |11 |\n", "|Small |7 |3 |4 |\n", "\n", "The manager being an astute business man, wants to limit inventory and labor. Each week they can source 1370 yards of fabric and 1540 pounds of fill. With a work crew that can do at most 540 hours of labour each week. He adds this information to his table feeling very satisfied.\n", "\n", "|Pillow|Fabric|Sewing|Fill|\n", "|:------:|:------:|:------:|:----:|\n", "|Large |6 |1 |11 |\n", "|Small |7 |3 |4 |\n", "|Weekly Max| 1370|540|1540|\n", "\n", "Using some hueristics, the manager cranks out some pillows of each type every week. One day an intrept intern asks, \"Are we maximizing our profit?\" The large pillow sells for a $\\$ $3 profit, while the small pillow sells for a $\\$ $2 profit. The intern adds this to the table but still does not know if they are maximizing profit.\n", "\n", "|Pillow|Fabric|Sewing|Fill|Profit|\n", "|:------:|:------:|:------:|:----:|:---:|\n", "|Large |6 |1 |11 |3\n", "|Small |7 |3 |4 |2\n", "|Weekly Max| 1370|540|1540|???\n", "\n", "The intern continues down this line of thought and comes up with a way to maximize the number of pillows produced. They let $x$ be the number of large pillows and $y$ be the number of small pillows. They create a system of inequalities:\n", "\n", "$$\n", "\\left\\{\n", "\\begin{array}{l}\n", "6x+7y\\leq 1370\\\\\n", "x+3y\\leq 540\\\\\n", "11x+4y\\leq 1540\n", "\\end{array}\n", "\\right.\n", "$$\n", "\n", "To graph this properly, we'll find the corner points." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "X39A7NEyRKdt", "outputId": "41343264-65ac-4981-f0f1-f125cacf9a95" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([ 30., 170.])" ] }, "metadata": {}, "execution_count": 1 } ], "source": [ "import numpy as np\n", "\n", "A = np.array([[6,7],[1,3],[11,4]])\n", "b = np.array([1370,540,1540])\n", "\n", "np.linalg.solve(A[0:2,:],b[0:2])" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "p3YIV4RTU-_R", "outputId": "32cf5665-ad23-4e11-90bd-ec3b6256864b" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([ 84.82758621, 151.72413793])" ] }, "metadata": {}, "execution_count": 2 } ], "source": [ "np.linalg.solve(A[1:3,:],b[1:3])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "VBS_jjUCVDKJ", "outputId": "c5ed797f-ff1c-4164-984f-10f1cad42588" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([100., 110.])" ] }, "metadata": {}, "execution_count": 3 } ], "source": [ "np.linalg.solve(A[[0,2],:],b[[0,2]])" ] }, { "cell_type": "markdown", "metadata": { "id": "0GbUkHE99XEH" }, "source": [ "Three lines will have three intersections $\\binom32=3$ We note that the intersection point of the first line and the third line is outside of the feasible region by the second line. A graph of the feasible set is provided below." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 448 }, "id": "KhIcgYdm7VO_", "outputId": "f840b4bb-2d04-4610-9a80-ceb4f22e8d3c" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 4 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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tG0LDz8MeXnQq1cn8vLyrI5kGacXlLi4OBo3bkxAQAAVK1akQ4cO7Nq1K982d999NzabLd/Uu3dvZ0cREREpciZPNkea3bz5OLNmDbc6jmWcXlDWrl1LTEwMGzduZMWKFeTk5NCqVSvOnDmTb7unn36apKQkxzRhwgRnRxERESlyQkNh3Dhz/rnn3uC33w5amscqfs5+w2XLluX7ed68eVSsWJGEhATuuusux/JSpUoREhLi7F8vIiJS5EVHw7vvwsaNdvr3b8fChdusjlToXH4NSmpqKgBly5bNt3zBggWUL1+eunXrMmLECDIzMy/5HtnZ2aSlpeWbREREPJWPjzk2ip8fLFq0nSVL3rQ6UqFzaUGx2+0MHDiQO+64g7p16zqWP/roo8yfP581a9YwYsQI3nvvPR577NK3VMXFxREUFOSYwsLCXBlbRETEcvXqwbPPmvMxMf1JT/eu/zl3+imev4qJiWH79u2sX5//VqlevXo55uvVq0flypVp0aIF+/bto0aNGhe8z4gRI4iNjXX8nJaWppIiIiIeb9Qo+OgjOHDgLC+80JlJk76yOlKhcdk3KH379mXp0qWsWbOGqlWrXnbbpk2bArB3796Lrvf39ycwMDDfJCIi4ulKlYLZs835qVO/JiHhG0vzFCanFxTDMOjbty+LFy9m9erVREREXPE1iYmJAFSuXNnZcURERIq0Vq3g0UfBboenn36I3NxcqyMVCqcXlJiYGObPn8/7779PQEAAycnJJCcnk5WVBcC+fft45ZVXSEhI4ODBgyxZsoTu3btz1113ceuttzo7joiISJH3xhsQHAxbt55k2rTYK27vCZxeUGbNmkVqaip33303lStXdkwfffQRAMWLF2flypW0atWK2rVrM3jwYDp16sQXX3zh7CgiIiIeoVIlmDjRnB81ajqHD1/8kghP4vSLZA3DuOz6sLAw1q5d6+xfKyIi4tGefBLeeQfWrzeIifkXS5bsxGazWR3LZfQsHhERkSLg/NgoxYrB0qW7WLRohtWRXEoFRUREpIioUweG//F4nn79BpOammJpHldSQRERESlCnnsOataEpKRzjBz5sNVxXEYFRUREpAgpUeLPsVFmzlzJxo3LrQ3kIiooIiIiRcy990KPHmAY0KtXF3JycqyO5HQqKCIiIkXQa69BuXKwbdtpJk3qZ3Ucp1NBERERKYLKl4fXXzfnX3wxngMHfrE2kJOpoIiIiBRR3bvDPfdAVpZBnz7/uuJYZEWJCoqIiEgRZbOZF8z6+8Py5fv46KNJVkdyGhUUERGRIqxWLRg50pwfMGA4p0+fsjaQk6igiIiIFHFDh0Lt2nD8eA7Dh3e0Oo5TqKCIiIgUcf7+MGeOOR8fv5b164v+A3hVUERERDzAXXdBz57mfHR0N86dO2dtoOukgiIiIuIhJkyAihVhx45UJk7sbXWc66KCIiIi4iHKloVJf9zI88orc9mzZ5u1ga6DCoqIiIgH6dIFWrWC7Gzo06d9kR0bRQVFRETEg9hsMHOm+VDBVasOMn/+eKsjXRMVFBEREQ9TowaMHm3Ox8aO4sSJ49YGugYqKCIiIh5o8GCoWxdOnMhl6NAHrY5TYCooIiIiHqhYMYiPN+fnzv2Ob75ZZG2gAlJBERER8VDNmkHvP+42jo5+nOzsbGsDFYAKioiIiAeLi4OQENi9O524uJ5Wx7lqKigiIiIeLDgYpk415+PiFvDLL1stzXO1VFBEREQ83EMPwf33w7lzEB1dNMZGUUERERHxcDYbzJgBpUrBunVHmDv3ZasjXZEKioiIiBcID4eX/+glzz77CsePJ1ma50pUUERERLzEgAHQoAGcPp3H4MEPWB3nslRQREREvISfnzk2is0G8+dvZsWKD62OdEkqKCIiIl6kcWPo29ec79PnKbKysqwNdAkqKCIiIl5mzBioUgX27TvDmDE9rI5zUSooIiIiXiYwEKZPN+cnTPiE7du/tzbQRaig/EVRuC9cRETEGTp0gAcegNxciI7ugN1uB8zPwhMnTnDw4EFOnDhh2WejCgqQkpLClClTGDVqFAB2u4qKiIh4vmnToHRp+O67JKZNG8KUKVOoWbMmFSpUICIiggoVKlCzZk2mTJlCSkpKoWazGUXwa4O0tDSCgoJITU0lMDDwut5r+fLldOrUiczMTEdLbN8ePv/cGUlFRIoiH8D4YxJPN3WqeftxQACcOQOGYcv3rYnNZgOgVKlSLFy4kNatW1/z7yrI57dXf4OyfPly2rZtS1ZWlk7viIiIV4qJgUaNID0datS48HIHwzAwDIOsrCzatm3L8uXLCyWXpQVlxowZhIeHU6JECZo2bcr33xfeRTopKSl06tQJwzAc591ERES8ja+vOTaKjw/s2QPlyl18O7vdjmEYdOrUqVBO91hWUD766CNiY2MZPXo0W7ZsoX79+rRu3Zrjx48Xyu9/5513yMzMVDkRERGvFxUFAwea876+l97ObreTmZnJu+++6/JMll2D0rRpUxo3bsz0P+5zstvthIWF0a9fP4YPH37Z117vNSiGYVCzZk32799/0VM7998PH39c4LeV62QYkJlpzpcqZY50KCKF6/y/Q/0b9D4ZGeapniNHzFM9+/ZdfDubzUZkZCR79uxxXJ9ytQry+e1XoHd2knPnzpGQkMCIESMcy3x8fGjZsiUbNmy4YPvs7Gyys7MdP6elpV3X7z958iT7LnXkga++Mq9qFhER8Ub79kHJknCxQWYNw2Dfvn2cOnWKcpc6H+QElpziOXHiBHl5eVSqVCnf8kqVKpGcnHzB9nFxcQQFBTmmsLCw6/r9GRkZ1/V6ERERT9es2eXXp6enu/T3W/INSkGNGDGC2NhYx89paWnXVVJKX+brkdBQ8zbjO+649Ovvv78N/v7Fr/n3y8UZhkFmZh5wmFKlqmOzXeZEqIi4hPnv8DSlSuVhs1WwOo64UHZ2Nl99teyC5ampkJcHM2de/vUBAQEuSmaypKCUL18eX19fjh07lm/5sWPHCAkJuWB7f39//P39nfb7y5UrR40aNS56DcrRozB7tjn93fnzbl27flng825ydXRqTcR6+nfoHUqVMnjxxUtfj3kp5z8Ly5Yt68J0Fp3iKV68OA0bNmTVqlWOZXa7nVWrVtHsSt8pOYHNZqNfv37X9Nr+/furnIiISJHn7p+Flt3F89FHH9GjRw/mzJlDkyZNmDx5Mh9//DG//PLLBdem/J0zRpJNSUmhatWqZGVlXdWtxj4+PpQsWZIjR44QHBx8Tb9TRETEnRT2Z2GRGEn2kUce4bXXXuOFF16gQYMGJCYmsmzZsiuWE2cJDg5m4cKF2Gw2fHwufxh8fHyw2WwsWrRI5URERDyGO38W6lk8f3kWD3DJ5w8sWrSIVq1aXdfvEhERcUeF9VlYJL5BcRetW7fmyJEjTJ48mcjIyHzrIiMjmTx5Mr/99pvKiYiIeCx3/Cz0+m9Q/sowDE6dOkV6ejoBAQGULVtWF8SKiIhXceVnoduPJOuubDYb5cqVc+nIeCIiIu7MXT4Lvf4Uj4iIiLgfFRQRERFxOyooIiIi4nZUUERERMTtqKCIiIiI21FBEREREbdTJG8zPj90S1pamsVJRERE5Gqd/9y+miHYimRBSU9PByAsLMziJCIiIlJQ6enpBAUFXXabIjmSrN1u5+jRowQEBDh9pNe0tDTCwsL49ddfnTpKbVGh/ffu/QcdA2/ff9Ax8Pb9B9cdA8MwSE9PJzQ09IoPJyyS36D4+PhQtWpVl/6OwMBAr/0PE7T/3r7/oGPg7fsPOgbevv/gmmNwpW9OztNFsiIiIuJ2VFBERETE7aig/I2/vz+jR4/G39/f6iiW0P579/6DjoG37z/oGHj7/oN7HIMieZGsiIiIeDZ9gyIiIiJuRwVFRERE3I4KioiIiLgdFRQRERFxOyoofzFjxgzCw8MpUaIETZs25fvvv7c6kkvExcXRuHFjAgICqFixIh06dGDXrl35tjl79iwxMTGUK1eO0qVL06lTJ44dO2ZRYtcaN24cNpuNgQMHOpZ5w/7/9ttvPPbYY5QrV46SJUtSr149fvjhB8d6wzB44YUXqFy5MiVLlqRly5bs2bPHwsTOk5eXx6hRo4iIiKBkyZLUqFGDV155Jd/zQTxt/9etW0e7du0IDQ3FZrPx2Wef5Vt/Nft76tQpunbtSmBgIMHBwfTs2ZOMjIxC3Ivrc7ljkJOTw7Bhw6hXrx433HADoaGhdO/enaNHj+Z7j6J8DK7038Bf9e7dG5vNxuTJk/MtL8z9V0H5w0cffURsbCyjR49my5Yt1K9fn9atW3P8+HGroznd2rVriYmJYePGjaxYsYKcnBxatWrFmTNnHNsMGjSIL774gk8++YS1a9dy9OhROnbsaGFq19i8eTNz5szh1ltvzbfc0/f/9OnT3HHHHRQrVoyvv/6aHTt28Prrr1OmTBnHNhMmTGDq1KnMnj2bTZs2ccMNN9C6dWvOnj1rYXLnGD9+PLNmzWL69Ons3LmT8ePHM2HCBKZNm+bYxtP2/8yZM9SvX58ZM2ZcdP3V7G/Xrl35+eefWbFiBUuXLmXdunX06tWrsHbhul3uGGRmZrJlyxZGjRrFli1bWLRoEbt27aJ9+/b5tivKx+BK/w2ct3jxYjZu3EhoaOgF6wp1/w0xDMMwmjRpYsTExDh+zsvLM0JDQ424uDgLUxWO48ePG4Cxdu1awzAMIyUlxShWrJjxySefOLbZuXOnARgbNmywKqbTpaenGzVr1jRWrFhh/OMf/zAGDBhgGIZ37P+wYcOMO++885Lr7Xa7ERISYkycONGxLCUlxfD39zc++OCDwojoUm3btjWefPLJfMs6duxodO3a1TAMz99/wFi8eLHj56vZ3x07dhiAsXnzZsc2X3/9tWGz2Yzffvut0LI7y9+PwcV8//33BmAcOnTIMAzPOgaX2v8jR44YVapUMbZv325Ur17dmDRpkmNdYe+/vkEBzp07R0JCAi1btnQs8/HxoWXLlmzYsMHCZIUjNTUVgLJlywKQkJBATk5OvuNRu3ZtqlWr5lHHIyYmhrZt2+bbT/CO/V+yZAmNGjXi4YcfpmLFikRFRfHmm2861h84cIDk5OR8xyAoKIimTZt6xDH4v//7P1atWsXu3bsB+PHHH1m/fj1t2rQBPH///+5q9nfDhg0EBwfTqFEjxzYtW7bEx8eHTZs2FXrmwpCamorNZiM4OBjw/GNgt9vp1q0bQ4YM4ZZbbrlgfWHvf5F8WKCznThxgry8PCpVqpRveaVKlfjll18sSlU47HY7AwcO5I477qBu3boAJCcnU7x4ccc/yvMqVapEcnKyBSmd78MPP2TLli1s3rz5gnXesP/79+9n1qxZxMbG8txzz7F582b69+9P8eLF6dGjh2M/L/ZvwhOOwfDhw0lLS6N27dr4+vqSl5fH2LFj6dq1K4DH7//fXc3+JicnU7FixXzr/fz8KFu2rEcek7NnzzJs2DC6dOnieFiepx+D8ePH4+fnR//+/S+6vrD3XwXFy8XExLB9+3bWr19vdZRC8+uvvzJgwABWrFhBiRIlrI5jCbvdTqNGjXj11VcBiIqKYvv27cyePZsePXpYnM71Pv74YxYsWMD777/PLbfcQmJiIgMHDiQ0NNQr9l8uLycnh3//+98YhsGsWbOsjlMoEhISmDJlClu2bMFms1kdB9BFsgCUL18eX1/fC+7SOHbsGCEhIRalcr2+ffuydOlS1qxZQ9WqVR3LQ0JCOHfuHCkpKfm295TjkZCQwPHjx7ntttvw8/PDz8+PtWvXMnXqVPz8/KhUqZJH7z9A5cqVufnmm/Mtq1OnDocPHwZw7Ken/psYMmQIw4cPp3PnztSrV49u3boxaNAg4uLiAM/f/7+7mv0NCQm54KaB3NxcTp065VHH5Hw5OXToECtWrHB8ewKefQy+/fZbjh8/TrVq1Rx/Fw8dOsTgwYMJDw8HCn//VVCA4sWL07BhQ1atWuVYZrfbWbVqFc2aNbMwmWsYhkHfvn1ZvHgxq1evJiIiIt/6hg0bUqxYsXzHY9euXRw+fNgjjkeLFi3Ytm0biYmJjqlRo0Z07drVMe/J+w9wxx13XHBr+e7du6levToAERERhISE5DsGaWlpbNq0ySOOQWZmJj4++f/8+fr6YrfbAc/f/7+7mv1t1qwZKSkpJCQkOLZZvXo1drudpk2bFnpmVzhfTvbs2cPKlSspV65cvvWefAy6devGTz/9lO/vYmhoKEOGDGH58uWABfvv9Mtui6gPP/zQ8Pf3N+bNm2fs2LHD6NWrlxEcHGwkJydbHc3p+vTpYwQFBRnffPONkZSU5JgyMzMd2/Tu3duoVq2asXr1auOHH34wmjVrZjRr1szC1K7117t4DMPz9//77783/Pz8jLFjxxp79uwxFixYYJQqVcqYP3++Y5tx48YZwcHBxueff2789NNPxgMPPGBEREQYWVlZFiZ3jh49ehhVqlQxli5dahw4cMBYtGiRUb58eWPo0KGObTxt/9PT042tW7caW7duNQDjjTfeMLZu3eq4Q+Vq9ve+++4zoqKijE2bNhnr1683atasaXTp0sWqXSqwyx2Dc+fOGe3btzeqVq1qJCYm5vvbmJ2d7XiPonwMrvTfwN/9/S4ewyjc/VdB+Ytp06YZ1apVM4oXL240adLE2Lhxo9WRXAK46DR37lzHNllZWcYzzzxjlClTxihVqpTx4IMPGklJSdaFdrG/FxRv2P8vvvjCqFu3ruHv72/Url3biI+Pz7febrcbo0aNMipVqmT4+/sbLVq0MHbt2mVRWudKS0szBgwYYFSrVs0oUaKEERkZaYwcOTLfB5Gn7f+aNWsu+u++R48ehmFc3f6ePHnS6NKli1G6dGkjMDDQeOKJJ4z09HQL9ubaXO4YHDhw4JJ/G9esWeN4j6J8DK7038DfXaygFOb+2wzjL0MnioiIiLgBXYMiIiIibkcFRURERNyOCoqIiIi4HRUUERERcTsqKCIiIuJ2VFBERETE7aigiIiIiNtRQRERERG3o4IiIiIibkcFRURERNyOCoqIiIi4HRUUERERcTv/Dybggyc27v88AAAAAElFTkSuQmCC\n" }, "metadata": {} } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "x1= np.arange(0,30,.1)\n", "x2= np.arange(30,100,.1)\n", "x3 = np.arange(100,140,.1)\n", "\n", "\n", "y1 = (540-1*x1)/3\n", "y2 = (1370-6*x2)/7\n", "y3 = (1540-11*x3)/4\n", "\n", "plt.plot(x1,y1, color = \"black\")\n", "plt.plot(x2,y2, color = \"black\")\n", "plt.plot(x3,y3, color = \"black\")\n", "plt.plot(x1,np.zeros(300),x2,np.zeros(700),x3,np.zeros(400), color = \"black\")\n", "plt.plot(np.zeros(1800),np.arange(0,180,.1),color = \"black\")\n", "plt.scatter(30,170, s = 100, color = \"black\")\n", "plt.scatter(100,110, s = 100, color = \"black\")\n", "plt.scatter(0,180, s = 100, color = \"black\")\n", "plt.scatter(140,0, s = 100, color = \"black\")\n", "plt.scatter(0,180, s = 100, color = \"black\")\n", "plt.scatter(0,0, s = 100, color = \"black\")\n", "plt.fill_between(x1,0,y1, color = \"yellow\")\n", "plt.fill_between(x2,0,y2, color = \"yellow\")\n", "plt.fill_between(x3,0,y3, color = \"yellow\")" ] }, { "cell_type": "markdown", "metadata": { "id": "WSMdjBZs-Yeq" }, "source": [ "We should also note that there are corner points at the intersection of the vertical line $x = 0$ and the horizontal line $y=0$ including where those two lines intersect. The $y$-intercept is found by solving for $y$ in the sewing equation when $x=0$. The $x$-intercept is found by solving for $y$ in the fill equation when $y=0$." ] }, { "cell_type": "markdown", "metadata": { "id": "Y_lVo6Lt-CV6" }, "source": [ "So the intern now knows that any point inside this region is what is possible in any given week! Now we ask, how to maximize the profit? Let's get an equation in terms of our set up!\n", "\n", "$$\n", "P= 3x+2y\n", "$$\n", "\n", "We can pick some values for $P$ and see what happens. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 433 }, "id": "612nWb9T_MxL", "outputId": "eac94206-462e-4420-cfef-e4a24954eb81" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ], "source": [ "x1= np.arange(0,30,.1)\n", "x2= np.arange(30,100,.1)\n", "x3 = np.arange(100,140,.1)\n", "x4 = np.arange(0,70,.1)\n", "x5 = np.arange(0,100,.1)\n", "x6 = np.arange(0,130,.1)\n", "x7 = np.arange(0,160,.1)\n", "\n", "y1 = (540-1*x1)/3\n", "y2 = (1370-6*x2)/7\n", "y3 = (1540-11*x3)/4\n", "\n", "plt.plot(x1,y1, color = \"black\")\n", "plt.plot(x2,y2, color = \"black\")\n", "plt.plot(x3,y3, color = \"black\")\n", "plt.plot(x1,np.zeros(300),x2,np.zeros(700),x3,np.zeros(400), color = \"black\")\n", "plt.plot(np.zeros(1800),np.arange(0,180,.1),color = \"black\")\n", "plt.scatter(30,170, s = 100, color = \"black\")\n", "plt.scatter(100,110, s = 100, color = \"black\")\n", "plt.scatter(0,180, s = 100, color = \"black\")\n", "plt.scatter(140,0, s = 100, color = \"black\")\n", "plt.scatter(0,180, s = 100, color = \"black\")\n", "plt.scatter(0,0, s = 100, color = \"black\")\n", "plt.fill_between(x1,0,y1, color = \"yellow\")\n", "plt.fill_between(x2,0,y2, color = \"yellow\")\n", "plt.fill_between(x3,0,y3, color = \"yellow\")\n", "\n", "plt.plot(x4,(210-3*x4)/2,linestyle = \"dashed\", label = \"210\")\n", "plt.plot(x5,(300-3*x5)/2,linestyle = \"dashed\", label = \"300\")\n", "plt.plot(x6,(390-3*x6)/2,linestyle = \"dashed\", label = \"390\")\n", "plt.plot(x7,(480-3*x7)/2,linestyle = \"dashed\", label = \"480\")\n", "plt.legend()\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": { "id": "RAF7lkyDAdIe" }, "source": [ "We can see that for each of the $P$ values I selected there are some options for the day. We should also notice that the corner point looks like it will produce a line that just touches it!\n", "\n", "$$\n", "P = 3x + 2y = 3\\cdot100+2\\cdot110 = 520\n", "$$\n", "\n", "We'll graph that one and see!" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 430 }, "id": "H5LYHizLCoyG", "outputId": "e7ebe9c2-1eff-45d1-8656-eec157fa964f" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ], "source": [ "x1= np.arange(0,30,.1)\n", "x2= np.arange(30,100,.1)\n", "x3 = np.arange(100,140,.1)\n", "x4 = np.arange(0,70,.1)\n", "x5 = np.arange(0,100,.1)\n", "x6 = np.arange(0,130,.1)\n", "x7 = np.arange(0,160,.1)\n", "\n", "y1 = (540-1*x1)/3\n", "y2 = (1370-6*x2)/7\n", "y3 = (1540-11*x3)/4\n", "\n", "plt.plot(x1,y1, color = \"black\")\n", "plt.plot(x2,y2, color = \"black\")\n", "plt.plot(x3,y3, color = \"black\")\n", "plt.plot(x1,np.zeros(300),x2,np.zeros(700),x3,np.zeros(400), color = \"black\")\n", "plt.plot(np.zeros(1800),np.arange(0,180,.1),color = \"black\")\n", "plt.scatter(30,170, s = 100, color = \"black\")\n", "plt.scatter(100,110, s = 100, color = \"black\")\n", "plt.scatter(0,180, s = 100, color = \"black\")\n", "plt.scatter(140,0, s = 100, color = \"black\")\n", "plt.scatter(0,180, s = 100, color = \"black\")\n", "plt.scatter(0,0, s = 100, color = \"black\")\n", "plt.fill_between(x1,0,y1, color = \"yellow\")\n", "plt.fill_between(x2,0,y2, color = \"yellow\")\n", "plt.fill_between(x3,0,y3, color = \"yellow\")\n", "\n", "\n", "plt.plot(x7,(520-3*x7)/2,linestyle = \"dashed\", label = \"520\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "9oQYb5KwC4Xg" }, "source": [ "Triuphantly the intern tells the boss that we can maximize profits by making 100 large pillows and 110 small pillows!" ] }, { "cell_type": "markdown", "metadata": { "id": "DVKCnmI8UBTG" }, "source": [ "## Theory" ] }, { "cell_type": "markdown", "metadata": { "id": "5GgWvxZMYjTU" }, "source": [ "The theory of linear programming can be stated in terms of the contraints and the objective function. For a system of linear constraints and linear objective functions, the optimum values (minimum or maximum) will occur on the corner points of the feasible set described by the contraining function.\n", "\n", "If we consider that the feasible set of the constraining lines, it will create a polygon with sharp corners. The linear objective function will cut through the polygon. Any optimum point will be at one of the corners as the objective function just kisses the edge.\n", "\n", "Some care must be taken for unbounded feasible sets, an optimum solution may not be possible with the maximum (or minimum) going to infinity (negative infinity)." ] }, { "cell_type": "markdown", "metadata": { "id": "e50CvtqOIkNT" }, "source": [ "### Slack" ] }, { "cell_type": "markdown", "metadata": { "id": "1HE6EFgYDLBg" }, "source": [ "All of the inequalities in the constraint must be met but some will not be on their strict bounds. This leaves **slack** in those inequalities. Using our original problem as an example, we see that the sewing equation has some slack. We could have done more sewing with the maximum profit $(100,110)$.\n", "\n", "$$\n", "x+3y = 100 +330 = 430\\leq 540\n", "$$\n", "\n", "The inequality is solved but 100 more hours of sewing are available each week. This is slack in our solution. " ] }, { "cell_type": "markdown", "metadata": { "id": "qgqZjyObIljw" }, "source": [ "The previous problem can actually be restated in terms of slack with the inequalities replaced with equalities. \n", "\n", "$$\n", "\\left\\{\n", "\\begin{array}{l}\n", "6x+7y+s_1 = 1370\\\\\n", "x+3y +s_2 = 540\\\\\n", "11x+4y+ s_3 = 1540\n", "\\end{array}\n", "\\right.\n", "$$\n", "\n", "In the optimum solution $s_2=110$ and $s_1=s_3=0$. For the inequalities to continue to hold we must ask that $s_1,s_2,s_3\\geq 0$.\n", "\n", "Actually this insight gives us an alternative approach to solve linear programming problems. If we restate the contraint in equation form with slack variables, we can formulate the theory as solutions to the system of equations with some of the slack variables set to zero. Let's see that in action here.\n", "\n", "Since I have three equations, I'll be able to get a unique solution if I have three variables. Currently I have 5, $x,y,s_1,s_2,s_3$. If we set two of them equal to zero then we will be able to solve the system!\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 435 }, "id": "S4GhhdUyLt1P", "outputId": "b56e14f7-6dfe-41f6-c700-b6770e56a612" }, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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nj1haWmp967PnTuH1NRUvXedlJSklxDGxsbCwcEBPj4+tfMgJkin06GkpITv2ICGDh2KpKQknDhxQjp69eqFSZMmSb/nuza8O3fuICUlBR4eHvXv+1nuUbpVpVarhbW1tVi1apU4c+aMmDVrlnByctIbsUwPl5+fL44fPy6OHz8uAIhPP/1UHD9+XFy9elUIcXeasZOTk9i4caM4deqUCA0Nve804+7du4uEhASxf/9+4e3tzWnGfzFnzhzh6Ogo9u7dqzdlsLCwUKoze/Zs0bx5c7F7925x9OhRoVQqhVKplMorpwz6+/uLEydOiG3btokmTZqY5JTBmvLaa6+JuLg4cfnyZXHq1Cnx2muvCYVCIXbs2CGE4DuuSX+exSME37UhvPTSS2Lv3r3i8uXL4sCBA8LPz0+4uLiIrKwsIUT9escml6AIIcQXX3whmjdvLqysrESfPn3EoUOH5A7JpOzZs0cAuOeYOnWqEOLuVOO33npLuLm5CWtrazF06FBx7tw5vWvcunVLTJgwQdjZ2QkHBwcxffp0kZ+fL8PTGK/7vWMA4scff5TqFBUViblz54pGjRoJW1tbMXr0aJGRkaF3nStXrojAwEBhY2MjXFxcxEsvvSTKyspq+WmM1zPPPCNatGghrKysRJMmTcTQoUOl5EQIvuOa9NcEhe/68alUKuHh4SGsrKxEs2bNhEqlEhcvXpTK69M7VgghhDxtN0RERET3Z1JjUIiIiKh+YIJCRERERocJChERERkdJihERERkdJigEBERkdFhgkJERERGhwkKERERGR0mKERERGR0mKAQERGR0WGCQkREREaHCQoREREZnf8H9RTju20QgmkAAAAASUVORK5CYII=\n" }, "metadata": {} } ], "source": [ "\n", "x = np.arange(0,550,.1)\n", "\n", "y1 = (540-1*x)/3\n", "y2 = (1370-6*x)/7\n", "y3 = (1540-11*x)/4\n", "\n", "plt.plot(x,y1, color = \"black\")\n", "plt.plot(x,y2, color = \"black\")\n", "plt.plot(x,y3, color = \"black\")\n", "plt.plot(x,np.zeros(5500), color = \"black\")\n", "plt.plot(np.zeros(5500),x, color = \"black\")\n", "plt.scatter(30,170, s = 100, color = \"black\")\n", "plt.scatter(100,110, s = 100, color = \"blue\")\n", "plt.scatter(140,0, s = 100, color = \"yellow\")\n", "plt.scatter(0,180, s = 100, color = \"orange\")\n", "plt.scatter(0,195.7, s = 100, color = \"pink\")\n", "plt.xlim([-1,550])\n", "plt.ylim([-1,400])\n", "\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "oz4uAcafLsnF" }, "source": [ "1. $x=y=0$ This is the orgin in my graph, each slack is it's value and we achieve no profit, $P = \\$0$\n", "2. $x = s_1 = 0$ This is the *pink* point that falls outside of the feasible set.\n", "3. $x= s_2 = 0$ This is the *orange* point falling inside the feasible set with a profit of $P = 180*2 = \\$360$\n", "4. $x = s_3 =0$\n", "5. $y = s_1 = 0$\n", "6. $y = s_2 = 0$\n", "7. $y = s_3 = 0$\n", "8. $s_1 = s_2 = 0$\n", "9. $s_1 = s_3 = 0$ This was the optimal *blue* point\n", "10. $s_2 = s_3 =0$ Intersection of lines outside the feasible set" ] }, { "cell_type": "markdown", "metadata": { "id": "mgFjpaYlC50T" }, "source": [ "How do we know we got them all? We had 5 variables $(x,y,s_1,s_2,s_3)$ and were trying to solve 3 equations. So we were able to have $\\binom 52 = \\binom 53 =10$. Let's write up a little program that evaluates each of these for us!" ] }, { "cell_type": "markdown", "metadata": { "id": "NLphZsTwF9m6" }, "source": [ "Before we proceed, we should ask is there a quick way to tell if an intersection is outside of the feasible set. Let's look at the *pink* point. It has $x = s_1 = 0$ Let's ask python to solve that.\n", "\n", "I'll need to expand $A$ to include the slack variables. Just remeber there will be a lot of zeros! If I don't need $x$ and $s_1$, I'll only need the $y, s_2,$ and $s_3$ variables." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ejImnJw0GS0Y", "outputId": "e8b2be9f-1d7c-4774-85fa-c0c8999fd3cf" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([[7, 0, 0],\n", " [3, 1, 0],\n", " [4, 0, 1]])" ] }, "metadata": {}, "execution_count": 8 } ], "source": [ "A = np.array([[6,7,1,0,0],[1,3,0,1,0],[11,4,0,0,1]])\n", "\n", "A[:,[1,3,4]]\n" ] }, { "cell_type": "markdown", "metadata": { "id": "ycwo-MTfG9ln" }, "source": [ "Now I solve it with the original $b$." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "PIQj63u8HCdH", "outputId": "9d2679cb-d982-4995-acf6-7145fa276090" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([195.71428571, -47.14285714, 757.14285714])" ] }, "metadata": {}, "execution_count": 9 } ], "source": [ "np.linalg.solve(A[:,[1,3,4]],b)" ] }, { "cell_type": "markdown", "metadata": { "id": "-I2-mbmWHJc_" }, "source": [ "The issue is that the second slack variable $s_2$ is negative! The slack is about how much extra we have, if we don't have extra but used too much, we'll get negatives and that is not allowed. Let's write a little code to reassemble our variables." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "4N1kN-GGHnNW", "outputId": "3e09d072-8fee-4315-def4-d31d177548b8" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[0, 195.71428571428572, 0, -47.14285714285711, 757.1428571428572]" ] }, "metadata": {}, "execution_count": 10 } ], "source": [ "def buildFullList(indexref,solution):\n", " newlist =[]\n", " solutioncounter = 0\n", " for j in range(5):\n", " if j not in indexref:\n", " newlist.append(0)\n", " else:\n", " newlist.append(solution[solutioncounter])\n", " solutioncounter += 1\n", " return newlist\n", "\n", "indexref = [1,3,4]\n", "solution = np.linalg.solve(A[:,[1,3,4]],b)\n", "\n", "allVariables = buildFullList(indexref,solution)\n", "\n", "allVariables" ] }, { "cell_type": "markdown", "metadata": { "id": "DAA8uCw0H-Ix" }, "source": [ "Now I want to check for negatives!" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "8G3-QYxHIDSu", "outputId": "135b3f54-a106-4ad0-f9b4-c87472d5dd01" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "False" ] }, "metadata": {}, "execution_count": 11 } ], "source": [ "def testForFeasible(list1):\n", " return all([i>=0 for i in list1])\n", "\n", "testForFeasible(allVariables)" ] }, { "cell_type": "markdown", "metadata": { "id": "SlPDjpMHINJ-" }, "source": [ "We see this is not in the feasible set. Let's do one more thing and compute the profit from this list. I know this isn't possible but we'll need this function soon!" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "oPzLj7UXFIiz", "outputId": "a22bf56d-12bd-447a-9937-43de596d6f41" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "391.42857142857144" ] }, "metadata": {}, "execution_count": 12 } ], "source": [ "def profit(list):\n", " return 3*list[0]+2*list[1]\n", "\n", "profit(allVariables)" ] }, { "cell_type": "markdown", "metadata": { "id": "glBnuofFIf2W" }, "source": [ "Now I am going to put it all together and build a little table that looks at all 10 points in the order I presented them above." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "id": "c73gmZSGDqfa" }, "outputs": [], "source": [ "index = [[i,j,k] for i in range(5) for j in range(i+1,5) for k in range(j+1,5)] #which variables are not zero\n", "d = {0:'large',1:'small',2:'slackFabric',3:'slackSewing',4:'slackfill'} #dictionary for keeping variable labels straight\n", "\n", "X = []\n", "for i in index:\n", " solution = [round(i,5) for i in np.linalg.solve(A[:,i],b)]\n", " list1 = buildFullList(i,solution)\n", " X.append([(d[i[0]],d[i[1]],d[i[2]]),solution,profit(list1),testForFeasible(list1)])" ] }, { "cell_type": "markdown", "metadata": { "id": "9vMZl4T-KEIp" }, "source": [ "I'll print the data in a nice table with headers" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 363 }, "id": "9__JVex1J_lW", "outputId": "abce4479-f727-4c9c-bf7b-f8beeba80d00" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Variables Used Solution \\\n", "0 (large, small, slackFabric) [84.82759, 151.72414, -201.03448] \n", "1 (large, small, slackSewing) [100.0, 110.0, 110.0] \n", "2 (large, small, slackfill) [30.0, 170.0, 530.0] \n", "3 (large, slackFabric, slackSewing) [140.0, 530.0, 400.0] \n", "4 (large, slackFabric, slackfill) [540.0, -1870.0, -4400.0] \n", "5 (large, slackSewing, slackfill) [228.33333, 311.66667, -971.66667] \n", "6 (small, slackFabric, slackSewing) [385.0, -1325.0, -615.0] \n", "7 (small, slackFabric, slackfill) [180.0, 110.0, 820.0] \n", "8 (small, slackSewing, slackfill) [195.71429, -47.14286, 757.14286] \n", "9 (slackFabric, slackSewing, slackfill) [1370.0, 540.0, 1540.0] \n", "\n", " Profit In Feasible \n", "0 557.93105 False \n", "1 520.00000 True \n", "2 430.00000 True \n", "3 420.00000 True \n", "4 1620.00000 False \n", "5 684.99999 False \n", "6 770.00000 False \n", "7 360.00000 True \n", "8 391.42858 False \n", "9 0.00000 True " ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Variables UsedSolutionProfitIn Feasible
0(large, small, slackFabric)[84.82759, 151.72414, -201.03448]557.93105False
1(large, small, slackSewing)[100.0, 110.0, 110.0]520.00000True
2(large, small, slackfill)[30.0, 170.0, 530.0]430.00000True
3(large, slackFabric, slackSewing)[140.0, 530.0, 400.0]420.00000True
4(large, slackFabric, slackfill)[540.0, -1870.0, -4400.0]1620.00000False
5(large, slackSewing, slackfill)[228.33333, 311.66667, -971.66667]684.99999False
6(small, slackFabric, slackSewing)[385.0, -1325.0, -615.0]770.00000False
7(small, slackFabric, slackfill)[180.0, 110.0, 820.0]360.00000True
8(small, slackSewing, slackfill)[195.71429, -47.14286, 757.14286]391.42858False
9(slackFabric, slackSewing, slackfill)[1370.0, 540.0, 1540.0]0.00000True
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ] }, "metadata": {}, "execution_count": 14 } ], "source": [ "import pandas as pd\n", "\n", "X = pd.DataFrame(X,columns = ['Variables Used','Solution','Profit','In Feasible'])\n", "X" ] }, { "cell_type": "markdown", "metadata": { "id": "K41CpeRpKJPm" }, "source": [ "Lastly I'll use some manipulation to print the maximum inside the feasible set. First I restrict to in the feasible set, then I'll search for the maximum entry of profit." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 206 }, "id": "IEkLQYjDKR-M", "outputId": "0fe70418-3280-4d1b-d164-cb4a7c4b70d6" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Variables Used Solution Profit \\\n", "1 (large, small, slackSewing) [100.0, 110.0, 110.0] 520.0 \n", "2 (large, small, slackfill) [30.0, 170.0, 530.0] 430.0 \n", "3 (large, slackFabric, slackSewing) [140.0, 530.0, 400.0] 420.0 \n", "7 (small, slackFabric, slackfill) [180.0, 110.0, 820.0] 360.0 \n", "9 (slackFabric, slackSewing, slackfill) [1370.0, 540.0, 1540.0] 0.0 \n", "\n", " In Feasible \n", "1 True \n", "2 True \n", "3 True \n", "7 True \n", "9 True " ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Variables UsedSolutionProfitIn Feasible
1(large, small, slackSewing)[100.0, 110.0, 110.0]520.0True
2(large, small, slackfill)[30.0, 170.0, 530.0]430.0True
3(large, slackFabric, slackSewing)[140.0, 530.0, 400.0]420.0True
7(small, slackFabric, slackfill)[180.0, 110.0, 820.0]360.0True
9(slackFabric, slackSewing, slackfill)[1370.0, 540.0, 1540.0]0.0True
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ] }, "metadata": {}, "execution_count": 15 } ], "source": [ "XFeasible = X[X['In Feasible'] == True]\n", "\n", "XFeasible" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 81 }, "id": "DSP318AALFa5", "outputId": "13aedd47-b2e1-48dc-cb21-ae7d3d0e103f" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Variables Used Solution Profit In Feasible\n", "1 (large, small, slackSewing) [100.0, 110.0, 110.0] 520.0 True" ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Variables UsedSolutionProfitIn Feasible
1(large, small, slackSewing)[100.0, 110.0, 110.0]520.0True
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "
\n", "
\n" ] }, "metadata": {}, "execution_count": 16 } ], "source": [ "XFeasible[XFeasible['Profit'].max()==XFeasible['Profit']]" ] }, { "cell_type": "markdown", "metadata": { "id": "UI1Z7cIUL_Mw" }, "source": [ "This gives us exactly the solution we found graphically but an algorithmic way to find it!" ] }, { "cell_type": "markdown", "metadata": { "id": "gZAnmh5LlmwX" }, "source": [ "## Examples" ] }, { "cell_type": "markdown", "metadata": { "id": "VXEn-1oj8CG_" }, "source": [ "### Example 1" ] }, { "cell_type": "markdown", "metadata": { "id": "hbqQ17BOlqGN" }, "source": [ "Repeat the original question using python's tools for solving *Linear Programming* or **LP** problems. \n", "\n", "I'll use a tool from `scipy.optimize` The first issue is that it only minimizes! So I'll need to convert my statement to minimize but this is easy, just multiply your objective function by negative one.\n", "\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "rB8lqZDVFGie", "outputId": "d7195e55-5b3f-41e7-bce9-047ac92fa003" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " message: Optimization terminated successfully. (HiGHS Status 7: Optimal)\n", " success: True\n", " status: 0\n", " fun: -520.0\n", " x: [ 1.000e+02 1.100e+02]\n", " nit: 3\n", " lower: residual: [ 1.000e+02 1.100e+02]\n", " marginals: [ 0.000e+00 0.000e+00]\n", " upper: residual: [ inf inf]\n", " marginals: [ 0.000e+00 0.000e+00]\n", " eqlin: residual: []\n", " marginals: []\n", " ineqlin: residual: [ 0.000e+00 1.100e+02 0.000e+00]\n", " marginals: [-1.887e-01 -0.000e+00 -1.698e-01]\n", " mip_node_count: 0\n", " mip_dual_bound: 0.0\n", " mip_gap: 0.0" ] }, "metadata": {}, "execution_count": 17 } ], "source": [ "from scipy.optimize import linprog\n", "\n", "linprog([-3,-2],A[:,[0,1]],b)" ] }, { "cell_type": "markdown", "metadata": { "id": "9ap7yquBGnhN" }, "source": [ "Interpreting this result is a little difficult. `fun` returns the opposite of the value we were after (maximum of profit). `x` is the number of pillows we should be producing to achieve the maximum. `ineqlin: residuals` is giving the slack results." ] }, { "cell_type": "markdown", "metadata": { "id": "xwx5JA688Gqu" }, "source": [ "### Example 2" ] }, { "cell_type": "markdown", "metadata": { "id": "UCeUiE8j8Ngm" }, "source": [ "A manufacturer of downhill and cross-country skis reports that manufacturing time is 1 hours and 2 hours, respectively, per ski and that finishing time is 7 hours for each downhill and 6 hours for each cross-crountry ski. There are only 16 hours per week available for the manufacturing process and 56 hours for the finishing process. The average profit is \\$73 for downhill ski and \\$68 for cross-country ski. The manufacturer wants to know how many of each type of ski should be made to maximize the weekly profit." ] }, { "cell_type": "markdown", "source": [ "We first create the system of inequalities. Let $d$ be the number of downhill skis and $c$ be the number of cross country skis. Then\n", "\n", "$$\n", "\\left\\{\n", "\\begin{array}{l}\n", "1d+2c\\leq 16\\\\\n", "7d+6c\\leq 56\n", "\\end{array}\n", "\\right.\n", "$$\n", "\n", "And the objective function to maximize is\n", "\n", "$$\n", "P= 73d+68c\n", "$$" ], "metadata": { "id": "fLKq4fHIQXyZ" } }, { "cell_type": "code", "source": [ "A = np.array([[1,2],[7,6]])\n", "b = np.array([16,56])\n", "\n", "np.linalg.solve(A,b)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "sD6Skjr0RamD", "outputId": "0eef43fc-a8b4-40f3-c14e-507f3fda6062" }, "execution_count": 18, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([2., 7.])" ] }, "metadata": {}, "execution_count": 18 } ] }, { "cell_type": "code", "source": [ "d1= np.arange(0,2.1,.1)\n", "d2= np.arange(2,8,.1)\n", "x7 = np.arange(0,8,.1)\n", "\n", "\n", "c1 = (16-1*d1)/2\n", "c2 = (56-7*d2)/6\n", "\n", "\n", "plt.plot(d1,c1, color = \"black\")\n", "plt.plot(d2,c2, color = \"black\")\n", "plt.plot(d1,np.zeros(21),d2,np.zeros(60), color = \"black\")\n", "plt.plot(np.zeros(80),np.arange(0,8,.1),color = \"black\")\n", "plt.scatter(2, 7, s = 100, color = \"black\")\n", "plt.scatter(0, 8, s = 100, color = \"black\")\n", "plt.scatter(8, 0, s = 100, color = \"black\")\n", "\n", "plt.fill_between(d1,0,c1, color = \"yellow\")\n", "plt.fill_between(d2,0,c2, color = \"yellow\")\n", "\n", "plt.plot(x7,(622-73*x7)/68,linestyle = \"dashed\", label = \"622\")\n", "\n", "plt.legend()\n", "plt.show()\n" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 430 }, "id": "gSvQk-rDQXe5", "outputId": "fe80b0c0-7d3f-4f72-f46f-89aa3f9c12f6" }, "execution_count": 19, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "From the picture above, looks like the corner point $(2,7)$ maximizes the profit of \\$622. Let's see if our other tools agree!" ], "metadata": { "id": "jClRdDRvVtjy" } }, { "cell_type": "code", "source": [ "A = np.array(np.array([[1,2,1,0],[7,6,0,1]]))\n", "\n", "def profit(list):\n", " return 73*list[0]+68*list[1]\n", "\n", "index = [[i,j] for i in range(4) for j in range(i+1,4)] #which variables are not zero\n", "d = {0:'downhill',1:'cross',2:'Slack_Manufacturing',3:'Slack_Finishing'} #dictionary for keeping variable labels straight\n", "\n", "X = []\n", "for i in index:\n", " solution = [round(i,5) for i in np.linalg.solve(A[:,i],b)]\n", " list1 = buildFullList(i,solution)\n", " X.append([(d[i[0]],d[i[1]]),solution,profit(list1),testForFeasible(list1)])\n", "\n", "X = pd.DataFrame(X,columns = ['Variables Used','Solution','Profit','In Feasible'])\n", "XFeasible = X[X['In Feasible'] == True]\n", "XFeasible[XFeasible['Profit'].max()==XFeasible['Profit']]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 81 }, "id": "zsq1lpaeWrSF", "outputId": "8612375a-c45f-4042-bd6c-587001f5a0d1" }, "execution_count": 20, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Variables Used Solution Profit In Feasible\n", "0 (downhill, cross) [2.0, 7.0] 622.0 True" ], "text/html": [ "\n", "
\n", "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Variables UsedSolutionProfitIn Feasible
0(downhill, cross)[2.0, 7.0]622.0True
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "
\n", "
\n" ] }, "metadata": {}, "execution_count": 20 } ] }, { "cell_type": "markdown", "source": [ "Or with the built ins" ], "metadata": { "id": "JMXKg8H2YLp0" } }, { "cell_type": "code", "source": [ "linprog([-73,-68],A[:,[0,1]],b)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "eJJEOitFYOJ0", "outputId": "2645223b-28cd-4aee-e0b0-5674fe677ea9" }, "execution_count": 21, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " message: Optimization terminated successfully. (HiGHS Status 7: Optimal)\n", " success: True\n", " status: 0\n", " fun: -622.0\n", " x: [ 2.000e+00 7.000e+00]\n", " nit: 2\n", " lower: residual: [ 2.000e+00 7.000e+00]\n", " marginals: [ 0.000e+00 0.000e+00]\n", " upper: residual: [ inf inf]\n", " marginals: [ 0.000e+00 0.000e+00]\n", " eqlin: residual: []\n", " marginals: []\n", " ineqlin: residual: [ 0.000e+00 0.000e+00]\n", " marginals: [-4.750e+00 -9.750e+00]\n", " mip_node_count: 0\n", " mip_dual_bound: 0.0\n", " mip_gap: 0.0" ] }, "metadata": {}, "execution_count": 21 } ] }, { "cell_type": "markdown", "metadata": { "id": "fb2uZl1q_LR_" }, "source": [ "## References\n", "\n", "*How to Solve It* **G. Polya** Second Edition Princeton University Press 1957\n", "\n", "*Thinking Mathematically* **J. Mason** Addison-Wesley Publishing Company 1985\n", "\n", "*Grit: The Power of Passion and Perseverance* **A. Duckworth** ‎ Scribner Book Company 2016\n", "\n", "Examples adopted from the Open Problem Library of WeBWorK.\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "DGC5WaH4Y98C" }, "source": [ "## Problems" ] }, { "cell_type": "markdown", "metadata": { "id": "aFM8E4VSZA_p" }, "source": [ "1. A couple wants to invest up to \\$60000. They can purchase a type A bond yielding 8.75% return and a type B bond yielding a 10.25% return on the amount invested. They also want to invest at least as much in the type A bond as in the type B bond. They will also invest at least \\$30000 in type A and no more than \\$33000 in type B bond. How much should they invest in each type of bond to maximize their return?\n", "\n", "2. A diet is to contain at least 1023 units of carbohydrates, 1566 units of proteins, and 1431 calories. Two foods are available: F1 which costs \\$ 0.02 per unit and F2, which costs \\$ 0.05 per unit. A unit of food F1 contains 1 units of carbohydrates, 2 units of proteins and 7 calories. A unit of food F2 contains 9 units of carbohydrates, 8 units of proteins and 3 calories. Minimize the cost of the diet.\n", "\n", "3. Blink Appliances plans to order microwaves and stoves. Each microwave requires 2 hours to unpack and set up in the storeroom, and each stove requires 4 hours. The storeroom space is limited to 42 items. The budget of the store allows only 148 hours of employee time for unpacking and setup. Microwaves yields a profit of \\$147 each, and stoves yields a profit of \\$162 each. How many of each should the store order to maximize profit?" ] }, { "cell_type": "markdown", "metadata": { "id": "pz5xCYtbZCGZ" }, "source": [ "## Project Idea" ] }, { "cell_type": "markdown", "metadata": { "id": "LrBCw5_-ZJFK" }, "source": [ "Create a linear programming problem from your life. Consider diet, exercise, grades, time, relationships, and family. Can you maximize your life quantitativly?" ] } ], "metadata": { "colab": { "name": "Untitled30.ipynb", "provenance": [], "authorship_tag": "ABX9TyM+rKCAQ8f+RPgj7D0NM3x3", "include_colab_link": true }, "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.9.7" } }, "nbformat": 4, "nbformat_minor": 0 }