<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Bohr. Omrp.</journal-id>
<journal-title>BOHR International Journal of Operations Management Research and Practices</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Bohr. Omrp.</abbrev-journal-title>
<issn pub-type="epub">2583-6420</issn>
<publisher>
<publisher-name>BOHR</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.54646/bijomrp.2025.33</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Case study</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Application of TSGA, a hybrid meta-heuristic model, to solve a real size problem of flow shop scheduling with changeover times in operations</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Nhu</surname> <given-names>Phong Nguyen</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x002A;</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Thi</surname> <given-names>Thuy Nhi Nguyen</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Nhu</surname> <given-names>Tu Anh Nguyen</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Department of Industrial Systems Engineering, University of Technology &#x2013; VNU-HCM</institution>, <addr-line>Ho Chi Minh City</addr-line>, <country>Vietnam</country></aff>
<aff id="aff2"><sup>2</sup><institution>Department of Information Technology, Monash University</institution>, <addr-line>Melbourne</addr-line>, <country>Australia</country></aff>
<author-notes>
<corresp id="c001">&#x002A;Correspondence: Phong Nguyen Nhu, <email>nnphong@hcmut.edu.vn</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>22</day>
<month>03</month>
<year>2025</year>
</pub-date>
<volume>4</volume>
<issue>1</issue>
<fpage>12</fpage>
<lpage>20</lpage>
<history>
<date date-type="received">
<day>08</day>
<month>01</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>03</day>
<month>03</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x00A9; 2024 Nhu, Thi and Nhu.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Nhu, Thi and Nhu</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/"><p>&#x00A9; The Author(s). 2024 Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.</p></license>
</permissions>
<abstract>
<p>Flow shop scheduling (FSS) problems are NP-hard combinatorial optimization problems. It&#x2019;s quite difficult to achieve an optimal solution for real size problems with mathematical modeling approach because of its NP-hard structure. Meta-heuristic algorithms, like Tabu Search (TS) and genetic algorithm (GA), play a major role in searching for near-optimal solutions for NP-hard optimization problems. In the case study, the current scheduling method is ineffective, and the total tardiness time of orders is still quite high. This paper develops a Tabu Search and Genetic Algorithm (TSGA) model for solving the real FSS problem, with the objective of dispatching orders more effectively than the current dispatching method. The TSGA model is a hybrid meta-heuristic model, combining TS and GA. In the model, TS is used as the platform for local search, and GA is used to support TS in global search. The performance of the model is compared with the traditional heuristic being used. The result indicates that the model is a good approach for FSS problems. However, the factors of the model are only selected empirically; therefore, the results are not particularly satisfactory. The future research is to use experimental design (DOE) to determine the model parameters to get better suboptimal results.</p>
</abstract>
<kwd-group>
<kwd>hybrid meta-heuristics</kwd>
<kwd>Tabu Search</kwd>
<kwd>genetic algorithm</kwd>
<kwd>flow shop scheduling problems</kwd>
<kwd>changeover times.</kwd>
</kwd-group>
<counts>
<fig-count count="3"/>
<table-count count="10"/>
<equation-count count="55"/>
<ref-count count="10"/>
<page-count count="9"/>
<word-count count="5506"/>
</counts>
</article-meta>
</front>
<body>
<sec id="S1" sec-type="intro">
<title>Introduction</title>
<p>Scheduling is the allocation of resources to perform a collection of tasks over a period of time. Scheduling problems determine the order or sequence for processing a set of jobs through several machines in an optimal manner. Flow shop scheduling (FSS) problems consider m different machines and n jobs, each job consists of m operations, each operation requires a different machine, and all the jobs are processed in the same processing order.</p>
<p>The problem to be solved is a FSS problem with the assumption that the orders are ready at the start of the scheduling process. The objective of the problem is to minimize the total weighted tardiness of orders. The constraints are on the sequence of orders, on the sequence of operations in the orders, and on machine changeover time. The model of the problem is built based on the above assumptions, objectives, and constraints.</p>
<p>The Tabu Search and Genetic Algorithm (TSGA) algorithm is built based on the combination of Tabu Search (TS) and genetic algorithm (GA) with the foundation of TS. TS generates the initial solution and the neighborhood population. Then, GA generates an elite population from the neighborhood population, followed by generation genetic population from the elite population. Then TS finds the next solution from the neighborhood and genetic populations.</p>
<p>Based on the model of the problem, the TSGA algorithm will be used to solve the pilot problem of small size, and the real problem of real size. The solutions from the TSGA algorithm will be compared with the corresponding solutions of the currently used heuristic model to evaluate the effectiveness of the algorithm.</p>
</sec>
<sec id="S2">
<title>Literature review</title>
<p>FSS problems consider different machines and different jobs. Each job consists of different operations, each operation requires a different machine, and all the jobs are processed in the same processing order (<xref ref-type="bibr" rid="B1">1</xref>). FSS is categorized as an NP-hard problem, so it is difficult to develop algorithms to solve it (<xref ref-type="bibr" rid="B2">2</xref>).</p>
<p>TS, suggested by Glover and Laguna in 1997, is one of the most popular meta-heuristics to find solutions to various combinatorial optimization problems. Jatinder N. D. Gupta, Nagarajan Palanim Uthu, and Chuen-Lung Chen designed a TS-based heuristic for the two-stage flow shop problem with the makespan minimization as the primary criterion and the minimization of total flow time as the secondary criterion (<xref ref-type="bibr" rid="B3">3</xref>). Phong Nguyen Nhu et al. applied TS to solve an FSS problem with changeover times in operations (<xref ref-type="bibr" rid="B4">4</xref>).</p>
<p>GA, first introduced by Holland in 1975, is an artificial intelligence, meta-heuristic search method used to solve scheduling problems. O. Etiler, B. Toklu, M. Atak, and J. Wilson developed a GA-based heuristic for the FSS problem with makespan as the criterion (<xref ref-type="bibr" rid="B5">5</xref>). Complex GA algorithms have also been researched to solve the FFS problem effectively. Orhan Engin, G&#x00FC;lsad Ceran, and Mustafa K. Yilmaz developed an efficient GA for hybrid FSS with multiprocessor task problems (<xref ref-type="bibr" rid="B6">6</xref>). Phong Nguyen Nhu et al. applied the GA to solve an FSS problem with changeover times in operations (<xref ref-type="bibr" rid="B7">7</xref>).</p>
<p>Hybrid meta-heuristics combining different meta-heuristic algorithms has proven effective in solving scheduling problems. Moch Saiful Umam, Mustafid Mustafid, and Suryono Suryono combined the TS process with a GA to solve the FSS problem to minimize makespan (<xref ref-type="bibr" rid="B2">2</xref>). Anna Burduk, Kamil Musia&#x0142;, Joanna Kochanska, Dagmara G&#x00F3;rnicka, and Anastasia Stetsenko applied TS and GA to solve production process scheduling problems and found that intelligent methods can find, in a relatively short time, the solution that is close to the optimal and acceptable from the problem point of view (<xref ref-type="bibr" rid="B8">8</xref>). Phong Nguyen Nhu et al. applied TSGA, a hybrid meta-heuristic model, to solve an FFS problem with changeover times in operations (<xref ref-type="bibr" rid="B1">1</xref>). Phong Nguyen Nhu et al. applied GATS, a hybrid meta-heuristic model, to solve an FSS problem with changeover times in operations (<xref ref-type="bibr" rid="B9">9</xref>). Phong Nguyen Nhu et al. applied GATS, a hybrid meta-heuristic model and the design of experiment (DOE), to solve flexible FSS problems (<xref ref-type="bibr" rid="B10">10</xref>).</p>
</sec>
<sec id="S3">
<title>Research methodology</title>
<p>FSS problem is a NP-hard problem with a large size of solution space. The methodology, used in this research to solve the problem, includes three phases:</p>
<list list-type="simple">
<list-item>
<label>(1)</label>
<p>Phase A: Construct the model of the pilot FSS problem</p>
</list-item>
<list-item>
<label>(2)</label>
<p>Phase B: Use TSGA model to solve the pilot FSS problem</p>
</list-item>
<list-item>
<label>(3)</label>
<p>Phase C: Use TSGA model to solve the real FSS problem</p>
</list-item>
</list>
<p>In phase A, the model of the pilot problem with a small size is formulated with the objective of minimizing the total weighted tardiness time and constraint on operation changeover time. Based on the model of the problem, a TSGA model is developed and used to solve the pilot problem of small size in phase B and the real problem of real size in phase C.</p>
<p>In the TSGA model, TS is used to perform a local search and GA is used to support TS in a global search on the solution space. The TSGA procedure is as follows:</p>
<list list-type="simple">
<list-item>
<label>(1)</label>
<p>Step 1: Initialize the TSGA model.</p>
</list-item>
<list-item>
<label>(2)</label>
<p>Step 2: Generate the initial solution S0, set k = 0.</p>
</list-item>
<list-item>
<label>(3)</label>
<p>Step 3: Generate the neighborhood population PN(k).</p>
</list-item>
<list-item>
<label>(4)</label>
<p>Step 4: Generate elite population PE(k).</p>
</list-item>
<list-item>
<label>(5)</label>
<p>Step 5: Generate the genetic population PG(k).</p>
</list-item>
<list-item>
<label>(6)</label>
<p>Step 6: Find the next solution Sk+1. Set k = k+1.</p>
</list-item>
<list-item>
<label>(7)</label>
<p>Step 7: Check the termination rule. If No, return to step 3. If Yes, finish the loop.</p>
</list-item>
<list-item>
<label>(8)</label>
<p>Step 8: Run the algorithm a number of times to choose the best scheduling result.</p>
</list-item>
</list>
<p><bold><italic>Step 1</italic></bold> sets up factors of TSGA models, including the method of coding, the TS factors, the GA factors, and the termination rule.</p>
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>The TS factors: the evaluation function, the tabu list, and the parameters of the TS operators (i.e., the neighborhood and selection operators).</p>
</list-item>
<list-item>
<label>&#x2013;</label>
<p>The GA factors: the fitness function and the parameters of GA operators (i.e., the crossover, mutation, and search operators).</p>
</list-item>
</list>
<p><bold><italic>Step 2</italic></bold> generates the initial solution S<sub>0</sub> and resets the iteration counter k to 0. A good initial solution will be a good starting point for the search. The initial solution is often chosen by heuristic methods.</p>
<p><bold><italic>Step 3</italic></bold> uses the neighborhood operator to generate the neighborhood population P<inline-formula><mml:math id="INEQ1"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> from the current solution S<sub><italic>k</italic></sub>.</p>
<p><bold><italic>Step 4</italic></bold> uses the selection operator to generate an elite population P<inline-formula><mml:math id="INEQ2"><mml:msubsup><mml:mi/><mml:mi>E</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> from the neighborhood population P<sub><italic>N</italic></sub><sup>(k)</sup>.</p>
<p><bold><italic>Step 5</italic></bold> uses the crossover and mutation operators to generate a genetic population P<sub><italic>G</italic></sub><sup>(k)</sup> from the elite population P<sub><italic>E</italic></sub><sup>(k)</sup>.</p>
<p><bold><italic>Step 6</italic></bold> finds the next solution S<sub><italic>k+1</italic></sub> by using the search operator to find the best solution in the solution regions defined by P<inline-formula><mml:math id="INEQ3"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and P<inline-formula><mml:math id="INEQ4"><mml:msubsup><mml:mi/><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p><bold><italic>Step 7</italic></bold> checks the termination rule. If the rule is not satisfied, the next iteration is executed by returning to step 3. If the rule is satisfied, finish the run.</p>
<p><bold><italic>Step 8</italic></bold> runs the algorithm several times to choose the best scheduling result among the runs.</p>
</sec>
<sec id="S4">
<title>The pilot FSS problem</title>
<p>The pilot problem to be solved, as shown in (<xref ref-type="bibr" rid="B1">1</xref>, <xref ref-type="bibr" rid="B4">4</xref>, <xref ref-type="bibr" rid="B7">7</xref>, <xref ref-type="bibr" rid="B9">9</xref>), is an FSS problem with 10 orders (O<sub><italic>i</italic></sub>, i = 1&#x00F7;10), scheduling on four machines (M<sub>1</sub>, M<sub>2</sub>, M<sub>3</sub>, M<sub>4)</sub>. Each order has three parts (P1, P2, P3), processed in eight operations (O<sub><italic>j</italic></sub>, j = 1&#x00F7;8), distributed on the four machines as in <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption><p>Order processing in the FSS problem.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="bijomrp-2024-29-g001.tif"/>
</fig>
<p>The weight W<sub><italic>i</italic></sub> (i = 1&#x00F7;10) and the due date D<sub><italic>i</italic></sub> (i = 1&#x00F7;10) of order i are estimated in <xref ref-type="table" rid="T1">Table 1</xref>. The processing time P<sub><italic>ij</italic></sub> of order i (i = 1&#x00F7;10) on operation j (j = 1&#x00F7;8), is estimated in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
<table-wrap position="float" id="T1">
<label>TABLE 1</label>
<caption><p>The weight W<sub><italic>i</italic></sub>, i = 1&#x00F7;10, and the due date D<sub><italic>i</italic></sub>, i = 1&#x00F7;10, of order i.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">i</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><bold>W<sub><italic>i</italic></sub></bold></td>
<td valign="top" align="center">3.70</td>
<td valign="top" align="center">3.40</td>
<td valign="top" align="center">3.30</td>
<td valign="top" align="center">4.65</td>
<td valign="top" align="center">3.90</td>
<td valign="top" align="center">2.35</td>
<td valign="top" align="center">2.70</td>
<td valign="top" align="center">4.55</td>
<td valign="top" align="center">4.65</td>
<td valign="top" align="center">4.30</td>
</tr>
<tr>
<td valign="top" align="left"><bold>D<sub><italic>i</italic></sub> (h)</bold></td>
<td valign="top" align="center">24</td>
<td valign="top" align="center">36</td>
<td valign="top" align="center">40</td>
<td valign="top" align="center">60</td>
<td valign="top" align="center">68</td>
<td valign="top" align="center">80</td>
<td valign="top" align="center">88</td>
<td valign="top" align="center">88</td>
<td valign="top" align="center">96</td>
<td valign="top" align="center">96</td>
</tr>
</tbody>
</table></table-wrap>
<table-wrap position="float" id="T2">
<label>TABLE 2</label>
<caption><p>The processing time P<sub><italic>ij</italic></sub> of order i, i = 1&#x00F7;10, on operation j.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">j</td>
<td valign="top" align="center">P<sub>1j</sub></td>
<td valign="top" align="center">P<sub>2j</sub></td>
<td valign="top" align="center">P<sub>3j</sub></td>
<td valign="top" align="center">P<sub>4j</sub></td>
<td valign="top" align="center">P<sub>5j</sub></td>
<td valign="top" align="center">P<sub>6j</sub></td>
<td valign="top" align="center">P<sub>7j</sub></td>
<td valign="top" align="center">P<sub>8j</sub></td>
<td valign="top" align="center">P<sub>9j</sub></td>
<td valign="top" align="center">P<sub>10j</sub></td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="center">2.34</td>
<td valign="top" align="center">6.17</td>
<td valign="top" align="center">6.20</td>
<td valign="top" align="center">7.09</td>
<td valign="top" align="center">2.47</td>
<td valign="top" align="center">9.56</td>
<td valign="top" align="center">3.44</td>
<td valign="top" align="center">14.74</td>
<td valign="top" align="center">5.26</td>
<td valign="top" align="center">1.39</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="center">2.25</td>
<td valign="top" align="center">0.94</td>
<td valign="top" align="center">7.05</td>
<td valign="top" align="center">3.22</td>
<td valign="top" align="center">1.07</td>
<td valign="top" align="center">5.26</td>
<td valign="top" align="center">1.81</td>
<td valign="top" align="center">7.49</td>
<td valign="top" align="center">5.26</td>
<td valign="top" align="center">0.66</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="center">0.00</td>
<td valign="top" align="center">3.99</td>
<td valign="top" align="center">4.34</td>
<td valign="top" align="center">4.38</td>
<td valign="top" align="center">2.60</td>
<td valign="top" align="center">9.52</td>
<td valign="top" align="center">0.00</td>
<td valign="top" align="center">16.75</td>
<td valign="top" align="center">14.74</td>
<td valign="top" align="center">0.44</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="center">2.63</td>
<td valign="top" align="center">1.33</td>
<td valign="top" align="center">1.08</td>
<td valign="top" align="center">9.00</td>
<td valign="top" align="center">2.60</td>
<td valign="top" align="center">12.56</td>
<td valign="top" align="center">1.32</td>
<td valign="top" align="center">17.54</td>
<td valign="top" align="center">16.52</td>
<td valign="top" align="center">1.29</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="center">1.06</td>
<td valign="top" align="center">1.00</td>
<td valign="top" align="center">6.58</td>
<td valign="top" align="center">9.00</td>
<td valign="top" align="center">4.21</td>
<td valign="top" align="center">12.64</td>
<td valign="top" align="center">0.65</td>
<td valign="top" align="center">17.54</td>
<td valign="top" align="center">16.52</td>
<td valign="top" align="center">1.29</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="center">0.00</td>
<td valign="top" align="center">8.33</td>
<td valign="top" align="center">6.58</td>
<td valign="top" align="center">3.60</td>
<td valign="top" align="center">3.95</td>
<td valign="top" align="center">12.64</td>
<td valign="top" align="center">0.00</td>
<td valign="top" align="center">13.33</td>
<td valign="top" align="center">15.79</td>
<td valign="top" align="center">0.40</td>
</tr>
<tr>
<td valign="top" align="left">7</td>
<td valign="top" align="center">2.67</td>
<td valign="top" align="center">3.29</td>
<td valign="top" align="center">1.13</td>
<td valign="top" align="center">2.21</td>
<td valign="top" align="center">0.68</td>
<td valign="top" align="center">4.00</td>
<td valign="top" align="center">1.11</td>
<td valign="top" align="center">5.26</td>
<td valign="top" align="center">1.60</td>
<td valign="top" align="center">0.44</td>
</tr>
<tr>
<td valign="top" align="left">8</td>
<td valign="top" align="center">4.08</td>
<td valign="top" align="center">3.31</td>
<td valign="top" align="center">3.42</td>
<td valign="top" align="center">12.00</td>
<td valign="top" align="center">3.95</td>
<td valign="top" align="center">6.12</td>
<td valign="top" align="center">2.21</td>
<td valign="top" align="center">8.22</td>
<td valign="top" align="center">5.26</td>
<td valign="top" align="center">1.32</td>
</tr>
</tbody>
</table></table-wrap>
<p>The changeover times in hours on operation j are equal to 0, S<sub><italic>j</italic></sub> = 0 (j = 4&#x00F7;8). The changeover times in hours on operation j (j = 1&#x00F7;3) are the same and depend on the current order i (i = 1&#x00F7;10), and the next order, i&#x2032; (i&#x2032; = 1&#x00F7;10), as shown in <xref ref-type="table" rid="T3">Table 3</xref>.</p>
<table-wrap position="float" id="T3">
<label>TABLE 3</label>
<caption><p>Changeover time (h) S<sub><italic>j</italic></sub>, j = 1&#x00F7;3.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">0.5</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
</tr>
<tr>
<td valign="top" align="left">7</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.0</td>
</tr>
<tr>
<td valign="top" align="left">8</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
</tr>
<tr>
<td valign="top" align="left">9</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.5</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">0.0</td>
<td valign="top" align="center">2.0</td>
<td valign="top" align="center">0.0</td>
</tr>
</tbody>
</table></table-wrap>
<p>The model is set up with variables TS<sub><italic>ij</italic></sub> being the start time, TE<sub><italic>ij</italic></sub> being the completion time of order i at operation j, and T<sub><italic>i</italic></sub> being the tardiness time of order i. The constraints on the sequence of operations in each order are as follows:</p>
<disp-formula id="S4.Ex1"><mml:math id="M1">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>S</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">&#x2265;</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>T</mml:mi>
<mml:mi>E</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S4.Ex2"><mml:math id="M2">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>S</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">&#x2265;</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>T</mml:mi>
<mml:mi>E</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S4.Ex3"><mml:math id="M3">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>S</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">&#x2265;</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>T</mml:mi>
<mml:mi>E</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S4.Ex4"><mml:math id="M4">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>S</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">&#x2265;</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>7</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>T</mml:mi>
<mml:mi>E</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S4.Ex5"><mml:math id="M5">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>S</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">&#x2265;</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>8</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>T</mml:mi>
<mml:mi>E</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>T</mml:mi>
<mml:mi>E</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>T</mml:mi>
<mml:mi>E</mml:mi>
<mml:mmultiscripts>
<mml:mo stretchy="false">)</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>7</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>In the start time of order i at operation j, TS<sub><italic>ij</italic></sub> depends on the end time of the previous order i&#x2032;, TE<sub><italic>i&#x2019;j</italic></sub> and the changeover time between the orders on operation j.</p>
<disp-formula id="S4.Ex6"><mml:math id="M6">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>S</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>T</mml:mi>
<mml:mi>C</mml:mi>
<mml:mmultiscripts>
<mml:mo>+</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>S</mml:mi>
<mml:msub>
<mml:mi/>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>In the end time of order i on operation j, TE<sub><italic>ij</italic></sub> is determined by the start time and processing time of the order.</p>
<disp-formula id="S4.Ex7"><mml:math id="M7">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>C</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>T</mml:mi>
<mml:mi>S</mml:mi>
<mml:mmultiscripts>
<mml:mo>+</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>In the tardiness time of order i, T<sub><italic>i</italic></sub> is determined by the end time of the last operation and the due date of the order.</p>
<disp-formula id="S4.Ex8"><mml:math id="M8">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:mi>i</mml:mi>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>M</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
<mml:mi>E</mml:mi>
<mml:mmultiscripts>
<mml:mo>-</mml:mo>
<mml:mprescripts/>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>8</mml:mn>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>D</mml:mi>
<mml:mmultiscripts>
<mml:mo stretchy="false">)</mml:mo>
<mml:mprescripts/>
<mml:mi>i</mml:mi>
<mml:none/>
</mml:mmultiscripts>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The objective function that minimizes the total tardiness is defined as follows:</p>
<disp-formula id="S4.Ex9"><mml:math id="M9">
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mpadded width="+3.3pt">
<mml:mi>t</mml:mi>
</mml:mpadded>
</mml:mrow>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mpadded width="+5pt">
<mml:mi>n</mml:mi>
</mml:mpadded>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:mrow>
<mml:mo rspace="7.5pt">,</mml:mo>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>T</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mo largeop="true" movablelimits="false" symmetric="true">&#x2211;</mml:mo>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>i</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mn>10</mml:mn>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2062;</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The company is currently using the EDD dispatching method. The sequence of dispatching S, the value of the objective function, and the Gantt chart are as shown in <xref ref-type="fig" rid="F2">Figure 2</xref>.</p>
<disp-formula id="S4.Ex10"><mml:math id="M10">
<mml:mrow>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>S</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>9</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>;</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S4.Ex11"><mml:math id="M11">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>T</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mn>215.95</mml:mn>
<mml:mo>&#x2062;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption><p>The Gantt chart for the pilot problem by EDD dispatching method.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="bijomrp-2024-29-g002.tif"/>
</fig>
</sec>
<sec id="S5">
<title>The TSGA model for the pilot FSS problem</title>
<p>The above pilot FSS problem is a NP-hard problem with the size of the solution space of 10!, or 3,628,800. The above TSGA model is applied to solve the pilot problem as follows.</p>
<sec id="S5.SS1">
<title>Step 1: Initialize the TSGA model</title>
<p>This step sets up factors of TSGA models, including the method of coding, the TS parameters, the GA parameters, and the termination rule.</p>
<p><bold><italic>The method of coding:</italic></bold> The orders are numbered from 1 to 10. Each code is a string of 10 numbers. Each number corresponds to an order. The sequence of numbers G<sub><italic>i</italic></sub> (i = 1&#x00F7;10) represents the sequence of order scheduled:</p>
<disp-formula id="S5.Ex12"><mml:math id="M12">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>C</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mn>1</mml:mn>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mn>2</mml:mn>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mn>3</mml:mn>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mn>4</mml:mn>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mn>5</mml:mn>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mn>6</mml:mn>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mn>7</mml:mn>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mn>8</mml:mn>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo>,</mml:mo>
<mml:mprescripts/>
<mml:mn>9</mml:mn>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo stretchy="false">)</mml:mo>
<mml:mprescripts/>
<mml:mn>10</mml:mn>
<mml:none/>
</mml:mmultiscripts>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p><bold><italic>The TS parameters</italic></bold> include the evaluation function, the current best value, the parameters of the TS operators, and the tabu list.</p>
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>The evaluation function is the objective function T used to evaluate scheduling codes.</p>
</list-item>
<list-item>
<label>&#x2013;</label>
<p>The current best value Tbest is the best objective value updated after each iteration.</p>
</list-item>
<list-item>
<label>&#x2013;</label>
<p>The TS operators include the neighborhood and the search operator.</p>
</list-item>
</list>
<p>The neighborhood operator uses the method of permutation of adjacent numbers in the string to find the neighborhood. The search operator finds the best solution in the neighborhood solution region to prepare for the next iteration, if any. This solution must not be on the tabu list. The tabu list will contain the solutions found in the previous loops and is updated after each iteration.</p>
<p><bold><italic>The GA parameters</italic></bold> include the fitness function and the parameters of GA operators. The fitness function F is defined as:</p>
<disp-formula id="S5.Ex13"><mml:math id="M13">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>F<sub><italic>i</italic></sub>, T<sub><italic>i</italic></sub>: the fitness and objective values of chromosome i</p>
</list-item>
<list-item>
<label>&#x2013;</label>
<p>T<sub><italic>max</italic></sub>: the maximum objective value in the population</p>
</list-item>
</list>
<p>The crossover method is POX (precedence operation crossover), and the mutation method is SWAP. The crossover probability P<sub><italic>c</italic></sub> and the mutation probability P<sub><italic>m</italic></sub> are chosen as follows:</p>
<disp-formula id="S5.Ex14"><mml:math id="M14">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>0.8</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex15"><mml:math id="M15">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>0.2</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
<p><bold><italic>The termination rule:</italic></bold> The best objective value Tbest does not improve after 10 consecutive iterations.</p>
</sec>
<sec id="S5.SS2">
<title>Step 2: Generate the initial solution S<sub>0</sub>. Set k = 0</title>
<p>A good initial solution will be a good starting point for the search. The initial solution is often chosen by heuristic methods. With the objective of minimizing lateness, the initial solution selected from the EDD method is represented as the following string.</p>
<disp-formula id="S5.Ex16"><mml:math id="M16">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>9</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex17"><mml:math id="M17">
<mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mpadded width="+5pt">
<mml:mi>u</mml:mi>
</mml:mpadded>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mpadded width="+3.3pt">
<mml:mi>t</mml:mi>
</mml:mpadded>
</mml:mrow>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex18"><mml:math id="M18">
<mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mpadded width="+3.3pt">
<mml:mi>t</mml:mi>
</mml:mpadded>
</mml:mrow>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>215.95</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec id="S5.SS3">
<title>Step 3: Generate the neighborhood population P<inline-formula><mml:math id="INEQ7"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></title>
<p>This step uses the neighborhood operator to generate the neighborhood population <bold>P<inline-formula><mml:math id="INEQ8"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold> from the current string. The neighborhood population <bold>P<inline-formula><mml:math id="INEQ9"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold> generated from the initial string is as shown in <xref ref-type="table" rid="T4">Table 4</xref>.</p>
<disp-formula id="S5.Ex19"><mml:math id="M19">
<mml:mrow>
<mml:mtext mathvariant="bold">P</mml:mtext>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mmultiscripts>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>9</mml:mn>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<table-wrap position="float" id="T4">
<label>TABLE 4</label>
<caption><p>The neighborhood population P<inline-formula><mml:math id="INEQ5"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">P<inline-formula><mml:math id="INEQ6"><mml:msubsup><mml:mi/><mml:mi mathvariant="bold">N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="center">G1</td>
<td valign="top" align="center">G2</td>
<td valign="top" align="center">G3</td>
<td valign="top" align="center">G4</td>
<td valign="top" align="center">G5</td>
<td valign="top" align="center">G6</td>
<td valign="top" align="center">G7</td>
<td valign="top" align="center">G8</td>
<td valign="top" align="center">G9</td>
<td valign="top" align="center">G10</td>
<td valign="top" align="center">Ti</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">N1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">224.60</td>
</tr>
<tr>
<td valign="top" align="left">N2</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">203.75</td>
</tr>
<tr>
<td valign="top" align="left">N3</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">242.49</td>
</tr>
<tr>
<td valign="top" align="left">N4</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">175.90</td>
</tr>
<tr>
<td valign="top" align="left">N5</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">241.39</td>
</tr>
<tr>
<td valign="top" align="left">N6</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">221.26</td>
</tr>
<tr>
<td valign="top" align="left">N7</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">224.11</td>
</tr>
<tr>
<td valign="top" align="left">N8</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">239.71</td>
</tr>
<tr>
<td valign="top" align="left">N9</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">175.65</td>
</tr>
</tbody>
</table></table-wrap>
</sec>
<sec id="S5.SS4">
<title>Generate elite population P<inline-formula><mml:math id="INEQ10"><mml:msubsup><mml:mi/><mml:mi>E</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></title>
<p>This step uses the selection operator to generate elite population <bold>P<inline-formula><mml:math id="INEQ11"><mml:msubsup><mml:mi/><mml:mi>E</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold> from the neighborhood population <bold>P<inline-formula><mml:math id="INEQ12"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold>. Each chromosome in <bold>P<inline-formula><mml:math id="INEQ13"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold> has a corresponding fitness value F<sub><italic>i</italic></sub> and is selected for inclusion in the elite population P<sub><italic>E</italic></sub> with selection probability P<sub><italic>i</italic></sub> determined as follows:</p>
<disp-formula id="S5.Ex20"><mml:math id="M20">
<mml:mrow>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mfrac>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mi>F</mml:mi>
</mml:mfrac>
</mml:mrow>
<mml:mo rspace="7.5pt">,</mml:mo>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>F</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mo largeop="true" movablelimits="false" symmetric="true">&#x2211;</mml:mo>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>i</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mn>10</mml:mn>
</mml:munderover>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>With population <bold>P<inline-formula><mml:math id="INEQ14"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold> the values of F<sub><italic>i</italic></sub> and P<sub><italic>i</italic></sub> are calculated as shown in <xref ref-type="table" rid="T5">Table 5</xref>.</p>
<table-wrap position="float" id="T5">
<label>TABLE 5</label>
<caption><p>The values of F<sub><italic>i</italic></sub> and P<sub><italic>i</italic></sub> of strings in P<inline-formula><mml:math id="INEQ15"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">P<inline-formula><mml:math id="INEQ16"><mml:msubsup><mml:mi/><mml:mi mathvariant="bold">N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="center">G1</td>
<td valign="top" align="center">G2</td>
<td valign="top" align="center">G3</td>
<td valign="top" align="center">G4</td>
<td valign="top" align="center">G5</td>
<td valign="top" align="center">G6</td>
<td valign="top" align="center">G7</td>
<td valign="top" align="center">G8</td>
<td valign="top" align="center">G9</td>
<td valign="top" align="center">G10</td>
<td valign="top" align="center">Fi</td>
<td valign="top" align="center">Pi</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">N1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">17.89</td>
<td valign="top" align="center">0.08</td>
</tr>
<tr>
<td valign="top" align="left">N2</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">38.74</td>
<td valign="top" align="center">0.17</td>
</tr>
<tr>
<td valign="top" align="left">N3</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">0.00</td>
<td valign="top" align="center">0.00</td>
</tr>
<tr>
<td valign="top" align="left">N4</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">66.59</td>
<td valign="top" align="center">0.29</td>
</tr>
<tr>
<td valign="top" align="left">N5</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">1.10</td>
<td valign="top" align="center">0.00</td>
</tr>
<tr>
<td valign="top" align="left">N6</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">21.23</td>
<td valign="top" align="center">0.09</td>
</tr>
<tr>
<td valign="top" align="left">N7</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">18.38</td>
<td valign="top" align="center">0.08</td>
</tr>
<tr>
<td valign="top" align="left">N8</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">2.78</td>
<td valign="top" align="center">0.01</td>
</tr>
<tr>
<td valign="top" align="left">N9</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">66.84</td>
<td valign="top" align="center">0.29</td>
</tr>
</tbody>
</table></table-wrap>
<p>Based on P<sub><italic>i</italic></sub>, 10 random numbers are generated, the strings selected into <bold>P<inline-formula><mml:math id="INEQ17"><mml:msubsup><mml:mi/><mml:mi>E</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold> are as follows:</p>
<disp-formula id="S5.Ex21"><mml:math id="M21">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:msubsup>
<mml:mtext mathvariant="bold">P</mml:mtext>
<mml:mi mathvariant="bold">E</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>7</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec id="S5.SS5">
<title>Step 5: Generate the genetic population P<inline-formula><mml:math id="INEQ18"><mml:msubsup><mml:mi/><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></title>
<p>This step uses the crossover and mutation operators to generate genetic population P<inline-formula><mml:math id="INEQ19"><mml:msubsup><mml:mi/><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> from the elite population P<inline-formula><mml:math id="INEQ20"><mml:msubsup><mml:mi/><mml:mi>E</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>. The genetic population P<inline-formula><mml:math id="INEQ21"><mml:msubsup><mml:mi/><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> includes the new strings generated from the crossover and mutation operators.</p>
<p>The strings of <bold>P<inline-formula><mml:math id="INEQ22"><mml:msubsup><mml:mi/><mml:mi>E</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold> are selected to be included in the crossover list <bold>P<sub><italic>c</italic></sub></bold> with the crossover probability of 0.8. After generating random numbers, the set <bold>P<sub><italic>c</italic></sub></bold> is determined as follows:</p>
<disp-formula id="S5.Ex22"><mml:math id="M22">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold">P</mml:mtext>
<mml:mi mathvariant="bold">c</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Each pair of strings in <bold>P<sub><italic>c</italic></sub></bold> is selected to cross over by the POX method, resulting in 12 new strings in population <bold>P<italic><sup>C</sup></italic></bold> as shown in <xref ref-type="table" rid="T6">Table 6</xref>.</p>
<table-wrap position="float" id="T6">
<label>TABLE 6</label>
<caption><p>The population P<italic><sup>C</sup></italic>.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">P<sup>C</sup></td>
<td valign="top" align="center">G1</td>
<td valign="top" align="center">G2</td>
<td valign="top" align="center">G3</td>
<td valign="top" align="center">G4</td>
<td valign="top" align="center">G5</td>
<td valign="top" align="center">G6</td>
<td valign="top" align="center">G7</td>
<td valign="top" align="center">G8</td>
<td valign="top" align="center">G9</td>
<td valign="top" align="center">G10</td>
<td valign="top" align="center">Ti</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">C1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">215.95</td>
</tr>
<tr>
<td valign="top" align="left">C2</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">254.34</td>
</tr>
<tr>
<td valign="top" align="left">C3</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">294.78</td>
</tr>
<tr>
<td valign="top" align="left">C4</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">294.78</td>
</tr>
<tr>
<td valign="top" align="left">C5</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">215.95</td>
</tr>
<tr>
<td valign="top" align="left">C6</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">254.34</td>
</tr>
<tr>
<td valign="top" align="left">C7</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">294.78</td>
</tr>
<tr>
<td valign="top" align="left">C8</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">215.95</td>
</tr>
<tr>
<td valign="top" align="left">C9</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">254.34</td>
</tr>
<tr>
<td valign="top" align="left">C10</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">294.78</td>
</tr>
</tbody>
</table></table-wrap>
<p>The strings of <bold>P<inline-formula><mml:math id="INEQ24"><mml:msubsup><mml:mi/><mml:mi>E</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold> are also selected to be included in the mutation list <bold>P<sub><italic>m</italic></sub></bold> with the mutation probability of 0.2. After generating random numbers, the set <bold>P<sub><italic>m</italic></sub></bold> is determined as follows:</p>
<disp-formula id="S5.Ex23"><mml:math id="M23">
<mml:mrow>
<mml:msub>
<mml:mtext mathvariant="bold">P</mml:mtext>
<mml:mi mathvariant="bold">m</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Each chromosome in <bold>P<sub><italic>m</italic></sub></bold> is selected to mutate by the SWAP method, resulting in new chromosomes in population <bold>P<sub><italic>m</italic></sub></bold> as shown in <xref ref-type="table" rid="T7">Table 7</xref>.</p>
<table-wrap position="float" id="T7">
<label>TABLE 7</label>
<caption><p>The population P<italic><sup>M</sup></italic>.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">P<inline-formula><mml:math id="INEQ25"><mml:msubsup><mml:mi/><mml:mi mathvariant="bold">N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="bold">k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="center">G1</td>
<td valign="top" align="center">G2</td>
<td valign="top" align="center">G3</td>
<td valign="top" align="center">G4</td>
<td valign="top" align="center">G5</td>
<td valign="top" align="center">G6</td>
<td valign="top" align="center">G7</td>
<td valign="top" align="center">G8</td>
<td valign="top" align="center">G9</td>
<td valign="top" align="center">G10</td>
<td valign="top" align="center">Fi</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">N1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">1285.22</td>
</tr>
</tbody>
</table></table-wrap>
<p>After crossover and mutation, 13 new chromosomes are created in <bold>P<inline-formula><mml:math id="INEQ26"><mml:msubsup><mml:mi/><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>:</bold></p>
<disp-formula id="S5.Ex24"><mml:math id="M24">
<mml:mrow>
<mml:msubsup>
<mml:mtext mathvariant="bold">P</mml:mtext>
<mml:mi mathvariant="bold">G</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn mathvariant="bold">0</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>9</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mn>11</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>12</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>M</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec id="S5.SS6">
<title>Step 6. Find the next solution S<sub><italic>k+1</italic></sub></title>
<p>This step uses the search operator to find the best solution in the solution regions defined by <bold>P<inline-formula><mml:math id="INEQ27"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold> and <bold>P<inline-formula><mml:math id="INEQ28"><mml:msubsup><mml:mi/><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold>. The search operator relies on the objective function and the tabu list to find the best solution that is not in the tabu list. This solution will be selected for the next iteration, if any. This step also updates the tabu list and the current best Tbest if the objective value of the solution is better than the current Tbest.</p>
<p>At iteration 1, based on <bold>P<inline-formula><mml:math id="INEQ29"><mml:msubsup><mml:mi/><mml:mi>N</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold>, <bold>P<inline-formula><mml:math id="INEQ30"><mml:msubsup><mml:mi/><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula></bold>, and the current tabu list, the next solution is:</p>
<disp-formula id="S5.Ex26"><mml:math id="M26">
<mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mpadded width="+3.3pt">
<mml:mn>9</mml:mn>
</mml:mpadded>
</mml:mrow>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>9</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex27"><mml:math id="M27">
<mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mpadded width="+3.3pt">
<mml:mi>L</mml:mi>
</mml:mpadded>
</mml:mrow>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>9</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex28"><mml:math id="M28">
<mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mpadded width="+3.3pt">
<mml:mi>t</mml:mi>
</mml:mpadded>
</mml:mrow>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>175.65</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec id="S5.SS7">
<title>Step 7. Check the termination rule</title>
<p>After iteration 1, N1 is the best string with the best objective value of 175.65, appearing only once. The termination rule is not satisfied, so iteration 2 is executed. The results after 16 iterations are shown in <xref ref-type="table" rid="T8">Table 8</xref>.</p>
<table-wrap position="float" id="T8">
<label>TABLE 8</label>
<caption><p>The results after 16 iterations.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">Iteration</td>
<td valign="top" align="center">G1</td>
<td valign="top" align="center">G2</td>
<td valign="top" align="center">G3</td>
<td valign="top" align="center">G4</td>
<td valign="top" align="center">G5</td>
<td valign="top" align="center">G6</td>
<td valign="top" align="center">G7</td>
<td valign="top" align="center">G8</td>
<td valign="top" align="center">G9</td>
<td valign="top" align="center">G10</td>
<td valign="top" align="center">Tbest</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">0</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">215.95</td>
</tr>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">175.65</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">135.60</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">135.60</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">135.60</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">135.60</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">129.87</td>
</tr>
<tr>
<td valign="top" align="left">&#x2026;</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">129.87</td>
</tr>
<tr>
<td valign="top" align="left">16</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">129.87</td>
</tr>
</tbody>
</table></table-wrap>
<p>The best objective value Tbest remains the same from the 6th iteration to the 14th iteration, the termination rule is satisfied, and the algorithm ends. The scheduling result in this run is as follows:</p>
<disp-formula id="S5.Ex29"><mml:math id="M29">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>S</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>9</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex30"><mml:math id="M30">
<mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mpadded width="+3.3pt">
<mml:mi>t</mml:mi>
</mml:mpadded>
</mml:mrow>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mn>129.87</mml:mn>
<mml:mo>&#x2062;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec id="S5.SS8">
<title>Run the algorithm a number of times to choose the best scheduling result</title>
<p>The algorithm is run five times with the results as shown in <xref ref-type="table" rid="T9">Table 9</xref>.</p>
<table-wrap position="float" id="T9">
<label>TABLE 9</label>
<caption><p>The results after five runs.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">Run</td>
<td valign="top" align="center">G1</td>
<td valign="top" align="center">G2</td>
<td valign="top" align="center">G3</td>
<td valign="top" align="center">G4</td>
<td valign="top" align="center">G5</td>
<td valign="top" align="center">G6</td>
<td valign="top" align="center">G7</td>
<td valign="top" align="center">G8</td>
<td valign="top" align="center">G9</td>
<td valign="top" align="center">G10</td>
<td valign="top" align="center">Tbest</td>
<td valign="top" align="center">n</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">129.87</td>
<td valign="top" align="center">16</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">124,67</td>
<td valign="top" align="center">18</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">124,67</td>
<td valign="top" align="center">14</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">123.07</td>
<td valign="top" align="center">16</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">123.07</td>
<td valign="top" align="center">14</td>
</tr>
</tbody>
</table></table-wrap>
<p>The best scheduling result is found on the 5th run, with a number of iterations NoI of 14. The sequence of dispatching S, the value of the objective function, and the Gantt chart are shown in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<disp-formula id="S5.Ex31"><mml:math id="M31">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>S</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>9</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex32"><mml:math id="M32">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>T</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>123.07</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption><p>The Gantt chart for the pilot problem by TSGA model.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="bijomrp-2024-29-g003.tif"/>
</fig>
<p>The objective value according to TSGA model (123.07 h) is better than the objective value according to the EDD heuristic currently used (215.95 h).</p>
</sec>
</sec>
<sec id="S6">
<title>The TSGA model for the real FSS problem</title>
<p>The real problem to be solved is a FSS problem with 120 orders, O<sub><italic>i</italic></sub> (i = 1&#x00F7;120), scheduling on four machines (M<sub>1</sub>, M<sub>2</sub>, M<sub>3</sub>, M<sub>4</sub>). Each order has three parts (P1, P2, P3), processed in eight operations, O<sub><italic>j</italic></sub> (j = 1&#x00F7;8), distributed on the four machines as in <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<p>Problem data has been collected to estimate the parameters of the weight W<sub><italic>i</italic></sub>, the due date D<sub><italic>i</italic></sub> of order i (i = 1&#x00F7;120), of the processing time P<sub><italic>ij</italic></sub> of order i (i = 1&#x00F7;120), on operation j (j = 1&#x00F7;8), and of the changeover times S<sub><italic>j</italic></sub> (j = 1&#x00F7;8).</p>
<p>The company is currently using the EDD dispatching method. The sequence of the order to be scheduled by the ESS model is as follows:</p>
<p>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120]</p>
<p>The total weighted tardiness time T and the number of late delivery orders N of the real size problem is as follows:</p>
<disp-formula id="S6.Ex33"><mml:math id="M33">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>T</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mn>354.95</mml:mn>
</mml:mpadded>
<mml:mo>&#x2062;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S6.Ex34"><mml:math id="M34">
<mml:mrow>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>N</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>31</mml:mn>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The above TSGA model has been applied to solve the real problem, with the size larger than the pilot problem size; thus, some parameters or factors of the TSGA model have been changed to suit the real problem. The parameters or factors of the TSGA model for the real problem are as in <xref ref-type="table" rid="T10">Table 10</xref>.</p>
<table-wrap position="float" id="T10">
<label>TABLE 10</label>
<caption><p>The parameters or factors of the TSGA algorithm.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">Parameters or factors</td>
<td valign="top" align="left">Values</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Initial solution</td>
<td valign="top" align="left">EDD</td>
</tr>
<tr>
<td valign="top" align="left">Neighborhood operator</td>
<td valign="top" align="left">Permutation</td>
</tr>
<tr>
<td valign="top" align="left">Tabu list size</td>
<td valign="top" align="left">Not limited</td>
</tr>
<tr>
<td valign="top" align="left">Population size</td>
<td valign="top" align="left">25</td>
</tr>
<tr>
<td valign="top" align="left">Crossover method</td>
<td valign="top" align="left">POX</td>
</tr>
<tr>
<td valign="top" align="left">Mutation method</td>
<td valign="top" align="left">Swap</td>
</tr>
<tr>
<td valign="top" align="left">P<sub><italic>c</italic></sub></td>
<td valign="top" align="left">0.8</td>
</tr>
<tr>
<td valign="top" align="left">P<sub><italic>m</italic></sub></td>
<td valign="top" align="left">0.4</td>
</tr>
<tr>
<td valign="top" align="left">The termination rule</td>
<td valign="top" align="left">The best objective value Tbest does not improve after 10 consecutive iterations or CPU time is more than 3 h</td>
</tr>
</tbody>
</table></table-wrap>
<p>The sequence of the orders to be scheduled by the TSGA model is as follows:</p>
<p>[1, 2, 3, 103, 5, 119, 6, 69, 8, 9, 11, 14, 12, 15, 13, 16, 17, 76, 18, 78, 21, 22, 24, 101, 25, 27, 10, 90, 28, 29, 31, 30, 33, 35, 32, 34, 37, 36, 38, 44, 39, 40, 41, 42, 19, 45, 47, 46, 49, 48, 52, 54, 51, 53, 55, 56, 57, 59, 91, 60, 61, 62, 63, 65, 64, 66, 7, 67, 68, 70, 85, 73, 75, 72, 77, 74, 83, 43, 79, 20, 84, 81, 82, 71, 87, 88, 89, 86, 26, 92, 58, 94, 95, 93, 96, 98, 99, 97, 100, 23, 102, 4, 105, 104, 106, 107, 108, 109, 111, 110, 50, 112, 80, 117, 116, 115, 114, 113, 118, 120].</p>
<p>The total weighted tardiness time T and the number of late delivery orders N of the real size PMS problem are as follows:</p>
<disp-formula id="S6.Ex35"><mml:math id="M35">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>T</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mn>284.13</mml:mn>
</mml:mpadded>
<mml:mo>&#x2062;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S6.Ex36"><mml:math id="M36">
<mml:mrow>
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>N</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The total weighted tardiness time T has decreased by 20 % from 354.95 (h) to 284.13 (h). The number of late delivery orders N has decreased from 31 to 5.</p>
</sec>
<sec id="S7" sec-type="conclusion">
<title>Conclusion</title>
<p>The FSS problem to be solved is modeled with the objective to minimize the total weighted tardiness of orders, and constraints on the sequence of orders, on the sequence of operations in the orders, and on machine changeover time.</p>
<p>The TSGA algorithm is constructed based on the combination of TS and GA with the foundation of TS. In the model, TS is used as the platform to perform a local search of the solution space, and GA is used to perform a global search to support TS.</p>
<p>Based on the problem model, the TSGA algorithm is used to solve the pilot problem of a small size, with 10 orders and scheduling on four machines. The total weighted tardiness time according to the TSGA model (123.07 h) is better than the total weighted tardiness time according to the EDD heuristic currently used (215.95 h).</p>
<p>Then the TSGA algorithm is also used to solve the real FSS problem with 120 jobs on 4 machines. The results show that the TSGA model gives better results than the heuristic EDD method being used. The total weighted tardiness time T has decreased by 20 % from 354.95 (h) to 284.13 (h). The number of late delivery orders N has decreased from 31 to 5.</p>
<p>However, the factors of the model, including the method of finding the neighborhood strings, the crossover probability P<sub><italic>c</italic></sub>, the mutation probability P<sub><italic>m</italic></sub>, and the method and parameter of the termination rule, are only selected empirically; therefore, the results are not particularly satisfactory. The future research should use DOE to determine the model parameters for achieving better suboptimal results.</p>
</sec>
<sec id="S8">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<ref id="B1"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nhu</surname> <given-names>PN</given-names></name> <name><surname>Thi</surname> <given-names>TNN</given-names></name></person-group>. <article-title>Application of TSGA, a hybrid mega heuristic model, to solve flow shop scheduling problems FFS with changeover times in operations. A case study.</article-title> <source><italic>The 4th International Conference on Applied Convergence Engineering (ICACE 2023)</italic></source> <publisher-loc>Ho Chi Minh City, Vietnam</publisher-loc>: <publisher-name>HCMC University of Technology, VNUHCM</publisher-name> (<year>2023</year>).</citation></ref>
<ref id="B2"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Umam</surname> <given-names>MS</given-names></name> <name><surname>Mustafid</surname> <given-names>M</given-names></name> <name><surname>Suryono</surname> <given-names>S</given-names></name></person-group>. <article-title>A hybrid genetic algorithm and Tabu Search for minimizing makespan in flow shop scheduling problem.</article-title> <source><italic>J King Saud Univ Comp Inf Sci.</italic></source> (<year>2022</year>) <volume>34</volume>:<fpage>7459</fpage>&#x2013;<lpage>67</lpage>.</citation></ref>
<ref id="B3"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gupta</surname> <given-names>JND</given-names></name></person-group>. <article-title>Designing a Tabu Search algorithm for the two-stage flow shop problem with secondary criterion.</article-title> <source><italic>Prod Plann Cont Manage Oper.</italic></source> (<year>1999</year>) <volume>10</volume>:<fpage>251</fpage>&#x2013;<lpage>65</lpage>. <pub-id pub-id-type="doi">10.1080/095372899233217</pub-id></citation></ref>
<ref id="B4"><label>4.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nhu</surname> <given-names>PN</given-names></name> <name><surname>Thi</surname> <given-names>TNN</given-names></name></person-group>. <article-title>Application of Tabu Search, TS to solve a flow shop scheduling problem with changeover times in operations. A case study.</article-title> <source><italic>BOHR Int J Oper Manag Res Pract.</italic></source> (<year>2024</year>). <pub-id pub-id-type="doi">10.54646/bijomrp.2024.22</pub-id></citation></ref>
<ref id="B5"><label>5.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Etiler</surname> <given-names>O</given-names></name> <name><surname>Toklu</surname> <given-names>B</given-names></name> <name><surname>Atak</surname> <given-names>M</given-names></name> <name><surname>Wilson</surname> <given-names>J</given-names></name></person-group>. <article-title>A genetic algorithm for flow shop scheduling problems.</article-title> <source><italic>J Oper Res Soc.</italic></source> (<year>2004</year>) <volume>55</volume>:<fpage>830</fpage>&#x2013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.1057/palgrave.jors.2601766</pub-id></citation></ref>
<ref id="B6"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Engin</surname> <given-names>O</given-names></name> <name><surname>Ceran</surname> <given-names>G</given-names></name> <name><surname>Yilmaz</surname> <given-names>MK</given-names></name></person-group>. <article-title>An efficient genetic algorithm for hybrid flow shop scheduling with multiprocessor task problems. (2007).</article-title> <source><italic>Appl Soft Comp.</italic></source> (<year>2011</year>) <volume>11</volume>:<fpage>3056</fpage>&#x2013;<lpage>65</lpage>. <pub-id pub-id-type="doi">10.1016/j.asoc.2010.12.006</pub-id></citation></ref>
<ref id="B7"><label>7.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nhu</surname> <given-names>PN</given-names></name> <name><surname>Thi</surname> <given-names>KNN</given-names></name> <name><surname>Thi</surname> <given-names>THTV</given-names></name></person-group>. <article-title>Application of genetic algorithm, GA to solve a flow shop scheduling problem with changeover times in operations: a case study.</article-title> <source><italic>BOHR Int J Oper Manag Res Pract.</italic></source> (<year>2024</year>). <pub-id pub-id-type="doi">10.54646/bijomrp.2024.25</pub-id></citation></ref>
<ref id="B8"><label>8.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Burduk</surname> <given-names>A</given-names></name> <name><surname>Musia&#x0142;</surname> <given-names>K</given-names></name> <name><surname>Kochanska</surname> <given-names>J</given-names></name> <name><surname>G&#x00F3;rnicka</surname> <given-names>D</given-names></name> <name><surname>Stetsenko</surname> <given-names>A</given-names></name></person-group>. <article-title>Tabu Search and genetic algorithm for production process scheduling problem.</article-title> <source><italic>LogForum.</italic></source> (<year>2019</year>) <volume>15</volume>:<fpage>181</fpage>&#x2013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.17270/J.LOG.2019.315</pub-id></citation></ref>
<ref id="B9"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nhu</surname> <given-names>PN</given-names></name> <name><surname>Thi</surname> <given-names>KNN</given-names></name></person-group>. <article-title>Application of GATS, a hybrid mega heuristic model, to sovle flow shop scheduling problems FFS with changeover times in operations. A case study.</article-title> <source><italic>The 4th International Conference on Applied Convergence Engineering (ICACE 2023)</italic></source> <publisher-name>University of Technology, VNU HCM</publisher-name> (<year>2023</year>).</citation></ref>
<ref id="B10"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nhu</surname> <given-names>PN</given-names></name> <name><surname>Le</surname> <given-names>TTN</given-names></name></person-group>. <article-title>Application of GATS, a hybrid mega heuristic model, and DOE, design of experiment, to solve flexible flow shop scheduling problems - a case study.</article-title> <source><italic>BOHR Int J Oper Manag Res Pract.</italic></source> (<year>2023</year>). <pub-id pub-id-type="doi">10.54646/bijomrp.2023.14</pub-id></citation></ref>
</ref-list>
</back>
</article>
