Code and Models for the Generalized Parallel Machine Scheduling (GPMS) Framework
- 1. TU Wien
Description
Context and methodology
This record contains a frozen snapshot of the solver source code, constraint models, and experiment configurations accompanying the paper "GPMS: A Generalized Parallel Machine Scheduling Framework with Rich Temporal and Resource Constraints".
Link to the paper: 10.1609/icaps.v36i1.42866
Reference: Frühwirth, L., Einspieler, C., Musliu, N., & Winter, F. (2026). GPMS: A Generalized Parallel Machine Scheduling Framework with Rich Temporal and Resource Constraints. In Proceedings of the International Conference on Automated Planning and Scheduling (Vol. 36, No. 1, pp. 490-499).
Purpose: An open-source solver for the generalized parallel machine scheduling problem, which combines, among others, time-varying machine availability, precedence constraints with time lags, secondary resources with time-varying capacity, and sequence-dependent setups. The snapshot reproduces the exact and heuristic results reported in the paper.
Contents: construction heuristics, a CP-SAT (OR-Tools) model, equivalent MiniZinc constraint models, a command-line runner, a parameterized instance generator, and the experiment configurations used in the paper.
Technical details
The code is a .NET 8 solution organized by component:
- Input / MathematicalInput — instance model and instance feature extraction
- Solving — construction heuristics and the CP-SAT (OR-Tools) solver
- MiniZinc — the .mzn constraint models for the exact formulations
- Validation — solution validation
- Serialization / Output — JSON (de) serialization and schedule output structures
- InstanceGeneration (+ CLI) — parameterized instance generator
- SolverCLI — command-line entry point and experiment runner
The solver CLI is driven by JSON configuration files passed via --config. The configurations are grouped by instance set (generated, real_type1, real_type2, real_type3) and by solver: construction heuristics only (*_CH), CP-SAT cold start (*_CP_cold), CP-SAT warm-started from the construction heuristics (*_CP_warm), and the MiniZinc model solved with the OR-Tools CP-SAT backend (*_Mzn_CP). Build and run instructions are provided in the README inside the archive.
Required software: Building and running require the .NET 8 SDK. The MiniZinc-based exact models additionally require a MiniZinc installation; the CP-SAT and heuristic solvers do not. All other dependencies are public NuGet packages restored automatically from nuget.org.
All files in the archive are plain text and are best opened in a code editor or IDE (such as Visual Studio, Visual Studio Code, or JetBrains Rider) rather than a plain text editor. The archive contains the following file types:
.cs C# source code, the solver implementation. Compiled by the .NET 8 SDK
.sln the Visual Studio solution file, the build entry point (dotnet build ParallelMachineScheduling.sln)
.csproj MSBuild project files declaring target framework and dependencies, read automatically by the build
.config nuget.config, pointing dependency restore at nuget.org
.mzn MiniZinc constraint models, needed only to run the MiniZinc models; opened and run with a MiniZinc installation/IDE
.json experiment configurations under Configs/ (solver settings and paths), needed to reproduce the runs
.md README.md with build and run instructions
LICENSE the MIT license text (no file extension)
The code is released under the MIT License.
Additional resources: The benchmark instances used in the experiments are archived in a companion record at 10.48436/g0cyt-4h155
Files
GPMS-code-icaps2026.zip
Additional details
Related works
- Is supplement to
- Conference Paper: 10.1609/icaps.v36i1.42866 (DOI)
- Is supplemented by
- Dataset: 10.48436/g0cyt-4h155 (DOI)
Dates
- Submitted
- 2026-06-03