<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xml:lang="en" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMES</journal-id>
<journal-id journal-id-type="nlm-ta">CMES</journal-id>
<journal-id journal-id-type="publisher-id">CMES</journal-id>
<journal-title-group>
<journal-title>Computer Modeling in Engineering &#x0026; Sciences</journal-title>
</journal-title-group>
<issn pub-type="epub">1526-1506</issn>
<issn pub-type="ppub">1526-1492</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">80453</article-id>
<article-id pub-id-type="doi">10.32604/cmes.2026.080453</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Weighted k-NNC: An Efficient Computation Reduction Method for Metaheuristic-Based Structural Optimization</article-title>
<alt-title alt-title-type="left-running-head">Weighted k-NNC: An Efficient Computation Reduction Method for Metaheuristic-Based Structural Optimization</alt-title>
<alt-title alt-title-type="right-running-head">Weighted k-NNC: An Efficient Computation Reduction Method for Metaheuristic-Based Structural Optimization</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Nguyen</surname><given-names>Anh-Vu</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western"><surname>Vu</surname><given-names>Tien-Chuong</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>Nguyen</surname><given-names>Ba-Duan</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-4" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Pham</surname><given-names>Hoang-Anh</given-names></name><xref ref-type="aff" rid="aff-1">1</xref><xref rid="cor1" ref-type="corresp">&#x002A;</xref><email>anhph2@huce.edu.vn</email></contrib>
<contrib id="author-5" contrib-type="author">
<name name-style="western"><surname>Rao</surname><given-names>Ravipudi Venkata</given-names></name><xref ref-type="aff" rid="aff-2">2</xref></contrib>
<aff id="aff-1"><label>1</label><institution>Hanoi University of Civil Engineering</institution>, <addr-line>55 Giai Phong road, Hanoi</addr-line>, <country>Vietnam</country></aff>
<aff id="aff-2"><label>2</label><institution>Sardar Vallabhbhai National Institute of Technology</institution>, <addr-line>Surat</addr-line>, <country>India</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Hoang-Anh Pham. Email: <email>anhph2@huce.edu.vn</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2026</year>
</pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>27</day><month>4</month><year>2026</year>
</pub-date>
<volume>147</volume>
<issue>1</issue>
<elocation-id>15</elocation-id>
<history>
<date date-type="received">
<day>10</day>
<month>02</month>
<year>2026</year>
</date>
<date date-type="accepted">
<day>16</day>
<month>03</month>
<year>2026</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2026 The Authors. Published by Tech Science Press.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>The Authors</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_CMES_80453.pdf"></self-uri>
<abstract>
<p>Structural optimization is essential for finding optimal designs in practical engineering tasks. Metaheuristic algorithms have been widely applied in structural optimization problems in recent years, especially when dealing with discrete design variables, the nonlinearity of the objective function and constraints. Unlike gradient-based algorithms, which rely on the slope variation of a function, metaheuristic algorithms do not require derivative calculations and thus avoid being trapped in local optimum. However, metaheuristic algorithms often require numerous function evaluations, involving costly structural analyses, thus increasing computational load considerably. This paper investigates a method to reduce computational load, specifically by reducing the number of function evaluations for metaheuristic-based structural optimization problems. The proposed strategy is based on eliminating unpromising designs during the optimization process. For each newly generated solution, an early assessment through its k nearest neighbors, named k-nearest neighbor comparison (k-NNC), is applied, acting as a filter. If a solution is deemed less promising, it is eliminated without going through the function evaluation step. Conversely, if a solution is deemed good, it is retained for the next comparison and selection step. This paper presents the implementation sequence of k-NNC, highlighting its disadvantages in terms of efficiency and accuracy. From this, a new method, the distance-weighted k-nearest neighbor comparison (wkNNC), has been developed. In wkNNC, the distance from the k neighbors to the solution under consideration is used as the weight for comparison. Furthermore, an archive of infeasible solutions and the potential solution refinement are introduced for enhancing the accuracy and efficiency of wkNNC. The superiority of wkNNC is demonstrated in the sizing optimization of some benchmark discrete cross-section truss structures. The wkNNC method, combined with the Best-Worst-Random (BWR) algorithm, achieves a computational load reduction of over 80 percent.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Structural optimization</kwd>
<kwd>metaheuristic algorithm</kwd>
<kwd>computation reduction</kwd>
<kwd>k-NN</kwd>
<kwd>distance-weighted k-NNC</kwd>
<kwd>BWR algorithm</kwd>
</kwd-group>
<funding-group>
<award-group id="awg1">
<funding-source>Hanoi University of Civil Engineering (HUCE)</funding-source>
<award-id>39&#x2013;2025/KHXD-T&#x0110;</award-id>
</award-group>
</funding-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>Structural optimization has become an indispensable tool in modern engineering design, enabling engineers to develop efficient, lightweight, and cost-effective structures while satisfying multiple constraints including strength, stiffness, stability, and manufacturability [<xref ref-type="bibr" rid="ref-1">1</xref>,<xref ref-type="bibr" rid="ref-2">2</xref>]. Over the past three decades, metaheuristic algorithms have emerged as powerful optimization techniques for structural optimization [<xref ref-type="bibr" rid="ref-3">3</xref>&#x2013;<xref ref-type="bibr" rid="ref-7">7</xref>]. The superior of metaheuristics is their capability of handling complex, non-convex, and multi-modal structural optimization problems where traditional gradient-based methods often struggle [<xref ref-type="bibr" rid="ref-8">8</xref>&#x2013;<xref ref-type="bibr" rid="ref-10">10</xref>]. These metaheuristic algorithms, including Genetic Algorithms (GA) [<xref ref-type="bibr" rid="ref-11">11</xref>], Simulated Annealing (SA) [<xref ref-type="bibr" rid="ref-12">12</xref>], Particle Swarm Optimization (PSO) [<xref ref-type="bibr" rid="ref-13">13</xref>], Differential Evolution (DE) [<xref ref-type="bibr" rid="ref-14">14</xref>], Teaching Learning Based Optimization (TLBO) [<xref ref-type="bibr" rid="ref-15">15</xref>], and more recent variants such as Grey Wolf Optimizer (GWO) [<xref ref-type="bibr" rid="ref-16">16</xref>], Whale Optimization Algorithm (WOA) [<xref ref-type="bibr" rid="ref-17">17</xref>], Jaya algorithm [<xref ref-type="bibr" rid="ref-18">18</xref>], Rao algorithms [<xref ref-type="bibr" rid="ref-19">19</xref>], and so on [<xref ref-type="bibr" rid="ref-20">20</xref>], have demonstrated remarkable robustness in finding near-optimal solutions without requiring gradient information or convexity assumptions.</p>
<p>However, the primary limitation of metaheuristic algorithms in structural optimization applications is their substantial computational cost, which stems from the requirement to evaluate thousands or even millions of candidate designs during the search process. Each function evaluation typically involves finite element analysis (FEA) [<xref ref-type="bibr" rid="ref-21">21</xref>,<xref ref-type="bibr" rid="ref-22">22</xref>], which can be extremely time-consuming, particularly for large-scale structures, nonlinear problems, or dynamic analyses [<xref ref-type="bibr" rid="ref-23">23</xref>]. For instance, a single FEA of a complex three-dimensional structure may require several minutes to hours, and when multiplied by the population size and number of generations in a metaheuristic algorithm, the total computational time can become prohibitive for practical engineering applications. This computational burden has been identified as the main drawback preventing the widespread adoption of metaheuristic-based structural optimization in the real-world.</p>
<p>Recognizing this critical challenge, researchers have developed numerous strategies to reduce computational costs while maintaining solution quality. These approaches can be broadly categorized into several methodologies, such as surrogate-based optimization techniques [<xref ref-type="bibr" rid="ref-24">24</xref>&#x2013;<xref ref-type="bibr" rid="ref-27">27</xref>], dimensionality reduction methods [<xref ref-type="bibr" rid="ref-28">28</xref>], efficient reanalysis procedures [<xref ref-type="bibr" rid="ref-29">29</xref>,<xref ref-type="bibr" rid="ref-30">30</xref>], parallel and distributed computing strategies [<xref ref-type="bibr" rid="ref-31">31</xref>,<xref ref-type="bibr" rid="ref-32">32</xref>], and hybrid frameworks combining multiple approaches [<xref ref-type="bibr" rid="ref-33">33</xref>&#x2013;<xref ref-type="bibr" rid="ref-35">35</xref>]. Among various computational acceleration strategies, k-Nearest Neighbor (k-NN) based approaches have emerged as promising alternatives to other surrogate modeling techniques due to their simplicity, non-parametric nature, and ability to handle high-dimensional problems effectively. Therefore, this contribution focuses on computation reduction by the k-NN based approach.</p>
<p>The k-NN method, originally developed for pattern recognition and classification [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-37">37</xref>], operates on the principle that similar inputs produce similar outputs. In the context of structural optimization, this translates to the idea that structurally similar designs will exhibit similar performance characteristics. Unlike global surrogate models such as Kriging or polynomial response surfaces that attempt to approximate the entire design space, k-NN provides local approximations based only on the most relevant historical data points, making it particularly suitable for problems with complex, non-stationary response landscapes [<xref ref-type="bibr" rid="ref-38">38</xref>].</p>
<p>The integration of k-NN with metaheuristic algorithms typically follows a database-driven framework where all evaluated designs and their responses are stored in a historical database. The process comprises three main stages. First, an initial database (or population) is constructed by generating a number of designs using sampling techniques, and then evaluating them using exact function evaluation (e.g., finite element analysis, FEA). In the second stage, within each iteration of the metaheuristic, new candidate designs are generated by metaheuristic&#x2019;s operators (crossover, mutation, velocity update, etc.), and then k nearest neighbors are used to approximate fitness by k nearest neighbors from the database; only the most promising candidates are selected for actual FEA evaluation (pre-screening), and the database is continuously updated. The final stage continues until convergence. This process effectively leverages the computational efficiency of k-NN (prediction cost is dominated by neighbor search) while continuously improving approximation accuracy as the database grows. The key insight is that k-NN does not need to be globally accurate across the entire design space&#x2014;it only needs to reliably distinguish promising from unpromising candidates in the current population.</p>
<p>In structural optimization, k-NN has been successfully combined with metaheuristic algorithms for reducing the computational cost. Singh and Kapania [<xref ref-type="bibr" rid="ref-39">39</xref>] used k-NN as active learner for accelerating the GA optimization of complex structures and showed that k-NN assisted GA could reduce total FEA evaluations by 50% while converging to solutions within 2%&#x2013;5% of those found by standard GA. Krempser et al. [<xref ref-type="bibr" rid="ref-40">40</xref>] developed a k-NN based surrogate model in order to improve the performance of DE in computationally expensive truss optimization problems. Pham [<xref ref-type="bibr" rid="ref-41">41</xref>] introduced a new approach for computation reduction, the nearest-neighbor-comparison (NNC), pre-screening candidate (trial) designs based on comparing their nearest neighbor (k &#x003D; 1) in the population with the target solution. The NNC strategy was integrated with an improved DE algorithm for continuous sizing of truss structures under frequency constraints and provided about 50% reduction of FEA evaluations (see Ref. [<xref ref-type="bibr" rid="ref-42">42</xref>]). Recently, the NNC concept has been extended to solve discrete truss sizing problems (see Ref. [<xref ref-type="bibr" rid="ref-43">43</xref>]), where k (k &#x003E; 1) nearest neighbors of a candidate solution were used in the NNC framework, forming the k-Nearest Neighbor Comparison (k-NNC) method. The k-NNC has been successfully combined with Rao algorithms [<xref ref-type="bibr" rid="ref-19">19</xref>] and reduced 40%&#x2013;60% total FEA evaluations.</p>
<p>The key difference between k-NNC introduced by Pham et al. [<xref ref-type="bibr" rid="ref-43">43</xref>] and other k-NN models is that k-NNC functions as a specialized prescreening filter. In k-NNC, k nearest neighbors are not used to approximate the fitness function value (regression), nor are they used for classification. As presented in <xref ref-type="sec" rid="s2">Section 2</xref>, k-NNC compares the k nearest neighbors of a potential design with the target solution at the selection step of the metaheuristic algorithm; and only when the majority of k nearest neighbors are better is the potential design further evaluated using exact FEA computation. In this way, the drawbacks of the k-NN method, such as accuracy (when working with a sparse database) or computational cost (when working with a large database), are overcome. Besides, since the k nearest neighbors are derived from the current population, k-NNC does not require additional memory to store training data like traditional k-NN models [<xref ref-type="bibr" rid="ref-43">43</xref>].</p>
<p>While the k-NNC framework demonstrated significant potential by reducing FEA evaluations by up to 60%, it possesses two critical theoretical limitations that this study aims to overcome. First, the original k-NNC exhibits a &#x2018;population convergence bias&#x2019;. As the metaheuristic process progresses, the population naturally migrates toward the feasible region. Consequently, the k-nearest neighbors found within the current population become predominantly feasible, causing the filter to lose its &#x2018;spatial memory&#x2019; of the infeasible boundaries. This leads to a significant decrement in filtering accuracy in later iterations, where the algorithm may misjudge and retain more than 50% of trial designs that are actually infeasible. Second, the k-NNC framework assumes a uniform influence for all k-neighbors. In k-NNC, every neighbor is assigned an equal vote regardless of its actual distance from the trial solution, which contradicts the fundamental principle that closer neighbors should provide more reliable information about the local landscape.</p>
<p>To address these deficiencies, this paper introduces a conceptual leap through the weighted k-NNC (wkNNC) framework. This new approach moves beyond simple voting by implementing a distance-weighted dominance mechanism, utilizing the inverse distance to prioritize the influence of closer neighbors. More importantly, we introduce an active infeasible archive that serves as a permanent &#x2018;memory map&#x2019; of the design space&#x2019;s infeasible regions. By seeking neighbors from both the current population and this specialized archive, the proposed wkNNC maintains a high resolution of the feasible/infeasible boundary throughout the entire optimization process. Additionally, a potential solution refinement procedure is incorporated as a safety mechanism to prevent the accidental rejection of high-quality designs located near boundary regions. In this way, wkNNC restructures the comparison process in k-NNC to create an &#x201C;adaptive filter&#x201D; based on local search history. These enhancements transform the filter from a simple proximity checker into an adaptive, memory-driven decision system.</p>
<p>The remaining parts of the paper are presented as follow. The k-NNC frameworks and its limitations are described and discussed in <xref ref-type="sec" rid="s2">Section 2</xref>. Based on the identified disadvantages, the distance-weighted k-nearest neighbor comparison (wkNNC) is proposed in <xref ref-type="sec" rid="s3">Section 3</xref>. The superiority of wkNNC is demonstrated in <xref ref-type="sec" rid="s4">Section 4</xref> through discrete sizing of benchmark structural problems of different scales, including the 10-bar, 25-bar, 52-bar, 72-bar, 160-bar, and 200-bar trusses. The findings are concluded in <xref ref-type="sec" rid="s5">Section 5</xref>.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>The k-NNC Assisted Metaheuristic Optimization</title>
<sec id="s2_1">
<label>2.1</label>
<title>Brief of Structural Optimization Problem</title>
<p>In the field of structural engineering, structural optimization is the process of finding a set of design variables to minimize (or maximize) one or more design objectives, while still satisfying all constraints regarding load-bearing capacity, serviceability, and structural requirements. Within the scope of this study, the single-objective structural optimization problem will be considered. For example, the mathematical representation of a structural weight optimization problem is written as follows:<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mtext>Minimize</mml:mtext></mml:mrow><mml:mspace width="thinmathspace" /><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2264;</mml:mo><mml:mn>0</mml:mn><mml:mspace width="1em" /><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msubsup><mml:mspace width="1em" /><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>is a vector of <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mi>D</mml:mi></mml:math></inline-formula> design variables; <inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mi>w</mml:mi></mml:math></inline-formula> is the weight of the structure; <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are the objective and constraint functions, respectively; and <inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> are the lower and upper limits of the <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mi>i</mml:mi></mml:math></inline-formula>-th design variable. Design variables are quantities that characterize the structure, such as: geometric parameters of the cross-section (cross-section dimensions, cross-sectional area, moment of inertia of the cross-section, or thickness, etc.); mechanical properties of the material (elastic modulus, material density, etc.); and nodal coordinates. The constraints reflect the technical requirements such as stress, displacement, and vibration frequency that the structure must satisfy. These parameters often have complex, nonlinear relationships with the design variables, leading to challenges in solving structural optimization problems. Furthermore, constraint functions in structural optimization problems are often black-box, meaning they are not described in explicit mathematical forms, making their derivatives difficult or impossible to calculate. Moreover, design variables are often discrete. These characteristics of structural optimization problems render gradient-based algorithms, which are powerful due to their convergence speed, ineffective or unusable.</p>
<p>Metaheuristic algorithms, on the other hand, do not require complex derivative calculations, are well-adapted to discrete problems, and are therefore a suitable choice for solving practical problems. Metaheuristic algorithms have been successfully applied in many structural optimization problems due to their ease of integration with existing structural analysis tools (where the evaluation of the objective function and constraints is performed using tools independent of the algorithm). A brief introduction to the workflow of a metaheuristic algorithm and its performance in a 3-bar truss problem is presented below.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Brief of Population-Based Metaheuristic</title>
<p>The general workflow of a population-based metaheuristic algorithm includes the following main steps:<list list-type="simple">
<list-item>
<label>1.</label>
<p>Initializing population: A set <inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mi mathvariant="bold-italic">P</mml:mi></mml:math></inline-formula> of <inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula> solutions <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> (<inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula>) is generated in the design domain (usually randomly generated with a uniform distribution);</p></list-item>
<list-item>
<label>2.</label>
<p>Creating trial solutions: From this population, new designs <inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> are created through algorithm operators. This step may include crossover process, mutation (e.g., GA, DE), or directional move (e.g., PSO);</p></list-item>
<list-item>
<label>3.</label>
<p>Evaluating the trial solutions: The objective function value and constraint values corresponding to <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> are computed;</p></list-item>
<list-item>
<label>4.</label>
<p>Updating the population: Comparison of trial solutions <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> with the current designs <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> is performed using the objective function and constraint values. If <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is better than <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>, it will replace <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> in the population;</p></list-item>
<list-item>
<label>5.</label>
<p>Checking for convergence or termination condition: when the condition is met, the algorithm will stop and report the best optimal result; otherwise, it will return to step 2.</p></list-item>
</list></p>
<p>Typically, to achieve the required level of convergence, metaheuristic algorithms must perform many iterations. This is because the process of generating new designs often involves randomness. Therefore, metaheuristics require numerous function calls to evaluate the objective function and constraints for the generated designs. The computational time becomes enormous once the function evaluations are expensive, as often seen in structural design problems involving FEA evaluations.</p>
<p>To illustrate, consider a structural weight optimization problem for a simple truss consisting of 3 members as shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>. The design variables are the cross-section areas of the truss members <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> (since <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>). Assuming all members are made of the same material, the objective function is the total volume of the truss, <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:msqrt><mml:mn>2</mml:mn></mml:msqrt><mml:mi>L</mml:mi><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>L</mml:mi><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, which is a linear function of <inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>. The constraint is that the stress in the truss members does not exceed 2 kN/cm<sup>2</sup>. <xref ref-type="fig" rid="fig-2">Fig. 2</xref> shows the design domain with stress curves having a value of 2 kN/cm<sup>2</sup>. The feasible boundary can be seen as a non-linear curve. The optimal volume of the truss is 263.89584 cm<sup>3</sup>, corresponding to bar areas <inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> &#x003D; 0.788675 cm<sup>2</sup> and <inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> &#x003D; 0.40825 cm<sup>2</sup>, which is a point on the feasibility boundary (<inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> &#x003D; 2 kN/cm<sup>2</sup>) shown as &#x2018;&#x002A;&#x2019; in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>. To achieve a result close to 263.896 cm<sup>3</sup>, the &#x201C;DE/rand/1/bin&#x201D; algorithm (see Ref. [<xref ref-type="bibr" rid="ref-14">14</xref>]) with a population <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula> &#x003D; 20 requires in average 50 iterations, corresponding to approximately 1000 evaluations of the objective function and constraints. <xref ref-type="fig" rid="fig-3">Fig. 3</xref> illustrates the population convergence at iterations 1, 5, 20, and 50.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>The 3-bar truss model.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-1.tif"/>
</fig><fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>The design domain of the 3-bar truss problem and stress boundaries.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-2.tif"/>
</fig><fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Population convergence in 3-bar truss optimization by DE/rand/1/bin.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-3.tif"/>
</fig>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>K-Nearest Neighbor Comparison (k-NNC)</title>
<p>(a) Basics of k-NNC</p>
<p>The major drawback of metaheuristic algorithms is the large number of function calls required. As the specific nature of structural optimization, the &#x201C;cost&#x201D; of function evaluation is heavily skewed toward finite element analysis (FEA). In our case, the computational burden is not as the simple calculation of structural weight (the objective function), but as the structural analysis (FEA) required to check constraints like stress and displacement. Calculating structural weight is typically a &#x201C;cheap&#x201D; algebraic operation involving bar lengths and areas. Howerver, the cost of a single FEA can take minutes to hours, particularly for large-scale structures.</p>
<p>Pham et al. [<xref ref-type="bibr" rid="ref-43">43</xref>] proposed a novel method called k-Nearest Neighbor Comparison (k-NNC) to reduce unnecessary and costly function evaluations. The operating principle of k-NNC is based on using nearest neighbors to predict the potential of a new solution before performing costly function evaluations. The following are the specific steps for implementing k-NNC:<list list-type="simple">
<list-item>
<label>1.</label>
<p>Identifying nearest neighbors: For each newly created candidate solution <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>, find k nearest neighbors (k-NNs) in the current population <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mi mathvariant="bold-italic">P</mml:mi></mml:math></inline-formula>. The measure commonly used is the normalized Euclidean distance to determine the similarity between solutions.</p></list-item>
<list-item>
<label>2.</label>
<p>Evaluating the potential of <inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>: Compare the known fitness value of each of its neighbors with the fitness value of the current design solution <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>,
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>A new solution <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is considered a potentially useless solution (PUS) if the majority of its k-NNs are not better than <inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Conversely, if the majority of its k-NNs are of better than <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>, the new solution <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is considered potentially useful.</p></list-item>
</list></p></list-item>
<list-item>
<label>3.</label>
<p>Removal or evaluation:
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>If deemed potentially useless (PUS), <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> will be removed immediately without performing function evaluation and comparison with <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>If deemed potentially useful, <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> will be evaluated and compared with <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> as normal.</p></list-item>
</list></p></list-item>
</list></p>
<p>The flowchart of the k-NNC assisted metaheuristic algorithm is given in <xref ref-type="fig" rid="fig-4">Fig. 4</xref>.</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>Flowchart of k-NNC assisted metaheuristic algorithm.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-4.tif"/>
</fig>
<p>The k-NNC is an adaptive classification strategy designed as a pre-screening to reduce computational costs in optimization using metaheuristic algorithms. As shown in Pham et al. [<xref ref-type="bibr" rid="ref-43">43</xref>], the application of k-NNC in discrete sizing of truss structures can reduce structural analyses for Rao-1 and Rao-2 algorithms by up to 60%.</p>
<p>It is noteworthy that k-NNC incurs computational costs. The &#x201C;prediction cost&#x201D; of the k-NNC filter is dominated by the neighbor search. While searching for neighbors does add a computational step, it involves calculating normalized Euclidean distances, which is fundamentally a mathematical calculation far simpler than solving the large systems of equations required for FEA. The distance calculations become inexpensive due to a small database size. To prevent the computational cost from escalating (a known disadvantage of k-NN when working with large databases), k-NNC commonly works on a limit search space. Specifically, it searches for neighbors only within the current population. This ensures that the distance calculation remains a low-dimensional search regardless of how many iterations the optimization performs. The trade-off is highly favorable since the algorithm might skip up to 60% of structural analyses. Given that FEA is identified as the &#x201C;main drawback&#x201D; preventing metaheuristic adoption in real-world engineering, the marginal cost of performing distance calculations for a small population is viewed as negligible compared to the thousands of seconds saved by avoiding unnecessary FEA evaluations.</p>
<p>(b) Limitation of k-NNC</p>
<p>It can be seen that the efficiency and accuracy of the k-NNC filter depend on the degree of similarity of <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> with its k-NNs. The k-NNC strategy relies on the existing population <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:mi mathvariant="bold-italic">P</mml:mi></mml:math></inline-formula> to determine the worthiness of trial solutions <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. As stated in Pham et al. [<xref ref-type="bibr" rid="ref-43">43</xref>], the accuracy of the k-NNC increases with increasing population size. However, this also increases the computational cost to find k-NNs. More importantly, the k-NNC exhibits a bias towards regions of the search space that the current population covers. As the optimization process continues, the population will gradually converge towards the feasible solution region. This means that the k-NNs of <inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> (if only taken from the current population) are feasible designs. If <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is created in the unfeasible region, k-NNC may still consider it a potential design and not reject it. This is illustrated in <xref ref-type="fig" rid="fig-5">Fig. 5</xref> for the 3-bar truss problem optimized by the &#x201C;DE/rand/1/bin&#x201D; algorithm combined with k-NNC. In <xref ref-type="fig" rid="fig-5">Fig. 5</xref>, the black circles represent designs in the current population; the red filled circles represent trial designs that were judged as potentially designs and retained for the selection step; and the blue filled squares represent trial designs that were considered as unpromising and rejected. It can be seen that in the first iteration (left figure), the population are spread across the entire design domain, and k-NNC judges the trial solutions well (most of the retained <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> are in better positions than <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>). However, in the 5-th iteration, when most of the population are in the feasible region, k-NNC misjudges and retains 6 trial designs in the unfeasible region, accounting for over 50% of the retained trial designs.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Effectiveness of k-NNC for 3-bar truss optimization.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-5.tif"/>
</fig>
<p>Another important point is that in k-NNC, all k-NNs have equal importance when compared to <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>. This means that every vote will have a value of 1 if a k-NN is better than <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> and &#x2212;1 if the k-NN is worse than <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>. It is well known that distance plays an important role in k-NN approach and it should be assigned higher influence to closer neighbors and lower influence to farther ones.</p>
<p>Based on the identified disadvantages of k-NNC, a novel approach&#x2014;distance-weighted k-nearest neighbor comparison (wkNNC)&#x2014;is proposed. The method is described in the next section.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Proposed Weighted k-Nearest Neighbor Comparison (wkNNC)</title>
<sec id="s3_1">
<label>3.1</label>
<title>Concept of Distance-Weighted Dominance</title>
<p>Let <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> be the k-NNs of <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the distance between <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. If <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> better than <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>, we say that <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> dominates <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>, and a distance-weighted dominance value is defined as:<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mfrac><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msubsup><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mfrac><mml:mn>1</mml:mn><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are respectively the distance from <inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. Now, the distance-weighted dominance value of a <inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> that is not better than <inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> is:<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mfrac><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msubsup><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mfrac><mml:mn>1</mml:mn><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>It is easily proved that <inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:mo>&#x2211;</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>. <xref ref-type="disp-formula" rid="eqn-2">Eqs. (2)</xref> and <xref ref-type="disp-formula" rid="eqn-3">(3)</xref> indicate that the bigger distance-weighted dominance value is assigned to the closer neighbor.</p>
<p>Using the distance-weighted dominance values of k-NNs, the judgement for a trial design <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is as:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>If <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:mo>&#x2211;</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mo>&#x2211;</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is a potential design and it is kept for further evaluation.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>If <inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:mo>&#x2211;</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mo>&#x2211;</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x2264;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is a PUS and it is eliminated without further evaluation.</p></list-item>
</list></p>
<p>To deal with the zero distance when neighbors are duplicate solutions of the trial solution, which is often possible in problems with discrete variables, a small amount (10<sup>&#x2212;16</sup>) is added to each calculated distance value.</p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Active Infeasible Archive</title>
<p>As shown, using only neighbors taken from <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:mi mathvariant="bold-italic">P</mml:mi></mml:math></inline-formula> can lead to incorrect judgments. To increase the accuracy of k-NNC, both feasible and infeasible regions should be explored. Thus, we store the infeasible designs that are eliminated during the selection process in an archive <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. The k-NNs of a trial design <inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> are sought in both the current population <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:mi mathvariant="bold-italic">P</mml:mi></mml:math></inline-formula> and the archive <inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. This will ensure the high similarity degree among k-NNs and <inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> throughout the optimization process, especially the case <inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is in the infeasible region. To save computational costs, the size of <inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is maintained at <italic>NP</italic> (equal to the population size). When the size of <inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> exceeds <italic>NP</italic>, we randomly remove one member from <inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
<p>The benefit of using <inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is that it can improve the judgment of k-NNC. Including neighbors from the infeasible region helps the algorithm assess the potential of a new candidate more accurately, especially when that candidate is near or within the infeasible region. In short, the infeasible archive <inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> acts as a &#x201C;memory map&#x201D; of infeasible regions, giving k-NNC a more comprehensive view of the design space, thereby allowing more unpromising trial designs to be detected and eliminated, significantly saving costly function evaluations while ensuring optimal solution quality. Notably, the archive <inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is also gradually updated with new trial designs, ensuring the accuracy of k-NNC throughout the optimization process. The use of the infeasible archive is a solution to the &#x201C;bias&#x201D; problem in the current population-based k-NNC model.</p>
<p>The effectiveness of the infeasible archive is illustrated in <xref ref-type="fig" rid="fig-6">Fig. 6</xref>. In <xref ref-type="fig" rid="fig-6">Fig. 6</xref>, the black &#x201C;x&#x201D; denotes the members of <inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> at the 10-th and 15-th iterations. As seen from <xref ref-type="fig" rid="fig-6">Fig. 6</xref>, most of trial designs located in the infeasible region are skipped.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>The effectiveness of infeasible archive in 3-bar truss optimization.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-6.tif"/>
</fig>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Potential Solution Refinement</title>
<p>The infeasible archive <inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> brings higher accuracy and more trial solutions are skipped. However, it may also increase the possibility of rejection of good trials if they locate closed to the members of <inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. To address this issue, a refinement is carried out for all trials judged as a PUS. The refinement procedure is conducted as follow.
<list list-type="simple">
<list-item>
<label>1.</label>
<p>Approximate the objective function value and constraint values of <inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> by weighted average values from k-NNs as:
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mfrac><mml:mrow><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mfrac><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msubsup><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mfrac><mml:mn>1</mml:mn><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mfrac><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mover><mml:mi>g</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mfrac><mml:mrow><mml:mi>g</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mfrac><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msubsup><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mfrac><mml:mn>1</mml:mn><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mfrac><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is the approximated values of the objective function of <inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>; <inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:mrow><mml:mover><mml:mi>g</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> are the approximated values of the constraint functions.</p></list-item>
<list-item>
<label>2.</label>
<p>Compare <inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> with <inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> by using these approximated function values. If <inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:mrow><mml:mover><mml:mi>g</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003C;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> then retain <inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>The refinement procedure helps to avoid potential solution from being omitted by k-NNC. This is a novel contribution to balancing computational speed and algorithmic security, helping to maintain population diversity even when the filter is highly active.</p>
<p>Combining the proposed improvements described in <xref ref-type="sec" rid="s3_1">Sections 3.1</xref>&#x2013;<xref ref-type="sec" rid="s3_3">3.3</xref> into the k-NNC framework in <xref ref-type="sec" rid="s2">Section 2</xref>, a new method named weighted k-nearest neighbor comparison (wkNNC) is formed.</p>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>The BWR-wkNNC Framework</title>
<p>In this study, the proposed wkNNC method is combined with the Best-Worst-Random (BWR) algorithm [<xref ref-type="bibr" rid="ref-44">44</xref>]. The reason for choosing BWR is that it is a parameter-free, efficient, and robust algorithm. BWR inherits the simple philosophy from the Rao algorithms (Rao-1, Rao-2, Rao-3) [<xref ref-type="bibr" rid="ref-19">19</xref>] but is improved in the search mechanism to enhance explorative capability, suitable to handle complex engineering problems, such as discrete and multimodal ones [<xref ref-type="bibr" rid="ref-45">45</xref>&#x2013;<xref ref-type="bibr" rid="ref-48">48</xref>]. Combining wkNNC with a powerful algorithm like BWR helps compensate for the use of a small population, ensuring that global search capabilities are preserved even in large-scale problems.</p>
<p>(a) BWR algorithm</p>
<p>The basic steps of BWR are similar to those described in the general procedure for population-based metaheuristic algorithms presented in <xref ref-type="sec" rid="s2_2">Section 2.2</xref>. The difference in BWR lies in the mechanism for generating new trial designs in step 2. Corresponding to each <inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>, BWR creates a trial design <inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> by the following operator:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Generate a random number <inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:mi>r</mml:mi></mml:math></inline-formula> in range [0,1]</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>If <inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:mi>r</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mn>0.5</mml:mn></mml:math></inline-formula>:</p></list-item>
</list>
<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mi>T</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><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:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><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:msup><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>If <inline-formula id="ieqn-103"><mml:math id="mml-ieqn-103"><mml:mi>r</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mn>0.5</mml:mn></mml:math></inline-formula>:</p></list-item>
</list>
<disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-104"><mml:math id="mml-ieqn-104"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-105"><mml:math id="mml-ieqn-105"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, and <inline-formula id="ieqn-106"><mml:math id="mml-ieqn-106"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><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:msup></mml:math></inline-formula> are, respectively, the best design, the worst design, and a random design in the current population; <inline-formula id="ieqn-107"><mml:math id="mml-ieqn-107"><mml:mi>T</mml:mi></mml:math></inline-formula> has value of 1 or 2 randomly; <inline-formula id="ieqn-108"><mml:math id="mml-ieqn-108"><mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-109"><mml:math id="mml-ieqn-109"><mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, and <inline-formula id="ieqn-110"><mml:math id="mml-ieqn-110"><mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> are three vectors of <inline-formula id="ieqn-111"><mml:math id="mml-ieqn-111"><mml:mi>D</mml:mi></mml:math></inline-formula> uniformly random numbers in range [0, 1].</p>
<p>It is seen that <xref ref-type="disp-formula" rid="eqn-5">Eq. (5)</xref> generates the new trial design towards the best design and avoids the worst design through interaction with random designs. On the other hand, <xref ref-type="disp-formula" rid="eqn-6">Eq. (6)</xref> generates design variable values within the design domain. <xref ref-type="disp-formula" rid="eqn-6">Eq. (6)</xref> acts like a &#x201C;mutation with amnesia&#x201D; and it resets a variable to a random legal value to keep the search global. <xref ref-type="disp-formula" rid="eqn-6">Eq. (6)</xref> is pure exploration with no memory, no direction, and no bias toward the current population. This helps to escape local minima, maintain population diversity, and prevent premature convergence. Therefore, BWR is able to maintain high population diversity and effectively escape local extrema. Nevertheless, due to its great explorative capability, BWRs often have slow convergence rates and require many function evaluations. Thus, combining BWR with wkNNC ensures a balance between robustness and efficiency.</p>
<p>(b) Implementation of BWR-wkNNC</p>
<p>The workflow of the BWR algorithm combined with wkNNC (BWR-wkNNC) are as follows.</p>
<p><italic>Step 1&#x2014;Initializing</italic>
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Define the population size <inline-formula id="ieqn-112"><mml:math id="mml-ieqn-112"><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula>, the termination criteria (e.g., the maximum number of iterations or the maximum number of function evaluations), and the number of neighbors, <inline-formula id="ieqn-113"><mml:math id="mml-ieqn-113"><mml:mi>k</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Create an initial population <inline-formula id="ieqn-114"><mml:math id="mml-ieqn-114"><mml:mi mathvariant="bold-italic">P</mml:mi></mml:math></inline-formula> of <inline-formula id="ieqn-115"><mml:math id="mml-ieqn-115"><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula> solutions <inline-formula id="ieqn-116"><mml:math id="mml-ieqn-116"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> in the design domain, where each design variable <inline-formula id="ieqn-117"><mml:math id="mml-ieqn-117"><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> is randomly generated according to</p></list-item>
</list>
<disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Compute the objective function value and constraint function values for each <inline-formula id="ieqn-118"><mml:math id="mml-ieqn-118"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>, i.e., <inline-formula id="ieqn-119"><mml:math id="mml-ieqn-119"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-120"><mml:math id="mml-ieqn-120"><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Find the best design <inline-formula id="ieqn-121"><mml:math id="mml-ieqn-121"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and the worst design <inline-formula id="ieqn-122"><mml:math id="mml-ieqn-122"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> in the population.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Reserve an empty archive <inline-formula id="ieqn-123"><mml:math id="mml-ieqn-123"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
</list></p>
<p><italic>Step 2&#x2014;Generating</italic>
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Corresponding to each <inline-formula id="ieqn-124"><mml:math id="mml-ieqn-124"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>, generate a random number <inline-formula id="ieqn-125"><mml:math id="mml-ieqn-125"><mml:mi>r</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>; and select a random design <inline-formula id="ieqn-126"><mml:math id="mml-ieqn-126"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><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:msup></mml:math></inline-formula> from the current population.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>If <inline-formula id="ieqn-127"><mml:math id="mml-ieqn-127"><mml:mi>r</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mn>0.5</mml:mn></mml:math></inline-formula>, create a trial design <inline-formula id="ieqn-128"><mml:math id="mml-ieqn-128"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> by <xref ref-type="disp-formula" rid="eqn-5">Eq. (5)</xref>, otherwise, by <xref ref-type="disp-formula" rid="eqn-6">Eq. (6)</xref>.</p></list-item>
</list></p>
<p><italic>Step 3&#x2014;Pre-scanning and evaluating</italic></p>
<p><italic>Pre-scanning</italic>: Apply wkNNC to judge <inline-formula id="ieqn-129"><mml:math id="mml-ieqn-129"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Find in <inline-formula id="ieqn-130"><mml:math id="mml-ieqn-130"><mml:mi mathvariant="bold-italic">P</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-131"><mml:math id="mml-ieqn-131"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> <inline-formula id="ieqn-132"><mml:math id="mml-ieqn-132"><mml:mi>k</mml:mi></mml:math></inline-formula> designs (<inline-formula id="ieqn-133"><mml:math id="mml-ieqn-133"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>) closest to <inline-formula id="ieqn-134"><mml:math id="mml-ieqn-134"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> by using normalized Euclidean distance.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Compare each nearest neighbor <inline-formula id="ieqn-135"><mml:math id="mml-ieqn-135"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> with <inline-formula id="ieqn-136"><mml:math id="mml-ieqn-136"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:math></inline-formula> then determine the distance-weighted dominance value <inline-formula id="ieqn-137"><mml:math id="mml-ieqn-137"><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> (if <inline-formula id="ieqn-138"><mml:math id="mml-ieqn-138"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is better than <inline-formula id="ieqn-139"><mml:math id="mml-ieqn-139"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>) or <inline-formula id="ieqn-140"><mml:math id="mml-ieqn-140"><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> (if <inline-formula id="ieqn-141"><mml:math id="mml-ieqn-141"><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is not better than <inline-formula id="ieqn-142"><mml:math id="mml-ieqn-142"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>).</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Calculate <inline-formula id="ieqn-143"><mml:math id="mml-ieqn-143"><mml:mo>&#x2211;</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-144"><mml:math id="mml-ieqn-144"><mml:mo>&#x2211;</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and the evaluation flag, <inline-formula id="ieqn-145"><mml:math id="mml-ieqn-145"><mml:mi>e</mml:mi><mml:mi>v</mml:mi><mml:mi>a</mml:mi><mml:msup><mml:mi>l</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo>&#x2211;</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mo>&#x2211;</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>If <inline-formula id="ieqn-146"><mml:math id="mml-ieqn-146"><mml:mi>e</mml:mi><mml:mi>v</mml:mi><mml:mi>a</mml:mi><mml:msup><mml:mi>l</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>&#x003C;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, calculate the approximate values <inline-formula id="ieqn-147"><mml:math id="mml-ieqn-147"><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-148"><mml:math id="mml-ieqn-148"><mml:mrow><mml:mover><mml:mi>g</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> according to <xref ref-type="disp-formula" rid="eqn-4">Eq. (4)</xref>; set <inline-formula id="ieqn-149"><mml:math id="mml-ieqn-149"><mml:mi>e</mml:mi><mml:mi>v</mml:mi><mml:mi>a</mml:mi><mml:msup><mml:mi>l</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> if <inline-formula id="ieqn-150"><mml:math id="mml-ieqn-150"><mml:mrow><mml:mover><mml:mi>f</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003C;</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-151"><mml:math id="mml-ieqn-151"><mml:mrow><mml:mover><mml:mi>g</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003C;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>.</p></list-item>
</list></p>
<p><italic>Evaluating:</italic> For a trial design <inline-formula id="ieqn-152"><mml:math id="mml-ieqn-152"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> with <inline-formula id="ieqn-153"><mml:math id="mml-ieqn-153"><mml:mi>e</mml:mi><mml:mi>v</mml:mi><mml:mi>a</mml:mi><mml:msup><mml:mi>l</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, compute <inline-formula id="ieqn-154"><mml:math id="mml-ieqn-154"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-155"><mml:math id="mml-ieqn-155"><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and continue Step 4, otherwise, go back to Step 2.</p>
<p><italic>Step 4&#x2014;Updating</italic>
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Replace <inline-formula id="ieqn-156"><mml:math id="mml-ieqn-156"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> in the population by <inline-formula id="ieqn-157"><mml:math id="mml-ieqn-157"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> if <inline-formula id="ieqn-158"><mml:math id="mml-ieqn-158"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is better than <inline-formula id="ieqn-159"><mml:math id="mml-ieqn-159"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>If <inline-formula id="ieqn-160"><mml:math id="mml-ieqn-160"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is not better than <inline-formula id="ieqn-161"><mml:math id="mml-ieqn-161"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> and infeasible (one of <inline-formula id="ieqn-162"><mml:math id="mml-ieqn-162"><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>), put <inline-formula id="ieqn-163"><mml:math id="mml-ieqn-163"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> into <inline-formula id="ieqn-164"><mml:math id="mml-ieqn-164"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. Truncate <inline-formula id="ieqn-165"><mml:math id="mml-ieqn-165"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> if its size exceeds <inline-formula id="ieqn-166"><mml:math id="mml-ieqn-166"><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula> by removing from <inline-formula id="ieqn-167"><mml:math id="mml-ieqn-167"><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> a random member.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Update <inline-formula id="ieqn-168"><mml:math id="mml-ieqn-168"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-169"><mml:math id="mml-ieqn-169"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
</list></p>
<p><italic>Step 5&#x2014;Terminating</italic>
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Stop the optimization process if the termination criteria are satisfied, otherwise continue from Step 2.</p></list-item>
</list></p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Numerical Investigation</title>
<p>The effectiveness of the proposed wkNNC method is investigated in discrete truss sizing optimization problems. The tested structures, including 10-bar, 25-bar, 52-bar, 72-bar, 160-bar, and 200-bar trusses, are benchmark structural optimization problems used in many studies to examine the effectiveness of metaheuristic algorithms [<xref ref-type="bibr" rid="ref-49">49</xref>,<xref ref-type="bibr" rid="ref-50">50</xref>]. The objective is to minimize the total weight of the structures while ensuring the member stress and nodal displacement within the allowable limits.</p>
<p>The optimization problem for a truss having <inline-formula id="ieqn-170"><mml:math id="mml-ieqn-170"><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> bars is defined as:<disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mtext>Minimize&#xA0;</mml:mtext></mml:mrow></mml:mrow><mml:mi>W</mml:mi><mml:mo>=</mml:mo><mml:mi>&#x03C1;</mml:mi><mml:msubsup><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1..</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1..</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-171"><mml:math id="mml-ieqn-171"><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-172"><mml:math id="mml-ieqn-172"><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are respectively the cross-sectional area and length of <italic>m</italic>-th member; <inline-formula id="ieqn-173"><mml:math id="mml-ieqn-173"><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the member stress; <inline-formula id="ieqn-174"><mml:math id="mml-ieqn-174"><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the nodal displacement; <inline-formula id="ieqn-175"><mml:math id="mml-ieqn-175"><mml:mi>&#x03C1;</mml:mi></mml:math></inline-formula> is the material density; <inline-formula id="ieqn-176"><mml:math id="mml-ieqn-176"><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-177"><mml:math id="mml-ieqn-177"><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> are stress limits; and <inline-formula id="ieqn-178"><mml:math id="mml-ieqn-178"><mml:msub><mml:mrow><mml:mi mathvariant="normal">&#x0394;</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:math></inline-formula> is the allowable displacement. Stress and displacement are obtained by finite element analysis using self-developed solver in MATLAB.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Description of Tested Structures</title>
<p>(a) The 10-bar planar truss:</p>
<p>The 10-bar truss structure is shown in <xref ref-type="fig" rid="fig-7">Fig. 7</xref>. Two downward concentrated loads, each with a magnitude of 100 kips, are applied at nodes 2 and 4. The material has a density &#x03C1; &#x003D; 0.1 lb/in<sup>3</sup> and an elastic modulus E &#x003D; 10<sup>4</sup> ksi. The cross-sectional area of the bars is selected from the following set of 42 discrete values (in<sup>2</sup>): 1.62, 1.80, 1.99, 2.13, 2.38, 2.62, 2.63, 2.88, 2.93, 3.09, 3.13, 3.38, 3.47, 3.55, 3.63, 3.84, 3.87, 3.88, 4.18, 4.22, 4.49, 4.59, 4.80, 4.97, 5.12, 5.74, 7.22, 7.97, 11.5, 13.5, 13.9, 14.2, 15.5, 16.0, 16.9, 18.8 19.9, 22.0, 22.9, 26.5, 30.0, and 33.5. The problem considers two types of constraints: stress and displacement constraints. The allowable stress in the truss members is &#x00B1;25 ksi, and the maximum allowable displacement at the nodes is 2 inches.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>The 10-bar truss layout.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-7.tif"/>
</fig>
<p>(b) The 25-bar spatial truss:</p>
<p>The truss layout is shown in <xref ref-type="fig" rid="fig-8">Fig. 8</xref>. The bars are divided into 8 groups with different properties detailed in <xref ref-type="table" rid="table-1">Table 1</xref>. The elastic modulus is 10<sup>4</sup> ksi, the density is 0.1 lb/in<sup>3</sup> and is the same for all bars. The cross-sectional area of the bars is selected according to the values (in<sup>2</sup>): 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.8, 3.0, 3.2, 3.4. The stress limits are given in <xref ref-type="table" rid="table-1">Table 1</xref>. The allowable nodal displacement in the <italic>x</italic>, <italic>y</italic>, <italic>z</italic> directions is 0.35 inches. Two load cases are considered as follows (unit: kip):</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>The 25-bar truss layout.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-8.tif"/>
</fig><table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Allowable tensile and compressive stresses correspond to each group of bars.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>Group</th>
<th>Tensile Stress (ksi)</th>
<th>Compressive Stress (ksi)</th>
<th>Member in Group</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>40.0</td>
<td>35.092</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>40.0</td>
<td>11.590</td>
<td>2, 3, 4, 5</td>
</tr>
<tr>
<td>3</td>
<td>40.0</td>
<td>17.305</td>
<td>6, 7, 8, 9</td>
</tr>
<tr>
<td>4</td>
<td>40.0</td>
<td>35.092</td>
<td>10, 11</td>
</tr>
<tr>
<td>5</td>
<td>40.0</td>
<td>35.092</td>
<td>12, 13</td>
</tr>
<tr>
<td>6</td>
<td>40.0</td>
<td>6.759</td>
<td>14, 15, 16, 17</td>
</tr>
<tr>
<td>7</td>
<td>40.0</td>
<td>6.959</td>
<td>18, 19, 20, 21</td>
</tr>
<tr>
<td>8</td>
<td>40.0</td>
<td>11.082</td>
<td>22, 23, 24, 25</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Case 1:<list list-type="simple">
<list-item>
<label>&#x2003;&#x2013;</label>
<p>Node 1: <inline-formula id="ieqn-179"><mml:math id="mml-ieqn-179"><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>20</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>5</mml:mn><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula></p></list-item>
<list-item>
<label>&#x2003;&#x2013;</label>
<p>Node 2: <inline-formula id="ieqn-180"><mml:math id="mml-ieqn-180"><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>20</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>5</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p></list-item>
</list></p>
<p>Case 2:<list list-type="simple">
<list-item>
<label>&#x2003;&#x2013;</label>
<p>Node 1: <inline-formula id="ieqn-181"><mml:math id="mml-ieqn-181"><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>10</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>5</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p></list-item>
<list-item>
<label>&#x2003;&#x2013;</label>
<p>Node 2: <inline-formula id="ieqn-182"><mml:math id="mml-ieqn-182"><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>10</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>5</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p></list-item>
<list-item>
<label>&#x2003;&#x2013;</label>
<p>Node 3: <inline-formula id="ieqn-183"><mml:math id="mml-ieqn-183"><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mn>0.5</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p></list-item>
<list-item>
<label>&#x2003;&#x2013;</label>
<p>Node 6: <inline-formula id="ieqn-184"><mml:math id="mml-ieqn-184"><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mn>0.5</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p></list-item>
</list></p>
<p>(c) The 52-bar planar truss:</p>
<p>The truss layout with the members divided into 12 groups is detailed in <xref ref-type="fig" rid="fig-9">Fig. 9</xref>. The elastic modulus is 207 GPa, the density is 7860 kg/m<sup>3</sup> and is the same for all members. The cross-sectional area of the members is selected according to the AISC standard, with detailed values given in <xref ref-type="table" rid="table-2">Table 2</xref>. In this problem, only the stress constraint with a stress limit of &#x00B1;180 MPa is considered. The truss has the following loads: Vertical load of 200 kN and horizontal load of 100 kN applied at Nodes 17, 18, 19 and 20.</p>
<fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>The 52-bar truss layout.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-9.tif"/>
</fig><table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>List of cross-sectional area for 52-bar truss structure.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>No.</th>
<th>Area (mm<sup>2</sup>)</th>
<th>No.</th>
<th>Area (mm<sup>2</sup>)</th>
<th>No.</th>
<th>Area (mm<sup>2</sup>)</th>
<th>No.</th>
<th>Area (mm<sup>2</sup>)</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>71.613</td>
<td>17</td>
<td>1008.385</td>
<td>33</td>
<td>2477.414</td>
<td>49</td>
<td>7419.340</td>
</tr>
<tr>
<td>2</td>
<td>90.968</td>
<td>18</td>
<td>1045.159</td>
<td>34</td>
<td>2496.769</td>
<td>50</td>
<td>8709.660</td>
</tr>
<tr>
<td>3</td>
<td>126.451</td>
<td>19</td>
<td>1161.288</td>
<td>35</td>
<td>2503.221</td>
<td>51</td>
<td>8967.724</td>
</tr>
<tr>
<td>4</td>
<td>161.29</td>
<td>20</td>
<td>1283.868</td>
<td>36</td>
<td>2696.769</td>
<td>52</td>
<td>9161.272</td>
</tr>
<tr>
<td>5</td>
<td>198.064</td>
<td>21</td>
<td>1374.191</td>
<td>37</td>
<td>2722.575</td>
<td>53</td>
<td>9999.980</td>
</tr>
<tr>
<td>6</td>
<td>252.258</td>
<td>22</td>
<td>1535.481</td>
<td>38</td>
<td>2896.768</td>
<td>54</td>
<td>10,322.560</td>
</tr>
<tr>
<td>7</td>
<td>285.161</td>
<td>23</td>
<td>1690.319</td>
<td>39</td>
<td>2961.284</td>
<td>55</td>
<td>10,903.204</td>
</tr>
<tr>
<td>8</td>
<td>363.225</td>
<td>24</td>
<td>1696.771</td>
<td>40</td>
<td>3096.768</td>
<td>56</td>
<td>12,129.008</td>
</tr>
<tr>
<td>9</td>
<td>388.386</td>
<td>25</td>
<td>1858.061</td>
<td>41</td>
<td>3206.445</td>
<td>57</td>
<td>12,838.684</td>
</tr>
<tr>
<td>10</td>
<td>494.193</td>
<td>26</td>
<td>1890.319</td>
<td>42</td>
<td>3303.219</td>
<td>58</td>
<td>14,193.520</td>
</tr>
<tr>
<td>11</td>
<td>506.451</td>
<td>27</td>
<td>1993.544</td>
<td>43</td>
<td>3703.218</td>
<td>59</td>
<td>14,774.164</td>
</tr>
<tr>
<td>12</td>
<td>641.289</td>
<td>28</td>
<td>729.031</td>
<td>44</td>
<td>4658.055</td>
<td>60</td>
<td>15,806.420</td>
</tr>
<tr>
<td>13</td>
<td>645.16</td>
<td>29</td>
<td>2180.641</td>
<td>45</td>
<td>5141.925</td>
<td>61</td>
<td>17,096.740</td>
</tr>
<tr>
<td>14</td>
<td>792.256</td>
<td>30</td>
<td>2238.705</td>
<td>46</td>
<td>5503.215</td>
<td>62</td>
<td>18,064.480</td>
</tr>
<tr>
<td>15</td>
<td>816.773</td>
<td>31</td>
<td>2290.318</td>
<td>47</td>
<td>5999.988</td>
<td>63</td>
<td>19,354.800</td>
</tr>
<tr>
<td>16</td>
<td>939.998</td>
<td>32</td>
<td>2341.931</td>
<td>48</td>
<td>6999.986</td>
<td>64</td>
<td>21,612.860</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>(d) The 72-bar spatial truss:</p>
<p>The layout of the truss with the members divided into 16 groups is detailed in <xref ref-type="fig" rid="fig-10">Fig. 10</xref>. The elastic modulus is 10<sup>4</sup> ksi, the density is 0.1 lb/in<sup>3</sup> and is the same for all members. The cross-sectional area of the members is selected from the values given in <xref ref-type="table" rid="table-3">Table 3</xref>. The stress limit is &#x00B1;25 ksi and the allowable nodal displacement in the <italic>x</italic>, <italic>y</italic>, <italic>z</italic> directions is 0.25 inches. Consider the following two load cases (units: kip):<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Case 1: Node 1: <inline-formula id="ieqn-185"><mml:math id="mml-ieqn-185"><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mn>5</mml:mn><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula></p>
</list-item>
<list-item>
<label>&#x2013;</label>
<p>Case 2: Nodes 1, 2, 3 and 4: <inline-formula id="ieqn-186"><mml:math id="mml-ieqn-186"><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mn>5</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p></list-item>
</list></p>
<fig id="fig-10">
<label>Figure 10</label>
<caption>
<title>The 72-bar truss layout.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-10.tif"/>
</fig><table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>List of cross-sectional area for 72-bar truss structure.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>No.</th>
<th>Area (in<sup>2</sup>)</th>
<th>No.</th>
<th>Area (in<sup>2</sup>)</th>
<th>No.</th>
<th>Area (in<sup>2</sup>)</th>
<th>No.</th>
<th>Area (in<sup>2</sup>)</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>0.111</td>
<td>17</td>
<td>1.563</td>
<td>33</td>
<td>3.840</td>
<td>49</td>
<td>11.500</td>
</tr>
<tr>
<td>2</td>
<td>0.141</td>
<td>18</td>
<td>1.620</td>
<td>34</td>
<td>3.870</td>
<td>50</td>
<td>13.500</td>
</tr>
<tr>
<td>3</td>
<td>0.196</td>
<td>19</td>
<td>1.80</td>
<td>35</td>
<td>3.880</td>
<td>51</td>
<td>13.900</td>
</tr>
<tr>
<td>4</td>
<td>0.25</td>
<td>20</td>
<td>1.990</td>
<td>36</td>
<td>4.180</td>
<td>52</td>
<td>14.200</td>
</tr>
<tr>
<td>5</td>
<td>0.307</td>
<td>21</td>
<td>2.130</td>
<td>37</td>
<td>4.220</td>
<td>53</td>
<td>15.500</td>
</tr>
<tr>
<td>6</td>
<td>0.391</td>
<td>22</td>
<td>2.380</td>
<td>38</td>
<td>4.490</td>
<td>54</td>
<td>16.000</td>
</tr>
<tr>
<td>7</td>
<td>0.442</td>
<td>23</td>
<td>2.620</td>
<td>39</td>
<td>4.590</td>
<td>55</td>
<td>16.900</td>
</tr>
<tr>
<td>8</td>
<td>0.563</td>
<td>24</td>
<td>2.630</td>
<td>40</td>
<td>4.800</td>
<td>56</td>
<td>18.800</td>
</tr>
<tr>
<td>9</td>
<td>0.602</td>
<td>25</td>
<td>2.880</td>
<td>41</td>
<td>4.970</td>
<td>57</td>
<td>19.900</td>
</tr>
<tr>
<td>10</td>
<td>0.766</td>
<td>26</td>
<td>2.930</td>
<td>42</td>
<td>5.120</td>
<td>58</td>
<td>22.000</td>
</tr>
<tr>
<td>11</td>
<td>0.785</td>
<td>27</td>
<td>3.090</td>
<td>43</td>
<td>5.740</td>
<td>59</td>
<td>22.900</td>
</tr>
<tr>
<td>12</td>
<td>0.994</td>
<td>28</td>
<td>3.130</td>
<td>44</td>
<td>7.220</td>
<td>60</td>
<td>24.500</td>
</tr>
<tr>
<td>13</td>
<td>1.000</td>
<td>29</td>
<td>3.380</td>
<td>45</td>
<td>7.970</td>
<td>61</td>
<td>26.500</td>
</tr>
<tr>
<td>14</td>
<td>1.228</td>
<td>30</td>
<td>3.470</td>
<td>46</td>
<td>8.530</td>
<td>62</td>
<td>28.000</td>
</tr>
<tr>
<td>15</td>
<td>1.266</td>
<td>31</td>
<td>3.550</td>
<td>47</td>
<td>9.300</td>
<td>63</td>
<td>30.000</td>
</tr>
<tr>
<td>16</td>
<td>1.457</td>
<td>32</td>
<td>3.630</td>
<td>48</td>
<td>10.850</td>
<td>64</td>
<td>33.500</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>(e) The 160-bar spatial truss:</p>
<p>The layout of the truss is shown in <xref ref-type="fig" rid="fig-11">Fig. 11</xref>. The members are divided into 38 groups. The elastic modulus is 2.047 &#x00D7; 10<sup>6</sup> kgf/cm<sup>2</sup>, the density is 0.00785 kg/cm<sup>3</sup> and is the same for all members. The cross-sectional area of the members is selected from values given in <xref ref-type="table" rid="table-4">Table 4</xref>. The allowable stress is &#x00B1;1500 kgf/cm<sup>2</sup> and the members under compression are checked for stability according to <xref ref-type="disp-formula" rid="eqn-9">Eq. (9)</xref>.
<disp-formula id="eqn-9"><label>(9)</label><mml:math id="mml-eqn-9" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left left" rowspacing=".2em" columnspacing="1em" displaystyle="false"><mml:mtr><mml:mtd><mml:mn>1300</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mi>L</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>r</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mn>24</mml:mn></mml:mfrac></mml:mstyle><mml:mspace width="1em" /><mml:mrow><mml:mtext>if</mml:mtext></mml:mrow><mml:mtext>&#xA0;</mml:mtext><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mi>L</mml:mi><mml:mi>r</mml:mi></mml:mfrac></mml:mstyle><mml:mo>&#x2264;</mml:mo><mml:mn>120</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:msup><mml:mn>10</mml:mn><mml:mrow><mml:mn>7</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mi>L</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>r</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mfrac></mml:mstyle><mml:mspace width="1em" /><mml:mrow><mml:mtext>if&#xA0;</mml:mtext></mml:mrow><mml:mtext>&#xA0;</mml:mtext><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mi>L</mml:mi><mml:mi>r</mml:mi></mml:mfrac></mml:mstyle><mml:mo>&#x003E;</mml:mo><mml:mn>120</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-187"><mml:math id="mml-ieqn-187"><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is the compressive stress limit; <inline-formula id="ieqn-188"><mml:math id="mml-ieqn-188"><mml:mi>L</mml:mi></mml:math></inline-formula> is the length of the bar; <inline-formula id="ieqn-189"><mml:math id="mml-ieqn-189"><mml:mi>r</mml:mi></mml:math></inline-formula> is the radius of gyration of the cross-section detailed in <xref ref-type="table" rid="table-4">Table 4</xref>. The truss has 8 loading cases as detailed in <xref ref-type="table" rid="table-5">Table 5</xref>.</p>
<fig id="fig-11">
<label>Figure 11</label>
<caption>
<title>The 160-bar truss layout.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-11.tif"/>
</fig><table-wrap id="table-4">
<label>Table 4</label>
<caption>
<title>List of cross-sectional properties for 160-bar truss structure.</title>
</caption>
<table>
<colgroup>
<col align="center" width="11mm"/>
<col align="center" width="20mm"/>
<col align="center" width="11mm"/>
<col align="center" width="11mm"/>
<col align="center" width="20mm"/>
<col align="center" width="11mm"/>
<col align="center" width="11mm"/>
<col align="center" width="21mm"/>
<col align="center" width="11mm"/>
</colgroup>
<thead>
<tr>
<th>No.</th>
<th>Area (cm<sup>2</sup>)</th>
<th>r (cm)</th>
<th>No.</th>
<th>Area (cm<sup>2</sup>)</th>
<th>r (cm)</th>
<th>No.</th>
<th>Area (cm<sup>2</sup>)</th>
<th>r (cm)</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>1.84</td>
<td>0.47</td>
<td>15</td>
<td>9.4</td>
<td>1.35</td>
<td>29</td>
<td>33.9</td>
<td>2.33</td>
</tr>
<tr>
<td>2</td>
<td>2.26</td>
<td>0.57</td>
<td>16</td>
<td>10.47</td>
<td>1.36</td>
<td>30</td>
<td>34.77</td>
<td>2.97</td>
</tr>
<tr>
<td>3</td>
<td>2.66</td>
<td>0.67</td>
<td>17</td>
<td>11.38</td>
<td>1.45</td>
<td>31</td>
<td>39.16</td>
<td>2.54</td>
</tr>
<tr>
<td>4</td>
<td>3.07</td>
<td>0.77</td>
<td>18</td>
<td>12.21</td>
<td>1.55</td>
<td>32</td>
<td>43</td>
<td>2.93</td>
</tr>
<tr>
<td>5</td>
<td>3.47</td>
<td>0.87</td>
<td>19</td>
<td>13.79</td>
<td>1.75</td>
<td>33</td>
<td>45.65</td>
<td>2.94</td>
</tr>
<tr>
<td>6</td>
<td>3.88</td>
<td>0.97</td>
<td>20</td>
<td>15.39</td>
<td>1.95</td>
<td>34</td>
<td>46.94</td>
<td>2.94</td>
</tr>
<tr>
<td>7</td>
<td>4.79</td>
<td>0.97</td>
<td>21</td>
<td>17.03</td>
<td>1.74</td>
<td>35</td>
<td>51</td>
<td>2.92</td>
</tr>
<tr>
<td>8</td>
<td>5.27</td>
<td>1.06</td>
<td>22</td>
<td>19.03</td>
<td>1.94</td>
<td>36</td>
<td>52.1</td>
<td>3.54</td>
</tr>
<tr>
<td>9</td>
<td>5.75</td>
<td>1.16</td>
<td>23</td>
<td>21.12</td>
<td>2.16</td>
<td>37</td>
<td>61.82</td>
<td>3.96</td>
</tr>
<tr>
<td>10</td>
<td>6.25</td>
<td>1.26</td>
<td>24</td>
<td>23.2</td>
<td>2.36</td>
<td>38</td>
<td>61.9</td>
<td>3.52</td>
</tr>
<tr>
<td>11</td>
<td>6.84</td>
<td>1.15</td>
<td>25</td>
<td>25.12</td>
<td>2.57</td>
<td>39</td>
<td>68.3</td>
<td>3.51</td>
</tr>
<tr>
<td>12</td>
<td>7.44</td>
<td>1.26</td>
<td>26</td>
<td>27.5</td>
<td>2.35</td>
<td>40</td>
<td>76.38</td>
<td>3.93</td>
</tr>
<tr>
<td>13</td>
<td>8.06</td>
<td>1.36</td>
<td>27</td>
<td>29.88</td>
<td>2.56</td>
<td>41</td>
<td>90.6</td>
<td>3.92</td>
</tr>
<tr>
<td>14</td>
<td>8.66</td>
<td>1.46</td>
<td>28</td>
<td>32.76</td>
<td>2.14</td>
<td>42</td>
<td>94.13</td>
<td>3.92</td>
</tr>
</tbody>
</table>
</table-wrap><table-wrap id="table-5">
<label>Table 5</label>
<caption>
<title>Loading cases for the 160-bar truss structure.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>Case</th>
<th>Node</th>
<th>F<sub>x</sub> (N)</th>
<th>F<sub>y</sub> (N)</th>
<th>F<sub>z</sub> (N)</th>
<th>Case</th>
<th>Node</th>
<th>F<sub>x</sub> (N)</th>
<th>F<sub>y</sub> (N)</th>
<th>F<sub>z</sub> (N)</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="4">1</td>
<td>52</td>
<td>868</td>
<td>0</td>
<td>491</td>
<td rowspan="4">5</td>
<td>52</td>
<td>917</td>
<td>0</td>
<td>491</td>
</tr>
<tr>
<td>37</td>
<td>996</td>
<td>0</td>
<td>546</td>
<td>37</td>
<td>951</td>
<td>0</td>
<td>546</td>
</tr>
<tr>
<td>25</td>
<td>1091</td>
<td>0</td>
<td>546</td>
<td>25</td>
<td>1015</td>
<td>0</td>
<td>546</td>
</tr>
<tr>
<td>28</td>
<td>1091</td>
<td>0</td>
<td>546</td>
<td>28</td>
<td>636</td>
<td>1259</td>
<td>428</td>
</tr>
<tr>
<td rowspan="4">2</td>
<td>52</td>
<td>493</td>
<td>1245</td>
<td>363</td>
<td rowspan="4">6</td>
<td>52</td>
<td>917</td>
<td>0</td>
<td>491</td>
</tr>
<tr>
<td>37</td>
<td>996</td>
<td>0</td>
<td>546</td>
<td>37</td>
<td>572</td>
<td>1303</td>
<td>428</td>
</tr>
<tr>
<td>25</td>
<td>1091</td>
<td>0</td>
<td>546</td>
<td>25</td>
<td>1015</td>
<td>0</td>
<td>546</td>
</tr>
<tr>
<td>28</td>
<td>1091</td>
<td>0</td>
<td>546</td>
<td>28</td>
<td>1015</td>
<td>0</td>
<td>546</td>
</tr>
<tr>
<td rowspan="4">3</td>
<td>52</td>
<td>917</td>
<td>0</td>
<td>491</td>
<td rowspan="4">7</td>
<td>52</td>
<td>917</td>
<td>0</td>
<td>491</td>
</tr>
<tr>
<td>37</td>
<td>951</td>
<td>0</td>
<td>546</td>
<td>37</td>
<td>951</td>
<td>0</td>
<td>546</td>
</tr>
<tr>
<td>25</td>
<td>1015</td>
<td>0</td>
<td>546</td>
<td>25</td>
<td>1015</td>
<td>0</td>
<td>546</td>
</tr>
<tr>
<td>28</td>
<td>1015</td>
<td>0</td>
<td>546</td>
<td>28</td>
<td>636</td>
<td>1303</td>
<td>428</td>
</tr>
<tr>
<td rowspan="4">4</td>
<td>52</td>
<td>917</td>
<td>0</td>
<td>546</td>
<td rowspan="4">8</td>
<td>52</td>
<td>498</td>
<td>1460</td>
<td>363</td>
</tr>
<tr>
<td>37</td>
<td>572</td>
<td>1259</td>
<td>428</td>
<td>37</td>
<td>951</td>
<td>0</td>
<td>546</td>
</tr>
<tr>
<td>25</td>
<td>1015</td>
<td>0</td>
<td>546</td>
<td>25</td>
<td>1015</td>
<td>0</td>
<td>546</td>
</tr>
<tr>
<td>28</td>
<td>1015</td>
<td>0</td>
<td>546</td>
<td>28</td>
<td>1015</td>
<td>0</td>
<td>546</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>(f) The 200-bar planar truss:</p>
<p>The truss structure is shown in <xref ref-type="fig" rid="fig-12">Fig. 12</xref>. The material has a density &#x03C1; &#x003D; 0.283 lb/in<sup>3</sup> and an elastic modulus E &#x003D; 30,000 ksi. The problem only considers the stress constraint with an allowable limit of &#x00B1;10 ksi. The truss members are divided into 29 cross-sectional area groups, with values selected from the following set of 30 discrete values (in<sup>2</sup>): 0.1, 0.347, 0.44, 0.539, 0.954, 1.081, 1.174, 1.333, 1.488, 1.764, 2.142, 2.697, 2.8, 3.131, 3.565, 3.813, 4.805, 5.952, 6.572, 7.192, 8.525, 9.3, 10.85, 13.33, 14.29, 17.17, 19.18, 23.68, 28.08, and 33.7. Three load cases are considered:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Case 1: Horizontal load of 1.0 kip at nodes 1, 6, 15, 20, 29, 34, 43, 48, 57, 62, and 71.</p>
</list-item>
<list-item>
<label>&#x2013;</label>
<p>Case 2: Downward vertical load of 10.0 kips at nodes: 1&#x2013;5, 6, 8, 10, 12, 14, 15&#x2013;19, 20, 22, 24, 26, 28, 29&#x2013;33, 34, 36, 38, 40, 42, 43&#x2013;47, 48, 50, 52, 54, 56, 57&#x2013;61, 62, 64, 66, 68, 70, and 71&#x2013;75.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Case 3: A combination of Case 1 and Case 2.</p></list-item>
</list></p>
<fig id="fig-12">
<label>Figure 12</label>
<caption>
<title>The 200-bar truss layout.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-12.tif"/>
</fig>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Test Conditions</title>
<p>(a) Constraint handling:</p>
<p>The constraint function of a design <inline-formula id="ieqn-190"><mml:math id="mml-ieqn-190"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> are defined as:<disp-formula id="eqn-10"><label>(10)</label><mml:math id="mml-eqn-10" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo movablelimits="true" form="prefix">max</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mi>m</mml:mi><mml:mi>&#x03C3;</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mi>j</mml:mi><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1..</mml:mn><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1..</mml:mn><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-191"><mml:math id="mml-ieqn-191"><mml:msubsup><mml:mi>c</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the stress constraint violation, computed as
<disp-formula id="eqn-11"><label>(11)</label><mml:math id="mml-eqn-11" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msubsup><mml:mi>c</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msubsup></mml:mfrac></mml:mstyle><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mtext>&#xA0;</mml:mtext><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2265;</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:msubsup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msubsup><mml:mo>|</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mtext>&#xA0;</mml:mtext><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003C;</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>and <inline-formula id="ieqn-192"><mml:math id="mml-ieqn-192"><mml:msubsup><mml:mi>c</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> is the displacement constraint violation, computed as
<disp-formula id="eqn-12"><label>(12)</label><mml:math id="mml-eqn-12" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msubsup><mml:mi>c</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x0394;</mml:mi></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">&#x0394;</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:mfrac><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>(b) Solution comparison</p>
<p>For solution comparison in this study, the Deb&#x2019;s rules are applied. A design <inline-formula id="ieqn-193"><mml:math id="mml-ieqn-193"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is better than a design <inline-formula id="ieqn-194"><mml:math id="mml-ieqn-194"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> when:<disp-formula id="eqn-13"><label>(13)</label><mml:math id="mml-eqn-13" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003C;</mml:mo><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2264;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mrow><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:mrow><mml:mspace width="thinmathspace" /><mml:mi>W</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003C;</mml:mo><mml:mi>W</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Notably, when using the condition <xref ref-type="disp-formula" rid="eqn-13">Eq. (13)</xref>, we can save the constraint computations <inline-formula id="ieqn-195"><mml:math id="mml-ieqn-195"><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> if <inline-formula id="ieqn-196"><mml:math id="mml-ieqn-196"><mml:mi>W</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-197"><mml:math id="mml-ieqn-197"><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-198"><mml:math id="mml-ieqn-198"><mml:mi>W</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are known. Specifically, in the case where <inline-formula id="ieqn-199"><mml:math id="mml-ieqn-199"><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2264;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-200"><mml:math id="mml-ieqn-200"><mml:mi>W</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mi>W</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, it can be immediately concluded that <inline-formula id="ieqn-201"><mml:math id="mml-ieqn-201"><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is inferior to <inline-formula id="ieqn-202"><mml:math id="mml-ieqn-202"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> without needing to calculate <inline-formula id="ieqn-203"><mml:math id="mml-ieqn-203"><mml:mi>g</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mrow><mml:mi mathvariant="bold">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Thus, the number of structural analysis (NSA) will be reduced and will always be lower than the number of objective function evaluations (NFE). This is significant for the structural weight optimization problem, because usually the cost of one constraint calculation, related to structural model analysis, is much more expensive than one structural weight calculation.</p>
<p>(c) Algorithm setting</p>
<p>To evaluate the effectiveness of the proposed improvements, we consider four algorithms: (1) original BWR; (2) BWR combined with k-NNC (BWR-kNNC); (3) BWR combined with k-NNC and infeasible archive (BWR-ikNNC); and (4) BWR combined with wkNNC (BWR-wkNNC). For each problem, the comparison of algorithms is performed statistically across multiple independent runs (25 in this study) with a completely randomly generated initial population. This is a common approach in structural optimization, as the randomness of metaheuristic algorithms means that multiple runs may be required to achieve a reliable design. Obtained statistical results include the best optimal weight, the average optimal weight, the worst optimal weight, and the standard deviation are analyzed and compared. In each run, the optimization process ends when the relative error value of the weights in the population, <inline-formula id="ieqn-204"><mml:math id="mml-ieqn-204"><mml:mi>e</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mover><mml:mi>W</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msup><mml:mi>W</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>, is less than a predetermined value, taken as 10<sup>&#x2212;6</sup>, where <inline-formula id="ieqn-205"><mml:math id="mml-ieqn-205"><mml:mover><mml:mi>W</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula id="ieqn-206"><mml:math id="mml-ieqn-206"><mml:msup><mml:mi>W</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> are the mean and best weight values, respectively. The number of neighbors is chosen as 3 based on a sensitivity analysis. The size of population and infeasible archive is 25 for all tests. Keeping <italic>NP</italic> &#x003D; 25 is a deliberate strategy to ensure that the computational cost of neighborhood search does not explode as the number of iterations increases. If <italic>NP</italic> is too large, the cost of finding neighbors can negate the advantage of reducing the number of FEA analyses.</p>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Results and Discussion</title>
<p>First, the effects of the number of neighbors on the performance of wkNNC is considered. Then, the effectiveness of k-NNC, ikNNC, and wkNNC is evaluated. Finally, the results of BWR-wkNNC are compared with those of other published metaheuristic algorithms.</p>
<p>(a) Effects of number of neighbors</p>
<p>The investigation was conducted for the 10-bar truss structure. <xref ref-type="table" rid="table-6">Table 6</xref> presents the results comparing the performance of BWR-wkNNC when varying different k values (from 2 to 5) and compared with the case without using wkNNC.</p>
<table-wrap id="table-6">
<label>Table 6</label>
<caption>
<title>Optimal weight for 10-bar truss by BWR-wkNNC with different k-values.</title>
</caption>
<table>
<colgroup>
<col align="center" width="35mm"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th><italic>k</italic>-value</th>
<th>Best</th>
<th>Mean</th>
<th>Worst</th>
<th>SD</th>
<th>NFE/NSA</th>
</tr>
</thead>
<tbody>
<tr>
<td>without wkNNC</td>
<td>5490.7379</td>
<td>5490.7379</td>
<td>5490.7379</td>
<td>1.87E&#x2212;12</td>
<td><bold>18,394/15,435</bold></td>
</tr>
<tr>
<td>2</td>
<td>5490.7379</td>
<td>5495.6925</td>
<td>5531.0356</td>
<td>10.8215</td>
<td>2606/1657</td>
</tr>
<tr>
<td><italic>3</italic></td>
<td><italic>5490.7379</italic></td>
<td><italic>5494.2888</italic></td>
<td><italic>5527.8362</italic></td>
<td><italic>9.4059</italic></td>
<td><italic>2866/1699</italic></td>
</tr>
<tr>
<td>4</td>
<td>5490.7379</td>
<td>5499.0333</td>
<td>5536.5584</td>
<td>15.1806</td>
<td>2554/1531</td>
</tr>
<tr>
<td>5</td>
<td>5490.7379</td>
<td>5494.6608</td>
<td>5536.5584</td>
<td>10.0785</td>
<td>2796/1679</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Some observations are as follows:<list list-type="simple">
<list-item>
<label>1.</label>
<p>Accuracy (Best weight)
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>All k values, as well as the case without using wkNNC, achieve the best optimal weight of 5490.7379 lb. This shows that integrating wkNNC and changing the k parameter does not affect the ability of the BWR algorithm to find the global optimal solution.</p></list-item>
</list></p></list-item>
<list-item>
<label>2.</label>
<p>Stability (Mean and SD):
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>With k &#x003D; 3, the algorithm yields the most stable results with the lowest mean (5494.2888 lb) and smallest SD (9.4059 lb) among the cases using wkNNC.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>k &#x003D; 4 has the least stability with the highest mean (5499.0333 lb) and highest SD (15.1806 lb); k &#x003D; 2 and k &#x003D; 5 have average stability, with SDs of 10.8215 lb and 10.0785 lb, respectively.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>The case without wkNNC has an extremely low SD (1.87E&#x2212;12 lb), since all 25 runs yielded the same best result.</p></list-item>
</list></p></list-item>
<list-item>
<label>3.</label>
<p>Computational efficiency (NFE/NSA):
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Without using wkNNC, the number of objective function evaluations (NFE) is up to 18,394. When applying wkNNC, the NFE decreases to only about 2554 to 2866, i.e., a reduction of up to 86% in the number of function evaluations.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Computational efficiency does not differ significantly with different k values.</p></list-item>
</list></p></list-item>
</list></p>
<p>Based on the above analyses, the value k &#x003D; 3 is chosen for further investigation because it provides the best balance between computational efficiency and solution stability. Although this analysis is performed on the 10-bar problem, the goal is to find a configuration that is &#x201C;good enough&#x201D; to serve as a benchmark for comparison between algorithms in more complex problems. With a relatively small population size (<italic>NP</italic> &#x003D; 25), using a large k value would not guarantee accuracy because the designs are far apart. Conversely, using a small k value (1 or 2) increases the likelihood of bias. As experimental results in <xref ref-type="sec" rid="s4_3">Section 4.3</xref> (b) show, with k &#x003D; 3, the wkNNC method still significantly reduces the number of function evaluations (NFE) and structural analysis (NSA) on all problems.</p>
<p>(b) Effectiveness of k-NNC, ikNNC, and wkNNC</p>
<p><xref ref-type="table" rid="table-7">Table 7</xref> and <xref ref-type="fig" rid="fig-13">Fig. 13</xref> present the analysis results regarding the computational reduction, accuracy, and convergence of k-NNC, ikNNC, and wkNNC in the 10-bar truss problem. The data from <xref ref-type="table" rid="table-7">Table 7</xref> and the graphs in <xref ref-type="fig" rid="fig-13">Fig. 13</xref> shows a significant improvement from kNNC to ikNNC and wkNNC in the ability to reduce computational costs while maintaining high accuracy.</p>
<table-wrap id="table-7">
<label>Table 7</label>
<caption>
<title>Efficiency of kNNC, ikNNC, and wkNNC for 10-bar truss with <italic>NP</italic> &#x003D; 25 and <italic>k</italic> &#x003D; 3.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th></th>
<th>BWR-kNNC</th>
<th>BWR-ikNNC</th>
<th>BWR-wkNNC</th>
</tr>
</thead>
<tbody>
<tr>
<td>Skip rate (%)</td>
<td>38.80</td>
<td>84.24</td>
<td>89.26</td>
</tr>
<tr>
<td>Successful skip rate (%)</td>
<td>98.51</td>
<td>99.06</td>
<td>98.11</td>
</tr>
</tbody>
</table>
</table-wrap><fig id="fig-13">
<label>Figure 13</label>
<caption>
<title>Performance of kNNC, ikNNC, and wkNNC for the 10-bar truss with <italic>NP</italic> &#x003D; 25 and <italic>k</italic> &#x003D; 3.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-13.tif"/>
</fig>
<p><list list-type="simple">
<list-item>
<label>1.</label>
<p>Performance in reducing computation (Skip rate&#x2014;rate of skipping objective function evaluations):
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>ikNNC shows the biggest leap in performance compared to k-NNC, with the skip rate increasing from 38.80% to 84.24%. This indicates that the inclusion of the infeasible archive helped detect and skip redundant computations much more effectively.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>With wkNNC, the skip rate continues to improve, reaching 89.26%. <xref ref-type="fig" rid="fig-13">Fig. 13a</xref>,<xref ref-type="fig" rid="fig-13">c</xref> visually demonstrates that BWR-wkNNC maintained a very high skip rate throughout the optimization process.</p>
</list-item>
</list></p></list-item>
<list-item>
<label>2.</label>
<p>Prediction reliability (Successful skip rate): The successful skip rate indicates the accuracy of the skips:
<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>ikNNC achieves the highest accuracy, with a rate of 99.06%, followed by k-NNC (98.51%). For wkNNC, the success rate decreased slightly to 98.11%. However, this number is still very high, ensuring the stability of the optimal solution. <xref ref-type="fig" rid="fig-13">Fig. 13d</xref> shows that the success rates of all three algorithms remained quite stable across iterations.</p>
</list-item>
</list></p></list-item>
<list-item>
<label>3.</label>
<p>Population convergence and diversity: The population diversity is measured by the diversity index <inline-formula id="ieqn-207"><mml:math id="mml-ieqn-207"><mml:mi>D</mml:mi><mml:mi>I</mml:mi></mml:math></inline-formula> calculated by <xref ref-type="disp-formula" rid="eqn-14">Eq. (14)</xref>. Despite omitting nearly 90% of the function evaluations, the population diversity plot for the NNC variants gradually decreased with each iteration (<xref ref-type="fig" rid="fig-2">Fig. 2b</xref>), indicating that the improvements did not cause premature convergence or dispersion in the search space.</p></list-item>
</list>
<disp-formula id="eqn-14"><label>(14)</label><mml:math id="mml-eqn-14" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mi>D</mml:mi><mml:mi>I</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:munderover><mml:mrow><mml:mo>[</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:munderover><mml:mfrac><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover><mml:mi>x</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mover><mml:mi>x</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>P</mml:mi></mml:mrow></mml:munderover><mml:msubsup><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Statistical results for all six problems are given in <xref ref-type="table" rid="table-8">Table 8</xref> and <xref ref-type="fig" rid="fig-14">Figs. 14</xref>&#x2013;<xref ref-type="fig" rid="fig-19">19</xref>. Below is a detailed discussion and evaluation for each truss problem, focusing on a comparison between BWR and BWR-wkNNC through two aspects: computational efficiency and convergence characteristics.</p>
<table-wrap id="table-8">
<label>Table 8</label>
<caption>
<title>Results of BWR, BWR-kNNC, BWR-ikNNC, BWR-wkNNC with <italic>NP</italic> &#x003D; 25 and <italic>k</italic> &#x003D; 3.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>Problem</th>
<th>Method</th>
<th>Best</th>
<th>Mean</th>
<th>Worst</th>
<th>SD</th>
<th>NFE/NSA</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="5">10-bar</td>
<td>Ref.</td>
<td>5490.7379</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>BWR</td>
<td>5490.7379</td>
<td>5490.7379</td>
<td>5490.7379</td>
<td>1.87E&#x2212;12</td>
<td>18,394/15,435</td>
</tr>
<tr>
<td>BWR-kNNC</td>
<td>5490.7379</td>
<td>5491.0434</td>
<td>5498.3746</td>
<td>1.5274</td>
<td>12,929/11,056</td>
</tr>
<tr>
<td>BWR-ikNNC</td>
<td>5490.7379</td>
<td>5492.2714</td>
<td>5521.4384</td>
<td>6.2652</td>
<td>3071/2142</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>5490.7379</td>
<td>5494.2888</td>
<td>5527.8362</td>
<td>9.4059</td>
<td>2866/1699</td>
</tr>
<tr>
<td rowspan="5">25-bar</td>
<td>Ref.</td>
<td>551.0372</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>BWR</td>
<td>551.0372</td>
<td>551.0883</td>
<td>552.3355</td>
<td>0.23225</td>
<td>20,091/16,532</td>
</tr>
<tr>
<td>BWR-kNNC</td>
<td>551.0372</td>
<td>551.2444</td>
<td>552.443</td>
<td>0.43629</td>
<td>9471/8207</td>
</tr>
<tr>
<td>BWR-ikNNC</td>
<td>551.0372</td>
<td>551.1554</td>
<td>552.9335</td>
<td>0.40194</td>
<td>2376/1738</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>551.0372</td>
<td>551.4317</td>
<td>553.9892</td>
<td>0.85014</td>
<td>2329/1396</td>
</tr>
<tr>
<td rowspan="5">52-bar</td>
<td>Ref.</td>
<td>1902.6055</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>BWR</td>
<td>1902.6055</td>
<td>1902.7643</td>
<td>1905.0147</td>
<td>0.40243</td>
<td>33,627/29,523</td>
</tr>
<tr>
<td>BWR-kNNC</td>
<td>1902.6055</td>
<td>1902.7589</td>
<td>1903.3661</td>
<td>0.28339</td>
<td>22,607/20,428</td>
</tr>
<tr>
<td>BWR-ikNNC</td>
<td>1902.6055</td>
<td>1904.6683</td>
<td>1914.8367</td>
<td>3.3487</td>
<td>6620/5790</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>1902.6055</td>
<td>1904.8343</td>
<td>1914.6236</td>
<td>3.9513</td>
<td>4799/4011</td>
</tr>
<tr>
<td rowspan="5">72-bar</td>
<td>Ref.</td>
<td>389.3342</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>BWR</td>
<td>389.3342</td>
<td>389.5907</td>
<td>391.837</td>
<td>0.52174</td>
<td>42,574/33,231</td>
</tr>
<tr>
<td>BWR-kNNC</td>
<td>389.3342</td>
<td>389.4481</td>
<td>389.8721</td>
<td>0.16777</td>
<td>28,262/22,777</td>
</tr>
<tr>
<td>BWR-ikNNC</td>
<td>389.3342</td>
<td>390.4351</td>
<td>398.5913</td>
<td>1.5893</td>
<td>8711/5876</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>389.3342</td>
<td>390.6462</td>
<td>393.8492</td>
<td>1.4931</td>
<td>6973/4549</td>
</tr>
<tr>
<td rowspan="5">160-bar</td>
<td>Ref.</td>
<td>1336.0308</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>BWR</td>
<td>1336.0308</td>
<td>1339.5999</td>
<td>1347.1778</td>
<td>3.5500</td>
<td>63,389/55,096</td>
</tr>
<tr>
<td>BWR-kNNC</td>
<td>1336.0308</td>
<td>1338.7645</td>
<td>1345.3272</td>
<td>2.4982</td>
<td>52,344/45,717</td>
</tr>
<tr>
<td>BWR-ikNNC</td>
<td>1336.0308</td>
<td>1340.8234</td>
<td>1377.0411</td>
<td>8.1347</td>
<td>15,579/12,543</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>1336.0308</td>
<td>1339.7084</td>
<td>1346.9053</td>
<td>3.3108</td>
<td>12,311/9625</td>
</tr>
<tr>
<td rowspan="5">200-bar</td>
<td>Ref.</td>
<td>&#x2013;</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>BWR</td>
<td>27,298.940</td>
<td>27,722.5699</td>
<td>28,563.0147</td>
<td>336.7294</td>
<td>84,355/72,932</td>
</tr>
<tr>
<td>BWR-kNNC</td>
<td>27,407.962</td>
<td>27,894.0553</td>
<td>29,011.3267</td>
<td>384.5525</td>
<td>59,950/52,082</td>
</tr>
<tr>
<td>BWR-ikNNC</td>
<td>27,384.850</td>
<td>28,361.6386</td>
<td>35,098.4095</td>
<td>1441.0224</td>
<td>15,390/12,772</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>27,430.305</td>
<td>28,166.6289</td>
<td>28,894.5516</td>
<td>387.9270</td>
<td>10,511/8571</td>
</tr>
</tbody>
</table>
</table-wrap><fig id="fig-14">
<label>Figure 14</label>
<caption>
<title>Optimization of 10-bar truss: BWR vs. BWR-wkNNC.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-14.tif"/>
</fig><fig id="fig-15">
<label>Figure 15</label>
<caption>
<title>Optimization of 25-bar truss: BWR vs. BWR-wkNNC.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-15.tif"/>
</fig><fig id="fig-16">
<label>Figure 16</label>
<caption>
<title>Optimization of 52-bar truss: BWR vs. BWR-wkNNC.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-16.tif"/>
</fig><fig id="fig-17">
<label>Figure 17</label>
<caption>
<title>Optimization of 72-bar truss: BWR vs. BWR-wkNNC.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-17.tif"/>
</fig><fig id="fig-18">
<label>Figure 18</label>
<caption>
<title>Optimization of 160-bar truss: BWR vs. BWR-wkNNC.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-18.tif"/>
</fig><fig id="fig-19">
<label>Figure 19</label>
<caption>
<title>Optimization of 200-bar truss: BWR vs. BWR-wkNNC.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMES_80453-fig-19.tif"/>
</fig>
<p>(i) The 10-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>All algorithms found the best optimal value to be 5490.7379 lb. However, BWR-wkNNC was the most cost-effective with only 2866 objective function evaluations (NFEs), a reduction of more than 6 times compared to the original BWR (18,394).</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>The convergence curve of structural weights (<xref ref-type="fig" rid="fig-14">Fig. 14a</xref>) shows that BWR-wkNNC achieves a similar optimal result with a much lower computational cost, compared with BWR.</p>
</list-item>
<list-item>
<label>&#x2013;</label>
<p>Regarding population diversity (<xref ref-type="fig" rid="fig-14">Fig. 14b</xref>), the two population diversity curves are quite similar at the beginning, demonstrating that the use of wkNNC does not change the search nature of the BWR algorithm. In later iterations, BWR-wkNNC maintains a more diverse population.</p>
</list-item>
</list></p>
<p>(ii) The 25-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>All methods achieved a value of 551.0372. BWR-wkNNC continues to lead in computation efficiency with 2329 FEs compared to BWR&#x2019;s 20,091. The resource efficiency in this problem was nearly 9 times.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>In <xref ref-type="fig" rid="fig-15">Fig. 15a</xref>, compared to BWR, BWR-wkNNC demonstrated a superior speed rate.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p><xref ref-type="fig" rid="fig-15">Fig. 15b</xref> shows the similarity between the two population diversity curves, ensuring that the ability to explore the design space of BWR-wkNNC is preserved even though the number of objective function evaluations is significantly reduced. Similar to the 10-bar truss, BWR-wkNNC maintains population diversity for longer than BWR.</p></list-item>
</list></p>
<p>(iii) The 52-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>The optimal result of 1902.6055 was maintained across all algorithms. BWR-wkNNC achieved the highest computational performance with 4799 NFEs.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>The structural weight convergence curve in <xref ref-type="fig" rid="fig-16">Fig. 16a</xref> shows that BWR-wkNNC completed the optimization process extremely efficiently compared to BWR.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p><xref ref-type="fig" rid="fig-16">Fig. 16b</xref> shows that the population diversity of BWR-wkNNC and RWR decreased along almost the same path through the iterations. This indicates that the wkNNC prediction mechanism is very reliable.</p></list-item>
</list></p>
<p>(iv) The 72-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>All four algorithms achieved a best value of 389.3342. BWR-wkNNC consumed 6973 NFEs, while BWR required 42,574.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p><xref ref-type="fig" rid="fig-17">Fig. 17a</xref> shows that BWR-wkNNC continues to maintain its computational advantage over BWR.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>In <xref ref-type="fig" rid="fig-17">Fig. 17b</xref>, population diversity is maintained at a higher level by BWR-wkNNC, demonstrating that wkNNC effectively replaces exact computations without losing important population information.</p></list-item>
</list></p>
<p>(v) The 160-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>This is a large-scale and complex truss problem; yet all BWR variants still find an optimal weight of 1336.0308. BWR-wkNNC (SD &#x003D; 3.3108) shows significantly higher stability than BWR-ikNNC (SD &#x003D; 8.1347) and only requires 12,311 NFEs.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>The computational cost was significantly reduced during the optimization with the presence of wkNNC as seen in <xref ref-type="fig" rid="fig-18">Fig. 18a</xref>.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p><xref ref-type="fig" rid="fig-18">Fig. 18b</xref> clearly illustrates that BWR-wkNNC maintains population diversity like RWR (<xref ref-type="fig" rid="fig-18">Fig. 18b</xref>), showing high stability even in large variable spaces.</p></list-item>
</list></p>
<p>(vi) The 200-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>In this complex problem, the original BWR achieved the best result (27,298.9403). Other algorithms closely matched with very small deficiencies. It is observed that while BWR-wkNNC is significantly more efficient, requiring only 10,511 NFEs compared to 84,355 for BWR, there is a minor degradation in the best weight (27,430.3049) compared to the original BWR (27,298.9403). This loss of global optimality, approximately 0.48%, can be attributed to the sparsity of the neighbor database in the high-dimensional search space (D &#x003D; 29). In such large-scale problems, the wkNNC filter may occasionally misidentify high-quality candidates near the feasibility boundary as unpromising due to the limited local information provided by only 50 data points (current population and archive). This represents a standard accuracy-efficiency trade-off; however, considering that BWR-wkNNC achieved this result with nearly 8 times fewer function evaluations, the method remains highly superior for practical engineering applications where computational time is the primary obstacle.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p><xref ref-type="fig" rid="fig-19">Fig. 19a</xref> further illustrates the computational cost reduction capabilities of BWR-wkNNC.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Regarding population diversity, the population diversity convergence curve shows a similarity between BWR-wkNNC and BWR, with BWR-wkNNC maintaining a slightly higher value (see <xref ref-type="fig" rid="fig-19">Fig. 19b</xref>). This confirms that BWR-wkNNC retains the robust search capabilities of BWR in large problems.</p></list-item>
</list></p>
<p>(c) Comparison with other state-of-the-art metaheuristics</p>
<p>Comparisons are made with other metaheuristic algorithms performed on the same problems, as summarized in <xref ref-type="table" rid="table-9">Table 9</xref>. The algorithms selected for comparison, including aeDE [<xref ref-type="bibr" rid="ref-51">51</xref>], EFA [<xref ref-type="bibr" rid="ref-52">52</xref>], CETDE [<xref ref-type="bibr" rid="ref-53">53</xref>], and BO [<xref ref-type="bibr" rid="ref-54">54</xref>], are those that yielded highly competitive results. Comparison criteria include accuracy, stability, and efficiency. A comparison for the 25-bar problem is not conducted because the results for this problem are not included in the published comparison algorithms.</p>
<table-wrap id="table-9">
<label>Table 9</label>
<caption>
<title>Comparison between BWR-wkNNC and other metaheuristic algorithms.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>Problem</th>
<th>Method</th>
<th>Best</th>
<th>Mean</th>
<th>Worst</th>
<th>SD</th>
<th>NSA</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="5">10-bar</td>
<td>aeDE [<xref ref-type="bibr" rid="ref-51">51</xref>]</td>
<td>5490.7379</td>
<td>5502.623</td>
<td>5549.204</td>
<td>20.780</td>
<td>2550</td>
</tr>
<tr>
<td>EFA [<xref ref-type="bibr" rid="ref-52">52</xref>]</td>
<td>5490.738</td>
<td>5528.227</td>
<td>5551.985</td>
<td>18.367</td>
<td>2070</td>
</tr>
<tr>
<td>CETDE [<xref ref-type="bibr" rid="ref-53">53</xref>]</td>
<td>5490.738</td>
<td>5509.197</td>
<td>5547.064</td>
<td>20.218</td>
<td>20.218</td>
</tr>
<tr>
<td>BO [<xref ref-type="bibr" rid="ref-54">54</xref>]</td>
<td>5490.7379</td>
<td>5504.2088</td>
<td>5514.4028</td>
<td>8.901</td>
<td>1260</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>5490.7379</td>
<td>5493.6019</td>
<td>5522.2205</td>
<td>7.3179</td>
<td>1705</td>
</tr>
<tr>
<td rowspan="5">52-bar</td>
<td>aeDE [<xref ref-type="bibr" rid="ref-51">51</xref>]</td>
<td>1902.605</td>
<td>1906.735</td>
<td>1925.714</td>
<td>6.679</td>
<td>3402</td>
</tr>
<tr>
<td>EFA [<xref ref-type="bibr" rid="ref-52">52</xref>]</td>
<td>1902.605</td>
<td>1904.775</td>
<td>1910.942</td>
<td>3.045</td>
<td>2894</td>
</tr>
<tr>
<td>CETDE [<xref ref-type="bibr" rid="ref-53">53</xref>]</td>
<td>1899.654&#x002A;</td>
<td>1903.695</td>
<td>1924.582</td>
<td>5.902</td>
<td>3223</td>
</tr>
<tr>
<td>BO [<xref ref-type="bibr" rid="ref-54">54</xref>]</td>
<td>1902.6055</td>
<td>1904.4047</td>
<td>1907.9661</td>
<td>1.891</td>
<td>5760</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>1902.6055</td>
<td>1904.8343</td>
<td>1914.6236</td>
<td>3.9513</td>
<td>4011</td>
</tr>
<tr>
<td rowspan="5">72-bar</td>
<td>aeDE [<xref ref-type="bibr" rid="ref-51">51</xref>]</td>
<td>389.334</td>
<td>390.913</td>
<td>393.325</td>
<td>1.161</td>
<td>4101</td>
</tr>
<tr>
<td>EFA [<xref ref-type="bibr" rid="ref-52">52</xref>]</td>
<td>389.334</td>
<td>391.376</td>
<td>393.826</td>
<td>1.376</td>
<td>3123</td>
</tr>
<tr>
<td>CETDE [<xref ref-type="bibr" rid="ref-53">53</xref>]</td>
<td>389.070&#x002A;</td>
<td>390.072</td>
<td>393.11</td>
<td>1.157</td>
<td>2868</td>
</tr>
<tr>
<td>BO [<xref ref-type="bibr" rid="ref-54">54</xref>]</td>
<td>389.3342</td>
<td>390.2501</td>
<td>391.9601</td>
<td>0.982</td>
<td>7020</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>389.3342</td>
<td>390.6462</td>
<td>393.8492</td>
<td>1.4931</td>
<td>4549</td>
</tr>
<tr>
<td rowspan="5">160-bar</td>
<td>aeDE [<xref ref-type="bibr" rid="ref-51">51</xref>]</td>
<td>1336.634</td>
<td>1355.875</td>
<td>1410.611</td>
<td>18.805</td>
<td>21,265</td>
</tr>
<tr>
<td>EFA [<xref ref-type="bibr" rid="ref-52">52</xref>]</td>
<td>1336.704</td>
<td>1372.551</td>
<td>1429.253</td>
<td>34.706</td>
<td>15,183</td>
</tr>
<tr>
<td>CETDE [<xref ref-type="bibr" rid="ref-53">53</xref>]</td>
<td>1332.9559&#x002A;</td>
<td>1342.3202</td>
<td>1395.5229</td>
<td>15.9427</td>
<td>7336</td>
</tr>
<tr>
<td>BO [<xref ref-type="bibr" rid="ref-54">54</xref>]</td>
<td>1336.3502</td>
<td>1338.3399</td>
<td>1345.4180</td>
<td>2.7087</td>
<td>60,800</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>1336.0308</td>
<td>1339.7084</td>
<td>1346.9053</td>
<td>3.3108</td>
<td>9625</td>
</tr>
<tr>
<td rowspan="5">200-bar</td>
<td>aeDE [<xref ref-type="bibr" rid="ref-51">51</xref>]</td>
<td>27,858.500</td>
<td>28,425.871</td>
<td>29,415.000</td>
<td>481.590</td>
<td>11,644</td>
</tr>
<tr>
<td>EFA [<xref ref-type="bibr" rid="ref-52">52</xref>]</td>
<td>27,421.944</td>
<td>28,434.603</td>
<td>30,180.343</td>
<td>749.0776</td>
<td>5023</td>
</tr>
<tr>
<td>CETDE [<xref ref-type="bibr" rid="ref-53">53</xref>]</td>
<td>27,449.18</td>
<td>28,920.88</td>
<td>31,261.482</td>
<td>1086.581</td>
<td>6548</td>
</tr>
<tr>
<td>BO [<xref ref-type="bibr" rid="ref-54">54</xref>]</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
<td>&#x2013;</td>
</tr>
<tr>
<td>BWR-wkNNC</td>
<td>27,430.3049</td>
<td>28,166.6289</td>
<td>28,894.5516</td>
<td>387.9270</td>
<td>8571</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="table-9fn1" fn-type="other">
<p>Note: &#x002A;These optimal results violate the constraints as indicated in <xref ref-type="table" rid="table-7">Table 7</xref> in Pham et al. [<xref ref-type="bibr" rid="ref-43">43</xref>].</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>(i) The 10-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Accuracy: BWR-wkNNC, along with other algorithms, found the best structural weight (Best) of 5490.7379.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Stability: BWR-wkNNC excelled with the lowest Mean (5493.6019) and SD (7.3179) values. This demonstrates the algorithm&#x2019;s high reliability and minimal variability between runs.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Efficiency: Although the BO algorithm had the lowest number of structural analysis (NSA), BWR-wkNNC maintained a competitive NSAs (1705) while achieving better stability.</p></list-item>
</list></p>
<p>(ii) The 52-bar truss and 72-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Accuracy: The best optimal weight achieved by BWR-wkNNC in these two examples is comparable to most competitors (1902.6055 in the 52-bar problem, 389.3342 in the 72-bar problem). The CETDE algorithm yielded lower results (e.g., 1899.654 in the 52-bar problem or 389.070 in the 72-bar problem), but these results violated design constraints (constraint violation value, CV &#x003D; 0.0002 for 52-bar and CV &#x003D; 0.00004 for 72-bar as reported in Pham et al. [<xref ref-type="bibr" rid="ref-43">43</xref>]).</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Stability and efficiency: BWR-wkNNC is not competitive with other algorithms in these two examples.</p></list-item>
</list></p>
<p>(iii) The 160-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Accuracy: Compared to other algorithms except CETDE, BWR-wkNNC found the smallest optimal weight value (1336.0308). Although CETDE yielded a lower weight, it violated constraints with CV &#x003D; 0.0007 (see Ref. [<xref ref-type="bibr" rid="ref-43">43</xref>]).</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Efficiency: The most notable feature is that the NSAs (9625) of BWR-wkNNC is much lower than that of aeDE (21,265), EFA (15,183), and BO (60,800). This confirms that the wkNNC mechanism helps the algorithm solve large problems with very economical computational costs.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Stability: BWR-wkNNC achieved an SD of 3.3108, second only to BO (using much higher computaitonal resource), demonstrating the algorithm&#x2019;s good stability.</p></list-item>
</list></p>
<p>(iv) The 200-bar truss:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>Accuracy: BWR-wkNNC achieves the second-best optimal weight value after EFA. However, other statistical results such as Mean (28,166.6289) and Worst (28,894.5516) are lower than other algorithms.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Stability: The algorithm achieves the lowest SD (387.9270). In large-scale problems like the 200-bar problem, maintaining a low SD is very difficult, and this result confirms the greater stability of BWR-wkNNC compared to other algorithms.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Computational efficiency: BWR-wkNNC performed better than aeDE and slightly worse than EFA and CETDE.</p></list-item>
</list></p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Conclusion</title>
<p>This paper introduces a new k-NNC framework, the weighted k-NNC, for reducing expensive structural analyses when performing structural optimization using metaheuristic algorithms. Additional improvements include: integrating the set of infeasible solutions into the database for the k-NNC model, adding distance weights to the k nearest neighbors, and including the refinement for potential designs. The effectiveness of wkNNC is demonstrated through its integration with the BWR algorithm and its application to discrete sizing optimization problems for truss structures. Some key results achieved are as follows:<list list-type="simple">
<list-item>
<label>&#x2013;</label>
<p>The wkNNC method (with the parameter value k &#x003D; 3) significantly improves the ability to eliminate unnecessary structural analyses (skip rate up to nearly 90% with accuracy up to 98%). For large-scale problems (e.g., 160-bar and 200-bar trusses), the advantage of BWR-wkNNC becomes even more apparent (reducing NFE by almost 8 times in the 200-bar problem).</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Integrating wkNNC does not significantly change the convergence capability of the original algorithm or lose the diversity of the population.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>The wkNNC, when combined with BWR algorithm, produces a powerful and reliable optimization tool (BWR-wkNNC). Its performance, compared to some state-of-the-art algorithms, is summarized in three main points:</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>High accuracy: BWR-wkNNC consistently ranks among the top in finding the best solutions.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Leading stability: BWR-wkNNC surpasses algorithms such as aeDE, EFA, and BO in terms of result consistency, especially in problems with a large number of variables.</p></list-item>
<list-item>
<label>&#x2013;</label>
<p>Balanced efficiency: BWR-wkNNC achieves a balance between reducing the number of structural analysis and maintaining solution quality, especially in large-scale truss optimization problems.</p></list-item>
</list></p>
<p>In summary, the wkNNC method is a robust optimization tool that successfully resolves the computational bottleneck of metaheuristic structural optimization. By combining distance-weighted dominance, an active infeasible archive, and a potential solution refinement safeguard, it reduces the need for expensive FEA by approximately 80%&#x2013;90% without compromising accuracy. This framework is exceptionally suited for the design of complex, large-scale engineering structures where the high cost of structural analysis previously prohibited the use of advanced metaheuristic algorithms.</p>
<p>Nevertheless, the wkNNC performance when combined with other metaheuristic algorithms, e.g., algorithms with different convergence dynamics, remains uncovered. Besides, the application of wkNNC to mix variables problems has been unexplored. These limitations need a further study.</p>
</sec>
</body>
<back>
<ack>
<p>None.</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>This research is funded by Hanoi University of Civil Engineering (HUCE) under grant number 39&#x2013;2025/KHXD-T&#x0110;.</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>The authors confirm contribution to the paper as follows: Conceptualization, Hoang-Anh Pham; methodology, Hoang-Anh Pham, Anh-Vu Nguyen, Ravipudi Venkata Rao; software, Hoang-Anh Pham, Anh-Vu Nguyen; validation, Hoang-Anh Pham, Anh-Vu Nguyen; formal analysis, Anh-Vu Nguyen, Ba-Duan Nguyen, Tien-Chuong Vu; investigation, Anh-Vu Nguyen, Ba-Duan Nguyen, Tien-Chuong Vu; resources, Anh-Vu Nguyen, Tien-Chuong Vu, Ba-Duan Nguyen; data curation, Anh-Vu Nguyen; writing&#x2014;original draft preparation, Hoang-Anh Pham, Anh-Vu Nguyen, Tien-Chuong Vu; writing&#x2014;review and editing, Hoang-Anh Pham, Ravipudi Venkata Rao; visualization, Anh-Vu Nguyen; supervision, Hoang-Anh Pham; project administration, Hoang-Anh Pham; funding acquisition, Anh-Vu Nguyen. All authors reviewed and approved the final version of the manuscript.</p>
</sec>
<sec sec-type="data-availability">
<title>Availability of Data and Materials</title>
<p>The data that support the findings of this study are available from the Corresponding Author, Hoang-Anh Pham, upon reasonable request.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>Not applicable.</p>
</sec>
<sec sec-type="COI-statement">
<title>Conflicts of Interest</title>
<p>The authors declare no conflicts of interest.</p>
</sec>
<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><surname>Arora</surname> <given-names>JS</given-names></string-name></person-group>. <source>Introduction to optimum design</source>. <edition>5th ed</edition>. <publisher-loc>Amsterdam, The Netherlands</publisher-loc>: <publisher-name>Elsevier</publisher-name>; <year>2024</year>. doi: <pub-id pub-id-type="doi">10.1016/C2018-0-03380-0</pub-id>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Yang</surname> <given-names>XS</given-names></string-name>, <string-name><surname>Koziel</surname> <given-names>S</given-names></string-name>, <string-name><surname>Leifsson</surname> <given-names>L</given-names></string-name></person-group>. <article-title>Computational optimization, modelling and simulation: recent trends and challenges</article-title>. <source>Procedia Comput Sci</source>. <year>2013</year>;<volume>18</volume>(<issue>1</issue>):<fpage>855</fpage>&#x2013;<lpage>60</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.procs.2013.05.250</pub-id>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lamberti</surname> <given-names>L</given-names></string-name>, <string-name><surname>Pappalettere</surname> <given-names>C</given-names></string-name></person-group>. <article-title>Metaheuristic design optimization of skeletal structures: a review</article-title>. <source>Comp Tech Rev</source>. <year>2010</year>;<volume>4</volume>:<fpage>1</fpage>&#x2013;<lpage>32</lpage>. doi:<pub-id pub-id-type="doi">10.4203/ctr.4.1</pub-id>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Saka</surname> <given-names>MP</given-names></string-name>, <string-name><surname>Hasan&#x00E7;ebi</surname> <given-names>O</given-names></string-name>, <string-name><surname>Geem</surname> <given-names>ZW</given-names></string-name></person-group>. <article-title>Metaheuristics in structural optimization and discussions on harmony search algorithm</article-title>. <source>Swarm Evol Comput</source>. <year>2016</year>;<volume>28</volume>(<issue>6</issue>):<fpage>88</fpage>&#x2013;<lpage>97</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.swevo.2016.01.005</pub-id>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Kaveh</surname> <given-names>A</given-names></string-name></person-group>. <source>Advances in metaheuristic algorithms for optimal design of structures</source>, Vol. <volume>16</volume>. <publisher-loc>Cham, Switzerland</publisher-loc>: <publisher-name>Springer International Publishing</publisher-name>; <year>2014</year>. <fpage>631 p</fpage>. doi:<pub-id pub-id-type="doi">10.1007/978-3-319-46173-1</pub-id>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Kaveh</surname> <given-names>A</given-names></string-name></person-group>. <source>Applications of metaheuristic optimization algorithms in civil engineering</source>. <publisher-loc>Cham, Switzerland</publisher-loc>: <publisher-name>Springer International Publishing</publisher-name>; <year>2017</year>. doi:<pub-id pub-id-type="doi">10.1007/978-3-319-48012-1</pub-id>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Kaveh</surname> <given-names>A</given-names></string-name>, <string-name><surname>Ilchi Ghazaan</surname> <given-names>M</given-names></string-name></person-group>. <source>Meta-heuristic algorithms for optimal design of real-size structures</source>. <publisher-loc>Cham, Switzerland</publisher-loc>: <publisher-name>Springer International Publishing</publisher-name>; <year>2018</year>. doi:<pub-id pub-id-type="doi">10.1007/978-3-319-78780-0</pub-id>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ficarella</surname> <given-names>E</given-names></string-name>, <string-name><surname>Lamberti</surname> <given-names>L</given-names></string-name>, <string-name><surname>Degertekin</surname> <given-names>SO</given-names></string-name></person-group>. <article-title>Comparison of three novel hybrid metaheuristic algorithms for structural optimization problems</article-title>. <source>Comput Struct</source>. <year>2021</year>;<volume>244</volume>(<issue>1</issue>):<fpage>106395</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.compstruc.2020.106395</pub-id>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lagaros</surname> <given-names>ND</given-names></string-name>, <string-name><surname>Plevris</surname> <given-names>V</given-names></string-name>, <string-name><surname>Kallioras</surname> <given-names>NA</given-names></string-name></person-group>. <article-title>The mosaic of metaheuristic algorithms in structural optimization</article-title>. <source>Arch Comput Methods Eng</source>. <year>2022</year>;<volume>29</volume>(<issue>7</issue>):<fpage>5457</fpage>&#x2013;<lpage>92</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11831-022-09773-0</pub-id>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ghaemifard</surname> <given-names>S</given-names></string-name>, <string-name><surname>Ghannadiasl</surname> <given-names>A</given-names></string-name></person-group>. <article-title>A comparison of metaheuristic algorithms for structural optimization: performance and efficiency analysis</article-title>. <source>Adv Civ Eng</source>. <year>2024</year>;<volume>2024</volume>(<issue>1</issue>):<fpage>2054173</fpage>. doi:<pub-id pub-id-type="doi">10.1155/2024/2054173</pub-id>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Holland</surname> <given-names>JH</given-names></string-name></person-group>. <article-title>Genetic algorithms</article-title>. <source>Sci Am</source>. <year>1992</year>;<volume>267</volume>(<issue>1</issue>):<fpage>66</fpage>&#x2013;<lpage>73</lpage>. doi:<pub-id pub-id-type="doi">10.1038/scientificamerican0792-66</pub-id>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kirkpatrick</surname> <given-names>S</given-names></string-name>, <string-name><surname>Gelatt</surname> <given-names>CD</given-names> <suffix>Jr</suffix></string-name>, <string-name><surname>Vecchi</surname> <given-names>MP</given-names></string-name></person-group>. <article-title>Optimization by simulated annealing</article-title>. <source>Science</source>. <year>1983</year>;<volume>220</volume>(<issue>4598</issue>):<fpage>671</fpage>&#x2013;<lpage>80</lpage>. doi:<pub-id pub-id-type="doi">10.1126/science.220.4598.671</pub-id>; <pub-id pub-id-type="pmid">17813860</pub-id></mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Kennedy</surname> <given-names>J</given-names></string-name>, <string-name><surname>Eberhart</surname> <given-names>R</given-names></string-name></person-group>. <article-title>Particle swarm optimization</article-title>. In: <conf-name>Proceedings of the ICNN&#x2019;95&#x2014;International Conference on Neural Networks; 1995 Nov 27&#x2013;Dec 1; Perth, WA, Australia</conf-name>. p. <fpage>1942</fpage>&#x2013;<lpage>8</lpage>. doi:<pub-id pub-id-type="doi">10.1109/ICNN.1995.488968</pub-id>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Storn</surname> <given-names>R</given-names></string-name>, <string-name><surname>Price</surname> <given-names>K</given-names></string-name></person-group>. <article-title>Differential evolution&#x2013;a simple and efficient heuristic for global optimization over continuous spaces</article-title>. <source>J Glob Optim</source>. <year>1997</year>;<volume>11</volume>(<issue>4</issue>):<fpage>341</fpage>&#x2013;<lpage>59</lpage>. doi:<pub-id pub-id-type="doi">10.1023/A:1008202821328</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Rao</surname> <given-names>RV</given-names></string-name>, <string-name><surname>Savsani</surname> <given-names>VJ</given-names></string-name>, <string-name><surname>Vakharia</surname> <given-names>DP</given-names></string-name></person-group>. <article-title>Teaching-learning&#x2013;based optimization: a novel method for constrained mechanical design optimization problems</article-title>. <source>Comput Aided Des</source>. <year>2011</year>;<volume>43</volume>(<issue>3</issue>):<fpage>303</fpage>&#x2013;<lpage>15</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.cad.2010.12.015</pub-id>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mirjalili</surname> <given-names>S</given-names></string-name>, <string-name><surname>Mirjalili</surname> <given-names>SM</given-names></string-name>, <string-name><surname>Lewis</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Grey wolf optimizer</article-title>. <source>Adv Eng Softw</source>. <year>2014</year>;<volume>69</volume>:<fpage>46</fpage>&#x2013;<lpage>61</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.advengsoft.2013.12.007</pub-id>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mirjalili</surname> <given-names>S</given-names></string-name>, <string-name><surname>Lewis</surname> <given-names>A</given-names></string-name></person-group>. <article-title>The whale optimization algorithm</article-title>. <source>Adv Eng Softw</source>. <year>2016</year>;<volume>95</volume>(<issue>12</issue>):<fpage>51</fpage>&#x2013;<lpage>67</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.advengsoft.2016.01.008</pub-id>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Rao</surname> <given-names>RV</given-names></string-name></person-group>. <article-title>Jaya: a simple and new optimization algorithm for solving constrained and unconstrained optimization problems</article-title>. <source>Int J Ind Eng Comput</source>. <year>2016</year>;<volume>7</volume>:<fpage>19</fpage>&#x2013;<lpage>34</lpage>. doi:<pub-id pub-id-type="doi">10.5267/j.ijiec.2015.8.004</pub-id>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Rao</surname> <given-names>RV</given-names></string-name></person-group>. <article-title>Rao algorithms: three metaphor-less simple algorithms for solving optimization problems</article-title>. <source>Int J Ind Eng Comput</source>. <year>2020</year>;<volume>11</volume>(<issue>1</issue>):<fpage>107</fpage>&#x2013;<lpage>30</lpage>. doi:<pub-id pub-id-type="doi">10.5267/j.ijiec.2019.6.002</pub-id>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Sapkota</surname> <given-names>SC</given-names></string-name>, <string-name><surname>Cavaleri</surname> <given-names>L</given-names></string-name>, <string-name><surname>Khatri</surname> <given-names>A</given-names></string-name>, <string-name><surname>Pandey</surname> <given-names>S</given-names></string-name>, <string-name><surname>Paudel</surname> <given-names>S</given-names></string-name>, <string-name><surname>Asteris</surname> <given-names>PG</given-names></string-name></person-group>. <article-title>Optimization of truss structures using nature-inspired algorithms with frequency and stress constraints</article-title>. <source>Comput Model Eng Sci</source>. <year>2026</year>;<volume>146</volume>(<issue>1</issue>):<fpage>1</fpage>&#x2013;<lpage>10</lpage>. doi:<pub-id pub-id-type="doi">10.32604/cmes.2025.069691</pub-id>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Zienkiewicz</surname> <given-names>OC</given-names></string-name>, <string-name><surname>Taylor</surname> <given-names>RL</given-names></string-name></person-group>. <source>The finite element method</source>. <edition>5th ed</edition>. <publisher-loc>Oxford, UK</publisher-loc>: <publisher-name>Butterworth-Heinemann</publisher-name>; <year>2000</year>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Bathe</surname> <given-names>KJ</given-names></string-name></person-group>. <source>Finite element procedures</source>. <edition>2nd ed</edition>. <publisher-loc>Watertown, MA, USA</publisher-loc>: <publisher-name>Klaus-Jurgen Bathe</publisher-name>; <year>2014</year>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Forrester</surname> <given-names>A</given-names></string-name>, <string-name><surname>Sobester</surname> <given-names>A</given-names></string-name>, <string-name><surname>Keane</surname> <given-names>A</given-names></string-name></person-group>. <source>Engineering design via surrogate modelling: a practical guide</source>. <publisher-loc>Hoboken, NJ, USA</publisher-loc>: <publisher-name>John Wiley &#x0026; Sons, Inc.</publisher-name>; <year>2008</year>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Forrester</surname> <given-names>AIJ</given-names></string-name>, <string-name><surname>Keane</surname> <given-names>AJ</given-names></string-name></person-group>. <article-title>Recent advances in surrogate-based optimization</article-title>. <source>Prog Aerosp Sci</source>. <year>2009</year>;<volume>45</volume>(<issue>1&#x2013;3</issue>):<fpage>50</fpage>&#x2013;<lpage>79</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.paerosci.2008.11.001</pub-id>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Koziel</surname> <given-names>S</given-names></string-name>, <string-name><surname>Leifsson</surname> <given-names>L</given-names></string-name></person-group>. <source>Surrogate-based modeling and optimization: applications in engineering</source>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2013</year>. doi:<pub-id pub-id-type="doi">10.1007/978-1-4614-7551-4</pub-id>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Nguyen</surname> <given-names>TH</given-names></string-name>, <string-name><surname>Vu</surname> <given-names>AT</given-names></string-name></person-group>. <article-title>An efficient differential evolution for truss sizing optimization using AdaBoost classifier</article-title>. <source>Comput Model Eng Sci</source>. <year>2023</year>;<volume>134</volume>(<issue>1</issue>):<fpage>429</fpage>&#x2013;<lpage>58</lpage>. doi:<pub-id pub-id-type="doi">10.32604/cmes.2022.020819</pub-id>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wu</surname> <given-names>C</given-names></string-name>, <string-name><surname>Kong</surname> <given-names>W</given-names></string-name></person-group>. <article-title>Interior point method-assisted differential evolution for expensive optimization of secondary source deployment</article-title>. <source>Comput Model Eng Sci</source>. <year>2026</year>;<volume>146</volume>(<issue>2</issue>):<fpage>1</fpage>&#x2013;<lpage>10</lpage>. doi:<pub-id pub-id-type="doi">10.32604/cmes.2026.077613</pub-id>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Serani</surname> <given-names>A</given-names></string-name>, <string-name><surname>Diez</surname> <given-names>M</given-names></string-name></person-group>. <article-title>A survey on design-space dimensionality reduction methods for shape optimization</article-title>. <source>Arch Comput Methods Eng</source>. <year>2025</year>. doi:<pub-id pub-id-type="doi">10.1007/s11831-025-10349-x</pub-id>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kirsch</surname> <given-names>U</given-names></string-name>, <string-name><surname>Bogomolni</surname> <given-names>M</given-names></string-name>, <string-name><surname>Sheinman</surname> <given-names>I</given-names></string-name></person-group>. <article-title>Efficient structural optimization using reanalysis and sensitivity reanalysis</article-title>. <source>Eng Comput</source>. <year>2007</year>;<volume>23</volume>(<issue>3</issue>):<fpage>229</fpage>&#x2013;<lpage>39</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s00366-007-0062-1</pub-id>.</mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Cao</surname> <given-names>H</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>M</given-names></string-name>, <string-name><surname>Huang</surname> <given-names>B</given-names></string-name>, <string-name><surname>Sun</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>A structural reanalysis assisted harmony search for the optimal design of structures</article-title>. <source>Comput Struct</source>. <year>2022</year>;<volume>270</volume>:<fpage>106844</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.compstruc.2022.106844</pub-id>.</mixed-citation></ref>
<ref id="ref-31"><label>[31]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Papadrakakis</surname> <given-names>M</given-names></string-name>, <string-name><surname>Lagaros</surname> <given-names>ND</given-names></string-name>, <string-name><surname>Fragakis</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Parallel computational strategies for structural optimization</article-title>. <source>Int J Numer Methods Eng</source>. <year>2003</year>;<volume>58</volume>(<issue>9</issue>):<fpage>1347</fpage>&#x2013;<lpage>80</lpage>. doi:<pub-id pub-id-type="doi">10.1002/nme.821</pub-id>.</mixed-citation></ref>
<ref id="ref-32"><label>[32]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mukherjee</surname> <given-names>S</given-names></string-name>, <string-name><surname>Lu</surname> <given-names>D</given-names></string-name>, <string-name><surname>Raghavan</surname> <given-names>B</given-names></string-name>, <string-name><surname>Breitkopf</surname> <given-names>P</given-names></string-name>, <string-name><surname>Dutta</surname> <given-names>S</given-names></string-name>, <string-name><surname>Xiao</surname> <given-names>M</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Accelerating large-scale topology optimization: state-of-the-art and challenges</article-title>. <source>Arch Comput Methods Eng</source>. <year>2021</year>;<volume>28</volume>(<issue>7</issue>):<fpage>4549</fpage>&#x2013;<lpage>71</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11831-021-09544-3</pub-id>.</mixed-citation></ref>
<ref id="ref-33"><label>[33]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Goel</surname> <given-names>T</given-names></string-name>, <string-name><surname>Haftka</surname> <given-names>RT</given-names></string-name>, <string-name><surname>Shyy</surname> <given-names>W</given-names></string-name>, <string-name><surname>Queipo</surname> <given-names>NV</given-names></string-name></person-group>. <article-title>Ensemble of surrogates</article-title>. <source>Struct Multidiscip Optim</source>. <year>2007</year>;<volume>33</volume>(<issue>3</issue>):<fpage>199</fpage>&#x2013;<lpage>216</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s00158-006-0051-9</pub-id>.</mixed-citation></ref>
<ref id="ref-34"><label>[34]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Shan</surname> <given-names>S</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>GG</given-names></string-name></person-group>. <article-title>Survey of modeling and optimization strategies to solve high-dimensional design problems with computationally-expensive black-box functions</article-title>. <source>Struct Multidiscip Optim</source>. <year>2010</year>;<volume>41</volume>(<issue>2</issue>):<fpage>219</fpage>&#x2013;<lpage>41</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s00158-009-0420-2</pub-id>.</mixed-citation></ref>
<ref id="ref-35"><label>[35]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>F</given-names></string-name>, <string-name><surname>Lv</surname> <given-names>X</given-names></string-name></person-group>. <article-title>Intelligent structural design of composite concrete-encased steel columns based on hybrid machine learning and multiobjective optimization</article-title>. <source>Struct Concr</source>. <year>2026</year>;<volume>27</volume>(<issue>1</issue>):<fpage>49</fpage>&#x2013;<lpage>72</lpage>. doi:<pub-id pub-id-type="doi">10.1002/suco.70292</pub-id>.</mixed-citation></ref>
<ref id="ref-36"><label>[36]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Fix</surname> <given-names>E</given-names></string-name>, <string-name><surname>Hodges</surname> <given-names>JL</given-names></string-name></person-group>. <source>Discriminatory analysis, nonparametric discrimination, consistency properties</source>. <publisher-loc>Randolph Field, TX, USA</publisher-loc>: <publisher-name>USAF School of Aviation Medicine</publisher-name>; <year>1951</year>. p. <fpage>1</fpage>&#x2013;<lpage>21</lpage>. <comment>Project 21-49-004. Report 4</comment>.</mixed-citation></ref>
<ref id="ref-37"><label>[37]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Syriopoulos</surname> <given-names>PK</given-names></string-name>, <string-name><surname>Kalampalikis</surname> <given-names>NG</given-names></string-name>, <string-name><surname>Kotsiantis</surname> <given-names>SB</given-names></string-name>, <string-name><surname>Vrahatis</surname> <given-names>MN</given-names></string-name></person-group>. <article-title>kNN classification: a review</article-title>. <source>Ann Math Artif Intell</source>. <year>2025</year>;<volume>93</volume>(<issue>1</issue>):<fpage>43</fpage>&#x2013;<lpage>75</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s10472-023-09882-x</pub-id>.</mixed-citation></ref>
<ref id="ref-38"><label>[38]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Hastie</surname> <given-names>T</given-names></string-name>, <string-name><surname>Tibshirani</surname> <given-names>R</given-names></string-name>, <string-name><surname>Friedman</surname> <given-names>J</given-names></string-name></person-group>. <source>The elements of statistical learning</source>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2009</year>. doi:<pub-id pub-id-type="doi">10.1007/978-0-387-84858-7</pub-id>.</mixed-citation></ref>
<ref id="ref-39"><label>[39]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Singh</surname> <given-names>K</given-names></string-name>, <string-name><surname>Kapania</surname> <given-names>RK</given-names></string-name></person-group>. <article-title>ALGA: active learning-based genetic algorithm for accelerating structural optimization</article-title>. <source>AIAA J</source>. <year>2021</year>;<volume>59</volume>(<issue>1</issue>):<fpage>330</fpage>&#x2013;<lpage>44</lpage>. doi:<pub-id pub-id-type="doi">10.2514/1.j059240</pub-id>.</mixed-citation></ref>
<ref id="ref-40"><label>[40]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Krempser</surname> <given-names>E</given-names></string-name>, <string-name><surname>Bernardino</surname> <given-names>HS</given-names></string-name>, <string-name><surname>Barbosa</surname> <given-names>HJ</given-names></string-name>, <string-name><surname>Lemonge</surname> <given-names>AC</given-names></string-name></person-group>. <article-title>Differential evolution assisted by surrogate models for structural optimization problems</article-title>. In: <conf-name>Proceedings of the International Conference on Computational Structures Technology (CST); 2012 Sep 4&#x2013;7; Dubrovnik, Croatia</conf-name>.</mixed-citation></ref>
<ref id="ref-41"><label>[41]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Pham</surname> <given-names>HA</given-names></string-name></person-group>. <article-title>Reduction of function evaluation in differential evolution using nearest neighbor comparison</article-title>. <source>Vietnam J Comput Sci</source>. <year>2015</year>;<volume>2</volume>(<issue>2</issue>):<fpage>121</fpage>&#x2013;<lpage>31</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s40595-014-0037-2</pub-id>.</mixed-citation></ref>
<ref id="ref-42"><label>[42]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Pham</surname> <given-names>HA</given-names></string-name></person-group>. <article-title>Truss optimization with frequency constraints using enhanced differential evolution based on adaptive directional mutation and nearest neighbor comparison</article-title>. <source>Adv Eng Softw</source>. <year>2016</year>;<volume>102</volume>(<issue>12</issue>):<fpage>142</fpage>&#x2013;<lpage>54</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.advengsoft.2016.10.004</pub-id>.</mixed-citation></ref>
<ref id="ref-43"><label>[43]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Pham</surname> <given-names>HA</given-names></string-name>, <string-name><surname>Dang</surname> <given-names>VH</given-names></string-name>, <string-name><surname>Vu</surname> <given-names>TC</given-names></string-name>, <string-name><surname>Nguyen</surname> <given-names>BD</given-names></string-name></person-group>. <article-title>An efficient k-NN-based <italic>Rao</italic> optimization method for optimal discrete sizing of truss structures</article-title>. <source>Appl Soft Comput</source>. <year>2024</year>;<volume>154</volume>(<issue>2</issue>):<fpage>111373</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.asoc.2024.111373</pub-id>.</mixed-citation></ref>
<ref id="ref-44"><label>[44]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Rao</surname> <given-names>RV</given-names></string-name>, <string-name><surname>Shah</surname> <given-names>R</given-names></string-name></person-group>. <article-title>BMR and BWR: two simple metaphor-free optimization algorithms for solving real-life non-convex constrained and unconstrained problems</article-title>. <comment>arXiv:2407.11149. 2024</comment>.</mixed-citation></ref>
<ref id="ref-45"><label>[45]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>K&#x0131;nal&#x0131;</surname> <given-names>NS</given-names></string-name>, <string-name><surname>Yakak</surname> <given-names>B</given-names></string-name>, <string-name><surname>Dede</surname> <given-names>T</given-names></string-name>, <string-name><surname>Atmaca</surname> <given-names>B</given-names></string-name></person-group>. <chapter-title>Optimum design of steel space truss roofs with BMR and BWR algorithms</chapter-title>. In: <source>Advanced engineering optimization through intelligent techniques</source>. <publisher-loc>Singapore</publisher-loc>: <publisher-name>Springer Nature</publisher-name>; <year>2025</year>. p. <fpage>75</fpage>&#x2013;<lpage>85</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-981-96-8070-2_7</pub-id>.</mixed-citation></ref>
<ref id="ref-46"><label>[46]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Rao</surname> <given-names>RV</given-names></string-name>, <string-name><surname>Davim</surname> <given-names>JP</given-names></string-name></person-group>. <article-title>Optimization of different metal casting processes using three simple and efficient advanced algorithms</article-title>. <source>Metals</source>. <year>2025</year>;<volume>15</volume>(<issue>9</issue>):<fpage>1057</fpage>. doi:<pub-id pub-id-type="doi">10.3390/met15091057</pub-id>.</mixed-citation></ref>
<ref id="ref-47"><label>[47]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Rao</surname> <given-names>RV</given-names></string-name>, <string-name><surname>Davim</surname> <given-names>JP</given-names></string-name></person-group>. <article-title>Single, multi-, and many-objective optimization of manufacturing processes using two novel and efficient algorithms with integrated decision-making</article-title>. <source>J Manuf Mater Process</source>. <year>2025</year>;<volume>9</volume>(<issue>8</issue>):<fpage>249</fpage>. doi:<pub-id pub-id-type="doi">10.3390/jmmp9080249</pub-id>.</mixed-citation></ref>
<ref id="ref-48"><label>[48]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Rao</surname> <given-names>RV</given-names></string-name>, <string-name><surname>Kishorbhai</surname> <given-names>JN</given-names></string-name></person-group>. <chapter-title>Fused deposition modeling process optimization using two simple advanced methods</chapter-title>. In: <source>Advanced engineering optimization through intelligent techniques</source>. <publisher-loc>Singapore</publisher-loc>: <publisher-name>Springer Nature</publisher-name>; <year>2025</year>. p. <fpage>43</fpage>&#x2013;<lpage>51</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-981-96-8070-2_4</pub-id>.</mixed-citation></ref>
<ref id="ref-49"><label>[49]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Gandomi</surname> <given-names>AH</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>XS</given-names></string-name></person-group>. <chapter-title>Benchmark problems in structural optimization</chapter-title>. In: <source>Computational optimization, methods and algorithms</source>. <publisher-loc>Berlin/Heidelberg, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2011</year>. p. <fpage>259</fpage>&#x2013;<lpage>81</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-3-642-20859-1_12</pub-id>.</mixed-citation></ref>
<ref id="ref-50"><label>[50]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>&#x00D6;zt&#x00FC;rk</surname> <given-names>HT</given-names></string-name>, <string-name><surname>Kahraman</surname> <given-names>HT</given-names></string-name></person-group>. <article-title>Meta-heuristic search algorithms in truss optimization: research on stability and complexity analyses</article-title>. <source>Appl Soft Comput</source>. <year>2023</year>;<volume>145</volume>(<issue>1</issue>):<fpage>110573</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.asoc.2023.110573</pub-id>.</mixed-citation></ref>
<ref id="ref-51"><label>[51]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ho-Huu</surname> <given-names>V</given-names></string-name>, <string-name><surname>Nguyen-Thoi</surname> <given-names>T</given-names></string-name>, <string-name><surname>Vo-Duy</surname> <given-names>T</given-names></string-name>, <string-name><surname>Nguyen-Trang</surname> <given-names>T</given-names></string-name></person-group>. <article-title>An adaptive elitist differential evolution for optimization of truss structures with discrete design variables</article-title>. <source>Comput Struct</source>. <year>2016</year>;<volume>165</volume>:<fpage>59</fpage>&#x2013;<lpage>75</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.compstruc.2015.11.014</pub-id>.</mixed-citation></ref>
<ref id="ref-52"><label>[52]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Le</surname> <given-names>DT</given-names></string-name>, <string-name><surname>Bui</surname> <given-names>DK</given-names></string-name>, <string-name><surname>Ngo</surname> <given-names>TD</given-names></string-name>, <string-name><surname>Nguyen</surname> <given-names>QH</given-names></string-name>, <string-name><surname>Nguyen-Xuan</surname> <given-names>H</given-names></string-name></person-group>. <article-title>A novel hybrid method combining electromagnetism-like mechanism and firefly algorithms for constrained design optimization of discrete truss structures</article-title>. <source>Comput Struct</source>. <year>2019</year>;<volume>212</volume>:<fpage>20</fpage>&#x2013;<lpage>42</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.compstruc.2018.10.017</pub-id>.</mixed-citation></ref>
<ref id="ref-53"><label>[53]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Tang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Lee</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Chaotic enhanced teaching-based differential evolution algorithm applied to discrete truss optimization</article-title>. <source>Structures</source>. <year>2023</year>;<volume>49</volume>(<issue>5</issue>):<fpage>730</fpage>&#x2013;<lpage>47</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.istruc.2023.01.153</pub-id>.</mixed-citation></ref>
<ref id="ref-54"><label>[54]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Goodarzimehr</surname> <given-names>V</given-names></string-name>, <string-name><surname>Topal</surname> <given-names>U</given-names></string-name>, <string-name><surname>Das</surname> <given-names>AK</given-names></string-name>, <string-name><surname>Vo-Duy</surname> <given-names>T</given-names></string-name></person-group>. <article-title>Bonobo optimizer algorithm for optimum design of truss structures with static constraints</article-title>. <source>Structures</source>. <year>2023</year>;<volume>50</volume>(<issue>6</issue>):<fpage>400</fpage>&#x2013;<lpage>17</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.istruc.2023.02.023</pub-id>.</mixed-citation></ref>
</ref-list>
</back></article>