<?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">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">15294</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2021.015294</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Feasibility-Guided Constraint-Handling Techniques for Engineering Optimization Problems</article-title>
<alt-title alt-title-type="left-running-head">Feasibility-Guided Constraint-Handling Techniques for Engineering Optimization Problems</alt-title>
<alt-title alt-title-type="right-running-head">Feasibility-Guided Constraint-Handling Techniques for Engineering Optimization Problems</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author" corresp="yes">
<name name-style="western">
<surname>Jan</surname>
<given-names>Muhammad Asif</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
<email>majan.math@gmail.com</email></contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western">
<surname>Mahmood</surname>
<given-names>Yasir</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western">
<surname>Khan</surname>
<given-names>Hidayat Ullah</given-names>
</name>
<xref ref-type="aff" rid="aff-2">2</xref></contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western">
<surname>Mashwani</surname>
<given-names>Wali Khan</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-5" contrib-type="author">
<name name-style="western">
<surname>Uddin</surname>
<given-names>Muhammad Irfan</given-names>
</name>
<xref ref-type="aff" rid="aff-3">3</xref></contrib>
<contrib id="author-6" contrib-type="author">
<name name-style="western">
<surname>Mahmoud</surname>
<given-names>Marwan</given-names>
</name>
<xref ref-type="aff" rid="aff-4">4</xref></contrib>
<contrib id="author-7" contrib-type="author">
<name name-style="western">
<surname>Khanum</surname>
<given-names>Rashida Adeeb</given-names>
</name>
<xref ref-type="aff" rid="aff-5">5</xref></contrib>
<contrib id="author-8" contrib-type="author">
<name name-style="western"><surname>Ikramullah</surname>
</name>
<xref ref-type="aff" rid="aff-6">6</xref></contrib>
<contrib id="author-9" contrib-type="author">
<name name-style="western">
<surname>Mast</surname>
<given-names>Noor</given-names>
</name>
<xref ref-type="aff" rid="aff-3">3</xref></contrib>
<aff id="aff-1"><label>1</label><institution>Institute of Numerical Sciences, Kohat University of Science &#x0026; Technology</institution>, <addr-line>Kohat</addr-line>, <country>Pakistan</country></aff>
<aff id="aff-2"><label>2</label><institution>Department of Economics, Abbottabad University of Science &#x0026; Technology</institution>, <addr-line>Abbottabad</addr-line>, <country>Pakistan</country></aff>
<aff id="aff-3"><label>3</label><institution>Institute of Computing, Kohat University of Science &#x0026; Technology</institution>, <addr-line>Kohat</addr-line>, <country>Pakistan</country></aff>
<aff id="aff-4"><label>4</label><institution>Faculty of Applied Studies, King Abdulaziz University</institution>, <addr-line>Jeddah</addr-line>, <country>Saudi Arabia</country></aff>
<aff id="aff-5"><label>5</label><institution>Jinnah College for Women, University of Peshawar</institution>, <addr-line>Peshawar</addr-line>, <country>Pakistan</country></aff>
<aff id="aff-6"><label>6</label><institution>Department of Physics, Kohat University of Science &#x0026; Technology</institution>, <addr-line>Kohat</addr-line>, <country>Pakistan</country></aff>
</contrib-group>
<author-notes><corresp id="cor1">&#x002A;Corresponding Author: Muhammad Asif Jan. Email: <email>majan.math@gmail.com</email>; <email>majan@kust.edu.pk</email></corresp></author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2021-01-07">
<day>07</day>
<month>01</month>
<year>2021</year>
</pub-date>
<volume>67</volume>
<issue>3</issue>
<fpage>2845</fpage>
<lpage>2862</lpage>
<history>
<date date-type="received">
<day>14</day>
<month>11</month>
<year>2020</year>
</date>
<date date-type="accepted">
<day>02</day>
<month>01</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2021 Jan et al.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Jan 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_CMC_15294.pdf"></self-uri>
<abstract>
<p>The particle swarm optimization (PSO) algorithm is an established nature-inspired population-based meta-heuristic that replicates the synchronizing movements of birds and fish. PSO is essentially an unconstrained algorithm and requires constraint handling techniques (CHTs) to solve constrained optimization problems (COPs). For this purpose, we integrate two CHTs, the superiority of feasibility (SF) and the violation constraint-handling (VCH), with a PSO. These CHTs distinguish feasible solutions from infeasible ones. Moreover, in SF, the selection of infeasible solutions is based on their degree of constraint violations, whereas in VCH, the number of constraint violations by an infeasible solution is of more importance. Therefore, a PSO is adapted for constrained optimization, yielding two constrained variants, denoted SF-PSO and VCH-PSO. Both SF-PSO and VCH-PSO are evaluated with respect to five engineering problems: the Himmelblau&#x2019;s nonlinear optimization, the welded beam design, the spring design, the pressure vessel design, and the three-bar truss design. The simulation results show that both algorithms are consistent in terms of their solutions to these problems, including their different available versions. Comparison of the SF-PSO and the VCH-PSO with other existing algorithms on the tested problems shows that the proposed algorithms have lower computational cost in terms of the number of function evaluations used. We also report our disagreement with some unjust comparisons made by other researchers regarding the tested problems and their different variants.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Constrained evolutionary optimization</kwd>
<kwd>constraint handling techniques</kwd>
<kwd>superiority of feasibility</kwd>
<kwd>violation constraint-handling technique</kwd>
<kwd>swarm based evolutionary algorithms</kwd>
<kwd>particle swarm optimization</kwd>
<kwd>engineering optimization problems</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>Optimization can be simply defined as the process of searching for the best outcome. The process of optimization is not new to human beings; they have been applying it since the dawn of time. Owing to its role in solving real-world problems, optimization is imperative for research in applied mathematics. With the advent of digital computing machines in the early 1950s, population-based stochastic algorithms started to develop, paving the way for solutions to complex optimization problems that were previously considered to be unsolvable [<xref ref-type="bibr" rid="ref-1">1</xref>]. In particular, during the past five decades, optimization has emerged as a new branch of computational mathematics. Optimization can be categorized into two main sub-branches: unconstrained optimization and constrained optimization. In an unconstrained optimization, each objective or cost function is optimized without any constraint, whereas in a constrained optimization, the objective or cost function is optimized subject to certain constraints. As almost all real-world problems can be modeled as constrained optimization problems (COPs), algorithms designed for unconstrained optimization are often hybridized with CHTs to solve these problems.</p>
<p>Without loss of generality, in the minimization sense, a COP can be defined as follows [<xref ref-type="bibr" rid="ref-2">2</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[$$\begin{align}
& \mathit{Minimize}~f \left(\mathbf{x}\right),~\mathbf{x}= \left(x_{1},\,x_{2},\,\ldots ,\,x_{n}\right)^{T}\in F \subseteq S \nonumber \\
& \mathit{Subject}~ to \nonumber \\
& g_{i} \left(\mathbf{x}\right) \leq 0,\quad i=1,\,\ldots ,\,l,\quad h_{j} \left(\mathbf{x}\right)=0,\quad j=l+1,\, \ldots ,\,p,\quad
x_{i}^{l} \leq x_{i} \leq x_{i}^{u},\quad i=1,\,\ldots ,\,n.
 \label{eqn-1}
\end{align}$$]]></tex-math>
<mml:math id="mml-eqn-1" display="block"><mml:mtable columnalign="left" columnspacing="1pt"><mml:mtr><mml:mtd></mml:mtd><mml:mtd><mml:mstyle mathvariant="italic"><mml:mi>M</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>z</mml:mi><mml:mi>e</mml:mi></mml:mstyle><mml:mspace width=".3em" /><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mspace width=".3em" /><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="0.3em"/><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="0.3em"/><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="0.3em"/><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mi>F</mml:mi><mml:mo>&#x2286;</mml:mo><mml:mi>S</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd></mml:mtd><mml:mtd><mml:mstyle mathvariant="italic"><mml:mi>S</mml:mi><mml:mi>u</mml:mi><mml:mi>b</mml:mi><mml:mi>j</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mstyle><mml:mspace width=".3em" /><mml:mi>t</mml:mi><mml:mi>o</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2264;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mspace width="0.3em"/><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="0.3em"/><mml:mi>l</mml:mi><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mi>l</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mspace width="0.3em"/><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="0.3em"/><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mspace width="0.3em"/><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="0.3em"/><mml:mi>n</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives></disp-formula></p>
<p>In problem <xref ref-type="disp-formula" rid="eqn-1">(1)</xref>, <inline-formula id="ieqn-1"><alternatives><inline-graphic xlink:href="ieqn-1.png"/><tex-math id="tex-ieqn-1"><![CDATA[$f(\mathbf{x})$]]></tex-math><mml:math id="mml-ieqn-1"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula> is called the objective function, which is to be minimized. In the case of maximization, <inline-formula id="ieqn-2"><alternatives><inline-graphic xlink:href="ieqn-2.png"/><tex-math id="tex-ieqn-2"><![CDATA[$f(\mathbf{x})$]]></tex-math><mml:math id="mml-ieqn-2"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula> is multiplied with a negative sign. The <italic>n</italic>-dimensional vector <inline-formula id="ieqn-3"><alternatives><inline-graphic xlink:href="ieqn-3.png"/><tex-math id="tex-ieqn-3"><![CDATA[$\mathbf{x}$]]></tex-math><mml:math id="mml-ieqn-3"><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:math></alternatives></inline-formula> is called the decision variables vector. There are <italic>l</italic> inequality-type and <italic>p</italic> &#x2212; <italic>l</italic> equality-type constraints. <inline-formula id="ieqn-4"><alternatives><inline-graphic xlink:href="ieqn-4.png"/><tex-math id="tex-ieqn-4"><![CDATA[$x_{i}^{l}$]]></tex-math><mml:math id="mml-ieqn-4"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula> and <inline-formula id="ieqn-5"><alternatives><inline-graphic xlink:href="ieqn-5.png"/><tex-math id="tex-ieqn-5"><![CDATA[$x_{i}^{u}$]]></tex-math><mml:math id="mml-ieqn-5"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula> are the lower and upper bounds for the component <italic>x<sub>i</sub></italic> of the decision variable vector <inline-formula id="ieqn-6"><alternatives><inline-graphic xlink:href="ieqn-6.png"/><tex-math id="tex-ieqn-6"><![CDATA[$\mathbf{x}$]]></tex-math><mml:math id="mml-ieqn-6"><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:math></alternatives></inline-formula>. These bounds define the search space <italic>S</italic>. Solutions that meet all constraints of problem <xref ref-type="disp-formula" rid="eqn-1">(1)</xref> are called feasible solutions. If <italic>F</italic> is the feasible region containing all feasible solutions, then <inline-formula id="ieqn-7"><alternatives><inline-graphic xlink:href="ieqn-7.png"/><tex-math id="tex-ieqn-7"><![CDATA[$F \subseteq S$]]></tex-math><mml:math id="mml-ieqn-7"><mml:mi>F</mml:mi><mml:mo>&#x2286;</mml:mo><mml:mi>S</mml:mi></mml:math></alternatives></inline-formula>. On the other hand, solutions that violate any of the constraints of problem <xref ref-type="disp-formula" rid="eqn-1">(1)</xref> are called infeasible solutions, and the region of all such solutions is called the infeasible region.</p>
<p>Nature-inspired algorithms (NIAs), as the name suggests, are inspired by successful biological and/or physical systems in nature [<xref ref-type="bibr" rid="ref-3">3</xref>]. NIAs are population-based meta-heuristics and have two major subdivisions: evolutionary algorithms (EAs) and swarm intelligence (SI)-based algorithms. EAs are optimization techniques that work on Darwin&#x2019;s principle of &#x201C;survival of the fittest&#x201D; [<xref ref-type="bibr" rid="ref-4">4</xref>], whereas the main theme of SI-based algorithms is communication among members of a swarm. Through this communication, they learn from the experience of other members of the swarm, and the swarm reaches a level of intelligence that no individual could attain. Designing SI-based algorithms is a relatively new research area in the field of NIAs. Important SI-based algorithms include ant colony optimization [<xref ref-type="bibr" rid="ref-5">5</xref>], the bat algorithm (BA) [<xref ref-type="bibr" rid="ref-5">5</xref>], firefly algorithm (FA) [<xref ref-type="bibr" rid="ref-5">5</xref>], and particle swarm optimization (PSO) [<xref ref-type="bibr" rid="ref-6">6</xref>].</p>
<p>PSO was developed by Kennedy and Eberhart in 1995. Owing to its ease of implementation, PSO is one of the most widely used SI-based algorithms. In the PSO algorithm, an initial population of particles (swarm members) is generated randomly in a given search space. Each particle is assigned a velocity. In subsequent iterations, the velocity of each particle is updated using appropriate formulae. This updated velocity is then used to update the position of the particle. This process of updating velocities and then positions is repeated until some stopping criteria are fulfilled. To deal with constrained problems, PSO, like other EAs and SI-based algorithms, needs modification in the sense that some CHT must be incorporated into its framework. Several such modifications for single- and multi-objective constrained optimization are detailed in [<xref ref-type="bibr" rid="ref-7">7</xref>&#x2013;<xref ref-type="bibr" rid="ref-15">15</xref>].</p>
<p>Any parameter-free CHT is preferred over the commonly used penalty function approach for constraint handling provided it gives competitive results. The superiority of feasibility (SF) [<xref ref-type="bibr" rid="ref-16">16</xref>] approach is one such CHT. In a penalty function approach, if competing solutions are feasible, then selection among them for the next generation is based on their objective functions&#x2019; values. However, if competing solutions are infeasible, then their objective functions&#x2019; values are augmented with penalty terms. The SF technique is different in that if the competing solutions are infeasible, their functions&#x2019; values are not important; instead, their degrees of infeasibility are used in their ranking.</p>
<p>In [<xref ref-type="bibr" rid="ref-17">17</xref>], a new CHT, violation constraint-handling (VCH), was introduced, using the number of constraint violations as a decisive factor. The authors developed VCH-GA by combining VCH with a genetic algorithm (GA), and obtained striking results for some engineering problems. This technique is similar to SF, with some modifications towards the end. In this technique, candidates with fewer constraint violations are preferred over candidates with more constraint violations. In this work, we integrate SF and VCH into the PSO framework to handle the constraints of problem <xref ref-type="disp-formula" rid="eqn-1">(1)</xref>, thereby adapting PSO for constrained optimization and designing two constrained versions of PSO, denoted SF-PSO and VCH-PSO.</p>
<p>The remainder of the paper is organized as follows. Section 2 contains a brief literature review pertaining to PSO and some constrained versions of PSO. Section 3 presents a brief introduction of the two CHTs and details of proposed algorithms. Section 4 presents and discusses experimental results. A short summary of the work and plans for the future are given in the concluding Section 5.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Literature Review</title>
<p>In this section, we first describe PSO and a number of its improved variants. Then, a number of promising constrained algorithms employing PSO as a base algorithm are discussed.</p>
<sec id="s2_1">
<label>2.1</label>
<title>PSO Algorithm</title>
<p>PSO is among the most popular algorithms in the field of optimization. It has been widely used in various applications including in engineering and industry. PSO was inspired by the navigation patterns and synchronized movements of bird flocks. PSO was developed in 1995 for unconstrained optimization problems. Over the years, various versions of PSO have been developed. Owing to its ease of implementation, PSO is among the most widely used SI-based algorithms. However, PSO differs from EAs, as it assumes that a member of the swarm never dies but rather flies from one place to another in a given search space. In the PSO algorithm, an initial population of particles (swarm members) is generated randomly in a given search space. Each particle is assigned a velocity, which can initially be set to zero or generated randomly [<xref ref-type="bibr" rid="ref-18">18</xref>]. In subsequent iterations, the velocity of the <italic>i</italic>th particle at generation <italic>t</italic> + 1, <inline-formula id="ieqn-8"><alternatives><inline-graphic xlink:href="ieqn-8.png"/><tex-math id="tex-ieqn-8"><![CDATA[${\boldsymbol{v}}_{i}^{t+1}$]]></tex-math><mml:math id="mml-ieqn-8"><mml:msubsup><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo lspace='0pt' rspace='0pt'>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula>, is updated using the following equation [<xref ref-type="bibr" rid="ref-19">19</xref>]:</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[$$\begin{equation}
\mathbf{v}_{i}^{t+1}=\mathbf{v}_{i}^{t}+c_{1}*
\boldsymbol{{r}_{1}}* (\mathit{pbest}-\mathbf{x}_{i}^{t})+c_{2}* \boldsymbol{{r}_{2}}* (\mathit{gbest}-\mathbf{x}_{i}^{t}),
 \label{eqn-2}
\end{equation}$$]]></tex-math>
<mml:math id="mml-eqn-2" display="block"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo lspace='0pt' rspace='0pt'>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mstyle><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="italic"><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:mstyle><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:math></alternatives></disp-formula></p>
<p>where <inline-formula id="ieqn-9"><alternatives><inline-graphic xlink:href="ieqn-9.png"/><tex-math id="tex-ieqn-9"><![CDATA[$\mathbf{v}_{i}^{t}$]]></tex-math><mml:math id="mml-ieqn-9"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula> is the current velocity, <inline-formula id="ieqn-10"><alternatives><inline-graphic xlink:href="ieqn-10.png"/><tex-math id="tex-ieqn-10"><![CDATA[$\mathbf{x}_{i}^{t}$]]></tex-math><mml:math id="mml-ieqn-10"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula> is the current position, <inline-formula id="ieqn-11"><alternatives><inline-graphic xlink:href="ieqn-11.png"/><tex-math id="tex-ieqn-11"><![CDATA[$\mathit{pbest}$]]></tex-math><mml:math id="mml-ieqn-11"><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mstyle></mml:math></alternatives></inline-formula> is the best particle in the linage of the <italic>i</italic>th particle, <inline-formula id="ieqn-12"><alternatives><inline-graphic xlink:href="ieqn-12.png"/><tex-math id="tex-ieqn-12"><![CDATA[$\mathit{gbest}$]]></tex-math><mml:math id="mml-ieqn-12"><mml:mstyle mathvariant="italic"><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:mstyle></mml:math></alternatives></inline-formula> is the best particle of the entire population so far, and <inline-formula id="ieqn-13"><alternatives><inline-graphic xlink:href="ieqn-13.png"/><tex-math id="tex-ieqn-13"><![CDATA[$\boldsymbol{{r}_{1}}$]]></tex-math><mml:math id="mml-ieqn-13"><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> and <inline-formula id="ieqn-14"><alternatives><inline-graphic xlink:href="ieqn-14.png"/><tex-math id="tex-ieqn-14"><![CDATA[$\boldsymbol{{r}_{2}}$]]></tex-math><mml:math id="mml-ieqn-14"><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> are randomly generated vectors with components lying between 0 and 1 that give a stochastic nature to the algorithm. In <xref ref-type="disp-formula" rid="eqn-4">Eq. (2)</xref>, the first term on the right-hand side is the velocity of the particle in the previous generation and is termed the inertia component. One purpose of this component is to avoid any abrupt change in the direction of the particle. The second term is based on the personal experiences of the particle and is called the cognitive component, while the third term is based on the experiences of the whole swarm and is called the social component. In the initial version of PSO, <italic>r</italic><sub>1</sub> and <italic>r</italic><sub>2</sub> were randomly generated numbers, but the authors soon replaced them with randomly generated vectors. Parameters <italic>c</italic><sub>1</sub> and <italic>c</italic><sub>2</sub> are learning parameters used to balance the local and global search. In the initial version of PSO, these two parameters were set to 2. The role of these two parameters is very important, as they control the explorative and exploitative capabilities of the algorithm. A higher value of <italic>c</italic><sub>1</sub> means a higher rate of exploration, and a higher value of <italic>c</italic><sub>2</sub> means a higher rate of exploitation. In initial versions, these parameters were kept constant, but intuition suggests a higher <italic>c</italic><sub>1</sub> value for the initial iterations to enable maximum exploration of the search space, and a higher <italic>c</italic><sub>2</sub> value for the last iterations to exploit the regions with a possible solution (global optima). This intuitive idea is now an essential part of modern versions of PSO. In [<xref ref-type="bibr" rid="ref-20">20</xref>], the idea of time-varying acceleration coefficients was applied. In <xref ref-type="disp-formula" rid="eqn-4">Eq. (2)</xref>, a larger value of <italic>c</italic><sub>1</sub> and a smaller value of <italic>c</italic><sub>2</sub> in the initial stages ensure exploration of the whole search space. Gradual reduction of the weight of the cognitive component through <italic>c</italic><sub>1</sub> and an increase in the weight of the social component through <italic>c</italic><sub>2</sub> facilitate global convergence. Mathematically, the two coefficients of the cognitive and social components are updated as follows [<xref ref-type="bibr" rid="ref-20">20</xref>]:</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[$$\begin{equation} c_{1}=(c_{1f}-c_{1i}) * \frac{It}{\mathit{MaxIt}}+c_{1i},
 \label{eqn-3} \end{equation}$$]]></tex-math>
