## 1 Introduction  
Production scheduling is a practical and significant problem that reflects real-world problems and difficulties in several application areas, including production planning, logistics, order processing, and others. Effective production scheduling is a critical task for manufacturing industries in order to minimize production costs and maximize resource utilization. There are two primary strands of research on production scheduling literature; the first concerns static scheduling issues, where all information about tasks is known before the start of the first task. Earlier research has been aimed at finding the most effective methods to address static scheduling issues. As product demand has continued to shift towards personalization, manufacturing processes have become more diverse, and practical scheduling problems have become more complex. Uncertainty has increased in manufacturing workshops, where such things as machine breakdowns, the arrival of urgent jobs, and changes in delivery dates can all affect the stable operation of workshops. Among state-of-the-art methods, traditional deterministic approaches, metaheuristic algorithms, and dispatching rules are the most frequently used methods for maintaining the stability of the production process. Traditional deterministic techniques, such as branch and bound [1], dynamic programming [2], and gradient free techniques [3], are unable to handle such dynamic issues effectively and efficiently. However, it is well known that these traditional deterministic approaches are computationally expensive, and that their complexity increases exponentially with the scale of the problem. Additionally, it is extremely difficult to resolve dynamic issues that require a large number of real-time decisions. Several metaheuristics, such as particle swarm optimization [4], scatter search [5], simulated annealing [6], genetic algorithms [7], and ant colony optimization [8], have been shown to be successful and efficient in finding high-quality solutions in a reasonable amount of time. However, due to the lack of convenience and immediacy, metaheuristics have not been directly applied to real-world manufacturing. Dispatching rules are among the most frequently applied heuristics in production scheduling due to their simplicity and ability to adapt in response to changes in the production manufacturing system. A dispatching rule can be represented as a priority function that contains data on the attributes of the jobs, the machines, or the systems. The efficiency of the dispatching rules is related to the state change in the scheduling environment [9]. Therefore, dispatching rules should be designed and generated according to the real-time changes in the production conditions in the manufacturing process. There have been plenty of dispatching rules put forth for dynamic job-shop scheduling (DJSS). More generally, the design of dispatching rules can be divided in two main ways: manual design and intelligent design. However, developing man-made dispatching rules is technically challenging, for several reasons: first, it is challenging to explore the relative importance of various job and machine features and their impact on rule performance; second, it takes a great deal of time to select and test the optimal dispatching rules using complicated modeling tests. There have been several studies advocating the use of different methodologies to design scheduling rules, and they have successfully produced rules that are far better than those constructed by hand [10; 11; 12]. The effectiveness of a dispatching rule relies on its capacity to account for unforeseen circumstances, as well as maximize those most crucial aspects that might impact the target [13]. While several dispatching rules have been presented, none of them can achieve optimal results in all scenarios [14]. Recently, a large number of researchers have attempted (with the help of hyperheuristics) to automatically construct dispatching rules [15].