/RCPSP_GA

Python implementation of a Genetic Algorithm for the Resource-Constrained Project Scheduling Problem

Primary LanguagePython

Genetic Algorithm for the Resource-Constrained Project Scheduling Problem

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

Installation

Install the modules listed in the requirements.txt.

Code Execution

Run the driver.py file. The variable number_of_threads may need to be adjusted according to your hardware.