## 2 Background
### The JSP Problem  
The job shop scheduling problem (JSP or JSSP) [26; 27] is an optimization problem focused on assigning production jobs to industrial resources at a particular time. It is one of the main problems in today's companies' production planning, as they are dedicating resources in an attempt at efficiently finding optimal plannings. Given the NP-hard \begin{table}
\begin{tabular}{l l} \hline
**Nature-Inspired** & **Non-Nature-Inspired** \\ \hline \(\bullet\) Simulated annealing (SA) & \(\bullet\) Tabu search (TS) \\ \(\bullet\) Swarm Intelligence & \(\bullet\) Variable neighborhood search (VNS) \\ \(-\) Particle swarm optimization (PSO) & \(\bullet\) Scatter search (SS) \\ \(-\) Ant colony optimization (ACO) & \(\bullet\) Iterated local search (ILS) \\ \(\bullet\) Evolutionary computation (EC) & \(\bullet\) Guided local search (GLS) \\ \(-\) Genetic algorithm (GA) & \(\bullet\) Path relinking (PR) \\ \(-\) Evolution strategy (ES) & \(\bullet\) Greedy randomized adaptive \\ \(-\) Genetic programming (GP) & Search procedure (GRASP) \\ \(\bullet\) Artificial immune system (AIS) & \\ \hline \end{tabular}
\end{table} 
Table 1: Classification of metaheuristics in nature-inspired and non-nature-inspired techniques, together with some illustrative examples for each of these categories. complexity of the JSP, in many cases, the assignment of tasks/jobs to resources is performed by humans, which severely limits the possibility of successfully finding global optimum assignments. Therefore, the main goal of the JSP is to find a production plan taking into account variables and constraints that affect the production in the scenario under consideration. Such aspects can be assorted in their nature, including the availability of machines, the minimum quantities to be produced for each type of product, the quality and availability of materials, the personnel qualifications, the eventual occurrence of breakdowns, etc. An objective that is usually considered across the literature related to the JSP is the minimization of the total production time needed to achieve certain production goals (commit), also referred to as _makespan_. In general, the makespan can be regarded as the total time needed for all jobs to be completed from the beginning [26]. Several studies presented in the 1980s and 1990s approached the makespan minimization problem using optimization algorithms [14; 28; 29; 30]. However, this seminal JSP formulation still has relevance and continues receiving the interest of the research community working on metaheuristics [31; 32]. Besides the continued consideration of the makespan as a core target of the JSP, energy consumption has climbed up the priority ranking in the last few years, due to the global awareness arising around climate change and the sustainability of the industrial value chain [15]. There is a global challenge to curb emissions generated by countries, with high penalties for non-compliers, which is also associated with higher energy costs due to penalties for using energy production methods with a high environmental impact, such as the use of coal. Mathematically, the JSP (and its FJSP extension) can be formulated departing from a set \(\mathcal{J}\) of \(N\) independent jobs \(\{j_{n}\}_{n=1}^{N}\). Each job has its own processing order through \(M\) machines available in the production plant, which are denoted as \(\mathcal{M}=\{m_{i}\}_{i=1}^{M}\). Each job \(j_{n}\) comprises a number \(O_{n}\) of ordered tasks \(\left[T_{1}^{n},\ldots,T_{O_{n}}^{n}\right]\), which must be completed for job \(j_{n}\) to be declared as _processed_. As such, task \(T_{k}^{n}\) can be assumed to be processed (1) on a predefined machine \(m_{j}\in\mathcal{M}\) (as in the JSP) or (2) on any machine in a given subset of qualified machines \(\mathcal{M}_{j}\subseteq\mathcal{M}\). When task \(T_{k}^{n}\) is assigned to machine \(m_{j}\), a cost \(C_{j,n,k}\) is incurred (e.g., processing time or energy consumption).