<mml:math id="mml-eqn-3" display="block"><mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>*</mml:mo><mml:mfrac><mml:mrow><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:mstyle></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow><mml:mrow></mml:mrow></mml:math>
</alternatives></disp-formula></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[$$\begin{equation} c_{2}=(c_{2f}-c_{2i}) * \frac{It}{\mathit{MaxIt}}+c_{2i},
 \label{eqn-4}\end{equation}$$]]></tex-math>
<mml:math id="mml-eqn-4" display="block"><mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>*</mml:mo><mml:mfrac><mml:mrow><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:mstyle></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow><mml:mrow></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p>where <italic>c</italic><sub>1<italic>i</italic></sub> and <italic>c</italic><sub>1<italic>f</italic></sub> are lower and upper bounds for the cognitive component, while <italic>c</italic><sub>2<italic>i</italic></sub> and <italic>c</italic><sub>2<italic>f</italic></sub> are lower and upper bounds for the social component. In [<xref ref-type="bibr" rid="ref-20">20</xref>], after much experimentation, the authors proposed reducing <italic>c</italic><sub>1</sub> from 2.5 to 0.5 and increasing <italic>c</italic><sub>2</sub> from 0.5 to 2.5 for better performance. In [<xref ref-type="bibr" rid="ref-21">21</xref>], <italic>V<sub>max</sub></italic> was introduced. This parameter keeps the newly generated particles in a given search space and controls the search steps.</p>
<p>As we can see from the inertia component of <xref ref-type="disp-formula" rid="eqn-4">Eq. (2)</xref>, the velocity of a particle in the previous iteration is fully utilized in updating its velocity for the next iteration. However, this may not always be the preferred choice. Sometimes, we may wish to use only a fraction of the velocity. More precisely, we may wish to use a larger fraction of the velocity in the initial iterations to explore the whole search space, whereas in later iterations, a smaller fraction of the previous velocity is preferable to exploit the regions with higher probabilities of having solutions. This can be accomplished using a new parameter <inline-formula id="ieqn-15"><alternatives><inline-graphic xlink:href="ieqn-15.png"/><tex-math id="tex-ieqn-15"><![CDATA[$\omega$]]></tex-math><mml:math id="mml-ieqn-15"><mml:mi>&#x03C9;</mml:mi></mml:math></alternatives></inline-formula>, termed the inertia weight [<xref ref-type="bibr" rid="ref-21">21</xref>]. To control the weight of the velocity at various stages, the following equation for updating the velocity contains an inertia factor <inline-formula id="ieqn-16"><alternatives><inline-graphic xlink:href="ieqn-16.png"/><tex-math id="tex-ieqn-16"><![CDATA[$\omega$]]></tex-math><mml:math id="mml-ieqn-16"><mml:mi>&#x03C9;</mml:mi></mml:math></alternatives></inline-formula>:</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[$$\begin{equation}
\mathbf{v}_{i}^{t+1}=\omega * \mathbf{v}_{i}^{t}+c_{1}* r_{1}* (\mathit{pbest}-\mathbf{x}_{i}^{t})+c_{2}* r_{2}* (\mathit{gbest}-\mathbf{x}_{i}^{t}).
 \label{eqn-5}
\end{equation}$$]]></tex-math>
<mml:math id="mml-eqn-5" display="block"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo lspace='0pt' rspace='0pt'>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi>&#x03C9;</mml:mi><mml:mo>*</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mstyle><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="italic"><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:mstyle><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:math></alternatives></disp-formula></p>
<p>When first introduced, the inertia weight was kept constant, but various researchers soon experimented with changing the value of the parameter <inline-formula id="ieqn-17"><alternatives><inline-graphic xlink:href="ieqn-17.png"/><tex-math id="tex-ieqn-17"><![CDATA[$\omega$]]></tex-math><mml:math id="mml-ieqn-17"><mml:mi>&#x03C9;</mml:mi></mml:math></alternatives></inline-formula>. In [<xref ref-type="bibr" rid="ref-21">21</xref>], the authors used a linearly changing inertia weight and noted a significant improvement in the performance of their algorithm as a result. The formula for updating <inline-formula id="ieqn-18"><alternatives><inline-graphic xlink:href="ieqn-18.png"/><tex-math id="tex-ieqn-18"><![CDATA[$\omega$]]></tex-math><mml:math id="mml-ieqn-18"><mml:mi>&#x03C9;</mml:mi></mml:math></alternatives></inline-formula> is as follows [<xref ref-type="bibr" rid="ref-21">21</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[$$\begin{equation}
\omega =(\omega _{1}-\omega _{2}) * \frac{\mathit{MaxIt}-It}{\mathit{MaxIt}}+\omega _{2},
 \label{eqn-6}
