<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xml:lang="en" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">66267</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2025.066267</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>An SAC-AMBER Algorithm for Flexible Job Shop Scheduling with Material Kit</article-title>
<alt-title alt-title-type="left-running-head">An SAC-AMBER Algorithm for Flexible Job Shop Scheduling with Material Kit</alt-title>
<alt-title alt-title-type="right-running-head">An SAC-AMBER Algorithm for Flexible Job Shop Scheduling with Material Kit</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Li</surname><given-names>Bo</given-names></name></contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Yang</surname><given-names>Xiaoying</given-names></name><email>lyyxy111@163.com</email></contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western"><surname>Pei</surname><given-names>Zhijie</given-names></name></contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western"><surname>Yang</surname><given-names>Xin</given-names></name></contrib>
<contrib id="author-5" contrib-type="author">
<name name-style="western"><surname>Wu</surname><given-names>Yaqi</given-names></name></contrib>
<aff id="aff-1">
<institution>School of Mechatronics Engineering, Henan University of Science and Technology</institution>, <addr-line>Luoyang, 471003</addr-line>, <country>China</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Xiaoying Yang. Email: <email>lyyxy111@163.com</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2025</year>
</pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>03</day><month>07</month><year>2025</year>
</pub-date>
<volume>84</volume>
<issue>2</issue>
<fpage>3649</fpage>
<lpage>3672</lpage>
<history>
<date date-type="received">
<day>03</day>
<month>4</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>20</day>
<month>5</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2025 The Authors.</copyright-statement>
<copyright-year>2025</copyright-year>
<copyright-holder>Published by Tech Science Press.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_66267.pdf"></self-uri>
<abstract>
<p>It is well known that the kit completeness of parts processed in the previous stage is crucial for the subsequent manufacturing stage. This paper studies the flexible job shop scheduling problem (FJSP) with the objective of material kitting, where a material kit is a collection of components that ensures that a batch of components can be ready at the same time during the product assembly process. In this study, we consider completion time variance and maximum completion time as scheduling objectives, continue the weighted summation process for multiple objectives, and design adaptive weighted summation parameters to optimize productivity and reduce the difference in completion time between components in the same kit. The Soft Actor Critic (SAC) algorithm is designed to be combined with the Adaptive Multi-Buffer Experience Replay (AMBER) mechanism to propose the SAC-AMBER algorithm. The AMBER mechanism optimizes the experience sampling and policy updating process and enhances learning efficiency by categorically storing the experience into the standard buffer, the high equipment utilization buffer, and the high productivity buffer. Experimental results show that the SAC-AMBER algorithm can effectively reduce the maximum completion time on multiple datasets, reduce the difference in component completion time in the same kit, and thus optimize the readiness of the part kits, demonstrating relatively good stability and convergence. Compared with traditional heuristics, meta-heuristics, and other deep reinforcement learning methods, the SAC-AMBER algorithm performs better in terms of solution quality and computational efficiency, and through extensive testing on multiple datasets, the algorithm has been confirmed to have good generalization ability, providing an effective solution to the FJSP problem.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Soft actor-critic</kwd>
<kwd>DRL</kwd>
<kwd>adaptive multi-buffer experience replay</kwd>
<kwd>FJSP</kwd>
<kwd>material kit</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>With the continuous development of the manufacturing, production, and energy industries, scheduling problems have received increasing attention in recent years [<xref ref-type="bibr" rid="ref-1">1</xref>,<xref ref-type="bibr" rid="ref-2">2</xref>]. It is primarily divided into the Job Shop Scheduling Problem (JSP) and the Flow Shop Scheduling Problem (FSP) [<xref ref-type="bibr" rid="ref-3">3</xref>]. JSP, a classic manufacturing scheduling problem, aims to allocate tasks for multiple workpieces under resource constraints to optimize efficiency [<xref ref-type="bibr" rid="ref-4">4</xref>]. Compared with the job-shop scheduling problem, the Flexible Job-shop Scheduling Problem (FJSP) relaxes the restrictions on machines so that each operation can be processed on multiple compatible machines for each job, which makes FJSP more flexible and sophisticated [<xref ref-type="bibr" rid="ref-5">5</xref>]. Traditional FJSP optimization typically focuses on minimizing makespan [<xref ref-type="bibr" rid="ref-6">6</xref>], for example, in the production of bearings, which are mainly composed of inner rings, outer rings, rollers, and cages, if one of the parts is missing, the assembly cannot be carried out, which will prolong the assembly time, and there will be a risk of not being able to deliver on time. Another example is in the aircraft processing parts process, the lack of any one part will lead to belonging to the same kit or assembly of all parts processing lag, and the subsequent welding assembly can not be carried out [<xref ref-type="bibr" rid="ref-7">7</xref>]. Thus, it is clear that the production of parts in complete sets is critical to assembly-based manufacturing. FJSP with material kit constraints needs to consider the parts in the optimization process, so that all the relevant parts can be completed as synchronously as possible to meet the assembly requirements, compared with the traditional FJSP only focuses on processing efficiency, its scheduling is more complex and close to the actual production. Therefore, it is a challenge to optimize production efficiency by making the part-alignment requirement one of the constraints of FJSP.</p>
<p>Most of the current researches use heuristic algorithms, meta-heuristic algorithms, and deep reinforcement learning methods to solve FJSP problems with constraints such as fuzzy processing time, new job insertion, and machine unavailability.</p>
<p>Many researchers have proposed using heuristic algorithms to solve the FJSP. Ding et al. [<xref ref-type="bibr" rid="ref-8">8</xref>] employed a Fluid Randomized Adaptive Search Algorithm (FRASA) to address the FJSP with fluid dynamic characteristics. Lim and Moon [<xref ref-type="bibr" rid="ref-9">9</xref>] introduced a two-stage iterative mathematical programming-based heuristic approach, utilizing a decomposition scheme that prioritizes operation allocation to minimize the makespan. Boudjemline et al. [<xref ref-type="bibr" rid="ref-10">10</xref>] investigated a multi-objective FJSP aiming to simultaneously minimize the makespan, maximum machine load, and total workload and proposed a genetic algorithm applicable across various fields using spreadsheets. Typically, due to the complexity and flexibility of flexible job shops, heuristic algorithms do not perform well in solving FJSP.</p>
<p>However, in some studies, metaheuristic algorithms have demonstrated superior capabilities in solving flexible job scheduling problems. Fan et al. [<xref ref-type="bibr" rid="ref-11">11</xref>] proposed a hybrid Jaya algorithm integrated with Tabu search, which employs an incremental parameter setting strategy and period estimation to accelerate the spatial search process while ensuring a sufficiently large search space. Liao et al. [<xref ref-type="bibr" rid="ref-12">12</xref>] utilized the ABC II metaheuristic algorithm to solve FJSP with additional resource constraints. Hu et al. [<xref ref-type="bibr" rid="ref-13">13</xref>] addressed the flexible assembly job shop scheduling problem considering energy consumption and environmental pollution using a multi-objective artificial bee colony algorithm. Han and Gong [<xref ref-type="bibr" rid="ref-14">14</xref>] proposed an FJSP model that considers the worker learning forgetting effect and worker collaboration, and solved this bi-objective scheduling problem using a hybrid algorithm based on the nondominated hierarchy; Wang et al. [<xref ref-type="bibr" rid="ref-15">15</xref>] constructed a comprehensive scheduling model that contains four objectives, and proposed an improved decomposed multi-objective evolutionary algorithm to solve the problem; Feng et al. [<xref ref-type="bibr" rid="ref-16">16</xref>] proposed a multi-objective FJSP model containing machine failures, emergency order insertion, and designed an improved NSGA-III algorithm for dynamic scheduling. Although traditional multi-objective evolutionary algorithms can obtain excellent Pareto solution sets, they usually require a large number of computations and are difficult to be adjusted in real time during the production process. For multi-objective trade-offs, some methods use fixed weight combinations or hierarchical indexes, which are often difficult to flexibly adjust the relationship between objectives in practical applications.</p>
<p>Grumbach et al. [<xref ref-type="bibr" rid="ref-17">17</xref>] proposed combining Deep Reinforcement Learning (DRL) and metaheuristic algorithms to solve the Dual-Resource Constrained Flexible Job Shop Scheduling Problem (DRC-FJSSP) with practical orientation. Song et al. [<xref ref-type="bibr" rid="ref-18">18</xref>] addressed the stochastic economic lot scheduling problem by proposing a DRL approach that learns dynamic scheduling policies for SELSP in an end-to-end manner. Lei et al. [<xref ref-type="bibr" rid="ref-19">19</xref>] proposed an end-to-end hierarchical reinforcement learning framework for the large-scale dynamic flexible job shop scheduling problem. In this framework, high-level intelligences classify the DFJSP as a static FJSP subproblem, and two low-level intelligences are responsible for job operation sequencing and machine assignment tasks, respectively; Wu et al. [<xref ref-type="bibr" rid="ref-20">20</xref>] proposed a two-tier DDQN framework for dynamic FJSP for real-time selection of scheduling rules and simultaneous optimization of the sum of job delays and the maximal completion time; Xu et al. [<xref ref-type="bibr" rid="ref-21">21</xref>] designed a dynamic environment containing multiple perturbation events and used a two-tier integrated DQN to optimize maximum completion time, average equipment utilization, and average job drag time, respectively. However, when solving multi-objective problems, the DRL methods studied above often set multiple reward functions to balance each metric, or design multi-layer intelligences to train on multi-objectives, which will increase the complexity of constructing DRL reward functions, state spaces, and intelligences.</p>
<p>The research on FJSP with material kit is less studied at present. Xu et al. [<xref ref-type="bibr" rid="ref-22">22</xref>] constructed a corresponding mathematical model for the processing-assembly cooperative scheduling problem in a composite parallel production line environment by considering the matching constraints; Qiu et al. [<xref ref-type="bibr" rid="ref-23">23</xref>] faced the on-line scheduling problem of a two-phase flexible assembly flow shop by considering the complex constraints of multi-product deliveries and matching assemblies; Huang et al. [<xref ref-type="bibr" rid="ref-24">24</xref>] proposed a new hybrid distribution model for the material distribution scheduling of assembly lines. However, most of these researches adopt a two-stage hierarchical construction of mathematical models in order to ensure the synergy of part assembly, which may lead to the inconsistency of the objectives of the two phases, which will complicate the trade-off mechanism and increase the complexity of the model, and the need to solve the sub-objectives of each phase before solving the overall objective will increase the computational process, which may lead to the deterioration of the quality of the solution.</p>
<p>From the above literature, current FJSP research focuses on dynamic constraints such as fuzzy processing time, new job insertion and machine unavailability, but workpiece flush production often has a large impact on the start time of the next stage of production, so it is necessary to consider workpiece production flush in the production process, even though a small number of studies have mentioned the conditions of flush production in the process of considering the assembly production, but these studies mainly constructed two-stage mathematical models for the assembly stage, which will increase the complexity of the model; meanwhile, in the study of multi-objective FJSP process, many researchers have faced problems such as the need for a large number of computations and multi-objective trade-offs, although they have used multi-objective heuristic and meta-heuristic algorithms to improve the scheduling performance at the same time. And while DRL methods have the advantage of being able to respond quickly to the objectives when solving multi-objective problems, they tend to set more reward functions and intelligences that increase the difficulty of constructing Markov decisions.</p>
<p>To summarize, few scholars have studied the FJSP problem for workpiece flush production, and most of the studies on solving multi-objective problems using DRL with the construction of multi-stage, multi-intelligent body, and multi-reward function, but it will increase the computational process. Therefore, this study integrates part flushness into the scheduling model, considers the multi-objectives of minimizing the maximum part completion time and minimizing the variance of the part completion time, and combines the two optimization objectives into a composite metric by using weighted summation. In terms of objective trade-offs, the weighted summation method fuses the two objectives into a single reward function so that the DRL intelligences can automatically learn to balance the objective weights during the training process instead of fixing the weights beforehand or simply seeking the Pareto frontiers, and the trained DRL strategies can quickly respond online without re-running time-consuming multi-objective optimization algorithms; meanwhile, this study proposes a SAC-based improvement method an Adaptive Multi-Buffer Experience Replay(AMBER) algorithm, which designs three experience buffers for the FJSP problem, and can alleviate the reward sparsity of SAC algorithm while being able to provide more effective strategies for the intelligentsia. Finally, the feasibility of the proposed method and model is verified by setting up experiments on Hurink, Brandimarte and Dauzere benchmarks. The main contributions of this paper are as follows:
<list list-type="simple">
<list-item>
<label>(1)</label>
<p>A flexible job shop scheduling model is designed to incorporate kit production requirements among jobs.</p></list-item>
<list-item>
<label>(2)</label>
<p>The AMBER experience replay buffer algorithm is proposed, which classifies and manages experiences of varying importance in the Soft Actor-Critic (SAC) framework by designing three distinct buffers: a standard buffer, a high equipment utilization buffer, and a high productivity buffer. This approach addresses the issues of low experience utilization and learning efficiency during training.</p></list-item>
<list-item>
<label>(3)</label>
<p>In this study, the improved algorithm is initially trained on the Hurink dataset and fine-tuned on the Brandimarte dataset, demonstrating its effectiveness across different datasets. Additionally, the feasibility of the model under kit production constraints is further validated by randomly sampling data from the Hurink and Dauzere datasets.</p></list-item>
</list></p>
<p>The paper is organized as follows: <xref ref-type="sec" rid="s2">Section 2</xref> describes a Kit Production-Oriented Flexible Job Shop Scheduling Model. <xref ref-type="sec" rid="s3">Section 3</xref> demonstrates a SAC-AMBER algorithm for FJSP. <xref ref-type="sec" rid="s4">Section 4</xref> shows the experiment and analysis. <xref ref-type="sec" rid="s5">Section 5</xref> concludes the paper.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Kit Production-Oriented Flexible Job Shop Scheduling Model</title>
<sec id="s2_1">
<label>2.1</label>
<title>Problem Description</title>
<p>In the Flexible Job Shop Scheduling Problem (FJSP), the production process involves N jobs{<italic>J</italic><sub>1</sub>, <italic>J</italic><sub>2</sub>, <italic>&#x00B7;&#x00B7;&#x00B7;</italic>, <italic>J</italic><sub><italic>N</italic></sub>}, each consisting of P operations{<italic>O</italic><sub>1</sub>, <italic>O</italic><sub>2</sub>, <italic>&#x00B7;&#x00B7;&#x00B7;</italic>, <italic>O</italic><sub><italic>P</italic></sub>}. Each operation can be processed on any one of multiple available machines{<italic>M</italic><sub>1</sub>, <italic>M</italic><sub>2</sub>, <italic>&#x00B7;&#x00B7;&#x00B7;</italic>, <italic>M</italic><sub><italic>A</italic></sub>} [<xref ref-type="bibr" rid="ref-25">25</xref>]. In FJSP, all jobs are multi-operation and multi-job: the shop floor contains multiple jobs, and each job comprises multiple operations [<xref ref-type="bibr" rid="ref-26">26</xref>]. The machines are selective, meaning each operation can be processed on multiple machines, and different machines may have varying processing times. Therefore, we must consider not only the sequence of operations but also the selection of appropriate machines for each operation [<xref ref-type="bibr" rid="ref-27">27</xref>]. At any given time, as long as the primary resources permit, different operations can be processed on different machines simultaneously.</p>
<p>For the FJSP, some basic assumptions should be satisfied:
<list list-type="simple">
<list-item>
<label>(1)</label>
<p>All jobs are available for processing at time zero.</p></list-item>
<list-item>
<label>(2)</label>
<p>A machine can process only one job at a time.</p></list-item>
<list-item>
<label>(3)</label>
<p>Once the processing of an operation for a job starts, it cannot be interrupted.</p></list-item>
<list-item>
<label>(4)</label>
<p>There are no precedence constraints between different jobs.</p></list-item>
<list-item>
<label>(5)</label>
<p>All jobs have the same priority.</p></list-item>
<list-item>
<label>(6)</label>
<p>For the same job, the next operation cannot start until the previous operation is completed.</p></list-item>
</list></p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Kit Production-Oriented Flexible Job Shop Scheduling Model</title>
<p>As shown in <xref ref-type="table" rid="table-1">Table 1</xref>, the variable list provides the definitions of each variable used in the formulas.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Meaning of the notation</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Notation</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><italic>G</italic></td>
<td>Number of kit groups</td>
</tr>
<tr>
<td><italic>G</italic><sub><italic>g</italic></sub></td>
<td>Set of workpieces in kit group g</td>
</tr>
<tr>
<td><italic>J</italic><sub><italic>p</italic></sub></td>
<td>The <italic>p-</italic>th workpiece to be processed</td>
</tr>
<tr>
<td><italic>O</italic><sub><italic>pk</italic></sub></td>
<td>The <italic>k-</italic>th operation of the workpiece <italic>J</italic><sub><italic>p</italic></sub></td>
</tr>
<tr>
<td><italic>M</italic></td>
<td>Set of all machines</td>
</tr>
<tr>
<td><italic>M</italic><sub><italic>l</italic></sub></td>
<td>The <italic>l-</italic>th machine</td>
</tr>
<tr>
<td><italic>M</italic><sub><italic>pk</italic></sub></td>
<td>Set of available machines for <italic>O</italic><sub><italic>pk</italic></sub></td>
</tr>
<tr>
<td><italic>t</italic><sub><italic>pkl</italic></sub></td>
<td>Processing time of <italic>O</italic><sub><italic>pk</italic></sub> on-machine</td>
</tr>
<tr>
<td><italic>M</italic><sub><italic>pkl</italic></sub></td>
<td>Machine <italic>h</italic> selected for operation <italic>O</italic><sub><italic>pk</italic></sub></td>
</tr>
<tr>
<td><italic>x</italic><sub><italic>pkl</italic></sub></td>
<td>Binary variable indicating if <italic>O</italic><sub><italic>pk</italic></sub> is processed on <italic>M</italic><sub><italic>l</italic></sub>,</td>
</tr>
<tr>
<td><italic>y</italic><sub><italic>pkab</italic></sub> &#x003D; 1</td>
<td><italic>O</italic><sub><italic>pk</italic></sub> is a predecessor of <italic>O</italic><sub><italic>ab</italic></sub> in <italic>M</italic><sub><italic>l</italic></sub></td>
</tr>
<tr>
<td><italic>y</italic><sub><italic>pkab</italic></sub> &#x003D; &#x2212;1</td>
<td><italic>O</italic><sub><italic>pk</italic></sub> is a successor of <italic>O</italic><sub><italic>ab</italic></sub> in <italic>M</italic><sub><italic>l</italic></sub></td>
</tr>
<tr>
<td><italic>S</italic><sub><italic>pk</italic></sub></td>
<td>Start time of <italic>O</italic><sub><italic>pk</italic></sub></td>
</tr>
<tr>
<td><italic>E</italic><sub><italic>pk</italic></sub></td>
<td>End time of <italic>O</italic><sub><italic>pk</italic></sub></td>
</tr>
<tr>
<td><italic>C</italic><sub><italic>p</italic></sub></td>
<td>Completion time of the last operation of the workpiece <italic>J</italic><sub><italic>p</italic></sub></td>
</tr>
<tr>
<td><italic>C</italic><sub>max</sub></td>
<td>Maximum completion time of all workpieces</td>
</tr>
<tr>
<td><italic>AVG</italic><sub><italic>g</italic></sub></td>
<td>Average completion time of kit group <italic>G</italic></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In the actual production process, a finished product is usually assembled from multiple parts. Therefore, in order to ensure the readiness of sets of parts in the assembly process, it is necessary to consider the balance of multiple product completion times in the production scheduling process. To address this issue, this study introduces a dual optimization objective that aims to more fully reflect the complexity and diversity of the actual production environment. The objective of minimizing the maximum completion time alone may lead to serious deviations in the completion time of certain operations, which in turn delays the subsequent assembly. Although making the material kit as a constraint can alleviate this problem, it is difficult to strictly satisfy this constraint in complex manufacturing environments, and it will limit the flexibility of the scheduling strategy and reduce the diversity of the solution space and the availability of optimal solutions. Therefore, in this study, the optimization objectives are set to minimize the production cycle time and reduce the completion time variance of different kits of products as shown in <xref ref-type="disp-formula" rid="eqn-1">Eqs. (1)</xref> and <xref ref-type="disp-formula" rid="eqn-2">(2)</xref>. The multi-objective optimization approach helps to achieve the trade-off between different scheduling objectives and better cope with the uncertainty in the actual production.
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mtext>Var</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mi>A</mml:mi><mml:mi>V</mml:mi><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:mfrac><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mrow><mml:mtext>Var</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:mfrac><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>A</mml:mi><mml:mi>V</mml:mi><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>The constraints are expressed as follows:</p>
<p>s.t.
<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2265;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>l</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003C;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mi>p</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mi>l</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>h</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>k</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-9"><label>(9)</label><mml:math id="mml-eqn-9" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mtext>S</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>pk</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mrow><mml:mtext>t</mml:mtext></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>h</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-10"><label>(10)</label><mml:math id="mml-eqn-10" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2265;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>h</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-11"><label>(11)</label><mml:math id="mml-eqn-11" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>k</mml:mi><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2265;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>b</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>h</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p><xref ref-type="disp-formula" rid="eqn-5">Eq. (5)</xref> indicates that the processing time of all operations is greater than 0, and processing can start at time zero on the machines; <xref ref-type="disp-formula" rid="eqn-6">Eq. (6)</xref> ensures that the completion time of the last operation of each job does not exceed the makespan; <xref ref-type="disp-formula" rid="eqn-7">Eq. (7)</xref> states that all machines are included in the machine set. <xref ref-type="disp-formula" rid="eqn-8">Eq. (8)</xref> specifies that each operation of each job can be assigned to only one machine for processing; <xref ref-type="disp-formula" rid="eqn-9">Eq. (9)</xref> defines the completion time of an operation minus its start time as greater than or equal to its processing time; <xref ref-type="disp-formula" rid="eqn-10">Eq. (10)</xref> requires that operations assigned to the same machine must follow a sequential order; <xref ref-type="disp-formula" rid="eqn-11">Eq. (11)</xref> ensures that each machine can process only one operation at any given time.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Deep Reinforcement Learning with SAC-AMBER for Flexible Job Shop Scheduling</title>
<sec id="s3_1">
<label>3.1</label>
<title>Deep Reinforcement Learning with SAC</title>
<p>Reinforcement learning (RL) enables an agent to learn and achieve goals by interacting with the environment [<xref ref-type="bibr" rid="ref-28">28</xref>]. The agent selects actions based on the current state and adjusts its strategy through environmental rewards, aiming to maximize cumulative rewards. RL problems are typically modeled using Markov Decision Processes (MDPs), defined by the tuple &#x003C;<italic>S</italic>, <italic>A</italic>, <italic>P</italic>, <italic>r</italic>, <italic>&#x03B3;</italic>&#x003E;, where <italic>S</italic> is the state set, <italic>A</italic> is the action set, <italic>P</italic> is the transition function, r is the reward function, and <italic>&#x03B3;</italic> is the discount factor [<xref ref-type="bibr" rid="ref-29">29</xref>].</p>
<p>In deep RL, Soft Actor-Critic (SAC) is an off-policy algorithm combining maximum entropy learning with the Actor-Critic framework. SAC optimizes an entropy-regularized objective, maintaining policy randomness to enhance robustness and generalization. SAC has been successfully applied in various domains: Some researchers used SAC to maximize energy management systems; Some researchers designed a discrete decision-making strategy based on Discrete Soft Actor-Critic with Sample Filtering (DSAC-SF) for highway driving efficiency and safety; Some researchers proposed a multi-agent actor-critic approach with a heuristic attention mechanism for multi-agent pathfinding; and Some researchers applied SAC to intelligent passively mode-locked fiber laser (PMLFL) systems. However, its application to flexible job shop scheduling problems (FJSP) remains unexplored. This study extends SAC to discrete action spaces and proposes a novel experience replay method tailored for FJSP. Optimizing the sampling mechanism enhances SAC&#x2019;s exploration capability in complex scheduling environments, offering a new solution for FJSP.</p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Design of an Adaptive Multi-Buffer Experience Replay Mechanism (AMBER)</title>
<p>For off-policy reinforcement learning, the experience replay buffer stores past interactions between the agent and the environment, enabling the agent to learn from historical data rather than relying solely on new data generated by the current policy [<xref ref-type="bibr" rid="ref-30">30</xref>]. However, traditional experience replay typically employs a single replay buffer, where experiences are stored sequentially without distinguishing their importance. This often results in the overwriting of critical experiences [<xref ref-type="bibr" rid="ref-31">31</xref>]. To address these limitations, we propose the use of AMBER (Adaptive Multi-Buffer Experience Replay) as a replacement for the traditional experience replay buffer.</p>
<p>The AMBER (Adaptive Multi-Buffer Experience Replay) algorithm improves off-policy reinforcement learning by introducing three buffers: the Standard Experience Buffer (SEB), the High Utilization Experience Buffer (HUEB), and the High Productivity Experience Buffer (HPEB). SEB stores all experiences for diversity, while HUEB and HPEB store critical experiences where equipment utilization exceeds threshold <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mo>&#x003F5;</mml:mo></mml:math></inline-formula> and productivity exceeds threshold <italic>&#x03B7;</italic>, respectively. At the end of each episode, AMBER classifies experiences into the corresponding buffers based on utilization and productivity, with all experiences stored in SEB. During training, AMBER samples from SEB, HUEB, and HPEB using dynamically adjusted ratios <italic>&#x03BB;</italic> and <italic>&#x03B2;</italic>, prioritizing HUEB and HPEB to accelerate convergence and enhance learning efficiency.</p>
<p>The parameters <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mo>&#x003F5;</mml:mo></mml:math></inline-formula> and <italic>&#x03B7;</italic> can be dynamically adjusted based on information entropy thresholds.</p>
<p>The empirical distribution entropy of equipment utilization and productivity is initially computed, as expressed in <xref ref-type="disp-formula" rid="eqn-12">Eqs. (12)</xref> and <xref ref-type="disp-formula" rid="eqn-13">(13)</xref>.
<disp-formula id="eqn-12"><label>(12)</label><mml:math id="mml-eqn-12" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>U</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo>&#x2211;</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>log</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-13"><label>(13)</label><mml:math id="mml-eqn-13" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo>&#x2211;</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>log</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>here, <italic>U</italic> denotes the set of equipment utilization rates, <italic>p</italic>(<italic>u</italic>) represents the probability distribution of utilization <italic>u</italic>, and <italic>H</italic>(<italic>U</italic>) is the entropy of equipment utilization. Similarly, <italic>P</italic> denotes the set of productivity values, <italic>p</italic>(<italic>p</italic>) is the probability distribution of productivity <italic>p</italic>, and <italic>H</italic>(<italic>P</italic>) is the corresponding entropy.</p>
<p><inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula> update formula, as shown in <xref ref-type="disp-formula" rid="eqn-14">Eqs. (14)</xref> and <xref ref-type="disp-formula" rid="eqn-15">(15)</xref>:
<disp-formula id="eqn-14"><label>(14)</label><mml:math id="mml-eqn-14" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>&#x03B5;</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x03B5;</mml:mi><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>U</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-15"><label>(15)</label><mml:math id="mml-eqn-15" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>&#x03B7;</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x03B7;</mml:mi><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>U</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>here, <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:mo>&#x003F5;</mml:mo></mml:math></inline-formula><sub><italic>t</italic></sub> and <italic>&#x03B7;</italic><sub><italic>t</italic></sub> represent the current thresholds for equipment utilization and productivity, respectively, while <inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mo>&#x003F5;</mml:mo></mml:math></inline-formula><sub><italic>t</italic>&#x002B;1</sub> and <italic>&#x03B7;</italic><sub><italic>t</italic>&#x002B;1</sub> denote the updated thresholds for equipment utilization and productivity. The term <italic>b</italic> is a tuning coefficient that controls the influence of entropy on threshold adaptation, typically constrained within the range (0, 1).</p>
<p>As shown in <xref ref-type="disp-formula" rid="eqn-16">Eqs. (16)</xref> and <xref ref-type="disp-formula" rid="eqn-17">(17)</xref>, the ratios <italic>&#x03BB;</italic> and <italic>&#x03B2;</italic> are adaptively adjusted based on rewards, but it is necessary to ensure that <italic>&#x03BB;</italic> and <italic>&#x03B2;</italic> do not exceed 1. Here, &#x0394;<italic>R</italic> represents the change in rewards between the current episode and the previous episode, and <italic>k</italic> is a parameter that controls the adjustment speed.
<disp-formula id="eqn-16"><label>(16)</label><mml:math id="mml-eqn-16" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>l</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>R</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-17"><label>(17)</label><mml:math id="mml-eqn-17" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>l</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>R</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Design of the SAC-AMBER Algorithm for the Flexible Job Shop Scheduling Problem (FJSP)</title>
<p>In this study, the SAC-AMBER algorithm is designed for the Flexible Job Shop Scheduling Problem (FJSP). As shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>, the SAC agent interacts with the environment, receiving experiences {S<sub>t</sub>, R<sub>t</sub>, a<sub>t</sub>, S<sub>t&#x002B;1</sub>}, which are passed to the AMBER buffer. AMBER selects experiences based on predefined ratios and forwards them to the SAC agent network.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Flowchart of the SAC-AMBER algorithm</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-1.tif"/>
</fig>
<p>The pseudo-code for the SAC-AMBER algorithm is designed as follows (Algorithm 1):</p>
<fig id="fig-17">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-17.tif"/>
</fig>
<p>In deep reinforcement learning, the state space, action space, reward function, and environment are critical components. The environment primarily involves the modeling of the FJSP problem, including information on the states of jobs and processing units. The following sections focus on the design of the SAC-AMBER algorithm for FJSP, specifically addressing the state space, action space, and reward function.
<list list-type="simple">
<list-item><label>1.</label>
<p>Design of the State Space</p>
<p>The state is crucial in deep reinforcement learning, as it forms the foundation for the agent&#x2019;s decision-making and directly influences learning efficiency and generalization capabilities. In the Flexible Job Shop Scheduling Problem (FJSP), the state space is designed at three levels <italic>S</italic> &#x003D; [<italic>S</italic><sub><italic>a</italic></sub>, <italic>S</italic><sub><italic>b</italic></sub>, <italic>S</italic><sub><italic>c</italic></sub>]:</p></list-item></list></p>
<p>Here, <italic>S</italic><sub><italic>a</italic></sub> &#x003D; [<italic>S</italic><sub><italic>a</italic>,1</sub>, <italic>S</italic><sub><italic>a</italic>,2</sub>, <italic>S</italic><sub><italic>a</italic>,3</sub>, <italic>S</italic><sub><italic>a</italic>,4</sub>] represents the state related to job features. <italic>S</italic><sub><italic>a</italic>,1</sub> denotes the machine numbers assigned to all job operations up to the current training step <italic>t</italic>. Machine numbers are indexed starting from 1, and if an operation is displayed as 0, it indicates that the operation has not yet been assigned a machine for processing. <italic>S</italic><sub><italic>a</italic>,2</sub> represents the processing times of all job operations up to the current training step <italic>t</italic>. If no machine has been selected for processing, the value is displayed as 0. <italic>S</italic><sub><italic>a</italic>,3</sub> indicates the start times of job operations. If a negative value is displayed (since the start time of the first operation could be 0, requiring differentiation), it means the operation has not yet started processing on a machine. <italic>S</italic><sub><italic>a,4</italic></sub> represents the completion times of job operations. If a value is displayed as 0, it indicates that the operation has not yet started processing.</p>
<p><italic>S</italic><sub><italic>b</italic></sub> &#x003D; [<italic>S</italic><sub><italic>b</italic>,1</sub>, <italic>S</italic><sub><italic>b</italic>,2</sub>, <italic>S</italic><sub><italic>b</italic>,3</sub>, <italic>S</italic><sub><italic>b</italic>,4</sub>] represents the state related to machine features. <italic>S</italic><sub><italic>b</italic>,1</sub> indicates the status of each machine, where a value of 1 denotes that the machine has started processing, and 0 otherwise. <italic>S</italic><sub><italic>b</italic>,2</sub> represents the job operations assigned to each machine. <italic>S</italic><sub><italic>b</italic>,3</sub> denotes the total processing time each machine has completed so far. <italic>S</italic><sub><italic>b</italic>,4</sub> represents the utilization rate of each machine up to the current time step <italic>t</italic>, as shown in <xref ref-type="disp-formula" rid="eqn-18">Eq. (18)</xref>, where <italic>T</italic><sub><italic>act</italic></sub> is the actual processing time of each machine, and <italic>T</italic><sub><italic>avl</italic></sub> is the available time of each machine up to the current time step <italic>t</italic>.
<disp-formula id="eqn-18"><label>(18)</label><mml:math id="mml-eqn-18" display="block"><mml:msub><mml:mrow><mml:mtext>M</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mrow><mml:mtext>l</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mfrac></mml:math></disp-formula></p><p><italic>S</italic><sub><italic>c</italic></sub> &#x003D; [<italic>S</italic><sub><italic>c</italic>,1</sub>, <italic>S</italic><sub><italic>c</italic>,2</sub>, <italic>S</italic><sub><italic>c</italic>,3</sub>] represents the global state. <italic>S</italic><sub><italic>c</italic>,1</sub> indicates the number of remaining operations for each job at the current time step <italic>t</italic>. If the value is 0, it means the job has been fully processed. <italic>S</italic><sub><italic>c</italic>,2</sub> represents the total utilization rate of all machines at the current time step <italic>t</italic>, as shown in <xref ref-type="disp-formula" rid="eqn-19">Eq. (19)</xref>. <italic>S</italic><sub><italic>c</italic>,3</sub> represents the total delay time of all operations on the machines at the current time step, as shown in <xref ref-type="disp-formula" rid="eqn-20">Eq. (20)</xref>.
<disp-formula id="eqn-19"><label>(19)</label><mml:math id="mml-eqn-19" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mrow><mml:mtext>M</mml:mtext></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:munderover><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x2211;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-20"><label>(20)</label><mml:math id="mml-eqn-20" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mrow><mml:mtext>T</mml:mtext></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula> 
<list list-type="simple">
<list-item><label>2.</label>
<p>Design of the Action Space</p>
<p>In the flexible job shop scheduling problem, the design of the action space is crucial as it directly impacts the decision-making flexibility and scheduling efficiency of the agent. This paper adopts a two-step action design at each time step <italic>t</italic>, as illustrated in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>. First, the processing machine is selected for the current operation of each workpiece, determining the machine number and processing time. Then, the workpiece to be processed is selected, and the workpiece number, operation count, and machines to be allocated are identified. Through this design, the agent can effectively balance exploration and exploitation in complex environments, optimizing scheduling objectives and adapting to dynamic changes.</p>
</list-item>
</list></p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Flowchart of the action space</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-2.tif"/>
</fig>
<p>In the job selection action space, we have chosen four common rules for selecting jobs:
<list list-type="simple">
<list-item>
<label>(1)</label>
<p>MTT: Select the job minimizing total processing time.</p></list-item>
<list-item>
<label>(2)</label>
<p>SPT: Select the job with the shortest current processing time.</p></list-item>
<list-item>
<label>(3)</label>
<p>SSCO: Select the job with the smallest sum of current and next operation processing times.</p></list-item>
<list-item>
<label>(4)</label>
<p>SNOPT: Select the job with the shortest processing time for the next operation.</p></list-item>
</list></p>
<p>In the machine selection action space, we use four rules:
<list list-type="simple">
<list-item>
<label>(1)</label>
<p>SPTCO: Select the machine with the shortest processing time for the current operation.</p></list-item>
<list-item>
<label>(2)</label>
<p>LUR: Select the machine with the lowest utilization rate.</p></list-item>
<list-item>
<label>(3)</label>
<p>STPTSP: Select the machine with the shortest total processing time so far.</p></list-item>
<list-item>
<label>(4)</label>
<p>ECTCO: Select the machine that can complete the current operation as soon as possible.</p></list-item>
</list></p>
<p>Instead of directly outputting the corresponding workpiece operations and machine codes, the intelligences in this study output heuristic scheduling rules, which are used to decode the corresponding workpieces and machines based on the current state information, and the combination of the workpiece selection rules and machine selections designed above are combined into a hybrid rule as the action space of the intelligent body, as shown in <xref ref-type="fig" rid="fig-3">Fig. 3</xref> (Lines of one color in the figure connect a rule).</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Rules of the action space</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-3.tif"/>
</fig>
<p><list list-type="simple">
<list-item><label>3.</label>
<p>Design of the Rewards</p>
<p>Since our model aims to minimize the makespan (maximum completion time) and ensure kit production, the reward function is designed as a weighted sum of the makespan and kit production variance. In this study, the makespan and the variance of completion times are normalized separately. Since the normalized values are unbounded, the Tanh function is applied to constrain the normalized data. Finally, the weights are automatically determined, and the objectives are combined into a composite goal. First, the two objective values are normalized as follows:</p></list-item></list></p>
<p>For each objective <italic>f</italic><sub><italic>i</italic></sub>, where <italic>f</italic><sub>1</sub> represents the makespan (maximum completion time), and <italic>f</italic><sub>2</sub> represents the variance of job completion times, the makespan and the variance of completion times are normalized separately at the <italic>t</italic> times observation as shown in <xref ref-type="disp-formula" rid="eqn-21">Eq. (21)</xref>.
<disp-formula id="eqn-21"><label>(21)</label><mml:math id="mml-eqn-21" display="block"><mml:msup><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi></mml:mrow></mml:mrow></mml:mfrac></mml:math></disp-formula>here, <italic>&#x03BC;</italic><sub><italic>i</italic></sub><sup>(<italic>t</italic>)</sup> is the online mean of objective <italic>f</italic><sub><italic>i</italic></sub> at time step <italic>t</italic>, and <italic>&#x03C3;</italic><sub><italic>i</italic></sub><sup>(<italic>t</italic>)</sup> is the online standard deviation of objective <italic>f</italic><sub><italic>i</italic></sub> at time step <italic>t</italic>. &#x03C9; is a small positive constant used to prevent division by zero.</p>
<p>The exponentially weighted moving average is used to update the mean and standard deviation, where <italic>&#x03C7;</italic> &#x2208; (0, 1) is the smoothing parameter that controls the influence of new data on the statistics, as shown in <xref ref-type="disp-formula" rid="eqn-22">Eqs. (22)</xref> and <xref ref-type="disp-formula" rid="eqn-23">(23)</xref>.
<disp-formula id="eqn-22"><label>(22)</label><mml:math id="mml-eqn-22" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03C7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi>&#x03C7;</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-23"><label>(23)</label><mml:math id="mml-eqn-23" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03C7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi>&#x03C7;</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>To prevent the normalized values from becoming excessively large, the Tanh function is applied to constrain the normalized values, ensuring that the processed values fall within the range [&#x2212;1, 1], as shown in <xref ref-type="disp-formula" rid="eqn-24">Eq. (24)</xref>.
<disp-formula id="eqn-24"><label>(24)</label><mml:math id="mml-eqn-24" display="block"><mml:msup><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>tanh</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03B3;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula></p>
<p>Therefore, the reward function is defined as shown in <xref ref-type="disp-formula" rid="eqn-25">Eq. (25)</xref>.
<disp-formula id="eqn-25"><label>(25)</label><mml:math id="mml-eqn-25" display="block"><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>&#x03C8;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi>&#x03BA;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></disp-formula></p>
<p>In this objective function, <italic>f</italic><sub>1</sub><sup>(<italic>t</italic>)</sup> represents the makespan (maximum completion time), and <italic>f</italic><sub>2</sub><sup>(<italic>t</italic>)</sup> represents the variance of the completion times of critical kit products. The weights <italic>&#x03C8;</italic> and <italic>&#x03BA;</italic> balance the trade-off between scheduling time and variance. To enhance the adaptability of the model, these weights are dynamically adjusted based on gradients during training. During network updates, not only are the network parameters updated, but the objective weights are also optimized.</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Experiment and Analysis</title>
<sec id="s4_1">
<label>4.1</label>
<title>Experimental Setup</title>
<p>This study utilizes three test sets of varying scales&#x2014;Hurink [<xref ref-type="bibr" rid="ref-32">32</xref>], Dauzere [<xref ref-type="bibr" rid="ref-33">33</xref>], and Brandimarte [<xref ref-type="bibr" rid="ref-34">34</xref>]&#x2014;to validate the feasibility and generalizability of the algorithm. Initially, the algorithm is trained on the Hurink dataset to evaluate its performance across different task scales. Subsequently, training is continued on the Brandimarte dataset to assess its robustness in large-scale and complex scenarios, ensuring stable training effectiveness. Furthermore, to verify the feasibility of the model&#x2019;s design for completeness, data from the Hurink and Dauzere datasets are extracted and combined for training, further testing the algorithm&#x2019;s applicability in completeness scenarios. Through comprehensive experiments across multiple datasets, the adaptability and performance of the algorithm are thoroughly validated.</p>
<p>A comparative experiment, as shown in <xref ref-type="fig" rid="fig-4">Fig. 4</xref>, was designed to investigate the impact of key hyperparameters in the SAC-AMBER algorithm, such as the learning rate, soft update parameter, discount factor, entropy, Experience pool utilization threshold and Experience pool productivity threshold, all other parameters are automatically adjustable according to the training process. Each group of experiments was trained for 500 rounds and the average reward values obtained for different values of the parameters were compared separately. The figure shows that when the learning rate is 0.02, soft update parameter is 0.1, discount factor is 0.003, entropy is 0.003, Experience pool utilization threshold is 0.4 and Experience pool productivity threshold is 0.4, the reward values obtained are relatively stable.</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>Comparison of parameters</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-4.tif"/>
</fig>
<p>The hyperparameter settings for the SAC-AMBER algorithm are shown in <xref ref-type="table" rid="table-2">Table 2</xref>:</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Parameter settings</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Parameters</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td>Discounted factor</td>
<td>0.003</td>
</tr>
<tr>
<td>softupdate</td>
<td>0.1</td>
</tr>
<tr>
<td>Actor learning rate</td>
<td>0.02</td>
</tr>
<tr>
<td>Critic learning rate</td>
<td>0.02</td>
</tr>
<tr>
<td>Batch size of training</td>
<td>500</td>
</tr>
<tr>
<td>Entropy weight</td>
<td>0.003</td>
</tr>
<tr>
<td>Max completion time weight</td>
<td>0.4</td>
</tr>
<tr>
<td>Completion time variance weight</td>
<td>0.6</td>
</tr>
<tr>
<td>Experience pool utilization threshold</td>
<td>0.4</td>
</tr>
<tr>
<td>Experience pool productivity threshold</td>
<td>0.4</td>
</tr>
<tr>
<td>AMBER adaptive parameter &#x03B1;</td>
<td>3.1</td>
</tr>
<tr>
<td>AMBER adaptive parameter &#x03B2;</td>
<td>2.5</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>To validate the proposed method, SAC-AMBER is compared with heuristic rules (Rule 1: SPT &#x002B; STM, Rule 2: EEW &#x002B; LTM) and DRL algorithms. SPT denotes the shortest processing time, EEW is the earliest end of processing, STM is the machine with the shortest total runtime, and LTM is the machine with the longest total runtime. The Gap is calculated using a formula as shown in <xref ref-type="disp-formula" rid="eqn-26">Eq. (26)</xref>, where, <italic>C</italic><sub>max</sub> denotes the maximum completion time obtained by the algorithm, and <italic>Opt</italic> is the optimal solution or approximate optimal solution obtained by the exact method.
<disp-formula id="eqn-26"><label>(26)</label><mml:math id="mml-eqn-26" display="block"><mml:mrow><mml:mtext>Gap</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x00D7;</mml:mo><mml:mn>100</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi></mml:math></disp-formula></p>
<p>The program in this study was executed on a computer with a Windows 10 64-bit operating system. The programming environment was based on Python 3.8, utilizing PyTorch 2.1, and the experiments were conducted on an Intel(R) Core(TM) i5-10400 CPU @ 2.90 GHz.</p>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Experimental Analysis</title>
<sec id="s4_2_1">
<label>4.2.1</label>
<title>Validation of Action Space Rule Effectiveness</title>
<p>In order to verify the validity of the proposed rules in the action space, this study takes MK01 as an example, and only one rule and 16 rules can be randomly selected during the training process are compared, and the maximum completion time is recorded. As shown in <xref ref-type="fig" rid="fig-5">Fig. 5</xref> box plot, the random rule in the figure indicates that all rules can be randomly selected in the training process, and <italic>C</italic><sub>max</sub> indicates the maximum completion time obtained in the training process.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Box plots of the distribution of completion times for different rules</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-5.tif"/>
</fig>
<p>From the figure it can be seen that all the rules have an effect on the training process, but a single rule does not allow the intelligence to train to find the optimal solution, when all the rules can be chosen randomly, the maximum value of the maximum completion time obtained is smaller, and the maximum completion time values obtained are more concentrated, the median of all the results is smaller, which helps the intelligence to be trained better. Also this study recorded the frequency of each rule being selected under 100, 300, 500 and 700 rounds of training respectively as shown in <xref ref-type="fig" rid="fig-6">Fig. 6</xref>, where percent indicates the percentage of each rule being selected during the training process.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>Different rules for selecting frequency</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-6.tif"/>
</fig>
<p>From the figure, it can be seen that when the number of training times is 100, rule 9 is selected for the most tests, indicating that rule 9 is suitable to be more suitable for the intelligent body to complete the scheduling process in the early stage, and with the increase of the number of training times, the frequency of rule 11 being selected gradually increases until after the number of training times is 500, the intelligent body mainly selects rule 11, indicating that rule 11 is more suitable for the intelligent body to complete the scheduling process in the later stage.</p>
</sec>
<sec id="s4_2_2">
<label>4.2.2</label>
<title>Effectiveness of the AMBER Experience Pool</title>
<p>In order to verify the effectiveness of the proposed empirical pooling, this study designed experiments to train 500 rounds during the training process using one buffer, two buffers, and three buffers, respectively, and recorded the average reward values during the training process, as shown in <xref ref-type="fig" rid="fig-7">Fig. 7</xref>. In the figure, one buffer indicates that only the standard buffer is used, two buffers indicate that the standard buffer and the high equipment utilization buffer are used, and three buffers indicate that the standard, high equipment utilization, and high productivity buffers are used.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Comparison of different replay buffers</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-7.tif"/>
</fig>
<p>From the figure, it can be seen that when using one buffer, the reward value fluctuates more during the training process and is not smooth enough, when using two buffers, although the reward fluctuation of the training process becomes smaller, the overall reward value also becomes smaller, and the training effect is not good, when using three buffers can ensure that there is a smooth training process under the state of large reward value, and it has a greater improvement in the training of the intelligent body. A higher reward value demonstrates that this method achieves better training performance. The experimental results demonstrate that the three-buffer strategy achieves more stable scheduling performance and better objective values. In terms of overall policy convergence speed, training stability, and generalization ability, the three-buffer configuration clearly outperforms the two-buffer strategy. Therefore, we conclude that the three-buffer mechanism provides more effective training and is better suited for enhancing the performance of the reinforcement learning agent.</p>
</sec>
<sec id="s4_2_3">
<label>4.2.3</label>
<title>Experimental Analysis on the Hurink Dataset</title>
<p>In this study, the la-series datasets from the edata, rdata, and vdata subsets of the Hurink dataset are selected as the training datasets. To provide a clear and concise analysis, eight representative datasets were chosen from a total of 120, covering a wide range of task scales, machine counts, and constraint conditions to reflect the algorithm&#x2019;s performance across different scenarios comprehensively. The SAC-AMBER algorithm is compared with heuristic rules (Rule 1 and Rule 2) and deep reinforcement learning algorithms (Song et al. [<xref ref-type="bibr" rid="ref-35">35</xref>]; Lei et al. [<xref ref-type="bibr" rid="ref-36">36</xref>]; Yuan et al. [<xref ref-type="bibr" rid="ref-32">32</xref>]), as shown in <xref ref-type="table" rid="table-3">Table 3</xref>. In <xref ref-type="table" rid="table-3">Table 3</xref>, the <italic>C</italic><sub>max</sub> column indicates the maximum completion time obtained under the algorithm or rule, The Gap column indicates the percentage difference between the <italic>C</italic><sub>max</sub> obtained by the method used and the <italic>Opt</italic>, and the <italic>Opt</italic> column indicates the optimal solution of the instance.</p>
<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>Test results for the Hurink dataset</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Name</th>
<th>Size</th>
<th colspan="2">Rule 1</th>
<th colspan="2">Rule 2</th>
<th colspan="2">Song et al. [<xref ref-type="bibr" rid="ref-35">35</xref>]</th>
<th colspan="2">Lei et al. [<xref ref-type="bibr" rid="ref-36">36</xref>]</th>
<th colspan="2">Yuan et al. [<xref ref-type="bibr" rid="ref-32">32</xref>]</th>
<th colspan="2">SAC-AMBER</th>
<th><italic>Opt</italic></th>
</tr>
<tr>
<th></th>
<th></th>
<th><italic>C</italic><sub><bold>max</bold></sub></th>
<th>Gap</th>
<th><italic>C</italic><sub><bold>max</bold></sub></th>
<th>Gap</th>
<th><italic>C</italic><sub><bold>max</bold></sub></th>
<th>Gap</th>
<th><italic>C</italic><sub><bold>max</bold></sub></th>
<th>Gap</th>
<th><italic>C</italic><sub><bold>max</bold></sub></th>
<th>Gap</th>
<th><italic>C</italic><sub><bold>max</bold></sub></th>
<th>Gap</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>la05</td>
<td>10 &#x2217; 5</td>
<td>593</td>
<td>17.89%</td>
<td>737</td>
<td>46.52%</td>
<td><bold>530</bold></td>
<td><bold>5.37%</bold></td>
<td>621</td>
<td>23.46%</td>
<td>593</td>
<td>17.89%</td>
<td>563</td>
<td>11.93%</td>
<td>503</td>
</tr>
<tr>
<td>la10</td>
<td>15 &#x2217; 5</td>
<td>934</td>
<td>7.85%</td>
<td>1167</td>
<td>34.76%</td>
<td><bold>883</bold></td>
<td><bold>1.96%</bold></td>
<td>1016</td>
<td>17.32%</td>
<td>886</td>
<td>2.31%</td>
<td>893</td>
<td>3.12%</td>
<td>866</td>
</tr>
<tr>
<td>la14</td>
<td>20 &#x2217; 5</td>
<td>1306</td>
<td>16.30%</td>
<td>1447</td>
<td>28.85%</td>
<td>1191</td>
<td>6.06%</td>
<td>1177</td>
<td>4.81%</td>
<td>1234</td>
<td>9.88%</td>
<td><bold>1134</bold></td>
<td><bold>2.05%</bold></td>
<td>1123</td>
</tr>
<tr>
<td>la16</td>
<td>10 &#x2217; 10</td>
<td>1087</td>
<td>21.86%</td>
<td>1351</td>
<td>51.46%</td>
<td>1059</td>
<td>18.72%</td>
<td><bold>1046</bold></td>
<td><bold>17.26%</bold></td>
<td>1051</td>
<td>17.83%</td>
<td>1049</td>
<td>17.60%</td>
<td>892</td>
</tr>
<tr>
<td>la21</td>
<td>15 &#x2217; 10</td>
<td>1282</td>
<td>26.06%</td>
<td>1363</td>
<td>34.02%</td>
<td><bold>1243</bold></td>
<td><bold>22.22%</bold></td>
<td>1262</td>
<td>24.09%</td>
<td>1256</td>
<td>23.50%</td>
<td>1258</td>
<td>23.70%</td>
<td>1017</td>
</tr>
<tr>
<td>la30</td>
<td>20 &#x2217; 10</td>
<td>1550</td>
<td>28.74%</td>
<td>1846</td>
<td>53.32%</td>
<td>1459</td>
<td>21.18%</td>
<td>1471</td>
<td>22.18%</td>
<td><bold>1410</bold></td>
<td><bold>17.11%</bold></td>
<td>1493</td>
<td>24.00%</td>
<td>1204</td>
</tr>
<tr>
<td>la35</td>
<td>30 &#x2217; 10</td>
<td>1970</td>
<td>13.48%</td>
<td>2547</td>
<td>46.72%</td>
<td>1967</td>
<td>13.31%</td>
<td>1996</td>
<td>14.98%</td>
<td>2080</td>
<td>19.82%</td>
<td><bold>1932</bold></td>
<td><bold>11.29%</bold></td>
<td>1736</td>
</tr>
<tr>
<td>la40</td>
<td>15 &#x2217; 15</td>
<td>1447</td>
<td>25.83%</td>
<td>1877</td>
<td>63.22%</td>
<td>1353</td>
<td>17.65%</td>
<td>1422</td>
<td>23.65%</td>
<td><bold>1311</bold></td>
<td><bold>14.00%</bold></td>
<td>1320</td>
<td>14.78%</td>
<td>1150</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>As can be seen from <xref ref-type="table" rid="table-4">Table 4</xref>, all algorithms in SAC-AMBER are capable of obtaining the optimal solutions for the current set of instances. However, there are significant differences in how these algorithms optimize the model and make decisions during the training process. To validate the performance of the algorithm under different data sizes, we now categorize the selected datasets based on the size of a &#x00D7; b. If a &#x00D7; b &#x003C; 100, it is classified as a small dataset; if 100 &#x003C; a &#x00D7; b &#x003C; 200, it is classified as a medium dataset; and if a &#x00D7; b &#x003E; 200, it is classified as a large dataset. Based on this classification, the data is divided as shown in the table below:</p>
<table-wrap id="table-4">
<label>Table 4</label>
<caption>
<title>Classification results of the Hurink dataset</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<tbody>
<tr>
<td rowspan="8">Small size</td>
<td></td>
<td rowspan="8">Medium size</td>
<td>la11, la19</td>
<td rowspan="8">Large size</td>
<td>la26, la34</td>
</tr>
<tr>
<td>la01, la06</td>
<td>la12, la20</td>
<td>la27, la35</td>
</tr>
<tr>
<td>la02, la07</td>
<td>la13, la21</td>
<td>la28, la36</td>
</tr>
<tr>
<td>la03, la08</td>
<td>la14, la22</td>
<td>la29, la37</td>
</tr>
<tr>
<td>la04, la09</td>
<td>la15, la23</td>
<td>la30, la38</td>
</tr>
<tr>
<td>la05, la10</td>
<td>la16, la24</td>
<td>la31, la39</td>
</tr>
<tr>
<td></td>
<td>la17, la25</td>
<td>la32, la40</td>
</tr>
<tr>
<td></td>
<td>la18</td>
<td>la33</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In this experiment, one dataset from each of the large, medium, and small datasets is selected. To comprehensively evaluate the performance of the proposed SAC-AMBER algorithm in the FJSP, three representative types of comparative methods are selected for the experiments: heuristic scheduling rules (Rule 1 and Rule 2), classical meta-heuristic algorithms (Genetic Algorithm GA and Particle Swarm Optimization Algorithm PSO), and deep reinforcement learning methods (Deep Q-Network DQN). These methods are widely adopted in FJSP research and serve as strong references due to their representativeness and practical relevance. Heuristic rules are commonly used in real-world production systems for their simplicity and computational efficiency, offering fast and feasible solutions. Meta-heuristic algorithms like GA and PSO are well-known for their global search capability and ease of implementation, making them suitable for solving complex scheduling problems. DQN, as a popular reinforcement learning approach in recent years, has been applied to develop adaptive scheduling strategies with promising performance.</p>
<p>Although the problem addressed in this paper is bi-objective in nature, to align with the training mechanism of reinforcement learning methods, we adopt a weighted summation approach to convert the bi-objective problem into a single-objective optimization model. This approach is commonly used in existing reinforcement learning-based scheduling studies and contributes to training stability and model feasibility [<xref ref-type="bibr" rid="ref-37">37</xref>]. Based on this transformation, to ensure a fair comparison of scheduling performance across different types of algorithms, two classical single-objective meta-heuristic algorithms GA and PSO are selected. These algorithms are widely used in FJSP, have strong search capabilities and engineering practicability, and serve as important baselines for evaluating the effectiveness of new approaches.</p>
<p>The SAC-AMBER algorithm, along with Rule 1, Rule 2, GA, PSO, and DQN, is trained for 500 epochs on each dataset. The scheduling times of the algorithms are then visualized using box plots, as shown in <xref ref-type="fig" rid="fig-8">Fig. 8</xref>. From the figure, it can be observed that, across all three dataset sizes (large, medium, and small), the SAC-AMBER algorithm achieves a smaller distribution of makespan compared to the other algorithms. The median makespan of SAC-AMBER is lower than that of the other algorithms, demonstrating better stability and training performance.</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>Box plot comparison of algorithms</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-8.tif"/>
</fig>
<p>As shown in <xref ref-type="fig" rid="fig-9">Fig. 9</xref>, this paper compares the performance of SAC and SAC_AMBER on three datasets: Vdata01, Vdata26, and Vdata39. The average reward curves of the two algorithms over 500 training epochs show significant differences: SAC_AMBER demonstrates superior convergence characteristics and stability across all three datasets, with its final average reward value improving by approximately 15&#x2013;25% compared to SAC. Notably, in Vdata26, SAC_AMBER achieves stable convergence after 300 episodes. Experimental results validate the effectiveness of SAC_AMBER in improving exploration strategies through the integration of the AMBER method.</p>
<fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>The performance of SAC and SAC_AMBER</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-9.tif"/>
</fig>
<p><xref ref-type="fig" rid="fig-10">Fig. 10</xref> compares the training performance of DQN, SAC_AMBER, and DDPG on three datasets: Vdata01, Vdata21, and Vdata39. SAC_AMBER shows the best convergence speed and stability across all datasets, particularly outperforming DQN and DDPG in the later stages of the large dataset Vdata39. Using Vdata as an example, SAC-AMBER achieves higher and more stable average reward values across large, medium, and small datasets in the Rdata, Edata, and Vdata categories. This demonstrates that SAC-AMBER exhibits higher training stability and superior performance compared to other reinforcement learning algorithms.</p>
<fig id="fig-10">
<label>Figure 10</label>
<caption>
<title>Algorithm comparison line plot</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-10.tif"/>
</fig>
</sec>
<sec id="s4_2_4">
<label>4.2.4</label>
<title>Experimental Analysis on the Brandimarte Dataset</title>
<p>In this study, we employ transfer learning to train the model further, which was initially trained on the Hurink dataset, using the entire Brandimarte dataset. The SAC-AMBER algorithm is compared with heuristic rules, and deep reinforcement learning algorithms, as shown in <xref ref-type="table" rid="table-5">Table 5</xref>.</p>
<table-wrap id="table-5">
<label>Table 5</label>
<caption>
<title>Test results for the Brandimarte dataset</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Name</th>
<th>Size</th>
<th colspan="2">Rule 1</th>
<th colspan="2">Rule 2</th>
<th colspan="2">Song et al. [<xref ref-type="bibr" rid="ref-35">35</xref>]</th>
<th colspan="2">Lei et al. [<xref ref-type="bibr" rid="ref-36">36</xref>]</th>
<th colspan="2">Yuan et al. [<xref ref-type="bibr" rid="ref-32">32</xref>]</th>
<th colspan="2">SAC-AMBER</th>
<th><italic>Opt</italic></th>
</tr>
<tr>
<th></th>
<th></th>
<th><italic>C</italic><sub>max</sub></th>
<th>Gap</th>
<th><italic>C</italic><sub>max</sub></th>
<th>Gap</th>
<th><italic>C</italic><sub>max</sub></th>
<th>Gap</th>
<th><italic>C</italic><sub>max</sub></th>
<th>Gap</th>
<th><italic>C</italic><sub>max</sub></th>
<th>Gap</th>
<th><italic>C</italic><sub>max</sub></th>
<th>Gap</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>MK01</td>
<td>10 &#x2217; 6</td>
<td>49</td>
<td>22.50%</td>
<td>51</td>
<td>27.50%</td>
<td>49</td>
<td>22.50%</td>
<td>47</td>
<td>17.50%</td>
<td><bold>44</bold></td>
<td><bold>10.00%</bold></td>
<td>46</td>
<td>15.00%</td>
<td>40</td>
</tr>
<tr>
<td>MK02</td>
<td>10 &#x2217; 6</td>
<td>43</td>
<td>65.38%</td>
<td>41</td>
<td>57.69%</td>
<td>43</td>
<td>65.38%</td>
<td><bold>30</bold></td>
<td><bold>15.38%</bold></td>
<td>31</td>
<td>19.23%</td>
<td><bold>30</bold></td>
<td><bold>15.38%</bold></td>
<td>26</td>
</tr>
<tr>
<td>MK03</td>
<td>15 &#x2217; 8</td>
<td>210</td>
<td>2.94%</td>
<td>234</td>
<td>14.71%</td>
<td>216</td>
<td>5.88%</td>
<td><bold>209</bold></td>
<td><bold>2.45%</bold></td>
<td>211</td>
<td>3.43%</td>
<td>223</td>
<td>9.31%</td>
<td>204</td>
</tr>
<tr>
<td>MK04</td>
<td>15 &#x2217; 8</td>
<td>99</td>
<td>65.00%</td>
<td>90</td>
<td>50.00%</td>
<td><bold>75</bold></td>
<td><bold>25.00%</bold></td>
<td>76</td>
<td>26.67%</td>
<td>78</td>
<td>30.00%</td>
<td>80</td>
<td>33.33%</td>
<td>60</td>
</tr>
<tr>
<td>MK05</td>
<td>15 &#x2217; 4</td>
<td>202</td>
<td>16.76%</td>
<td>211</td>
<td>21.97%</td>
<td>190</td>
<td>9.83%</td>
<td><bold>178</bold></td>
<td><bold>2.89%</bold></td>
<td>183</td>
<td>5.78%</td>
<td>180</td>
<td>4.05%</td>
<td>173</td>
</tr>
<tr>
<td>MK06</td>
<td>10 &#x2217; 15</td>
<td>112</td>
<td>93.10%</td>
<td>114</td>
<td>96.55%</td>
<td>103</td>
<td>77.59%</td>
<td>79</td>
<td>36.21%</td>
<td>74</td>
<td>27.59%</td>
<td><bold>72</bold></td>
<td><bold>24.14%</bold></td>
<td>58</td>
</tr>
<tr>
<td>MK07</td>
<td>20 &#x2217; 5</td>
<td>214</td>
<td>48.61%</td>
<td>215</td>
<td>49.31%</td>
<td>212</td>
<td>47.22%</td>
<td><bold>152</bold></td>
<td><bold>5.56%</bold></td>
<td>156</td>
<td>8.33%</td>
<td>163</td>
<td>13.19%</td>
<td>144</td>
</tr>
<tr>
<td>MK08</td>
<td>20 &#x2217; 10</td>
<td>579</td>
<td>10.71%</td>
<td>631</td>
<td>20.65%</td>
<td>523</td>
<td>0.00%</td>
<td>541</td>
<td>3.44%</td>
<td><bold>524</bold></td>
<td><bold>0.19%</bold></td>
<td>526</td>
<td>0.57%</td>
<td>523</td>
</tr>
<tr>
<td>MK09</td>
<td>20 &#x2217; 10</td>
<td>384</td>
<td>25.08%</td>
<td>397</td>
<td>29.32%</td>
<td>349</td>
<td>13.68%</td>
<td>335</td>
<td>9.12%</td>
<td><bold>326</bold></td>
<td><bold>6.19%</bold></td>
<td>339</td>
<td>10.42%</td>
<td>307</td>
</tr>
<tr>
<td>MK10</td>
<td>20 &#x2217; 15</td>
<td>278</td>
<td>40.40%</td>
<td>291</td>
<td>46.97%</td>
<td>264</td>
<td>33.33%</td>
<td><bold>236</bold></td>
<td><bold>19.19%</bold></td>
<td>241</td>
<td>21.72%</td>
<td>253</td>
<td>27.78%</td>
<td>198</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>From <xref ref-type="table" rid="table-6">Table 6</xref>, it can be observed that SAC-AMBER, after further training using transfer learning, still achieves the optimal solutions for the given benchmark instances. To validate the algorithm&#x2019;s performance under different data sizes during continued training, we classify the datasets into small, medium, and large scales, following the same criteria as above. The resulting data classification is presented below.</p>
<table-wrap id="table-6">
<label>Table 6</label>
<caption>
<title>Classification results of the Brandimarte dataset</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<tbody>
<tr>
<td rowspan="4">Small size</td>
<td></td>
<td rowspan="4">Medium size</td>
<td>MK03</td>
<td rowspan="4">Large size</td>
<td></td>
</tr>
<tr>
<td>MK01</td>
<td>MK04</td>
<td>MK08</td>
</tr>
<tr>
<td>MK02</td>
<td>MK06</td>
<td>MK09</td>
</tr>
<tr>
<td>MK05</td>
<td>MK07</td>
<td>MK10</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In this experiment, one dataset from each of the large, medium, and small categories was selected. SAC-AMBER, Rule1, Rule2, GA, PSO, and DQN were trained for 500 iterations on each dataset. The maximum completion times were analyzed and visualized using box plots, as shown in <xref ref-type="fig" rid="fig-11">Fig. 11</xref>. In MK01, MK03, and MK10 scenarios, SAC-AMBER achieved the lowest median values and narrowest distribution ranges, demonstrating its superiority in minimizing completion time and maintaining stability. Compared to other algorithms, SAC-AMBER consistently delivers optimal and stable results across scenarios.</p>
<fig id="fig-11">
<label>Figure 11</label>
<caption>
<title>Box plot comparison of algorithms</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-11.tif"/>
</fig>
<p>This experiment compares the reinforcement learning performance of SAC_AMBER and SAC using three datasets of different scales: MK01, MK03, and MK10, as shown in <xref ref-type="fig" rid="fig-12">Fig. 12</xref>.</p>
<fig id="fig-12">
<label>Figure 12</label>
<caption>
<title>The performance of SAC and SAC_AMBER</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-12.tif"/>
</fig>
<p>The results show that SAC-AMBER consistently outperforms SAC across all environments. In MK01, SAC-AMBER achieves a 23% higher average reward and faster convergence. In MK03, it maintains a steady-state reward above 0.8, while SAC declines after 300 episodes. In MK10, SAC-AMBER remains stable, whereas SAC oscillates, highlighting its adaptability to non-stationary state spaces. These findings confirm SAC-AMBER&#x2019;s robustness and superior performance.</p>
<p>To validate the improvements of SAC-AMBER, this study compares it with DQN and DDPG using reward comparison plots. As shown in <xref ref-type="fig" rid="fig-13">Fig. 13</xref>, SAC-AMBER demonstrates faster convergence and greater stability, exhibiting a more rapid rise in reward curves during the early training phase and maintaining higher stability in high-complexity environments compared to the other two algorithms. By leveraging entropy adaptive adjustment, SAC-AMBER achieves an effective exploration-exploitation balance.</p>
<fig id="fig-13">
<label>Figure 13</label>
<caption>
<title>Algorithm comparison line plot</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-13.tif"/>
</fig>
</sec>
<sec id="s4_2_5">
<label>4.2.5</label>
<title>Experimental Analysis on Combined Datasets</title>
<p>In the previous experiments, the effectiveness of the proposed approach in maximizing the minimum completion time was validated. Next, to assess the effectiveness of the model in ensuring job-set completeness, we conducted experiments on combined datasets. Specifically, we selected sub-datasets from the Hurink and Dauzere datasets, ensuring a fixed number of machines while combining different sub-datasets. From each sub-dataset, four rows of data were selected to form a complete dataset, where the four jobs from each sub-dataset exhibited a certain level of completeness. <xref ref-type="table" rid="table-7">Table 7</xref> presents the variance results of job-set completeness for different algorithms. The GA, PSO, DQN, and DDPG algorithms used in <xref ref-type="table" rid="table-7">Table 7</xref> for performance comparison all employed the weighted sum method to transform multi-objective optimization into a single-objective problem.</p>
<table-wrap id="table-7">
<label>Table 7</label>
<caption>
<title>The variance results of job-set completeness</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Size of datasets</th>
<th>Name</th>
<th>GA</th>
<th>PSO</th>
<th>DQN</th>
<th>DDPG</th>
<th>Song et al. [<xref ref-type="bibr" rid="ref-35">35</xref>]</th>
<th>Lei et al. [<xref ref-type="bibr" rid="ref-36">36</xref>]</th>
<th>Yuan et al. [<xref ref-type="bibr" rid="ref-32">32</xref>]</th>
<th>SAC-AMBER</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="6">Machine number is 5</td>
<td>la01 (vdata)</td>
<td>1.1</td>
<td>1.0</td>
<td>0.8</td>
<td>0.8</td>
<td>1.1</td>
<td>0.8</td>
<td>1.1</td>
<td>0.9</td>
</tr>
<tr>
<td>la02 (vdata)</td>
<td>1.0</td>
<td>1.0</td>
<td>1.0</td>
<td>1.0</td>
<td>1.2</td>
<td>0.9</td>
<td>1.0</td>
<td>0.6</td>
</tr>
<tr>
<td>la07 (vdata)</td>
<td>1.0</td>
<td>1.1</td>
<td>1.0</td>
<td>0.7</td>
<td>1.1</td>
<td>0.7</td>
<td>1.1</td>
<td>0.5</td>
</tr>
<tr>
<td>la12 (vdata)</td>
<td>1.3</td>
<td>0.9</td>
<td>0.8</td>
<td>1.1</td>
<td>1</td>
<td>0.8</td>
<td>0.9</td>
<td>0.5</td>
</tr>
<tr>
<td>01a</td>
<td>1.0</td>
<td>1.1</td>
<td>0.9</td>
<td>1.0</td>
<td>0.9</td>
<td>1.1</td>
<td>1.1</td>
<td>0.5</td>
</tr>
<tr>
<td>02a</td>
<td>1.1</td>
<td>1.1</td>
<td>1.0</td>
<td>1.1</td>
<td>0.9</td>
<td>0.9</td>
<td>1.1</td>
<td>0.5</td>
</tr>
<tr>
<td rowspan="5">Machine number is 10</td>
<td>la16 (vdata)</td>
<td>1.2</td>
<td>1.2</td>
<td>0.9</td>
<td>0.9</td>
<td>1.3</td>
<td>0.7</td>
<td>1.0</td>
<td>0.8</td>
</tr>
<tr>
<td>la21 (vdata)</td>
<td>0.9</td>
<td>0.9</td>
<td>0.9</td>
<td>0.9</td>
<td>1.5</td>
<td>1.1</td>
<td>0.8</td>
<td>0.6</td>
</tr>
<tr>
<td>la26 (vdata)</td>
<td>0.9</td>
<td>1.2</td>
<td>0.8</td>
<td>0.8</td>
<td>0.9</td>
<td>1.1</td>
<td>0.9</td>
<td>0.6</td>
</tr>
<tr>
<td>la31 (vdata)</td>
<td>0.9</td>
<td>1.0</td>
<td>1.0</td>
<td>0.8</td>
<td>0.8</td>
<td>1.2</td>
<td>1.1</td>
<td>0.9</td>
</tr>
<tr>
<td>13a</td>
<td>0.9</td>
<td>1.1</td>
<td>0.9</td>
<td>0.9</td>
<td>1</td>
<td>1.1</td>
<td>0.8</td>
<td>0.8</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>From the results presented in <xref ref-type="table" rid="table-7">Table 7</xref>, SAC-AMBER consistently outperforms GA, PSO, DQN, DDPG, Song et al., Lei et al. and Yuan et al. across datasets like la01, la02, and 01a, showing the lowest variance in job completion times. GA and PSO exhibit higher variance, especially with more machines, while DQN and DDPG perform moderately but still lag behind SAC-AMBER. Song et al., Lei et al. and Yuan et al.&#x2019;s algorithms are also not as good as SAC-AMBER algorithm in solving the maximum completion time variance. Overall, SAC-AMBER demonstrates superior consistency and stability, particularly in large-scale and complex scheduling tasks, making it the preferred choice for consistency optimization.</p>

<p>To evaluate the generalization capability of the model, we applied the trained SAC-AMBER model directly to the Dauzere dataset, specifically on subsets 07a and 08a, selecting four jobs from each dataset. The corresponding Gantt charts are shown in <xref ref-type="fig" rid="fig-14">Fig. 14</xref>.</p>
<fig id="fig-14">
<label>Figure 14</label>
<caption>
<title>Overall Gantt chart</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-14.tif"/>
</fig>
<p>To better illustrate job-set completeness, <xref ref-type="fig" rid="fig-10">Fig. 10</xref> is further divided into <xref ref-type="fig" rid="fig-15">Figs. 15</xref> and <xref ref-type="fig" rid="fig-16">16</xref>. The results reveal that job assignments on machines are relatively compact, effectively reducing idle times and minimizing the maximum completion time. Additionally, jobs from the same batch are completed at similar times across different machines, indicating strong job-set completeness.</p>
<fig id="fig-15">
<label>Figure 15</label>
<caption>
<title>Part 1 Gantt chart</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-15.tif"/>
</fig><fig id="fig-16">
<label>Figure 16</label>
<caption>
<title>Part 2 Gantt chart</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_66267-fig-16.tif"/>
</fig>
</sec>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Conclusion</title>
<p>This study proposes SAC-AMBER for the Flexible Job Shop Scheduling Problem (FJSP) with job-set completeness constraints. We design a novel scheduling model that optimizes maximum completion time while incorporating job-set completeness constraints to enhance production coordination. To address low experience utilization and slow convergence in reinforcement learning, we introduce the Adaptive Multi-Buffer Experience Replay (AMBER) mechanism, which uses a multi-tiered buffer (standard, high-machine-utilization, and high-productivity) to improve experience utilization, accelerate convergence, and enhance generalization.</p>
<p>Experiments show that SAC-AMBER reduces maximum completion time and optimizes job-set completeness across datasets (Hurink, Brandimarte, Dauzere), outperforming traditional heuristic, metaheuristic, and other DRL methods in efficiency and solution quality, especially in large-scale problems.</p>
<p>This study validates reinforcement learning&#x2019;s feasibility in FJSP and provides a new perspective for intelligent scheduling research. In the future, we can explore extending SAC-AMBER&#x2019;s adaptive buffer mechanism to other complex scheduling scenarios with dynamic constraints, such as energy-aware flexible job shops or rescheduling under machine breakdowns, while preserving its advantages in experience utilization.</p>
</sec>
</body>
<back>
<ack>
<p>Not applicable.</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>The authors received no specific funding for this study.</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>The authors confirm contribution to the paper as follows: study conception and design: Bo Li; data analysis and interpretation: Bo Li; experimental data collection: Xin Yang; draft manuscript preparation: Zhijie Pei; manuscript revision and proofreading: Xiaoying Yang; literature collection and preparation: Yaqi Wu. All authors reviewed the results and approved the final version of the manuscript.</p>
</sec>
<sec sec-type="data-availability">
<title>Availability of Data and Materials</title>
<p>The datasets used in the paper are benchmark and public datasets, which can be easily downloaded from the Internet.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>Not applicable.</p>
</sec>
<sec sec-type="COI-statement">
<title>Conflicts of Interest</title>
<p>The authors declare no conflicts of interest to report regarding the present study.</p>
</sec>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>W</given-names></string-name>, <string-name><surname>Zheng</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Ahmad</surname> <given-names>R</given-names></string-name></person-group>. <article-title>An energy-efficient multi-objective scheduling for flexible job-shop-type remanufacturing system</article-title>. <source>J Manuf Syst</source>. <year>2023</year>;<volume>66</volume>:<fpage>211</fpage>&#x2013;<lpage>32</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jmsy.2022.12.008</pub-id>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname> <given-names>X</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>L</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Li</surname> <given-names>F</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>C</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Dynamic scheduling of tasks in cloud manufacturing with multi-agent reinforcement learning</article-title>. <source>J Manuf Syst</source>. <year>2022</year>;<volume>65</volume>:<fpage>130</fpage>&#x2013;<lpage>45</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jmsy.2022.08.004</pub-id>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Yang</surname> <given-names>D</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>M</given-names></string-name>, <string-name><surname>Li</surname> <given-names>D</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhou</surname> <given-names>X</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>Z</given-names></string-name></person-group>. <article-title>Dynamic opposite learning enhanced dragonfly algorithm for solving large-scale flexible job shop scheduling problem</article-title>. <source>Knowl-Based Syst</source>. <year>2022</year>;<volume>238</volume>:<fpage>107815</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.knosys.2021.107815</pub-id>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zeng</surname> <given-names>L</given-names></string-name>, <string-name><surname>Shi</surname> <given-names>J</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name>, <string-name><surname>Li</surname> <given-names>W</given-names></string-name></person-group>. <article-title>A strengthened dominance relation NSGA-III algorithm based on differential evolution to solve job shop scheduling problem</article-title>. <source>Comput Mater Contin</source>. <year>2024</year>;<volume>78</volume>(<issue>1</issue>):<fpage>375</fpage>&#x2013;<lpage>92</lpage>. doi:<pub-id pub-id-type="doi">10.32604/cmc.2023.045803</pub-id>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wan</surname> <given-names>L</given-names></string-name>, <string-name><surname>Fu</surname> <given-names>L</given-names></string-name>, <string-name><surname>Li</surname> <given-names>C</given-names></string-name>, <string-name><surname>Li</surname> <given-names>K</given-names></string-name></person-group>. <article-title>Flexible job shop scheduling via deep reinforcement learning with meta-path-based heterogeneous graph neural network</article-title>. <source>Knowl-Based Syst</source>. <year>2024</year>;<volume>296</volume>:<fpage>111940</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.knosys.2024.111940</pub-id>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lv</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Kang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Qin</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>An improved Harris Hawk optimization algorithm for flexible job shop scheduling problem</article-title>. <source>Comput Mater Contin</source>. <year>2024</year>;<volume>78</volume>(<issue>2</issue>):<fpage>2337</fpage>&#x2013;<lpage>60</lpage>. doi:<pub-id pub-id-type="doi">10.32604/cmc.2023.045826</pub-id>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Ge</surname> <given-names>J</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Xie</surname> <given-names>Z</given-names></string-name></person-group>. <article-title>Multi-objective parallel machine scheduling with eligibility constraints for the kitting of metal structural parts</article-title>. <source>Machines</source>. <year>2022</year>;<volume>10</volume>(<issue>10</issue>):<fpage>836</fpage>. doi:<pub-id pub-id-type="doi">10.3390/machines10100836</pub-id>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ding</surname> <given-names>L</given-names></string-name>, <string-name><surname>Guan</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Luo</surname> <given-names>D</given-names></string-name>, <string-name><surname>Rauf</surname> <given-names>M</given-names></string-name>, <string-name><surname>Fang</surname> <given-names>W</given-names></string-name></person-group>. <article-title>An adaptive search algorithm for multiplicity dynamic flexible job shop scheduling with new order arrivals</article-title>. <source>Symmetry</source>. <year>2024</year>;<volume>16</volume>(<issue>6</issue>):<fpage>641</fpage>. doi:<pub-id pub-id-type="doi">10.3390/sym16060641</pub-id>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lim</surname> <given-names>CH</given-names></string-name>, <string-name><surname>Moon</surname> <given-names>SK</given-names></string-name></person-group>. <article-title>A two-phase iterative mathematical programming-based heuristic for a flexible job shop scheduling problem with transportation</article-title>. <source>Appl Sci</source>. <year>2023</year>;<volume>13</volume>(<issue>8</issue>):<fpage>5215</fpage>. doi:<pub-id pub-id-type="doi">10.3390/app13085215</pub-id>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Boudjemline</surname> <given-names>A</given-names></string-name>, <string-name><surname>Chaudhry</surname> <given-names>IA</given-names></string-name>, <string-name><surname>Rafique</surname> <given-names>AF</given-names></string-name>, <string-name><surname>Elbadawi</surname> <given-names>IAQ</given-names></string-name>, <string-name><surname>Aichouni</surname> <given-names>M</given-names></string-name>, <string-name><surname>Boujelbene</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Multi-objective flexible job shop scheduling using genetic algorithms</article-title>. <source>Teh Vjesn</source>. <year>2022</year>;<volume>29</volume>(<issue>5</issue>):<fpage>1706</fpage>&#x2013;<lpage>13</lpage>. doi:<pub-id pub-id-type="doi">10.17559/TV-20211022164333</pub-id>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Fan</surname> <given-names>J</given-names></string-name>, <string-name><surname>Shen</surname> <given-names>W</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>L</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Z</given-names></string-name></person-group>. <article-title>A hybrid Jaya algorithm for solving flexible job shop scheduling problem considering multiple critical paths</article-title>. <source>J Manuf Syst</source>. <year>2021</year>;<volume>60</volume>:<fpage>298</fpage>&#x2013;<lpage>311</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jmsy.2021.05.018</pub-id>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liao</surname> <given-names>X</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>R</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Song</surname> <given-names>S</given-names></string-name></person-group>. <article-title>A new artificial bee colony algorithm for the flexible job shop scheduling problem with extra resource constraints in numeric control centers</article-title>. <source>Expert Syst Appl</source>. <year>2024</year>;<volume>249</volume>:<fpage>123556</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.eswa.2024.123556</pub-id>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>L</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Tang</surname> <given-names>Q</given-names></string-name></person-group>. <article-title>Matheuristic and learning-oriented multi-objective artificial bee colony algorithm for energy-aware flexible assembly job shop scheduling problem</article-title>. <source>Eng Appl Artif Intell</source>. <year>2024</year>;<volume>133</volume>:<fpage>108634</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.engappai.2024.108634</pub-id>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Han</surname> <given-names>K</given-names></string-name>, <string-name><surname>Gong</surname> <given-names>W</given-names></string-name></person-group>. <article-title>Memetic algorithm based on non-dominated levels for flexible job shop scheduling problem with learn-forgetting effect and worker cooperation</article-title>. <source>Comput Ind Eng</source>. <year>2025</year>;<volume>200</volume>:<fpage>110845</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.cie.2024.110845</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname> <given-names>Z</given-names></string-name>, <string-name><surname>He</surname> <given-names>M</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>H</given-names></string-name>, <string-name><surname>Cao</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>An improved MOEA/D for low-carbon many-objective flexible job shop scheduling problem</article-title>. <source>Comput Ind Eng</source>. <year>2024</year>;<volume>188</volume>:<fpage>109926</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.cie.2024.109926</pub-id>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Feng</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Lin</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Li</surname> <given-names>D</given-names></string-name>, <string-name><surname>Li</surname> <given-names>X</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>A two-stage individual feedback NSGA-III for dynamic many-objective flexible job shop scheduling problem</article-title>. <source>IEEE Trans Autom Sci Eng</source>. <year>2025</year>;<volume>22</volume>:<fpage>1673</fpage>&#x2013;<lpage>83</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TASE.2024.3369019</pub-id>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Grumbach</surname> <given-names>F</given-names></string-name>, <string-name><surname>Badr</surname> <given-names>NEA</given-names></string-name>, <string-name><surname>Reusch</surname> <given-names>P</given-names></string-name>, <string-name><surname>Trojahn</surname> <given-names>S</given-names></string-name></person-group>. <article-title>A memetic algorithm with reinforcement learning for sociotechnical production scheduling</article-title>. <source>IEEE Access</source>. <year>2023</year>;<volume>11</volume>:<fpage>68760</fpage>&#x2013;<lpage>75</lpage>. doi:<pub-id pub-id-type="doi">10.1109/ACCESS.2023.3292548</pub-id>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Song</surname> <given-names>W</given-names></string-name>, <string-name><surname>Mi</surname> <given-names>N</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Zhuang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Cao</surname> <given-names>Z</given-names></string-name></person-group>. <article-title>Stochastic economic lot scheduling via self-attention based deep reinforcement learning</article-title>. <source>IEEE Trans Autom Sci Eng</source>. <year>2024</year>;<volume>21</volume>(<issue>2</issue>):<fpage>1457</fpage>&#x2013;<lpage>68</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TASE.2023.3248229</pub-id>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lei</surname> <given-names>K</given-names></string-name>, <string-name><surname>Guo</surname> <given-names>P</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Meng</surname> <given-names>X</given-names></string-name>, <string-name><surname>Qian</surname> <given-names>L</given-names></string-name></person-group>. <article-title>Large-scale dynamic scheduling for flexible job-shop with random arrivals of new jobs by hierarchical reinforcement learning</article-title>. <source>IEEE Trans Ind Inform</source>. <year>2024</year>;<volume>20</volume>(<issue>1</issue>):<fpage>1007</fpage>&#x2013;<lpage>18</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TII.2023.3272661</pub-id>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Fan</surname> <given-names>H</given-names></string-name>, <string-name><surname>Sun</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Peng</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Efficient multi-objective optimization on dynamic flexible job shop scheduling using deep reinforcement learning approach</article-title>. <source>Processes</source>. <year>2023</year>;<volume>11</volume>(<issue>7</issue>):<fpage>2018</fpage>. doi:<pub-id pub-id-type="doi">10.3390/pr11072018</pub-id>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xu</surname> <given-names>H</given-names></string-name>, <string-name><surname>Zheng</surname> <given-names>J</given-names></string-name>, <string-name><surname>Huang</surname> <given-names>L</given-names></string-name>, <string-name><surname>Tao</surname> <given-names>J</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>C</given-names></string-name></person-group>. <article-title>Solving dynamic multi-objective flexible job shop scheduling problems using a dual-level integrated deep Q-network approach</article-title>. <source>Processes</source>. <year>2025</year>;<volume>13</volume>(<issue>2</issue>):<fpage>386</fpage>. doi:<pub-id pub-id-type="doi">10.3390/pr13020386</pub-id>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xu</surname> <given-names>GY</given-names></string-name>, <string-name><surname>Guan</surname> <given-names>ZL</given-names></string-name>, <string-name><surname>Peng</surname> <given-names>K</given-names></string-name>, <string-name><surname>Yue</surname> <given-names>L</given-names></string-name></person-group>. <article-title>Collaborative scheduling of machining-assembly in complex multiple parallel production lines environment considering kitting constraints</article-title>. <source>Int J Ind Eng Comput</source>. <year>2023</year>;<volume>14</volume>:<fpage>749</fpage>&#x2013;<lpage>66</lpage>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Qiu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Lai</surname> <given-names>X</given-names></string-name></person-group>. <article-title>A multi-level action coupling reinforcement learning approach for online two-stage flexible assembly flow shop scheduling</article-title>. <source>J Manuf Syst</source>. <year>2024</year>;<volume>76</volume>:<fpage>351</fpage>&#x2013;<lpage>70</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jmsy.2024.08.006</pub-id>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Huang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>L</given-names></string-name>, <string-name><surname>Zhou</surname> <given-names>B</given-names></string-name></person-group>. <article-title>An adaptive melody search algorithm based on low-level heuristics for material feeding scheduling optimization in a hybrid kitting system</article-title>. <source>Adv Eng Inform</source>. <year>2024</year>;<volume>62</volume>:<fpage>102855</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.aei.2024.102855</pub-id>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Han</surname> <given-names>L</given-names></string-name>, <string-name><surname>Kang</surname> <given-names>L</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Miao</surname> <given-names>H</given-names></string-name></person-group>. <article-title>Preference learning based deep reinforcement learning for flexible job shop scheduling problem</article-title>. <source>Complex Intell Syst</source>. <year>2025</year>;<volume>11</volume>(<issue>2</issue>):<fpage>144</fpage>. doi:<pub-id pub-id-type="doi">10.1007/s40747-024-01772-x</pub-id>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lv</surname> <given-names>S</given-names></string-name>, <string-name><surname>Zhuang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Jin</surname> <given-names>H</given-names></string-name>, <string-name><surname>L&#x00FC;</surname> <given-names>S</given-names></string-name></person-group>. <article-title>An enhanced walrus optimization algorithm for flexible job shop scheduling with parallel batch processing operation</article-title>. <source>Sci Rep</source>. <year>2025</year>;<volume>15</volume>(<issue>1</issue>):<fpage>5699</fpage>. doi:<pub-id pub-id-type="doi">10.1038/s41598-025-89527-7</pub-id>; <pub-id pub-id-type="pmid">39962149</pub-id></mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xu</surname> <given-names>W</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>S</given-names></string-name>, <string-name><surname>Liang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Qin</surname> <given-names>T</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>D</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>L</given-names></string-name></person-group>. <article-title>A discrete water source cycle algorithm design for solving production scheduling problem in flexible manufacturing systems</article-title>. <source>Swarm Evol Comput</source>. <year>2025</year>;<volume>94</volume>:<fpage>101897</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.swevo.2025.101897</pub-id>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liu</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Guo</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Deng</surname> <given-names>L</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>H</given-names></string-name>, <string-name><surname>Li</surname> <given-names>D</given-names></string-name>, <string-name><surname>Sun</surname> <given-names>H</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Two-critic deep reinforcement learning for inverter-based volt-var control in active distribution networks</article-title>. <source>IEEE Trans Sustain Energy</source>. <year>2024</year>;<volume>15</volume>(<issue>3</issue>):<fpage>1768</fpage>&#x2013;<lpage>81</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TSTE.2024.3376369</pub-id>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Alagha</surname> <given-names>A</given-names></string-name>, <string-name><surname>Otrok</surname> <given-names>H</given-names></string-name>, <string-name><surname>Singh</surname> <given-names>S</given-names></string-name>, <string-name><surname>Mizouni</surname> <given-names>R</given-names></string-name>, <string-name><surname>Bentahar</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Blockchain-based crowdsourced deep reinforcement learning as a service</article-title>. <source>Inf Sci</source>. <year>2024</year>;<volume>679</volume>:<fpage>121107</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.ins.2024.121107</pub-id>.</mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lee</surname> <given-names>MH</given-names></string-name>, <string-name><surname>Moon</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Deep reinforcement learning-based model-free path planning and collision avoidance for UAVs: a soft actor-critic with hindsight experience replay approach</article-title>. <source>ICT Express</source>. <year>2023</year>;<volume>9</volume>(<issue>3</issue>):<fpage>403</fpage>&#x2013;<lpage>8</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.icte.2022.06.004</pub-id>.</mixed-citation></ref>
<ref id="ref-31"><label>[31]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liang</surname> <given-names>W</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>ZX</given-names></string-name></person-group>. <article-title>Trajectory progress-based prioritizing and intrinsic reward mechanism for robust training of robotic manipulations</article-title>. <source>IEEE Trans Autom Sci Eng</source>. <year>2024</year>;<volume>22</volume>:<fpage>1</fpage>&#x2013;<lpage>14</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TASE.2024.3513354</pub-id>.</mixed-citation></ref>
<ref id="ref-32"><label>[32]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Yuan</surname> <given-names>E</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>L</given-names></string-name>, <string-name><surname>Cheng</surname> <given-names>S</given-names></string-name>, <string-name><surname>Song</surname> <given-names>S</given-names></string-name>, <string-name><surname>Fan</surname> <given-names>W</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Solving flexible job shop scheduling problems via deep reinforcement learning</article-title>. <source>Expert Syst Appl</source>. <year>2024</year>;<volume>245</volume>:<fpage>123019</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.eswa.2023.123019</pub-id>.</mixed-citation></ref>
<ref id="ref-33"><label>[33]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kasapidis</surname> <given-names>GA</given-names></string-name>, <string-name><surname>Dauz&#x00E8;re-P&#x00E9;r&#x00E8;s</surname> <given-names>S</given-names></string-name>, <string-name><surname>Paraskevopoulos</surname> <given-names>DC</given-names></string-name>, <string-name><surname>Repoussis</surname> <given-names>PP</given-names></string-name>, <string-name><surname>Tarantilis</surname> <given-names>CD</given-names></string-name></person-group>. <article-title>On the multiresource flexible job-shop scheduling problem with arbitrary precedence graphs</article-title>. <source>Prod Oper Manage</source>. <year>2023</year>;<volume>32</volume>(<issue>7</issue>):<fpage>2322</fpage>&#x2013;<lpage>30</lpage>. doi:<pub-id pub-id-type="doi">10.1111/poms.13977</pub-id>.</mixed-citation></ref>
<ref id="ref-34"><label>[34]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xu</surname> <given-names>S</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Q</given-names></string-name></person-group>. <article-title>A deep reinforcement learning method based on a transformer model for the flexible job shop scheduling problem</article-title>. <source>Electronics</source>. <year>2024</year>;<volume>13</volume>(<issue>18</issue>):<fpage>3696</fpage>. doi:<pub-id pub-id-type="doi">10.3390/electronics13183696</pub-id>.</mixed-citation></ref>
<ref id="ref-35"><label>[35]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Song</surname> <given-names>W</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>X</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Cao</surname> <given-names>Z</given-names></string-name></person-group>. <article-title>Flexible job-shop scheduling via graph neural network and deep reinforcement learning</article-title>. <source>IEEE Trans Ind Inform</source>. <year>2023</year>;<volume>19</volume>(<issue>2</issue>):<fpage>1600</fpage>&#x2013;<lpage>10</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TII.2022.3189725</pub-id>.</mixed-citation></ref>
<ref id="ref-36"><label>[36]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lei</surname> <given-names>K</given-names></string-name>, <string-name><surname>Guo</surname> <given-names>P</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>W</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Qian</surname> <given-names>L</given-names></string-name>, <string-name><surname>Meng</surname> <given-names>X</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>A multi-action deep reinforcement learning framework for flexible Job-shop scheduling problem</article-title>. <source>Expert Syst Appl</source>. <year>2022</year>;<volume>205</volume>:<fpage>117796</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.eswa.2022.117796</pub-id>.</mixed-citation></ref>
<ref id="ref-37"><label>[37]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Jiang</surname> <given-names>T</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>L</given-names></string-name>, <string-name><surname>Zhu</surname> <given-names>H</given-names></string-name></person-group>. <article-title>A Q-learning-based biology migration algorithm for energy-saving flexible job shop scheduling with speed adjustable machines and transporters</article-title>. <source>Swarm Evol Comput</source>. <year>2024</year>;<volume>90</volume>:<fpage>101655</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.swevo.2024.101655</pub-id>.</mixed-citation></ref>
</ref-list>
</back></article>