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