\end{equation}$$]]></tex-math>
<mml:math id="mml-eqn-6" display="block"><mml:mi>&#x03C9;</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03C9;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x03C9;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>*</mml:mo><mml:mfrac><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:mstyle><mml:mo>-</mml:mo><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:mstyle></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>&#x03C9;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:math></alternatives></disp-formula></p>
<p>where <inline-formula id="ieqn-19"><alternatives><inline-graphic xlink:href="ieqn-19.png"/><tex-math id="tex-ieqn-19"><![CDATA[$\omega _{1}$]]></tex-math><mml:math id="mml-ieqn-19"><mml:msub><mml:mrow><mml:mi>&#x03C9;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> and <inline-formula id="ieqn-20"><alternatives><inline-graphic xlink:href="ieqn-20.png"/><tex-math id="tex-ieqn-20"><![CDATA[$\omega _{2}$]]></tex-math><mml:math id="mml-ieqn-20"><mml:msub><mml:mrow><mml:mi>&#x03C9;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> are the lower and upper bounds of the inertia weight, <inline-formula id="ieqn-21"><alternatives><inline-graphic xlink:href="ieqn-21.png"/><tex-math id="tex-ieqn-21"><![CDATA[$\mathit{MaxIt}$]]></tex-math><mml:math id="mml-ieqn-21"><mml:mstyle mathvariant="italic"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:mstyle></mml:math></alternatives></inline-formula> is the total number of iterations, and <italic>It</italic> is the current iteration number. The authors observed through experiments that the algorithms performed well when 0.4 and 0.9 were used as lower and upper bounds for <inline-formula id="ieqn-22"><alternatives><inline-graphic xlink:href="ieqn-22.png"/><tex-math id="tex-ieqn-22"><![CDATA[$\omega$]]></tex-math><mml:math id="mml-ieqn-22"><mml:mi>&#x03C9;</mml:mi></mml:math></alternatives></inline-formula>.</p>
<p>The parameter <inline-formula id="ieqn-23"><alternatives><inline-graphic xlink:href="ieqn-23.png"/><tex-math id="tex-ieqn-23"><![CDATA[$\omega$]]></tex-math><mml:math id="mml-ieqn-23"><mml:mi>&#x03C9;</mml:mi></mml:math></alternatives></inline-formula> given by <xref ref-type="disp-formula" rid="eqn-6">Eq. (6)</xref> does well in static problems but not so well in dynamic systems. Another formula for updating <inline-formula id="ieqn-24"><alternatives><inline-graphic xlink:href="ieqn-24.png"/><tex-math id="tex-ieqn-24"><![CDATA[$\omega$]]></tex-math><mml:math id="mml-ieqn-24"><mml:mi>&#x03C9;</mml:mi></mml:math></alternatives></inline-formula> randomly was introduced in [<xref ref-type="bibr" rid="ref-21">21</xref>]. This <inline-formula id="ieqn-25"><alternatives><inline-graphic xlink:href="ieqn-25.png"/><tex-math id="tex-ieqn-25"><![CDATA[$\omega$]]></tex-math><mml:math id="mml-ieqn-25"><mml:mi>&#x03C9;</mml:mi></mml:math></alternatives></inline-formula>, as given by the following equation, improved the performance of algorithms for dynamic systems [<xref ref-type="bibr" rid="ref-21">21</xref>]:</p>
<p><disp-formula id="eqn-7">
<label>(7)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-7.png"/>
<tex-math id="tex-eqn-7"><![CDATA[$$\begin{equation}
\omega =0.5+\frac{rand}{2}.
 \label{eqn-7}
\end{equation}$$]]></tex-math>
<mml:math id="mml-eqn-7" display="block"><mml:mi>&#x03C9;</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>5</mml:mn><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:math></alternatives></disp-formula></p>
<p>The velocity given by <xref ref-type="disp-formula" rid="eqn-4">Eqs. (2)</xref> or <xref ref-type="disp-formula" rid="eqn-5">(5)</xref> is used to update the position of the <italic>i</italic>th particle in generation <italic>t</italic> + 1, <inline-formula id="ieqn-26"><alternatives><inline-graphic xlink:href="ieqn-26.png"/><tex-math id="tex-ieqn-26"><![CDATA[$\mathbf{x}_{i}^{t+1}$]]></tex-math><mml:math id="mml-ieqn-26"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo lspace='0pt' rspace='0pt'>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula>, as follows [<xref ref-type="bibr" rid="ref-19">19</xref>]:</p>
<p><disp-formula id="eqn-8">
<label>(8)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-8.png"/>
<tex-math id="tex-eqn-8"><![CDATA[$$\begin{equation}
\mathbf{x}_{i}^{t+1}=\mathbf{x}_{i}^{t}+\mathbf{v}_{i}^{t+1}.
 \label{eqn-8}
\end{equation}$$]]></tex-math>
<mml:math id="mml-eqn-8" display="block"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo lspace='0pt' rspace='0pt'>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo lspace='0pt' rspace='0pt'>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:math></alternatives></disp-formula></p>
<p>As far as the population size of the swarm is concerned, there is no significant difference in the results when the population size is varied [<xref ref-type="bibr" rid="ref-21">21</xref>]. Conversely, larger the population size, higher the computational costs, which is generally not desirable, particularly in engineering problems. Although in [<xref ref-type="bibr" rid="ref-22">22</xref>] the concept of a small population (five particles) with a re-initialization option was adopted to maintain diversity, a normal range of 20 to 60 particles was used in most of the existing literature.</p>
<p>Owing to the fast converging capability of PSO, various researchers have integrated it with CHTs for solving COPs. Some of the prominent works using PSO as a base algorithm are described in the following sections.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>FS-PSO</title>
<p>In FS-PSO [<xref ref-type="bibr" rid="ref-23">23</xref>], the preservation of feasible solutions (FS) method is incorporated into PSO to deal with constraints in COPs. This method requires a feasible initial population, and the feasibility of solutions is maintained throughout subsequent generations. As there exists no infeasible solution, the entire search process will be confined to the feasible region. Hence, selection of the winner is solely based on the objective function value. This method seems simple in the sense that it considers feasible solutions only, and there is no question of constraint violations. However, in some problems, the feasible region is small compared with the given search space. Also, there are problems in which it is difficult to generate a single feasible solution, let alone a whole population. In [<xref ref-type="bibr" rid="ref-22">22</xref>], the authors could not find a single feasible solution among one million randomly generated solutions for some problems. Thus, the idea of having a feasible population at the start of each problem is almost impractical. In cases where we have the entire feasible population at the start of the problem, it is not confirmed that there will be a whole feasible population at the next generation unless the search space is convex.</p>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>HPSO</title>
<p>In HPSO [<xref ref-type="bibr" rid="ref-24">24</xref>], PSO is hybridized with SF to solve COPs. This rule is quite strict in the case of infeasible solutions, which are radially discarded in comparison with feasible solutions, leading to premature convergence. The authors avoided premature convergence by using simulated annealing (SA). The global best is perturbed by SA to escape local optima.</p>
<p>In HPSO, the personal best solution, <inline-formula id="ieqn-27"><alternatives><inline-graphic xlink:href="ieqn-27.png"/><tex-math id="tex-ieqn-27"><![CDATA[$\mathit{pbest}$]]></tex-math><mml:math id="mml-ieqn-27"><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mstyle></mml:math></alternatives></inline-formula>, is selected per the SF rule, whereas SA is employed during selection of the generational best solution, <inline-formula id="ieqn-28"><alternatives><inline-graphic xlink:href="ieqn-28.png"/><tex-math id="tex-ieqn-28"><![CDATA[$\mathit{gbest}$]]></tex-math><mml:math id="mml-ieqn-28"><mml:mstyle mathvariant="italic"><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:mstyle></mml:math></alternatives></inline-formula>. Furthermore, the authors kept the number of generations quite low at 300 in their experiments, but they used a population of 250 particles, which is quite large in comparison with those used in other contemporary PSO algorithms.</p>
</sec>
<sec id="s2_4">
<label>2.4</label>
<title>SR-PSO</title>
<p>The authors of SR-PSO incorporated stochastic ranking (SR) into PSO to develop a hybrid algorithm for COPs. Although SR is a popular CHT that works quite well in most cases, there remains a user-defined parameter <italic>P<sub>f</sub></italic> in this technique. In this technique, if particles are feasible or a randomly generated number, <italic>rand</italic>, is less than <italic>P<sub>f</sub></italic>, then particles are ranked per their objective function values; otherwise, they are ranked per their constraint violations. As parameters are always hard to fine-tune, if <italic>P<sub>f</sub></italic> is too high, most of the infeasible solutions will be ranked per objective function values, and the role of constraint violations will be minimal. Of course, this is not a good idea. On the other hand, if <italic>P<sub>f</sub></italic> is kept low, most of the infeasible solutions will be ranked per constraint violations, and the role of objective function values will be minimal. Again, this is not a good idea. A balance between the two is preferable for any algorithm. Algorithms based on SR cannot be termed as properly guided, as many of the outcomes rely on <italic>P<sub>f</sub></italic> and <italic>rand</italic> with no or very limited use of previous knowledge. Another drawback is that the algorithm does not implement PSO in a real sense, as particles never die in PSO, whereas in SR-PSO some of the particles are discarded. PSO does not have an explicit selection. Also, in SR-PSO, generating <italic>npop</italic> particles from <inline-formula id="ieqn-29"><alternatives><inline-graphic xlink:href="ieqn-29.png"/><tex-math id="tex-ieqn-29"><![CDATA[$\mathrm{\mu}(\mathrm{\mu}=npop/7)$]]></tex-math><mml:math id="mml-ieqn-29"><mml:mstyle mathvariant="normal"><mml:mi>&#x03BC;</mml:mi></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="normal"><mml:mi>&#x03BC;</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mi>n</mml:mi><mml:mi>p</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mo>/</mml:mo><mml:mn>7</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula> particles is a form of crossover.</p>
</sec>
<sec id="s2_5">
<label>2.5</label>
<title><inline-formula id="ieqn-30"><alternatives><inline-graphic xlink:href="ieqn-30.png"/><tex-math id="tex-ieqn-30"><![CDATA[$\boldsymbol{\varepsilon}$]]></tex-math><mml:math id="mml-ieqn-30"><mml:mi>&#x03B5;</mml:mi></mml:math></alternatives></inline-formula>-PSO and <inline-formula id="ieqn-31"><alternatives><inline-graphic xlink:href="ieqn-31.png"/><tex-math id="tex-ieqn-31"><![CDATA[$\boldsymbol{\alpha}$]]></tex-math><mml:math id="mml-ieqn-31"><mml:mi>&#x03B1;</mml:mi></mml:math></alternatives></inline-formula>-PSO</title>
<p>In [<xref ref-type="bibr" rid="ref-25">25</xref>], the authors used a combination of an epsilon constraint method and PSO to develop <inline-formula id="ieqn-32"><alternatives><inline-graphic xlink:href="ieqn-32.png"/><tex-math id="tex-ieqn-32"><![CDATA[$\epsilon$]]></tex-math><mml:math id="mml-ieqn-32"><mml:mi>&#x03F5;</mml:mi></mml:math></alternatives></inline-formula>-PSO, a technique based on <inline-formula id="ieqn-33"><alternatives><inline-graphic xlink:href="ieqn-33.png"/><tex-math id="tex-ieqn-33"><![CDATA[$\epsilon$]]></tex-math><mml:math id="mml-ieqn-33"><mml:mi>&#x03F5;</mml:mi></mml:math></alternatives></inline-formula>-level comparison. In [<xref ref-type="bibr" rid="ref-26">26</xref>], the authors integrated PSO with an <inline-formula id="ieqn-34"><alternatives><inline-graphic xlink:href="ieqn-34.png"/><tex-math id="tex-ieqn-34"><![CDATA[$\alpha$]]></tex-math><mml:math id="mml-ieqn-34"><mml:mi>&#x03B1;</mml:mi></mml:math></alternatives></inline-formula>-constraint-handling method based on <inline-formula id="ieqn-35"><alternatives><inline-graphic xlink:href="ieqn-35.png"/><tex-math id="tex-ieqn-35"><![CDATA[$\alpha$]]></tex-math><mml:math id="mml-ieqn-35"><mml:mi>&#x03B1;</mml:mi></mml:math></alternatives></inline-formula>-level comparison. According to [<xref ref-type="bibr" rid="ref-25">25</xref>], the two techniques are theoretically equivalent. A satisfaction level <inline-formula id="ieqn-36"><alternatives><inline-graphic xlink:href="ieqn-36.png"/><tex-math id="tex-ieqn-36"><![CDATA[$0 \leq \mu (\mathbf{x}) \leq 1$]]></tex-math><mml:math id="mml-ieqn-36"><mml:mn>0</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2264;</mml:mo><mml:mn>1</mml:mn></mml:math></alternatives></inline-formula> is defined for constraints of the problem. For feasible solutions, <inline-formula id="ieqn-37"><alternatives><inline-graphic xlink:href="ieqn-37.png"/><tex-math id="tex-ieqn-37"><![CDATA[$\mu(\mathbf{x})=1$]]></tex-math><mml:math id="mml-ieqn-37"><mml:mi>&#x03BC;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></alternatives></inline-formula>. For <inline-formula id="ieqn-38"><alternatives><inline-graphic xlink:href="ieqn-38.png"/><tex-math id="tex-ieqn-38"><![CDATA[$0 \leq \alpha \leq 1$]]></tex-math><mml:math id="mml-ieqn-38"><mml:mn>0</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mn>1</mml:mn></mml:math></alternatives></inline-formula>, if <inline-formula id="ieqn-39"><alternatives><inline-graphic xlink:href="ieqn-39.png"/><tex-math id="tex-ieqn-39"><![CDATA[$\mu _{1}$]]></tex-math><mml:math id="mml-ieqn-39"><mml:msub><mml:mrow><mml:mi>&#x03BC;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> and <inline-formula id="ieqn-40"><alternatives><inline-graphic xlink:href="ieqn-40.png"/><tex-math id="tex-ieqn-40"><![CDATA[$\mu _{2}$]]></tex-math><mml:math id="mml-ieqn-40"><mml:msub><mml:mrow><mml:mi>&#x03BC;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> are less than <inline-formula id="ieqn-41"><alternatives><inline-graphic xlink:href="ieqn-41.png"/><tex-math id="tex-ieqn-41"><![CDATA[$\alpha$]]></tex-math><mml:math id="mml-ieqn-41"><mml:mi>&#x03B1;</mml:mi></mml:math></alternatives></inline-formula>, objective function values are used for ranking particles, otherwise their satisfaction levels <inline-formula id="ieqn-42"><alternatives><inline-graphic xlink:href="ieqn-42.png"/><tex-math id="tex-ieqn-42"><![CDATA[$\mu _{1}$]]></tex-math><mml:math id="mml-ieqn-42"><mml:msub><mml:mrow><mml:mi>&#x03BC;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> and <inline-formula id="ieqn-43"><alternatives><inline-graphic xlink:href="ieqn-43.png"/><tex-math id="tex-ieqn-43"><![CDATA[$\mu _{2}$]]></tex-math><mml:math id="mml-ieqn-43"><mml:msub><mml:mrow><mml:mi>&#x03BC;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> are used. Equality constraints can be coped with very easily by relaxing constraints at early stages and then tightening them gradually. Both techniques closely resemble SR.</p>
</sec>
<sec id="s2_6">
<label>2.6</label>
<title>PSO for COPs</title>
<p>In [<xref ref-type="bibr" rid="ref-27">27</xref>], a non-stationary multi-stage assignment penalty function was combined with PSO to solve COPs. In this approach, the actual objective function is augmented with a penalty term, based on constraint violations, to form a fitness function. This fitness function is then used for ranking particles. By contrast, in our proposed technique, no new function is formed. For ranking particles, objective function values and constraint violations are considered separately, one at a time. The newly developed algorithm achieved competitive results on the CEC 2006 test functions suite.</p>
</sec>
<sec id="s2_7">
<label>2.7</label>
<title>SASPSO 2011</title>
<p>In [<xref ref-type="bibr" rid="ref-28">28</xref>], a newly proposed self-adaptive strategy was added to the standard PSO 2011 algorithm, resulting in a modified PSO algorithm, SASPSO 2011. Furthermore, for population diversity, an adaptive relaxation method is combined with a feasibility-based rule to handle constraints and evaluate solutions in the suggested framework. In SASPSO 2011, the number of parameters is increased, although they are adjusted adaptively. By contrast, our proposed technique VCH-PSO uses a very basic version of PSO to keep the number of parameters low. Another main difference is that VCH-PSO considers the actual feasible region of the problem, whereas in [<xref ref-type="bibr" rid="ref-28">28</xref>], similar to the <inline-formula id="ieqn-44"><alternatives><inline-graphic xlink:href="ieqn-44.png"/><tex-math id="tex-ieqn-44"><![CDATA[$\alpha$]]></tex-math><mml:math id="mml-ieqn-44"><mml:mi>&#x03B1;</mml:mi></mml:math></alternatives></inline-formula> and <inline-formula id="ieqn-45"><alternatives><inline-graphic xlink:href="ieqn-45.png"/><tex-math id="tex-ieqn-45"><![CDATA[$\epsilon$]]></tex-math><mml:math id="mml-ieqn-45"><mml:mi>&#x03F5;</mml:mi></mml:math></alternatives></inline-formula> techniques, constraints are initially relaxed to consider larger regions as feasible. Furthermore, unlike feasibility-based rules, VCH-PSO mainly focuses on the number of constraint violations rather than their degree. The performance of SASPSO 2011 was evaluated and compared on four benchmark and two engineering problems against six PSO variants and some well-known algorithms. The authors claimed promising performance of SASPSO 2011 versus competitors. The comparison of simulation results of VCH-PSO and SASPSO 2011 on the two engineering problems, spring design and three-bar truss design, can be seen in <xref ref-type="table" rid="table-6">Tabs. 6</xref> and <xref ref-type="table" rid="table-9">9</xref>.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>SF-PSO and VCH-PSO</title>
<p>In this section, first we briefly describe the two CHTs that were used to adapt PSO for constrained optimization. Then, the two adapted algorithms, SF-PSO and VCH-PSO, are detailed.</p>
<sec id="s3_1">
<label>3.1</label>
<title>Superiority of Feasibility</title>
<p>Any parameter-free CHT will be preferred over a penalty function approach if it gives competitive results. The SF technique is one such CHT. In a penalty function approach, if competing solutions are feasible, the selection is based on objective function values; if competing solutions are infeasible, objective function values are augmented with a penalty term. The SF technique is different in the sense that if the competing solutions are infeasible, their objective function values are no longer important, and their degrees of infeasibility are considered for their ranking. Furthermore, the SF technique is a combination of two different categories. On the one hand, it separates feasible solutions from infeasible ones; on the other hand, it penalizes infeasible solutions. If competing solutions are infeasible, their constraint violations will be used to augment the objective function value of the worst feasible solution, not the competing solution&#x2019;s own objective function value. This fitness function is constructed as follows:</p>
<p><disp-formula id="eqn-9">
<label>(9)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-9.png"/>
<tex-math id="tex-eqn-9"><![CDATA[$$\begin{align}
F({\boldsymbol{x}})& =f({\boldsymbol{x}}),\quad if~ all~ \mathit{constraints}~are~ \mathit{satisfied},
\label{eqn-9} \\
& =f_{max}(\mathbf{x})+\sum (g_{i}(\mathbf{x})),\quad \mathit{otherwise},
\nonumber
\end{align}$$]]></tex-math>
<mml:math id="mml-eqn-9" display="block"><mml:mtable columnalign="left" columnspacing="1pt"><mml:mtr><mml:mtd><mml:mi>F</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mspace width=".3em" /><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi><mml:mspace width=".3em" /><mml:mstyle mathvariant="italic"><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mi>s</mml:mi></mml:mstyle><mml:mspace width=".3em" /><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mspace width=".3em" /><mml:mstyle mathvariant="italic"><mml:mi>satisfied</mml:mi></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd></mml:mtd><mml:mtd><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mo>&#x2211;</mml:mo> <mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:mstyle mathvariant="italic"><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>w</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>e</mml:mi></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives></disp-formula></p>
<p>where <inline-formula id="ieqn-46"><alternatives><inline-graphic xlink:href="ieqn-46.png"/><tex-math id="tex-ieqn-46"><![CDATA[$f_{max}(\mathbf{x})$]]></tex-math><mml:math id="mml-ieqn-46"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula> is the maximum objective function value (worst in the minimization sense) calculated from feasible solutions. At any stage of the algorithm, if there is no feasible solution, then <inline-formula id="ieqn-47"><alternatives><inline-graphic xlink:href="ieqn-47.png"/><tex-math id="tex-ieqn-47"><![CDATA[$f_{max}(\mathbf{x})$]]></tex-math><mml:math id="mml-ieqn-47"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula> is taken to be zero. There are following three cases for the selection of winner in the SF technique.</p>
<list list-type="order">
<list-item><p>Between two feasible solutions, winner will be the one with the lower objective function value.</p></list-item>
<list-item><p>Between a feasible and an infeasible solution, a feasible solution will always be preferred over an infeasible one.</p></list-item>
<list-item><p>Between two infeasible solutions, the winner will be the one with the lesser degree of constraint violations.</p></list-item>
</list>
<p>The pseudo-code for selection in the SF technique is given in Algorithm 1.</p>
<fig id="fig-2">
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-2.png"/>
</fig>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>VCH Technique</title>
<p>In VCH technique, the number of constraint violations was used as a preferred CHT. Here, selection of the winner is made in such a way that if the two competitors are infeasible, the winner will be pushed towards the feasible region. If the competitors are feasible, the quality of the solution will be improved. In any CHT, the criteria for selection of a winner among the infeasible competitors is mainly based on either their distance from the feasible region or the degrees of their constraint violations. In VCH, it is the number of constraint violations that decides the fate of infeasible competitors. VCH is a CHT that is based on the principle of &#x201C;survival of the fittest.&#x201D; Fortune cannot favor a solution that is not fit. On the other hand, techniques such as SR have a space for the survival of the luckiest. A solution can go to the next generation by chance even though it may be the worst with respect to the degree of constraint violations. In SR, if for a user-defined parameter <italic>P<sub>f</sub></italic>, we have <inline-formula id="ieqn-48"><alternatives><inline-graphic xlink:href="ieqn-48.png"/><tex-math id="tex-ieqn-48"><![CDATA[$rand \leq P_{f}$]]></tex-math><mml:math id="mml-ieqn-48"><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> and both competitors are infeasible, a competitor with lower function value and a high degree of constraint violations will find space in the next generation. As VCH is hard on infeasible solutions, one may think of the diversity of the population. However, that is not an issue, because diversity in a population can be maintained through the randomness involved in the PSO algorithm. Nor is the burden of penalty parameter tuning an issue, as VCH is a parameter-free CHT. There are following four cases for the selection of a winner in VCH.</p>
<list list-type="order">
<list-item><p>Between two feasible solutions, the winner will be the one with the lower objective function value.</p></list-item>
<list-item><p>Between a feasible and an infeasible solution, a feasible solution will always be preferred over an infeasible one.</p></list-item>
<list-item><p>Between two infeasible solutions, the winner will be the one with the smaller number of constraint violations.</p></list-item>
<list-item><p>Between two infeasible solutions having the same number of constraint violations, the winner will be the one with lesser degree of constraint violations.</p></list-item>
</list>
<p>The pseudo-code of VCH is given in Algorithm 2.</p>
<fig id="fig-3">
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-3.png"/>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-4.png"/>
</fig>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Adapted Algorithms: VCH-PSO and SF-PSO</title>
<p>PSO in its original version, like the majority of other meta-heuristics, was developed for unconstrained problems. To deal with constrained problems, the PSO algorithm needs modification in the sense that some CHT must be incorporated into its framework. Two adapted algorithms, VCH-PSO and SF-PSO, for problem <xref ref-type="disp-formula" rid="eqn-1">(1)</xref> are developed in this work through integrating VCH and SF into the PSO framework. The motive behind this hybridization was to combine the robustness and quick convergence of PSO with the simplicity and effectiveness of VCH and SF. Integrating these CHTs does not change the original objective function of the given problem, whereas the penalty function approach does. The SF technique was already integrated with PSO, but the authors also used SA to perturb <inline-formula id="ieqn-49"><alternatives><inline-graphic xlink:href="ieqn-49.png"/><tex-math id="tex-ieqn-49"><![CDATA[$\mathit{gbest}$]]></tex-math><mml:math id="mml-ieqn-49"><mml:mstyle mathvariant="italic"><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:mstyle></mml:math></alternatives></inline-formula>. The reason for this perturbation was to avoid local optima. In this work, we will show that our proposed algorithm SF-PSO can work well without SA.</p>
<p>Although the SF technique is sometimes placed into the category of CHTs that separate feasible solutions from infeasible solutions, it does not do so in a true sense. Rather, it adds the amount of infeasibility to the objective function value of the worst feasible solution, such that infeasible solutions are penalized without giving weight to the penalty term. Thus, the SF technique can be referred as a parameter-free penalty function approach. SF-PSO differs from the SF technique in the sense that in the case of infeasible solutions, the objective function value of the worst feasible solution is not added to form the new fitness function. For infeasible competitors, the degree of constraint violations is the sole decisive factor in SF-PSO.</p>
<p>In VCH-PSO, the decision is solely based on the number of constraint violations when comparing infeasible solutions. If the numbers of constraint violations for two competitors are equal, then the degree of violation will be the basis for selection of the winner. The focus of this research was to solve COPs of type (1). In our proposed algorithms, equality constraints present in any problem are transformed into inequalities as follows:</p>
<p><disp-formula id="eqn-10">
<label>(10)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-10.png"/>
<tex-math id="tex-eqn-10"><![CDATA[$$\begin{equation}
|h({\boldsymbol{x}})|-\epsilon \leq 0,
\label{eqn-10}
\end{equation}$$]]></tex-math>
<mml:math id="mml-eqn-10" display="block"><mml:mo>|</mml:mo><mml:mi>h</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:mo>-</mml:mo><mml:mi>&#x03F5;</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:math></alternatives></disp-formula></p>
<p>where <inline-formula id="ieqn-50"><alternatives><inline-graphic xlink:href="ieqn-50.png"/><tex-math id="tex-ieqn-50"><![CDATA[$\epsilon$]]></tex-math><mml:math id="mml-ieqn-50"><mml:mi>&#x03F5;</mml:mi></mml:math></alternatives></inline-formula> is a small positive number. In our experiments, it is taken as 1<italic>e</italic> &#x2212;4, which is the standard that is normally used in the literature. The pseudo-code of VCH-PSO is given in Algorithm 3. The flowchart of VCH-PSO is shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>. The pseudo-code of SF-PSO is almost the same as that of VCH-PSO; the only differences are in the update criteria for <inline-formula id="ieqn-51"><alternatives><inline-graphic xlink:href="ieqn-51.png"/><tex-math id="tex-ieqn-51"><![CDATA[$\mathit{pbest}$]]></tex-math><mml:math id="mml-ieqn-51"><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mstyle></mml:math></alternatives></inline-formula> and <inline-formula id="ieqn-52"><alternatives><inline-graphic xlink:href="ieqn-52.png"/><tex-math id="tex-ieqn-52"><![CDATA[$\mathit{gbest}$]]></tex-math><mml:math id="mml-ieqn-52"><mml:mstyle mathvariant="italic"><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:mstyle></mml:math></alternatives></inline-formula>. In SF-PSO, the update criteria for <inline-formula id="ieqn-53"><alternatives><inline-graphic xlink:href="ieqn-53.png"/><tex-math id="tex-ieqn-53"><![CDATA[$\mathit{pbest}$]]></tex-math><mml:math id="mml-ieqn-53"><mml:mstyle mathvariant="italic"><mml:mi>p</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mstyle></mml:math></alternatives></inline-formula> and <inline-formula id="ieqn-54"><alternatives><inline-graphic xlink:href="ieqn-54.png"/><tex-math id="tex-ieqn-54"><![CDATA[$\mathit{gbest}$]]></tex-math><mml:math id="mml-ieqn-54"><mml:mstyle mathvariant="italic"><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:mstyle></mml:math></alternatives></inline-formula> are based on Algorithm 1.</p>
<fig id="fig-4">
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-5.png"/>
</fig>
<fig id="fig-1">
<label>Figure 1</label> 
<caption>
<title>Flowchart of VCH-PSO algorithm</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-1.png"/>
</fig>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Simulation Results and Discussion</title>
<p>In order to evaluate the performance of the proposed algorithms, five engineering problems were selected from the available literature. All these problems were constrained and non-linear. As these problems had already been attempted by various researchers, a comparative study was used to help evaluate the performance of the proposed algorithms. The results were compiled from 20 independent runs of each algorithm on each problem. The PC configuration and parameter settings used were as follows.</p>
<sec id="s4_1">
<label>4.1</label>
<title>PC Configuration</title>
<p>The system used for the simulations ran Windows 10 with 8 GB RAM and a Core m3 1.00 GHz processor. All experiments were performed in the MATLAB R2013a environment.</p>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Parameter Settings</title>
<p>
<disp-formula id="eqn-9a">
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-9a.png"/>
<tex-math id="tex-eqn-9a"><![CDATA[$$\begin{align*}
&\text{Population size:}~Npop = 50,\quad \text{Maximum number of generations:}~ \mathit{MaxIt}= 500, \\
&\text{Number of runs:}~runs = 20,\quad \text{Cognitive component coefficient:}~c_{1}= 2, \\
&\text{Social component coefficient:}~ c_{2}= 2,\quad \text{Damping factor:}~ \mathit{\omega }damp = 0.99.
\end{align*}$$]]></tex-math>
<mml:math id="mml-eqn-9a" display="block"><mml:mtable columnalign="left" columnspacing="1pt"><mml:mtr><mml:mtd></mml:mtd><mml:mtd><mml:mstyle><mml:mtext>Population&#x00A0;size:</mml:mtext></mml:mstyle><mml:mspace width=".3em" /><mml:mi>N</mml:mi><mml:mi>p</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn>50</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:mstyle><mml:mtext>Maximum&#x00A0;number&#x00A0;of&#x00A0;generations:</mml:mtext></mml:mstyle><mml:mspace width=".3em" /><mml:mstyle mathvariant="italic"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mn>500</mml:mn><mml:mo>,</mml:mo></mml:mtd><mml:mtd></mml:mtd><mml:mtd><mml:mtext></mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd></mml:mtd><mml:mtd><mml:mstyle><mml:mtext>Number&#x00A0;of&#x00A0;runs:</mml:mtext></mml:mstyle><mml:mspace width=".3em" /><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mn>20</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:mstyle><mml:mtext>Cognitive&#x00A0;component&#x00A0;coefficient:</mml:mtext></mml:mstyle><mml:mspace width=".3em" /><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo></mml:mtd><mml:mtd></mml:mtd><mml:mtd><mml:mtext></mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd></mml:mtd><mml:mtd><mml:mstyle><mml:mtext>Social&#x00A0;component&#x00A0;coefficient:</mml:mtext></mml:mstyle><mml:mspace width=".3em" /><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em"/><mml:mstyle><mml:mtext>Damping&#x00A0;factor:</mml:mtext></mml:mstyle><mml:mspace width=".3em" /><mml:mstyle mathvariant="italic"><mml:mi>&#x03C9;</mml:mi></mml:mstyle><mml:mi>d</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>99</mml:mn><mml:mo>.</mml:mo></mml:mtd><mml:mtd></mml:mtd><mml:mtd><mml:mtext></mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives></disp-formula>
</p>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Results and Discussion</title>
<p>In this section, the experimental results are discussed for the selected engineering problems. It can be noted from the comparison tables that different researchers used different numbers of function evaluations (<italic>NFEs</italic>) to reach the optimum, which makes comparison hard and the derived conclusions weak and non-affirmative.</p>
<sec id="s4_3_1">
<label>4.3.1</label>
<title>Himmelblau&#x2019;s Nonlinear Optimization Problem</title>
<p>This nonlinear optimization problem was proposed by Himmelblau in 1972 [<xref ref-type="bibr" rid="ref-29">29</xref>]. It has been widely used as a yardstick to check the performance of algorithms devised for nonlinear COPs. The problem was also included in the CEC 2006 suite [<xref ref-type="bibr" rid="ref-30">30</xref>]. The problem has five decision variables, six nonlinear inequality constraints, and ten boundary conditions. The optimal solution of this problem, as given in a special session on CEC 2006 by [<xref ref-type="bibr" rid="ref-30">30</xref>], is &#x2212;30665.53 with decision variable vector [78, 33, 29.99, 45, 36.7758].</p>
<p><xref ref-type="table" rid="table-1">Tab. 1</xref> shows results of VCH-PSO, SF-PSO, and some other algorithms for the problem. The results of other algorithms have been taken from the respective papers, and the last column of this table indicates the <italic>NFEs</italic> taken by each individual algorithm to reach the optimal solution. As can be seen in this column, both our algorithms, VCH-PSO and SF-PSO, achieved the global optimum with minimum <italic>NFEs</italic> = 25000. The small standard deviation (st. dev.) values achieved by our algorithms with less effort indicate the consistency of both algorithms.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Comparison of proposed and other algorithms on Himmelblau&#x2019;s nonlinear problem (version 1)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Algorithms</th>
<th>Best</th>
<th>Worst</th>
<th>Mean</th>
<th>st. dev.</th>
<th>NFEs</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-55"><alternatives><inline-graphic xlink:href="ieqn-55.png"/><tex-math id="tex-ieqn-55"><![CDATA[$\alpha$]]></tex-math><mml:math id="mml-ieqn-55"><mml:mi>&#x03B1;</mml:mi></mml:math></alternatives></inline-formula>-PSO</td>
<td>&#x2212;30665.5386718</td>
<td>&#x2212;30665.5386718</td>
<td>&#x2212;30665.5386718</td>
<td><inline-formula id="ieqn-56"><alternatives><inline-graphic xlink:href="ieqn-56.png"/><tex-math id="tex-ieqn-56"><![CDATA[$\textbf{4.2e}-\textbf{11}$]]></tex-math><mml:math id="mml-ieqn-56"><mml:mstyle class="text"><mml:mtext class="textbf" mathvariant="bold">4.2e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle class="text"><mml:mtext class="textbf" mathvariant="bold">11</mml:mtext></mml:mstyle></mml:math></alternatives></inline-formula></td>
<td>350000</td>
</tr>
<tr>
<td>HPSO</td>
<td>&#x2212;30665.539</td>
<td>&#x2212;30665.539</td>
<td>&#x2212;30665.539</td>
<td><inline-formula id="ieqn-57"><alternatives><inline-graphic xlink:href="ieqn-57.png"/><tex-math id="tex-ieqn-57"><![CDATA[$\text{1.7e}- 6$]]></tex-math><mml:math id="mml-ieqn-57"><mml:mstyle class="text"><mml:mtext>1.7e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:math></alternatives></inline-formula></td>
<td>81000</td>
</tr>
<tr>
<td>SR-PSO</td>
<td>&#x2212;30665.5386</td>
<td>&#x2212;30665.5364</td>
<td>&#x2212;30665.5386</td>
<td><inline-formula id="ieqn-58"><alternatives><inline-graphic xlink:href="ieqn-58.png"/><tex-math id="tex-ieqn-58"><![CDATA[$\text{4.05e}- 5$]]></tex-math><mml:math id="mml-ieqn-58"><mml:mstyle class="text"><mml:mtext>4.05e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>5</mml:mn></mml:math></alternatives></inline-formula></td>
<td>100000</td>
</tr>
<tr>
<td>CPSO</td>
<td>&#x2212;30665.53</td>
<td>&#x2212;29846.65</td>
<td>&#x2212;30665.53</td>
<td>NA</td>
<td>240000</td>
</tr>
<tr>
<td>SF-PSO</td>
<td>&#x2212;30665.5386718</td>
<td>&#x2212;30665.5386712</td>
<td>&#x2212;<bold>30665.5386703</bold></td>
<td><inline-formula id="ieqn-59"><alternatives><inline-graphic xlink:href="ieqn-59.png"/><tex-math id="tex-ieqn-59"><![CDATA[$\text{4.6e}- 6$]]></tex-math><mml:math id="mml-ieqn-59"><mml:mstyle class="text"><mml:mtext>4.6e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:math></alternatives></inline-formula></td>
<td>25000</td>
</tr>
<tr>
<td>VCH-PSO</td>
<td>&#x2212;30665.5386718</td>
<td>&#x2212;30665.5386712</td>
<td>&#x2212;30665.5386717</td>
<td><inline-formula id="ieqn-60"><alternatives><inline-graphic xlink:href="ieqn-60.png"/><tex-math id="tex-ieqn-60"><![CDATA[$\text{1.46e}- 7$]]></tex-math><mml:math id="mml-ieqn-60"><mml:mstyle class="text"><mml:mtext>1.46e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>7</mml:mn></mml:math></alternatives></inline-formula></td>
<td>25000</td>
</tr>
</tbody>
</table></table-wrap>
<p>Some researchers have claimed far better results than the ones as mentioned in <xref ref-type="table" rid="table-1">Tab. 1</xref>; for some examples, see [<xref ref-type="bibr" rid="ref-17">17</xref>,<xref ref-type="bibr" rid="ref-25">25</xref>,<xref ref-type="bibr" rid="ref-31">31</xref>]. However, they made a slight change in the first constraint of the problem to achieve their results and unfairly compared their results with those of researchers who attempted a different version of the problem. In this work, both versions of the problem have been attempted.</p>
<p><xref ref-type="table" rid="table-2">Tab. 2</xref> shows results for another version (version 2). In this version, the first constraint of the problem is replaced by the following function:</p>
<p><disp-formula id="eqn-11">
<label>(11)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-11.png"/>
<tex-math id="tex-eqn-11"><![CDATA[$$\begin{equation}
g_{1}(x)=85.334407+0.0056858x_{2}x_{5}+0.00026x_{1}x_{4}-0.0022053x_{3}x_{5}.
 \label{eqn-11}
\end{equation}$$]]></tex-math>
<mml:math id="mml-eqn-11" display="block"><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>85</mml:mn><mml:mo>.</mml:mo><mml:mn>334407</mml:mn><mml:mo>+</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>0056858</mml:mn><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>00026</mml:mn><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>0022053</mml:mn><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:math></alternatives></disp-formula></p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Comparison of proposed and other algorithms on Himmelblau&#x2019;s nonlinear problem (version 2)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Algorithm</th>
<th>Best</th>
<th>Worst</th>
<th>Mean</th>
<th>st. dev.</th>
<th>NFEs</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-61"><alternatives><inline-graphic xlink:href="ieqn-61.png"/><tex-math id="tex-ieqn-61"><![CDATA[$\epsilon$]]></tex-math><mml:math id="mml-ieqn-61"><mml:mi>&#x03F5;</mml:mi></mml:math></alternatives></inline-formula>-PSO</td>
<td>&#x2212;31011.9988</td>
<td>&#x2212;30762.8890</td>
<td>&#x2212;30947.3262</td>
<td>55.86</td>
<td>50000</td>
</tr>
<tr>
<td><inline-formula id="ieqn-62"><alternatives><inline-graphic xlink:href="ieqn-62.png"/><tex-math id="tex-ieqn-62"><![CDATA[$\epsilon$]]></tex-math><mml:math id="mml-ieqn-62"><mml:mi>&#x03F5;</mml:mi></mml:math></alternatives></inline-formula>-PSO-GA</td>
<td>&#x2212;31025.5168</td>
<td>&#x2212;31012.5285</td>
<td>&#x2212;31023.9699</td>
<td>2.62</td>
<td>50000</td>
</tr>
<tr>
<td>VCH-GA</td>
<td>&#x2212;30998.951</td>
<td>&#x2212;30800.891</td>
<td>&#x2212;30845.422</td>
<td>48.61</td>
<td>50000</td>
</tr>
<tr>
<td>SF-PSO</td>
<td><bold> &#x2212;31025.5602</bold></td>
<td><bold> &#x2212;31025.5593</bold></td>
<td><bold> &#x2212;31025.5601</bold></td>
<td>2.51e &#x2212;4</td>
<td>25000</td>
</tr>
<tr>
<td>VCH-PSO</td>
<td><bold> &#x2212;31025.5602</bold></td>
<td><bold> &#x2212;31025.5592</bold></td>
<td><bold> &#x2212;31025.5601</bold></td>
<td><inline-formula id="ieqn-63"><alternatives><inline-graphic xlink:href="ieqn-63.png"/><tex-math id="tex-ieqn-63"><![CDATA[$\textbf{2.34e}-\textbf{8}$]]></tex-math><mml:math id="mml-ieqn-63"><mml:mstyle class="text"><mml:mtext class="textbf" mathvariant="bold">2.34e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle class="text"><mml:mtext class="textbf" mathvariant="bold">8</mml:mtext></mml:mstyle></mml:math></alternatives></inline-formula></td>
<td>25000</td>
</tr>
</tbody>
</table></table-wrap>
<p>This change in the problem definition has greatly affected the results. The results for this second version attained by our algorithms VCH-PSO and SF-PSO are compared with those of <inline-formula id="ieqn-64"><alternatives><inline-graphic xlink:href="ieqn-64.png"/><tex-math id="tex-ieqn-64"><![CDATA[$\epsilon$]]></tex-math><mml:math id="mml-ieqn-64"><mml:mi>&#x03F5;</mml:mi></mml:math></alternatives></inline-formula>-PSO, <inline-formula id="ieqn-65"><alternatives><inline-graphic xlink:href="ieqn-65.png"/><tex-math id="tex-ieqn-65"><![CDATA[$\epsilon$]]></tex-math><mml:math id="mml-ieqn-65"><mml:mi>&#x03F5;</mml:mi></mml:math></alternatives></inline-formula>-PSO-GA, and VCH-GA.</p>
<p><xref ref-type="table" rid="table-2">Tab. 2</xref> shows some interesting results. SF-PSO and VCH-PSO outperformed the above-mentioned algorithms in all respects using <italic>NFEs</italic> = 25000. Even the worst values attained by SF-PSO and VCH-PSO were better than the best of the rest. The design variables for the best solution by VCH-PSO were <italic>x</italic><sub>1</sub> = 78.000000000009393, <italic>x</italic><sub>2</sub> = 33.000000001832397, <italic>x</italic><sub>3</sub> = 27.070997106372257, <italic>x</italic><sub>4</sub> = 44.999999999998280, <italic>x</italic><sub>5</sub> = 44.969242546562349. The small st. dev. values for our both algorithms indicate their strength.</p>
</sec>
<sec id="s4_3_2">
<label>4.3.2</label>
<title>Welded Beam Design Problem</title>
<p>This problem was originally proposed by Rao in 1996 [<xref ref-type="bibr" rid="ref-32">32</xref>] and has been used as a benchmark problem to evaluate algorithms. The problem is to minimize the cost of constructing a welded beam with constraints on the sheer stress in the weld (<inline-formula id="ieqn-66"><alternatives><inline-graphic xlink:href="ieqn-66.png"/><tex-math id="tex-ieqn-66"><![CDATA[$\tau$]]></tex-math><mml:math id="mml-ieqn-66"><mml:mi>&#x03C4;</mml:mi></mml:math></alternatives></inline-formula>), bending stress in the beam (<inline-formula id="ieqn-67"><alternatives><inline-graphic xlink:href="ieqn-67.png"/><tex-math id="tex-ieqn-67"><![CDATA[$\sigma$]]></tex-math><mml:math id="mml-ieqn-67"><mml:mi>&#x03C3;</mml:mi></mml:math></alternatives></inline-formula>), buckling load on the bar (<italic>P<sub>c</sub></italic>), and end deflection of the beam (<inline-formula id="ieqn-68"><alternatives><inline-graphic xlink:href="ieqn-68.png"/><tex-math id="tex-ieqn-68"><![CDATA[$\delta$]]></tex-math><mml:math id="mml-ieqn-68"><mml:mi>&#x03B4;</mml:mi></mml:math></alternatives></inline-formula>), as well as side constraints. Four decision variables represent the length of the beam, thickness of the beam, length of the weld, and thickness of the weld. The optimal solution, reported by Rao, is 2.3810 with solution vector [0.2444, 6.2177, 8.2915, 0.2444]. This problem is reported differently in the literature. The number of constraints used and various terms involved in the constraints differ among different researchers [<xref ref-type="bibr" rid="ref-17">17</xref>,<xref ref-type="bibr" rid="ref-19">19</xref>,<xref ref-type="bibr" rid="ref-33">33</xref>,<xref ref-type="bibr" rid="ref-34">34</xref>]. This difference in definition greatly affects the results, as evidenced by the wide differences in some comparison tables by various researchers. Three different versions of the problem were used here to test the proposed algorithms. Four different comparison tables have been constructed, keeping in mind the different versions of the problem.</p>
<p><xref ref-type="table" rid="table-3">Tab. 3</xref> gives a comparison of the best solutions obtained by SS-Rao, SF-PSO, and VCH-PSO. VCH-PSO, and SF-PSO achieved the same results as SS-Rao.</p>
<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>Comparison of proposed and other algorithms on welded beam problem (version 1)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Algorithm</th>
<th>x1</th>
<th>x2</th>
<th>x3</th>
<th>x4</th>
<th>f (x)</th>
</tr>
</thead>
<tbody>
<tr>
<td>SS-Rao</td>
<td>0.2444</td>
<td>6.2177</td>
<td>8.2915</td>
<td>0.2444</td>
<td>2.381</td>
</tr>
<tr>
<td>SF-PSO</td>
<td>0.2444</td>
<td>6.2175</td>
<td>8.2915</td>
<td>0.2444</td>
<td>2.381</td>
</tr>
<tr>
<td>VCH-PSO</td>
<td>0.2444</td>
<td>6.2175</td>
<td>8.2915</td>
<td>0.2444</td>
<td>2.381</td>
</tr>
</tbody>
</table></table-wrap>
<p><xref ref-type="table" rid="table-4">Tab. 4</xref> gives a comparative analysis of VCH-PSO and SF-PSO with some contemporary well-known algorithms. The results indicate that the proposed algorithms, VCH-PSO and SF-PSO, are quite effective at attaining the minimum using <italic>NFEs</italic> = 25000. The small st. dev. values were also an indicator of our algorithms&#x2019; consistency. However, for this version of the problem, NM-PSO was best at attaining the minimum value when using <italic>NFEs</italic> = 80000. The welded beam problem has another version defined in BWOA [<xref ref-type="bibr" rid="ref-33">33</xref>], which is different from the version described by [<xref ref-type="bibr" rid="ref-32">32</xref>] and the majority of researchers. It will be referred to as version 3.</p>
<table-wrap id="table-4">
<label>Table 4</label>
<caption>
<title>Comparison of proposed and other algorithms on welded beam problem (version 2)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Algorithm</th>
<th>Best</th>
<th>Worst</th>
<th>Mean</th>
<th>st. dev.</th>
<th>NFEs</th>
</tr>
</thead>
<tbody>
<tr>
<td>SR-PSO</td>
<td>1.724866</td>
<td>1.725422</td>
<td>1.724899</td>
<td>1.12E-06</td>
<td>100000</td>
</tr>
<tr>
<td>CPSO</td>
<td>1.728024</td>
<td>1.782143</td>
<td>1.748831</td>
<td>0.0129</td>
<td>240000</td>
</tr>
<tr>
<td>NM-PSO</td>
<td><bold>1.72472</bold></td>
<td>1.733339</td>
<td>1.726373</td>
<td>0.003</td>
<td>80000</td>
</tr>
<tr>
<td>VCH-GA</td>
<td>1.726718</td>
<td>1.728074</td>
<td>1.727529</td>
<td>0.000421</td>
<td>50000</td>
</tr>
<tr>
<td>SF-PSO</td>
<td>1.724852</td>
<td>1.888685</td>
<td>1.73866</td>
<td>0.039532</td>
<td>25000</td>
</tr>
<tr>
<td>VCH-PSO</td>
<td>1.724852</td>
<td>1.76926</td>
<td>1.729839</td>
<td>0.012529</td>
<td>25000</td>
</tr>
</tbody>
</table></table-wrap>
<p><xref ref-type="table" rid="table-5">Tab. 5</xref> gives a comparison of the best solutions obtained by PSO-GA, BWOA, VCH-PSO, and SF-PSO for the third version of the problem. Again, VCH-PSO and SF-PSO performed better than BWOA. Yet another version of the problem, different from the above three, is given in [<xref ref-type="bibr" rid="ref-16">16</xref>,<xref ref-type="bibr" rid="ref-34">34</xref>], where five constraints instead of seven are mentioned.</p>
<table-wrap id="table-5">
<label>Table 5</label>
<caption>
<title>Comparison of proposed and other algorithms on welded beam problem (version 3)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Algorithm</th>
<th> <italic>x</italic><sub>1</sub></th>
<th><italic>x</italic><sub>2</sub></th>
<th><italic>x</italic><sub>3</sub></th>
<th><italic>x</italic><sub>4</sub></th>
<th><inline-formula id="ieqn-69"><alternatives><inline-graphic xlink:href="ieqn-69.png"/><tex-math id="tex-ieqn-69"><![CDATA[$f(\mathbf{x})$]]></tex-math><mml:math id="mml-ieqn-69"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives></inline-formula></th>
</tr>
</thead>
<tbody>
<tr>
<td>PSO-GA</td>
<td>0.20573</td>
<td>3.25312</td>
<td>9.036624</td>
<td>0.20573</td>
<td><bold>1.69525</bold></td>
</tr>
<tr>
<td>BWOA</td>
<td>0.205829</td>
<td>3.251922</td>
<td>9.034556</td>
<td>0.205829</td>
<td>1.69562</td>
</tr>
<tr>
<td>SF-PSO</td>
<td>0.20573</td>
<td>3.25312</td>
<td>9.036624</td>
<td>0.20573</td>
<td><bold>1.69525</bold></td>
</tr>
<tr>
<td>VCH-PSO</td>
<td>0.20573</td>
<td>3.253121</td>
<td>9.036624</td>
<td>0.20573</td>
<td><bold>1.69525</bold></td>
</tr>
</tbody>
</table></table-wrap>
</sec>
<sec id="s4_3_3">
<label>4.3.3</label>
<title>Spring Design Problem</title>
<p>The spring design problem was first proposed by Arora in 1989 [<xref ref-type="bibr" rid="ref-35">35</xref>]. The problem is to minimize the weight of a tension spring, where the minimum deflection, sheer stress, surge frequency, and outside diameter are subject to constraints. The problem has three decision variables: <italic>x</italic><sub>1</sub> is the diameter of the wire from which the spring is made, <italic>x</italic><sub>2</sub> is the diameter of the spring, and <italic>x</italic><sub>3</sub> is the number of active coils. Although some researchers have considered the third variable, <italic>x</italic><sub>3</sub>, as an integer, the majority have treated all three variables as continuous.</p>
<p>Optimal solutions obtained by VCH-PSO, SF-PSO, and some other contemporary algorithms are listed in <xref ref-type="table" rid="table-6">Tab. 6</xref>. The last column of this table shows the <italic>NFEs</italic> taken by each individual algorithm.</p>
<table-wrap id="table-6">
<label>Table 6</label>
<caption>
<title>Comparison of proposed and other algorithms on spring design problem</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Algorithm</th>
<th>Best</th>
<th>Worst</th>
<th>Mean</th>
<th>st. dev.</th>
<th>NFEs</th>
</tr>
</thead>
<tbody>
<tr>
<td>SR-PSO</td>
<td>0.012668</td>
<td>0.012685</td>
<td>0.012678</td>
<td><inline-formula id="ieqn-70"><alternatives><inline-graphic xlink:href="ieqn-70.png"/><tex-math id="tex-ieqn-70"><![CDATA[$\text{7.05e}- 6$]]></tex-math><mml:math id="mml-ieqn-70"><mml:mstyle class="text"><mml:mtext>7.05e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:math></alternatives></inline-formula></td>
<td>100000</td>
</tr>
<tr>
<td>NM-PSO</td>
<td>0.012675</td>
<td>0.012924</td>
<td>0.01273</td>
<td><inline-formula id="ieqn-71"><alternatives><inline-graphic xlink:href="ieqn-71.png"/><tex-math id="tex-ieqn-71"><![CDATA[$\text{5.18e}-5$]]></tex-math><mml:math id="mml-ieqn-71"><mml:mstyle class="text"><mml:mtext>5.18e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>5</mml:mn></mml:math></alternatives></inline-formula></td>
<td>80000</td>
</tr>
<tr>
<td>VCH-GA</td>
<td>0.012672</td>
<td>0.012706</td>
<td>0.012693</td>
<td><inline-formula id="ieqn-72"><alternatives><inline-graphic xlink:href="ieqn-72.png"/><tex-math id="tex-ieqn-72"><![CDATA[$\text{8.32e}-6$]]></tex-math><mml:math id="mml-ieqn-72"><mml:mstyle class="text"><mml:mtext>8.32e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:math></alternatives></inline-formula></td>
<td>50000</td>
</tr>
<tr>
<td>ETEO</td>
<td><bold>0.01267</bold></td>
<td>0.01269</td>
<td>0.01267</td>
<td><inline-formula id="ieqn-73"><alternatives><inline-graphic xlink:href="ieqn-73.png"/><tex-math id="tex-ieqn-73"><![CDATA[$\text{5.12e}-6$]]></tex-math><mml:math id="mml-ieqn-73"><mml:mstyle class="text"><mml:mtext>5.12e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:math></alternatives></inline-formula></td>
<td>8100</td>
</tr>
<tr>
<td>SF-PSO</td>
<td><bold>0.01267</bold></td>
<td>0.014808</td>
<td>0.013291</td>
<td><inline-formula id="ieqn-74"><alternatives><inline-graphic xlink:href="ieqn-74.png"/><tex-math id="tex-ieqn-74"><![CDATA[$\text{6.76e}-4$]]></tex-math><mml:math id="mml-ieqn-74"><mml:mstyle class="text"><mml:mtext>6.76e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>4</mml:mn></mml:math></alternatives></inline-formula></td>
<td>25000</td>
</tr>
<tr>
<td>VCH-PSO</td>
<td><bold>0.01267</bold></td>
<td>0.016412</td>
<td>0.013394</td>
<td><inline-formula id="ieqn-75"><alternatives><inline-graphic xlink:href="ieqn-75.png"/><tex-math id="tex-ieqn-75"><![CDATA[$\text{9.30e}-4$]]></tex-math><mml:math id="mml-ieqn-75"><mml:mstyle class="text"><mml:mtext>9.30e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>4</mml:mn></mml:math></alternatives></inline-formula></td>
<td>25000</td>
</tr>
</tbody>
</table></table-wrap>
<p>This table indicates that VCH-PSO and SF-PSO attained the same best results with <italic>NFEs</italic> = 25000 as a recent algorithm, ETEO [<xref ref-type="bibr" rid="ref-36">36</xref>], with <italic>NFEs</italic> = 8100. Although the mean value of 20 runs for our proposed algorithms was slightly higher than those of competitors, the small st. dev. values indicate their consistency.</p>
</sec>
<sec id="s4_3_4">
<label>4.3.4</label>
<title>Design of a Pressure Vessel</title>
<p>This problem is based on the minimization of the cost of manufacturing a vessel that can be used to store air. Four decision variables are used to represent the thickness of the vessel, thickness of the head, internal radius, and length of the cylindrical section of the vessel. The problem was proposed by Sandgren in 1988 [<xref ref-type="bibr" rid="ref-37">37</xref>]. Various researchers have attempted the problem. There are two issues with the problem. Different researchers have defined the objective function differently [<xref ref-type="bibr" rid="ref-17">17</xref>,<xref ref-type="bibr" rid="ref-19">19</xref>,<xref ref-type="bibr" rid="ref-33">33</xref>]. Some researchers have treated the first two variables as discrete (being multiples of 0.0625) and the other two as continuous [<xref ref-type="bibr" rid="ref-17">17</xref>], while others have treated all the variables as continuous [<xref ref-type="bibr" rid="ref-33">33</xref>]. In the literature, there exist some comparison tables, in which the optima obtained differ by wide margins. At first glance, some researchers seem to have developed superior algorithms, but our study reveals some unfair comparisons. These wide differences are often due to differences in the definition of the problem and not in the performance of the individual algorithm. In this work, the VCH-PSO and SF-PSO algorithms are applied to models, treating all variables as continuous. Although four different versions of the problem have been noted, only two have been attempted. Comparison is made with only those researchers who used the same model of the problem as proposed in [<xref ref-type="bibr" rid="ref-37">37</xref>].</p>
<p><xref ref-type="table" rid="table-7">Tab. 7</xref> lists simulation results obtained with VCH-PSO, SF-PSO, and some other algorithms. Although SF-PSO achieved the minimum with <italic>NFEs</italic> = 25000 of all the algorithms, the high average and st. dev. values for our proposed algorithms reveal the weak performance of VCH-PSO and SF-PSO for this version of the problem.</p>
<table-wrap id="table-7">
<label>Table 7</label>
<caption>
<title>Comparison of proposed and other algorithms on pressure vessel design problem (version 1)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Algorithm</th>
<th>Best</th>
<th>Worst</th>
<th>Mean</th>
<th>st. dev.</th>
<th>NFEs</th>
</tr>
</thead>
<tbody>
<tr>
<td>SR-PSO</td>
<td>5886.198</td>
<td>6315.015</td>
<td><bold>5942.84</bold></td>
<td>80.44</td>
<td>100000</td>
</tr>
<tr>
<td>CPSO</td>
<td>6061.078</td>
<td>6363.804</td>
<td>6147.133</td>
<td>86.45</td>
<td>240000</td>
</tr>
<tr>
<td>NM-PSO</td>
<td>5930.314</td>
<td>5960.056</td>
<td>5946.79</td>
<td>9.16</td>
<td>80000</td>
</tr>
<tr>
<td>VCH-GA</td>
<td>6059.792</td>
<td>6060.215</td>
<td>6060.062</td>
<td>0.12</td>
<td>50000</td>
</tr>
<tr>
<td>SF-PSO</td>
<td><bold>5821.42</bold></td>
<td>6411.586</td>
<td>6099.488</td>
<td>158.99</td>
<td>25000</td>
</tr>
<tr>
<td>VCH-PSO</td>
<td>5866.686</td>
<td>6554.209</td>
<td>6111.09</td>
<td>219.17</td>
<td>25000</td>
</tr>
</tbody>
</table></table-wrap>
<p><xref ref-type="table" rid="table-8">Tab. 8</xref> lists data for version 2 of the problem. This table gives a comparison of the best solutions obtained by the BWOA, VCH-PSO, and SF-PSO algorithms, showing that VCH-PSO and SF-PSO surpass the BWOA algorithm in terms of the &#x201C;best&#x201D; value.</p>
<table-wrap id="table-8">
<label>Table 8</label>
<caption>
<title>Comparison of proposed and other algorithms on pressure vessel design problem (version 2)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Algorithm</th>
<th>x1</th>
<th>x2</th>
<th>x3</th>
<th>x4</th>
<th>f (x)</th>
</tr>
</thead>
<tbody>
<tr>
<td>BWOA</td>
<td>1.258663</td>
<td>0.621865</td>
<td>65.17912</td>
<td>10.19874</td>
<td>5347.689</td>
</tr>
<tr>
<td>SF-PSO</td>
<td>1.258847</td>
<td>0.622249</td>
<td>65.22523</td>
<td>10</td>
<td><bold>5345.11</bold></td>
</tr>
<tr>
<td>VCH-PSO</td>
<td>1.258847</td>
<td>0.622249</td>
<td>65.22523</td>
<td>10.00001</td>
<td><bold>5345.12</bold></td>
</tr>
</tbody>
</table></table-wrap>
</sec>
<sec id="s4_3_5">
<label>4.3.5</label>
<title>Three-Bar Truss Problem</title>
<p>Kannan and Kramer designed this problem in 1994 [<xref ref-type="bibr" rid="ref-38">38</xref>]. The problem is to minimize the volume of a three-bar truss structure, which is subjected to some stress constraints. The design must sustain a certain load without elastic failure.</p>
<p><xref ref-type="table" rid="table-9">Tab. 9</xref> shows a comparison of the proposed algorithms with BA [<xref ref-type="bibr" rid="ref-38">38</xref>], SR-PSO, CSA [<xref ref-type="bibr" rid="ref-39">39</xref>], SRIFA [<xref ref-type="bibr" rid="ref-40">40</xref>], and ETEO. Although ETEO attained the best result with only 600 <italic>NFEs</italic>, our algorithm VCH-PSO with <italic>NFEs</italic> = 25000 achieved the same best result as CSA, SRIFA, and ETEO. SF-PSO also achieved a best result close to the known solution. However, the results for CSA with <italic>NFEs</italic> = 25000 were better in terms of mean, st. dev., and <italic>NFEs</italic>.</p>
<table-wrap id="table-9">
<label>Table 9</label>
<caption>
<title>Comparison of proposed and other algorithms on three-bar truss problem</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Algorithm</th>
<th>Best</th>
<th>Worst</th>
<th>Mean</th>
<th>st. dev.</th>
<th>NFEs</th>
</tr>
</thead>
<tbody>
<tr>
<td>BA</td>
<td>263.8962</td>
<td>263.9025</td>
<td>263.9061</td>
<td><inline-formula id="ieqn-76"><alternatives><inline-graphic xlink:href="ieqn-76.png"/><tex-math id="tex-ieqn-76"><![CDATA[$\text{3.52e}-3$]]></tex-math><mml:math id="mml-ieqn-76"><mml:mstyle class="text"><mml:mtext>3.52e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>3</mml:mn></mml:math></alternatives></inline-formula></td>
<td>15000</td>
</tr>
<tr>
<td>SR-PSO</td>
<td>263.8958</td>
<td>263.908</td>
<td>263.8978</td>
<td><inline-formula id="ieqn-77"><alternatives><inline-graphic xlink:href="ieqn-77.png"/><tex-math id="tex-ieqn-77"><![CDATA[$\text{3.02e}-5$]]></tex-math><mml:math id="mml-ieqn-77"><mml:mstyle class="text"><mml:mtext>3.02e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>5</mml:mn></mml:math></alternatives></inline-formula></td>
<td>100000</td>
</tr>
<tr>
<td>CSA</td>
<td><bold>263.896</bold></td>
<td><bold>263.896</bold></td>
<td><bold>263.896</bold></td>
<td><inline-formula id="ieqn-78"><alternatives><inline-graphic xlink:href="ieqn-78.png"/><tex-math id="tex-ieqn-78"><![CDATA[$\text{1.01e}-10$]]></tex-math><mml:math id="mml-ieqn-78"><mml:mstyle class="text"><mml:mtext>1.01e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>10</mml:mn></mml:math></alternatives></inline-formula></td>
<td>25000</td>
</tr>
<tr>
<td>SRIFA</td>
<td><bold>263.896</bold></td>
<td><bold>263.896</bold></td>
<td><bold>263.896</bold></td>
<td><inline-formula id="ieqn-79"><alternatives><inline-graphic xlink:href="ieqn-79.png"/><tex-math id="tex-ieqn-79"><![CDATA[$\text{6.21e}- 11$]]></tex-math><mml:math id="mml-ieqn-79"><mml:mstyle class="text"><mml:mtext>6.21e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>11</mml:mn></mml:math></alternatives></inline-formula></td>
<td>240000</td>
</tr>
<tr>
<td>ETEO</td>
<td><bold>263.896</bold></td>
<td>263.8959</td>
<td>263.8958</td>
<td><inline-formula id="ieqn-80"><alternatives><inline-graphic xlink:href="ieqn-80.png"/><tex-math id="tex-ieqn-80"><![CDATA[$\text{6.49e}- 6$]]></tex-math><mml:math id="mml-ieqn-80"><mml:mstyle class="text"><mml:mtext>6.49e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:math></alternatives></inline-formula></td>
<td>600</td>
</tr>
<tr>
<td>SF-PSO</td>
<td>263.8959</td>
<td>263.8982</td>
<td>263.8964</td>
<td><inline-formula id="ieqn-81"><alternatives><inline-graphic xlink:href="ieqn-81.png"/><tex-math id="tex-ieqn-81"><![CDATA[$\text{6.30e}- 4$]]></tex-math><mml:math id="mml-ieqn-81"><mml:mstyle class="text"><mml:mtext>6.30e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>4</mml:mn></mml:math></alternatives></inline-formula></td>
<td>25000</td>
</tr>
<tr>
<td>VCH-PSO</td>
<td><bold>263.896</bold></td>
<td>263.8995</td>
<td>263.8963</td>
<td><inline-formula id="ieqn-82"><alternatives><inline-graphic xlink:href="ieqn-82.png"/><tex-math id="tex-ieqn-82"><![CDATA[$\text{8.82e}- 4$]]></tex-math><mml:math id="mml-ieqn-82"><mml:mstyle class="text"><mml:mtext>8.82e</mml:mtext></mml:mstyle><mml:mo>-</mml:mo><mml:mn>4</mml:mn></mml:math></alternatives></inline-formula></td>
<td>25000</td>
</tr>
</tbody>
</table></table-wrap>
</sec>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Conclusion</title>
<p>In this work, two constrained variants of PSO, SF-PSO and VCH-PSO, are proposed. The performance of both algorithms has been evaluated on five engineering problems. Two issues regarding these problems have been identified through this work. First, different versions of the problems exist. Himmelblau&#x2019;s nonlinear problem has two versions that differ in the constraints involved. The welded beam problem has three versions, which vary in constraints&#x2019; definitions and the terms involved in constraints. The pressure vessel problem has four different versions, which differ in the definition of the objective function. The second issue is regarding the bounds for decision variables. Various researchers have used different bounds. This greatly affects the results, as changing the bounds means changing the search space.</p>
<p>For the first version of Himmelblau&#x2019;s problem, both algorithms attained the optima mentioned in the literature. For the second version of the problem, the algorithms obtained better results than some well-known recent algorithms. Three different versions of the welded beam problem were tried: In the first two versions, our algorithms produced competitive results, while for the third version, our results were better than those of the competitors. For the spring design problem, our algorithms performed better than some state-of-the-art algorithms. In the first version of the pressure vessel design problem, VCH-PSO and SF-PSO gave high mean and st. dev. values, indicating their weak performance. However, for the second version, Chen&#x2019;s algorithm BWOA was surpassed by a wide margin. For the three-bar truss problem, VCH-PSO gave better results but with a narrow margin. These results are encouraging, as VCH-PSO attained the optimum with a 100% feasibility rate. The low st. dev. values in most cases indicate the consistent performance of the proposed algorithms. The experimental results show no marked difference between the proposed algorithms. It may also be noted that our proposed algorithms achieved results better than or comparable with those of competing algorithms on most of the tested problems, with fewer <italic>NFEs</italic> used.</p>
<p>In future, the SF and VCH techniques will be implemented in other SI-based algorithms such as the FA and BA to adapt them for constrained optimization.</p>
</sec>
</body>
<back>
<fn-group><fn fn-type="other"><p><bold>Funding Statement:</bold> The authors thank the Higher Education Commission, Pakistan, for supporting this research under the project NRPU-8925 (M.A.J. and H.U.K.), <uri>https://www.hec.gov.pk/</uri>.</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="book"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Antoniou</surname></string-name> and <string-name><given-names>W. S.</given-names> <surname>Lu</surname></string-name></person-group>, <source>Practical Optimization: Algorithms and Engineering Applications</source>, <edition>1<sup>st</sup></edition> ed. <publisher-loc>New York, US</publisher-loc>: <publisher-name>Springer</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>690</lpage>, <year>2007</year>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Fletcher</surname></string-name></person-group>, <source>Practical Methods of Optimization</source>, <edition>2<sup>nd</sup></edition> ed. <publisher-loc>West Sussex, UK</publisher-loc>: <publisher-name>John Wiley &#x0026; Sons</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>456</lpage>, <year>2013</year>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>X. S.</given-names> <surname>Yang</surname></string-name></person-group>, <source>Nature-Inspired Metaheuristic Algorithms</source>, <edition>2<sup>nd</sup></edition> ed. <publisher-loc>Frome, UK</publisher-loc>: <publisher-name>Luniver Press</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>160</lpage>, <year>2010</year>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>A. E.</given-names> <surname>Eiben</surname></string-name> and <string-name><given-names>J. E.</given-names> <surname>Smith</surname></string-name></person-group>, <source>ntroduction to Evolutionary Computing</source>, <edition>2<sup>nd</sup></edition> ed., vol. <volume>53</volume>. <publisher-loc>New York, US</publisher-loc>: <publisher-name>Springer</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>287</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>X. S.</given-names> <surname>Yang</surname></string-name></person-group>, <source>Nature-Inspired Optimization Algorithms</source>, <edition>2<sup>nd</sup></edition> ed. <publisher-loc>London, UK</publisher-loc>: <publisher-name>Elsevier Science</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>300</lpage>, <year>2016</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>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; <conf-name>IEEE Int. Conf. on Neural Networks</conf-name>, Perth, WA, Australia, vol. <volume>4</volume>, pp. <fpage>1942</fpage>&#x2013;<lpage>1948</lpage>, <year>1995</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>M. A.</given-names> <surname>Jan</surname></string-name> and <string-name><given-names>Q.</given-names> <surname>Zhang</surname></string-name></person-group>, &#x201C;<article-title>MOEA/D for constrained multi-objective optimization: Some preliminary experimental results</article-title>,&#x201D; in <conf-name>2010 UK Workshop on Computational Intelligence</conf-name>, UK, <publisher-name>IEEE</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>6</lpage>, <year>2010</year>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>N. A. A.</given-names> <surname>Aziz</surname></string-name>, <string-name><given-names>M. Y.</given-names> <surname>Alias</surname></string-name>, <string-name><given-names>A. W.</given-names> <surname>Mohemmed</surname></string-name> and <string-name><given-names>K. A.</given-names> <surname>Aziz</surname></string-name></person-group>, &#x201C;<article-title>Particle swarm optimization for constrained and multi-objective problems: A brief review</article-title>,&#x201D; <conf-name>Int. Conf. on Management and Artificial Intelligence</conf-name>, Bali, Indonesia, vol. <volume>6</volume>, pp. <fpage>146</fpage>&#x2013;<lpage>150</lpage>, <year>2011</year>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M. A.</given-names> <surname>Jan</surname></string-name> and <string-name><given-names>R. A.</given-names> <surname>Khanum</surname></string-name></person-group>, &#x201C;<article-title>A study of two penalty-parameterless constraint handling techniques in the framework of MOEA/D</article-title>,&#x201D; <source>Applied Soft Computing</source>, vol. <volume>13</volume>, no. <issue>1</issue>, pp. <fpage>128</fpage>&#x2013;<lpage>148</lpage>, <year>2013</year>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M. A.</given-names> <surname>Jan</surname></string-name>, <string-name><given-names>R. A.</given-names> <surname>Khanum</surname></string-name>, <string-name><given-names>N. M.</given-names> <surname>Tairan</surname></string-name> and <string-name><given-names>W. K.</given-names> <surname>Mashwani</surname></string-name></person-group>, &#x201C;<article-title>Performance of a constrained version of MOEA/D on CTP-series test instances</article-title>,&#x201D; <source>International Journal of Advanced Computer Science and Applications</source>, vol. <volume>7</volume>, no. <issue>6</issue>, pp. <fpage>496</fpage>&#x2013;<lpage>505</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M. A.</given-names> <surname>Jan</surname></string-name>, <string-name><given-names>N. M.</given-names> <surname>Tairan</surname></string-name>, <string-name><given-names>R. A.</given-names> <surname>Khanum</surname></string-name> and <string-name><given-names>W. K.</given-names> <surname>Mashwani</surname></string-name></person-group>, &#x201C;<article-title>A new threshold based penalty function embedded MOEA/D</article-title>,&#x201D; <source>International Journal of Advanced Computer Science and Applications</source>, vol. <volume>7</volume>, no. <issue>2</issue>, pp. <fpage>645</fpage>&#x2013;<lpage>655</lpage>, <year>2016</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>M. A.</given-names> <surname>Jan</surname></string-name>, <string-name><given-names>N. M.</given-names> <surname>Tairan</surname></string-name>, <string-name><given-names>R. A.</given-names> <surname>Khanum</surname></string-name> and <string-name><given-names>W. K.</given-names> <surname>Mashwani</surname></string-name></person-group>, &#x201C;<article-title>Threshold based penalty functions for constrained multiobjective optimization</article-title>,&#x201D; <source>International Journal of Advanced Computer Science and Applications</source>, vol. <volume>7</volume>, no. <issue>2</issue>, pp. <fpage>656</fpage>&#x2013;<lpage>667</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Javed</surname></string-name>, <string-name><given-names>M. A.</given-names> <surname>Jan</surname></string-name>, <string-name><given-names>N.</given-names> <surname>Tairan</surname></string-name>, <string-name><given-names>W. K.</given-names> <surname>Mashwani</surname></string-name>, <string-name><given-names>R. A.</given-names> <surname>Khanum</surname></string-name> <etal>et al.</etal></person-group><italic>,</italic> &#x201C;<article-title>On the efficacy of ensemble of constraint handling techniques in self-adaptive differential evolution</article-title>,&#x201D; <source>Mathematics</source>, vol. <volume>7</volume>, no. <issue>7</issue>, pp. <fpage>635</fpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>T.</given-names> <surname>Shah</surname></string-name>, <string-name><given-names>M. A.</given-names> <surname>Jan</surname></string-name>, <string-name><given-names>W. K.</given-names> <surname>Mashwani</surname></string-name> and <string-name><given-names>H.</given-names> <surname>Wazir</surname></string-name></person-group>, &#x201C;<article-title>Adaptive differential evolution for constrained optimization problems</article-title>,&#x201D; <source>Science International</source>, vol. <volume>28</volume>, no. <issue>3</issue>, pp. <fpage>2313</fpage>&#x2013;<lpage>2320</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Wazir</surname></string-name>, <string-name><given-names>M. A.</given-names> <surname>Jan</surname></string-name>, <string-name><given-names>W. K.</given-names> <surname>Mashwani</surname></string-name> and <string-name><given-names>T.</given-names> <surname>Shah</surname></string-name></person-group>, &#x201C;<article-title>A penalty function based differential evolution algorithm for constrained optimization</article-title>,&#x201D; <source>Nucleus</source>, vol. <volume>53</volume>, no. <issue>1</issue>, pp. <fpage>155</fpage>&#x2013;<lpage>166</lpage>, <year>2016</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>K.</given-names> <surname>Deb</surname></string-name></person-group>, &#x201C;<article-title>An efficient constraint handling method for genetic algorithms</article-title>,&#x201D; <source>Computer Methods in Applied Mechanics and Engineering</source>, vol. <volume>186</volume>, no. <issue>2&#x2013;4</issue>, pp. <fpage>311</fpage>&#x2013;<lpage>338</lpage>, <year>2000</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>A.</given-names> <surname>Chehouri</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Younes</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Perron</surname></string-name> and <string-name><given-names>A.</given-names> <surname>Ilinca</surname></string-name></person-group>, &#x201C;<article-title>A constraint-handling technique for genetic algorithms using a violation factor</article-title>,&#x201D; <source>Journal of Computer Science</source>, vol. <volume>12</volume>, no. <issue>7</issue>, pp. <fpage>350</fpage>&#x2013;<lpage>362</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>B.</given-names> <surname>Chopard</surname></string-name> and <string-name><given-names>M.</given-names> <surname>Tomassini</surname></string-name></person-group>, <source>An Introduction to Metaheuristics for Optimization</source>, <edition>1<sup>st</sup></edition> ed. <publisher-loc>Cham, Switzerland</publisher-loc>: <publisher-name>Springer</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>238</lpage>, <year>2018</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>L.</given-names> <surname>Ali</surname></string-name>, <string-name><given-names>S. L.</given-names> <surname>Sabat</surname></string-name> and <string-name><given-names>S. K.</given-names> <surname>Udgata</surname></string-name></person-group>, &#x201C;<article-title>Particle swarm optimization with stochastic ranking for constrained numerical and engineering benchmark problems</article-title>,&#x201D; <source>International Journal of Bio-inspired Computation</source>, vol. <volume>4</volume>, no. <issue>3</issue>, pp. <fpage>155</fpage>&#x2013;<lpage>166</lpage>, <year>2012</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.</given-names> <surname>Ratnaweera</surname></string-name>, <string-name><given-names>S. K.</given-names> <surname>Halgamuge</surname></string-name> and <string-name><given-names>H. C.</given-names> <surname>Watson</surname></string-name></person-group>, &#x201C;<article-title>Self-organizing hierarchical particle swarm optimizer with time-varying acceleration coefficients</article-title>,&#x201D; <source>IEEE Transactions on Evolutionary Computation</source>, vol. <volume>8</volume>, no. <issue>3</issue>, pp. <fpage>240</fpage>&#x2013;<lpage>255</lpage>, <year>2004</year>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Shi</surname></string-name> and <string-name><given-names>R. C.</given-names> <surname>Eberhart</surname></string-name></person-group>, &#x201C;<article-title>Parameter selection in particle swarm optimization</article-title>,&#x201D; in <conf-name>Int. Conf. on Evolutionary Programming</conf-name>, San Diego, California, USA, <publisher-name>Springer</publisher-name>, pp. <fpage>591</fpage>&#x2013;<lpage>600</lpage>, <year>1998</year>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>J. C. F.</given-names> <surname>Cabrera</surname></string-name> and <string-name><given-names>C. A. C.</given-names> <surname>Coello</surname></string-name></person-group>, &#x201C;<article-title>Handling constraints in particle swarm optimization using a small population size</article-title>,&#x201D; in <conf-name>Mexican Int. Conf. on Artificial Intelligence</conf-name>, Aguascalientes, Mexico, <publisher-name>Springer</publisher-name>, pp. <fpage>41</fpage>&#x2013;<lpage>45</lpage>, <year>2007</year>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>X.</given-names> <surname>Hu</surname></string-name> and <string-name><given-names>R.</given-names> <surname>Eberhart</surname></string-name></person-group>, &#x201C;<article-title>Solving constrained nonlinear optimization problems with particle swarm optimization</article-title>,&#x201D; <source>Proc. of the Sixth World Multiconference on Systemics, Cybernetics and Informatics</source>, <publisher-name>Citeseer</publisher-name>, vol. <volume>5</volume>, pp. <fpage>203</fpage>&#x2013;<lpage>206</lpage>, <year>2002</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>Q.</given-names> <surname>He</surname></string-name> and <string-name><given-names>L.</given-names> <surname>Wang</surname></string-name></person-group>, &#x201C;<article-title>A hybrid particle swarm optimization with a feasibility-based rule for constrained optimization</article-title>,&#x201D; <source>Applied Mathematics and Computation</source>, vol. <volume>186</volume>, no. <issue>2</issue>, pp. <fpage>1407</fpage>&#x2013;<lpage>1422</lpage>, <year>2007</year>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>T.</given-names> <surname>Takahama</surname></string-name> and <string-name><given-names>S.</given-names> <surname>Sakai</surname></string-name></person-group>, &#x201C;<chapter-title>Constrained optimization by &#x03F5;-constrained particle swarm optimizer with &#x03F5;-level control</chapter-title>,&#x201D; in <source>Soft Computing as Transdisciplinary Science and Technology</source>, <publisher-loc>Berlin, Heidelberg</publisher-loc>: <publisher-name>Springer-Verlag</publisher-name>, pp. <fpage>1019</fpage>&#x2013;<lpage>1029</lpage>, <year>2005</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>T.</given-names> <surname>Takahama</surname></string-name> and <string-name><given-names>S.</given-names> <surname>Sakai</surname></string-name></person-group>, &#x201C;<article-title>Constrained optimization by &#x03B1; constrained genetic algorithm (&#x03B1;GA)</article-title>,&#x201D; <source>Systems and Computers in Japan</source>, vol. <volume>35</volume>, no. <issue>5</issue>, pp. <fpage>11</fpage>&#x2013;<lpage>22</lpage>, <year>2004</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>K. E.</given-names> <surname>Parsopoulos</surname></string-name> and <string-name><given-names>M. N.</given-names> <surname>Vrahatis</surname></string-name></person-group>, &#x201C;<article-title>Particle swarm optimization method for constrained optimization problems</article-title>,&#x201D; <source>Intelligent Technologies-Theory and Application: New Trends in Intelligent Technologies</source>, vol. <volume>76</volume>, no. <issue>1</issue>, pp. <fpage>214</fpage>&#x2013;<lpage>220</lpage>, <year>2002</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>B.</given-names> <surname>Tang</surname></string-name>, <string-name><given-names>Z.</given-names> <surname>Zhu</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Luo</surname></string-name></person-group>, &#x201C;<article-title>A framework for constrained optimization problems based on a modified particle swarm optimization</article-title>,&#x201D; <source>Mathematical Problems in Engineering</source>, vol. <volume>2016</volume>, no. <issue>6</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>19</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>D. M.</given-names> <surname>Himmelblau</surname></string-name></person-group>, <source>Applied Nonlinear Programming</source>, <edition>1<sup>st</sup></edition> ed. <publisher-loc>Michigan, US</publisher-loc>: <publisher-name>McGraw-Hill Companies</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>498</lpage>, <year>1972</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>J.</given-names> <surname>Liang</surname></string-name>, <string-name><given-names>T. P.</given-names> <surname>Runarsson</surname></string-name>, <string-name><given-names>E.</given-names> <surname>Mezura-Montes</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Clerc</surname></string-name>, <string-name><given-names>P. N.</given-names> <surname>Suganthan</surname></string-name> <etal>et al.</etal></person-group><italic>,</italic> &#x201C;<article-title>Problem definitions and evaluation criteria for the CEC, 2006 special session on constrained real-parameter optimization</article-title>,&#x201D; <source>Journal of Applied Mechanics</source>, vol. <volume>41</volume>, no. <issue>8</issue>, pp. <fpage>8</fpage>&#x2013;<lpage>31</lpage>, <year>2006</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>C. A. C.</given-names> <surname>Coello</surname></string-name></person-group>, &#x201C;<article-title>Use of a self-adaptive penalty approach for engineering optimization problems</article-title>,&#x201D; <source>Computers in Industry</source>, vol. <volume>41</volume>, no. <issue>2</issue>, pp. <fpage>113</fpage>&#x2013;<lpage>127</lpage>, <year>2000</year>.</mixed-citation></ref>
<ref id="ref-32"><label>[32]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>S. S.</given-names> <surname>Rao</surname></string-name></person-group>, <source>Engineering Optimization: Theory and Practice</source>, <edition>4<sup>th</sup></edition> ed. <publisher-loc>New Jersey, US</publisher-loc>: <publisher-name>John Wiley &#x0026; Sons</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>848</lpage>, <year>2009</year>.</mixed-citation></ref>
<ref id="ref-33"><label>[33]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Chen</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Xu</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Wang</surname></string-name> and <string-name><given-names>X.</given-names> <surname>Zhao</surname></string-name></person-group>, &#x201C;<article-title>A balanced whale optimization algorithm for constrained engineering design problems</article-title>,&#x201D; <source>Applied Mathematical Modelling</source>, vol. <volume>71</volume>, pp. <fpage>45</fpage>&#x2013;<lpage>59</lpage>, <year>2019</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>A. H.</given-names> <surname>Gandomi</surname></string-name>, <string-name><given-names>X. S.</given-names> <surname>Yang</surname></string-name> and <string-name><given-names>A. H.</given-names> <surname>Alavi</surname></string-name></person-group>, &#x201C;<article-title>Mixed variable structural optimization using firefly algorithm</article-title>,&#x201D; <source>Computers &#x0026; Structures</source>, vol. <volume>89</volume>, no. <issue>23&#x2013;24</issue>, pp. <fpage>2325</fpage>&#x2013;<lpage>2336</lpage>, <year>2011</year>.</mixed-citation></ref>
<ref id="ref-35"><label>[35]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>J. S.</given-names> <surname>Arora</surname></string-name></person-group>, <source>Introduction to Optimum Design</source>, <edition>3<sup>rd</sup></edition> ed. <publisher-loc>Waltham, USA</publisher-loc>: <publisher-name>Elsevier</publisher-name>, pp. <fpage>1</fpage>&#x2013;<lpage>851</lpage>, <year>2011</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>M. S.</given-names> <surname>Azqandi</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Delavar</surname></string-name> and <string-name><given-names>M.</given-names> <surname>Arjmand</surname></string-name></person-group>, &#x201C;<article-title>An enhanced time evolutionary optimization for solving engineering design problems</article-title>,&#x201D; <source>Engineering with Computers</source>, vol. <volume>36</volume>, no. <issue>2</issue>, pp. <fpage>763</fpage>&#x2013;<lpage>781</lpage>, <year>2020</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>E.</given-names> <surname>Sandgren</surname></string-name></person-group>, &#x201C;<article-title>Nonlinear integer and discrete programming in mechanical design optimization</article-title>,&#x201D; <source>Journal of Mechanical Design</source>, vol. <volume>112</volume>, no. <issue>2</issue>, pp. <fpage>223</fpage>&#x2013;<lpage>229</lpage>, <year>1990</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>X. S.</given-names> <surname>Yang</surname></string-name> and <string-name><given-names>A.</given-names> <surname>Hossein Gandomi</surname></string-name></person-group>, &#x201C;<article-title>BAT algorithm: A novel approach for global engineering optimization</article-title>,&#x201D; <source>Engineering Computations</source>, vol. <volume>29</volume>, no. <issue>5</issue>, pp. <fpage>464</fpage>&#x2013;<lpage>483</lpage>, <year>2012</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>A.</given-names> <surname>Askarzadeh</surname></string-name></person-group>, &#x201C;<article-title>A novel metaheuristic method for solving constrained engineering optimization problems: Crow search algorithm</article-title>,&#x201D; <source>Computers &#x0026; Structures</source>, vol. <volume>169</volume>, pp. <fpage>1</fpage>&#x2013;<lpage>12</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-40"><label>[40]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>U.</given-names> <surname>Balande</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Shrimankar</surname></string-name></person-group>, &#x201C;<article-title>Stochastic ranking with improved-firefly-algorithm for constrained optimization engineering design problems</article-title>,&#x201D; <source>Mathematics</source>, vol. <volume>7</volume>, no. <issue>3</issue>, pp. <fpage>250</fpage>, <year>2019</year>.</mixed-citation></ref>
</ref-list>
</back>
</article>