Scheduling in multi-stage production systems demands adaptive solutions to optimize conflicting objectives such as makespan, tardiness, and resource efficiency. While traditional methods like manual dispatching rules or exact solvers (e.g., IBM CPLEX) offer partial solutions, they often lack scalability, flexibility, and computational efficiency in dynamic environments. This thesis explores the application of Genetic Programming (GP) to automate the creation of dispatching rules and ensemble strategies for flexible flow shop scheduling, focusing on addressing critical gaps in adaptability and robustness. The study introduces dynamic ensemble aggregation techniques, including fitness-weighted, random, and plurality voting schemes. To enhance diversity within ensembles, marker-driven selection was proposed. These methods are rigorously evaluated through comparative experiments against CPLEX, revealing that GP ensembles achieve competitive makespan minimization (e.g., 7–12% improvement in large-scale instances) while drastically reducing computational time. Further analysis demonstrates scalability to industrial-scale problems (e.g., 100+ jobs across eight stages) and provides insights into ensemble behavior, such as the relationship between marker diversity and scheduling performance. By integrating dynamic aggregation, marker-based diversity, and systematic experimentation, this work advances the practical applicability of GP in production scheduling. The findings highlight GP’s potential to replace rigid manual heuristics and resource-intensive solvers.
«
Scheduling in multi-stage production systems demands adaptive solutions to optimize conflicting objectives such as makespan, tardiness, and resource efficiency. While traditional methods like manual dispatching rules or exact solvers (e.g., IBM CPLEX) offer partial solutions, they often lack scalability, flexibility, and computational efficiency in dynamic environments. This thesis explores the application of Genetic Programming (GP) to automate the creation of dispatching rules and ensemble str...
»