<?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.2026.38</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Case study</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Application of GATS, a hybrid meta-heuristic model of genetic algorithm and tabu search, to solve a real-size problem of flow-shop scheduling with changeover times in operations: A case study in the flushing-kit-manufacturing industry</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>Kim Ngan 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>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>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>09</day>
<month>01</month>
<year>2026</year>
</pub-date>
<volume>5</volume>
<issue>1</issue>
<fpage>1</fpage>
<lpage>10</lpage>
<history>
<date date-type="received">
<day>06</day>
<month>05</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>08</day>
<month>10</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x00A9; 2026 Nhu, Thi and Nhu.</copyright-statement>
<copyright-year>2026</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 nondeterministic polynomial (NP)-hard combinatorial optimization problems. It is quite difficult to achieve an optimal solution for real-size problems with mathematical modeling approaches. Meta-heuristics algorithms, like genetic algorithm (GA) and tabu search (TS), play a major role in searching for near-optimal solutions for NP-hard optimization problems. The scheduling method in the case study is not effective; the total tardiness time of orders is rather high. This paper develops a genetic algorithm and tabu search (GATS) algorithm for solving the real FSS problem, with the objective to schedule orders more effectively than the current earliest due date (EDD) model. The GATS algorithm is a hybrid meta-heuristic model, combining GA and TS. In the model, GA is used as the platform for global search, and TS is used to support GA in local search. The performance of the algorithm is compared with the heuristic EDD model being used. The result shows that the algorithm is a good approach for FSS problems. However, the factors of the algorithm are chosen empirically, so the results are only better than the results of the current approach, and not really satisfactory. Future research is to use the experimental design to identify the algorithm&#x2019;s factors to obtain better results.</p>
</abstract>
<kwd-group>
<kwd>hybrid meta-heuristic</kwd>
<kwd>genetic algorithm</kwd>
<kwd>tabu search</kwd>
<kwd>flow shop scheduling problems</kwd>
<kwd>changeover times.</kwd>
</kwd-group>
<counts>
<fig-count count="3"/>
<table-count count="16"/>
<equation-count count="31"/>
<ref-count count="12"/>
<page-count count="10"/>
<word-count count="6868"/>
</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, and 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.</p>
<p>The model of the problem is built based on the above assumptions, objective, and constraints. The genetic algorithm and tabu search (GATS) algorithm is built based on the combination of genetic algorithm (GA) and tabu search (TS) with the foundation of GA. Based on the model of the problem, the GATS algorithm will find a good solution for the problem; this solution will be compared with the solution 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 are nondeterministic polynomial (NP)-hard combinatorial optimization problems. For such problems, heuristics play a major role in searching for near-optimal solutions. Etiler et al., developed a genetic algorithm-based heuristic for the flow shop scheduling problem with makespan as the criterion (<xref ref-type="bibr" rid="B1">1</xref>). Complex GA algorithms have also been researched to solve the FFS problem effectively. Engin et al., developed an efficient GA for hybrid flow shop scheduling with multiprocessor task problems (<xref ref-type="bibr" rid="B2">2</xref>). Phong et al., developed a GA model to solve a flow shop scheduling problem, with the objective to reduce total weighted tardiness time and a constraint on changeover time in operations (<xref ref-type="bibr" rid="B3">3</xref>). Pezzella et al., developed a GA for the flexible job-shop scheduling problem. The algorithm integrates different strategies for generating the initial population, selecting the individuals for reproduction, and reproducing new individuals (<xref ref-type="bibr" rid="B4">4</xref>).</p>
<p>Gupta et al., designed a heuristic model based on TS for a two-stage flow shop problem (<xref ref-type="bibr" rid="B5">5</xref>). Phong et al., developed a TS model for a FSS problem (<xref ref-type="bibr" rid="B6">6</xref>). Burduk et al., applied TS and GA to solve production process scheduling problems (<xref ref-type="bibr" rid="B7">7</xref>). Umam et al., combined the TS process with a GA to solve the flow shop scheduling problem with the objective of minimizing makespan (<xref ref-type="bibr" rid="B8">8</xref>). Ben-Daya and Al-Fawzan proposed a TS approach for solving the permutation flow shop scheduling problem. The approach suggested simple techniques for generating neighborhoods of a given sequence and a combined scheme for intensification and diversification (<xref ref-type="bibr" rid="B9">9</xref>).</p>
<p>Phong et al., considered a pilot FSS problem with four different machines and 10 different jobs. The problem was solved by two different hybrid meta-heuristic models, GATS (<xref ref-type="bibr" rid="B10">10</xref>) and TSGA (<xref ref-type="bibr" rid="B11">11</xref>). Phong et al., developed a hybrid meta-heuristic model to solve FFS problems with nine orders, scheduling on four stations. The problem had the objective to minimize the total tardiness time and the constraints on workstation set-up times and production batch sizes (<xref ref-type="bibr" rid="B12">12</xref>).</p>
<p>In general, there are many hybrid meta-heuristic models, and the former models are rather complicated. This research proposes a simple combination of GA and TS. In the algorithm, GA is used as the platform for global search, and TS is used to support GA in local search. GA diversifies the search by exploring the search space, and TS intensifies the search by exploiting the best solutions found.</p>
<p>In each iteration, GA generates the elite population from the current population by using selection operators and generates genetic populations from the elite population by using cross-over and mutation operators. Then TS generates the neighborhood population from the genetic population by using neighborhood operators. Finally, GA generates the next population from the current population, the elite population, and the neighborhood population by using replacement operators. The detailed research methodology is shown in the next section.</p>
</sec>
<sec id="S3">
<title>Research methodology</title>
<p>The 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 four phases:</p>
<list list-type="simple">
<list-item>
<label>1)</label>
<p>Phase A: Construct the model of the FSS problem.</p>
</list-item>
<list-item>
<label>2)</label>
<p>Phase B: Construct the GATS algorithm.</p>
</list-item>
<list-item>
<label>3)</label>
<p>Phase C: Use the GATS algorithm to solve the pilot FSS problem.</p>
</list-item>
<list-item>
<label>4)</label>
<p>Phase D: Use the GATS algorithm to solve the real FSS problem.</p>
</list-item>
</list>
<sec id="S3.SS1">
<title>Phase A: construct the model of the FSS problem</title>
<p>In phase A, the model of the problem is formulated with the objective of minimizing the total weighted tardiness time and constraint on the sequence of orders, on the sequence of operations in the orders, and on machine changeover time. The FSS model has indexes, parameters, and variables as in <xref ref-type="table" rid="T1">Table 1</xref>.</p>
<table-wrap position="float" id="T1">
<label>TABLE 1</label>
<caption><p>The indexes, parameters, and variables of the FSS model.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="left">i</td>
<td valign="top" align="left">Order index, i = 1&#x00F7;M</td>
</tr>
<tr>
<td valign="top" align="left">j</td>
<td valign="top" align="left">Machine index, j = 1&#x00F7;N</td>
</tr>
<tr>
<td valign="top" align="left">M</td>
<td valign="top" align="left">Number of orders</td>
</tr>
<tr>
<td valign="top" align="left">N</td>
<td valign="top" align="left">Number of machines</td>
</tr>
<tr>
<td valign="top" align="left">k</td>
<td valign="top" align="left">The index of the next order of order i</td>
</tr>
<tr>
<td valign="top" align="left">h</td>
<td valign="top" align="left">The index of the previous order of order i</td>
</tr>
<tr>
<td valign="top" align="left">W<sub><italic>i</italic></sub></td>
<td valign="top" align="left">The weight of order i</td>
</tr>
<tr>
<td valign="top" align="left">D<sub><italic>i</italic></sub></td>
<td valign="top" align="left">The due date of order i</td>
</tr>
<tr>
<td valign="top" align="left">P<sub><italic>ij</italic></sub></td>
<td valign="top" align="left">The processing time of order i on machine j</td>
</tr>
<tr>
<td valign="top" align="left">S<sub><italic>ijk</italic></sub></td>
<td valign="top" align="left">The changeover times from order i on machine j to order k</td>
</tr>
<tr>
<td valign="top" align="left">TS<sub><italic>ij</italic></sub></td>
<td valign="top" align="left">The start time of order i on machine j</td>
</tr>
<tr>
<td valign="top" align="left">TC<sub><italic>ij</italic></sub></td>
<td valign="top" align="left">The completion time of order i on machine j</td>
</tr>
<tr>
<td valign="top" align="left">T<sub><italic>i</italic></sub></td>
<td valign="top" align="left">The tardiness time of order i</td>
</tr>
<tr>
<td valign="top" align="left">T</td>
<td valign="top" align="left">The total weighted tardiness time</td>
</tr>
<tr>
<td valign="top" align="left">Tbest</td>
<td valign="top" align="left">The best total weighted tardiness time</td>
</tr>
</tbody>
</table></table-wrap>
<p>In the case, there are four machines (N = 4), M<sub>1</sub>, M<sub>2</sub>, M<sub>3</sub>, and M<sub>4.</sub> Each order has three parts, P1, P2, and 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>The production process.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="bijomrp-2026-38-g001.tif"/>
</fig>
<p>The constraints on the sequence of operation on each order are as follows.</p>
<p>TS<sub><italic>i4</italic></sub> &#x2265; TC<sub><italic>i1</italic></sub>,</p>
<p>TS<sub><italic>i5</italic></sub> &#x2265; TC<sub><italic>i2</italic></sub>,</p>
<p>TS<sub><italic>i6</italic></sub> &#x2265; TC<sub><italic>i3</italic></sub>,</p>
<p>TS<sub><italic>i7</italic></sub> &#x2265; TC<sub><italic>i5</italic></sub>,</p>
<p>TS<sub><italic>i8</italic></sub> &#x2265; max(TC<sub><italic>i4</italic></sub>, TC<sub><italic>i6</italic></sub>, TC<sub><italic>i7</italic></sub>).</p>
<p>The start time of order i at operation j, TS<sub><italic>ij</italic></sub> depends on the completion time of the previous order h, TC<sub><italic>hj</italic></sub> and the changeover time S<sub><italic>hji</italic></sub> between the orders on operation j.</p>
<disp-formula id="S3.Ex1"><mml:math id="M1">
<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:mi>h</mml:mi>
<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:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The completion time of order i on operation j, TC<sub><italic>ij</italic></sub> is determined by the start time and processing time of the order.</p>
<disp-formula id="S3.Ex2"><mml:math id="M2">
<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>The tardiness time of order i, T<sub><italic>i</italic></sub> is determined by the completion time of the last operation and due time of the order.</p>
<disp-formula id="S3.Ex3"><mml:math id="M3">
<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:mpadded width="+3.3pt">
<mml:mi>x</mml:mi>
</mml:mpadded>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>T</mml:mi>
<mml:mi>C</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 total weighted tardiness is defined as follows:</p>
<disp-formula id="S3.Ex4"><mml:math id="M4">
<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:mi>M</mml:mi>
</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:math>
</disp-formula>
<p>The objective function that minimizes the total weight tardiness is defined as follows:</p>
<disp-formula id="S3.Ex5"><mml:math id="M5">
<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:mi>M</mml:mi>
</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 model of the problem is summarized as follows:</p>
<p>Min T</p>
<p>St.</p>
<p>TS<sub><italic>i4</italic></sub> &#x2265; TC<sub><italic>i1</italic></sub>,</p>
<p>TS<sub><italic>i5</italic></sub> &#x2265; TC<sub><italic>i2</italic></sub>,</p>
<p>TS<sub><italic>i6</italic></sub> &#x2265; TC<sub><italic>i3</italic></sub>,</p>
<p>TS<sub><italic>i7</italic></sub> &#x2265; TC<sub><italic>i5</italic></sub>,</p>
<p>TS<sub><italic>i8</italic></sub> &#x2265; max(TC<sub><italic>i4</italic></sub>, TC<sub><italic>i6</italic></sub>, TC<sub><italic>i7</italic></sub>).</p>
<p>TS<sub><italic>ij</italic></sub> = TC<sub><italic>hj</italic></sub> + S<sub><italic>hji</italic></sub></p>
<p>TC<sub><italic>ij</italic></sub> = TS<sub><italic>ij</italic></sub> + P<sub><italic>ij</italic></sub></p>
<p>T<sub><italic>i</italic></sub> = Max (0, TC<sub><italic>i8</italic></sub> - D<sub><italic>i</italic></sub>)</p>
<p>TS<sub><italic>ij</italic></sub>, TC<sub><italic>ij</italic></sub> &#x2265; 0.</p>
</sec>
<sec id="S3.SS2">
<title>Phase B: construct the GATS algorithm</title>
<p>The GATS algorithm combines GA and TS; GA is used to perform a global search of the solution space, and TS is used to perform a local search to refine the solution found by GA. The GATS procedure is as follows:</p>
<p>Step 1: Initialize the GATS model.</p>
<p>Step 2: Generate the initial population P<sup>(0)</sup>. Set k = 0.</p>
<p>Step 3: Generate elite population P<sub><italic>E</italic></sub><sup>(k)</sup>.</p>
<p>Step 4: Generate the genetic population P<sub><italic>G</italic></sub><sup>(k)</sup>.</p>
<p>Step 5: Generate the neighborhood population P<sub><italic>N</italic></sub><sup>(k)</sup>.</p>
<p>Step 6: Generate the next population P<sup>(k+1)</sup>. Set k = k+1.</p>
<p>Step 7: Check the termination rule. If No, return to step 3. If Yes, finish the loop.</p>
<p>Step 8: Run the algorithm a number of times to choose the best scheduling result.</p>
<sec id="S3.SS2.SSS1">
<title>Step 1: Initialize the GATS model</title>
<p>This step sets up the factors of GATS model, including:</p>
<list list-type="simple">
<list-item>
<label>-</label>
<p>The method of coding</p>
</list-item>
<list-item>
<label>-</label>
<p>The GA factors</p>
</list-item>
<list-item>
<label>-</label>
<p>The TS factors</p>
</list-item>
<list-item>
<label>-</label>
<p>The termination rule</p>
</list-item>
<list-item>
<label>-</label>
<p>The number of runs</p>
</list-item>
</list>
<p><bold><italic>The method of coding:</italic></bold> Schedule alternatives are coded by chromosomes. With N orders, each chromosome is a string of N genes. Each gene is corresponding to an order. The orders are numbered from 1 to N. The sequence of genes represents the sequence of order scheduled:</p>
<disp-formula id="S3.Ex6"><mml:math id="M6">
<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 mathvariant="normal">&#x2026;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>G</mml:mi>
<mml:mmultiscripts>
<mml:mo stretchy="false">]</mml:mo>
<mml:mprescripts/>
<mml:mi>N</mml:mi>
<mml:none/>
</mml:mmultiscripts>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p><bold><italic>The GA factors</italic></bold>: The GA factors include fitness function F, the population size P, and the parameters of GA operators. The GA operators include the following parameters:</p>
<list list-type="simple">
<list-item>
<label>-</label>
<p>The selection method</p>
</list-item>
<list-item>
<label>-</label>
<p>The crossover probability P<sub><italic>c</italic></sub></p>
</list-item>
<list-item>
<label>-</label>
<p>The crossover method</p>
</list-item>
<list-item>
<label>-</label>
<p>The mutation probability P<sub><italic>m</italic></sub></p>
</list-item>
<list-item>
<label>-</label>
<p>The mutation method</p>
</list-item>
<list-item>
<label>-</label>
<p>The replacement method.</p>
</list-item>
</list>
<p>In the GATS model, the fitness function F is defined as follows:</p>
<disp-formula id="S3.Ex7"><mml:math id="M7">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:mi>i</mml:mi>
<mml:none/>
</mml:mmultiscripts>
<mml:mi>T</mml:mi>
<mml:mmultiscripts>
<mml:mo>-</mml:mo>
<mml:mprescripts/>
<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:none/>
</mml:mmultiscripts>
<mml:mo rspace="5.8pt">-</mml:mo>
<mml:mi>T</mml:mi>
<mml:mmultiscripts>
<mml:mo>.</mml:mo>
<mml:mprescripts/>
<mml:mi>i</mml:mi>
<mml:none/>
</mml:mmultiscripts>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Where F<sub><italic>i</italic></sub>, T<sub><italic>i</italic></sub> are the fitness and objective values of chromosome i, T<sub><italic>max</italic></sub> is the maximum objective value in the population.</p>
<p>The selection method uses selection probabilities, defined by fitness values, to choose chromosomes into the elite population. The crossover method is <italic>POX (Precedence Operation Crossover)</italic>, the mutation method is SWAP, and the replacement method is acceptance threshold with threshold factor K.</p>
<p><bold><italic>The TS factors:</italic></bold> The TS factors include only the <italic>neighborhood method</italic>. The neighborhood method uses the method of permutation of adjacent genes in the chromosomes to find the neighborhood.</p>
<p><bold><italic>The termination rule:</italic></bold> The termination rule uses iteration factor I to terminate the algorithm. The algorithm will be terminated if the best objective value <italic>Tbest</italic> of the population does not improve or decrease, after I consecutive iterations.</p>
<p><bold><italic>The number of runs:</italic></bold> The GATS algorithm is basically a stochastic model; it will be run a number of times R to choose the best result among the runs.</p>
</sec>
<sec id="S3.SS2.SSS2">
<title>Step 2: Generate the initial population P<sup>(0)</sup>. Set k = 0</title>
<p>The initial population consists of P chromosomes. Some chromosomes are generated from three heuristic rules, earliest due date (EDD), shortest processing time (SPT), and longest processing time (LPT). The remaining chromosomes are randomly generated.</p>
</sec>
<sec id="S3.SS2.SSS3">
<title>Step 3: Generate elite population P<sub><italic>E</italic></sub><sup>(k)</sup></title>
<p>This step uses the selection operator to generate elite population P<sub><italic>E</italic></sub><sup>(k)</sup> from the current population P<sup>(k)</sup>. Each chromosome in the current population 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><sup>(k)</sup>, with selection probability P<sub><italic>i</italic></sub> defined by fitness value as follows:</p>
<disp-formula id="S3.Ex8"><mml:math id="M8">
<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:mi>P</mml:mi>
</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>
</sec>
<sec id="S3.SS2.SSS4">
<title>Step 4: Generate the genetic population P<sub><italic>G</italic></sub><sup>(k)</sup></title>
<p>This step uses the crossover and mutation operators to generate genetic population P<sub><italic>G</italic></sub><sup>(k)</sup> from the elite population P<sub><italic>E</italic></sub><sup>(k)</sup>. The genetic population P<sub><italic>G</italic></sub><sup>(k)</sup> includes the new chromosome generated from the crossover and mutation operators.</p>
<p>The chromosomes of P<sub><italic>E</italic></sub><sup>(0)</sup>) are selected to be included in the crossover list P<sub><italic>c</italic></sub> with the crossover probability P<sub><italic>c</italic></sub>. Then each pair of chromosomes in P<sub><italic>c</italic></sub> is selected to cross over by the defined crossover method. The chromosomes of P<sub><italic>E</italic></sub><sup>(0)</sup>) are also selected to be included in the mutation list P<sub><italic>m</italic></sub> with the mutation probability P<sub><italic>m</italic></sub>. Then each chromosome in P<sub><italic>m</italic></sub> is selected to mutate by the defined mutation method.</p>
</sec>
<sec id="S3.SS2.SSS5">
<title>Step 5: Generate the neighborhood population P<sub><italic>N</italic></sub><sup>(k)</sup></title>
<p>This step uses the neighborhood operator to generate the neighborhood population <bold>P<sub><italic>N</italic></sub><sup>(k)</sup></bold> from the genetic population <bold>P<sub><italic>G</italic></sub><sup>(k)</sup>.</bold> Each chromosome in <bold>P<sub><italic>G</italic></sub><sup>(k)</sup></bold> will have a neighborhood defined by the neighborhood operator. In this neighborhood, the best chromosome will be selected to be included in <bold>P<sub><italic>N</italic></sub><sup>(k)</sup></bold> to go forward.</p>
</sec>
<sec id="S3.SS2.SSS6">
<title>Step 6: Generate the next population P<sup>(k+1)</sup>. Set k = k+1</title>
<p>This step uses the replacement operator to generate the next population <bold>P<sup>(k+1)</sup></bold> from the populations <bold>P<sub><italic>G</italic></sub><sup>(k)</sup></bold> and <bold>P<sub><italic>N</italic></sub><sup>(k)</sup>.</bold> The chromosomes from <bold>P<sub><italic>G</italic></sub><sup>(k)</sup></bold> and <bold>P<sub><italic>N</italic></sub><sup>(k)</sup></bold> will be added to the current population <bold>P<sup>(k)</sup></bold> to make the next population <bold>P<sup>(k+1)</sup></bold>, if their fitness values exceed the acceptable threshold, selected as the fitness value of the Tth chromosome of <bold>P<sup>(k)</sup></bold> in the ranking.</p>
<disp-formula id="S3.Ex9"><mml:math id="M9">
<mml:mrow>
<mml:mpadded width="+3.3pt">
<mml:mi>T</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>To keep the next population size constant, the chromosomes with the lowest values are removed from the next population.</p>
</sec>
<sec id="S3.SS2.SSS7">
<title>Step 7: Check the termination rule</title>
<p>This step checks the termination rule. If the best objective value <italic>Tbest</italic> of the population improves or decreases. It will return to step 3. If the best objective value <italic>Tbest</italic> of the population does not improve or decrease after I consecutive iterations. It finishes the run.</p>
</sec>
<sec id="S3.SS2.SSS8">
<title>Step 8: Run the algorithm a number of times to choose the best scheduling result</title>
<p>The algorithm will be run for R times; the best scheduling result among the runs will be chosen. The factors of the GATS algorithm are summarized in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
<table-wrap position="float" id="T2">
<label>TABLE 2</label>
<caption><p>The factors of the GATS algorithm.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">Factors</td>
<td valign="top" align="left">Values</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Population size</td>
<td valign="top" align="left">P</td>
</tr>
<tr>
<td valign="top" align="left">Fitness function F</td>
<td valign="top" align="left">F<sub><italic>i</italic></sub> = T<sub><italic>max</italic></sub> &#x2013; T<sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left">Selection method</td>
<td valign="top" align="left">Selection probability</td>
</tr>
<tr>
<td valign="top" align="left">Crossover probability</td>
<td valign="top" align="left">Pc</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 probability Pm</td>
<td valign="top" align="left">0.2</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">Replacement method</td>
<td valign="top" align="left">Acceptance threshold</td>
</tr>
<tr>
<td valign="top" align="left">Threshold coefficient</td>
<td valign="top" align="left">K</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">Iteration factor</td>
<td valign="top" align="left">I</td>
</tr>
<tr>
<td valign="top" align="left">Number of runs</td>
<td valign="top" align="left">R</td>
</tr>
</tbody>
</table></table-wrap>
</sec>
</sec>
<sec id="S3.SS3">
<title>Phase C and D: use the GATS algorithm to solve the FSS problem</title>
<p>Based on the model of the problem and the GATS algorithm, the pilot problem of small size is solved in phase C to get experience in defining the parameters of the GATS algorithm to solve the real problem of real size in phase D. Phase C and phase D will be shown in the following sections.</p>
</sec>
</sec>
<sec id="S4">
<title>The pilot FSS problem</title>
<p>The pilot problem to be solved is a FSS problem with 10 orders, O<sub><italic>i</italic></sub>, i = 1&#x00F7;10. The weight W<sub><italic>i</italic></sub> and the due date D<sub><italic>i</italic></sub> of order i are estimated in <xref ref-type="table" rid="T3">Table 3</xref>.</p>
<table-wrap position="float" id="T3">
<label>TABLE 3</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="center">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="center"><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="center"><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>
<p>The processing time P<sub><italic>ij</italic></sub> of order i, i = 1&#x00F7;10, on operation j, j = 1&#x00F7;8, are estimated in <xref ref-type="table" rid="T4">Table 4</xref>.</p>
<table-wrap position="float" id="T4">
<label>TABLE 4</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="left">P<sub>1j</sub></td>
<td valign="top" align="left">P<sub>2j</sub></td>
<td valign="top" align="left">P<sub>3j</sub></td>
<td valign="top" align="left">P<sub>4j</sub></td>
<td valign="top" align="left">P<sub>5j</sub></td>
<td valign="top" align="left">P<sub>6j</sub></td>
<td valign="top" align="left">P<sub>7j</sub></td>
<td valign="top" align="left">P<sub>8j</sub></td>
<td valign="top" align="left">P<sub>9j</sub></td>
<td valign="top" align="left">P<sub>10j</sub></td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2.34</td>
<td valign="top" align="left">6.17</td>
<td valign="top" align="left">6.20</td>
<td valign="top" align="left">7.09</td>
<td valign="top" align="left">2.47</td>
<td valign="top" align="left">9.56</td>
<td valign="top" align="left">3.44</td>
<td valign="top" align="left">14.74</td>
<td valign="top" align="left">5.26</td>
<td valign="top" align="left">1.39</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="left">2.25</td>
<td valign="top" align="left">0.94</td>
<td valign="top" align="left">7.05</td>
<td valign="top" align="left">3.22</td>
<td valign="top" align="left">1.07</td>
<td valign="top" align="left">5.26</td>
<td valign="top" align="left">1.81</td>
<td valign="top" align="left">7.49</td>
<td valign="top" align="left">5.26</td>
<td valign="top" align="left">0.66</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="left">0.00</td>
<td valign="top" align="left">3.99</td>
<td valign="top" align="left">4.34</td>
<td valign="top" align="left">4.38</td>
<td valign="top" align="left">2.60</td>
<td valign="top" align="left">9.52</td>
<td valign="top" align="left">0.00</td>
<td valign="top" align="left">16.75</td>
<td valign="top" align="left">14.74</td>
<td valign="top" align="left">0.44</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="left">2.63</td>
<td valign="top" align="left">1.33</td>
<td valign="top" align="left">1.08</td>
<td valign="top" align="left">9.00</td>
<td valign="top" align="left">2.60</td>
<td valign="top" align="left">12.56</td>
<td valign="top" align="left">1.32</td>
<td valign="top" align="left">17.54</td>
<td valign="top" align="left">16.52</td>
<td valign="top" align="left">1.29</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">1.06</td>
<td valign="top" align="left">1.00</td>
<td valign="top" align="left">6.58</td>
<td valign="top" align="left">9.00</td>
<td valign="top" align="left">4.21</td>
<td valign="top" align="left">12.64</td>
<td valign="top" align="left">0.65</td>
<td valign="top" align="left">17.54</td>
<td valign="top" align="left">16.52</td>
<td valign="top" align="left">1.29</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="left">0.00</td>
<td valign="top" align="left">8.33</td>
<td valign="top" align="left">6.58</td>
<td valign="top" align="left">3.60</td>
<td valign="top" align="left">3.95</td>
<td valign="top" align="left">12.64</td>
<td valign="top" align="left">0.00</td>
<td valign="top" align="left">13.33</td>
<td valign="top" align="left">15.79</td>
<td valign="top" align="left">0.40</td>
</tr>
<tr>
<td valign="top" align="left">7</td>
<td valign="top" align="left">2.67</td>
<td valign="top" align="left">3.29</td>
<td valign="top" align="left">1.13</td>
<td valign="top" align="left">2.21</td>
<td valign="top" align="left">0.68</td>
<td valign="top" align="left">4.00</td>
<td valign="top" align="left">1.11</td>
<td valign="top" align="left">5.26</td>
<td valign="top" align="left">1.60</td>
<td valign="top" align="left">0.44</td>
</tr>
<tr>
<td valign="top" align="left">8</td>
<td valign="top" align="left">4.08</td>
<td valign="top" align="left">3.31</td>
<td valign="top" align="left">3.42</td>
<td valign="top" align="left">12.00</td>
<td valign="top" align="left">3.95</td>
<td valign="top" align="left">6.12</td>
<td valign="top" align="left">2.21</td>
<td valign="top" align="left">8.22</td>
<td valign="top" align="left">5.26</td>
<td valign="top" align="left">1.32</td>
</tr>
</tbody>
</table></table-wrap>
<p>The changeover times on operation j, j = 4&#x00F7;8 are equal to 0.</p>
<disp-formula id="S4.Ex10"><mml:math id="M10">
<mml:mrow>
<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:mo>&#x2062;</mml:mo>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:none/>
</mml:mmultiscripts>
<mml:mn>0</mml:mn>
<mml:mo rspace="5.8pt">,</mml:mo>
<mml:mpadded width="+3.3pt">
<mml:mi>j</mml:mi>
</mml:mpadded>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>&#x00F7;</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The changeover times in hours on operation j, j = 1&#x00F7;3 are the same and depend on the current order i = 1&#x00F7;10, and the next order, k = 1&#x00F7;10, 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>Changeover time (h) S<sub><italic>ijk</italic></sub>, j = 1&#x00F7;3.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">S<sub><italic>ijk</italic></sub></td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">0.5</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
</tr>
<tr>
<td valign="top" align="left">7</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.0</td>
</tr>
<tr>
<td valign="top" align="left">8</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
</tr>
<tr>
<td valign="top" align="left">9</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.5</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">0.0</td>
<td valign="top" align="left">2.0</td>
<td valign="top" align="left">0.0</td>
</tr>
</tbody>
</table></table-wrap>
<p>The company is currently using the EDD dispatching method. The sequence of dispatching <bold>S</bold>, the value of the objective function T are as follows.</p>
<disp-formula id="S4.Ex11"><mml:math id="M11">
<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.Ex12"><mml:math id="M13">
<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>
<p>The Gantt chart are shown in <xref ref-type="fig" rid="F2">Figure 2</xref>.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption><p>The Gantt chart for the pilot problem by the EDD dispatching method.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="bijomrp-2026-38-g002.tif"/>
</fig>
</sec>
<sec id="S5">
<title>The GATS model for the pilot FSS problem</title>
<p>The pilot FSS problem is a NP hard problem with the size of the solution space of 10! or 3,628,800. The GATS model is used to solve the problem as follows:</p>
<sec id="S5.SS1">
<title>Step 1: Initialize the GATS model</title>
<p>This step sets up factors of GATS model, including the method of coding and all factors of the algorithm. Each chromosome is a string of 10 genes. Each gene corresponds to an order. The orders are numbered from 1 to 10. The sequence of genes represents the sequence of order scheduled:</p>
<disp-formula id="S5.Ex13"><mml:math id="M15">
<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:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>7</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>8</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>9</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x2062;</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>The factors of the algorithm for the pilot problem are 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 GATS factors for the pilot problem.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">Factors</td>
<td valign="top" align="left">Values</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Population size P</td>
<td valign="top" align="left">10</td>
</tr>
<tr>
<td valign="top" align="left">Fitness function F</td>
<td valign="top" align="left">F<sub><italic>i</italic></sub> = T<sub><italic>max</italic></sub> &#x2013; T<sub><italic>i</italic></sub></td>
</tr>
<tr>
<td valign="top" align="left">Selection method</td>
<td valign="top" align="left">Selection probability</td>
</tr>
<tr>
<td valign="top" align="left">Crossover probability Pc</td>
<td valign="top" align="left">0.6</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 probability Pm</td>
<td valign="top" align="left">0.2</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">Replacement method</td>
<td valign="top" align="left">Acceptance threshold</td>
</tr>
<tr>
<td valign="top" align="left">Threshold coefficient K</td>
<td valign="top" align="left">2</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">Iteration factor I</td>
<td valign="top" align="left">10</td>
</tr>
<tr>
<td valign="top" align="left">Number of run R</td>
<td valign="top" align="left">5</td>
</tr>
</tbody>
</table></table-wrap>
</sec>
<sec id="S5.SS2">
<title>Step 2: Generate the initial population P<sup>(0)</sup>, set k = 0</title>
<p>The initial population consists of 10 chromosomes. There are three chromosomes generated from three heuristic rules: EDD, SPT, and LPT. The remaining chromosomes R1, &#x2026;, R7 are randomly generated as shown in <xref ref-type="table" rid="T7">Table 7</xref>.</p>
<disp-formula id="S5.Ex14"><mml:math id="M16">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:none/>
<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>{</mml:mo>
<mml:mi>E</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>5</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>6</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>7</mml:mn>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<table-wrap position="float" id="T7">
<label>TABLE 7</label>
<caption><p>The initial population P<sup>(0)</sup>.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">P<sup>(0)</sup></td>
<td valign="top" align="left">G1</td>
<td valign="top" align="left">G2</td>
<td valign="top" align="left">G3</td>
<td valign="top" align="left">G4</td>
<td valign="top" align="left">G5</td>
<td valign="top" align="left">G6</td>
<td valign="top" align="left">G7</td>
<td valign="top" align="left">G8</td>
<td valign="top" align="left">G9</td>
<td valign="top" align="left">G10</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">EDD</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
</tr>
<tr>
<td valign="top" align="left">SPT</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
</tr>
<tr>
<td valign="top" align="left">LPT</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">8</td>
</tr>
<tr>
<td valign="top" align="left">R1</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
</tr>
<tr>
<td valign="top" align="left">R2</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
</tr>
<tr>
<td valign="top" align="left">R3</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
</tr>
<tr>
<td valign="top" align="left">R4</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
</tr>
<tr>
<td valign="top" align="left">R5</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">1</td>
</tr>
<tr>
<td valign="top" align="left">R6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">1</td>
</tr>
<tr>
<td valign="top" align="left">R7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">10</td>
</tr>
</tbody>
</table></table-wrap>
</sec>
<sec id="S5.SS3">
<title>Step 3: Generate elite population P<sub><italic>E</italic></sub><sup>(0)</sup></title>
<p>The step uses the selection operator to generate the elite population <bold>P<sub><italic>E</italic></sub><sup>(0)</sup></bold> from <bold>P<sup>(0)</sup>.</bold> Each chromosome in the current population has a corresponding fitness value F<sub><italic>i</italic></sub>, and is selected for inclusion in the elite population <bold>P<sub><italic>E</italic></sub><sup>(0)</sup></bold>, with selection probability P<sub><italic>i</italic></sub> determined as follows:</p>
<disp-formula id="S5.Ex15"><mml:math id="M17">
<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<sup>(0)</sup></bold>, the fitness values of F<sub><italic>i</italic></sub> and selection probabilities P<sub><italic>i</italic></sub> of chromosomes in P<sup>(0)</sup> are calculated as 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 values of F<sub><italic>i</italic></sub> and P<sub><italic>i</italic></sub><bold>.</bold></p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">P<sup>(0)</sup></td>
<td valign="top" align="left">Fi</td>
<td valign="top" align="left">Pi</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">EDD</td>
<td valign="top" align="left">1217.6710</td>
<td valign="top" align="left">0.1754</td>
</tr>
<tr>
<td valign="top" align="left">SPT</td>
<td valign="top" align="left">1210.7427</td>
<td valign="top" align="left">0.1744</td>
</tr>
<tr>
<td valign="top" align="left">LPT</td>
<td valign="top" align="left">1120.0530</td>
<td valign="top" align="left">0.1613</td>
</tr>
<tr>
<td valign="top" align="left">R1</td>
<td valign="top" align="left">1094.8691</td>
<td valign="top" align="left">0.1577</td>
</tr>
<tr>
<td valign="top" align="left">R2</td>
<td valign="top" align="left">986.0005</td>
<td valign="top" align="left">0.1420</td>
</tr>
<tr>
<td valign="top" align="left">R3</td>
<td valign="top" align="left">455.6409</td>
<td valign="top" align="left">0.0656</td>
</tr>
<tr>
<td valign="top" align="left">R4</td>
<td valign="top" align="left">315.4120</td>
<td valign="top" align="left">0.0454</td>
</tr>
<tr>
<td valign="top" align="left">R5</td>
<td valign="top" align="left">283.1211</td>
<td valign="top" align="left">0.0408</td>
</tr>
<tr>
<td valign="top" align="left">R6</td>
<td valign="top" align="left">260.3407</td>
<td valign="top" align="left">0.0375</td>
</tr>
<tr>
<td valign="top" align="left">R7</td>
<td valign="top" align="left">0.0000</td>
<td valign="top" align="left">0.0000</td>
</tr>
</tbody>
</table></table-wrap>
<p>Based on selection probabilities P<sub><italic>i</italic></sub>, 10 random numbers are generated, and the chromosomes selected into the population <bold>P<sub><italic>E</italic></sub><sup>(0)</sup></bold> are as follows:</p>
<disp-formula id="S5.Ex16"><mml:math id="M18">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:mi>E</mml:mi>
<mml:none/>
<mml:none/>
<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>{</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>E</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>E</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>5</mml:mn>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec id="S5.SS4">
<title>Step 4: Generate the genetic population P<sub><italic>G</italic></sub><sup>(0)</sup></title>
<p>The genetic population <bold>P<sub><italic>G</italic></sub><sup>(0)</sup></bold> includes the new chromosome generated from the crossover and mutation operators.</p>
<p>The chromosomes of <bold>P<sub><italic>E</italic></sub><sup>(0)</sup></bold>) are selected to be included in the crossover list <bold>P<sub><italic>c</italic></sub></bold> with the crossover probability of 0.6. After generating random numbers, the set <bold>P<sub><italic>c</italic></sub></bold> is determined as follows:</p>
<disp-formula id="S5.Ex17"><mml:math id="M19">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:mi>c</mml:mi>
<mml:none/>
</mml:mmultiscripts>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>R</mml:mi>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>E</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<p>Each pair of chromosomes in <bold>P<sub><italic>c</italic></sub></bold> is selected to cross over by the POX method, resulting in 12 new chromosomes in population <bold>P<italic><sup>C</sup></italic></bold> with corresponding fitness values 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 crossover population P<italic><sup>C</sup></italic>.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="center">P<italic><sup>C</sup></italic></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="center">C1</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">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">1245.02</td>
</tr>
<tr>
<td valign="top" align="center">C2</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">3</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">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">1156.34</td>
</tr>
<tr>
<td valign="top" align="center">C3</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">1083.70</td>
</tr>
<tr>
<td valign="top" align="center">C4</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">7</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">8</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">1080.84</td>
</tr>
<tr>
<td valign="top" align="center">C5</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">1</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">603.65</td>
</tr>
<tr>
<td valign="top" align="center">C6</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">8</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">9</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">553.08</td>
</tr>
<tr>
<td valign="top" align="center">C7</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">1104.16</td>
</tr>
<tr>
<td valign="top" align="center">C8</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">4</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">1069.54</td>
</tr>
<tr>
<td valign="top" align="center">C9</td>
<td valign="top" align="center">8</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">10</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">9</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">806.04</td>
</tr>
<tr>
<td valign="top" align="center">C10</td>
<td valign="top" align="center">6</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">3</td>
<td valign="top" align="center">9</td>
<td valign="top" align="center">2</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">4</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">611.50</td>
</tr>
<tr>
<td valign="top" align="center">C11</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">5</td>
<td valign="top" align="center">10</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">9</td>
<td valign="top" align="center">4</td>
<td valign="top" align="center">617.67</td>
</tr>
<tr>
<td valign="top" align="center">C12</td>
<td valign="top" align="center">10</td>
<td valign="top" align="center">7</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">9</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">8</td>
<td valign="top" align="center">5</td>
<td valign="top" align="center">941.70</td>
</tr>
</tbody>
</table></table-wrap>
<p>The chromosomes of <bold>P<sub><italic>E</italic></sub><sup>(0)</sup></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, <bold>P<sub><italic>m</italic></sub></bold> is determined as follows:</p>
<disp-formula id="S5.Ex18"><mml:math id="M20">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:mi>m</mml:mi>
<mml:none/>
</mml:mmultiscripts>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>E</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>}</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 one new chromosome in population <bold>P<italic><sup>M</sup></italic></bold> as shown in <xref ref-type="table" rid="T10">Table 10</xref>.</p>
<table-wrap position="float" id="T10">
<label>TABLE 10</label>
<caption><p>The mutation 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<italic><sup>M</sup></italic></td>
<td valign="top" align="left">G1</td>
<td valign="top" align="left">G2</td>
<td valign="top" align="left">G3</td>
<td valign="top" align="left">G4</td>
<td valign="top" align="left">G5</td>
<td valign="top" align="left">G6</td>
<td valign="top" align="left">G7</td>
<td valign="top" align="left">G8</td>
<td valign="top" align="left">G9</td>
<td valign="top" align="left">G10</td>
<td valign="top" align="left">Fi</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">M1</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1030.69</td>
</tr>
</tbody>
</table></table-wrap>
<p>After crossover and mutation, 13 new chromosomes are created in the population <bold>P<sub><italic>G</italic></sub><sup>(0)</sup>:</bold></p>
<disp-formula id="S5.Ex19"><mml:math id="M21">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>G</mml:mi>
</mml:msub>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:none/>
<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>{</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:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex20"><mml:math id="M23">
<mml:mrow>
<mml:mi mathvariant="normal">&#x2003;</mml:mi>
<mml:mo separator="true">&#x2003;&#x2003;&#x2003;&#x2003;</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: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>}</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
</sec>
<sec id="S5.SS5">
<title>Step 5: Generate the neighborhood population P<sub><italic>N</italic></sub><sup>(0)</sup></title>
<p>This step uses the neighborhood operator to generate the neighborhood population <bold>P<sub><italic>N</italic></sub><sup>(0)</sup></bold> from the genetic population <bold>P<sub><italic>G</italic></sub><sup>(0)</sup>.</bold> Each chromosome in <bold>P<sub><italic>G</italic></sub><sup>(0)</sup></bold> will have a neighborhood defined by the neighborhood operator. In this neighborhood, the best chromosome will be selected to go forward. For example, with C1, there are nine neighboring chromosomes, of which C11 is the best and is chosen, as shown in <xref ref-type="table" rid="T11">Table 11</xref>.</p>
<table-wrap position="float" id="T11">
<label>TABLE 11</label>
<caption><p>The neighboring chromosomes of C1.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left">G1</td>
<td valign="top" align="left">G2</td>
<td valign="top" align="left">G3</td>
<td valign="top" align="left">G4</td>
<td valign="top" align="left">G5</td>
<td valign="top" align="left">G6</td>
<td valign="top" align="left">G7</td>
<td valign="top" align="left">G8</td>
<td valign="top" align="left">G9</td>
<td valign="top" align="left">G10</td>
<td valign="top" align="left">Fi</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">C1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1245.02</td>
</tr>
<tr>
<td valign="top" align="left">C11 (N1)</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1285.22</td>
</tr>
<tr>
<td valign="top" align="left">C12</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1282.16</td>
</tr>
<tr>
<td valign="top" align="left">C13</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1259.76</td>
</tr>
<tr>
<td valign="top" align="left">C14</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1268.09</td>
</tr>
<tr>
<td valign="top" align="left">C15</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1212.12</td>
</tr>
<tr>
<td valign="top" align="left">C16</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1248.52</td>
</tr>
<tr>
<td valign="top" align="left">C17</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1265.44</td>
</tr>
<tr>
<td valign="top" align="left">C18</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1228.27</td>
</tr>
<tr>
<td valign="top" align="left">C19</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">1205.94</td>
</tr>
</tbody>
</table></table-wrap>
<p>Same for the remaining chromosomes of <bold>P<sub><italic>G</italic></sub><sup>(0)</sup>.</bold> The neighborhood population <bold>P<sub><italic>N</italic></sub><sup>(0)</sup></bold> consists of the best neighbor chromosomes, as defined in <xref ref-type="table" rid="T12">Table 12</xref>.</p>
<disp-formula id="S5.Ex21"><mml:math id="M25">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:mi>N</mml:mi>
<mml:none/>
<mml:none/>
<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>{</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>,</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex22"><mml:math id="M27">
<mml:mrow>
<mml:mi mathvariant="normal">&#x2003;</mml:mi>
<mml:mo separator="true">&#x2003;&#x2003;&#x2003;</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>10</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>11</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>12</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>13</mml:mn>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<table-wrap position="float" id="T12">
<label>TABLE 12</label>
<caption><p>The neighborhood population P<sub><italic>N</italic></sub><sup>(0)</sup>.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">P<sub><italic>N</italic></sub><sup>(0)</sup></td>
<td valign="top" align="left">G1</td>
<td valign="top" align="left">G2</td>
<td valign="top" align="left">G3</td>
<td valign="top" align="left">G4</td>
<td valign="top" align="left">G5</td>
<td valign="top" align="left">G6</td>
<td valign="top" align="left">G7</td>
<td valign="top" align="left">G8</td>
<td valign="top" align="left">G9</td>
<td valign="top" align="left">G10</td>
<td valign="top" align="left">Fi</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">N1</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1285.22</td>
</tr>
<tr>
<td valign="top" align="left">N2</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">1196.64</td>
</tr>
<tr>
<td valign="top" align="left">N3</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">1085.44</td>
</tr>
<tr>
<td valign="top" align="left">N4</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1158.11</td>
</tr>
<tr>
<td valign="top" align="left">N5</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">707.71</td>
</tr>
<tr>
<td valign="top" align="left">N6</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">652.32</td>
</tr>
<tr>
<td valign="top" align="left">N7</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1118.06</td>
</tr>
<tr>
<td valign="top" align="left">N8</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">1088.80</td>
</tr>
<tr>
<td valign="top" align="left">N9</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">879.98</td>
</tr>
<tr>
<td valign="top" align="left">N10</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">659.86</td>
</tr>
<tr>
<td valign="top" align="left">N11</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">657.54</td>
</tr>
<tr>
<td valign="top" align="left">N12</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">996.89</td>
</tr>
<tr>
<td valign="top" align="left">N13</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">1070.62</td>
</tr>
</tbody>
</table></table-wrap>
</sec>
<sec id="S5.SS6">
<title>Step 6. Generate the next population P<sup>(1)</sup></title>
<p>This step uses the replacement operator to generate the next population <bold>P<sup>(1)</sup></bold> from the populations <bold>P<sub><italic>G</italic></sub><sup>(0)</sup></bold> and <bold>P<sub><italic>N</italic></sub><sup>(0)</sup>.</bold> The chromosomes from <bold>P<sub><italic>G</italic></sub><sup>(0)</sup></bold> and <bold>P<sub><italic>N</italic></sub><sup>(0)</sup></bold> will be added to the current population <bold>P<sup>(0)</sup></bold> to make the next population <bold>P<sup>(1)</sup></bold>, if their fitness values exceed the acceptable threshold. With the threshold coefficient K of 2 and the population size P of 10, the acceptable threshold is the fitness value of the 5th chromosome of <bold>P<sup>(0)</sup></bold> in the ranking.</p>
<p>To keep the next population size constant, the chromosomes with the lowest value are removed from the next population. After applying the replacement operator, the next population <bold>P<sup>(1)</sup></bold> is determined as in <xref ref-type="table" rid="T13">Table 13</xref>.</p>
<disp-formula id="S5.Ex23"><mml:math id="M29">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mmultiscripts>
<mml:mo rspace="5.8pt">=</mml:mo>
<mml:mprescripts/>
<mml:none/>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mmultiscripts>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>E</mml:mi>
<mml:mi>D</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<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>4</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mn>7</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>C</mml:mi>
<mml:mn>7</mml:mn>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<table-wrap position="float" id="T13">
<label>TABLE 13</label>
<caption><p>The next population P<sup>(1)</sup>.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">P<sup>(1)</sup></td>
<td valign="top" align="left">G1</td>
<td valign="top" align="left">G2</td>
<td valign="top" align="left">G3</td>
<td valign="top" align="left">G4</td>
<td valign="top" align="left">G5</td>
<td valign="top" align="left">G6</td>
<td valign="top" align="left">G7</td>
<td valign="top" align="left">G8</td>
<td valign="top" align="left">G9</td>
<td valign="top" align="left">G10</td>
<td valign="top" align="left">Fi</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">N1</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1285.22</td>
</tr>
<tr>
<td valign="top" align="left">C1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1245.02</td>
</tr>
<tr>
<td valign="top" align="left">EDD</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1217.67</td>
</tr>
<tr>
<td valign="top" align="left">SPT</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1210.74</td>
</tr>
<tr>
<td valign="top" align="left">N2</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">1196.63</td>
</tr>
<tr>
<td valign="top" align="left">N4</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1158.11</td>
</tr>
<tr>
<td valign="top" align="left">C2</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">1156.34</td>
</tr>
<tr>
<td valign="top" align="left">LPT</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">1120.05</td>
</tr>
<tr>
<td valign="top" align="left">N7</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1118.06</td>
</tr>
<tr>
<td valign="top" align="left">C7</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">1104.16</td>
</tr>
</tbody>
</table></table-wrap>
</sec>
<sec id="S5.SS7">
<title>Step 7. Check the termination rule</title>
<p>After iteration 1, N1 is the best chromosome with the best fitness value of 1285.22 and the best objective value of 148.40, appearing only once. The termination rule is not satisfied, so iteration 2 is executed. The results after 14 iterations are shown in <xref ref-type="table" rid="T14">Table 14</xref>.</p>
<table-wrap position="float" id="T14">
<label>TABLE 14</label>
<caption><p>The results after 14 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="left">G1</td>
<td valign="top" align="left">G2</td>
<td valign="top" align="left">G3</td>
<td valign="top" align="left">G4</td>
<td valign="top" align="left">G5</td>
<td valign="top" align="left">G6</td>
<td valign="top" align="left">G7</td>
<td valign="top" align="left">G8</td>
<td valign="top" align="left">G9</td>
<td valign="top" align="left">G10</td>
<td valign="top" align="left">Tbest</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">0</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">215.95</td>
</tr>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">148.40</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">141.62</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">141.62</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">126.43</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">123.07</td>
</tr>
<tr>
<td valign="top" align="left">&#x2026;</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">123.07</td>
</tr>
<tr>
<td valign="top" align="left">14</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">123.07</td>
</tr>
</tbody>
</table></table-wrap>
<p>Seeing that from the 5th iteration to the 14th iteration, the best objective value remains the same, the termination rule is satisfied, and the run ends. The scheduling result in this run is as follows:</p>
<disp-formula id="S5.Ex24"><mml:math id="M30">
<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>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:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex25"><mml:math id="M32">
<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>123.07</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>Step 8. Run the algorithm for five 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="T15">Table 15</xref>.</p>
<table-wrap position="float" id="T15">
<label>TABLE 15</label>
<caption><p>The results after four 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="left">G1</td>
<td valign="top" align="left">G2</td>
<td valign="top" align="left">G3</td>
<td valign="top" align="left">G4</td>
<td valign="top" align="left">G5</td>
<td valign="top" align="left">G6</td>
<td valign="top" align="left">G7</td>
<td valign="top" align="left">G8</td>
<td valign="top" align="left">G9</td>
<td valign="top" align="left">G10</td>
<td valign="top" align="left">Tbest</td>
<td valign="top" align="left">n</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">123.07</td>
<td valign="top" align="left">14</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">126.43</td>
<td valign="top" align="left">17</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">123.07</td>
<td valign="top" align="left">14</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">123.07</td>
<td valign="top" align="left">16</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="left">1</td>
<td valign="top" align="left">3</td>
<td valign="top" align="left">2</td>
<td valign="top" align="left">4</td>
<td valign="top" align="left">5</td>
<td valign="top" align="left">10</td>
<td valign="top" align="left">8</td>
<td valign="top" align="left">7</td>
<td valign="top" align="left">9</td>
<td valign="top" align="left">6</td>
<td valign="top" align="left">123.07</td>
<td valign="top" align="left">19</td>
</tr>
</tbody>
</table></table-wrap>
<p>The best scheduling result is found on the 1st run, with a number of iterations n of 14. The sequence of dispatching S, the value of the objective function, and the Gantt chart are as follows:</p>
<disp-formula id="S5.Ex26"><mml:math id="M34">
<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>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:mo>;</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S5.Ex27"><mml:math id="M36">
<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>123.07</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>
<p>Comparing to the currently used dispatching method, EDD, the value of the objective function T has been improved, reduced from 215.95 (h) to 123.07 (h).</p>
</sec>
</sec>
<sec id="S6">
<title>The GATS model for the real FSS problem</title>
<p>The real problem to be solved is a FSS problem with 120 orders, scheduling on four machines. Each order has three parts, P1, P2, and P3, processed in eight operations, distributed on the four machines as in <xref ref-type="fig" rid="F1">Figure 1</xref>. 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, 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>ijk</italic></sub>, i = 1&#x00F7;120, j = 1&#x00F7;8, k = 1&#x00F7;120.</p>
<p>The company is currently using the EDD dispatching method. The total weighted tardiness time T and the number of late delivery orders N of the real size problem are as follows:</p>
<disp-formula id="S6.Ex28"><mml:math id="M38">
<mml:mrow>
<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:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S6.Ex29"><mml:math id="M40">
<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 GATS model has been coded on the Python platform and applied to solve the real problem. The real problem size is larger than the pilot problem size, so some factors of the GATS model have been changed to suit the real problem. The parameters or factors of the GATS model for the real problem are as in <xref ref-type="table" rid="T16">Table 16</xref>.</p>
<table-wrap position="float" id="T16">
<label>TABLE 16</label>
<caption><p>The GATS factors for the real problem.</p></caption>
<table cellspacing="5" cellpadding="5" frame="hsides" rules="groups">
<thead>
<tr>
<td valign="top" align="left">Factors</td>
<td valign="top" align="left">Values</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Population size P</td>
<td valign="top" align="left">25</td>
</tr>
<tr>
<td valign="top" align="left">Selection method</td>
<td valign="top" align="left">Selection probability</td>
</tr>
<tr>
<td valign="top" align="left">Crossover probability Pc</td>
<td valign="top" align="left">0.8</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 probability Pm</td>
<td valign="top" align="left">0.2</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">Replacement method</td>
<td valign="top" align="left">Acceptance threshold</td>
</tr>
<tr>
<td valign="top" align="left">Threshold coefficient K</td>
<td valign="top" align="left">2</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">Iteration factor I</td>
<td valign="top" align="left">10</td>
</tr>
<tr>
<td valign="top" align="left">Number of run R</td>
<td valign="top" align="left">5</td>
</tr>
</tbody>
</table></table-wrap>
<p>The sequence of the order to be scheduled by the GATS model is as follows: [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, 43, 83, 79, 20, 81, 84, 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]. The Gantt chart is shown in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption><p>The Gantt chart by the GATS model.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="bijomrp-2026-38-g003.tif"/>
</fig>
<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.Ex30"><mml:math id="M42">
<mml:mrow>
<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>277.50</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:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="S6.Ex31"><mml:math id="M44">
<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 been decreased by 21% from 354.95 (h) to 277.50 (h). The number of late delivery orders N has been 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 GATS algorithm is developed. In the algorithm, GA is used as the platform for global search, and TS is used to support GA in local search. GA diversifies the search by exploring the search space, and TS intensifies the search by exploiting the best solutions found. GA generates the elite population and generates genetic populations from the elite population by using GA operators. Then TS generates the neighborhood population from the genetic population by using neighborhood operators. Finally, GA generates the next population from the current population, the elite population, and the neighborhood population by using replacement operators.</p>
<p>Based on the model of the problem, the GATS algorithm is used to solve the pilot problem of small size, with 10 orders, scheduling on four machines. The total weighted tardiness time according to the algorithm (123.07 h) is better than the total weighted tardiness time according to the EDD heuristic currently used (215.95 h).</p>
<p>The algorithm is also used to solve the real FSS problem with 120 jobs on four machines. The results show that the algorithm gives better results than the current heuristic EDD method. The total weighted tardiness time T has been decreased by 21% from 354.95 (h) to 277.50 (h). The number of late delivery orders N has been decreased from 31 to 5.</p>
<p>However, the factors of the model, including the population size P, the crossover probability P<sub><italic>c</italic></sub>, the mutation probability P<sub><italic>m</italic></sub>, the method of crossover, of mutation, the method of finding the neighborhood chromosomes, the method and parameter of the termination rule, etc., are only selected empirically, so the results are not very good. Future research is to use experimental design DOE to optimize the model factors to get suboptimal results.</p>
</sec>
</body>
<back>
<sec id="S8" sec-type="funding-information">
<title>Funding</title>
<p>The authors declare that no financial support was received for the research, authorship, and/or publication of this article.</p>
</sec>
<sec id="S9">
<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>
<ref-list>
<title>References</title>
<ref id="B1"><label>1.</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="B2"><label>2.</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.</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="B3"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Phong</surname> <given-names>NN</given-names></name> <name><surname>Ngan</surname> <given-names>K</given-names></name> <name><surname>Thi</surname> <given-names>N</given-names></name> <name><surname>Huyen</surname> <given-names>T</given-names></name> <name><surname>Thi</surname> <given-names>TV</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>) <volume>3</volume>(<issue>1</issue>):<fpage>19</fpage>&#x2013;<lpage>26</lpage>. <pub-id pub-id-type="doi">10.54646/bijomrp.2024.24</pub-id></citation></ref>
<ref id="B4"><label>4.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pezzella</surname> <given-names>F</given-names></name> <name><surname>Morganti</surname> <given-names>G</given-names></name> <name><surname>Ciaschetti</surname> <given-names>G</given-names></name></person-group>. <article-title>A genetic algorithm for the Flexible Job-shop Scheduling Problem.</article-title> <source><italic>Comp Oper. Res.</italic></source> (<year>2007</year>) <volume>35</volume>:<fpage>3202</fpage>&#x2013;<lpage>12</lpage>.</citation></ref>
<ref id="B5"><label>5.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gupta</surname> <given-names>J</given-names></name> <name><surname>Palanimuthu</surname> <given-names>N</given-names></name> <name><surname>Chen</surname> <given-names>C-L</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="B6"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Phong</surname> <given-names>NN</given-names></name> <name><surname>Nhi</surname> <given-names>T</given-names></name> <name><surname>Thi</surname> <given-names>N</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>) <volume>3</volume>(<issue>1</issue>):<fpage>1</fpage>&#x2013;<lpage>7</lpage>. <pub-id pub-id-type="doi">10.54646/bijomrp.2024.22</pub-id></citation></ref>
<ref id="B7"><label>7.</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>Sci J Logist.</italic></source> (<year>2019</year>):<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="B8"><label>8.</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 Inform Sci.</italic></source> (<year>2022</year>) <volume>34</volume>:<fpage>7459</fpage>&#x2013;<lpage>67</lpage>. <pub-id pub-id-type="doi">10.1016/j.jksuci.2021.08.025</pub-id></citation></ref>
<ref id="B9"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ben-Daya</surname> <given-names>M</given-names></name> <name><surname>Al-Fawzan</surname> <given-names>M</given-names></name></person-group>. <article-title>A tabu search approach for the flow shop scheduling problem.</article-title> <source><italic>Eur J Oper Res.</italic></source> (<year>1997</year>) <volume>09</volume>:<fpage>88</fpage>&#x2013;<lpage>95</lpage>.</citation></ref>
<ref id="B10"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Phong</surname> <given-names>NN</given-names></name> <name><surname>Ngan</surname> <given-names>K</given-names></name> <name><surname>Thi</surname> <given-names>N</given-names></name></person-group>. <article-title>Application of GATS, 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>Ho Chi Minh City University of Technology, VNU-HCM</publisher-name> (<year>2023</year>).</citation></ref>
<ref id="B11"><label>11.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Phong</surname> <given-names>NN</given-names></name> <name><surname>Nhi</surname> <given-names>T</given-names></name> <name><surname>Thi</surname> <given-names>N</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>Ho Chi Minh City University of Technology, VNU-HCM</publisher-name> (<year>2023</year>).</citation></ref>
<ref id="B12"><label>12.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Phong</surname> <given-names>NN</given-names></name> <name><surname>Trang</surname> <given-names>T</given-names></name> <name><surname>Le</surname> <given-names>N</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>) <volume>2</volume>(<issue>1</issue>):<fpage>28</fpage>&#x2013;<lpage>35</lpage>. <pub-id pub-id-type="doi">10.54646/bijomrp.2023.14</pub-id></citation></ref>
</ref-list>
</back>
</article>
