Subject Used in This Tutorial

In this tutorial, we will use the Job Shop Scheduling Problem as our subject. This is a practical optimization problem that aims to minimize the total processing time when handling multiple jobs on multiple machines.

What is the Job Shop Scheduling Problem?

The Job Shop Scheduling Problem involves determining how to assign multiple jobs to multiple machines operating in parallel. Each job has a specific processing time, and the goal is to minimize the total time (makespan) required to complete all jobs.

This problem can be applied to various real-world scenarios, such as factory production planning, task scheduling in computer systems, and project management.

Main Features of the Problem

Objective Function Constraints Decision Variables
Minimize the makespan (time to complete all jobs)
  • Each job is assigned to only one machine
  • The total processing time of each machine is less than or equal to the makespan
  • Which job is assigned to which machine (binary variables)
  • Makespan
Try the Demo

Job Shop Scheduling Problem Demo

Instructions

Assign 10 jobs to 3 machines to minimize the makespan (maximum completion time). Drag jobs and drop them into the machine area below.

Unassigned Jobs

Job 0 (5 hours)
Job 1 (8 hours)
Job 2 (3 hours)
Job 3 (6 hours)
Job 4 (9 hours)
Job 5 (4 hours)
Job 6 (7 hours)
Job 7 (5 hours)
Job 8 (2 hours)
Job 9 (8 hours)

Machine 1

Load: 0 hours

Machine 2

Load: 0 hours

Machine 3

Load: 0 hours

Current Makespan (Maximum Load): 0 hours

In the next section, we will learn how to implement and solve this Parallel Job Shop Scheduling Problem using JijModeling, OMMX, and MINTO.