PyScheduling: an Extensible and User-Friendly Python Framework for Scheduling Problems Taha Arbaoui taha.arboaui@utt.fr University of Technology of Troyes, France Mohamed Elamine Athmani mohamed_elamine.athmani@utt.fr University of Technology of Troyes, France Mohammed Henni em_henni@esi.dz École nationale Supérieure d’Informatique, Algeria Akram Badreddine Laissaoui ja_laissaoui@esi.dz École nationale Supérieure d’Informatique, Algeria Mourad Terzi terzi.mourad@utt.fr University of Technology of Troyes, France ABSTRACT Scheduling problems are one of the most important combinato- rial optimization problems. Solving them is often a tedious and lengthy task. We introduce PyScheduling, a scheduling framework designed to help users model and solve scheduling problems. The framework considers more than 130 scheduling problems and al- lows solving them with a few lines of code. The framework in- corporates several machine environments, constraints and objec- tive functions. Moreover, the framework provides the user with a number of features that help visualize, analyze and use the pro- posed solutions. Thanks to its architecture, the framework is eas- ily extensible, allowing researchers and advanced practitioners to adapt it to their use cases by adding machine environments, constraints, objective functions, solution approaches or any other desired feature with minimal efort. PyScheduling is therefore de- signed for several categories of users including researchers, students and practitioners. PyScheduling is open source and available on https://github.com/scheduling-cc/pyscheduling. ACM Reference Format: Taha Arbaoui, Mohamed Elamine Athmani, Mohammed Henni, Akram Badreddine Laissaoui, and Mourad Terzi. 2023. PyScheduling: an Extensible and User-Friendly Python Framework for Scheduling Problems. In Genetic and Evolutionary Computation Conference Companion (GECCO ’23 Compan- ion), July 15–19, 2023, Lisbon, Portugal. ACM, New York, NY, USA, 9 pages. https://doi.org/10.1145/3583133.3596366 1 INTRODUCTION Scheduling problems are one of the most important and hardest combinatorial optimization problems [4, 19]. Some variants of the scheduling problems such as job shop scheduling and fow shop scheduling are known to be NP-complete. Scheduling involves All authors contributed equality Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only. GECCO ’23 Companion, July 15–19, 2023, Lisbon, Portugal © 2023 Copyright held by the owner/author(s). Publication rights licensed to ACM. ACM ISBN 979-8-4007-0120-7/23/07. . . $15.00 https://doi.org/10.1145/3583133.3596366 assigning and sequencing jobs on machines with, sometimes, addi- tional constraints such as: setup times (a time to switch between jobs, operators, etc.), release dates (time at which the job becomes available for scheduling), due dates (time by which should be com- pleted), machine eligibility (restrictions on machines to which a job can be assigned), among others. Real-world scheduling problems often involve numerous complex constraints that must be dealt with. To solve them, companies often use list algorithms (ordering algorithms) and heuristics to establish a schedule solution. How- ever, obtaining near-optimal or optimal solutions often involves a lengthy process to design and implement existing or new solutions approaches. Scheduling problems are encountered in diferent domains (en- ergy, healthcare, cloud computing, manufacturing, etc.). In health- care, nurse rostering, operating room scheduling and resource plan- ning are among the most encountered problems [9]. Cloud comput- ing has several scheduling problems such as data centers operations scheduling [22]. Manufacturing is heavily impacted by operations scheduling. Shop scheduling is one of the most classical examples of a scheduling problem [3]. With such a range of applications, scheduling problems are known to be bottleneck problems when optimizing complex systems. Solving scheduling problems often involves using dedicated algo- rithms (list algorithms, heuristics, metaheuristics, etc.) or existing solvers (CPLEX, Gurobi, etc.) where the user needs to model and implement the solution approach. However, constraints and criteria (i.e. objective functions) are mostly common for these problems. Constraints such as release dates, setup times and due dates can be found across felds and can be taken into account in the same way, regardless of the real-world use case. Scheduling problems are therefore denoted using a unifed notation known as the Graham’s notation [11]. It is used to denote the machine environment, the constraints and the objective functions of the scheduling problem. For example, a single machine scheduling problem with sequence- dependent setup times and makespan (maximum completion time) minimization is denoted 1|  |  where 1 denotes the single ma- chine environment,  is the setup time between job and job and  is the makespan. Many frameworks have been proposed to solve combinatorial optimization problems [13, 17, 18, 20, 21]. Most frameworks focus on proposing generic solution approaches that need to be adapted by the user to the corresponding problem. 1855