Python implementation of the Genetic Algorithm proposed by S. Hartmann in the research paper "A competitive genetic algorithm for resource-constrained project scheduling", see also here. Some adjustments have been made, such as generating the initial population with a roulette-wheel selection based on latest-finish-times of activities (instead of purely random).
Mostly serves as a test bench for personal use or as a starting point for students that work on scheduling problems.
For an extensive introduction to the resource-constrained project scheduling problem, see also here:
- "Complex Scheduling" - Brucker & Knust [Link]
- "Project Scheduling - A Research Handbook" - Demeulemeester & Herroelen [Link]
- "Scheduling Algorithms" - Brucker [Link]
- "Resource-Constrained Project Scheduling: Models, Algorithms, Extensions and Applications" - Artigues, Demassey and Néron [Link]
For a more visual introduction, see also this website: PM Knowledge Center
Install the modules listed in the requirements.txt
.
Run the driver.py
file. The variable number_of_threads
may need to be adjusted according to your hardware.