## 1 Introduction  
The new industrial revolution, known as Industry 4.0 [1], is improving manufacturing environments based on nine pillars: Big Data, simulation, additive manufacturing, cyber-security, cloud computing, the Internet of Things, cyber-physical systems and robotics integration, and augmented reality [2]. A key enabler of the Industry 4.0 paradigm is the use of artificial intelligence (both machine learning and optimization), which can be used to improve the production process by finding complex relationships between process variables and their final quality [3], predictive maintenance [4], the prediction of demand and sales [5], computer vision [6], the optimization of the furnace's charge [7], parameter optimization [8], industrial simulator optimizations [9], and many more similar use cases. An important area in production environments is production planning, widely known as the job shop scheduling problem (JSP) [10, 11]. In the JSP, multiple jobs are processed on several machines. Each job comprises a sequence of tasks that must be processed in a given order, whereas each task must be processed on a specific machine. The problem is to schedule the tasks on the machines towards minimizing one or several measures of the production efficiency (e.g., the time needed for all the jobs to be completed). The flexible JSP (FJSP) extends the JSP by considering that a task can be processed by any machine from a given set, so that the solution also includes the assignment of tasks to machines. There are a number of practical factors that must be taken into account in order to carry out production planning satisfactorily, such as the machines' availability, jobs, materials, personnel, or machine depreciation costs. The dimensions of these factors increase in larger factories due to the equally increasing number of installed production assets, the continuous arrival of more production orders, and other aspects that make the underlying production planning processes even more difficult to tackle. Finding the best combination for production planning is not a trivial task. The number of possible combinations is in the order of \((n! )^{m}\), \(n\) being the number of jobs and \(m\) the number of machines [12]. For instance, five jobs can be assigned and scheduled in a factory of just five machines in approximately \(24.8\times 10^{9}\) different combinations. Consequently, the use of exhaustive optimization techniques is not feasible in real-world industrial scenarios, where the number of machines and jobs can be much higher than the aforementioned example. Therefore, non-exact optimization techniques have been proposed as an alternative to cope with the complexity of JSP problems, including metaheuristics, a broad family of optimization techniques that do not guarantee the discovery of optimal solutions, but usually provide near-optimal solutions within reasonable times [13]. Evolutionary computation, which is arguably the most widely known subfamily of metaheuristics, has been applied to the JSP as well over the years [14]. The formulation of a JSP problem may consider more than one conflicting objective to be minimized, such as the makespan (total time to complete a given production plan), total tardiness, and machine changes. Consequently, the JSP can be formulated as a multi-objective optimization problem, wherein the optimum is not a unique solution, but a set of trade-off solutions differently balancing among the established objectives (known as the Pareto set). From an algorithmic perspective, addressing several objectives and approximating the Pareto set that optimally balances them even further increases the complexity of designing an efficient and scalable optimization technique. In addition to the common production-related goals mentioned previously (e.g., makespan, total tardiness), the reduction of the energy consumption is a crucial aspect of today's society, due to the effects of climate change and the rising concerns about the long-term sustainability of the planet [15; 16].