# Difference between revisions of "Job shop scheduling"

Line 26: | Line 26: | ||

....improve the adaptability? | ....improve the adaptability? | ||

− | This problem can also be applied to many projects in the technology industry. In computer programming, it is typical that computer instructions can only be executed one at a time on a single processor, sequentially. In this example of multiprocessor task scheduling, the instructions can be thought of as the "jobs" to be performed and the processors required for each task can be compared to the "machines". Here we would want to schedule the order of instructions such that the number of operations performed is maximized to make the computer as efficient as possible.<ref>Peter Brucker, "The Job-Shop Problem: Old and New Challenges", ''Universit¨at Osnabr¨uck, Albrechtstr.'' 28a, 49069 Osnabr¨uck, Germany, pbrucker@uni-osnabrueck.de</ref> Within this application, there are a further variety of heuristic methods considered as to how to execute tasks to maximize efficiency and minimize costs, including minimum completion time, duplex, max-min, min-min, tabu search, and genetic algorithm. Each of these methods have their advantages and disadvantages, weighing the importance of minimizing execution time versus finding the closest to optimal solution.<ref>Abdeyazdan M., Rahmani A.M. (2008) Multiprocessor Task Scheduling using a new Prioritizing Genetic Algorithm based on number of Task Children. In: Kacsuk P., Lovas R., Németh Z. (eds) Distributed and Parallel Systems. Springer, Boston, MA. <nowiki>https://doi.org/10.1007/978-0-387-79448-8_10</nowiki></ref> | + | This problem can also be applied to many projects in the technology industry. In computer programming, it is typical that computer instructions can only be executed one at a time on a single processor, sequentially. In this example of multiprocessor task scheduling, the instructions can be thought of as the "jobs" to be performed and the processors required for each task can be compared to the "machines". Here we would want to schedule the order of instructions such that the number of operations performed is maximized to make the computer as efficient as possible.<ref>Peter Brucker, "The Job-Shop Problem: Old and New Challenges", ''Universit¨at Osnabr¨uck, Albrechtstr.'' 28a, 49069 Osnabr¨uck, Germany, pbrucker@uni-osnabrueck.de</ref> Within this application, there are a further variety of heuristic methods considered as to how to execute tasks to maximize efficiency and minimize costs, including minimum completion time, duplex, max-min, min-min, tabu search, and genetic algorithm. Each of these methods have their advantages and disadvantages, weighing the importance of minimizing execution time versus finding the closest to optimal solution.<ref>Abdeyazdan M., Rahmani A.M. (2008) Multiprocessor Task Scheduling using a new Prioritizing Genetic Algorithm based on number of Task Children. In: Kacsuk P., Lovas R., Németh Z. (eds) Distributed and Parallel Systems. Springer, Boston, MA. <nowiki>https://doi.org/10.1007/978-0-387-79448-8_10</nowiki></ref> |

+ | [[File:Screen Shot 2021-11-28 at 6.00.24 PM.png|thumb|Fig 2. Comparison of Gantt charts for the standard and operational assignment cases, two common methods of robot move cycles.<ref name=":1" />]] | ||

+ | |||

+ | |||

+ | With the progression of automation in recent years, robotic tasks such as moving objects from one location to another are similarly optimized. In this application, the extent of movement of the robot is minimized while conducting the most amount of transport jobs to support the most effective productivity of the robot. There are additional nuances within this problem as well, such as the rotational movement capabilities of the robot, the layout of the robots within the system, and the number of parts or units the robot is able to produce. While each of these factors contribute to the complexity of the job shop scheduling problem, they are all worth considering as more and more companies are proceeding in this direction to reduce labor costs and increase flexibility and safety of the enterprise.<ref name=":1">M.Selim Akturk, Hakan Gultekin, Oya Ekin Karasan, Robotic cell scheduling with operational flexibility, Discrete Applied Mathematics, Volume 145, Issue 3, 2005, Pages 334-348, ISSN 0166-218X</ref> | ||

− | |||

==Conclusions== | ==Conclusions== |

## Revision as of 19:06, 28 November 2021

Authors: Carly Cozzolino, Brianna Christiansen, Elaine Vallejos, Michael Sorce, Jeff Visk (SYSEN 5800 Fall 2021)

## Introduction

The Job-Shop Scheduling Problem (JSSP) is a combinatorial optimization problem, which mainly concerns the operations industry. The aim of the problem is to optimize the schedule for allocation of shared resources over time to competing activities^{[1]}.

Within a JSSP you will have *n* number of jobs (*J*_{1}, *J*_{2}, ..., *J _{n}* ), that will need to be completed using a

*m*number shared resources, most commonly denoted as machines (

*M*

_{1},

*M*

_{2}, ...,

*M*). Each job will have operations (

_{m}*O*) that will need to be completed in a specific order in order for the job to be completed. Operations must be completed at specific machines and require a specific amount of processing time (

*p*) on that machine.Machines are assumed to only be able to process one operation at a time, driving the need to optimize the order in which these operations are completed.

^{[1]}

^{[2]}The goal of the JSSP is to minimize the overall time it takes to complete all

*n j*obs within the problem.

## Theory/Methodology/Algorithms

