PSPLIB
This library implements parsers for various project scheduling benchmark instances, including:
- Resource-Constrained Project Scheduling Problem (RCPSP)
- Multi-Mode RCPSP (MMRCPSP)
- RCPSP with Minimal and Maximal Time Lags (RCPSP/max)
- Resource-Constrained Multi Project Scheduling Problem (RCMPSP)
- RCPSP with flexible project structure (RCPSP-PS) and RCPSP with alternative subgraphs (RCPSP-AS)
- Multi-skilled RCPSP (MSRCPSP)
psplib has no dependencies and can be installed in the usual way:
pip install psplib
Example usage
>>> from psplib import parse
>>> instance = parse("data/j301_1.sm", instance_format="psplib")
>>> instance.num_resources
4
>>> instance.resources
[Resource(capacity=12, renewable=True, skills=None), ..., Resource(capacity=12, renewable=True, skills=None)]
>>> instance.num_activities
32
>>> instance.activities
[Activity(modes=[Mode(duration=0, demands=[0, 0, 0, 0])], successors=[1, 2, 3], delays=None, skills=None, name=''),
Activity(modes=[Mode(duration=8, demands=[4, 0, 0, 0])], successors=[5, 10, 14], delays=None, skills=None, name=''),
...,
Activity(modes=[Mode(duration=0, demands=[0, 0, 0, 0])], successors=[], delays=None, skills=None, name='')]
See this notebook for a slightly longer example demonstration of PSPLIB.
Instance formats
psplib implements parsers for commonly used project scheduling instance formats, listed below.
To parse a specific instance format, set the instance_format argument in parse.
psplib: The PSPLIB format is used by the PSPLIB library to describe RCPSP and MMRCPSP instances.patterson: The Patterson format: used for RCPSP instances, mostly used by the OR&S library. See this website for more details.rcpsp_max: The RCPSP/max format is used for RCPSP/max instances from TU Clausthal.mplib: The MPLIB format is used for RCMPSP instances from the MPLIB library.rcpsp_ps: The RCPSP-PS format is the format used by Van der Beek et al. (2024). Specifically, we included an extra line that defines for each task whether it is optional or not.aslib: The ASLIB format is the format used by RCPSP-AS instances from the ASLIB instance set at OR&S project database. ASLIB consist of three different parts (a, b, c). To use this parser, you have to merge parts (a) and (b) into a single file - part (c) is not parsed. See this gist.mslib: The MSLIB format is the format used by MSRCPSP instances from the MSLIB instance set at OR&S project database.
Instance databases
The following websites host widely-used project scheduling benchmark instances.
-
PSPLIB contains different problem sets for various types of resource constrained project scheduling problems as well as optimal and heuristic solutions.
-
OR&S project database is the research data website of the Operations Research and Scheduling (OR&S) Research group of the Faculty of Economics and Business Administration at Ghent University (Belgium). OR&S is very active in the field of project scheduling and has published instances for many project scheduling variants.
-
TU Clausthal provides RCPSP/max benchmark instances.
Release files for psplib 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| psplib-0.4.0.tar.gz | 55.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| psplib-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.9 kB
Release files / psplib-0.4.0.tar.gz
| Download URL | psplib-0.4.0.tar.gz |
|---|---|
| Size | 55.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b3599e42676e01bd6ba34bb75bd8ad5d0984b98f4d03f4404a238d481cc52c38
|
|
BLAKE2b-256 checksum How to use checksums |
ee424df811843336e63c56f6e14d19d803ee32782c535dca8d7ca052ba6cb6f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.4.27
|
Release files / psplib-0.4.0-py3-none-any.whl
| Download URL | psplib-0.4.0-py3-none-any.whl |
|---|---|
| Size | 13.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9fd00599762befed2a04d45b64c1bbd3328a6614598a18d84345de5d3f488dbd
|
|
BLAKE2b-256 checksum How to use checksums |
edcf00b6913b1b02808b78b1781fffce3b58e709cb6a1c11b4080a50b09046bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.4.27
|