{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE40455](https://jckantor.github.io/CBE40455) by\n", "Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE40455.git).\n", "The text is released under the [CC-BY-NC-ND-4.0 license](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode),\n", "and code is released under the [MIT license](https://opensource.org/licenses/MIT).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Machine Bottleneck](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.02-Machine-Bottleneck.ipynb) | [Contents](toc.ipynb) | [Jesuit Volunteer Corps](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.04-Jesuit-Volunteer-Corps.ipynb) >
"
]
},
{
"attachments": {
"jobshopdiagram.jpg": {
"image/jpeg": "/9j/4AAQSkZJRgABAQAASABIAAD/4QDoRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAAogAAAAAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dzADIwMDY6MDk6MjIgMDg6MjU6NDkAAAOQBAACAAAAFAAAAMygAgAEAAAAAQAAAfSgAwAEAAAAAQAAAIoAAAAAMjAwNjowOToyMiAwODoyNTo0OQD/4QnCaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wOk1vZGlmeURhdGU9IjIwMDYtMDktMjJUMDg6MjU6NDkiIHhtcDpDcmVhdGVEYXRlPSIyMDA2LTA5LTIyVDA4OjI1OjQ5IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzIgV2luZG93cyIvPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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"
}
},
"cell_type": "markdown",
"metadata": {},
"source": [
"# Job Shop Scheduling"
]
},
{
"attachments": {
"jobshopdiagram.jpg": {
"image/jpeg": "/9j/4AAQSkZJRgABAQAASABIAAD/4QDoRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAAogAAAAAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dzADIwMDY6MDk6MjIgMDg6MjU6NDkAAAOQBAACAAAAFAAAAMygAgAEAAAAAQAAAfSgAwAEAAAAAQAAAIoAAAAAMjAwNjowOToyMiAwODoyNTo0OQD/4QnCaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wOk1vZGlmeURhdGU9IjIwMDYtMDktMjJUMDg6MjU6NDkiIHhtcDpDcmVhdGVEYXRlPSIyMDA2LTA5LTIyVDA4OjI1OjQ5IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzIgV2luZG93cyIvPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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"
}
},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Background\n",
"\n",
"A job shop consists of a set of distinct machines that process jobs. Each job is a series of tasks that require use of particular machines for known durations, and which must be completed in specified order. The job shop scheduling problem is to schedule the jobs on the machines to minimize the time necessary to process all jobs (i.e, the makespan) or some other metric of productivity. Job shop scheduling is one of the classic problems in Operations Research. \n",
"\n",
"Data consists of two tables. The first table is decomposition of the jobs into a series of tasks. Each task lists a job name, name of the required machine, and task duration. The second table list task pairs where the first task must be completed before the second task can be started. This formulation is quite general, but can also specify situations with no feasible solutions. "
]
},
{
"attachments": {
"jobshopdiagram.jpg": {
"image/jpeg": "/9j/4AAQSkZJRgABAQAASABIAAD/4QDoRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAAogAAAAAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dzADIwMDY6MDk6MjIgMDg6MjU6NDkAAAOQBAACAAAAFAAAAMygAgAEAAAAAQAAAfSgAwAEAAAAAQAAAIoAAAAAMjAwNjowOToyMiAwODoyNTo0OQD/4QnCaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wOk1vZGlmeURhdGU9IjIwMDYtMDktMjJUMDg6MjU6NDkiIHhtcDpDcmVhdGVEYXRlPSIyMDA2LTA5LTIyVDA4OjI1OjQ5IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzIgV2luZG93cyIvPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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"
}
},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Job Shop Example\n",
"\n",
"The following example of a job shop is from from Christelle Gueret, Christian Prins, Marc Sevaux, \"Applications of Optimization with Xpress-MP,\" Dash Optimization, 2000.\n",
"\n",
"In this example, there are three printed paper products that must pass through color printing presses in a particular order. The given data consists of a flowsheet showing the order in which each job passes through the color presses\n",
"\n",
"![jobshopdiagram.jpg](attachment:jobshopdiagram.jpg)\n",
"\n",
"and a table of data showing, in minutes, the amount of time each job requires on each machine.\n",
"\n",
"| Machine | Color | Paper 1 | Paper 2 | Paper 3 |\n",
"| :-----: | :---: | :-----: | :-----: | :-----: |\n",
"| 1 | Blue | 45 | 20 | 12 |\n",
"| 2 | Green | - | 10 | 17 |\n",
"| 3 | Yellow| 10 | 34 | 28 |\n",
"\n",
"What is the minimum amount of time (i.e, what is the makespan) for this set of jobs?"
]
},
{
"attachments": {
"jobshopdiagram.jpg": {
"image/jpeg": "/9j/4AAQSkZJRgABAQAASABIAAD/4QDoRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAAogAAAAAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dzADIwMDY6MDk6MjIgMDg6MjU6NDkAAAOQBAACAAAAFAAAAMygAgAEAAAAAQAAAfSgAwAEAAAAAQAAAIoAAAAAMjAwNjowOToyMiAwODoyNTo0OQD/4QnCaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wOk1vZGlmeURhdGU9IjIwMDYtMDktMjJUMDg6MjU6NDkiIHhtcDpDcmVhdGVEYXRlPSIyMDA2LTA5LTIyVDA4OjI1OjQ5IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzIgV2luZG93cyIvPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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"
}
},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Task Decomposition\n",
"\n",
"The first step in the analysis is to decompose the process into a series of tasks. Each task is a (job,machine) pair. Some tasks cannot start until a prerequisite task is completed.\n",
"\n",
"| Task (Job,Machine) | Duration | Prerequisite Task |\n",
"| :----------------: | :------: | :---------------: |\n",
"| (Paper 1, Blue) | 45 | - |\n",
"| (Paper 1, Yellow) | 10 | (Paper 1,Blue) |\n",
"| (Paper 2, Blue) | 20 | (Paper 2, Green) |\n",
"| (Paper 2, Green) | 10 | - |\n",
"| (Paper 2, Yellow) | 34 | (Paper 2, Blue) |\n",
"| (Paper 3, Blue) | 12 | (Paper 3, Yellow) |\n",
"| (Paper 3, Green) | 17 | (Paper 3, Blue) |\n",
"| (Paper 3, Yellow) | 28 | - |\n",
"\n",
"We convert this to a JSON style representation where tasks are denoted by (Job,Machine) tuples in Python. The task data is stored in a Python dictionary indexed by (Job,Machine) tuples. The task data conists of a dictionary with duration ('dur') and (Job,Machine) pair for any prerequisite task."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"TASKS = {\n",
" ('Paper_1','Blue') : {'dur': 45},\n",
" ('Paper_1','Yellow') : {'dur': 10, 'prec': ('Paper_1','Blue')},\n",
" ('Paper_2','Blue') : {'dur': 20, 'prec': ('Paper_2','Green')},\n",
" ('Paper_2','Green') : {'dur': 10},\n",
" ('Paper_2','Yellow') : {'dur': 34, 'prec': ('Paper_2','Blue')},\n",
" ('Paper_3','Blue') : {'dur': 12, 'prec': ('Paper_3','Yellow')},\n",
" ('Paper_3','Green') : {'dur': 17, 'prec': ('Paper_3','Blue')},\n",
" ('Paper_3','Yellow') : {'dur': 28}, \n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Model Formulation\n",
"\n",
"Each task is represented as an ordered pair $(j,m)$ where $j$ is a job, and $m$ is a machine.\n",
"\n",
"| Parameter | Description |\n",
"| :-------- | :-----------|\n",
"| $\\text{dur}_{j,m}$ | Duration of task $(j,m)$ | \n",
"| $\\text{prec}_{j,m}$ | A task $(k,n) = \\text{Prec}_{j,m}$ that must be completed before task $(j,m)$| \n",
"\n",
"| Decision Variables | Description |\n",
"| :-------- | :-----------|\n",
"| $\\text{makespan}$ | Completion of all jobs | \n",
"| $\\text{start}_{j,m}$ | Start time for task $(j,m)$ |\n",
"| $y_{j,k,m}$ | boolean variable for tasks $(i,m)$ and $(j,m)$ on machine $m$ where $j < k$ |\n",
"\n",
"Upper and lower bounds on the start and completion of task $(j,m)$\n",
"\n",
"\\begin{align}\n",
"\\text{start}_{j,m} & \\geq 0\\\\\n",
"\\text{start}_{j,m}+\\text{Dur}_{j,m} & \\leq \\text{makespan}\n",
"\\end{align}\n",
"\n",
"Satisfying prerequisite tasks\n",
"\n",
"\\begin{align}\n",
"\\text{start}_{k,n}+\\text{Dur}_{k,n}\\leq\\text{start}_{j,m}\\ \\ \\ \\ \\text{for } (k,n) =\\text{Prec}_{j,m}\n",
"\\end{align}\n",
"\n",
"Disjunctive Constraints\n",
"\n",
"If $M$ is big enough, then satisfying\n",
"\\begin{align}\n",
"\\text{start}_{j,m}+\\text{Dur}_{j,m} & \\leq \\text{start}_{k,m}+M(1 - y_{j,k,m})\\\\\n",
"\\text{start}_{k,m}+\\text{Dur}_{k,m} & \\leq \\text{start}_{j,m}+My_{j,k,m}\n",
"\\end{align}\n",
"\n",
"avoids conflicts for use of the same machine. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pyomo Implementation\n",
"\n",
"The job shop scheduling problem is implemented below in Pyomo. The implementation consists of of a function JobShop(TASKS) that accepts a dictionary of tanks and returns a pandas dataframe containing an optimal schedule of tasks. An optional argument to JobShop allows one to specify a solver."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from pyomo.environ import *\n",
"import pandas as pd\n",
"\n",
"def JobShop(TASKS, solver='glpk'):\n",
"\n",
" model = ConcreteModel()\n",
"\n",
" JOBS = set()\n",
" MACHINES = set()\n",
" for (j,m) in TASKS.keys():\n",
" JOBS.add(j)\n",
" MACHINES.add(m)\n",
" \n",
" BigM = 1 + sum([TASKS[(j,m)]['dur'] for (j,m) in TASKS.keys()])\n",
" \n",
" model.start = Var(JOBS, MACHINES, domain = NonNegativeReals)\n",
" model.makespan = Var(domain=NonNegativeReals)\n",
" model.y = Var(JOBS,JOBS,MACHINES, domain = Boolean)\n",
"\n",
" model.Obj = Objective(expr = model.makespan, sense = minimize)\n",
"\n",
" model.cons = ConstraintList()\n",
" for (j,m) in TASKS.keys():\n",
" model.cons.add(model.start[j,m] + TASKS[(j,m)]['dur'] <= model.makespan)\n",
" if 'prec' in TASKS[(j,m)]:\n",
" (k,n) = TASKS[(j,m)]['prec']\n",
" model.cons.add(model.start[j,m] >= model.start[k,n] + TASKS[(k,n)]['dur'])\n",
" \n",
" for m in MACHINES:\n",
" for j in JOBS:\n",
" for k in JOBS:\n",
" if (j < k) and (j,m) in TASKS.keys() and (k,m) in TASKS.keys():\n",
" model.cons.add(model.start[j,m] + TASKS[(j,m)]['dur'] \n",
" <= model.start[k,m] + BigM*(1-model.y[j,k,m]))\n",
" model.cons.add(model.start[k,m] + TASKS[(k,m)]['dur'] \n",
" <= model.start[j,m] + BigM*(model.y[j,k,m]))\n",
"\n",
" # solve with indicated solver\n",
" SolverFactory(solver).solve(model)\n",
" \n",
" # create pandas dataframe with the optimal schedule\n",
" results = [[j,m,model.start[j,m](),TASKS[(j,m)]['dur'], model.start[j,m]() + TASKS[(j,m)]['dur']] \n",
" for (j,m) in TASKS]\n",
" schedule = pd.DataFrame(results,columns=['Job','Machine','Start','Duration','Finish'])\n",
" schedule = schedule.sort_values(by='Start')\n",
" schedule.set_index(['Job',\"Machine\"], inplace=True)\n",
" \n",
" return schedule"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"schedule = JobShop(TASKS)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Displaying a Solution"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"JOB SCHEDULES\n",
"\n",
"Job: Paper_1\n",
" Start Duration Finish\n",
"Machine \n",
"Blue 42.0 45 87.0\n",
"Yellow 87.0 10 97.0\n",
"\n",
"Job: Paper_2\n",
" Start Duration Finish\n",
"Machine \n",
"Green 0.0 10 10.0\n",
"Blue 10.0 20 30.0\n",
"Yellow 53.0 34 87.0\n",
"\n",
"Job: Paper_3\n",
" Start Duration Finish\n",
"Machine \n",
"Yellow 0.0 28 28.0\n",
"Blue 30.0 12 42.0\n",
"Green 42.0 17 59.0\n",
"\n",
"\n",
"MACHINE SCHEDULES\n",
"\n",
"Machine: Green\n",
" Start Duration Finish\n",
"Job \n",
"Paper_2 0.0 10 10.0\n",
"Paper_3 42.0 17 59.0\n",
"\n",
"Machine: Yellow\n",
" Start Duration Finish\n",
"Job \n",
"Paper_3 0.0 28 28.0\n",
"Paper_2 53.0 34 87.0\n",
"Paper_1 87.0 10 97.0\n",
"\n",
"Machine: Blue\n",
" Start Duration Finish\n",
"Job \n",
"Paper_2 10.0 20 30.0\n",
"Paper_3 30.0 12 42.0\n",
"Paper_1 42.0 45 87.0\n",
"\n"
]
}
],
"source": [
"def Textualize(schedule):\n",
" \n",
" JOBS = list(schedule.index.get_level_values('Job').unique())\n",
" MACHINES = list(schedule.index.get_level_values('Machine').unique())\n",
"\n",
" print('\\nJOB SCHEDULES\\n')\n",
" for j in sorted(JOBS):\n",
" print(\"Job: \" + j)\n",
" print(schedule.xs(j,level=0))\n",
" print('')\n",
" \n",
" print('\\nMACHINE SCHEDULES\\n')\n",
" for m in MACHINES:\n",
" print(\"Machine: \" + m)\n",
" print(schedule.xs(m,level=1))\n",
" print('')\n",
"\n",
"Textualize(schedule)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualizing Results with Gantt Charts"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\ntj5zxmiNKAhtKyutUUV5nZqb/Ro/YbAqtzUoIcE0cdJgrVy+RXW1vh7FcsL4QZo6fYgqyuuUnZ2m\nkaNy1Li3leQKAI5CwcYa+T54tVN5Qr90peSPVdq4OZ22pY45VTnnflupY06TJPk2FclX+qaCTTXK\nmHK29m1dIyUmKWPa+ap99qcK1FT0KJakgcM1/KaVSszMVfVTtyhtzGxpzGw1rn78yC4ScaG9zif/\nqm2dyi0tWUkjc5QyY1inbcnThir9qycrZVpoTJ9/zXb536lSe71PKaePUmDDTikxQf0Kx6hpcbHa\nq/b2OJ5+80YraVyos1nicVlK+8IU+dduV7AisjntMne/qORn35UWeZ9g9bbemqb9FUlLzexe51y1\nmeVKynDOda4FIX+XdJWZPaJQF8G5km4Ib1st6RuS5kkaJumx8AJ02LJ5j9av26ETJx8n56SSTXs0\nfebH31gqyus0emyuCkYN1Lq1lVpVvE3BYLse/P0/dcFFJ+rcCyYoEAhqW3mdamt9XX2506WWFr9G\njMzWjJnD1BZsV3lZrZ5f9oH3FwkAiDktG1Zo76rHlDnjQsm1q3nDcvWfvfBj+/hKi5U2oVBp4+Zq\nb/Gf1VC0RK7Nrx13X6hBl92pvEvvULvfp9YPV4VasLrqatGF5MFjlDQgNBZ50KV3dJSTYB2b/MUV\n8j3/gVLPHCu1O+37x1alnffxWZYD63co5eTjlTJzuHzLNqrl8XekQFB11z6lrO8WKvNb86TWNvnX\nVylYtbfH90KSlPHVk5VyyghJUvKEwRrwk3PUcPML8kWYYKX4KpSwtS6iY6OtVxIs59x74UkoXglP\nbhFQqEtfdwnWUoW6/b0ryUn6lnNu/y+L/V3SPOdcuZlVKTQOixGcx6i6Op++d+Nzncqdkx7909sf\nK9u/npOTJkna19qmBx9Y0+nYbRX1uu+/i7t8vUNfKz0judM+ldsb9Ks7+7ZfMgCgb7VVV6jkqi6m\nS3ft2vm7Kz5WtHPx5ZJCv50lSe2+RlXdc2GnQ1s/XKXtP53XqVxSp9dKyMzttI9v0+tdx4SjWrBq\nr3ae+F+dN7Q7NXz3OTUcVNTwndB9TGJ48q72Jn+Xv08VeKdKtVd2PVXCoa9l2Wmd9nH1PtVeRWK/\nn2cJlnPutkPWH1UXk1o454YftJodLmuX9K1uznu/pPvDz/0KjecCouK228/uVNZVwgcAgJfG/mZ3\n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\n",
"text/plain": [
" "
]
}
],
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}