The job shop scheduling problem is NP-hard meaning it’s complexity class for non-deterministic polynomial-time is least as hard as the hardest of problems in NP. As an input, there is a finite set *J* of jobs and a finite set of *M* of machines. Some jobs may need to be processed through multiple machines giving us an optimal potential processing order for each job. The processing time of the job *j* on machine *m* can be defined as the nonnegative integer . In order to minimize total completion time, the job shop can find the optimal schedule of *J* on *M*^{[3]}.

The assumptions made for solving the problem are as follows. The number of operations for each job is finite. The processing time for each operation in a particular machine is defined. There is a pre-defined sequence of operations that has to be maintained to complete each job. Delivery times of the products are undefined. No setup cost and tardiness cost. A machine can process only one job at a time. Each job visits each machine only once. No machine can deal with more than one type of task. The system cannot be interrupted until each operation of each job is finished. No machine can halt a job and start another job, before finishing the previous one^{[4]}. Given these assumptions, the problem can be solved at complexity class NP-hard.

One way of visualizing the job shop scheduling problem is using a Gantt-Chart. Given a problem of size 3 x 3 (*J* x *M*), a solution can be represented as shown in Figure 1. Depending on the job, the operating time on each machine could vary.

## At least one numerical example

encouraged to have more than one

## Applications

There are several ways in which the job-shop scheduling problem can be modified, often to simplify the problem at hand, for a variety of applications.

The most obvious example can be found in the manufacturing industry, as the name suggests. It is common for some production jobs to require certain machines to perform tasks, due to the proper capabilities or equipment of a given machine. This adds an additional layer of complexity to the problem, because not any job can be processed on any machine. This is known as flexible manufacturing. Furthermore, there are many uncertain factors that are not accounted for in the basic understanding of the problem, such as delays in delivery of necessary supplies, significant absence of workers, equipment malfunction, etc. ^{[5]}

....improve the adaptability?

This problem can also be applied to many projects in the technology industry. In computer programming, it is typical that computer instructions can only be executed one at a time on a single processor, sequentially. In this example of multiprocessor task scheduling, the instructions can be thought of as the "jobs" to be performed and the processors required for each task can be compared to the "machines". Here we would want to schedule the order of instructions such that the number of operations performed is maximized to make the computer as efficient as possible.^{[6]} Within this application, there are a further variety of heuristic methods considered as to how to execute tasks to maximize efficiency and minimize costs, including minimum completion time, duplex, max-min, min-min, tabu search, and genetic algorithm. Each of these methods have their advantages and disadvantages, weighing the importance of minimizing execution time versus finding the closest to optimal solution.^{[7]}

With the progression of automation in recent years, robotic tasks such as moving objects from one location to another are similarly optimized. In this application, the extent of movement of the robot is minimized while conducting the most amount of transport jobs to support the most effective productivity of the robot. There are additional nuances within this problem as well, such as the rotational movement capabilities of the robot, the layout of the robots within the system, and the number of parts or units the robot is able to produce. While each of these factors contribute to the complexity of the job shop scheduling problem, they are all worth considering as more and more companies are proceeding in this direction to reduce labor costs and increase flexibility and safety of the enterprise.^{[8]}

## Conclusions

Job-Shop Scheduling Problems are NP-hard combinatorial optimization problems, predominately used for operations applications. JSSPs minimize the overall time a set of jobs takes to complete, by optimizing the schedule in which shared resources are set to be allocated.

JSSPs can be solved using a variety of methods and algorithms.

There are multiple applications for JSSPs, the predominate application is within the manufacturing industry as the name implies. Other applications for this problem could also be the optimization of a computer's processing power as it executes multiple programs, optimization of automated equipment or robots, as well as a number of other applications.

## References

- ↑
^{1.0}^{1.1}^{1.2}T. Yamada and R. Nakano. "Job Shop Scheduling," IEEE Control Engineering Series, 1997. - ↑ P. Brucker, B. Jurisch and B. Sievers. "A branch and bound algorithm for the job-shop scheduling problem", Discrete Applied Mathematics, 1994.
- ↑ D. Applegate and W. Cook. "A computational study of the job-shop scheduling problem," ORSA J. on Comput, 1991.
- ↑ K. Hasan. "Evolutionary Algorithms for Solving Job-Shop Scheduling Problems in the Presence of Process Interruptions," Rajshahi University of Engineering and Technology, Bangladesh. 2009.
- ↑ Jianzhong Xu, Song Zhang, Yuzhen Hu, "Research on Construction and Application for the Model of Multistage Job Shop Scheduling Problem",
*Mathematical Problems in Engineering*, vol. 2020, Article ID 6357394, 12 pages, 2020. https://doi.org/10.1155/2020/6357394 - ↑ Peter Brucker, "The Job-Shop Problem: Old and New Challenges",
*Universit¨at Osnabr¨uck, Albrechtstr.*28a, 49069 Osnabr¨uck, Germany, pbrucker@uni-osnabrueck.de - ↑ Abdeyazdan M., Rahmani A.M. (2008) Multiprocessor Task Scheduling using a new Prioritizing Genetic Algorithm based on number of Task Children. In: Kacsuk P., Lovas R., Németh Z. (eds) Distributed and Parallel Systems. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-79448-8_10
- ↑
^{8.0}^{8.1}M.Selim Akturk, Hakan Gultekin, Oya Ekin Karasan, Robotic cell scheduling with operational flexibility, Discrete Applied Mathematics, Volume 145, Issue 3, 2005, Pages 334-348, ISSN 0166-218X