{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# State Task Network (Kondili and Sargent, 1993)\n", "\n", "A state-task network is a graphical representation of the activities in a multiproduct batch process. The representation includes the details needed for the short term scheduling of batch operations. A typical and well-studied example due to Kondili (1993) is shown below." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAFHCAYAAAClApYFAAABGWlDQ1BJQ0MgUHJvZmlsZQAAKJFj\nYGBSSCwoyGESYGDIzSspCnJ3UoiIjFJgf8jAxcDOIMogzMCUmFxc4BgQ4MMABDAaFXy7xsAIoi/r\ngszClMcLuFJSi5OB9B8gzk4uKCphYGDMALKVy0sKQOweIFskKRvMXgBiFwEdCGRvAbHTIewTYDUQ\n9h2wmpAgZyD7A5DNlwRmM4Hs4kuHsAVAbKi9ICDomJKflKoA8r2GoaWlhSaJfiAISlIrSkC0c35B\nZVFmekaJgiMwpFIVPPOS9XQUjAwMzRkYQOEOUf05EByejGJnEGIIgBCbI8HA4L+UgYHlD0LMpJeB\nYYEOAwP/VISYmiEDg4A+A8O+OcmlRWVQYxiZjBkYCPEB10FKNHeda6QAAAAJcEhZcwAAD2EAAA9h\nAag/p2kAAAFZaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFk\nb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5z\nOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAg\nIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0\ndHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+\nMTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJE\nRj4KPC94OnhtcG1ldGE+CkzCJ1kAAEAASURBVHgB7Z0J3FXT+sefQqQMGRKhlCEkiSZpQNFFpkjm\nqczzNSTzdc1ULso8h3DLnFSKyFAZy3RFIhUaVIRk/9d3/e8+97znPed9z/ye4fd8Pqf3nHX2Xmvt\n796d/exnPUOtwIlJREAEiorA77//bvfee68NHjzYFi9ebHvttZe1b9/emjdvbuuss46tWLHC5s+f\nbzNmzLAJEybY1KlTbd9997VLLrnEdt5556I6Vk1WBERABLJBYNVsdKI+REAE8kfg9ddft379+tma\na65p1113nR144IG22mqrVTmBb7/91m677Tbr1q2b9e3b1wYNGmRrrbVWlfvoSxEQAREoJQK1ZOEp\npdOpYyl1Arfccotddtlldv3119sZZ5xhtWvXTumQZ8+ebccff7yhAL344ou21VZbpbS/NhYBERCB\nYiUghadYz5zmXXYEUHTuuusuGzlypO22225pH/+ff/5p5557ro0YMcKwFrVo0SLtvrSjCIiACBQL\nAS1pFcuZ0jzLmsA999zjl6TefvvtjBWUVVdd1ffFkljPnj1t2rRptv7665c1Xx28CIhA6ROQhaf0\nz7GOsMgJfPrpp9a2bVt7+umnvYKSrcP566+/7IADDrBVVlnFnnnmmWx1q35EQAREoCAJSOEpyNOi\nSYnA/wjssccePrLqpptu+l9jlt4tWrTIttlmG7vvvvusV69eWepV3YiACIhA4RGQwlN450QzEoEI\ngddee80OPvhgmzVrVs6iqm6//Xa7//777b333ouMqzciIAIiUGoEpPCU2hnV8ZQUAULImzVrZtde\ne23Ojuu3336zTTbZxEaPHu1z+eRsIHUsAiIgAjVIQApPDcLX0CJQFYE//vjDGjRoYFOmTLHtttuu\nqk0z/q5///627rrrWjrLZiyLhYIj9Oqrrx5+TOsvSRXJh7rGGmuktb92EgEREIF4BFJL4hGvB7WJ\ngAjkhMC7777rlZBcKztMvkePHjZx4sS0joMIr44dO1qnTp28NSpcgkurM7fTsGHDfGLEVPdHQXzy\nyScT7rZkyRI75JBDEn6vL0RABEqbgBSe0j6/OroiJkBZiB133DEvR8A4n3zyibespDPg+++/7/f/\n5ptvbKONNrI777wznW4y2mf58uU2cODAuH0QhXb44Yf7UhtxN1CjCIhAyROQwlPyp1gHWKwEvv/+\ne9t0003zMv3NNtvMfv31V/v5558zGo8cP1h7Jk2aZB988IHPCo0fEjW8kFtvvdVndybDM9miEZav\nBgwYYE2aNLF27drZRx995Nvfeustu/zyy/17/rnhhhts3Lhx/jMZp7feemu/1Dd8+HDfduqpp9qc\nOXN82Q3fEPXPL7/8Yh06dIhq0VsREIFyI6DEg+V2xnW8RUMAi0XdunXzMt9wHMbElydVGTVqlNWp\nU8crHP/617+80rFs2TJf3JT8Qd27d/ff3XHHHfb888/72l/kAOrdu7f99NNP9sorr/gipxRCpcjp\n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\nnXeutjwG1h18gEaPHu1zIz377LOG4hQKZT969uzpXyg6FHJ96KGHwq/1VwREoEgIKCy9SE6UpikC\nIpAcgejyGNXtQXbrESNGGHXFXnrpJb85OY9I6Ei1eIRkkBRwDaVZs2Z2zjnneItP2Ka/IiAChU9A\nCk/hnyPNUAREIEcEyEBN3bK77747MsKWW25pODGHCk/kC/dmxYoVvjwHhVUlIiACxUVAS1rFdb40\nWxEQgTQIkKWa2mOxNcoeffRR79gc3SVlO6hsv3DhQt+Mzw5KES+Kt+L8fNFFF0XvovciIAJFQECl\nJYrgJGmKIpAKAZWWiE+LSvE//vij7bDDDvE3UKsIiEBJE9CSVkmfXh2cCIhASCC00oSf9VcERKC8\nCGhJq7zOt45WBERABERABMqSgBSesjztOmgREAEREAERKC8CUnjK63zraEVABERABESgLAnIafm/\np33TTTe1+fPnl81FMG7cOOvatWvZHG9NHCj5YMj0m28JgsAPWatWrXwPbVdffbUNGDAg7+NqQBEQ\nARGojoCclv9LiHo7FAQshwiObt262V9//VXdtaHvMyTANUUCO2o6lYP8/e9/13VVDidaxygCRUpA\nCk/Uidtkk02sSZMmUS2l+Za6QZL8EMDKUw7XFDTr16+fH6gaRQREQATSICAfnjSgaRcREAEREAER\nEIHiIiCFp7jOl2YrAiIgAiIgAiKQBoGsKzxUEl68eLGvOZPGfLSLCFQigL/R0qVL/St0yK20kRpE\nIEUC1MXit4rfLIkIiEDpE8jYh+fdd9+1kSNH2muvvWaffPKJr1cTYsN/oVWrVrbnnntanz59ysaX\nITx+/U2PwK+//mrPPvusjR492t555x376quvDAdgBP+j5s2bW4cOHWyfffbxVa6pZi0RgeoIcB1R\nGf3VV1+1jz/+uEJU5rrrrmvbb7+9j1w85JBDbKeddqquO30vAiJQZATStvA888wz/kdh7733Norr\nnXnmmfbGG2/YggUL7JdffjHq1hD1tP/++9vrr79uW2+9tR100EH+h6bIGGm6eSJAccdLL73UcB6/\n7rrrbIsttrDbbrvNvvzyS69I//zzz/b555/b4MGDrXHjxnbFFVf4v//4xz/8NZenaWqYIiMwbdo0\n23fffX20HA9oKDTPP/+8V3j4rSJ1AA9sJ598sn333Xde6aEaOgq3RAREoIQIuCWClMTlqgnck3Ww\n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\neYvcOvw+7bDDDt5iQ02zPfbYw4ext2rVyrbddtuIUoKlCEWFMPd27dpZy5Yt/WidO3f2fj877bST\nd5BGASIyjOU0LJZEY0ULitLEiROtXr16Rp4gXmeccUb0Jv//3mlcEhEQgQIi4Jz6AvefP3Dr2BVm\n5Z5iAmdGDlxkQ7By5cqga9eugXMOrLANH9wNLnBOhJXa1VCZgHOsDL766qvKX5RQi3MADZxPRdwj\nSvaaclE1QYMGDeL2oUYRiCbgLDLBZ599FnzyyScB70NxD2fBhx9+GMydOzds8n/5LaPdKTKV2qdP\nnx64ivcV2tmf6zEdkdNyZR1QLSJQYwSqc7ojWiF8Ym/fvr2xZi4RgUwI6JrKhJ72jSWAbw+h4bGy\nyiqrGBaeWKldu3bCdpayYqVRo0bGKx2RwpMONe0jAlkm4J5WfJgn69k43SVah954440jI7OPRAQy\nJaBrKlOC2r9YCEjhKZYzpXmWNIHQ6Y5cFWH0Q0kfsA5OBERABPJMQE7LeQau4UQgHoGkne7i7aw2\nERABERCBagnUwvGn2q20gQiIQNEQoMjf+eef7zOcFs2ka2iihMV+/vnntsUWW9TQDIpjWKIInZO8\nOQfS4piwZikCcQjIwhMHippEQAREQAREQARKi4AUntI6nzoaERABERABERCBOASk8MSBoiYREAER\nEAEREIHSIiCFp7TOp45GBERABERABEQgDgEpPHGgqEkEREAEREAERKC0CEjhKa3zqaMRAREQAREQ\nARGIQ0AKTxwoahIBERABERABESgtAlJ4Sut86mhEQAREQAREQATiEJDCEweKmkRABERABERABEqL\ngBSe0jqfOhoREAEREAEREIE4BKTwxIGiJhEQAREQAREQgdIiIIWntM6njkYEREAEREAERCAOASk8\ncaCoSQREQAREQAREoLQISOEprfOpoxEBERABERABEYhDYNU4bWoSARHIAoEnnnjCfvvttyz0lFoX\nG2+8sX300Ue2dOnS1HbMwtZt2rSxVq1aZaEndRGPwOzZs+3VV1+N91VO2xYuXGg77bSTPfjggzkd\nJ1Hnffv2tTXWWCPR12oXgaQI1AqcJLWlNhIBEUiJwIYbbmjNmze3tdZaK6X9inXjGTNm2BlnnGED\nBw4smkOoU6eOff7557bFFlsUxZyfffZZO+aYY6xdu3ZFMd9MJ8ntafz48TZ//nxr2LBhpt1p/zIn\nIAtPmV8AOvzcErjzzjutdevWuR2kQHo/7rjjCmQmpT2Nrbfe2saOHVvaB/nfo1uxYoWhlEpEIBsE\n5MOTDYrqQwREQAREQAREoKAJSOEp6NOjyYmACIiACIiACGSDgBSebFBUHyIgAiIgAiIgAgVNQD48\nBX16yntyy5Yts/fff9++/PJLW7RokdWqVcsaNGhgW221lY8YWXPNNcsbkI5eBERABEQgaQJSeJJG\npQ3zQeCPP/6wxx9/3B566CF74403jBBrnDTXW289P/yCBQt8VM0PP/xgXbt2NRxl+/TpY6uuqks5\nH+dHY4iACIhAsRLQXaJYz1wJzhtF58ILL7R11lnHTjrpJK/0bLbZZnGPdNasWTZy5Ei76qqr7NJL\nL7VbbrnFDjrooLjbqlEEREAEREAE5MOja6DGCSxZssQOOeQQO//88+2mm26yjz/+2M466yxLpOww\n4aZNm9p5551nn376qV1xxRV2yimn2FFHHWW//PJLUsezzz772DbbbBN5TZ482e/31ltv2V577WW7\n7767vfzyy76NXCCjR4+2wYMHGxamUIYOHWpTp04NP+pvGRAg6d9hhx1mBx54oD333HORI9Z1E0Gh\nNyJQsARk4SnYU1MeE2NpCgWD5HwffPCBkawvFaldu7Yde+yx1qNHD38T2nPPPb1ygq9PIkGBmTZt\nWgVlhXF//fVXvzw2YsQImzdvnl8uI2PxhAkTfHZbxjj66KPtpZdessWLF9vEiRPttNNOSzSM2kuM\nAD5lLKFiWaxbt6716tXL2rZt6y2SLKvquimxE67DKTkCUnhK7pQWzwFxA+nZs6e1aNHCHn744YwS\njG2yySb2+uuve4Vl33339QpKolT0c+fOtcaNG1ujRo1s+fLltvbaa3toTz31lHXs2NF23XVX/5kb\n2JNPPmkzZ860/v372y677GJYdUiGduONN/rlt+KhrZlmSgDlF18yrgME5/l33nnHXw+6bjKlq/1F\nIPcEtKSVe8YaIQGBk08+2VZffXXvq5ONbKooOPgBocScffbZCUY1H/X1zTffeGVr55139hYinKWp\nU8RNLJTtttvOvv32W+vXr59fPmMZA0dp0tyjNIU3vnB7/S1tApRz4PrYb7/97NBDD/VRg1gndd2U\n9nnX0ZUOAVl4SudcFtWR4P/wyiuveH8dlJ5sSb169Yx6QxSwxNdijz32qNQ11qC77rrL+w2tXLnS\n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\natWqFdnyiiuusMMOOyzyOZ03w4YNs19//dUGDhxYYffZs2fb0UcfbSg8jP3nn3/a1Vdfbd27d6+w\nnT6IgAgUJgEpPIV5XjQrERCBJAh8+OGHVqdOnSS2zHyT4447zg466CA755xzfGdTpkyxY4891qZP\nn261a8s7IHPC6kEEcktA/0tzy1e9i4AI1ACB4cOH23bbbWc77LCDXX/99ZEZxGtn+WrAgAHWpEkT\na9eunX300UeR7cM3KDdvv/22nXrqqWGTtW3b1i655BL74YcfIm16IwIiULgEpPAU7rnRzEqQwD77\n7GPbbLNN5DV58mR/lG+99Zbttddetvvuu9vLL7/s27gRjx492gYPHmwLFiyI0Bg6dKhNnTo18rmc\n35x99tl2+umn+9dll13mUSxdutSuuuoqe/75523cuHH+74gRIyxRO4rMK6+8YhMmTLA777zTM49l\nihWnW7dulfyDjjzySGvUqFHs5mXz+aWXXrKePXv610MPPRQ5bl3PERR6U0AEtKRVQCdDUyltAigw\n06ZNq6CsbLjhht5fpE+fPsZNed68ecbSCVYGbsCvvvqq9ejRw/uOcHNZvHixTZw40U477bTShpXk\n0aGErLrq//+M4bCMwGmrrbaKcN52220jSmS89o022sgvTTVr1szvj1IaK/jrrLbaarHNZf15xowZ\n1r9/f69Q1qtXz4466ijbYostbJdddjFdz2V9aRTswUvhKdhTo4mVGoG5c+f6yB4sAsuXL7e1117b\nH+JTTz1lHTt2tF133dV/RvF58sknbebMmf6Gwg0Eq86KFSvsxhtvtAsvvLDU0KR9PPjUxPrwzJkz\nxytBYRQX/FBmsNKgHMW2jxo1yi99hZPYYIMNwreRv9tvv7333fntt98qRG9xYz/ggAMMS0+5yccf\nf+yPu02bNv7QcegeOXKkzZ8/X9dzuV0MRXK8WtIqkhOlaRY/gS+//NK++eYbb/7feeedvVXhjz/+\nMKJ/sDyEgu/Jt99+a/369bPzzjvPDjzwQOvatau/kaA0cQOXJCaw//7727JlyzzfU045xSs4q6yy\niiVq33fffQ2lBwsc54NlxFjp0KGDtWzZ0u65557IVx988IGNHz/en5tIYxm96du3r1fAOeSff/7Z\n8I/ac889dT2X0TVQbIcqC0+xnTHNt2gJbLLJJnbXXXfZIYccYitXrvQ3YPxMfvnllwq+ISyx8PSM\nVYElLSwSLH3hMHvppZfad999Z0888YT390FxklQksOWWW3peKJEoKbDGKobSA8fYdnLqXHnlldaq\nVSu/vMgSWKwQhfXII4/YoYceag8++KA1aNDAW4z+9a9/2aabbhq7eVl9xhrJdXnBBRdYr1697B//\n+Ieu57K6AornYKXwFM+50kyLnAA3Yl5IaHHA36R9+/ZewQkPjzwvoSMsSzDcpPGXIBHe5ptv7p1n\nzz//fLv44ou9QzOKUTkKFplEgkKIRY3lLpiFEq8d35933nnHM27YsGGEfbhP+Hfrrbe2999/3776\n6itv0cD5vH79+uHXZfcX/lgh8TvDOTzkzLWLwh6KrueQhP7WNAEpPDV9BjR+2RAYNGiQv1nefvvt\n/phff/1122mnnbwCM2TIEG+JQBEaM2aMXXvttRW48Jltvv76a59sD9+VJUuWGNEw5arwVAAU50Oo\nXMZ+Fa8d7lh4qhMsPfH2r26/UvyeCEOWY4lwi07+2M05kut6LsUzXvzHJIWn+M+hjqBICBxzzDF+\nGQt/HHwe1l13Xe8TgoWBkHT8H0IrTufOnSNHNWnSJK/kYOnhRcQQSyvkf3nuueci2+mNCOSTAP5L\nRAwSoRXKCSecYCj0up5DIvpbSARqObNkYrtwIc1UcxGBEiDw119/2RdffOGPhCWR6CfjWbNm+Uis\naAdmNqQdv566detGCHz//feGT1A8IeKLJa/evXvH+1ptIpAyASLcunTpYgsXLkx632xdz0kPqA1F\noBoCsvBUA0hfi0A2CbAkQv2neNK0adN4zRavPZGyE7cDNYpADRCId90yjXjtup5r4ASV4ZAKSy/D\nk65DFgEREAEREIFyIyCFp9zOuI5XBERABERABMqQgBSeMjzpOmQREAEREAERKDcCUnjK7YzreEVA\nBERABESgDAlI4SnDk65DFgEREAEREIFyIyCFp9zOuI5XBERABERABMqQgMLSy/Ck65BFoFwJLFiw\nwMhw/dFHH/kCrdQxI78R5RDIWE1SyHKvjVWu14aOu/QJyMJT+udYRygCZU/ghRde8FXqUWwoFErV\n+s0228wovtqsWTOfUO+OO+7w76mMToFQMlpLREAESoeALDylcy51JCIgAjEEsOSccsopPlv12Wef\nbffff3/CDNXsunjxYqP69w033ODrmaEE9ejRI6ZXfRQBEShGArLwFONZ05xFQASqJXD33XcbZTao\nUTZz5ky76KKLqlR26JD6ZieddJKvnH7eeef58hzsR0kQiQiIQHETkIWnuM+fZi8CIhCHwFVXXWWD\nBw+2kSNH2t577x1ni6qbKAGCZahTp06+4Ou3335rjz76qNEuEQERKE4C+t9bnOdNsxYBEUhAYOjQ\noXbrrbfa5MmT01J2orvdYYcd7N1337X33nvPzjzzzOiv9F4ERKDICEjhKbITpumKgAgkJjBt2jRf\nKR4/nO222y7xhil8s+GGG9pzzz1njz32mD3xxBMp7KlNRUAEComAFJ5COhuaiwiIQNoE8LPB/2bg\nwIHWvXv3tPuJt+PWW2/tHZ7POussW7RoUbxN1CYCIlDgBKTwFPgJ0vREQASSI/DUU095ZeTCCy9M\nbocUtzrooIOsdevWNmTIkBT31OYiIAKFQEAKTyGcBc1BBEQgYwL47fz973+3OnXqZNxXog6wHuEj\ntGLFikSbqF0ERKBACUjhKdATo2mJgAgkT4BEgjgWH3HEEcnvlMaW3bp1s7XWWsvGjRuXxt7aRQRE\noCYJSOGpSfoaWwREICsExo8fb+3bt7cGDRpkpb+qOunZs6cUnqoA6TsRKFACUngK9MRoWiIgAskT\n+PDDD61t27bJ75DBlozDeBIREIHiIiCFp7jOl2YrAiIQhwBLWltssUWcb7Lf1LRpU1+LK/s9q0cR\nEIFcElCm5VzSVd8iUAMEgiCwk08+2c4555waGL1mhqQoaP369fMyOD48S5Ys8cVH8zJgAQwiJ+0C\nOAmaQsYEpPBkjFAdiEBhEbj33ntt2bJlhTWpHM/miiuusN9//z3Ho/x/94xTt27dsktCuOqqul3k\n5QLTIDkjoCs4Z2jVsQjUDIGWLVvWzMA1OGrjxo1t7ty5eZnB999/bxtttJF16NAhL+NpEBEQgewQ\nkA9PdjiqFxEQgRokQBmJjz/+OC8zYJxsla3Iy4Q1iAiIgCcghUcXggiIQNET6Ny5s02cONFWrlyZ\n82N59dVXrUuXLjkfRwOIgAhkl4AUnuzyVG8iIAI1QIBQcfxqxo4dm9PRiQabMmWK7bfffjkdR52L\ngAhkn4AUnuwzVY8iIAJ5JlC7dm3r16+fDRo0KKcjU0frgAMOMCqoS0RABIqLQC0XwhoU15Q1WxEQ\nARGoTIAq5s2bN/fRU3vttVflDTJsmTlzpu244442efJka9WqVYa9aXcREIF8E5CFJ9/ENZ4IiEBO\nCFBW4rrrrvOWnvnz52d1DELRjzrqKDvhhBOk7GSVrDoTgfwRkIUnf6w1kgiIQB4IHHzwwTZv3jyb\nMGGCrb766lkZ8ZhjjvHlJN5++23vK5SVTtWJCIhAXgnIwpNX3BpMBEQg1wQeeeQRY6V+n332sYUL\nF2Y03B9//OGtOq+99pq9+OKLUnYyoqmdRaBmCUjhqVn+Gl0ERCDLBOrVq+ejtcgM3K5dO3v//ffT\nGmH27Nm2++67+6isN954wzbddNO0+tFOIiAChUFACk9hnAfNQgREIIsEqKs1evRoO+6442y33Xaz\nk046yXA6TkZ+/PFHu/TSS2377bc3sla/8847ZVU3KxlG2kYEipGAfHiK8axpziIgAkkT+PLLL+3q\nq6/20VtYfHr27Glt2rSxJk2a+IKjy5cvtzlz5ngfnXHjxhmv7t27G/W52F4iAiJQGgSk8JTGedRR\niIAIVENgwYIFNnLkSCNTMuUhvv32W/vll19sjTXWsI033thbdLp27Wo4PaMMSURABEqLwP8BMCUL\nWWTQfLEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Image\n", "Image('../images/Kondili_1993.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each circular node in the diagram designates material in a particular state. The materials are generally held in suitable vessels with a known capacity. The relevant information for each state is the initial inventory, storage capacity, and the unit price of the material in each state. The price of materials in intermediate states may be assigned penalities in order to minimize the amount of work in progress.\n", "\n", "The rectangular nodes denote process tasks. When scheduled for execution, each task is assigned an appropriate piece of equipment, and assigned a batch of material according to the incoming arcs. Each incoming arc begins at a state where the associated label indicates the mass fraction of the batch coming from that particular state. Outgoing arcs indicate the disposition of the batch to product states. The outgoing are labels indicate the fraction of the batch assigned to each product state, and the time necessary to produce that product. \n", "\n", "Not shown in the diagram is the process equipment used to execute the tasks. A separate list of process units is available, each characterized by a capacity and list of tasks which can be performed in that unit." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# ==========================================================\n", "# = Solver Results =\n", "# ==========================================================\n", "# ----------------------------------------------------------\n", "# Problem Information\n", "# ----------------------------------------------------------\n", "Problem: \n", "- Name: unknown\n", " Lower bound: 2744.375\n", " Upper bound: 2744.375\n", " Number of objectives: 1\n", " Number of constraints: 410\n", " Number of variables: 322\n", " Number of nonzeros: 1158\n", " Sense: maximize\n", "# ----------------------------------------------------------\n", "# Solver Information\n", "# ----------------------------------------------------------\n", "Solver: \n", "- Status: ok\n", " Termination condition: optimal\n", " Statistics: \n", " Branch and bound: \n", " Number of bounded subproblems: 597\n", " Number of created subproblems: 597\n", " Error rc: 0\n", " Time: 0.19040894508361816\n", "# ----------------------------------------------------------\n", "# Solution Information\n", "# ----------------------------------------------------------\n", "Solution: \n", "- number of solutions: 0\n", " number of solutions displayed: 0\n" ] } ], "source": [ "%matplotlib inline\n", "\n", "import sys\n", "sys.path.append('../STN')\n", "from STN import STN\n", "\n", "# create instance\n", "stn = STN()\n", "\n", "# states\n", "stn.state('FeedA', init = 200)\n", "stn.state('FeedB', init = 200)\n", "stn.state('FeedC', init = 200)\n", "stn.state('HotA', price = -1)\n", "stn.state('IntAB', price = -1)\n", "stn.state('IntBC', price = -1)\n", "stn.state('ImpureE', price = -1)\n", "stn.state('Product_1', price = 10)\n", "stn.state('Product_2', price = 10)\n", "\n", "# state to task arcs\n", "stn.stArc('FeedA', 'Heating')\n", "stn.stArc('FeedB', 'Reaction_1', rho = 0.5)\n", "stn.stArc('FeedC', 'Reaction_1', rho = 0.5)\n", "stn.stArc('FeedC', 'Reaction_3', rho = 0.2)\n", "stn.stArc('HotA', 'Reaction_2', rho = 0.4)\n", "stn.stArc('IntAB', 'Reaction_3', rho = 0.8)\n", "stn.stArc('IntBC', 'Reaction_2', rho = 0.6)\n", "stn.stArc('ImpureE', 'Separation')\n", "\n", "# task to state arcs\n", "stn.tsArc('Heating', 'HotA', rho = 1.0, dur = 1)\n", "stn.tsArc('Reaction_2', 'IntAB', rho = 0.6, dur = 2)\n", "stn.tsArc('Reaction_2', 'Product_1', rho = 0.4, dur = 2)\n", "stn.tsArc('Reaction_1', 'IntBC', dur = 2)\n", "stn.tsArc('Reaction_3', 'ImpureE', dur = 1)\n", "stn.tsArc('Separation', 'IntAB', rho = 0.1, dur = 2)\n", "stn.tsArc('Separation', 'Product_2', rho = 0.9, dur = 1)\n", "\n", "# unit-task data\n", "stn.unit('Heater', 'Heating', Bmin = 0, Bmax = 100)\n", "stn.unit('Reactor_1', 'Reaction_1', Bmin = 0, Bmax = 80)\n", "stn.unit('Reactor_1', 'Reaction_2', Bmin = 0, Bmax = 80)\n", "stn.unit('Reactor_1', 'Reaction_3', Bmin = 0, Bmax = 80)\n", "stn.unit('Reactor_2', 'Reaction_1', Bmin = 0, Bmax = 50)\n", "stn.unit('Reactor_2', 'Reaction_2', Bmin = 0, Bmax = 50)\n", "stn.unit('Reactor_2', 'Reaction_3', Bmin = 0, Bmax = 50)\n", "stn.unit('Still', 'Separation', Bmin = 0, Bmax = 200)\n", "\n", "H = 10\n", "stn.build(range(0,H+1))\n", "stn.solve('glpk')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "stn.gantt()\n", "plt.savefig('../images/Kondili_gantt.png')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Starting Conditions\n", "\n", " Initial State Inventories are:\n", " FeedB 200.0 kg\n", " IntAB 0.0 kg\n", " FeedA 200.0 kg\n", " HotA 0.0 kg\n", " FeedC 200.0 kg\n", " ImpureE 0.0 kg\n", " Product_2 0.0 kg\n", " IntBC 0.0 kg\n", " Product_1 0.0 kg\n", "\n", "Time = 0 hr\n", "\n", " 1. Assign Heater to Heating for 84.00 kg batch for 1.0 hours\n", " 2. Transfer 84.00 from FeedA to Heater\n", " 3. Assign Reactor_1 to Reaction_1 for 76.00 kg batch for 2.0 hours\n", " 4. Transfer 38.00 from FeedC to Reactor_1\n", " 5. Transfer 38.00 from FeedB to Reactor_1\n", " 6. Assign Reactor_2 to Reaction_1 for 50.00 kg batch for 2.0 hours\n", " 7. Transfer 25.00 from FeedC to Reactor_2\n", " 8. Transfer 25.00 from FeedB to Reactor_2\n", "\n", " State Inventories are now:\n", " FeedB 137.0 kg\n", " IntAB 0.0 kg\n", " FeedA 116.0 kg\n", " HotA 0.0 kg\n", " FeedC 137.0 kg\n", " ImpureE 0.0 kg\n", " Product_2 0.0 kg\n", " IntBC 0.0 kg\n", " Product_1 0.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater on Heating with 84.00 kg batch for hour 1 of 1\n", " Reactor_1 on Reaction_1 with 76.00 kg batch for hour 1 of 2\n", " Still is unassigned\n", " Reactor_2 on Reaction_1 with 50.00 kg batch for hour 1 of 2\n", "\n", "Time = 1 hr\n", "\n", " 1. Transfer 84.00 kg from Heater to HotA\n", " 2. Release Heater from Heating\n", "\n", " State Inventories are now:\n", " FeedB 137.0 kg\n", " IntAB 0.0 kg\n", " FeedA 116.0 kg\n", " HotA 84.0 kg\n", " FeedC 137.0 kg\n", " ImpureE 0.0 kg\n", " Product_2 0.0 kg\n", " IntBC 0.0 kg\n", " Product_1 0.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater is unassigned\n", " Reactor_1 on Reaction_1 with 76.00 kg batch for hour 2 of 2\n", " Still is unassigned\n", " Reactor_2 on Reaction_1 with 50.00 kg batch for hour 2 of 2\n", "\n", "Time = 2 hr\n", "\n", " 1. Transfer 76.00 kg from Reactor_1 to IntBC\n", " 2. Transfer 50.00 kg from Reactor_2 to IntBC\n", " 3. Release Reactor_1 from Reaction_1\n", " 4. Assign Reactor_1 to Reaction_2 for 80.00 kg batch for 2.0 hours\n", " 5. Transfer 48.00 from IntBC to Reactor_1\n", " 6. Transfer 32.00 from HotA to Reactor_1\n", " 7. Release Reactor_2 from Reaction_1\n", " 8. Assign Reactor_2 to Reaction_2 for 50.00 kg batch for 2.0 hours\n", " 9. Transfer 30.00 from IntBC to Reactor_2\n", " 10. Transfer 20.00 from HotA to Reactor_2\n", "\n", " State Inventories are now:\n", " FeedB 137.0 kg\n", " IntAB 0.0 kg\n", " FeedA 116.0 kg\n", " HotA 32.0 kg\n", " FeedC 137.0 kg\n", " ImpureE 0.0 kg\n", " Product_2 0.0 kg\n", " IntBC 48.0 kg\n", " Product_1 0.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater is unassigned\n", " Reactor_1 on Reaction_2 with 80.00 kg batch for hour 1 of 2\n", " Still is unassigned\n", " Reactor_2 on Reaction_2 with 50.00 kg batch for hour 1 of 2\n", "\n", "Time = 3 hr\n", "\n", " State Inventories are now:\n", " FeedB 137.0 kg\n", " IntAB 0.0 kg\n", " FeedA 116.0 kg\n", " HotA 32.0 kg\n", " FeedC 137.0 kg\n", " ImpureE 0.0 kg\n", " Product_2 0.0 kg\n", " IntBC 48.0 kg\n", " Product_1 0.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater is unassigned\n", " Reactor_1 on Reaction_2 with 80.00 kg batch for hour 2 of 2\n", " Still is unassigned\n", " Reactor_2 on Reaction_2 with 50.00 kg batch for hour 2 of 2\n", "\n", "Time = 4 hr\n", "\n", " 1. Transfer 48.00 kg from Reactor_1 to IntAB\n", " 2. Transfer 32.00 kg from Reactor_1 to Product_1\n", " 3. Transfer 30.00 kg from Reactor_2 to IntAB\n", " 4. Transfer 20.00 kg from Reactor_2 to Product_1\n", " 5. Assign Heater to Heating for 52.00 kg batch for 1.0 hours\n", " 6. Transfer 52.00 from FeedA to Heater\n", " 7. Release Reactor_1 from Reaction_2\n", " 8. Assign Reactor_1 to Reaction_2 for 80.00 kg batch for 2.0 hours\n", " 9. Transfer 48.00 from IntBC to Reactor_1\n", " 10. Transfer 32.00 from HotA to Reactor_1\n", " 11. Release Reactor_2 from Reaction_2\n", " 12. Assign Reactor_2 to Reaction_3 for 50.00 kg batch for 1.0 hours\n", " 13. Transfer 10.00 from FeedC to Reactor_2\n", " 14. Transfer 40.00 from IntAB to Reactor_2\n", "\n", " State Inventories are now:\n", " FeedB 137.0 kg\n", " IntAB 38.0 kg\n", " FeedA 64.0 kg\n", " HotA 0.0 kg\n", " FeedC 127.0 kg\n", " ImpureE 0.0 kg\n", " Product_2 0.0 kg\n", " IntBC 0.0 kg\n", " Product_1 52.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater on Heating with 52.00 kg batch for hour 1 of 1\n", " Reactor_1 on Reaction_2 with 80.00 kg batch for hour 1 of 2\n", " Still is unassigned\n", " Reactor_2 on Reaction_3 with 50.00 kg batch for hour 1 of 1\n", "\n", "Time = 5 hr\n", "\n", " 1. Transfer 52.00 kg from Heater to HotA\n", " 2. Transfer 50.00 kg from Reactor_2 to ImpureE\n", " 3. Release Heater from Heating\n", " 4. Assign Still to Separation for 50.00 kg batch for 2.0 hours\n", " 5. Transfer 50.00 from ImpureE to Still\n", " 6. Release Reactor_2 from Reaction_3\n", " 7. Assign Reactor_2 to Reaction_3 for 47.50 kg batch for 1.0 hours\n", " 8. Transfer 9.50 from FeedC to Reactor_2\n", " 9. Transfer 38.00 from IntAB to Reactor_2\n", "\n", " State Inventories are now:\n", " FeedB 137.0 kg\n", " IntAB 0.0 kg\n", " FeedA 64.0 kg\n", " HotA 52.0 kg\n", " FeedC 117.5 kg\n", " ImpureE 0.0 kg\n", " Product_2 0.0 kg\n", " IntBC 0.0 kg\n", " Product_1 52.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater is unassigned\n", " Reactor_1 on Reaction_2 with 80.00 kg batch for hour 2 of 2\n", " Still on Separation with 50.00 kg batch for hour 1 of 2\n", " Reactor_2 on Reaction_3 with 47.50 kg batch for hour 1 of 1\n", "\n", "Time = 6 hr\n", "\n", " 1. Transfer 48.00 kg from Reactor_1 to IntAB\n", " 2. Transfer 32.00 kg from Reactor_1 to Product_1\n", " 3. Transfer 45.00 kg from Still to Product_2\n", " 4. Transfer 47.50 kg from Reactor_2 to ImpureE\n", " 5. Release Reactor_1 from Reaction_2\n", " 6. Assign Reactor_1 to Reaction_1 for 78.00 kg batch for 2.0 hours\n", " 7. Transfer 39.00 from FeedC to Reactor_1\n", " 8. Transfer 39.00 from FeedB to Reactor_1\n", " 9. Release Reactor_2 from Reaction_3\n", " 10. Assign Reactor_2 to Reaction_3 for 16.25 kg batch for 1.0 hours\n", " 11. Transfer 3.25 from FeedC to Reactor_2\n", " 12. Transfer 13.00 from IntAB to Reactor_2\n", "\n", " State Inventories are now:\n", " FeedB 98.0 kg\n", " IntAB 35.0 kg\n", " FeedA 64.0 kg\n", " HotA 52.0 kg\n", " FeedC 75.2 kg\n", " ImpureE 47.5 kg\n", " Product_2 45.0 kg\n", " IntBC 0.0 kg\n", " Product_1 84.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater is unassigned\n", " Reactor_1 on Reaction_1 with 78.00 kg batch for hour 1 of 2\n", " Still on Separation with 5.00 kg batch for hour 2 of 2\n", " Reactor_2 on Reaction_3 with 16.25 kg batch for hour 1 of 1\n", "\n", "Time = 7 hr\n", "\n", " 1. Transfer 5.00 kg from Still to IntAB\n", " 2. Transfer 16.25 kg from Reactor_2 to ImpureE\n", " 3. Release Still from Separation\n", " 4. Release Reactor_2 from Reaction_3\n", " 5. Assign Reactor_2 to Reaction_3 for 50.00 kg batch for 1.0 hours\n", " 6. Transfer 10.00 from FeedC to Reactor_2\n", " 7. Transfer 40.00 from IntAB to Reactor_2\n", "\n", " State Inventories are now:\n", " FeedB 98.0 kg\n", " IntAB 0.0 kg\n", " FeedA 64.0 kg\n", " HotA 52.0 kg\n", " FeedC 65.2 kg\n", " ImpureE 63.8 kg\n", " Product_2 45.0 kg\n", " IntBC 0.0 kg\n", " Product_1 84.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater is unassigned\n", " Reactor_1 on Reaction_1 with 78.00 kg batch for hour 2 of 2\n", " Still is unassigned\n", " Reactor_2 on Reaction_3 with 50.00 kg batch for hour 1 of 1\n", "\n", "Time = 8 hr\n", "\n", " 1. Transfer 78.00 kg from Reactor_1 to IntBC\n", " 2. Transfer 50.00 kg from Reactor_2 to ImpureE\n", " 3. Release Reactor_1 from Reaction_1\n", " 4. Assign Reactor_1 to Reaction_2 for 80.00 kg batch for 2.0 hours\n", " 5. Transfer 48.00 from IntBC to Reactor_1\n", " 6. Transfer 32.00 from HotA to Reactor_1\n", " 7. Assign Still to Separation for 113.75 kg batch for 2.0 hours\n", " 8. Transfer 113.75 from ImpureE to Still\n", " 9. Release Reactor_2 from Reaction_3\n", " 10. Assign Reactor_2 to Reaction_2 for 50.00 kg batch for 2.0 hours\n", " 11. Transfer 30.00 from IntBC to Reactor_2\n", " 12. Transfer 20.00 from HotA to Reactor_2\n", "\n", " State Inventories are now:\n", " FeedB 98.0 kg\n", " IntAB 0.0 kg\n", " FeedA 64.0 kg\n", " HotA 0.0 kg\n", " FeedC 65.2 kg\n", " ImpureE 0.0 kg\n", " Product_2 45.0 kg\n", " IntBC 0.0 kg\n", " Product_1 84.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater is unassigned\n", " Reactor_1 on Reaction_2 with 80.00 kg batch for hour 1 of 2\n", " Still on Separation with 113.75 kg batch for hour 1 of 2\n", " Reactor_2 on Reaction_2 with 50.00 kg batch for hour 1 of 2\n", "\n", "Time = 9 hr\n", "\n", " 1. Transfer 102.38 kg from Still to Product_2\n", "\n", " State Inventories are now:\n", " FeedB 98.0 kg\n", " IntAB 0.0 kg\n", " FeedA 64.0 kg\n", " HotA 0.0 kg\n", " FeedC 65.2 kg\n", " ImpureE 0.0 kg\n", " Product_2 147.4 kg\n", " IntBC 0.0 kg\n", " Product_1 84.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater is unassigned\n", " Reactor_1 on Reaction_2 with 80.00 kg batch for hour 2 of 2\n", " Still on Separation with 11.38 kg batch for hour 2 of 2\n", " Reactor_2 on Reaction_2 with 50.00 kg batch for hour 2 of 2\n", "\n", "Time = 10 hr\n", "\n", " 1. Transfer 48.00 kg from Reactor_1 to IntAB\n", " 2. Transfer 32.00 kg from Reactor_1 to Product_1\n", " 3. Transfer 11.38 kg from Still to IntAB\n", " 4. Transfer 30.00 kg from Reactor_2 to IntAB\n", " 5. Transfer 20.00 kg from Reactor_2 to Product_1\n", " 6. Release Reactor_1 from Reaction_2\n", " 7. Release Still from Separation\n", " 8. Release Reactor_2 from Reaction_2\n", "\n", " State Inventories are now:\n", " FeedB 98.0 kg\n", " IntAB 89.4 kg\n", " FeedA 64.0 kg\n", " HotA 0.0 kg\n", " FeedC 65.2 kg\n", " ImpureE 0.0 kg\n", " Product_2 147.4 kg\n", " IntBC 0.0 kg\n", " Product_1 136.0 kg\n", "\n", " Unit Assignments are now:\n", " Heater is unassigned\n", " Reactor_1 is unassigned\n", " Still is unassigned\n", " Reactor_2 is unassigned\n" ] } ], "source": [ "stn.trace()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }