<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">IASC</journal-id>
<journal-id journal-id-type="nlm-ta">IASC</journal-id>
<journal-id journal-id-type="publisher-id">IASC</journal-id>
<journal-title-group>
<journal-title>Intelligent Automation &#x0026; Soft Computing</journal-title>
</journal-title-group>
<issn pub-type="epub">2326-005X</issn>
<issn pub-type="ppub">1079-8587</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">15708</article-id>
<article-id pub-id-type="doi">10.32604/iasc.2021.015708</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Automatic PSO Based Path Generation Technique for Data Flow Coverage</article-title><alt-title alt-title-type="left-running-head">Automatic PSO Based Path Generation Technique for Data Flow Coverage</alt-title><alt-title alt-title-type="right-running-head">Automatic PSO Based Path Generation Technique for Data Flow Coverage</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author" corresp="yes">
<name name-style="western">
<surname>Ghiduk</surname>
<given-names>Ahmed S.</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
<email>asaghiduk@tu.edu.sa</email>
</contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western">
<surname>Girgis</surname>
<given-names>Moheb R.</given-names>
</name>
<xref ref-type="aff" rid="aff-3">3</xref>
</contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western">
<surname>Hassan</surname>
<given-names>Eman</given-names>
</name>
<xref ref-type="aff" rid="aff-2">2</xref>
<xref ref-type="aff" rid="aff-4">4</xref>
</contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western">
<surname>Aljahdali</surname>
<given-names>Sultan</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<aff id="aff-1">
<label>1</label><institution>College of Computers and Information Technology, Taif University</institution>,<addr-line>PO BOX 11099, Taif, 21944</addr-line>,<country>Saudi Arabia</country></aff>
<aff id="aff-2">
<label>2</label><institution>Dept. of Mathematics and Computer Science, Faculty of Science, Beni-Suef University</institution>,<addr-line>Beni-Suef, 62521</addr-line>,<country>Egypt</country></aff>
<aff id="aff-3">
<label>3</label><institution>Dept. of Computer Science, Faculty of Science, Minia University</institution>,<addr-line>Minia</addr-line>,<country>Egypt</country></aff>
<aff id="aff-4">
<label>4</label><institution>Faculty of Computing and IT, Northern Border University</institution>,<country>Saudi Arabia</country></aff>
</contrib-group><author-notes><corresp id="cor1">&#x002A;Corresponding Author: Ahmed S. Ghiduk. Email: 
<email>asaghiduk@tu.edu.sa</email></corresp></author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2021-03-11">
<day>11</day>
<month>03</month>
<year iso-8601-date="2021">2021</year>
</pub-date>
<volume>29</volume>
<issue>1</issue>
<fpage>147</fpage>
<lpage>164</lpage>
<history>
<date date-type="received">
<day>03</day>
<month>12</month>
<year iso-8601-date="2020">2020</year>
</date>
<date date-type="accepted">
<day>06</day>
<month>3</month>
<year iso-8601-date="2021">2021</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2021 Ghiduk et al.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Ghiduk et al.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a<ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_IASC_15708.pdf"></self-uri>
<abstract>
<p>Path-based testing involves two main steps: 1) finding all paths throughout the code under test; 2) creating a test suite to cover these paths. Unfortunately, covering all paths in the code under test is impossible. Path-based testing could be achieved by targeting a subset of all feasible paths that satisfy a given testing criterion. Then, a test suite is created to execute this paths subset. Generating those paths is a key problem in path testing. In this paper, a new path testing technique is presented. This technique employs Particle Swarm Optimization (PSO) for generating a set of paths to satisfy the all-uses criterion. To construct such paths for programs with loops, the proposed technique applies the ZOT-criterion. This criterion selects paths that traverse loops 0, 1, and 2 times. The proposed technique utilizes the decision-decision graph of the program under test to represent the position vector of the particle. To evaluate the efficiency of the presented technique, an empirical study has been conducted, which included 15 C# programs. In this study, the proposed technique has been compared with a genetic algorithm (GA)-based one. The results showed that the PSO required 199 generations, while the GA required 349 generations, to satisfy all def-use paths of all programs. In addition, the proposed technique required a smaller number of paths than the GA-based one.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Data flow testing</kwd>
<kwd>genetic algorithm</kwd>
<kwd>path testing</kwd>
<kwd>particle swarm optimization</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>Path testing requires executing each path in the code under test at least once. However, executing all paths is impossible as a program with loops may include an infinite number of paths. This issue may be addressed by using a subset of all executable paths that satisfy a given path selection criterion. Finding this subset of paths is a significant challenge in path testing.</p>
<p>Scholars presented many path-generation approaches. Bertolino and Marre [<xref ref-type="bibr" rid="ref-1">1</xref>] presented a technique constructing a set of paths that satisfy all arcs of the tested program control-flow graph. Other studies have concentrated on generating the set of basis paths (i.e., the class of all linearly independent paths) [<xref ref-type="bibr" rid="ref-2">2</xref>&#x2013;<xref ref-type="bibr" rid="ref-8">8</xref>]. The number of the basis paths can be estimated by the Cyclomatic Complexity [<xref ref-type="bibr" rid="ref-2">2</xref>] of the code under test.</p>
<p>Particle Swarm Optimization (PSO) is an evolutionary search-based technique proposed in 1995 by Kennedy and Eberhart [<xref ref-type="bibr" rid="ref-9">9</xref>]. PSO simulates the behavior of animal species that live in large colonies such as bird flocks and fish schools [<xref ref-type="bibr" rid="ref-9">9</xref>,<xref ref-type="bibr" rid="ref-10">10</xref>]. PSO was used for the first time to solve the traveling salesman problem [<xref ref-type="bibr" rid="ref-11">11</xref>]. PSO [<xref ref-type="bibr" rid="ref-12">12</xref>&#x2013;<xref ref-type="bibr" rid="ref-17">17</xref>], Adaptive Random [<xref ref-type="bibr" rid="ref-18">18</xref>], and Genetic Algorithms (GAs) [<xref ref-type="bibr" rid="ref-19">19</xref>&#x2013;<xref ref-type="bibr" rid="ref-21">21</xref>] have been applied in many software testing activities such as test data generation. GAs [<xref ref-type="bibr" rid="ref-8">8</xref>,<xref ref-type="bibr" rid="ref-22">22</xref>&#x2013;<xref ref-type="bibr" rid="ref-25">25</xref>], Tabu Search Algorithm [<xref ref-type="bibr" rid="ref-23">23</xref>,<xref ref-type="bibr" rid="ref-26">26</xref>&#x2013;<xref ref-type="bibr" rid="ref-31">31</xref>], State-based meta-heuristic Algorithm [<xref ref-type="bibr" rid="ref-32">32</xref>], and Clustering and Code Change Algorithm [<xref ref-type="bibr" rid="ref-33">33</xref>&#x2013;<xref ref-type="bibr" rid="ref-35">35</xref>], have been used to find test paths. According to the best of our knowledge, there is not any scientific work that applies PSO in test paths generation.</p>
<p>This paper introduces a path testing approach that utilizes PSO for finding the paths required to cover the all-uses criterion proposed by Rapps and Weyuker [<xref ref-type="bibr" rid="ref-36">36</xref>]. The presented technique accomplishes this process by creating new paths using the formerly promising ones. The approach uses a criterion called ZOT-criterion to construct paths for programs with loops [<xref ref-type="bibr" rid="ref-37">37</xref>]. This criterion targets paths that traverse loops 0, 1, and 2 times. The approach also uses the edges of the decision-decision graph (dd-graph) of the code under test for encoding the position vector. The approach encodes the position vector of any particle as an integer array. The paper presented an experimental comparison between the proposed approach and a GA-based one. This comparison considered two main factors: 1) the number of generations required to find a path-cover for all def-use criterion, and 2) the size of this path-cover.</p>
<p>The rest of this paper is organized as follows. Section 2 presents a description of data-flow concepts. Section 3 discusses the basic PSO algorithm. Section 4 presents the proposed POS algorithm. Section 5 introduces the proposed PSO-based approach. Section 6 discusses the findings of the experimental study carried out to evaluate the proposed technique. Finally, Section 7 summarizes this work and gives some points for future work.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Data-Flow Concepts</title>
<p>Data-flow concepts consider the relations between the definitions (def) and references (use) of the variables in the program under test. Data-flow methods employ the control-flow graph of the program to find the relations between defs and uses.</p>
<p>The control flow of a program may be represented by a directed graph, named the control-flow graph (CFG). A CFG consists of a group of vertices and a group of arcs (edges). Each vertex represents one statement or a group of consecutive statements. Each arc represents a potential transfer of control flow between vertices. A path in a CFG is a finite sequence of vertices linked by arcs. A complete path is a path that starts at the entry vertex and ends at the exit vertex of the CFG. A path is called a def-clear path for a variable if it does not include a new definition for that variable.</p>
<p>The proposed approach uses a reduced form of the CFG, named a decision-decision graph (dd-graph). In a dd-graph, every arc is a decision-to-decision path (dd-path). <xref ref-type="fig" rid="fig-3">Fig. 3</xref> shows the dd-graph that corresponds to the CFG (shown in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>) of the C# code given in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>. <xref ref-type="table" rid="table-1">Tab. 1</xref> presents the dd-paths, which match the arcs of the dd-graph shown in <xref ref-type="fig" rid="fig-3">Fig. 3</xref>.</p>
<p>Rapps and Weyuker [<xref ref-type="bibr" rid="ref-32">32</xref>] presented a set of dataflow testing criteria, such as the all-uses criterion. All-uses criterion requires the execution of a def-clear path from each def of a variable to each use of that variable. The required def-clear paths to fulfil the all-uses criterion are named def-use paths. Def-use paths are built using the def-use associations of program variables by the method presented by Girgis [<xref ref-type="bibr" rid="ref-38">38</xref>]. <xref ref-type="table" rid="table-2">Tab. 2</xref> presents all def-use associations of the C# code given in <xref ref-type="fig" rid="fig-1">Fig. 1</xref> and their killing nodes. Killing nodes are those nodes that must not be included in a def-use path of a variable (i.e., nodes that contain other definitions for that variable).</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>C# example code</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-1.png"/>
</fig>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>CFG of the main class of the C# example code</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-2.png"/>
</fig>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>dd-graph for the main class of the example code</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-3.png"/>
</fig>
</sec>
<sec id="s3">
<label>3</label>
<title>Particle Swarm Optimization</title>
<p>PSO is a search-based optimization algorithm that is inspired by the motion and intelligence of flocks of animals. PSO employs the concept of social interaction to solve the given problem. A comprehensive survey of PSO applications was presented by Sengupta et al. [<xref ref-type="bibr" rid="ref-39">39</xref>]. PSO concepts are based on the motion of a set of particles in the search domain to find the best solution. Every particle is handled as a single node in an N-dimensional domain. Every particle regulates its &#x201C;flying&#x201D; based on its personal &#x201C;flying experience&#x201D; and the &#x201C;flying experience&#x201D; of the others.</p>
<p>Each particle has a fitness value estimated using a fitness function and velocities. PSO has two changeable variables:<list list-type="order"><list-item>
<p>pbest (personal best): saves the coordinates of the best position of the current particle in the solution domain. This position corresponds to the greatest solution achieved up to now by the particle.</p></list-item><list-item>
<p>gbest (global best): is the greatest value achieved up to now by any particle inside the neighborhood of the current particle.</p></list-item></list></p>
<p>Every particle attempts to adjust its position based on four factors: 1) the present place; 2) the present velocity; 3) the distance from the present place to pbest; and 4) the distance between the present place and gbest. The PSO steps are demonstrated below.</p>
<p>At first, the initial position and the initial velocity of each particle are randomly assigned. Then, the fitness function of each particle is calculated and compared to the fitness value of the pbest location. If the present location has a fitness value greater than the pbest, then the present location becomes the new pbest. The greatest value of all pbests becomes the gbest. The position and velocity of each particle in the swarm are modified based on this gbest. The overall procedure is repeated until a specific number of generations (mGens) is reached.</p>

<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>The edges of the dd-graph shown in <xref ref-type="fig" rid="fig-2">Fig. 2</xref> and the corresponding dd-paths</title>
</caption>
<!--<alternatives><graphic mimetype="image" mime-subtype="png" xlink:href="table-1.png"/>-->
<table>
<colgroup>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th><inline-formula id="ieqn-1">
<!--<alternatives><inline-graphic xlink:href="ieqn-1.tif"/><tex-math id="tex-ieqn-1"><![CDATA[Edge]]></tex-math>--><mml:math id="mml-ieqn-1"><mml:mi>E</mml:mi><mml:mi>d</mml:mi><mml:mi>g</mml:mi><mml:mi>e</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
<th><inline-formula id="ieqn-2">
<!--<alternatives><inline-graphic xlink:href="ieqn-2.tif"/><tex-math id="tex-ieqn-2"><![CDATA[dd - Path]]></tex-math>--><mml:math id="mml-ieqn-2"><mml:mi>d</mml:mi><mml:mi>d</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>P</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>h</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-3">
<!--<alternatives><inline-graphic xlink:href="ieqn-3.tif"/><tex-math id="tex-ieqn-3"><![CDATA[{e_1}]]></tex-math>--><mml:math id="mml-ieqn-3"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-4">
<!--<alternatives><inline-graphic xlink:href="ieqn-4.tif"/><tex-math id="tex-ieqn-4"><![CDATA[5\; 6\; 7\; 8\; 9\; 10]]></tex-math>--><mml:math id="mml-ieqn-4"><mml:mn>5</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>6</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>7</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>8</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>9</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>10</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-5">
<!--<alternatives><inline-graphic xlink:href="ieqn-5.tif"/><tex-math id="tex-ieqn-5"><![CDATA[{e_2}]]></tex-math>--><mml:math id="mml-ieqn-5"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-6">
<!--<alternatives><inline-graphic xlink:href="ieqn-6.tif"/><tex-math id="tex-ieqn-6"><![CDATA[10\; 14\; 15\; 16\; 17\; 18]]></tex-math>--><mml:math id="mml-ieqn-6"><mml:mn>10</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>14</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>15</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>16</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>17</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-7">
<!--<alternatives><inline-graphic xlink:href="ieqn-7.tif"/><tex-math id="tex-ieqn-7"><![CDATA[{e_3}]]></tex-math>--><mml:math id="mml-ieqn-7"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-8">
<!--<alternatives><inline-graphic xlink:href="ieqn-8.tif"/><tex-math id="tex-ieqn-8"><![CDATA[10\; 11\; 12\; 13\; 18]]></tex-math>--><mml:math id="mml-ieqn-8"><mml:mn>10</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>11</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>12</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>13</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-9">
<!--<alternatives><inline-graphic xlink:href="ieqn-9.tif"/><tex-math id="tex-ieqn-9"><![CDATA[{e_4}]]></tex-math>--><mml:math id="mml-ieqn-9"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-10">
<!--<alternatives><inline-graphic xlink:href="ieqn-10.tif"/><tex-math id="tex-ieqn-10"><![CDATA[18\; 19]]></tex-math>--><mml:math id="mml-ieqn-10"><mml:mn>18</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>19</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-11">
<!--<alternatives><inline-graphic xlink:href="ieqn-11.tif"/><tex-math id="tex-ieqn-11"><![CDATA[{e_5}]]></tex-math>--><mml:math id="mml-ieqn-11"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-12">
<!--<alternatives><inline-graphic xlink:href="ieqn-12.tif"/><tex-math id="tex-ieqn-12"><![CDATA[19\; 31\; 32]]></tex-math>--><mml:math id="mml-ieqn-12"><mml:mn>19</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>31</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>32</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-13">
<!--<alternatives><inline-graphic xlink:href="ieqn-13.tif"/><tex-math id="tex-ieqn-13"><![CDATA[{e_6}]]></tex-math>--><mml:math id="mml-ieqn-13"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-14">
<!--<alternatives><inline-graphic xlink:href="ieqn-14.tif"/><tex-math id="tex-ieqn-14"><![CDATA[19\; 20\; 21]]></tex-math>--><mml:math id="mml-ieqn-14"><mml:mn>19</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>20</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>21</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-15">
<!--<alternatives><inline-graphic xlink:href="ieqn-15.tif"/><tex-math id="tex-ieqn-15"><![CDATA[{e_7}]]></tex-math>--><mml:math id="mml-ieqn-15"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>7</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-16">
<!--<alternatives><inline-graphic xlink:href="ieqn-16.tif"/><tex-math id="tex-ieqn-16"><![CDATA[21\; 25\; 26\; 27\; 28\; 29]]></tex-math>--><mml:math id="mml-ieqn-16"><mml:mn>21</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>25</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>26</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>27</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>28</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-17">
<!--<alternatives><inline-graphic xlink:href="ieqn-17.tif"/><tex-math id="tex-ieqn-17"><![CDATA[{e_8}]]></tex-math>--><mml:math id="mml-ieqn-17"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>8</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-18">
<!--<alternatives><inline-graphic xlink:href="ieqn-18.tif"/><tex-math id="tex-ieqn-18"><![CDATA[21\; 22\; 23\; 24\; 29]]></tex-math>--><mml:math id="mml-ieqn-18"><mml:mn>21</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>22</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>23</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>24</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-19">
<!--<alternatives><inline-graphic xlink:href="ieqn-19.tif"/><tex-math id="tex-ieqn-19"><![CDATA[{e_9}]]></tex-math>--><mml:math id="mml-ieqn-19"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>9</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-20">
<!--<alternatives><inline-graphic xlink:href="ieqn-20.tif"/><tex-math id="tex-ieqn-20"><![CDATA[29\; 30\; 19]]></tex-math>--><mml:math id="mml-ieqn-20"><mml:mn>29</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>30</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>19</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
</tbody>
</table>
<!--</alternatives>-->
</table-wrap>

<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>List of def-use pairs and killing nodes of the example program, (&#x2212;1 means no killing nodes)</title>
</caption>
<!--<alternatives><graphic mimetype="image" mime-subtype="png" xlink:href="table-2.png"/>-->
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th><inline-formula id="ieqn-21">
<!--<alternatives><inline-graphic xlink:href="ieqn-21.tif"/><tex-math id="tex-ieqn-21"><![CDATA[DU\; Pair\; \#]]></tex-math>--><mml:math id="mml-ieqn-21"><mml:mi>D</mml:mi><mml:mi>U</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>P</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>r</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi mathvariant="normal">#</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
<th><inline-formula id="ieqn-22">
<!--<alternatives><inline-graphic xlink:href="ieqn-22.tif"/><tex-math id="tex-ieqn-22"><![CDATA[Variable]]></tex-math>--><mml:math id="mml-ieqn-22"><mml:mi>V</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>l</mml:mi><mml:mi>e</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
<th><inline-formula id="ieqn-23">
<!--<alternatives><inline-graphic xlink:href="ieqn-23.tif"/><tex-math id="tex-ieqn-23"><![CDATA[Def]]></tex-math>--><mml:math id="mml-ieqn-23"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
<th><inline-formula id="ieqn-24">
<!--<alternatives><inline-graphic xlink:href="ieqn-24.tif"/><tex-math id="tex-ieqn-24"><![CDATA[Use]]></tex-math>--><mml:math id="mml-ieqn-24"><mml:mi>U</mml:mi><mml:mi>s</mml:mi><mml:mi>e</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
<th><inline-formula id="ieqn-25">
<!--<alternatives><inline-graphic xlink:href="ieqn-25.tif"/><tex-math id="tex-ieqn-25"><![CDATA[Killing\; Node]]></tex-math>--><mml:math id="mml-ieqn-25"><mml:mi>K</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>N</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-26">
<!--<alternatives><inline-graphic xlink:href="ieqn-26.tif"/><tex-math id="tex-ieqn-26"><![CDATA[1]]></tex-math>--><mml:math id="mml-ieqn-26"><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-27">
<!--<alternatives><inline-graphic xlink:href="ieqn-27.tif"/><tex-math id="tex-ieqn-27"><![CDATA[a]]></tex-math>--><mml:math id="mml-ieqn-27"><mml:mi>a</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-28">
<!--<alternatives><inline-graphic xlink:href="ieqn-28.tif"/><tex-math id="tex-ieqn-28"><![CDATA[8]]></tex-math>--><mml:math id="mml-ieqn-28"><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-29">
<!--<alternatives><inline-graphic xlink:href="ieqn-29.tif"/><tex-math id="tex-ieqn-29"><![CDATA[10]]></tex-math>--><mml:math id="mml-ieqn-29"><mml:mn>10</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-30">
<!--<alternatives><inline-graphic xlink:href="ieqn-30.tif"/><tex-math id="tex-ieqn-30"><![CDATA[- 1]]></tex-math>--><mml:math id="mml-ieqn-30"><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-31">
<!--<alternatives><inline-graphic xlink:href="ieqn-31.tif"/><tex-math id="tex-ieqn-31"><![CDATA[2]]></tex-math>--><mml:math id="mml-ieqn-31"><mml:mn>2</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-32">
<!--<alternatives><inline-graphic xlink:href="ieqn-32.tif"/><tex-math id="tex-ieqn-32"><![CDATA[a]]></tex-math>--><mml:math id="mml-ieqn-32"><mml:mi>a</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-33">
<!--<alternatives><inline-graphic xlink:href="ieqn-33.tif"/><tex-math id="tex-ieqn-33"><![CDATA[8]]></tex-math>--><mml:math id="mml-ieqn-33"><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-34">
<!--<alternatives><inline-graphic xlink:href="ieqn-34.tif"/><tex-math id="tex-ieqn-34"><![CDATA[12]]></tex-math>--><mml:math id="mml-ieqn-34"><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-35">
<!--<alternatives><inline-graphic xlink:href="ieqn-35.tif"/><tex-math id="tex-ieqn-35"><![CDATA[- 1]]></tex-math>--><mml:math id="mml-ieqn-35"><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-36">
<!--<alternatives><inline-graphic xlink:href="ieqn-36.tif"/><tex-math id="tex-ieqn-36"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-36"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-37">
<!--<alternatives><inline-graphic xlink:href="ieqn-37.tif"/><tex-math id="tex-ieqn-37"><![CDATA[b]]></tex-math>--><mml:math id="mml-ieqn-37"><mml:mi>b</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-38">
<!--<alternatives><inline-graphic xlink:href="ieqn-38.tif"/><tex-math id="tex-ieqn-38"><![CDATA[9]]></tex-math>--><mml:math id="mml-ieqn-38"><mml:mn>9</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-39">
<!--<alternatives><inline-graphic xlink:href="ieqn-39.tif"/><tex-math id="tex-ieqn-39"><![CDATA[16]]></tex-math>--><mml:math id="mml-ieqn-39"><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-40">
<!--<alternatives><inline-graphic xlink:href="ieqn-40.tif"/><tex-math id="tex-ieqn-40"><![CDATA[- 1]]></tex-math>--><mml:math id="mml-ieqn-40"><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-41">
<!--<alternatives><inline-graphic xlink:href="ieqn-41.tif"/><tex-math id="tex-ieqn-41"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-41"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-42">
<!--<alternatives><inline-graphic xlink:href="ieqn-42.tif"/><tex-math id="tex-ieqn-42"><![CDATA[c]]></tex-math>--><mml:math id="mml-ieqn-42"><mml:mi>c</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-43">
<!--<alternatives><inline-graphic xlink:href="ieqn-43.tif"/><tex-math id="tex-ieqn-43"><![CDATA[12]]></tex-math>--><mml:math id="mml-ieqn-43"><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-44">
<!--<alternatives><inline-graphic xlink:href="ieqn-44.tif"/><tex-math id="tex-ieqn-44"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-44"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-45">
<!--<alternatives><inline-graphic xlink:href="ieqn-45.tif"/><tex-math id="tex-ieqn-45"><![CDATA[16]]></tex-math>--><mml:math id="mml-ieqn-45"><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-46">
<!--<alternatives><inline-graphic xlink:href="ieqn-46.tif"/><tex-math id="tex-ieqn-46"><![CDATA[5]]></tex-math>--><mml:math id="mml-ieqn-46"><mml:mn>5</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-47">
<!--<alternatives><inline-graphic xlink:href="ieqn-47.tif"/><tex-math id="tex-ieqn-47"><![CDATA[c]]></tex-math>--><mml:math id="mml-ieqn-47"><mml:mi>c</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-48">
<!--<alternatives><inline-graphic xlink:href="ieqn-48.tif"/><tex-math id="tex-ieqn-48"><![CDATA[16]]></tex-math>--><mml:math id="mml-ieqn-48"><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-49">
<!--<alternatives><inline-graphic xlink:href="ieqn-49.tif"/><tex-math id="tex-ieqn-49"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-49"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-50">
<!--<alternatives><inline-graphic xlink:href="ieqn-50.tif"/><tex-math id="tex-ieqn-50"><![CDATA[12]]></tex-math>--><mml:math id="mml-ieqn-50"><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-51">
<!--<alternatives><inline-graphic xlink:href="ieqn-51.tif"/><tex-math id="tex-ieqn-51"><![CDATA[6]]></tex-math>--><mml:math id="mml-ieqn-51"><mml:mn>6</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-52">
<!--<alternatives><inline-graphic xlink:href="ieqn-52.tif"/><tex-math id="tex-ieqn-52"><![CDATA[n]]></tex-math>--><mml:math id="mml-ieqn-52"><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-53">
<!--<alternatives><inline-graphic xlink:href="ieqn-53.tif"/><tex-math id="tex-ieqn-53"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-53"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-54">
<!--<alternatives><inline-graphic xlink:href="ieqn-54.tif"/><tex-math id="tex-ieqn-54"><![CDATA[19]]></tex-math>--><mml:math id="mml-ieqn-54"><mml:mn>19</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-55">
<!--<alternatives><inline-graphic xlink:href="ieqn-55.tif"/><tex-math id="tex-ieqn-55"><![CDATA[- 1]]></tex-math>--><mml:math id="mml-ieqn-55"><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-56">
<!--<alternatives><inline-graphic xlink:href="ieqn-56.tif"/><tex-math id="tex-ieqn-56"><![CDATA[7]]></tex-math>--><mml:math id="mml-ieqn-56"><mml:mn>7</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-57">
<!--<alternatives><inline-graphic xlink:href="ieqn-57.tif"/><tex-math id="tex-ieqn-57"><![CDATA[n]]></tex-math>--><mml:math id="mml-ieqn-57"><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-58">
<!--<alternatives><inline-graphic xlink:href="ieqn-58.tif"/><tex-math id="tex-ieqn-58"><![CDATA[29]]></tex-math>--><mml:math id="mml-ieqn-58"><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-59">
<!--<alternatives><inline-graphic xlink:href="ieqn-59.tif"/><tex-math id="tex-ieqn-59"><![CDATA[19]]></tex-math>--><mml:math id="mml-ieqn-59"><mml:mn>19</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-60">
<!--<alternatives><inline-graphic xlink:href="ieqn-60.tif"/><tex-math id="tex-ieqn-60"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-60"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-61">
<!--<alternatives><inline-graphic xlink:href="ieqn-61.tif"/><tex-math id="tex-ieqn-61"><![CDATA[8]]></tex-math>--><mml:math id="mml-ieqn-61"><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-62">
<!--<alternatives><inline-graphic xlink:href="ieqn-62.tif"/><tex-math id="tex-ieqn-62"><![CDATA[b]]></tex-math>--><mml:math id="mml-ieqn-62"><mml:mi>b</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-63">
<!--<alternatives><inline-graphic xlink:href="ieqn-63.tif"/><tex-math id="tex-ieqn-63"><![CDATA[9]]></tex-math>--><mml:math id="mml-ieqn-63"><mml:mn>9</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-64">
<!--<alternatives><inline-graphic xlink:href="ieqn-64.tif"/><tex-math id="tex-ieqn-64"><![CDATA[21]]></tex-math>--><mml:math id="mml-ieqn-64"><mml:mn>21</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-65">
<!--<alternatives><inline-graphic xlink:href="ieqn-65.tif"/><tex-math id="tex-ieqn-65"><![CDATA[- 1]]></tex-math>--><mml:math id="mml-ieqn-65"><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-66">
<!--<alternatives><inline-graphic xlink:href="ieqn-66.tif"/><tex-math id="tex-ieqn-66"><![CDATA[9]]></tex-math>--><mml:math id="mml-ieqn-66"><mml:mn>9</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-67">
<!--<alternatives><inline-graphic xlink:href="ieqn-67.tif"/><tex-math id="tex-ieqn-67"><![CDATA[c]]></tex-math>--><mml:math id="mml-ieqn-67"><mml:mi>c</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-68">
<!--<alternatives><inline-graphic xlink:href="ieqn-68.tif"/><tex-math id="tex-ieqn-68"><![CDATA[12]]></tex-math>--><mml:math id="mml-ieqn-68"><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-69">
<!--<alternatives><inline-graphic xlink:href="ieqn-69.tif"/><tex-math id="tex-ieqn-69"><![CDATA[21]]></tex-math>--><mml:math id="mml-ieqn-69"><mml:mn>21</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-70">
<!--<alternatives><inline-graphic xlink:href="ieqn-70.tif"/><tex-math id="tex-ieqn-70"><![CDATA[16]]></tex-math>--><mml:math id="mml-ieqn-70"><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-71">
<!--<alternatives><inline-graphic xlink:href="ieqn-71.tif"/><tex-math id="tex-ieqn-71"><![CDATA[10]]></tex-math>--><mml:math id="mml-ieqn-71"><mml:mn>10</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-72">
<!--<alternatives><inline-graphic xlink:href="ieqn-72.tif"/><tex-math id="tex-ieqn-72"><![CDATA[c]]></tex-math>--><mml:math id="mml-ieqn-72"><mml:mi>c</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-73">
<!--<alternatives><inline-graphic xlink:href="ieqn-73.tif"/><tex-math id="tex-ieqn-73"><![CDATA[16]]></tex-math>--><mml:math id="mml-ieqn-73"><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-74">
<!--<alternatives><inline-graphic xlink:href="ieqn-74.tif"/><tex-math id="tex-ieqn-74"><![CDATA[21]]></tex-math>--><mml:math id="mml-ieqn-74"><mml:mn>21</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-75">
<!--<alternatives><inline-graphic xlink:href="ieqn-75.tif"/><tex-math id="tex-ieqn-75"><![CDATA[12]]></tex-math>--><mml:math id="mml-ieqn-75"><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-76">
<!--<alternatives><inline-graphic xlink:href="ieqn-76.tif"/><tex-math id="tex-ieqn-76"><![CDATA[11]]></tex-math>--><mml:math id="mml-ieqn-76"><mml:mn>11</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-77">
<!--<alternatives><inline-graphic xlink:href="ieqn-77.tif"/><tex-math id="tex-ieqn-77"><![CDATA[c]]></tex-math>--><mml:math id="mml-ieqn-77"><mml:mi>c</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-78">
<!--<alternatives><inline-graphic xlink:href="ieqn-78.tif"/><tex-math id="tex-ieqn-78"><![CDATA[23]]></tex-math>--><mml:math id="mml-ieqn-78"><mml:mn>23</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-79">
<!--<alternatives><inline-graphic xlink:href="ieqn-79.tif"/><tex-math id="tex-ieqn-79"><![CDATA[21]]></tex-math>--><mml:math id="mml-ieqn-79"><mml:mn>21</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-80">
<!--<alternatives><inline-graphic xlink:href="ieqn-80.tif"/><tex-math id="tex-ieqn-80"><![CDATA[12,16]]></tex-math>--><mml:math id="mml-ieqn-80"><mml:mn>12</mml:mn><mml:mo>,</mml:mo><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-81">
<!--<alternatives><inline-graphic xlink:href="ieqn-81.tif"/><tex-math id="tex-ieqn-81"><![CDATA[12]]></tex-math>--><mml:math id="mml-ieqn-81"><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-82">
<!--<alternatives><inline-graphic xlink:href="ieqn-82.tif"/><tex-math id="tex-ieqn-82"><![CDATA[c]]></tex-math>--><mml:math id="mml-ieqn-82"><mml:mi>c</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-83">
<!--<alternatives><inline-graphic xlink:href="ieqn-83.tif"/><tex-math id="tex-ieqn-83"><![CDATA[12]]></tex-math>--><mml:math id="mml-ieqn-83"><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-84">
<!--<alternatives><inline-graphic xlink:href="ieqn-84.tif"/><tex-math id="tex-ieqn-84"><![CDATA[27]]></tex-math>--><mml:math id="mml-ieqn-84"><mml:mn>27</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-85">
<!--<alternatives><inline-graphic xlink:href="ieqn-85.tif"/><tex-math id="tex-ieqn-85"><![CDATA[16,23]]></tex-math>--><mml:math id="mml-ieqn-85"><mml:mn>16</mml:mn><mml:mo>,</mml:mo><mml:mn>23</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-86">
<!--<alternatives><inline-graphic xlink:href="ieqn-86.tif"/><tex-math id="tex-ieqn-86"><![CDATA[13]]></tex-math>--><mml:math id="mml-ieqn-86"><mml:mn>13</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-87">
<!--<alternatives><inline-graphic xlink:href="ieqn-87.tif"/><tex-math id="tex-ieqn-87"><![CDATA[c]]></tex-math>--><mml:math id="mml-ieqn-87"><mml:mi>c</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-88">
<!--<alternatives><inline-graphic xlink:href="ieqn-88.tif"/><tex-math id="tex-ieqn-88"><![CDATA[16]]></tex-math>--><mml:math id="mml-ieqn-88"><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-89">
<!--<alternatives><inline-graphic xlink:href="ieqn-89.tif"/><tex-math id="tex-ieqn-89"><![CDATA[27]]></tex-math>--><mml:math id="mml-ieqn-89"><mml:mn>27</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-90">
<!--<alternatives><inline-graphic xlink:href="ieqn-90.tif"/><tex-math id="tex-ieqn-90"><![CDATA[12,23]]></tex-math>--><mml:math id="mml-ieqn-90"><mml:mn>12</mml:mn><mml:mo>,</mml:mo><mml:mn>23</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-91">
<!--<alternatives><inline-graphic xlink:href="ieqn-91.tif"/><tex-math id="tex-ieqn-91"><![CDATA[14]]></tex-math>--><mml:math id="mml-ieqn-91"><mml:mn>14</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-92">
<!--<alternatives><inline-graphic xlink:href="ieqn-92.tif"/><tex-math id="tex-ieqn-92"><![CDATA[n]]></tex-math>--><mml:math id="mml-ieqn-92"><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-93">
<!--<alternatives><inline-graphic xlink:href="ieqn-93.tif"/><tex-math id="tex-ieqn-93"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-93"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-94">
<!--<alternatives><inline-graphic xlink:href="ieqn-94.tif"/><tex-math id="tex-ieqn-94"><![CDATA[27]]></tex-math>--><mml:math id="mml-ieqn-94"><mml:mn>27</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-95">
<!--<alternatives><inline-graphic xlink:href="ieqn-95.tif"/><tex-math id="tex-ieqn-95"><![CDATA[- 1]]></tex-math>--><mml:math id="mml-ieqn-95"><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-96">
<!--<alternatives><inline-graphic xlink:href="ieqn-96.tif"/><tex-math id="tex-ieqn-96"><![CDATA[15]]></tex-math>--><mml:math id="mml-ieqn-96"><mml:mn>15</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-97">
<!--<alternatives><inline-graphic xlink:href="ieqn-97.tif"/><tex-math id="tex-ieqn-97"><![CDATA[c]]></tex-math>--><mml:math id="mml-ieqn-97"><mml:mi>c</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-98">
<!--<alternatives><inline-graphic xlink:href="ieqn-98.tif"/><tex-math id="tex-ieqn-98"><![CDATA[23]]></tex-math>--><mml:math id="mml-ieqn-98"><mml:mn>23</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-99">
<!--<alternatives><inline-graphic xlink:href="ieqn-99.tif"/><tex-math id="tex-ieqn-99"><![CDATA[27]]></tex-math>--><mml:math id="mml-ieqn-99"><mml:mn>27</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-100">
<!--<alternatives><inline-graphic xlink:href="ieqn-100.tif"/><tex-math id="tex-ieqn-100"><![CDATA[12,16]]></tex-math>--><mml:math id="mml-ieqn-100"><mml:mn>12</mml:mn><mml:mo>,</mml:mo><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-101">
<!--<alternatives><inline-graphic xlink:href="ieqn-101.tif"/><tex-math id="tex-ieqn-101"><![CDATA[16]]></tex-math>--><mml:math id="mml-ieqn-101"><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-102">
<!--<alternatives><inline-graphic xlink:href="ieqn-102.tif"/><tex-math id="tex-ieqn-102"><![CDATA[n]]></tex-math>--><mml:math id="mml-ieqn-102"><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-103">
<!--<alternatives><inline-graphic xlink:href="ieqn-103.tif"/><tex-math id="tex-ieqn-103"><![CDATA[29]]></tex-math>--><mml:math id="mml-ieqn-103"><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-104">
<!--<alternatives><inline-graphic xlink:href="ieqn-104.tif"/><tex-math id="tex-ieqn-104"><![CDATA[27]]></tex-math>--><mml:math id="mml-ieqn-104"><mml:mn>27</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-105">
<!--<alternatives><inline-graphic xlink:href="ieqn-105.tif"/><tex-math id="tex-ieqn-105"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-105"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-106">
<!--<alternatives><inline-graphic xlink:href="ieqn-106.tif"/><tex-math id="tex-ieqn-106"><![CDATA[17]]></tex-math>--><mml:math id="mml-ieqn-106"><mml:mn>17</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-107">
<!--<alternatives><inline-graphic xlink:href="ieqn-107.tif"/><tex-math id="tex-ieqn-107"><![CDATA[n]]></tex-math>--><mml:math id="mml-ieqn-107"><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-108">
<!--<alternatives><inline-graphic xlink:href="ieqn-108.tif"/><tex-math id="tex-ieqn-108"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-108"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-109">
<!--<alternatives><inline-graphic xlink:href="ieqn-109.tif"/><tex-math id="tex-ieqn-109"><![CDATA[29]]></tex-math>--><mml:math id="mml-ieqn-109"><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-110">
<!--<alternatives><inline-graphic xlink:href="ieqn-110.tif"/><tex-math id="tex-ieqn-110"><![CDATA[27]]></tex-math>--><mml:math id="mml-ieqn-110"><mml:mn>27</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-111">
<!--<alternatives><inline-graphic xlink:href="ieqn-111.tif"/><tex-math id="tex-ieqn-111"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-111"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-112">
<!--<alternatives><inline-graphic xlink:href="ieqn-112.tif"/><tex-math id="tex-ieqn-112"><![CDATA[n]]></tex-math>--><mml:math id="mml-ieqn-112"><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-113">
<!--<alternatives><inline-graphic xlink:href="ieqn-113.tif"/><tex-math id="tex-ieqn-113"><![CDATA[27]]></tex-math>--><mml:math id="mml-ieqn-113"><mml:mn>27</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-114">
<!--<alternatives><inline-graphic xlink:href="ieqn-114.tif"/><tex-math id="tex-ieqn-114"><![CDATA[29]]></tex-math>--><mml:math id="mml-ieqn-114"><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-115">
<!--<alternatives><inline-graphic xlink:href="ieqn-115.tif"/><tex-math id="tex-ieqn-115"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-115"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-116">
<!--<alternatives><inline-graphic xlink:href="ieqn-116.tif"/><tex-math id="tex-ieqn-116"><![CDATA[19]]></tex-math>--><mml:math id="mml-ieqn-116"><mml:mn>19</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-117">
<!--<alternatives><inline-graphic xlink:href="ieqn-117.tif"/><tex-math id="tex-ieqn-117"><![CDATA[n]]></tex-math>--><mml:math id="mml-ieqn-117"><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-118">
<!--<alternatives><inline-graphic xlink:href="ieqn-118.tif"/><tex-math id="tex-ieqn-118"><![CDATA[29]]></tex-math>--><mml:math id="mml-ieqn-118"><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-119">
<!--<alternatives><inline-graphic xlink:href="ieqn-119.tif"/><tex-math id="tex-ieqn-119"><![CDATA[29]]></tex-math>--><mml:math id="mml-ieqn-119"><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-120">
<!--<alternatives><inline-graphic xlink:href="ieqn-120.tif"/><tex-math id="tex-ieqn-120"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-120"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-121">
<!--<alternatives><inline-graphic xlink:href="ieqn-121.tif"/><tex-math id="tex-ieqn-121"><![CDATA[20]]></tex-math>--><mml:math id="mml-ieqn-121"><mml:mn>20</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-122">
<!--<alternatives><inline-graphic xlink:href="ieqn-122.tif"/><tex-math id="tex-ieqn-122"><![CDATA[a]]></tex-math>--><mml:math id="mml-ieqn-122"><mml:mi>a</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-123">
<!--<alternatives><inline-graphic xlink:href="ieqn-123.tif"/><tex-math id="tex-ieqn-123"><![CDATA[8]]></tex-math>--><mml:math id="mml-ieqn-123"><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-124">
<!--<alternatives><inline-graphic xlink:href="ieqn-124.tif"/><tex-math id="tex-ieqn-124"><![CDATA[31]]></tex-math>--><mml:math id="mml-ieqn-124"><mml:mn>31</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-125">
<!--<alternatives><inline-graphic xlink:href="ieqn-125.tif"/><tex-math id="tex-ieqn-125"><![CDATA[- 1]]></tex-math>--><mml:math id="mml-ieqn-125"><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-126">
<!--<alternatives><inline-graphic xlink:href="ieqn-126.tif"/><tex-math id="tex-ieqn-126"><![CDATA[21]]></tex-math>--><mml:math id="mml-ieqn-126"><mml:mn>21</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-127">
<!--<alternatives><inline-graphic xlink:href="ieqn-127.tif"/><tex-math id="tex-ieqn-127"><![CDATA[b]]></tex-math>--><mml:math id="mml-ieqn-127"><mml:mi>b</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-128">
<!--<alternatives><inline-graphic xlink:href="ieqn-128.tif"/><tex-math id="tex-ieqn-128"><![CDATA[9]]></tex-math>--><mml:math id="mml-ieqn-128"><mml:mn>9</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-129">
<!--<alternatives><inline-graphic xlink:href="ieqn-129.tif"/><tex-math id="tex-ieqn-129"><![CDATA[31]]></tex-math>--><mml:math id="mml-ieqn-129"><mml:mn>31</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-130">
<!--<alternatives><inline-graphic xlink:href="ieqn-130.tif"/><tex-math id="tex-ieqn-130"><![CDATA[- 1]]></tex-math>--><mml:math id="mml-ieqn-130"><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-131">
<!--<alternatives><inline-graphic xlink:href="ieqn-131.tif"/><tex-math id="tex-ieqn-131"><![CDATA[22]]></tex-math>--><mml:math id="mml-ieqn-131"><mml:mn>22</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-132">
<!--<alternatives><inline-graphic xlink:href="ieqn-132.tif"/><tex-math id="tex-ieqn-132"><![CDATA[n]]></tex-math>--><mml:math id="mml-ieqn-132"><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-133">
<!--<alternatives><inline-graphic xlink:href="ieqn-133.tif"/><tex-math id="tex-ieqn-133"><![CDATA[18]]></tex-math>--><mml:math id="mml-ieqn-133"><mml:mn>18</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-134">
<!--<alternatives><inline-graphic xlink:href="ieqn-134.tif"/><tex-math id="tex-ieqn-134"><![CDATA[31]]></tex-math>--><mml:math id="mml-ieqn-134"><mml:mn>31</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-135">
<!--<alternatives><inline-graphic xlink:href="ieqn-135.tif"/><tex-math id="tex-ieqn-135"><![CDATA[27,29]]></tex-math>--><mml:math id="mml-ieqn-135"><mml:mn>27</mml:mn><mml:mo>,</mml:mo><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-136">
<!--<alternatives><inline-graphic xlink:href="ieqn-136.tif"/><tex-math id="tex-ieqn-136"><![CDATA[23]]></tex-math>--><mml:math id="mml-ieqn-136"><mml:mn>23</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-137">
<!--<alternatives><inline-graphic xlink:href="ieqn-137.tif"/><tex-math id="tex-ieqn-137"><![CDATA[n]]></tex-math>--><mml:math id="mml-ieqn-137"><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-138">
<!--<alternatives><inline-graphic xlink:href="ieqn-138.tif"/><tex-math id="tex-ieqn-138"><![CDATA[29]]></tex-math>--><mml:math id="mml-ieqn-138"><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-139">
<!--<alternatives><inline-graphic xlink:href="ieqn-139.tif"/><tex-math id="tex-ieqn-139"><![CDATA[31]]></tex-math>--><mml:math id="mml-ieqn-139"><mml:mn>31</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-140">
<!--<alternatives><inline-graphic xlink:href="ieqn-140.tif"/><tex-math id="tex-ieqn-140"><![CDATA[18,27]]></tex-math>--><mml:math id="mml-ieqn-140"><mml:mn>18</mml:mn><mml:mo>,</mml:mo><mml:mn>27</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
</tbody>
</table>
<!--</alternatives>-->
</table-wrap>
<p>The outcome of this algorithm is the global best value. The fitness function of the algorithm depends on the type of the application of the PSO. The updates of the position and velocity of each particle are calculated by the following equations [<xref ref-type="bibr" rid="ref-40">40</xref>]:</p>
<p><disp-formula id="eqn-1">
<label>(1)</label>
<!--<alternatives><graphic mimetype="image" mime-subtype="png" xlink:href="eqn-1.png"/><tex-math id="tex-eqn-1"><![CDATA[v_i^{k + 1} = K \times \left( {v_i^k + {c_1} \times {r_1} \times \left( {pbes{t_i} - p_i^k} \right) + {c_2} \times {r_2} \times \left( {gbest - p_i^k} \right)} \right)]]></tex-math>--><mml:math id="mml-eqn-1" display="block"><mml:msubsup><mml:mi>v</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x003D;</mml:mo><mml:mi>K</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mi>v</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:msubsup><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
<!--</alternatives>--></disp-formula></p>
<p><disp-formula id="eqn-2">
<label>(2)</label>
<!--<alternatives><graphic mimetype="image" mime-subtype="png" xlink:href="eqn-2.png"/><tex-math id="tex-eqn-2"><![CDATA[p_i^{k + 1} = p_i^k + v_i^{k + 1}]]></tex-math>--><mml:math id="mml-eqn-2" display="block"><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:msubsup><mml:mo>&#x002B;</mml:mo><mml:msubsup><mml:mi>v</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math>
<!--</alternatives>--></disp-formula></p>
<p><disp-formula id="eqn-3">
<label>(3)</label>
<!--<alternatives><graphic mimetype="image" mime-subtype="png" xlink:href="eqn-3.png"/><tex-math id="tex-eqn-3"><![CDATA[$${\rm K} = \displaystyle{2 \over {\left| {2 - {\rm \varphi } - \sqrt {{{\rm \varphi }^2} - 4{\rm \varphi }} } \right|}}, {\rm where}\;\varphi \; = \; {c_1}\; + {c_2}, \varphi > \; 4,$$]]></tex-math>--><mml:math id="mml-eqn-3" display='block'><mml:mrow><mml:mtext>K</mml:mtext><mml:mo>=</mml:mo><mml:mfrac><mml:mn>2</mml:mn><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03C6;</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msqrt><mml:mrow><mml:msup><mml:mi>&#x03C6;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mn>4</mml:mn><mml:mi>&#x03C6;</mml:mi></mml:mrow></mml:msqrt></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mo>,</mml:mo><mml:mtext>where</mml:mtext><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>&#x03C6;</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mo>=</mml:mo><mml:mspace width="thickmathspace"></mml:mspace><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mspace width="thickmathspace"></mml:mspace><mml:mo>+</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x03C6;</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mspace width="thickmathspace"></mml:mspace><mml:mn>4</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math><!--</alternatives>--></disp-formula></p>
<p>where:<list list-type="order"><list-item>
<p><inline-formula id="ieqn-142">
<!--<alternatives><inline-graphic xlink:href="ieqn-142.tif"/><tex-math id="tex-ieqn-142"><![CDATA[v_i^k]]></tex-math>--><mml:math id="mml-ieqn-142"><mml:msubsup><mml:mi>v</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:msubsup></mml:math>
<!--</alternatives>--></inline-formula>: velocity of particle<italic>i</italic> at iteration<italic>k</italic>.</p></list-item><list-item>
<p>K: constriction factor that is required to guarantee the convergence of the PSO [<xref ref-type="bibr" rid="ref-41">41</xref>].</p></list-item><list-item>
<p>c<sub>1</sub>, c<sub>2</sub> : learning factors.</p></list-item><list-item>
<p><italic>r</italic><sub><italic>1</italic></sub>,<italic>r</italic><sub><italic>2</italic></sub> : uniformly distributed random number between 0 and 1.</p></list-item><list-item>
<p><inline-formula id="ieqn-143">
<!--<alternatives><inline-graphic xlink:href="ieqn-143.tif"/><tex-math id="tex-ieqn-143"><![CDATA[p_i^k]]></tex-math>--><mml:math id="mml-ieqn-143"><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:msubsup></mml:math>
<!--</alternatives>--></inline-formula>: current position of particle<italic>i</italic> at iteration<italic>k</italic>.</p></list-item><list-item>
<p><italic>pbest</italic><sub><italic>i</italic></sub> :<italic>pbest</italic> of particle<italic>i</italic> .</p></list-item><list-item>
<p><italic>gbest</italic>:<italic>gbest</italic> of the group.</p></list-item></list></p>
<p><xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref> is applied to update the velocity of the particles. In addition,<xref ref-type="disp-formula" rid="eqn-2">Eq. (2)</xref> is applied to update the position of the particles.</p>
<p>The PSO specifications can be:<list list-type="order"><list-item>
<p>The learning factors c<sub>1</sub> and c<sub>2</sub> are values in the interval from 0 to 4. Where the best values of c<sub>1</sub> and c<sub>2</sub> are determined empirically. The proposed algorithm was executed 20 times on each subject program and the best values of c<sub>1</sub> and c<sub>2</sub> were determined.</p></list-item><list-item>
<p>The number of particles is based on the PSO application. Commonly, the number of particles is in the range from 20 to 40;</p></list-item><list-item>
<p>The fitness function of the PSO is very related to the representation of the given problem.</p></list-item></list></p>
</sec>
<sec id="s4">
<label>4</label>
<title>The Proposed PSO Algorithm</title>
<p>The proposed PSO-based approach targets the automatic generation of test paths. The technique looks for the paths that fulfill the all-uses criterion. If the program under test contains loops, the proposed technique creates a subset of those paths that satisfies the ZOT-criterion.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Representation</title>
<p>In the proposed PSO algorithm, the position vector of a particle symbolizes the edges of a path through the program dd-graph. The length, L, of any position vector can be calculated using the formula L &#x003D; n &#x002B; 2 &#x002B; p, where n &#x002B; 2 is the number of edges in the dd-graph plus two more edges representing the entry and exit ones. In addition, p is the number of edges enclosed in the loops, which are included twice. This representation guarantees that the paths created for any program with loops satisfy the ZOT-criterion. For instance, the basic edges of the dd-graph of the C# code given in <xref ref-type="fig" rid="fig-3">Fig. 3</xref> are<inline-formula id="ieqn-144">
<!--<alternatives><inline-graphic xlink:href="ieqn-144.tif"/><tex-math id="tex-ieqn-144"><![CDATA[{e_1},{\rm \; \; }{e_2},{\rm \; \; }{e_3},{\rm \; \; }{e_4},{\rm \; \; }{e_5},{\rm \; \; }{e_6},{\rm \; \; }{e_7},{\rm \; \; }{e_8},{\rm \; \; }{e_9}]]></tex-math>--><mml:math id="mml-ieqn-144"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>7</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>8</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>9</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>. Therefore, n &#x003D; 9, plus 2 (entry edge,<inline-formula id="ieqn-145">
<!--<alternatives><inline-graphic xlink:href="ieqn-145.tif"/><tex-math id="tex-ieqn-145"><![CDATA[{e_0}]]></tex-math>--><mml:math id="mml-ieqn-145"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>, and exit edge,<inline-formula id="ieqn-146">
<!--<alternatives><inline-graphic xlink:href="ieqn-146.tif"/><tex-math id="tex-ieqn-146"><![CDATA[{e_{14}})]]></tex-math>--><mml:math id="mml-ieqn-146"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math>
<!--</alternatives>--></inline-formula>. In addition, p &#x003D; 4, which are the edges enclosed in &#x201C;while&#x201D; loop, which are<inline-formula id="ieqn-147">
<!--<alternatives><inline-graphic xlink:href="ieqn-147.tif"/><tex-math id="tex-ieqn-147"><![CDATA[{e_6},{e_7},{e_8},{e_9}]]></tex-math>--><mml:math id="mml-ieqn-147"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>7</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>8</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>9</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>. Moreover, the duplicate of the edges of the loop is placed after the final edge,<inline-formula id="ieqn-148">
<!--<alternatives><inline-graphic xlink:href="ieqn-148.tif"/><tex-math id="tex-ieqn-148"><![CDATA[{e_9}]]></tex-math>--><mml:math id="mml-ieqn-148"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>9</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>, with labels beginning by 10, i.e.,<inline-formula id="ieqn-149">
<!--<alternatives><inline-graphic xlink:href="ieqn-149.tif"/><tex-math id="tex-ieqn-149"><![CDATA[{e_{10}},{\rm \; \; }{e_{11}},{\rm \; \; }{e_{12}},{\rm \; \; }{e_{13}}]]></tex-math>--><mml:math id="mml-ieqn-149"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>10</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>. Consequently, the length of this position vector is L &#x003D; 15. The position vector of the particle has the following form:</p>
<table-wrap>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<tbody>
<tr>
<td><inline-formula id="ieqn-150">
<!--<alternatives><inline-graphic xlink:href="ieqn-150.tif"/><tex-math id="tex-ieqn-150"><![CDATA[{e_0}]]></tex-math>--><mml:math id="mml-ieqn-150"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-151">
<!--<alternatives><inline-graphic xlink:href="ieqn-151.tif"/><tex-math id="tex-ieqn-151"><![CDATA[{e_1}]]></tex-math>--><mml:math id="mml-ieqn-151"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-152">
<!--<alternatives><inline-graphic xlink:href="ieqn-152.tif"/><tex-math id="tex-ieqn-152"><![CDATA[{e_2}]]></tex-math>--><mml:math id="mml-ieqn-152"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-153">
<!--<alternatives><inline-graphic xlink:href="ieqn-153.tif"/><tex-math id="tex-ieqn-153"><![CDATA[{e_3}]]></tex-math>--><mml:math id="mml-ieqn-153"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-154">
<!--<alternatives><inline-graphic xlink:href="ieqn-154.tif"/><tex-math id="tex-ieqn-154"><![CDATA[{e_4}]]></tex-math>--><mml:math id="mml-ieqn-154"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-155">
<!--<alternatives><inline-graphic xlink:href="ieqn-155.tif"/><tex-math id="tex-ieqn-155"><![CDATA[{e_5}]]></tex-math>--><mml:math id="mml-ieqn-155"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-156">
<!--<alternatives><inline-graphic xlink:href="ieqn-156.tif"/><tex-math id="tex-ieqn-156"><![CDATA[{e_6}]]></tex-math>--><mml:math id="mml-ieqn-156"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-157">
<!--<alternatives><inline-graphic xlink:href="ieqn-157.tif"/><tex-math id="tex-ieqn-157"><![CDATA[{e_7}]]></tex-math>--><mml:math id="mml-ieqn-157"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>7</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-158">
<!--<alternatives><inline-graphic xlink:href="ieqn-158.tif"/><tex-math id="tex-ieqn-158"><![CDATA[{e_8}]]></tex-math>--><mml:math id="mml-ieqn-158"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>8</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-159">
<!--<alternatives><inline-graphic xlink:href="ieqn-159.tif"/><tex-math id="tex-ieqn-159"><![CDATA[{e_9}]]></tex-math>--><mml:math id="mml-ieqn-159"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>9</mml:mn></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#BFBFBF;"><inline-formula id="ieqn-160">
<!--<alternatives><inline-graphic xlink:href="ieqn-160.tif"/><tex-math id="tex-ieqn-160"><![CDATA[{e_{10}}]]></tex-math>--><mml:math id="mml-ieqn-160"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>10</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#BFBFBF;"><inline-formula id="ieqn-161">
<!--<alternatives><inline-graphic xlink:href="ieqn-161.tif"/><tex-math id="tex-ieqn-161"><![CDATA[{e_{11}}]]></tex-math>--><mml:math id="mml-ieqn-161"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#BFBFBF;"><inline-formula id="ieqn-162">
<!--<alternatives><inline-graphic xlink:href="ieqn-162.tif"/><tex-math id="tex-ieqn-162"><![CDATA[{e_{12}}]]></tex-math>--><mml:math id="mml-ieqn-162"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#BFBFBF;"><inline-formula id="ieqn-163">
<!--<alternatives><inline-graphic xlink:href="ieqn-163.tif"/><tex-math id="tex-ieqn-163"><![CDATA[{e_{13}}]]></tex-math>--><mml:math id="mml-ieqn-163"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-164">
<!--<alternatives><inline-graphic xlink:href="ieqn-164.tif"/><tex-math id="tex-ieqn-164"><![CDATA[{e_{14}}]]></tex-math>--><mml:math id="mml-ieqn-164"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>where edges<inline-formula id="ieqn-165">
<!--<alternatives><inline-graphic xlink:href="ieqn-165.tif"/><tex-math id="tex-ieqn-165"><![CDATA[{\rm \; }{e_{10}},{e_{11}},{e_{12}},{e_{13}}]]></tex-math>--><mml:math id="mml-ieqn-165"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>10</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>11</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula> are the duplicate of the edges of the loop,<inline-formula id="ieqn-166">
<!--<alternatives><inline-graphic xlink:href="ieqn-166.tif"/><tex-math id="tex-ieqn-166"><![CDATA[{e_6},{\rm \; }{e_7},{\rm \; }{e_8},{\rm \; }{e_{9{\rm \; }}}]]></tex-math>--><mml:math id="mml-ieqn-166"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>7</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>8</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>9</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>.</p>
<p>The proposed algorithm employs two different forms for the position vector. The first form is a binary form called bit position vector. The second form is an integer form called actual position vector. Through any bit position vector, the digit<inline-formula id="ieqn-167">
<!--<alternatives><inline-graphic xlink:href="ieqn-167.tif"/><tex-math id="tex-ieqn-167"><![CDATA[1]]></tex-math>--><mml:math id="mml-ieqn-167"><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula> means that an edge is existing and the digit<inline-formula id="ieqn-168">
<!--<alternatives><inline-graphic xlink:href="ieqn-168.tif"/><tex-math id="tex-ieqn-168"><![CDATA[0]]></tex-math>--><mml:math id="mml-ieqn-168"><mml:mn>0</mml:mn></mml:math>
<!--</alternatives>--></inline-formula> means an edge is missing. In the actual position vector, each &#x201C;1&#x201D; digit in the bit vector is replaced by the index of the matching edge. Then, the bit vector is filled out with &#x201C;&#x2212;1&#x201D; instead of the digits &#x201C;0&#x201D;. The digit &#x2212;1 is used to replace the missing edges to differentiate these edges from the indices of the existing edges, which are positive integers. The velocity vector of a particle consists of L digits in the interval [0, L] (for the example code the interval is [0,15].</p>
<p>Suppose a particle has the following bit position vector:<inline-formula id="ieqn-169">
<!--<alternatives><inline-graphic xlink:href="ieqn-169.tif"/><tex-math id="tex-ieqn-169"><![CDATA[11011110111011]]></tex-math>--><mml:math id="mml-ieqn-169"><mml:mn>11011110111011</mml:mn></mml:math>
<!--</alternatives>--></inline-formula>. This bit vector symbolizes the edges:<inline-formula id="ieqn-170">
<!--<alternatives><inline-graphic xlink:href="ieqn-170.tif"/><tex-math id="tex-ieqn-170"><![CDATA[{\rm \; }{e_0}{\rm \; },{\rm \; \; }{e_1}{\rm \; },{\rm \; \; }{e_3}{\rm \; },{\rm \; \; }{e_4}{\rm \; },{\rm \; \; }{e_5}{\rm \; },{\rm \; \; }{e_6}{\rm \; },{\rm \; \; }{e_8}{\rm \; },{\rm \; \; }{e_9}{\rm \; },{\rm \; \; }{e_{10}}{\rm \; },{\rm \; \; }{e_{12}}{\rm \; },{\rm \; \; }{e_{13}}{\rm \; },{\rm \; \; }{e_{14}}]]></tex-math>--><mml:math id="mml-ieqn-170"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>8</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>9</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>10</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>. The equivalent actual position vector is:<inline-formula id="ieqn-171">
<!--<alternatives><inline-graphic xlink:href="ieqn-171.tif"/><tex-math id="tex-ieqn-171"><![CDATA[{\rm \; }0{\rm \; },{\rm \; \; }1{\rm \; },{\rm \; \; }3{\rm \; },{\rm \; \; }4{\rm \; },{\rm \; \; }5{\rm \; },{\rm \; \; }6{\rm \; },{\rm \; \; }8{\rm \; },{\rm \; }9,{\rm \; \; }10,{\rm \; \; }12,{\rm \; \; }13,{\rm \; \; }14,{\rm \; \; } - 1,{\rm \; \; } - 1,{\rm \; } - 1]]></tex-math>--><mml:math id="mml-ieqn-171"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>0</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>3</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>4</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>5</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>6</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>8</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>9</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>10</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>12</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>13</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>14</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula>. Those edges form the connected path:<inline-formula id="ieqn-172">
<!--<alternatives><inline-graphic xlink:href="ieqn-172.tif"/><tex-math id="tex-ieqn-172"><![CDATA[{\rm \; }{e_0}{\rm \; },{\rm \; \; }{e_{1{\rm \; }}},{\rm \; \; }{e_{3{\rm \; }}},{\rm \; \; }{e_{4{\rm \; }}},{\rm \; \; }{e_{5{\rm \; }}},{\rm \; \; }{e_{6{\rm \; }}},{\rm \; \; }{e_8}{\rm \; },{\rm \; \; }{e_{9{\rm \; }}},{\rm \; \; }{e_{10}}{\rm \; },{\rm \; \; }{e_{12}}{\rm \; },{\rm \; \; }{e_{13{\rm \; }}},{\rm \; \; }{e_{14}}]]></tex-math>--><mml:math id="mml-ieqn-172"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>3</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>5</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>6</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>8</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>9</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>10</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>13</mml:mn><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>. By substituting every edge with the corresponding dd-path, the path is rewritten in terms of the program statements:<inline-formula id="ieqn-173">
<!--<alternatives><inline-graphic xlink:href="ieqn-173.tif"/><tex-math id="tex-ieqn-173"><![CDATA[5,{\rm \;  }6,{\rm \;  }7,{\rm \;  }8,{\rm \; }9,{\rm \; }10,{\rm \;  }11,{\rm \; }12,{\rm \;  }13,{\rm \;  }18,{\rm \;  }19,{\rm  \; }20,{\rm \;  }21,{\rm \; }22,{\rm \; }23,{\rm \; }24,{\rm \;  }29,{\rm \;  }30,{\rm  \; }19,{\rm \; }20,{\rm  \; }21,{\rm \;  }22,{\rm \;  }23,{\rm \; }24,{\rm \; }29,{\rm  \; }30,{\rm  \; }19,{\rm  \; }31,{\rm  \; }32]]></tex-math>--><mml:math id="mml-ieqn-173"><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>6</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>7</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>8</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>9</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>10</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>11</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>12</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>13</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>18</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>19</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>20</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>21</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>22</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>23</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>24</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>29</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>30</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>19</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>20</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>21</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>22</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>23</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>24</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>29</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>30</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>19</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>31</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>32</mml:mn></mml:math>
<!--</alternatives>--></inline-formula>.</p>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Initial Population</title>
<p>The position vectors of the particles represent a group of paths. These vectors are symbolized by two forms of length L: bit position vector and actual position vector. To form the initial population, the proposed technique randomly creates PS bit arrays of length L, where PS is the population size. In each vector, the first, second, and last cells are filled with 1&#x2019;s to represent the entry, first, and exit edges that have to be exist in all paths. The proper value of the size of the population is empirically determined. The algorithm creates for every produced binary position vector the corresponding actual position vector. All paths in the produced population must satisfy the connectivity rule (i.e., composed of a series of connected edges). The algorithm discards any disconnected path and generates another one to replace it. Also, the algorithm randomly creates PS velocity vectors for the initial position population. The values of every velocity vector are integers randomly selected from the interval [0, L-1]. The values of the first, second, and last cells are 0, 0, and L, respectively. This configuration guarantees that the update process of the actual position vector produces a path that contains the entry, first, and exit edges.</p>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Position and Velocity Vectors Updating</title>
<p>PSO algorithms update the position and velocity of a particle using<xref ref-type="disp-formula" rid="eqn-1">Eqs. (1)</xref> and<xref ref-type="disp-formula" rid="eqn-2">(2)</xref>. These equations can only be applied in continuous optimization problems. In the proposed approach, updating the velocity and position are accomplished using the actual position and velocity vectors, which are encoded as integer sequences, rather than real-number vectors. So, the current forms of addition and subtraction in<xref ref-type="disp-formula" rid="eqn-1">Eqs. (1)</xref> and<xref ref-type="disp-formula" rid="eqn-2">(2)</xref> are not applicable to the problem of path generation. Therefore, in the proposed algorithm, addition and subtraction operations in the basic velocity and position updating equations are modified to work with the path generation problem.</p>
<p>The presented technique utilizes two operators: the first is subtracting-two-positions operator and the second is adding-position-to-velocity operator. The two operators are applied to the members of the current population to form a new population.</p>
<p><bold>Subtracting-two-positions operator</bold>: The equation of updating the velocity vector (<xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref>) contains two terms for subtracting positions. We suggested the following definition (<xref ref-type="disp-formula" rid="eqn-4">Eq. (4)</xref>) for this operator.</p>
<p><disp-formula id="eqn-4">
<label>(4)</label>
<!--<alternatives><graphic mimetype="image" mime-subtype="png" xlink:href="eqn-4.png"/><tex-math id="tex-eqn-4"><![CDATA[p_i^{\rm &#x0027;} - {p_i} = {\rm \; }\left\{ {\matrix{ {p_i^{\rm &#x0027;} - {p_i}\; {\rm \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; }if{\rm \; }p_i^{\rm &#x0027;} - {p_i} > 0} \cr {(p_i^{\rm &#x0027;} - {p_i}) + \left( {L - 3} \right)\; \; \; \; \; \; if{\rm \; }p_i^{\rm &#x0027;} - {p_i} \le 0\; } \cr } } \right.]]></tex-math>--><mml:math id="mml-eqn-4" display="block"><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msup><mml:mi></mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnspacing="1em" rowspacing="4pt"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msup><mml:mi></mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msup><mml:mi></mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msup><mml:mi></mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>3</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msup><mml:mi></mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2264;</mml:mo><mml:mn>0</mml:mn><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo stretchy="true" symmetric="true" fence="true"></mml:mo></mml:mrow></mml:math>
<!--</alternatives>--></disp-formula></p>
<p>where<inline-formula id="ieqn-174">
<!--<alternatives><inline-graphic xlink:href="ieqn-174.tif"/><tex-math id="tex-ieqn-174"><![CDATA[\left\{ {{p_i}} \right\}_{i = 0}^{L - 1}]]></tex-math>--><mml:math id="mml-ieqn-174"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math>
<!--</alternatives>--></inline-formula> and<inline-formula id="ieqn-175">
<!--<alternatives><inline-graphic xlink:href="ieqn-175.tif"/><tex-math id="tex-ieqn-175"><![CDATA[\left\{ {p_i^{\rm &#x0027;}} \right\}_{i = 0}^{L - 1}{\rm \; \; }]]></tex-math>--><mml:math id="mml-ieqn-175"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msubsup><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msup><mml:mi></mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msubsup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>are two position vectors.</p>
<p><bold>Adding-position-to-velocity operator</bold>: The equation of updating the position vector (<xref ref-type="disp-formula" rid="eqn-2">Eq. (2)</xref>) adds the new velocity to the old position. We suggested the following definition (<xref ref-type="disp-formula" rid="eqn-5">Eq. (5)</xref>) for this operator.</p>
<p><disp-formula id="eqn-5">
<label>(5)</label>
<!--<alternatives><graphic mimetype="image" mime-subtype="png" xlink:href="eqn-5.png"/><tex-math id="tex-eqn-5"><![CDATA[{p_i} &#x002B; {v_i} &#x003D; \left\{ {\matrix{ {{p_i} &#x002B; {v_i}\; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; {\rm \; \; \; \; \; }if{\rm \; }{p_i} &#x002B; {v_i}< L} \cr {(({p_i} + {v_i})\% \left( {L - 1} \right)) + 2\; {\rm \; }if{\rm \; }{p_i} + {v_i} \ge L} \cr } } \right.]]></tex-math>--><mml:math id="mml-eqn-5" display="block"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnspacing="1em" rowspacing="4pt"><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003C;</mml:mo><mml:mi>L</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mi mathvariant="normal">%</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mn>2</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2265;</mml:mo><mml:mi>L</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo stretchy="true" symmetric="true" fence="true"></mml:mo></mml:mrow></mml:math>
<!--</alternatives>--></disp-formula></p>
<p>where<inline-formula id="ieqn-176">
<!--<alternatives><inline-graphic xlink:href="ieqn-176.tif"/><tex-math id="tex-ieqn-176"><![CDATA[\left\{ {{p_i}} \right\}_{i = 0}^{L - 1}]]></tex-math>--><mml:math id="mml-ieqn-176"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math>
<!--</alternatives>--></inline-formula> and<inline-formula id="ieqn-177">
<!--<alternatives><inline-graphic xlink:href="ieqn-177.tif"/><tex-math id="tex-ieqn-177"><![CDATA[\left\{ {{v_i}} \right\}_{i = 0}^{L - 1}]]></tex-math>--><mml:math id="mml-ieqn-177"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math>
<!--</alternatives>--></inline-formula> are position and velocity vectors, respectively.</p>
<p>If the updated position vector is disconnected (i.e., it contains two consecutive edges that are not adjacent edges in the dd-graph), the algorithm tries to make it connected, by adding and/or removing one or more edges to/from it. The number of edges to be added or removed to connect the disconnected part depends on the length of the sub-path between the two disconnected edges and according to their positions in the dd-graph. If no sub-path can be added to fill the gap in the disconnected path, the algorithm tries to remove some edges to connect that path. Otherwise, the algorithm discards the disconnected vector and replaces it with the original position vector. Finding a sub-path to be added or removed to fill the gap in a disconnected path is a trial-and-error process. We used the algorithm given below (Algorithm Connect) to fill the gap between any two edges in the vector.</p>
<fig id="fig-9">
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-9.png"/>
</fig>
<p>It should be noted that the resultant position vector p&#x2019; may include a set of repeated values. If the repeated values are not indices of edges of a loop, these values are replaced by &#x2212;1. The cells of the vector that represent indices for edges of a loop are allowed to be repeated only once. Therefore, an index for an edge in a loop can exist twice in the resulting position vector: the first existence is the original index and the second is the copy. To illustrate this rule, assume that p&#x2019; is 0, 1, 5, 6, 6, 12, 4, 12, 13, 3, 3, 12, 13, 8, 14. Now, the rule is applied to the resultant position p&#x2019; as follows:<list list-type="order"><list-item>
<p>The value 6 is an index of an edge in a loop. This edge is repeated twice. So, the first existence is not changed, while the second existence is replaced by the index of its copy, 10.</p></list-item><list-item>
<p>The value 12 is the index of the copy of the edge 8 in a loop. This edge is repeated three times, and the value 8 already exists as well. This means that this edge has 4 occurrences. The last two occurrences are replaced by the value &#x2212;1. The other two occurrences are kept with changing the value of the first occurrence to the index of the original loop edge, 8.</p></list-item><list-item>
<p>The value 13 is the index of the copy of the edge 9 in a loop. This edge is repeated twice. These two edges are kept with changing the value of the first occurrence to the index of the original loop edge, 9.</p></list-item><list-item>
<p>The value 3 is not the index of a loop edge. This edge is repeated twice. The second occurrence is replaced by the value &#x2212;1.</p></list-item><list-item>
<p>The values 0, 1, 4, and 14 are kept without change.</p></list-item></list></p>
<p>The resultant actual position becomes:</p>
<p><inline-formula id="ieqn-178">
<!--<alternatives><inline-graphic xlink:href="ieqn-178.tif"/><tex-math id="tex-ieqn-178"><![CDATA[0,{\rm \; }1,{\rm \; }5,{\rm \; }6,{\rm \; }10,{\rm \; }8,{\rm \; }4,{\rm \; }12,{\rm \; }9,{\rm \; }3,{\rm \; } - 1,{\rm \; } - 1,{\rm \; }13,{\rm \; } - 1,{\rm \; }14]]></tex-math>--><mml:math id="mml-ieqn-178"><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>6</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>10</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>8</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>12</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>9</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>13</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>14</mml:mn></mml:math>
<!--</alternatives>--></inline-formula>.</p>
<p>The final form of the updated actual position vector is obtained by sorting the positive values and keeping &#x2212;1&#x2019;s at the end, as follows:<inline-formula id="ieqn-179">
<!--<alternatives><inline-graphic xlink:href="ieqn-179.tif"/><tex-math id="tex-ieqn-179"><![CDATA[0,{\rm \; }1,{\rm \; \; }3,{\rm \; \; }4,{\rm \; \; }5,{\rm \; \; }6,{\rm \; \; }8,{\rm \; \; }9,{\rm \; \; }10,{\rm \; \; }12,{\rm \; \; }13,{\rm \; \; }14,{\rm \; \; } - 1,{\rm \; \; } - 1,{\rm \; \; } - 1]]></tex-math>--><mml:math id="mml-ieqn-179"><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>6</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>8</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>9</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>10</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>12</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>13</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>14</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula>. This position vector corresponds to the edges:<inline-formula id="ieqn-180">
<!--<alternatives><inline-graphic xlink:href="ieqn-180.tif"/><tex-math id="tex-ieqn-180"><![CDATA[{e_0},{\rm \; \; }{e_1},{\rm \; \; }{e_3},{\rm \; \; }{e_4},{\rm \; \; }{e_5},{\rm \; \; }{e_6},{\rm \; \; }{e_8},{\rm \; \; }{e_9},{\rm \; \; }{e_{10}},{\rm \; \; }{e_{12}},{\rm \; \; }{e_{13}},{\rm \; \; }{e_{14}}]]></tex-math>--><mml:math id="mml-ieqn-180"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>8</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>9</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>10</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>. These edges form the connected path:<inline-formula id="ieqn-181">
<!--<alternatives><inline-graphic xlink:href="ieqn-181.tif"/><tex-math id="tex-ieqn-181"><![CDATA[{e_0},{\rm \; \; }{e_1},{\rm \; \; }{e_3},{\rm \; \; }{e_4},{\rm \; \; }{e_6},{\rm \; \; }{e_8},{\rm \; \; }{e_9},{\rm \; \; }{e_{10}},{\rm \; \; }{e_{12}},{\rm \; \; }{e_{13}},{\rm \; \; }{e_5},{\rm \; \; }{e_{14}}]]></tex-math>--><mml:math id="mml-ieqn-181"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>8</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>9</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>10</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
<!--</alternatives>--></inline-formula>. The corresponding updated binary position vector will be:<inline-formula id="ieqn-182">
<!--<alternatives><inline-graphic xlink:href="ieqn-182.tif"/><tex-math id="tex-ieqn-182"><![CDATA[110111101110111]]></tex-math>--><mml:math id="mml-ieqn-182"><mml:mn>110111101110111</mml:mn></mml:math>
<!--</alternatives>--></inline-formula>.</p>
</sec>
<sec id="s4_4">
<label>4.4</label>
<title>Fitness Function</title>
<p>The algorithm assesses every path (p) using the ratio of the number of the def-use paths, which it covers, to the total number of def-use paths in the program. A def-use (du) is covered if there is a path contains a sub-path that begins with the def-node (d) and finishes with the use-node (u) and that path doesn&#x2019;t contain any killing node for that def-use. The fitness value fitness(P<sub>i</sub>) of a particle P<sub>i</sub> (i &#x003D; 1, &#x2026;, PS) is computed using the following formula [<xref ref-type="bibr" rid="ref-42">42</xref>,<xref ref-type="bibr" rid="ref-43">43</xref>]:</p>
<p><disp-formula id="eqn-6">
<label>(6)</label>
<!--<alternatives><graphic mimetype="image" mime-subtype="png" xlink:href="eqn-6.png"/><tex-math id="tex-eqn-6"><![CDATA[fitness\left( {{P_i}} \right) = \displaystyle{{no.\; \; of\; def - use\; paths\; covered\; by\; {P_i}} \over {total\; no.\; \; of\; def - use\; paths}}]]></tex-math>--><mml:math id="mml-eqn-6" display="block"><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mi>o</mml:mi><mml:mo>.</mml:mo><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>u</mml:mi><mml:mi>s</mml:mi><mml:mi>e</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>s</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>d</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>b</mml:mi><mml:mi>y</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>n</mml:mi><mml:mi>o</mml:mi><mml:mo>.</mml:mo><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>u</mml:mi><mml:mi>s</mml:mi><mml:mi>e</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
<!--</alternatives>--></disp-formula></p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>The Proposed Technique</title>
<p>The main modules of the system that implements the presented path generation technique are described below.</p>
<p>The system is written using C# programing language. It contains the following modules:<list list-type="order"><list-item>
<p>Analysis module.</p></list-item><list-item>
<p>Path generation module.</p></list-item></list></p>
<p>These modules are discussed in more detail in the following subsections. <xref ref-type="fig" rid="fig-4">Fig. 4</xref> presents the pseudo-code of the proposed system. This system applies the proposed PSO algorithm given in Section 4.</p>
<sec id="s5_1">
<label>5.1</label>
<title>Analysis Module</title>
<p>This module accepts as input the source code P to be tested, analyses it, and produces the following outputs:<list list-type="order"><list-item>
<p>A report that involves the details of the components of P.</p></list-item><list-item>
<p>The CFG of P.</p></list-item><list-item>
<p>The set of all def-use pairs for each variable in P.</p></list-item><list-item>
<p>The dd-graph of the CFG of P.</p></list-item></list></p>
<p>For instance, the analysis module generates for the C# code given in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>: 1) the CFG given in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>, 2) the dd-graph given in <xref ref-type="fig" rid="fig-3">Fig. 3</xref>, 3) dd-edges and its corresponding nodes given in <xref ref-type="table" rid="table-1">Tab. 1</xref>, and 4) all def-use pairs given in <xref ref-type="table" rid="table-2">Tab. 2</xref>.</p>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Path Generation Module</title>
<p>This module applies the PSO algorithm given in Section 4 to create paths to cover all def-use pairs of the code under test. The inputs of that module are:<list list-type="order"><list-item>
<p>Set of def-use paths (to be covered).</p></list-item><list-item>
<p>The dd-graph size (number of edges).</p></list-item><list-item>
<p>The population size (PS).</p></list-item><list-item>
<p>Maximum number of generations (mGens).</p></list-item><list-item>
<p>Learning factors (c<sub>1</sub> and c<sub>2</sub>).</p></list-item></list></p>
<p>The outputs of this module are:<list list-type="order"><list-item>
<p>List of paths, which satisfy the def-use criterion of the given code. It should be noted that the algorithm may fail to find paths to cover some def-use paths when these paths are infeasible, i.e., no executable path can be found to cover these paths.</p></list-item><list-item>
<p>A report presents the constructed path(s) and the satisfied def-use pairs and the set of unsatisfied def-use pairs, if any.</p></list-item></list></p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>The whole pseudo-code of the proposed system</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-4.png"/>
</fig>
<p>In the basic PSO algorithm, the population is evolved until one of its members represents the solution of the given problem. In the test path generation problem, this would correspond to one path achieving the coverage of all def-use paths of the program. Whilst this feasible for some programs, the majority of programs cannot be covered by just one test path &#x2013; it might take many test paths to cover all def-use paths. Therefore, in the proposed PSO algorithm, the population evolves until a combined subset of the population satisfies the def-use criterion. This is done by recording which def-use paths of the program each member has covered and halting the evolution when a set of members has traversed the entire def-use paths of program, if possible. The solution is this set.</p>
<p><xref ref-type="fig" rid="fig-5">Figs. 5a</xref> and <xref ref-type="fig" rid="fig-5">5b</xref> present a part of the report generated by the path generation module after applying it to the C# program given in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>. The report illustrates that the technique created 8 paths to cover 100% of all def-use pairs given in <xref ref-type="table" rid="table-2">Tab. 2</xref>. <xref ref-type="fig" rid="fig-6">Fig. 6</xref> presents the report generated by the technique for these 8 paths that needed 9 iterations to be covered. The list of paths that were created by the presented technique may be input to a data generation system for creating a number of inputs, which satisfy the data-flow paths testing.</p>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Experimental Study</title>
<p>This section describes the experimental study that was carried out to assess the efficiency of the proposed technique. In this study, we compared the proposed technique with the GA-based path generation system presented by Girgis et al. [<xref ref-type="bibr" rid="ref-22">22</xref>]. For fair comparison, the GA-based system was modified to repair any chromosome, which represents a disconnected path to be connected, if possible.</p>
<p>The experiment includes 15 C# programs. The specifications of the PSO algorithm were set to:<inline-formula id="ieqn-183">
<!--<alternatives><inline-graphic xlink:href="ieqn-183.tif"/><tex-math id="tex-ieqn-183"><![CDATA[{\rm mGens} = 100,{\rm \; }{{\rm c}_1} = 3,{\rm \; }{{\rm c}_2} = 3,{\rm \; \; and\; PS} = 4,{\rm \; \; }50,{\rm \; \; and\; }100]]></tex-math>--><mml:math id="mml-ieqn-183"><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">G</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mn>100</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">c</mml:mi></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">c</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>50</mml:mn><mml:mo>,</mml:mo><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mspace width="thickmathspace"></mml:mspace><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula>. The GA-based algorithm and the proposed algorithm were executed 20 times on each subject program and the average is computed.</p>
<p><xref ref-type="table" rid="table-3">Tab. 3</xref> presents the findings of applying the PSO-based and the GA-based systems to the 15 programs. From the results given in <xref ref-type="table" rid="table-3">Tab. 3</xref>, the PSO-based system overcame the GA-based system in 14 out of the 15 programs in the number of generations needed for satisfying the def-use criterion.</p>

<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>A comparison between the PSO and GA techniques</title>
</caption>
<!--<alternatives><graphic mimetype="image" mime-subtype="png" xlink:href="table-3.png"/>-->
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr><th rowspan="2"><inline-formula id="ieqn-184">
<!--<alternatives><inline-graphic xlink:href="ieqn-184.tif"/><tex-math id="tex-ieqn-184"><![CDATA[Prog\#]]></tex-math>--><mml:math id="mml-ieqn-184"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>g</mml:mi><mml:mi mathvariant="normal">#</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th><th colspan="2"><inline-formula id="ieqn-185">
<!--<alternatives><inline-graphic xlink:href="ieqn-185.tif"/><tex-math id="tex-ieqn-185"><![CDATA[No\; of\; generation]]></tex-math>--><mml:math id="mml-ieqn-185"><mml:mi>N</mml:mi><mml:mi>o</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>g</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th><th colspan="2"><inline-formula id="ieqn-186">
<!--<alternatives><inline-graphic xlink:href="ieqn-186.tif"/><tex-math id="tex-ieqn-186"><![CDATA[No\; of\; test\; path]]></tex-math>--><mml:math id="mml-ieqn-186"><mml:mi>N</mml:mi><mml:mi>o</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>t</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>h</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th><th colspan="2"><inline-formula id="ieqn-187">
<!--<alternatives><inline-graphic xlink:href="ieqn-187.tif"/><tex-math id="tex-ieqn-187"><![CDATA[DU\; coverage\%]]></tex-math>--><mml:math id="mml-ieqn-187"><mml:mi>D</mml:mi><mml:mi>U</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>e</mml:mi><mml:mi mathvariant="normal">%</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
</tr>
<tr>
<th>GA</th>
<th>PSO</th>
<th><inline-formula id="ieqn-188">
<!--<alternatives><inline-graphic xlink:href="ieqn-188.tif"/><tex-math id="tex-ieqn-188"><![CDATA[GA]]></tex-math>--><mml:math id="mml-ieqn-188"><mml:mi>G</mml:mi><mml:mi>A</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
<th><inline-formula id="ieqn-189">
<!--<alternatives><inline-graphic xlink:href="ieqn-189.tif"/><tex-math id="tex-ieqn-189"><![CDATA[PSO]]></tex-math>--><mml:math id="mml-ieqn-189"><mml:mi>P</mml:mi><mml:mi>S</mml:mi><mml:mi>O</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
<th>GA</th>
<th><inline-formula id="ieqn-190">
<!--<alternatives><inline-graphic xlink:href="ieqn-190.tif"/><tex-math id="tex-ieqn-190"><![CDATA[PSO]]></tex-math>--><mml:math id="mml-ieqn-190"><mml:mi>P</mml:mi><mml:mi>S</mml:mi><mml:mi>O</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-191">
<!--<alternatives><inline-graphic xlink:href="ieqn-191.tif"/><tex-math id="tex-ieqn-191"><![CDATA[P\# 1]]></tex-math>--><mml:math id="mml-ieqn-191"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>1</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-192">
<!--<alternatives><inline-graphic xlink:href="ieqn-192.tif"/><tex-math id="tex-ieqn-192"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-192"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-193">
<!--<alternatives><inline-graphic xlink:href="ieqn-193.tif"/><tex-math id="tex-ieqn-193"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-193"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-194">
<!--<alternatives><inline-graphic xlink:href="ieqn-194.tif"/><tex-math id="tex-ieqn-194"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-194"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-195">
<!--<alternatives><inline-graphic xlink:href="ieqn-195.tif"/><tex-math id="tex-ieqn-195"><![CDATA[2]]></tex-math>--><mml:math id="mml-ieqn-195"><mml:mn>2</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-196">
<!--<alternatives><inline-graphic xlink:href="ieqn-196.tif"/><tex-math id="tex-ieqn-196"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-196"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-197">
<!--<alternatives><inline-graphic xlink:href="ieqn-197.tif"/><tex-math id="tex-ieqn-197"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-197"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-198">
<!--<alternatives><inline-graphic xlink:href="ieqn-198.tif"/><tex-math id="tex-ieqn-198"><![CDATA[P\# 2]]></tex-math>--><mml:math id="mml-ieqn-198"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>2</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-199">
<!--<alternatives><inline-graphic xlink:href="ieqn-199.tif"/><tex-math id="tex-ieqn-199"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-199"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-200">
<!--<alternatives><inline-graphic xlink:href="ieqn-200.tif"/><tex-math id="tex-ieqn-200"><![CDATA[2]]></tex-math>--><mml:math id="mml-ieqn-200"><mml:mn>2</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-201">
<!--<alternatives><inline-graphic xlink:href="ieqn-201.tif"/><tex-math id="tex-ieqn-201"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-201"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-202">
<!--<alternatives><inline-graphic xlink:href="ieqn-202.tif"/><tex-math id="tex-ieqn-202"><![CDATA[2]]></tex-math>--><mml:math id="mml-ieqn-202"><mml:mn>2</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-203">
<!--<alternatives><inline-graphic xlink:href="ieqn-203.tif"/><tex-math id="tex-ieqn-203"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-203"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-204">
<!--<alternatives><inline-graphic xlink:href="ieqn-204.tif"/><tex-math id="tex-ieqn-204"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-204"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-205">
<!--<alternatives><inline-graphic xlink:href="ieqn-205.tif"/><tex-math id="tex-ieqn-205"><![CDATA[P\# 3]]></tex-math>--><mml:math id="mml-ieqn-205"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-206">
<!--<alternatives><inline-graphic xlink:href="ieqn-206.tif"/><tex-math id="tex-ieqn-206"><![CDATA[9]]></tex-math>--><mml:math id="mml-ieqn-206"><mml:mn>9</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-207">
<!--<alternatives><inline-graphic xlink:href="ieqn-207.tif"/><tex-math id="tex-ieqn-207"><![CDATA[7]]></tex-math>--><mml:math id="mml-ieqn-207"><mml:mn>7</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-208">
<!--<alternatives><inline-graphic xlink:href="ieqn-208.tif"/><tex-math id="tex-ieqn-208"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-208"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-209">
<!--<alternatives><inline-graphic xlink:href="ieqn-209.tif"/><tex-math id="tex-ieqn-209"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-209"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-210">
<!--<alternatives><inline-graphic xlink:href="ieqn-210.tif"/><tex-math id="tex-ieqn-210"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-210"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-211">
<!--<alternatives><inline-graphic xlink:href="ieqn-211.tif"/><tex-math id="tex-ieqn-211"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-211"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-212">
<!--<alternatives><inline-graphic xlink:href="ieqn-212.tif"/><tex-math id="tex-ieqn-212"><![CDATA[P\# 4]]></tex-math>--><mml:math id="mml-ieqn-212"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-213">
<!--<alternatives><inline-graphic xlink:href="ieqn-213.tif"/><tex-math id="tex-ieqn-213"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-213"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-214">
<!--<alternatives><inline-graphic xlink:href="ieqn-214.tif"/><tex-math id="tex-ieqn-214"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-214"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-215">
<!--<alternatives><inline-graphic xlink:href="ieqn-215.tif"/><tex-math id="tex-ieqn-215"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-215"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-216">
<!--<alternatives><inline-graphic xlink:href="ieqn-216.tif"/><tex-math id="tex-ieqn-216"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-216"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-217">
<!--<alternatives><inline-graphic xlink:href="ieqn-217.tif"/><tex-math id="tex-ieqn-217"><![CDATA[88.89]]></tex-math>--><mml:math id="mml-ieqn-217"><mml:mn>88.89</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-218">
<!--<alternatives><inline-graphic xlink:href="ieqn-218.tif"/><tex-math id="tex-ieqn-218"><![CDATA[88.89]]></tex-math>--><mml:math id="mml-ieqn-218"><mml:mn>88.89</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-219">
<!--<alternatives><inline-graphic xlink:href="ieqn-219.tif"/><tex-math id="tex-ieqn-219"><![CDATA[P\# 5]]></tex-math>--><mml:math id="mml-ieqn-219"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>5</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-220">
<!--<alternatives><inline-graphic xlink:href="ieqn-220.tif"/><tex-math id="tex-ieqn-220"><![CDATA[10]]></tex-math>--><mml:math id="mml-ieqn-220"><mml:mn>10</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-221">
<!--<alternatives><inline-graphic xlink:href="ieqn-221.tif"/><tex-math id="tex-ieqn-221"><![CDATA[8]]></tex-math>--><mml:math id="mml-ieqn-221"><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-222">
<!--<alternatives><inline-graphic xlink:href="ieqn-222.tif"/><tex-math id="tex-ieqn-222"><![CDATA[7]]></tex-math>--><mml:math id="mml-ieqn-222"><mml:mn>7</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-223">
<!--<alternatives><inline-graphic xlink:href="ieqn-223.tif"/><tex-math id="tex-ieqn-223"><![CDATA[6]]></tex-math>--><mml:math id="mml-ieqn-223"><mml:mn>6</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-224">
<!--<alternatives><inline-graphic xlink:href="ieqn-224.tif"/><tex-math id="tex-ieqn-224"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-224"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-225">
<!--<alternatives><inline-graphic xlink:href="ieqn-225.tif"/><tex-math id="tex-ieqn-225"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-225"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-226">
<!--<alternatives><inline-graphic xlink:href="ieqn-226.tif"/><tex-math id="tex-ieqn-226"><![CDATA[P\# 6]]></tex-math>--><mml:math id="mml-ieqn-226"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>6</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-227">
<!--<alternatives><inline-graphic xlink:href="ieqn-227.tif"/><tex-math id="tex-ieqn-227"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-227"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-228">
<!--<alternatives><inline-graphic xlink:href="ieqn-228.tif"/><tex-math id="tex-ieqn-228"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-228"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-229">
<!--<alternatives><inline-graphic xlink:href="ieqn-229.tif"/><tex-math id="tex-ieqn-229"><![CDATA[2]]></tex-math>--><mml:math id="mml-ieqn-229"><mml:mn>2</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-230">
<!--<alternatives><inline-graphic xlink:href="ieqn-230.tif"/><tex-math id="tex-ieqn-230"><![CDATA[2]]></tex-math>--><mml:math id="mml-ieqn-230"><mml:mn>2</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-231">
<!--<alternatives><inline-graphic xlink:href="ieqn-231.tif"/><tex-math id="tex-ieqn-231"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-231"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-232">
<!--<alternatives><inline-graphic xlink:href="ieqn-232.tif"/><tex-math id="tex-ieqn-232"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-232"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-233">
<!--<alternatives><inline-graphic xlink:href="ieqn-233.tif"/><tex-math id="tex-ieqn-233"><![CDATA[P\# 7]]></tex-math>--><mml:math id="mml-ieqn-233"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>7</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-234">
<!--<alternatives><inline-graphic xlink:href="ieqn-234.tif"/><tex-math id="tex-ieqn-234"><![CDATA[13]]></tex-math>--><mml:math id="mml-ieqn-234"><mml:mn>13</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-235">
<!--<alternatives><inline-graphic xlink:href="ieqn-235.tif"/><tex-math id="tex-ieqn-235"><![CDATA[6]]></tex-math>--><mml:math id="mml-ieqn-235"><mml:mn>6</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-236">
<!--<alternatives><inline-graphic xlink:href="ieqn-236.tif"/><tex-math id="tex-ieqn-236"><![CDATA[5]]></tex-math>--><mml:math id="mml-ieqn-236"><mml:mn>5</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-237">
<!--<alternatives><inline-graphic xlink:href="ieqn-237.tif"/><tex-math id="tex-ieqn-237"><![CDATA[5]]></tex-math>--><mml:math id="mml-ieqn-237"><mml:mn>5</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-238">
<!--<alternatives><inline-graphic xlink:href="ieqn-238.tif"/><tex-math id="tex-ieqn-238"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-238"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-239">
<!--<alternatives><inline-graphic xlink:href="ieqn-239.tif"/><tex-math id="tex-ieqn-239"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-239"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-240">
<!--<alternatives><inline-graphic xlink:href="ieqn-240.tif"/><tex-math id="tex-ieqn-240"><![CDATA[P\# 8]]></tex-math>--><mml:math id="mml-ieqn-240"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-241">
<!--<alternatives><inline-graphic xlink:href="ieqn-241.tif"/><tex-math id="tex-ieqn-241"><![CDATA[29]]></tex-math>--><mml:math id="mml-ieqn-241"><mml:mn>29</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-242">
<!--<alternatives><inline-graphic xlink:href="ieqn-242.tif"/><tex-math id="tex-ieqn-242"><![CDATA[20]]></tex-math>--><mml:math id="mml-ieqn-242"><mml:mn>20</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-243">
<!--<alternatives><inline-graphic xlink:href="ieqn-243.tif"/><tex-math id="tex-ieqn-243"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-243"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-244">
<!--<alternatives><inline-graphic xlink:href="ieqn-244.tif"/><tex-math id="tex-ieqn-244"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-244"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-245">
<!--<alternatives><inline-graphic xlink:href="ieqn-245.tif"/><tex-math id="tex-ieqn-245"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-245"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-246">
<!--<alternatives><inline-graphic xlink:href="ieqn-246.tif"/><tex-math id="tex-ieqn-246"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-246"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-247">
<!--<alternatives><inline-graphic xlink:href="ieqn-247.tif"/><tex-math id="tex-ieqn-247"><![CDATA[P\# 9]]></tex-math>--><mml:math id="mml-ieqn-247"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>9</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-248">
<!--<alternatives><inline-graphic xlink:href="ieqn-248.tif"/><tex-math id="tex-ieqn-248"><![CDATA[6]]></tex-math>--><mml:math id="mml-ieqn-248"><mml:mn>6</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-249">
<!--<alternatives><inline-graphic xlink:href="ieqn-249.tif"/><tex-math id="tex-ieqn-249"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-249"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-250">
<!--<alternatives><inline-graphic xlink:href="ieqn-250.tif"/><tex-math id="tex-ieqn-250"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-250"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-251">
<!--<alternatives><inline-graphic xlink:href="ieqn-251.tif"/><tex-math id="tex-ieqn-251"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-251"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-252">
<!--<alternatives><inline-graphic xlink:href="ieqn-252.tif"/><tex-math id="tex-ieqn-252"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-252"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-253">
<!--<alternatives><inline-graphic xlink:href="ieqn-253.tif"/><tex-math id="tex-ieqn-253"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-253"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-254">
<!--<alternatives><inline-graphic xlink:href="ieqn-254.tif"/><tex-math id="tex-ieqn-254"><![CDATA[P\# 10]]></tex-math>--><mml:math id="mml-ieqn-254"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>10</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-255">
<!--<alternatives><inline-graphic xlink:href="ieqn-255.tif"/><tex-math id="tex-ieqn-255"><![CDATA[16]]></tex-math>--><mml:math id="mml-ieqn-255"><mml:mn>16</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-256">
<!--<alternatives><inline-graphic xlink:href="ieqn-256.tif"/><tex-math id="tex-ieqn-256"><![CDATA[8]]></tex-math>--><mml:math id="mml-ieqn-256"><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-257">
<!--<alternatives><inline-graphic xlink:href="ieqn-257.tif"/><tex-math id="tex-ieqn-257"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-257"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-258">
<!--<alternatives><inline-graphic xlink:href="ieqn-258.tif"/><tex-math id="tex-ieqn-258"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-258"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-259">
<!--<alternatives><inline-graphic xlink:href="ieqn-259.tif"/><tex-math id="tex-ieqn-259"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-259"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-260">
<!--<alternatives><inline-graphic xlink:href="ieqn-260.tif"/><tex-math id="tex-ieqn-260"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-260"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-261">
<!--<alternatives><inline-graphic xlink:href="ieqn-261.tif"/><tex-math id="tex-ieqn-261"><![CDATA[P\# 11]]></tex-math>--><mml:math id="mml-ieqn-261"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>11</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-262">
<!--<alternatives><inline-graphic xlink:href="ieqn-262.tif"/><tex-math id="tex-ieqn-262"><![CDATA[8]]></tex-math>--><mml:math id="mml-ieqn-262"><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-263">
<!--<alternatives><inline-graphic xlink:href="ieqn-263.tif"/><tex-math id="tex-ieqn-263"><![CDATA[6]]></tex-math>--><mml:math id="mml-ieqn-263"><mml:mn>6</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-264">
<!--<alternatives><inline-graphic xlink:href="ieqn-264.tif"/><tex-math id="tex-ieqn-264"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-264"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-265">
<!--<alternatives><inline-graphic xlink:href="ieqn-265.tif"/><tex-math id="tex-ieqn-265"><![CDATA[4]]></tex-math>--><mml:math id="mml-ieqn-265"><mml:mn>4</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-266">
<!--<alternatives><inline-graphic xlink:href="ieqn-266.tif"/><tex-math id="tex-ieqn-266"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-266"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-267">
<!--<alternatives><inline-graphic xlink:href="ieqn-267.tif"/><tex-math id="tex-ieqn-267"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-267"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-268">
<!--<alternatives><inline-graphic xlink:href="ieqn-268.tif"/><tex-math id="tex-ieqn-268"><![CDATA[P\# 12]]></tex-math>--><mml:math id="mml-ieqn-268"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-269">
<!--<alternatives><inline-graphic xlink:href="ieqn-269.tif"/><tex-math id="tex-ieqn-269"><![CDATA[28]]></tex-math>--><mml:math id="mml-ieqn-269"><mml:mn>28</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-270">
<!--<alternatives><inline-graphic xlink:href="ieqn-270.tif"/><tex-math id="tex-ieqn-270"><![CDATA[8]]></tex-math>--><mml:math id="mml-ieqn-270"><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-271">
<!--<alternatives><inline-graphic xlink:href="ieqn-271.tif"/><tex-math id="tex-ieqn-271"><![CDATA[9]]></tex-math>--><mml:math id="mml-ieqn-271"><mml:mn>9</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-272">
<!--<alternatives><inline-graphic xlink:href="ieqn-272.tif"/><tex-math id="tex-ieqn-272"><![CDATA[8]]></tex-math>--><mml:math id="mml-ieqn-272"><mml:mn>8</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-273">
<!--<alternatives><inline-graphic xlink:href="ieqn-273.tif"/><tex-math id="tex-ieqn-273"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-273"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-274">
<!--<alternatives><inline-graphic xlink:href="ieqn-274.tif"/><tex-math id="tex-ieqn-274"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-274"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-275">
<!--<alternatives><inline-graphic xlink:href="ieqn-275.tif"/><tex-math id="tex-ieqn-275"><![CDATA[P\# 13]]></tex-math>--><mml:math id="mml-ieqn-275"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>13</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-276">
<!--<alternatives><inline-graphic xlink:href="ieqn-276.tif"/><tex-math id="tex-ieqn-276"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-276"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-277">
<!--<alternatives><inline-graphic xlink:href="ieqn-277.tif"/><tex-math id="tex-ieqn-277"><![CDATA[12]]></tex-math>--><mml:math id="mml-ieqn-277"><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-278">
<!--<alternatives><inline-graphic xlink:href="ieqn-278.tif"/><tex-math id="tex-ieqn-278"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-278"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td style="background:#FFFFFF;"><inline-formula id="ieqn-279">
<!--<alternatives><inline-graphic xlink:href="ieqn-279.tif"/><tex-math id="tex-ieqn-279"><![CDATA[5]]></tex-math>--><mml:math id="mml-ieqn-279"><mml:mn>5</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-280">
<!--<alternatives><inline-graphic xlink:href="ieqn-280.tif"/><tex-math id="tex-ieqn-280"><![CDATA[91.11]]></tex-math>--><mml:math id="mml-ieqn-280"><mml:mn>91.11</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-281">
<!--<alternatives><inline-graphic xlink:href="ieqn-281.tif"/><tex-math id="tex-ieqn-281"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-281"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-282">
<!--<alternatives><inline-graphic xlink:href="ieqn-282.tif"/><tex-math id="tex-ieqn-282"><![CDATA[P\# 14]]></tex-math>--><mml:math id="mml-ieqn-282"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>14</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-283">
<!--<alternatives><inline-graphic xlink:href="ieqn-283.tif"/><tex-math id="tex-ieqn-283"><![CDATA[12]]></tex-math>--><mml:math id="mml-ieqn-283"><mml:mn>12</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-284">
<!--<alternatives><inline-graphic xlink:href="ieqn-284.tif"/><tex-math id="tex-ieqn-284"><![CDATA[7]]></tex-math>--><mml:math id="mml-ieqn-284"><mml:mn>7</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-285">
<!--<alternatives><inline-graphic xlink:href="ieqn-285.tif"/><tex-math id="tex-ieqn-285"><![CDATA[5]]></tex-math>--><mml:math id="mml-ieqn-285"><mml:mn>5</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-286">
<!--<alternatives><inline-graphic xlink:href="ieqn-286.tif"/><tex-math id="tex-ieqn-286"><![CDATA[5]]></tex-math>--><mml:math id="mml-ieqn-286"><mml:mn>5</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-287">
<!--<alternatives><inline-graphic xlink:href="ieqn-287.tif"/><tex-math id="tex-ieqn-287"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-287"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-288">
<!--<alternatives><inline-graphic xlink:href="ieqn-288.tif"/><tex-math id="tex-ieqn-288"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-288"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-289">
<!--<alternatives><inline-graphic xlink:href="ieqn-289.tif"/><tex-math id="tex-ieqn-289"><![CDATA[P\# 15]]></tex-math>--><mml:math id="mml-ieqn-289"><mml:mi>P</mml:mi><mml:mi mathvariant="normal">#</mml:mi><mml:mn>15</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-290">
<!--<alternatives><inline-graphic xlink:href="ieqn-290.tif"/><tex-math id="tex-ieqn-290"><![CDATA[6]]></tex-math>--><mml:math id="mml-ieqn-290"><mml:mn>6</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-291">
<!--<alternatives><inline-graphic xlink:href="ieqn-291.tif"/><tex-math id="tex-ieqn-291"><![CDATA[5]]></tex-math>--><mml:math id="mml-ieqn-291"><mml:mn>5</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-292">
<!--<alternatives><inline-graphic xlink:href="ieqn-292.tif"/><tex-math id="tex-ieqn-292"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-292"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-293">
<!--<alternatives><inline-graphic xlink:href="ieqn-293.tif"/><tex-math id="tex-ieqn-293"><![CDATA[3]]></tex-math>--><mml:math id="mml-ieqn-293"><mml:mn>3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-294">
<!--<alternatives><inline-graphic xlink:href="ieqn-294.tif"/><tex-math id="tex-ieqn-294"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-294"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-295">
<!--<alternatives><inline-graphic xlink:href="ieqn-295.tif"/><tex-math id="tex-ieqn-295"><![CDATA[100]]></tex-math>--><mml:math id="mml-ieqn-295"><mml:mn>100</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-296">
<!--<alternatives><inline-graphic xlink:href="ieqn-296.tif"/><tex-math id="tex-ieqn-296"><![CDATA[Total]]></tex-math>--><mml:math id="mml-ieqn-296"><mml:mi>T</mml:mi><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-297">
<!--<alternatives><inline-graphic xlink:href="ieqn-297.tif"/><tex-math id="tex-ieqn-297"><![CDATA[349]]></tex-math>--><mml:math id="mml-ieqn-297"><mml:mn>349</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-298">
<!--<alternatives><inline-graphic xlink:href="ieqn-298.tif"/><tex-math id="tex-ieqn-298"><![CDATA[199]]></tex-math>--><mml:math id="mml-ieqn-298"><mml:mn>199</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-299">
<!--<alternatives><inline-graphic xlink:href="ieqn-299.tif"/><tex-math id="tex-ieqn-299"><![CDATA[63]]></tex-math>--><mml:math id="mml-ieqn-299"><mml:mn>63</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-300">
<!--<alternatives><inline-graphic xlink:href="ieqn-300.tif"/><tex-math id="tex-ieqn-300"><![CDATA[60]]></tex-math>--><mml:math id="mml-ieqn-300"><mml:mn>60</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-301">
<!--<alternatives><inline-graphic xlink:href="ieqn-301.tif"/><tex-math id="tex-ieqn-301"><![CDATA[98.6]]></tex-math>--><mml:math id="mml-ieqn-301"><mml:mn>98.6</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
<td><inline-formula id="ieqn-302">
<!--<alternatives><inline-graphic xlink:href="ieqn-302.tif"/><tex-math id="tex-ieqn-302"><![CDATA[99.3]]></tex-math>--><mml:math id="mml-ieqn-302"><mml:mn>99.3</mml:mn></mml:math>
<!--</alternatives>--></inline-formula></td>
</tr>
</tbody>
</table>
<!--</alternatives>-->
</table-wrap>
<p>The results showed that the PSO technique is more effective than GA technique in reducing the number of generations. The PSO technique required 199 generations to cover 99.3% of all def-use paths, while the GA technique needed 349 generations to cover 98.6% of all def-use paths.</p>
<p>For instance, for program P#8, the GA-based system needed 29 generations to cover 100% of all def-use paths. On the other hand, the PSO-based system needed 20 generations to cover 100% of all def-use paths. For the program P#4, both the PSO-based and GA-based systems reached the mGens of generations. The two techniques fulfilled only 88.89% coverage because this program contains a number of infeasible paths. For program P#13, the PSO-based system covered 100% in 12 generations, while the GA-based system reached the maximum number of generations (mGens &#x003D; 100) and covered only 91.11% of all def-use paths.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Part of the report of the path generation module</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-5.png"/>
</fig>
<p><xref ref-type="fig" rid="fig-7">Fig. 7</xref> compares the PSO-based system and the GA-based system according to the number of generations needed to cover all def-uses paths for every subject program. According to this comparison, the PSO system is more effective than the GA-based system in reducing the number of generations needed to accomplish 100% def-use path coverage.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>The technique report for the 8 paths that covered all def-use pairs of the example program</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-6.png"/>
</fig>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Number of generations of the GA-based and the PSO-based systems</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-7.png"/>
</fig>
<p><xref ref-type="fig" rid="fig-8">Fig. 8</xref> compares the PSO-based and the GA-based systems according to the number of paths created to satisfy all def-uses paths. The PSO-based technique generated 60 paths for satisfying 99.3% of all def-use paths, while the GA-based technique generated 63 paths to cover 98.6% of all def-use paths.</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>Number of paths created by the GA-based and the PSO-based systems</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-8.png"/>
</fig>
<p>According to this comparison, the PSO-based system is more effective than the GA-based system in reducing the number of paths for 5 out of the 15 programs. In the other 9 programs, the two systems created an equal number of paths. In P#13 the GA-based system created a number of paths smaller than the PSO-based system but it reached only 91.11% coverage, while the PSO-based system reached 100% coverage.</p>
</sec>
<sec id="s7">
<label>7</label>
<title>Conclusions and Future Work</title>
<p>This paper introduced a path-testing approach, which applies a PSO algorithm to construct test paths to satisfy the all-uses criterion. For programs that contain loops, the presented approach creates the paths according to the ZOT-criterion. An experiment that included 15 C# programs has been conducted to evaluate the efficiency of the presented technique compared to a GA-based path generation technique. The results showed that the PSO-based technique required 199 generations, while the GA-based technique needed 349 generations, to satisfy all def-uses of all programs. The PSO-based technique generated 60 paths and the GA-based technique generated 63 paths to satisfy all def-uses. In the future work, the experiments will be re-conducted to compare the time consumed by the two techniques using the same machine. Also, we will focus on conducting the experiments using another programing language such as Java with large data set. In addition, in the future work, we will focus on developing a system to find a set of test data to cover the generated paths.</p>
</sec>
</body>
<back><fn-group><fn>
<p><bold>Funding Statement:</bold> Taif University Researchers Supporting Project (TURSP) under number (TURSP-2020/73), Taif University, Taif, Saudi Arabia.</p>
</fn>
<fn fn-type="conflict">
<p><bold>Conflicts of Interest:</bold> The authors declare that they have no conflicts of interest to report regarding the present study.</p>
</fn>
</fn-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1">
<label>[1]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A.</given-names> 
<surname>Bertolino</surname></string-name> and<string-name>
<given-names>M.</given-names> 
<surname>Marre</surname></string-name>
</person-group>, &#x201C;
<article-title>Automatic generation of path covers based on the control flow analysis of computer programs</article-title>,&#x201D; 
<source>IEEE Transactions on Software Engineering</source>, vol. 
<volume>20</volume>, no. 
<issue>12</issue>, pp. 
<fpage>885</fpage>&#x2013;
<lpage>899</lpage>, 
<year iso-8601-date="1994">1994</year>.</mixed-citation>
</ref>
<ref id="ref-2">
<label>[2]</label><mixed-citation publication-type="other">
<person-group person-group-type="author"><string-name>
<given-names>T.</given-names> 
<surname>McCabe</surname></string-name>
</person-group>, &#x201C;
<article-title>Structural testing: A software testing methodology using the cyclomatic complexity metric</article-title>.&#x201D; 
<comment>NIST Special Publication 500-99, Washington D.C.</comment>, 
<year iso-8601-date="1982">1982</year>.</mixed-citation>
</ref>
<ref id="ref-3">
<label>[3]</label><mixed-citation publication-type="other">
<person-group person-group-type="author"><string-name>
<given-names>J.</given-names> 
<surname>Poole</surname></string-name>
</person-group>, &#x201C;
<article-title>A Method to Determine a Basis Set of Paths to Perform Program Testing, NIST Interagency/Internal Report (NISTIR)-5737, National Institute of Standards and Technology</article-title>,&#x201D; Gaithersburg, MD, 1995. Available:<uri>http://hissa.nist.gov//publications/nistir5737</uri>, 
<comment>last access 28-12-2020</comment>.</mixed-citation>
</ref>
<ref id="ref-4">
<label>[4]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>Z.</given-names> 
<surname>Guangmei</surname></string-name>,<string-name>
<given-names>C.</given-names> 
<surname>Rui</surname></string-name>,<string-name>
<given-names>L.</given-names> 
<surname>Xiaowei</surname></string-name> and<string-name>
<given-names>H.</given-names> 
<surname>Congying</surname></string-name>
</person-group>, &#x201C;
<article-title>The automatic generation of basis set of path for path testing</article-title>,&#x201D; in<conf-name>Proceedings of 14th Asian Test Symposium (ATS&#x2019;05)</conf-name>, Calcutta, India, pp. 
<fpage>46</fpage>&#x2013;
<lpage>51</lpage>, 
<year iso-8601-date="2005">2005</year>.</mixed-citation>
</ref>
<ref id="ref-5">
<label>[5]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>J.</given-names> 
<surname>Yan</surname></string-name> and<string-name>
<given-names>J.</given-names> 
<surname>Zhang</surname></string-name>
</person-group>, &#x201C;
<article-title>An efficient method to generate feasible paths for basis path testing</article-title>,&#x201D; 
<source>Information Processing Letters</source>, vol. 
<volume>107</volume>, no. 
<issue>3&#x2013;4</issue>, pp. 
<fpage>87</fpage>&#x2013;
<lpage>92</lpage>, 
<year iso-8601-date="2008">2008</year>.</mixed-citation>
</ref>
<ref id="ref-6">
<label>[6]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>Z.</given-names> 
<surname>Zhonglin</surname></string-name> and<string-name>
<given-names>M.</given-names> 
<surname>Lingxia</surname></string-name>
</person-group>, &#x201C;
<article-title>An improved method of acquiring basis path for software testing</article-title>,&#x201D; in<conf-name>Proceedings of 5th International Conference on Computer Science &#x0026; Education</conf-name>, 
<publisher-loc>Hefei</publisher-loc>, pp. 
<fpage>1891</fpage>&#x2013;
<lpage>1894</lpage>, 
<year iso-8601-date="2010">2010</year>.</mixed-citation>
</ref>
<ref id="ref-7">
<label>[7]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>D.</given-names> 
<surname>Qingfeng</surname></string-name> and<string-name>
<given-names>D.</given-names> 
<surname>Xiao</surname></string-name>
</person-group>, &#x201C;
<article-title>An improved algorithm for basis path testing</article-title>,&#x201D; in<conf-name>Proceedings of 2011 International Conference on Business Management and Electronic Information, Guangzhou</conf-name>, pp. 
<fpage>175</fpage>&#x2013;
<lpage>178</lpage>, 
<year iso-8601-date="2011">2011</year>.</mixed-citation>
</ref>
<ref id="ref-8">
<label>[8]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A. S.</given-names> 
<surname>Ghiduk</surname></string-name>
</person-group>, &#x201C;
<article-title>Automatic generation of basis test paths using variable length genetic algorithm</article-title>,&#x201D; 
<source>Information Processing Letters</source>, vol. 
<volume>114</volume>, no. 
<issue>6</issue>, pp. 
<fpage>304</fpage>&#x2013;
<lpage>316</lpage>, 
<year iso-8601-date="2014">2014</year>.</mixed-citation>
</ref>
<ref id="ref-9">
<label>[9]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>J.</given-names> 
<surname>Kennedy</surname></string-name> and<string-name>
<given-names>R.</given-names> 
<surname>Eberhart</surname></string-name>
</person-group>, &#x201C;
<article-title>Particle swarm optimization</article-title>,&#x201D; in<conf-name>Proceedings of IEEE International Conference on Neural Networks</conf-name>, Perth, WA, Australia, pp. 
<fpage>1942</fpage>&#x2013;
<lpage>1948</lpage>, 
<year iso-8601-date="1995">1995</year>.</mixed-citation>
</ref>
<ref id="ref-10">
<label>[10]</label><mixed-citation publication-type="book">
<person-group person-group-type="author"><string-name>
<given-names>J.</given-names> 
<surname>Kennedy</surname></string-name>
</person-group>, &#x201C;<chapter-title>Particle swarm optimization</chapter-title>,&#x201D; In: C. Sammut and G. I. Webb (eds.), 
<source>Encyclopedia of Machine Learning</source>, 
<publisher-loc>Springer, Boston, MA</publisher-loc>, pp. 32&#x2013;45, 
<year iso-8601-date="2011">2011</year>.</mixed-citation>
</ref>
<ref id="ref-11">
<label>[11]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>K.</given-names> 
<surname>Wang</surname></string-name>,<string-name>
<given-names>L.</given-names> 
<surname>Huang</surname></string-name>,<string-name>
<given-names>C.</given-names> 
<surname>Zhou</surname></string-name> and<string-name>
<given-names>W.</given-names> 
<surname>Pang</surname></string-name>
</person-group>, &#x201C;
<article-title>Particle swarm optimization for traveling salesman problem</article-title>,&#x201D; in<conf-name>Proceedings of the 2003 International Conference on Machine Learning and Cybernetics (IEEE Cat. No.03EX693)</conf-name>, 
<publisher-loc>Xi&#x0027;an</publisher-loc>, vol. 
<volume>3</volume>, pp. 
<fpage>1583</fpage>&#x2013;
<lpage>1585</lpage>, 
<year iso-8601-date="2003">2003</year>.</mixed-citation>
</ref>
<ref id="ref-12">
<label>[12]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A.</given-names> 
<surname>Li</surname></string-name> and<string-name>
<given-names>Y.</given-names> 
<surname>Zhang</surname></string-name>
</person-group>, &#x201C;
<article-title>Automatic generation method of test data for software structure based on PSO</article-title>,&#x201D; 
<source>Computer Engineering</source>, vol. 
<volume>34</volume>, no. 
<issue>6</issue>, pp. 
<fpage>93</fpage>&#x2013;
<lpage>97</lpage>, 
<year iso-8601-date="2008">2008</year>.</mixed-citation>
</ref>
<ref id="ref-13">
<label>[13]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>A.</given-names> 
<surname>Li</surname></string-name> and<string-name>
<given-names>Y.</given-names> 
<surname>Zhang</surname></string-name>
</person-group>, &#x201C;
<article-title>Automatic generating all-path test data of a program based on PSO</article-title>,&#x201D; in<conf-name>The 2009 WRI World Congress on Software Engineering (WCSE&#x0027;09)</conf-name>, 
<publisher-loc>Los Alamitos</publisher-loc>: 
<publisher-name>IEEE</publisher-name>, pp. 
<fpage>189</fpage>&#x2013;
<lpage>193</lpage>, 
<year iso-8601-date="2009">2009</year>.</mixed-citation>
</ref>
<ref id="ref-14">
<label>[14]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>P. M. S.</given-names> 
<surname>Bueno</surname></string-name>,<string-name>
<given-names>W. E.</given-names> 
<surname>Wong</surname></string-name> and<string-name>
<given-names>M.</given-names> 
<surname>Jino</surname></string-name>
</person-group>, &#x201C;
<article-title>Automatic test data generation using particle systems</article-title>,&#x201D; in<conf-name>Proceedings of the 2008 ACM Symposium on Applied Computing</conf-name>, pp. 
<fpage>809</fpage>&#x2013;
<lpage>814</lpage>, 
<year iso-8601-date="2008">2008</year>.</mixed-citation>
</ref>
<ref id="ref-15">
<label>[15]</label><mixed-citation publication-type="book">
<person-group person-group-type="author"><string-name>
<given-names>K.</given-names> 
<surname>Agrawal</surname></string-name> and<string-name>
<given-names>G.</given-names> 
<surname>Srivastava</surname></string-name>
</person-group>, 
<source>Towards software test data generation using discrete quantum particle swarm optimization</source>. 
<publisher-loc>Mysore, India</publisher-loc>: 
<publisher-name>ISEC</publisher-name>, 
<fpage>65</fpage>&#x2013; 
<lpage>68</lpage>, 
<year iso-8601-date="2010">2010</year>.</mixed-citation>
</ref>
<ref id="ref-16">
<label>[16]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>N.</given-names> 
<surname>Narmada</surname></string-name> and<string-name>
<given-names>D.</given-names> 
<surname>Mohapatra</surname></string-name>
</person-group>, &#x201C;
<article-title>Automatic test data generation for data flow testing using particle swarm optimization</article-title>,&#x201D; 
<source>Communications in Computer and Information Science</source>, vol. 
<volume>95</volume>, no. 
<issue>1</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>12</lpage>, 
<year iso-8601-date="2010">2010</year>.</mixed-citation>
</ref>
<ref id="ref-17">
<label>[17]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>P.</given-names> 
<surname>Nie</surname></string-name>,<string-name>
<given-names>J.</given-names> 
<surname>Geng</surname></string-name> and<string-name>
<given-names>Z.</given-names> 
<surname>Qin</surname></string-name>
</person-group>, &#x201C;
<article-title>Multi-path oriented particle swarm optimization automatic test case generation algorithm</article-title>,&#x201D; 
<source>Computer Integrated Manufacturing Systems</source>, vol. 
<volume>18</volume>, no. 
<issue>1</issue>, pp. 
<fpage>216</fpage>&#x2013;
<lpage>223</lpage>, 
<year iso-8601-date="2012">2012</year>.</mixed-citation>
</ref>
<ref id="ref-18">
<label>[18]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>F.</given-names> 
<surname>Almansour</surname></string-name>,<string-name>
<given-names>R.</given-names> 
<surname>Alroobaea</surname></string-name> and<string-name>
<given-names>A. S.</given-names> 
<surname>Ghiduk</surname></string-name>
</person-group>, &#x201C;
<article-title>An empirical comparison of the efficiency and effectiveness of genetic algorithms and adaptive random techniques in data-flow testing</article-title>,&#x201D; 
<source>IEEE Access</source>, vol. 
<volume>8</volume>, no. 
<issue>1</issue>, pp. 
<fpage>12884</fpage>&#x2013;
<lpage>12896</lpage>, 
<year iso-8601-date="2020">2020</year>.</mixed-citation>
</ref>
<ref id="ref-19">
<label>[19]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A. S.</given-names> 
<surname>Ghiduk</surname></string-name> and<string-name>
<given-names>S.</given-names> 
<surname>Elzoughdy</surname></string-name>
</person-group>, &#x201C;
<article-title>CHOMK: Concurrent higher-order mutants killing using genetic algorithm</article-title>,&#x201D; 
<source>Arabian Journal for Science and Engineering</source>, vol. 
<volume>43</volume>, no. 
<issue>12</issue>, pp. 
<fpage>7907</fpage>&#x2013;
<lpage>7922</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-20">
<label>[20]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A. S.</given-names> 
<surname>Ghiduk</surname></string-name>,<string-name>
<given-names>M. R.</given-names> 
<surname>Girgis</surname></string-name> and<string-name>
<given-names>M.</given-names> 
<surname>Hashim</surname></string-name>
</person-group>, &#x201C;
<article-title>Reducing the cost of higher-order mutation testing</article-title>,&#x201D; 
<source>Arabian Journal for Science and Engineering</source>, vol. 
<volume>43</volume>, no. 
<issue>12</issue>, pp. 
<fpage>7473</fpage>&#x2013;
<lpage>7486</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-21">
<label>[21]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A. S.</given-names> 
<surname>Ghiduk</surname></string-name>
</person-group>, &#x201C;
<article-title>Reducing the number of higher-order mutants with the aid of data flow</article-title>,&#x201D; 
<source>e-Informatica Software Engineering Journal</source>, vol. 
<volume>10</volume>, no. 
<issue>1</issue>, pp. 
<fpage>31</fpage>&#x2013;
<lpage>50</lpage>, 
<year iso-8601-date="2016">2016</year>.</mixed-citation>
</ref>
<ref id="ref-22">
<label>[22]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>M. R.</given-names> 
<surname>Girgis</surname></string-name>,<string-name>
<given-names>A. S.</given-names> 
<surname>Ghiduk</surname></string-name> and<string-name>
<given-names>E. H.</given-names> 
<surname>Abd-Elkawy</surname></string-name>
</person-group>, &#x201C;
<article-title>Automatic generation of data flow test paths using a genetic algorithm</article-title>,&#x201D; 
<source>International Journal of Computer Applications</source>, vol. 
<volume>89</volume>, no. 
<issue>12</issue>, pp. 
<fpage>29</fpage>&#x2013;
<lpage>36</lpage>, 
<year iso-8601-date="2014">2014</year>.</mixed-citation>
</ref>
<ref id="ref-23">
<label>[23]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>B.</given-names> 
<surname>Hoseini</surname></string-name> and<string-name>
<given-names>S.</given-names> 
<surname>Jalili</surname></string-name>
</person-group>, &#x201C;
<article-title>Automatic test path generation from sequence diagram using genetic algorithm</article-title>,&#x201D; in<conf-name>Proceedings of 7&#x0027;th International Symposium on Telecommunications (IST&#x0027;2014)</conf-name>, 
<publisher-loc>Tehran</publisher-loc>, pp. 
<fpage>106</fpage>&#x2013;
<lpage>111</lpage>, 
<year iso-8601-date="2014">2014</year>.</mixed-citation>
</ref>
<ref id="ref-24">
<label>[24]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>K.</given-names> 
<surname>Niveth</surname></string-name> and<string-name>
<given-names>K.</given-names> 
<surname>Vipin</surname></string-name>
</person-group>, &#x201C;
<article-title>Automated test path generation using genetic algorithm</article-title>,&#x201D; 
<source>International Journal of Engineering Research and Technology</source>, vol. 
<volume>6</volume>, no. 
<issue>7</issue>, pp. 
<fpage>469</fpage>&#x2013;
<lpage>472</lpage>, 
<year iso-8601-date="2017">2017</year>.</mixed-citation>
</ref>
<ref id="ref-25">
<label>[25]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A.</given-names> 
<surname>Arwan</surname></string-name> and<string-name>
<given-names>D.</given-names> 
<surname>Sagita</surname></string-name>
</person-group>, &#x201C;
<article-title>Determining basis test paths using genetic algorithm and J48</article-title>,&#x201D; 
<source>International Journal of Electrical and Computer Engineering</source>, vol. 
<volume>8</volume>, no. 
<issue>5</issue>, pp. 
<fpage>3333</fpage>&#x2013;
<lpage>3340</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-26">
<label>[26]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A.</given-names> 
<surname>Shanthi</surname></string-name> and<string-name>
<given-names>G.</given-names> 
<surname>Mohankumar</surname></string-name>
</person-group>, &#x201C;
<article-title>Novel approach for automated test path generation using Tabu search algorithm</article-title>,&#x201D; 
<source>International Journal of Computer Applications</source>, vol. 
<volume>48</volume>, no. 
<issue>13</issue>, pp. 
<fpage>28</fpage>&#x2013;
<lpage>34</lpage>, 
<year iso-8601-date="2012">2012</year>.</mixed-citation>
</ref>
<ref id="ref-27">
<label>[27]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>P.</given-names> 
<surname>Jain</surname></string-name> and<string-name>
<given-names>A.</given-names> 
<surname>Solanki</surname></string-name>
</person-group>, &#x201C;
<article-title>A hybrid approach for test path generation and prioritization using depth first search and Tabu search algorithm</article-title>,&#x201D; 
<source>Journal of Software Engineering Tools and Technology Trends</source>, vol. 
<volume>2</volume>, no. 
<issue>2</issue>, pp. 
<fpage>7</fpage>&#x2013;
<lpage>20</lpage>, 
<year iso-8601-date="2015">2015</year>.</mixed-citation>
</ref>
<ref id="ref-28">
<label>[28]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>X.</given-names> 
<surname>Bao</surname></string-name>,<string-name>
<given-names>Z.</given-names> 
<surname>Xiong</surname></string-name>,<string-name>
<given-names>N.</given-names> 
<surname>Zhang</surname></string-name>,<string-name>
<given-names>J.</given-names> 
<surname>Qian</surname></string-name>,<string-name>
<given-names>B.</given-names> 
<surname>Wu</surname></string-name><etal>et al.</etal>
</person-group><italic>,</italic> &#x201C;
<article-title>Path-oriented test cases generation based adaptive genetic algorithm</article-title>,&#x201D; 
<source>PLoS One</source>, vol. 
<volume>12</volume>, no. 
<issue>11</issue>, pp. 
<fpage>e0187471</fpage>, 
<year iso-8601-date="2017">2017</year>.</mixed-citation>
</ref>
<ref id="ref-29">
<label>[29]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>A. A.</given-names> 
<surname>Kyaw</surname></string-name> and<string-name>
<given-names>M. M.</given-names> 
<surname>Min</surname></string-name>
</person-group>, &#x201C;
<article-title>Test path optimization algorithm compared with GA based approach</article-title>,&#x201D; in<conf-name>Genetic and Evolutionary Computing, Advances in Intelligent Systems and Computing</conf-name>, 
<publisher-loc>Cham</publisher-loc>: 
<publisher-name>Springer</publisher-name>, vol. 
<volume>387</volume>, 
<year iso-8601-date="2016">2016</year>.</mixed-citation>
</ref>
<ref id="ref-30">
<label>[30]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>M.</given-names> 
<surname>Bures</surname></string-name> and<string-name>
<given-names>B. S.</given-names> 
<surname>Ahmed</surname></string-name>
</person-group>, &#x201C;
<article-title>Employment of multiple algorithms for optimal path-based test selection strategy</article-title>,&#x201D; 
<source>Information and Software Technology</source>, vol. 
<volume>114</volume>, no. 
<issue>4</issue>, pp. 
<fpage>21</fpage>&#x2013;
<lpage>36</lpage>, 
<year iso-8601-date="2019">2019</year>.</mixed-citation>
</ref>
<ref id="ref-31">
<label>[31]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>V. N. S.</given-names> 
<surname>Shailja Gupta</surname></string-name>
</person-group>, &#x201C;
<article-title>Test path generation using cellular automata</article-title>,&#x201D; 
<source>International Journal of Engineering and Computer Science</source>, vol. 
<volume>5</volume>, no. 
<issue>6</issue>, pp. 16846&#x2013;16854, 
<year iso-8601-date="2016">2016</year>.</mixed-citation>
</ref>
<ref id="ref-32">
<label>[32]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<surname>Haraty</surname> 
<given-names>R. A.</given-names></string-name>,<string-name>
<surname>Mansour</surname> 
<given-names>N.</given-names></string-name> and<string-name>
<surname>Zeitunlian</surname> 
<given-names>H.</given-names></string-name>
</person-group>, &#x201C;
<article-title>Metaheuristic Algorithm for State-Based Software Testing</article-title>,&#x201D; 
<source>Applied Artificial Intelligence</source>, vol. 
<volume>32</volume>, no. 
<issue>2</issue>, pp. 
<fpage>197</fpage>&#x2013;
<lpage>213</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-33">
<label>[33]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<surname>Haraty</surname> 
<given-names>R. A.</given-names></string-name>,<string-name>
<surname>Mansour</surname> 
<given-names>N.</given-names></string-name>,<string-name>
<surname>Moukahal</surname> 
<given-names>L.</given-names></string-name> and<string-name>
<surname>Khalil</surname> 
<given-names>I.</given-names></string-name>
</person-group>, &#x201C;
<article-title>Regression test cases prioritization using clustering and code change relevance</article-title>,&#x201D; 
<source>International Journal of Software Engineering and Knowledge Engineering</source>, vol. 
<volume>26</volume>, no. 
<issue>5</issue>, pp. 
<fpage>733</fpage>&#x2013;
<lpage>768</lpage>, 
<year iso-8601-date="2016">2016</year>.</mixed-citation>
</ref>
<ref id="ref-34">
<label>[34]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>H. A.</given-names> 
<surname>Shaar</surname></string-name> and<string-name>
<given-names>R. A.</given-names> 
<surname>Haraty</surname></string-name>
</person-group>, &#x201C;
<article-title>Modelling and automated blackbox regression testing of web applications</article-title>,&#x201D; 
<source>Journal of Theoretical and Applied Information Technology</source>, vol. 
<volume>4</volume>, no. 
<issue>12</issue>, pp. 1182&#x2013;1198, 
<comment>ISSN: 1192-8645</comment>, 
<year iso-8601-date="2008">2008</year>.</mixed-citation>
</ref>
<ref id="ref-35">
<label>[35]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>R. A.</given-names> 
<surname>Haraty</surname></string-name>,<string-name>
<given-names>N.</given-names> 
<surname>Mansour</surname></string-name> and<string-name>
<given-names>B. A.</given-names> 
<surname>Daou</surname></string-name>
</person-group>, &#x201C;
<article-title>Regression testing of database applications</article-title>,&#x201D; 
<source>Journal of Database Management</source>, vol. 
<volume>13</volume>, no. 
<issue>2</issue>, pp. 285&#x2013;289, 
<year iso-8601-date="2002">2002</year>.</mixed-citation>
</ref>
<ref id="ref-36">
<label>[36]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>S.</given-names> 
<surname>Rapps</surname></string-name> and<string-name>
<given-names>E.</given-names> 
<surname>Weyuker</surname></string-name>
</person-group>, &#x201C;
<article-title>Selecting software test data using data flow information</article-title>,&#x201D; 
<source>IEEE Transactions on Software Engineering</source>, vol. 
<volume>11</volume>, no. 
<issue>4</issue>, pp. 
<fpage>367</fpage>&#x2013;
<lpage>375</lpage>, 
<year iso-8601-date="1985">1985</year>.</mixed-citation>
</ref>
<ref id="ref-37">
<label>[37]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>M. R.</given-names> 
<surname>Girgis</surname></string-name>
</person-group>, &#x201C;
<article-title>An experimental evaluation of a symbolic execution system</article-title>,&#x201D; 
<source>Software Engineering Journal</source>, vol. 
<volume>7</volume>, no. 
<issue>4</issue>, pp. 
<fpage>285</fpage>&#x2013;
<lpage>290</lpage>, 
<year iso-8601-date="1992">1992</year>.</mixed-citation>
</ref>
<ref id="ref-38">
<label>[38]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>M. R.</given-names> 
<surname>Girgis</surname></string-name>
</person-group>, &#x201C;
<article-title>Using symbolic execution and data flow criteria to aid test data selection</article-title>,&#x201D; 
<source>Journal of Software Testing, Verification and Reliability</source>, vol. 
<volume>3</volume>, no. 
<issue>2</issue>, pp. 
<fpage>101</fpage>&#x2013;
<lpage>112</lpage>, 
<year iso-8601-date="1993">1993</year>.</mixed-citation>
</ref>
<ref id="ref-39">
<label>[39]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>S.</given-names> 
<surname>Sengupta</surname></string-name>,<string-name>
<given-names>S.</given-names> 
<surname>Basak</surname></string-name> and<string-name>
<given-names>R.</given-names> 
<surname>Peters</surname></string-name>
</person-group>, &#x201C;
<article-title>Particle swarm optimization: A survey of historical and recent developments with hybridization perspectives</article-title>,&#x201D; 
<source>Machine Learning and Knowledge Extraction</source>, vol. 
<volume>1</volume>, no. 
<issue>1</issue>, pp. 
<fpage>157</fpage>&#x2013;
<lpage>191</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-40">
<label>[40]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>R.</given-names> 
<surname>Eberhart</surname></string-name> and<string-name>
<given-names>Y.</given-names> 
<surname>Shi</surname></string-name>
</person-group>, &#x201C;
<article-title>Comparing inertia weights and constriction factors in particle swarm optimization</article-title>,&#x201D; in<conf-name>Proceedings of 2000 Congress on Evolutionary Computation</conf-name>, 
<publisher-loc>San Diego, CA</publisher-loc>, pp. 
<fpage>84</fpage>&#x2013;
<lpage>88</lpage>, 
<year iso-8601-date="2000">2000</year>.</mixed-citation>
</ref>
<ref id="ref-41">
<label>[41]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>M.</given-names> 
<surname>Clerc</surname></string-name>
</person-group>, &#x201C;
<article-title>The swarm and the queen: Towards a deterministic and adaptive particle swarm optimization</article-title>,&#x201D; in<conf-name>Proceedings of 1999 Congress on Evolutionary Computation</conf-name>, Washington, DC, USA, pp. 
<fpage>1951</fpage>&#x2013;
<lpage>1957</lpage>, 
<year iso-8601-date="1999">1999</year>.</mixed-citation>
</ref>
<ref id="ref-42">
<label>[42]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>M. R.</given-names> 
<surname>Girgis</surname></string-name>
</person-group>, &#x201C;
<article-title>Automatic test data generation for data flow testing using a genetic algorithm</article-title>,&#x201D; 
<source>Journal of Universal computer Science</source>, vol. 
<volume>11</volume>, no. 
<issue>5</issue>, pp. 
<fpage>898</fpage>&#x2013;
<lpage>915</lpage>, 
<year iso-8601-date="2005">2005</year>.</mixed-citation>
</ref>
<ref id="ref-43">
<label>[43]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A. S.</given-names> 
<surname>Ghiduk</surname></string-name> and<string-name>
<given-names>M.</given-names> 
<surname>Rokaya</surname></string-name>
</person-group>, &#x201C;
<article-title>An empirical evaluation of the subtlety of the data-flow based higher-order mutants</article-title>,&#x201D; 
<source>Journal of Theoretical and Applied Information Technology</source>, vol. 
<volume>97</volume>, no. 
<issue>15</issue>, pp. 
<fpage>4061</fpage>&#x2013;
<lpage>4074</lpage>, 
<year iso-8601-date="2019">2019</year>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>