Skip to content

This repository contains the implementation of the algorithms described in the paper "Proactive and reactive constraint programming for stochastic project scheduling with maximal time-lags."

License

Notifications You must be signed in to change notification settings

kimvandenhouten/AAAI25_SRCPSPmax

Repository files navigation

stochasticRCPSPmax

This repository contains the implementation of:

Van den Houten, K., Planken, L., Freydell, E., Tax, D. M., & De Weerdt, M. (2025, April). Proactive and reactive constraint programming for stochastic project scheduling with maximal time-lags. In Proceedings of the AAAI Conference on Artificial Intelligence (Vol. 39, No. 25, pp. 26534-26541).

This repository implements a proactive, a reactive, and a hybrid approach for stochastic RCPSP/max. It uses state-of-the-art techniques from Constraint Programming (CP) and Simple Temporal Networks with Uncertainty (STNUs).

Installation and practical issues

From a terminal session:

cd /path/to/stochasticRCPSPmax      # Go to the directory where you downloaded the repository
python3 -m venv venv                # Create a new virtual environment
. venv/bin/activate                 # Activate it
pip install -r requirements.txt     # Install dependencies

To be able to run all experiments in this repository, you also need to install the IBM CPLEX Optimization Studio (full edition, available via an academic licence). The CPLEX optimizer must then be made available to the scripts by creating a symbolic link in the virtualenv; for example (adjust paths for your system):

ln -s /opt/ibm/ILOG/CPLEX_Studio2211/cpoptimizer/bin/x86-64_linux/cpoptimizer /path/to/stochasticRCPSPmax/venv/bin/

For running scripts from this repository, make sure that:

  • the working directory is /path/to/stochasticRCPSPmax
  • /path/to/stochasticRCPSPmax is in PYTHONPATH
  • the virtual environment is activated

CSTNU tool

The STNU-based algorithms make use of the Java CSTNU Tool by Roberto Posenato1. Our Python repository already includes a JAR file for running the CSTNU-Tool, so no further action is needed.

Reproduction of experiments and tables

To reproduce the results from our experiments, run:

python3 aaai25/experiments/run_experiments.py

To solve the deterministic instances with perfect information, run:

python3 aaai25/experiments/run_deterministic_instances.py

To reproduce the table with the comparison of the feasibility ratios, run:

python3 aaai25/generate_tables_compare_feasibility_ratios.py

To reproduce the tables that are provided in the supplementary material and that include the test results from the Wilcoxon test, Proportion test, and Magnitude test, run the following:

python3 aaai25/generate_tables/compare_two_methods_obj_to_latex.py
python3 aaai25/generate_tables/compare_two_methods_offline_time_to_latex.py
python3 aaai25/generate_tables/compare_two_methods_online_time_to_latex.py

Note that Table 1 of the main paper "Proactive and Reactive Constraint Programming for Stochastic Project Scheduling with Maximal Time-Lags" shows a subset of the results in the tables that are output by the scripts above.

Footnotes

  1. Posenato, R. (2022). CSTNU Tool: A Java library for checking temporal networks. SoftwareX, 17, 100905. [http://dx.doi.org/10.1016/j.softx.2021.100905]

About

This repository contains the implementation of the algorithms described in the paper "Proactive and reactive constraint programming for stochastic project scheduling with maximal time-lags."

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published