Skip to content

Scheduling unrelated machines with job splitting, setup resources and sequence dependency: Implementation of Simulated Annealing using Python

Notifications You must be signed in to change notification settings

amoustakis/Job-scheduling-algorithm-subject-to-multiple-constraints

Repository files navigation

The main concept of the topic is assigning jobs to multiple machines in order for them to be processed in parallel (Parallel Machine Scheduling - PMS). When jobs are processed in parallel in multiple machines the total execution time is reduced. This objective is often referred in the bibliography as minimization of makespan, which is simply the minimization of the total time for all the jobs to finish.

This project was based on https://www.tandfonline.com/doi/full/10.1080/00207543.2022.2102948 written by Ioannis Avgerinos, Ioannis Mourtos, Stavros Vatikiotis and Georgios Zois. I used the results of their Greedy Heuristic Algorithm and tried to improve them with an implementation of Simulated Annealing. The results were improved in more than 50% of the tested instances. The code was written in Python (Google Colab). The report contains extensive documentation, diagrams, results and description of mathematical concepts.

About

Scheduling unrelated machines with job splitting, setup resources and sequence dependency: Implementation of Simulated Annealing using Python

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published